以下是从ds1302读回来BCD码转化为十进制,可1602必须写入相应的字符或ASCLL码,恳请大神们给予意见
void time_pros(void) //把BCD码转换成十进制
{
read_rtc();
disp[0]='2';
disp[1]='0';
disp[2]=time_data[0]%16; //年十位
disp[3]=time_data[0]/16; //年个位
disp[4]='-';
disp[5]=time_data[1]%16; //月十位
disp[6]=time_data[1]/16; //月个位
disp[7]='-';
disp[8]=time_data[2]%16; //日十位
disp[9]=time_data[2]/16; //日个位
disp[10]='-';
disp[11]=time_data[3]%16; //时十位
disp[12]=time_data[3]/16; //时个位
disp[13]='-';
disp[14]=time_data[4]%16; //分十位
disp[15]=time_data[4]/16; //分个位
disp[16]='-';
disp[17]=time_data[5]%16; //秒十位
disp[18]=time_data[5]/16; //秒个位
}
void display()
{
uchar i,j;
write_com(0x80);
for(i=0;i<10;i++)
{
time_pros();
write_data(disp[ i]);
delayms(5);
}
write_com(0x80+0x40);
for(j=11;j<19;j++)
{
time_pros();
write_data(disp[j]);
delayms(5);
}
}
|