bin126com 发表于 2012-4-25 22:25:09

【ds1302芯片】写入数据 是用 BCD码的对吧~~~

RT;
但是我定义一个 unsigned char的数组存放初始化时间,uint8 code time={55,59,18} //秒分时
在转换成BCD码 :
for (i=0; i<7; i++)
        {
                tmp = (timedata / 10)<<4;
                timedata = timedata % 10;
                timedata = tmp|timedata;
        }

但是写进去在数码管上乱码
可是写成uint8 code time={0x55,0x59,0x18} //秒分时
并且把BCD转换代码注释掉,就不会乱码,显示很正常完整,到60进位消零······
我很费解啊,写入的不是BCD码吗? 为什么不转换写16进制就正常了呢~~~~

icboy_591 发表于 2012-4-28 17:23:37

tmp = (timedata / 10)<<4;
你看看你的这句和下句,出现乱码是你自己造成的好不

skbljs2652 发表于 2012-4-29 20:59:49

LZ的程序的确是有问题的~~
页: [1]
查看完整版本: 【ds1302芯片】写入数据 是用 BCD码的对吧~~~