资源描述:
《第3次上机实验 PCF8563(new)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3次实验//*****main.c*****#include#include#includevoiddelay_1s(unsignedint);//有关的函数声明voidseparate(unsignedcharsec,min,hou);//有关的函数声明unsignedcharj0,j1,j2=17,j3;j4,j5=17,j6,j7;main(){unsignedLastSec;delay_1s(2);Init_pcf8563();//初始化时间write_time_8563();//初始化时间while(1){read_t
2、ime_8563();if(sec!=LastSec)//秒变化时,才进行显示{LastSec=sec;//保存现在的秒值,准备与下一个读出的秒比较separate(sec,min,hou);display(j0,j1,j2,j3,j4,j5,j6,j7);delay_1s(10000);}}}voidseparate(unsignedcharsec,min,hou){j0=sec%10;j1=sec/10;j3=min%10;j4=min/10;j6=hou%10;j7=hou/10;}voiddelay_1s(unsignedintx){while(x--);}Display.hvoid
3、shift(unsignedchar);voiddisplay(unsignedcharj0,j1,j2,j3,j4,j5,j6,j7);sbitsda=P0^2;sbitscl=P0^3;codecharled_code[19]={//displaycode0x11,0xd7,0x32,0x92,0xd4,//0,1,2,3,40x98,0x18,0xd3,0x10,0x90,//5,6,7,8,90x50,0x1c,0x39,0x16,0x38,//a,b,c,d,e0x78,0xfe,0xef,0xff//f-dotdarkf};第5页共5页Display.c#include4、lay.h>voiddisplay(unsignedcharj0,j1,j2,j3,j4,j5,j6,j7){shift(j0);shift(j1);shift(j2);shift(j3);shift(j4);shift(j5);shift(j6);shift(j7);}voidshift(unsignedcharn){unsignedcharm,i;m=led_code[n];scl=0;for(i=0;i<8;i++){if(m&0x80){sda=1;}else{sda=0;}scl=1;scl=0;m<<=1;}}Pcf8563.hsbitsda_8563=P0^7;sbitscl_
5、8563=P0^6;unsignedcharyear,mon,day,hou=0x16,min=0x16,sec=0x20,week,last_week=7;constunsignedchartime[7]={0x09,0x11,0x20,0x05,0x11,0x14,0x30};//设置初值:年.月.日.星期.时.分.秒//与PCF8563有关的函数声明voidstart(void);//开始子程序voidstop(void);//结束子程序voidInit_pcf8563(void);//初始化pcf8563unsignedcharwritebyte_8563(unsignedchar)
6、;//写一个字节=====unsignedcharreadbyte_8563(void);//读一个字节voidread_time_8563(void);//读日期,数据放于year,mon,day,hou,min,sec,weekvoidwrite_time_8563(void);//写日期初值,数据放于time[7]第5页共5页Pcf8563.c#include"PCF8563.h"voidstart(void)//开始子程序{sda_8563=1;scl_8563=1;sda_8563=0;scl_8563=0;}voidstop(void)//结束子程序{scl_8563=0;sda
7、_8563=0;scl_8563=1;sda_8563=1;}unsignedcharwritebyte_8563(unsignedchardat)//写一个字节{unsignedinti;unsignedcharack=1;scl_8563=0;for(i=8;i>0;i--){if(dat&0x80){sda_8563=1;}else{sda_8563=0;}scl_8563=1;scl_8563=0;d