时间温度显示电路 - 图文(5)

2019-04-01 16:28

giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x88,mon); //写寄存器指令,月 giveOneTime(0x8e,0x80); disDate(); } } //K3 if(K3==0&&i3==0) { i3=1; mon= bcdToChar(getOneTime(0x89)); dat= bcdToChar(getOneTime(0x87)); yea= bcdToChar(getOneTime(0x8d));

if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) //判断31天月份 { if(dat==31) { dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } } else{ if(mon==2) //二月份平年、闰年天数判断 { if((yea%4)==0&&(yea0)==0&&yea!=0) //闰年 { if(dat==29) {

dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写寄存器指令,日 giveOneTime(0x8e,0x80); disDate(); } } else //平年 { if(dat==28) { dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //写指令 giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); //寄存器写指令 giveOneTime(0x8e,0x80); disDate(); } } } else

{ if(dat==30) { dat=1; dat= charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); giveOneTime(0x8e,0x80); disDate(); } else{ dat=dat+1; dat=charToBcd(dat); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x86,dat); giveOneTime(0x8e,0x80); disDate(); } } } } if(K1==1&&K2==1&&K3==1) { i1=0;i2=0;i3=0; } } }

void TimeDisF() {

if(i==1) { disTime(); //K1 if(K1==0&&i1==0) { i1=1; hou= bcdToChar(getOneTime(0x85));

if(hou==23) { hou=0; hou= charToBcd(hou); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x84,hou); //写寄存器指令,时 giveOneTime(0x8e,0x80); disTime(); } else{ hou= hou+1; hou= charToBcd(hou); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x84,hou); //写寄存器指令,时 giveOneTime(0x8e,0x80); disTime(); } } //K2 if(K2==0&&i2==0) { i2=1; min= bcdToChar(getOneTime(0x83)); if(min==59) { min=0; min= charToBcd(min); giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x82,min); //写寄存器指令,分 giveOneTime(0x8e,0x80); disTime(); } else{ min= min+1; min= charToBcd(min);

giveOneTime(0x8e,0x00); //* 控制命令,WP=0,写操作? giveOneTime(0x82,min); //写寄存器指令,分 giveOneTime(0x8e,0x80); disTime(); } }

//K3 if(K3==0&&i3==0) { resetTime(); } if(K1==1&&K2==1&&K3==1) { i1=0;i2=0;i3=0; } } }

void GetTimeF() //读取时间 {

T_RST = 0; T_CLK = 0; T_RST = 1;

oneByteToClock(0xbf); //* 0xbf:时钟多字节读命令 sec = bcdToChar(oneByteFromClock()); min = bcdToChar(oneByteFromClock()); hou = bcdToChar(oneByteFromClock()); dat = bcdToChar(oneByteFromClock()); mon = bcdToChar(oneByteFromClock()); wek = bcdToChar(oneByteFromClock()); yea = bcdToChar(oneByteFromClock()); T_CLK = 1; T_RST =0; }

void ChangeKF() //按钮切换显示实现函数 {

if(TAD==0&&j==0) { if(i==4) { i=0; } else i=i+1; j=1; }

else{


时间温度显示电路 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于linux平台的WEB安全技术研究 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: