//溫度顯示子函數
void write_temp(uchar add,uint dat)//向LCD寫溫度數據,并指定顯示位置
{
uint gw,sw,bw;
bw=dat/100;//取得百位
sw=dat%100/10;//取得十位數字
gw=dat%10;//取得個位數字
write_1602com(er+add);//er是頭文件規定的值0x80+0x40
write_1602dat(0x30+bw);
write_1602dat(0x30+sw);//數字+30得到該數字的LCD1602顯示碼
write_1602dat('.');
write_1602dat(0x30+gw);//數字+30得到該數字的LCD1602顯示碼
write_1602dat(0xdf);//顯示溫度的小圓圈符號,0xdf是液晶屏字符庫的該符號地址碼
write_1602dat(0x43); //顯示"C"符號,0x43是液晶屏字符庫里大寫C的地址碼
write_1602dat(0x)
}
void Ds1302Init()
{
uchar n;
Ds1302Write(0x8E,0X00); //禁止寫保護,就是關閉寫保護功能
for (n=0; n<8; n++)//寫入8個字節的時鐘信號:分秒時日月周年
{
Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
}
Ds1302Write(0x8E,0x80); //打開寫保護功能
}
void Ds1302ReadTime()
{
uchar n;
for (n=0; n<8; n++)//讀取7個字節的時鐘信號:分秒時日月周年
{
TIME[n] = Ds1302Read(READ_RTC_ADDR[n]);
}
} |