|
9cb259a526db22e26de203252c0edda.jpg (4.25 MB, 下載次數: 49)
下載附件
2021-10-21 11:22 上傳
下邊是時鐘程序,我本來是想著四位數轉BCD碼,千位除以1000再乘以16,不過那樣不對
void DS1302_SetTime()
{
DS1302_WriteByte(DS1302_WP,0x00);
DS1302_WriteByte(Year,DS1302_Time[0]/10*16+DS1302_Time[0]%10);
DS1302_WriteByte(Month,DS1302_Time[1]/10*16+DS1302_Time[1]%10);
DS1302_WriteByte(Date,DS1302_Time[2]/10*16+DS1302_Time[2]%10);
DS1302_WriteByte(Hour,DS1302_Time[3]/10*16+DS1302_Time[3]%10);
DS1302_WriteByte(Minute,DS1302_Time[4]/10*16+DS1302_Time[4]%10);
DS1302_WriteByte(Second,DS1302_Time[5]/10*16+DS1302_Time[5]%10);
DS1302_WriteByte(Day,DS1302_Time[6]/10*16+DS1302_Time[6]%10);
DS1302_WriteByte(DS1302_WP,0x80);
}
void DS1302_ReadTime()
{
unsigned char Temp;
Temp=DS1302_ReadByte(Year);
DS1302_Time[0]=Temp/16*10+Temp%16;
Temp=DS1302_ReadByte(Month);
DS1302_Time[1]=Temp/16*10+Temp%16;
Temp=DS1302_ReadByte(Date);
DS1302_Time[2]=Temp/16*10+Temp%16;
Temp=DS1302_ReadByte(Hour);
DS1302_Time[3]=Temp/16*10+Temp%16;
Temp=DS1302_ReadByte(Minute);
DS1302_Time[4]=Temp/16*10+Temp%16;
Temp=DS1302_ReadByte(Second);
DS1302_Time[5]=Temp/16*10+Temp%16;
Temp=DS1302_ReadByte(Day);
DS1302_Time[6]=Temp/16*10+Temp%16;
}
|
|