基于protues数字时钟C程序.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:5 大小:67KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于protues数字时钟C程序.doc

基于protues数字时钟C程序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<reg51.h>#include<string.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharhour,min,sec;sbitIO=P1^0;//数据线sbitSCK=P1^1;//时钟线sbitRST=P1^2;//复位线sbitfm=P1^7;sbithh=P3^0;sbitmm=P3^1;sbitss=P3^2;uintnumnode[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};uintnum[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//uintkb[6]={0,1,2,3,4,5};//enumkb{hu,mu,su,hd,md,sd};voiddelay(intn){unsignedinti,j;for(i=0;i<n;i++){for(j=0;j<121;j++){;}}}/*DS1302单字节写入:*/voidwrite_ds1302_byte(uchardat){uchari;for(i=0;i<8;i++){SCK=0;IO=dat&0x01;dat=dat>>1;SCK=1;}}/*DS1302多字节写入:*/voidwrite_ds1302(ucharadd,uchardat){RST=0;_nop_();SCK=0;_nop_();RST=1;_nop_();write_ds1302_byte(add);write_ds1302_byte(dat);RST=0;_nop_();IO=1;SCK=1;}/*DS1302读取:*/ucharread_ds1302(ucharadd){uchari,value;RST=0;_nop_();SCK=0;_nop_();RST=1;_nop_();write_ds1302_byte(add);for(i=0;i<8;i++){value=value>>1;SCK=0;if(IO)value=value|0x80;SCK=1;}RST=0;_nop_();SCK=0;_nop_();SCK=1;IO=1;returnvalue;}voidsettime(){//hang1=0;hang2=0;inti=0,j=0;uinttemp,temp1;for(i;i<3;i++){P3=temp;temp1=P3;if((temp1&0x0f)!=0x0f){}}}/*调整时间:*/voidset(){if(hh==0){delay(50);if(hh==1){hour=(hour>>4)*10+(hour&0x0f);hour++;if(hour==24)hour=0;hour=((hour/10)<<4)+(hour%10);write_ds1302(0x84,hour);}}if(mm==0){delay(50);if(mm==1){min=(min>>4)*10+(min&0x0f);min++;if(min==60)min=0;min=((min/10)<<4)+(min%10);write_ds1302(0x82,min);}}if(ss==0){{delay(50);if(ss==1){sec=(sec>>4)*10+(sec&0x0f);sec++;if(sec==60)sec=0;sec=((sec/10)<<4)+(sec%10);write_ds1302(0x80,sec);}}}}/*读取时间:*/voidread_rtc(){hour=read_ds1302(0x85);min=read_ds1302(0x83);sec=read_ds1302(0x81);}/*显示时间:*//*显示时间:*/voiddisplay(){unsignedinta=1;P2=0xfe;P0=num[hour/16];delay(a);P2=0xfd;P0=numnode[hour%16];delay(a);