数码之家

 找回密码
 立即注册
搜索
查看: 6476|回复: 75

[C51] 我用单片机自制LED数码管时钟的经历

[复制链接]
发表于 2019-9-9 17:59:39 | 显示全部楼层 |阅读模式
本帖最后由 ganbc 于 2019-9-10 13:45 编辑

近来,突然对LED数码管时钟比较感兴趣。于是自己动手做了两款时钟。
1)先是用51单片机STC15F2K60S2+DS1302时钟模块+数码管做了一个时钟。用杜邦线连接测试时都没啥大问题,可是把它在洞洞板焊接好改用锂电池升压到5V供电后,发现开关电池居然都会让时钟显示紊乱(偏离正常时钟很远)。怀疑是DS1302没有安装上拉电阻,可是接上上拉电阻也不行。或许是我的布线不合理造成干扰。这个时钟成本虽低不到10元,但不能正常使用至今找不到原因,很失败啊!

2)然后干脆用Arduino nano+PCF8653时钟模块+TM1637四位数码管模块来做时钟。结果居然一次成功了。时钟运行了一周多,时钟分和手机还是一样的,感觉精度也还不错。但这个时钟成本有些小贵,主要是Arduino nano、PCF8653、TM1637这几样都不便宜,加起来都要近20元成本了。

初步结论是DS1302模块不好用。
后来我在某宝淘到一块电子时钟模块,里面也是DS1302做时钟计时的。(如图)

才发现DS1302原来精度也不差的。后来看到论坛有人说DS1302不要买便宜的,便宜都是国产的,问题多多。
用了一周,觉得这块时钟板做工和功能都不错,时钟精度和我用PCF8653做的时钟差不多,又兼有充电和充电宝功能,价格又很便宜,让我觉得自己做单片机时钟都没有意义了。当然如果纯粹是想学编程又另当别论。
下面是这三个时钟的实拍图(使用过后觉得还是比较喜欢某宝买的这个时钟板而且比较实用,电池好配也方便充电):


传说DS3231模块的时钟精度更高一些但成本就更贵了。有时间再做一个时钟对比一下吧。我觉得用一个时钟如果精度达到一年误差5分钟以内,一年调整一次时间,基本就很实用了。


各位有啥好的建议吗?






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 1家元 +20 收起 理由
zx61107 + 20 謝謝分享

查看全部打赏

发表于 2019-9-9 19:36:04 | 显示全部楼层
3231一定不要买便宜的,精度非常一般,那种带电池的模块才2,3块,一个月少说有上10秒误差,贵的一年最多10来秒,既然会ARDUINO,用8266吧,联网精度就不用说了吧

DIY很多时候并不省钱
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-10 13:30:34 | 显示全部楼层
本帖最后由 ganbc 于 2019-9-10 13:38 编辑
ploestar 发表于 2019-9-9 19:36
3231一定不要买便宜的,精度非常一般,那种带电池的模块才2,3块,一个月少说有上10秒误差,贵的一年最多10 ...

谢谢。
DS3231我是嫌贵了,所以才买DS1302和PCF8653模块来做时钟的。做过之后觉得某宝上买到两三元的DS1302模块真的不好用,精度太差。除非自己有精力去换晶振加电容。
对于用8266来做WIFI时钟实时获取最新时间更新,我不打算做,主要是路由器改密码了或者换个地方时钟又要重新设置太麻烦。
我觉得用时钟模块如果精度达到一年误差5分钟以内,一年调整一次时间,基本就很实用了。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-9-10 13:57:04 | 显示全部楼层
ploestar 发表于 2019-9-9 19:36
3231一定不要买便宜的,精度非常一般,那种带电池的模块才2,3块,一个月少说有上10秒误差,贵的一年最多10 ...

是的。DIY已经没有太大优势了。比如用单片机DIY一个3位数码管电压表,成本至少都要3元多吧(还不算人工费)?可是某宝也就是卖3元一个。又比如一个MP3播放板也就几元一个。自己做根本做不来。DIY真的没什么优势了。

打赏

参与人数 1家元 +1 收起 理由
wenxueroom + 1 diy是为了省钱???

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2019-9-10 20:53:33 来自手机浏览器 | 显示全部楼层
楼主这个一个礼拜误差多少?
回复 支持 反对

使用道具 举报

发表于 2019-9-10 21:47:51 | 显示全部楼层
触景情伤 发表于 2019-9-10 20:53
楼主这个一个礼拜误差多少?

如楼上所说,1302的晶振和电容匹配好了也是可以有精度的,只是当室温变化较大时误差会再次出现,这个现象不止1302有,用单片机编程的时钟也是一样,而3231是通过温度补偿来稳定晶振频率的所以不跑频就准了。
回复 支持 反对

使用道具 举报

发表于 2019-9-11 00:29:44 | 显示全部楼层
现在很多单片机外接一个32768晶振就可以做RTC了,省一个时钟芯片。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 08:38:16 | 显示全部楼层
触景情伤 发表于 2019-9-10 20:53
楼主这个一个礼拜误差多少?

因为没有显示秒,所以我只看分钟。到目前已经过去10多天了还是一分不差,我指的是PCF8653做的时钟和淘来的那块时钟板。我觉得个人DIY的话,PCF8653时钟模块是一个不错的选择。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 08:39:44 | 显示全部楼层
慕名而来 发表于 2019-9-10 21:47
如楼上所说,1302的晶振和电容匹配好了也是可以有精度的,只是当室温变化较大时误差会再次出现,这个现象 ...

所言极是。因为没有测试仪器,业余条件基本就不用考虑DS1302了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 08:42:09 | 显示全部楼层
595953427@qq 发表于 2019-9-11 00:29
现在很多单片机外接一个32768晶振就可以做RTC了,省一个时钟芯片。

单片机自带32768晶振是可以做时钟,但是没能解决断电时钟还在走的问题。单片机耗电大,纽扣电池并不能用来维持走时。而时钟模块就可以。
回复 支持 反对

使用道具 举报

发表于 2019-9-11 12:25:50 | 显示全部楼层
ganbc 发表于 2019-9-11 08:42
单片机自带32768晶振是可以做时钟,但是没能解决断电时钟还在走的问题。单片机耗电大,纽扣电池并不能用 ...

使用外部电源时候工作在正常模式,使用电池供电的时候使用低功耗模式
回复 支持 反对

使用道具 举报

发表于 2019-9-11 14:30:43 | 显示全部楼层
我一直用国产1302【反正外置晶体的时钟芯片,准确度是完全看晶体的频率和温飘的】,就是备用电池端耗电较大【主电源串了4148可以降低很多】,不过一般时钟断电也少。
你的锂电升压供电,应该是电压波纹太大造成干扰。试试加强滤波。
时间误差问题:直接软件修正即可,算出多少分钟快1秒,每隔一定的分钟数减掉1秒,感觉这样操作,好几个月的时钟精度够用。
分享下实际使用的2种时钟,还有个板子是在实验的数控电源。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 15:51:15 | 显示全部楼层
595953427@qq 发表于 2019-9-11 12:25
使用外部电源时候工作在正常模式,使用电池供电的时候使用低功耗模式

这样设计起来就麻烦了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 15:55:57 | 显示全部楼层
chenppo 发表于 2019-9-11 14:30
我一直用国产1302【反正外置晶体的时钟芯片,准确度是完全看晶体的频率和温飘的】,就是备用电池端耗电较大 ...

谢谢指教。我有点不明白,为什么DS1302那么容易受干扰呢?51单片机直接用锂电供电又稳定,除非是低电压型。对比之下Arduino使用DS1302就不怎么受干扰,我试过的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 15:58:05 | 显示全部楼层
钟义亭 发表于 2019-9-11 09:05
以前 要精密 都要恆溫爐

不就一个LED数码时钟吗,用不着恒温那么高端的东西吧。
回复 支持 反对

使用道具 举报

发表于 2019-9-11 16:30:03 | 显示全部楼层
ganbc 发表于 2019-9-11 15:55
谢谢指教。我有点不明白,为什么DS1302那么容易受干扰呢?51单片机直接用锂电供电又稳定,除非是低电压型 ...

其实我经常被手头的移动电源干扰。哈哈。。单片机都被干扰了。话说你为啥要升压供电呢?看起来你的数码管也不需要高压才是。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 08:30:23 | 显示全部楼层
chenppo 发表于 2019-9-11 16:30
其实我经常被手头的移动电源干扰。哈哈。。单片机都被干扰了。话说你为啥要升压供电呢?看起来你的数码管 ...

升压是因为STC15F单片机需要5V的电压才能正常工作。如果改用3.7V的锂电,电压稍微下降就马上不能正常工作了。除非用低电压版的STC单片机。
回复 支持 反对

使用道具 举报

发表于 2019-9-12 08:43:47 | 显示全部楼层
ganbc 发表于 2019-9-12 08:30
升压是因为STC15F单片机需要5V的电压才能正常工作。如果改用3.7V的锂电,电压稍微下降就马上不能正常工作 ...

也是,忘了这码事。。。 15F官方是4.2-5.5。
对了,后来我都用8A8K了。电压范围超宽的。以前用15FK2的也都陆续转移过来了。
最近在转移双色点阵时钟,顺便改下界面。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 09:31:18 | 显示全部楼层
chenppo 发表于 2019-9-12 08:43
也是,忘了这码事。。。 15F官方是4.2-5.5。
对了,后来我都用8A8K了。电压范围超宽的。以前用15FK2的也 ...

8A8K我没有用过。我用的几乎都是5V标压的STC单片机。
回复 支持 反对

使用道具 举报

发表于 2019-9-12 12:48:04 来自手机浏览器 | 显示全部楼层
总结到最后:造不如买啊…:titter:
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-26 01:31 , Processed in 0.187201 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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