ds1302问题

[复制链接]
3275|11
 楼主| t86964988 发表于 2010-1-6 12:50 | 显示全部楼层 |阅读模式
说是用BCD码记录数据的,可为什么要加0x? 还有它输出的是16进制码?
 楼主| t86964988 发表于 2010-1-6 15:08 | 显示全部楼层
咋就没人能给我答复呢?难道是问题太简单??新手求救啊~~
eihcir 发表于 2010-1-6 15:38 | 显示全部楼层
不太明白
new1988 发表于 2010-1-6 18:11 | 显示全部楼层
DS1302是以BCD码的格式存放的。例如十进制59,它的十六进制是0x3B,但是你向DS1302里面写59的时候不能写写0x3B.它的BCD码是01011001,换成16进制就是0X5A,所以你向DS1302里面写59的时候就是写0X5A。有个转换公式的。你到网上找找就能找到的
漫游ing 发表于 2010-1-6 18:30 | 显示全部楼层
输出的不是16进制码,是BCD码,只不过用十六进制的形式表示。
具体的表示方法如楼上说的
 楼主| t86964988 发表于 2010-1-6 21:21 | 显示全部楼层
为什么很多例子当中59都是以0x59写入的呢?
mohanwei 发表于 2010-1-6 21:36 | 显示全部楼层
4楼应该是笔误。
十进制59转成BCD码应该是0x59
 楼主| t86964988 发表于 2010-1-6 22:18 | 显示全部楼层
哦,那输出出来也是m=0x59,如果我用2个数码管显示输出的数 是不是直接就可以直接用一个数码管显示m/16,一个数码管显示m%16??
菜鸟学模电 发表于 2010-8-4 09:58 | 显示全部楼层
是的,也有把输出先化成十进制数再显示的
比如:((m&0x70>>4))*10+(m&0x0f)
mage心寒 发表于 2010-8-4 12:42 | 显示全部楼层
1302输入和输出的为BCD码。。我们需要转换,简单的说可以看成先把输入的十进制数转换为16进制,输出后讲16进制转为10进制送去显示。。
akliao 发表于 2010-8-5 11:01 | 显示全部楼层
也就是说,你想写入什么样的十进数,你就把这个十进制数前面加个0x写入,即可,不要再转成对应的16进制数罗。。。。
aywyk 发表于 2010-8-25 17:49 | 显示全部楼层
呵呵,遇到同样的问题!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

77

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部