打印

ds1302问题

[复制链接]
1793|11
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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。有个转换公式的。你到网上找找就能找到的

使用特权

评论回复
5
漫游ing| | 2010-1-6 18:30 | 只看该作者
输出的不是16进制码,是BCD码,只不过用十六进制的形式表示。
具体的表示方法如楼上说的

使用特权

评论回复
6
t86964988|  楼主 | 2010-1-6 21:21 | 只看该作者
为什么很多例子当中59都是以0x59写入的呢?

使用特权

评论回复
7
mohanwei| | 2010-1-6 21:36 | 只看该作者
4楼应该是笔误。
十进制59转成BCD码应该是0x59

使用特权

评论回复
8
t86964988|  楼主 | 2010-1-6 22:18 | 只看该作者
哦,那输出出来也是m=0x59,如果我用2个数码管显示输出的数 是不是直接就可以直接用一个数码管显示m/16,一个数码管显示m%16??

使用特权

评论回复
9
菜鸟学模电| | 2010-8-4 09:58 | 只看该作者
是的,也有把输出先化成十进制数再显示的
比如:((m&0x70>>4))*10+(m&0x0f)

使用特权

评论回复
10
mage心寒| | 2010-8-4 12:42 | 只看该作者
1302输入和输出的为BCD码。。我们需要转换,简单的说可以看成先把输入的十进制数转换为16进制,输出后讲16进制转为10进制送去显示。。

使用特权

评论回复
11
akliao| | 2010-8-5 11:01 | 只看该作者
也就是说,你想写入什么样的十进数,你就把这个十进制数前面加个0x写入,即可,不要再转成对应的16进制数罗。。。。

使用特权

评论回复
12
aywyk| | 2010-8-25 17:49 | 只看该作者
呵呵,遇到同样的问题!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

77

帖子

1

粉丝