我在用ds1302做时钟的过程中出现这样一个奇怪的现象,在调时间的过程中,当小时调到35的时候,在按加1就会变到30,然后在按加1调时间时,到了42的时候在加1就变到0了,我的本意是想让它能从0调到59,大于59又变为0. 我些的程序如下,请高手指教这是什么原因???? void UpDown (unsigned char ucAddr,unsigned char flag) {//时间增减设置(FLAG为1时间增为0时间减) unsigned char ucDat,max,min; ucDat=Read1302(ucAddr+1); ucDat=ucDat&0x7f; if(flag) ucDat++; else ucDat--; if(ucDat>59) ucDat=0; if(ucDat<0) ucDat=59; ucDat=ucDat|0x80; DS1302_SetProtect(0); //写保护,允许写 Write1302(ucAddr,ucDat); DS1302_SetProtect(1); } |