|
char l_tmpdate[3]={0,9,12};
char l_tmpdisplay[8];
void Write_Ds1302( unsigned char address,unsigned char dat )
{
RST=0;
_nop_();
SCK=0;
_nop_();
RST=1;
_nop_(); //啟動
Write_Ds1302_Byte(address); //發(fā)送地址
Write_Ds1302_Byte(dat); //發(fā)送數(shù)據(jù)
RST=0; //恢復(fù)
}
void amin()
{
l_tmpdate[1]=((l_tmpdate[1]+1)/16)*10 + ((l_tmpdate[1]+1)%16); //分加1
if(l_tmpdate[1]>59) l_tmpdate[1]=0; //判斷
l_tmpdate[1]=l_tmpdate[1]%10+l_tmpdate[1]/10*16; //轉(zhuǎn)十六進(jìn)制
Write_Ds1302(0x8E,0X00); //開寫保護(hù)
Write_Ds1302(0x82,l_tmpdate[1]); //寫分寄存器
Write_Ds1302(0x8E,0x80); //關(guān)寫保護(hù)
}
void bmin()
{
l_tmpdate[1]=((l_tmpdate[1]-1)/16)*10 + ((l_tmpdate[1]-1)%16); //分減1
if(l_tmpdate[1]<0) l_tmpdate[1]=59; //判斷
l_tmpdate[1]=l_tmpdate[1]%10+l_tmpdate[1]/10*16; //轉(zhuǎn)十六進(jìn)制
Write_Ds1302(0x8E,0X00); //開寫保護(hù)
Write_Ds1302(0x82,l_tmpdate[1]); //寫分寄存器
Write_Ds1302(0x8E,0x80); //關(guān)寫保護(hù)
}
上面是我的相關(guān)代碼,按鍵控制,加時(shí)間正常顯示,減少時(shí),時(shí)間從我8減少到0正常,隨后變跳到5,在0-5范圍內(nèi)循環(huán)
|
|