数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1788|回复: 28

[C51] STC8H4K64TL+RX8025T实现的数码管时钟制作(增加ESP01/WIFI对时)

[复制链接]
发表于 2025-4-10 15:06:56 | 显示全部楼层 |阅读模式
主控:STC8H4K64TL LQFP48
计时:RX-8025T(主) + STC8H4K64TL内部RTC(辅)
温湿度测量:SHT35
环境光照测量:GL5516光敏电阻(亮电阻5~10KΩ,暗电阻200KΩ)
显示:
数码管、LED均使用共阴驱动方式。
(1)1个4位带时钟点0.8寸数码管+1个2位0.4寸数码管显示时间(小时+分钟+秒)
(2)1个1位0.8寸数码管显示星期日(1~7)
(3)1个4位0.8寸数码管分时显示公历日期(月+日)、温度(LED灯指示区分)
(4)1个4位0.8寸数码管分时显示农历日期(月+日)、相对湿度(LED灯指示区分)

4个按键:
(1)减:设置日期、时间时数值短按减1,长按快减1
(2)设置:设置日期、时间时短按切换设置项;闹钟响状态短按停响并延时贪睡时间间隔时间后再响
(3)加:设置日期、时间时数值短按加1,长按快加1;闹钟显示非设置闹钟时间状态短按切换闹钟开/关
(4)功能:切换时间/闹钟时间设置
(5)贪睡延时闹钟中短按任意键取消贪睡闹钟,恢复设置的闹钟

闹钟蜂鸣:一般闹钟蜂鸣驱动信号频率为2KHz,不过,这种共振频率的蜂鸣器几乎都是电磁式的,比较耗电,如果不在乎音色,可以使用常见的4KHz压电式蜂鸣器。
温湿度测量:1分钟的第59秒测量一次。
环境光照测量:约1mS做一次ADC,取128次AD平均值做亮度分级依据,大致分8个等级与STC8H4K64TL的8档LED显示亮度匹配。100mS处理一次亮度,当前亮度等级与目标亮度等级不一致时加/减1档。
公历日期+农历日期/温度+相对湿度切换:5秒切换1次,0~5秒显示公历日期+农历日期,5~10秒显示温度+相对湿度,10~15秒显示公历日期+农历日期 ……

原理图:为减小通过单个COM脚的电流,使用PNP三极管扩流,全显最亮时整机工作电流约120mA;I2C 100pF滤波电容C5、C6仅预留,通讯速率较高时不焊或减小(可同步减小上拉电阻阻值)。


因为LED显示比较耗电,为减少负载变化对ADC的影响,ADC参考电压使用二极管隔离加电容储能稳定,正常显示时两个电压波形对比如下图


RX8025T使用二极管隔离+电容储能供电,实测使用1000uF储能可以维持RX-8025T计时>30分钟。

焊好的板子实物图:因为2个数码管使用立创商城上数码管封装与买的实物电气连接不一致,实际上背面有几根跳线。那个USB口可以模拟USB下载程序,但速度极慢,纯属鸡肋。


显示切换效果(强光照)




低光照调低显示亮度(由于数码管、LED显示变化时会影响环境亮度检测,光敏电阻最好用圆柱形管子罩起来)


原理图、PCB嘉立创EDA工程(原理图和PCB不一致,原理图较新,PCB仅供参考)#24楼有更新#


源程序


(1)程序未开启看门狗,可修改Option.h中的条件编译定义开启看门狗;
(2)为降低I2C通讯速率,程序烧录时选择主频=24MHz。
(3)虽然没有显示年份,但为了正确转换农历、星期日,需要设置年份(长按设置键)。
(4)计时以RX-8025T为主,主控上电时先读取RX-8025T的数据,如果读到预设数据,使用读到的数据并保存到STC8H4K64TL内部RTC,如果超过约5秒没有从RX-8025T读到时间数据,从内部RTC获取时间,如果从RX-8025T读到时间数据,则恢复为使用RX-8025T计时。为简化闹钟处理,闹钟功能使用内部RTC闹钟功能实现。





补充内容 (2025-4-29 11:05):
程序使用了大于31的中断号,如果无法编译,尝试用“拓展Keil的C代码中断号”工具处理一下Keil。

补充内容 (2025-5-1 08:58):
工程设置编译完成后用外挂工具计算目标文件校验和,缺少这个工具时会报错,取消这个设置功能就行。

补充内容 (2025-5-1 08:58):
Options for Target…… -- User -- Run User Programs After Build/Rebuild -- Run #1不打勾

补充内容 (2025-6-29 21:09):
#24楼更新设计,增加Wifi对时功能。

本帖子中包含更多资源

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

x

打赏

参与人数 4家元 +156 收起 理由
zhongyidiy + 6 謝謝分享
不长叶子的树 + 90
慕名而来 + 30 優秀文章
bluenight + 30 先加分,再慢慢学,谢谢分享!.

查看全部打赏

发表于 2025-4-10 16:12:52 | 显示全部楼层
本帖最后由 bluenight 于 2025-4-10 16:49 编辑

谢谢分享,准备抄作业
另外请问:我查了一下规格书,嘉立创0.8寸共阴数码管的段发光二极管是2V(1.8V)的,按您的这个电路,STC8H4K64TL能不能直接驱动 3.6V(就是每段2串发光二极管)的数码管?

     
回复 支持 反对

使用道具 举报

发表于 2025-4-10 18:03:51 | 显示全部楼层
谢谢分享~这个太好了,用来做毕业设计挺好的
回复 支持 反对

使用道具 举报

发表于 2025-4-10 18:16:01 | 显示全部楼层
本帖最后由 慕名而来 于 2025-4-10 18:30 编辑

恭喜楼主大作竣工,效果真的很漂亮,看来楼主最终选用了SHT35温湿度传感器了,我这两天正在调试SHT40(RMB6.2的小模块),与小米的小温湿度计比较感觉这货温度没毛病湿度高了约3个字。
回复 支持 反对

使用道具 举报

发表于 2025-4-10 18:25:32 | 显示全部楼层
bluenight 发表于 2025-4-10 16:12
谢谢分享,准备抄作业
另外请问:我查了一下规格书,嘉立创0.8寸共阴数码管的段发光二极管是2V(1. ...

有一个简单方法不知道是否可以,就是另外加一个合适电压的电源、正极接主回路GND负极取代各个COM驱动管的接地端。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-10 20:11:54 | 显示全部楼层
bluenight 发表于 2025-4-10 16:12
谢谢分享,准备抄作业
另外请问:我查了一下规格书,嘉立创0.8寸共阴数码管的段发光二极管是2V(1. ...

我在立创搜到的0.8寸的数码管都是不带时钟点的,我买的带时钟点的数码管是14脚的,4个小数点、中间“:”都可以点亮,但是,除了中间的“:”,其它小数点是不需要点亮的,X宝上有12脚的时钟点数码管,一般只有中间的“:”可以点亮,这种布线比较方便。
显示SEG都要串电阻的,可以串100~510Ω,电流大就串大些,电流大,SEG、COM引脚压降增大,芯片内部发热量也大,因为16个SEG同时点亮时COM电流比较大,所以,我用三极管扩流,最好SEG也外部扩流,以满足STC推荐的流过VDD的电流不超过70mA。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-10 20:13:02 | 显示全部楼层
慕名而来 发表于 2025-4-10 18:16
恭喜楼主大作竣工,效果真的很漂亮,看来楼主最终选用了SHT35温湿度传感器了,我这两天正在调试SHT40(RMB6 ...

因为SHT35可以5V工作,手上刚好剩一个,所以,就用它。
回复 支持 反对

使用道具 举报

发表于 2025-4-10 23:02:10 | 显示全部楼层
mmxx2015 发表于 2025-4-10 20:13
因为SHT35可以5V工作,手上刚好剩一个,所以,就用它。

SHT35价格有点高,在不考虑精度和测温范围的前提下,可不可以直接用SHT30或者SHT31代换?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-10 23:18:57 | 显示全部楼层
bluenight 发表于 2025-4-10 23:02
SHT35价格有点高,在不考虑精度和测温范围的前提下,可不可以直接用SHT30或者SHT31代换? ...

可以,SHT3x系列供电电压范围一样,程序通用。建议使用SHT3x-DIS-F2.5KS带防尘膜的型号,虽然贵几块钱,但是,不带膜的型号加一个防尘罩,那个罩子也要几块钱,还要在PCB上开孔卡住。

我经常买传感器的x宝商家SHT35-DIS-F2.5KS 23块,SHT30-DIS-F2.5KS 12块8,如果对自己焊工没信心买成品模块就贵一些。
回复 支持 反对

使用道具 举报

发表于 2025-4-10 23:23:37 | 显示全部楼层
mmxx2015 发表于 2025-4-10 20:11
我在立创搜到的0.8寸的数码管都是不带时钟点的,我买的带时钟点的数码管是14脚的,4个小数点、中间“:” ...

原理图上时分的4位数码管用的是14脚的,PCB上用的是12脚的。如果用12脚的4位数码管,连接是否按PCB?原程序是否适用?谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-10 23:30:45 | 显示全部楼层
bluenight 发表于 2025-4-10 23:23
原理图上时分的4位数码管用的是14脚的,PCB上用的是12脚的。如果用12脚的4位数码管,连接是否按PCB?原程 ...

前面已经说过了,因为使用的封装是12脚的,买的数码管是14脚的,还有那个2位数码管封装也不匹配,原理图和PCB对应不同的电气连接,程序一样。
如果你能买到PCB上那种数码管,我可以调整程序匹配,如果你买的数码管和我用的一样,要么修改PCB,要么飞5根线(可以在底部飞线)。

打赏

参与人数 1家元 +30 收起 理由
bluenight + 30 熱心助人

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2025-4-10 23:59:58 | 显示全部楼层
mmxx2015 发表于 2025-4-10 23:30
前面已经说过了,因为使用的封装是12脚的,买的数码管是14脚的,还有那个2位数码管封装也不匹配,原理图 ...

谢谢答复和指点,我先按原理图自己画一块板抄抄作业,有不明白的地方再请教
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-11 00:45:56 | 显示全部楼层
本帖最后由 mmxx2015 于 2025-4-14 12:01 编辑
bluenight 发表于 2025-4-10 23:59
谢谢答复和指点,我先按原理图自己画一块板抄抄作业,有不明白的地方再请教  ...

如果重新画板,建议用这份原理图(已完成布线):

(1)增加一个ESP-01 WIFI模块用于WIFI对时。
(2)增加2个LED,一个用于12小时制显示时下午(PM)指示,一个用于开闹钟指示。所有LED建议用方形LED。
(3)如果对亮度要求不高,可以把三极管COM扩流电路去掉,芯片COM直接接数码管、LED COM。
(4)重新画板时,显示前8个SEG、后8个SEG要一起驱动同一个数码管,顺序8个SEG与数码管SEG的连接任意调整,COM任意使用。
(5)I2C、UART可以任选可用引脚使用。
(6)按键、WIFI模块电源控制可以任选可用引脚使用。

示意图


本帖子中包含更多资源

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

x

打赏

参与人数 1家元 +30 收起 理由
bluenight + 30 熱心會員

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2025-4-12 21:44:40 | 显示全部楼层
bluenight 发表于 2025-4-10 16:12
谢谢分享,准备抄作业
另外请问:我查了一下规格书,嘉立创0.8寸共阴数码管的段发光二极管是2V(1. ...

三极管有点多,应该能用TM1639能简化一下电路,5V可以驱动3.6V的1.2寸数码管,我用过。
回复 支持 1 反对 0

使用道具 举报

发表于 2025-4-12 21:48:32 | 显示全部楼层
正在学习时钟制作,谢谢分享。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-12 22:43:45 | 显示全部楼层
dcc20250209 发表于 2025-4-12 21:44
三极管有点多,应该能用TM1639能简化一下电路,5V可以驱动3.6V的1.2寸数码管,我用过。 ...

这是两种不同的设计,一个只需要填充显示数据到特定RAM就能刷新显示,一个要靠不可硬件控制的通讯接口去控制刷新显示,而且,强干扰下,TMxxxx系列芯片存在显示乱跳问题。加三极管只是为了增加显示亮度而减少通过芯片GND的电流,实际上,就这个应用来说,直驱那么大电流问题也不大。
回复 支持 反对

使用道具 举报

发表于 2025-4-13 11:28:59 | 显示全部楼层
mmxx2015 发表于 2025-4-12 22:43
这是两种不同的设计,一个只需要填充显示数据到特定RAM就能刷新显示,一个要靠不可硬件控制的通讯接口去 ...

没错没错。
是我理解错了,TM1639应该不适用这个电路,准备仿制一个,如果芯片不发热就直接用,否则试试能不能用245之类的代替。
回复 支持 反对

使用道具 举报

发表于 2025-4-14 11:40:17 | 显示全部楼层
mmxx2015 发表于 2025-4-11 00:45
如果重新画板,建议用这份原理图(已完成布线):

(1)增加一个ESP-01 WIFI模块用于WIFI对时。

感谢开源,按这版原理图的话,是否程序也有变动?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-14 12:03:34 | 显示全部楼层
bluenight 发表于 2025-4-14 11:40
感谢开源,按这版原理图的话,是否程序也有变动?

当然需要,你做好板子后我可以按你实际画的板子帮你改一版程序,当然,你也可以自己修改。
回复 支持 反对

使用道具 举报

发表于 2025-4-15 09:58:36 | 显示全部楼层
mmxx2015 发表于 2025-4-14 12:03
当然需要,你做好板子后我可以按你实际画的板子帮你改一版程序,当然,你也可以自己修改。 ...

太感谢了,这两天陆陆续续的在买零件,各家的数码管引脚规格不同,我根据实物来画板
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-19 21:04 , Processed in 0.202800 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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