unsigned char BCD_CHG_Dat(unsigned char dat)
{
unsigned char dat1,dat2;
dat1 = dat/16;
dat2 = dat%16;
dat = dat1*10+dat2;
return dat;
}
unsigned char Dat_CHG_BCD(unsigned char dat)
{
unsigned char dat1,dat2;
dat1 = dat/10;
dat2 = dat%10;
dat = dat1*16+dat2;
return dat;
}
void DS1302_Init(unsigned char *Time)
{
Write_Ds1302(0x8e,0x00);
Write_Ds1302(0x80,Dat_CHG_BCD(Time[0]));
Write_Ds1302(0x82,Dat_CHG_BCD(Time[1]));
Write_Ds1302(0x84,Dat_CHG_BCD(Time[2]));
Write_Ds1302(0x8e,0x80);
}
void Ds1302_Read(unsigned char *Time)
{
Write_Ds1302(0x8e,0x00);
Time[0] = BCD_CHG_Dat(Read_Ds1302(0x81));
Time[1] = BCD_CHG_Dat(Read_Ds1302(0x83));
Time[2] = BCD_CHG_Dat(Read_Ds1302(0x85));
Write_Ds1302(0x8e,0x80);
}
uj5u.com熱心網友回復:
這代碼看不懂?入門級代碼哦uj5u.com熱心網友回復:
前兩個函式用于BCD碼和十六進制的相互轉換。第三個函式是初始化DS1302傳入BCD碼,最后一個函式是讀取DS1302并將讀取到的BCD碼轉換為十六進制。總的來說就是DS1302收發資料編碼格式是BCD,但是你實際處理資料要的是十六進制數,所以要對他進行轉換。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/67478.html
標籤:單片機/工控
上一篇:什么是計算機的組件結構?有什么特點?對我們的作業系統有什么影響
下一篇:pn512
