找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 4558|回复: 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

源码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

沙发
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
**** 作者被禁止或删除 内容自动屏蔽 ****

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

举报

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

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

举报

6#
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 单片机教程网

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