DS1302 实时时钟分析和总结.docxVIP

  • 2
  • 0
  • 约2.94千字
  • 约 12页
  • 2023-03-12 发布于湖北
  • 举报
DS1302 实时时钟 /************************************* LED_D(数码管段选) LED_W(数码管位选) *************************************/ #includereg51.h #includeintrins.h #define uchar unsigned char #define uint unsigned int #define LED_W P2 #define LED_D P0 sbit LED=P3^2; sbit SCK=P3^4; sbit IO=P3^5; sbit RST=P3^6; sbit set=P1^0; sbit s1=P1^1; sbit s2=P1^2; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0- 9 uchar write_add[]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};//年、星 期、月份、日期、时、分、秒 uchar read_add[]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};//年、星期、月份、日期、时、分、秒 uchar time_date[7];//年、星期、月份、日期、时、分、秒uchar disp[4]; uchar num,setn,minite,hour; void delay(uint z) { uint x,y; for(x=0;xz;x++); for(y=0;y110;y++); } void Write_DS1302_Byte(uchar dat) { uchar i; for(i=0;i8;i++) { SCK=0; IO=dat0x01; dat=dat1; SCK=1; } } void Write_DS1302(uchar add,uchar dat) { RST=0; _nop_(); SCK=0; _nop_(); RST=1; _nop_(); Write_DS1302_Byte(add); Write_DS1302_Byte(dat); RST=0; _nop_(); IO=1; SCK=1; } uchar Read_DS1302(uchar add) { uchar i,value; RST=0; _nop_(); SCK=0; _nop_(); RST=1; _nop_(); Write_DS1302_Byte(add); for(i=0;i8;i++) { value=value1; SCK=0; if(IO) value=value|0x80; SCK=1; } RST=0; _nop_(); SCK=0; _nop_(); SCK=1; IO=1; return value; } uchar Chang_H_D(uchar dat) { uchar t; t=dat/16*10+dat%16; return t; } uchar Chang_D_H(uchar dat) { uchar t; t=dat/10*16+dat%10; return t; } void Read() { uchar i; for(i=0;i7;i++) { time_date[i]=Read_DS1302(read_add[i]); } } void timepro() { disp[0]=time_date[5]%16; disp[1]=time_date[5]/16; disp[2]=time_date[4]%16; disp[3]=time_date[4]/16; } void keyscan() { if(set==0) { delay(5); if(set==0) { while(!set); setn++; LED=0; TR0=0; num=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; Write_DS1302(0x8e,0x00); delay(1); Write_DS1302(0x80,Chang_D_H(128)); delay(1); Write_DS1302(0x8e,0x80); if(setn==3) { setn=0; TR0=1; Write_DS1302(0x8e,0x00); delay(1); Write_DS1302(0x80,Chang_D_H(0)); delay(1); Write_DS1302(0x8e,0x80); } } } if(setn!=0) { if(s1==0) { delay(

文档评论(0)

1亿VIP精品文档

相关文档