单片机/MCU论坛
直播中

李颜

7年用户 1391经验值
私信 关注
[问答]

C51和DS1302通信为什么要把时间除以16?

void LcdDisplay()
{
    LcdWriteCom(0x80+0X40);
    LcdWriteData('0'+tiME[2]/16);                //时
    LcdWriteData('0'+(TIME[2] 0x0f));                 
    LcdWriteData('-');
    LcdWriteData('0'+TIME[1]/16);                //分
    LcdWriteData('0'+(TIME[1] 0x0f));   
    LcdWriteData('-');
    LcdWriteData('0'+TIME[0]/16);                //秒
    LcdWriteData('0'+(TIME[0] 0x0f));


为什么TIME[ ]每次都要除16在 上0f


回帖(1)

杜喜喜

2023-11-6 10:44:59
/16相当于取TIM[]的高四位, 0x0F则是取低四位, '0'+则是将数据转换为对应的ASCII码
举报

更多回帖

×
20
完善资料,
赚取积分