标题: 关于51单片机通过串口修改ds1302时间的问题 [打印本页]

作者: @wangwenquan    时间: 2017-3-9 19:49
标题: 关于51单片机通过串口修改ds1302时间的问题
最近做一个基于51单片机 的DS1302时钟,要求通过串口可以完成对DS1302时间 的修改,现在出现如下问题:通过串口调试助手发送7个十六进制的时间数据给单片机然后写进1302,写完数据后开始读1302并通过1602液晶正常显示,但是现在当发送的数据如果大于10便会出错,例如当发送的年份数据为16进制数0x11,正常1602显示的年份应该为2017,但是现在显示的是2031.希望得到大家的指点,谢谢!

串口修改1302.zip

64.23 KB, 下载次数: 106

源码


作者: baofu    时间: 2017-3-10 10:52
本帖最后由 baofu 于 2017-3-10 14:39 编辑

1302年份寄存器用的是BCD码,就是用4位二进制数来表示1位十进制数中的0~9这10个数码。或者说每1位十进制数,都要用4位二进制数。或者说,对于17来说,应当发送0x17.相当于前四位二进制数是0001,后四位是0111.
作者: @wangwenquan    时间: 2017-3-10 17:50
baofu 发表于 2017-3-10 10:52
1302年份寄存器用的是BCD码,就是用4位二进制数来表示1位十进制数中的0~9这10个数码。或者说每1位十进制数 ...

原来如此,受教受教
作者: 1900352116    时间: 2024-12-22 16:03
@wangwenquan 发表于 2017-3-10 17:50
**** 作者被禁止或删除 内容自动屏蔽 ****

请问应该在串口输入什么样的格式才能输出正确的时间
作者: laxcis    时间: 2024-12-22 16:46
1900352116 发表于 2024-12-22 16:03
请问应该在串口输入什么样的格式才能输出正确的时间

串口输入格式不重要,单片机程序能正确识别就可以,关键是识别后设置DS1302时间时要按照DS1302的规范设置
作者: WL0123    时间: 2024-12-22 16:47
1900352116 发表于 2024-12-22 16:03
请问应该在串口输入什么样的格式才能输出正确的时间

问题不在串口输入什么样的数据格式,而是下位机收到要解析,最终转成BCD码写进1302。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1