找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 4593|回复: 5
收起左侧

关于51单片机通过串口修改ds1302时间的问题

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

串口修改1302.zip

64.23 KB, 下载次数: 106

源码

回复

举报

ID:113415 发表于 2017-3-10 10:52 | 显示全部楼层
本帖最后由 baofu 于 2017-3-10 14:39 编辑

1302年份寄存器用的是BCD码,就是用4位二进制数来表示1位十进制数中的0~9这10个数码。或者说每1位十进制数,都要用4位二进制数。或者说,对于17来说,应当发送0x17.相当于前四位二进制数是0001,后四位是0111.
回复

举报

ID:169455 发表于 2017-3-10 17:50 | 显示全部楼层
baofu 发表于 2017-3-10 10:52
1302年份寄存器用的是BCD码,就是用4位二进制数来表示1位十进制数中的0~9这10个数码。或者说每1位十进制数 ...

原来如此,受教受教
回复

举报

ID:1138353 发表于 2024-12-22 16:03 | 显示全部楼层
@wangwenquan 发表于 2017-3-10 17:50
**** 作者被禁止或删除 内容自动屏蔽 ****

请问应该在串口输入什么样的格式才能输出正确的时间
回复

举报

ID:1140846 发表于 2024-12-22 16:46 | 显示全部楼层
1900352116 发表于 2024-12-22 16:03
请问应该在串口输入什么样的格式才能输出正确的时间

串口输入格式不重要,单片机程序能正确识别就可以,关键是识别后设置DS1302时间时要按照DS1302的规范设置
回复

举报

ID:1133081 发表于 2024-12-22 16:47 | 显示全部楼层
1900352116 发表于 2024-12-22 16:03
请问应该在串口输入什么样的格式才能输出正确的时间

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

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表