以下是從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);
}
}
|