
专业版
STC8H8K64U桌面律动时钟
1.8k
0
0
2
简介
基于STC8H8K64U的桌面律动时钟,通过八位数码管、DHT11温湿度模块、WS2812彩灯、MAX4466音频采集制作一款入门级桌搭。
简介:基于STC8H8K64U的桌面律动时钟,通过八位数码管、DHT11温湿度模块、WS2812彩灯、MAX4466音频采集制作一款入门级桌搭。开源协议
:Public Domain
(未经作者授权,禁止转载)创建时间:2024-06-20 15:05:40更新时间:2024-11-04 08:45:25
描述
一、项目简介
关注训练营很久很久了每次训练营都让我蠢蠢欲动,但有事一直没有参加过,作为新手第一次正式训练营想完完整整体验一下DIY设计的流程。
本次项目结合知识所学与现有电子元器件制作一款基于STC8H8K64U桌面律动时钟桌搭。以实现时间日期显示、温湿度采集、计时器、倒计时、闹钟、律动灯条等功能。
【1】主控芯片STC8H8K64U
【2】8位红光共阴极数码管显示数据
【3】三脚拨轮开关通过单击、双击、长按等操作进行界面的控制
【4】DHT11传感器采集温湿度数据
【5】MAX4466声音传感器检测环境声音
【6】WS2812灯珠实现桌面律动彩灯
【6】使用经典TP4056进行锂电池充电,可选择USB、锂电池供电
【7】1路串口可进行程序下载与时间对时等通信
二、硬件部分

新手画的原理图就不配讲解硬件原理了,只不过是一些典型充电、采集、最小系统电路,在制作实物的过程中发现很多设计问题(在以后版本还需中修改):
【1】原理图设计布局不美观
【2】DRC检查建议使用版本更高的网页版EDA以免低版本检查不全
【3】电源切换电路中P-MOS的S极和D极连接错误(虽然可以正常进行电源切换,但电池电压过低会导致充电时无法拉高电压至5V)

【4】充电管理电路中指示灯限流电阻太小导致充电LED灯亮度过大影响实物美观(建议将R1更换为3.6K左右电阻)

【5】因设计中有时钟功能,应外接32.768KHz晶振以降低时间误差
【6】因需要与上位机校对时间设置闹钟,应改用12P-TYPE-C并增加串口芯片,直接用一根数据线完成充电、对时功能
三、实物制作
PCB部分:
1.焊接顺序:先焊接贴片部分,然后焊接直插元件
2.贴片部分可以按每一部分依次焊接,逐步测试元件是否焊接正确
3.焊接密集引脚的芯片可以用放大镜检查是否连锡
4.直插元件先焊接拨动开关然后数码管传感器,防止元件密集无法焊接
5.最后测试成功在焊接电池



外壳部分:使用1.5mm厚黑茶色透明亚克力板作挡光片
1.为节约成本直接用一张大的亚克力板截取面积适合的挡光片
2.用美工刀和锉打磨工程量有点大,建议使用打磨机直接切割
3.3D打印外壳使用推盖模式,上下壳螺丝孔位置有误差需用锉刀打磨使用


四、软件部分
程序界面主要分为八个界面,通过拨动拨轮开关进行界面的切换和数据的修改。上电初始化先读取芯片ID信息发送到上位机,然后检测电池电量剩余“2050/4096”,最后初始化外设端口等彩灯进度条逐渐铺满。
enum{
date_dis=0,time_dis,temp_dis,clock_dis,power_dis,text_dis,timer_dis,cntdown_dis
}mode=1;//显示标志位0->日期显示 1->时间显示 2->温湿度显示 3->闹钟显示 4->电量显示 5->文字彩灯 6->计时器 7->倒计时
1.时间显示界面:“13-23-50”显示小时、分钟、秒钟数据,通过左右拨轮进行界面切换,按下拨轮进行时间的设置,对应数据闪烁提示,可通过单击、连按调节时间数据,若两秒未进行调节则自动退出调节界面。
2.日期显示界面:“2024.07.09”显示年、月、日数据,可进行2000~2099年的范围调节,调节同日期调节。
3.温湿度显示界面:“T.32℃ H.60”分别显示温度、湿度,在此界面下长按拨轮开关可调节数码管的8级显示亮度。
4.闹钟显示界面:“00:00 1”左侧显示闹钟时间,右侧显示闹钟的开关,当达到闹钟时间时蜂鸣器报时提示,单击按下拨轮进行闹钟的调节,同样对应数据闪烁显示,两秒未进行调节则退出调节模式。
5.电量显示界面:“18352055”分别显示ADC检测的噪音值和电量值,12位ADC采样最大数值为4096。
6.变幻彩灯:关闭数码管显示,进行花样彩灯显示(后续可自定义彩灯变化花样)。
(6.1文字彩灯:最初方案准备左右甩动时钟快速变化彩灯亮暗实现短暂视觉停留显示文字或图案)
7.计时器显示界面:“00.00.00.00”分别表示时、分、秒、毫秒,最大精度0.01ms;单击按下按键开始计时,再次按下则停止计时,检测到长按按键停止计时并且清零计时时间。
8.倒计时显示界面:“-00.00.10--”分别表示时、分、秒,单击按下按键控制倒计时启停,长按按键则进入倒计时时间修改界面,通过左右拨动拨轮进行数据的调节,进入修改模式后再次单击按下按键则进行数据修改的切换,若一段时间无操作进行则自动退出修改模式,当计时时间为零完成计时时则进行蜂鸣器鸣响提醒。
9.律动彩灯:在变换彩灯模式外,则不断采集MAX4466咪头声音,转换成彩灯律动显示。
在软件编程的同时也总结了一些经验:
1.通过STCAI-ISP和芯片手册中的官方例程可以快速上手一款芯片,关于芯片设计、芯片编程等方面的疑问可以在STC官方论坛中找到相似问题的解决方法。

2.准双向口可以直接读取DHT11元件的温湿度数据,但带有4.7K上拉电阻的DHT11模块使用传统准双向口无法读取数据,须在读取或传输数据时不断改变IO口模式。
传输时->推挽输出:P2M1 &= 0xfe;P2M0 |= 0x01;
读取时->高阻输入:P2M0 &= 0xfe;P2M1 |= 0x01;

软件后续需改进部分(调试累了 以后继续完善):
1.ADC电量采集的数据改用0-100百分比显示更加简洁
2.律动彩灯中应对音量采集设置合适的R10阻值调节增益大小,并对数据滤波更好的显示律动波形
3.按键多功能扫描中定时器中断频率过高影响WS2812彩灯时序
4.上电初始化后显示与按键部分无法稳定操作
5.虽然为桌搭设计不考虑功耗随时充电,但可增添低功耗显示功能
五、程序下载
1.选择相应的芯片型号与电脑端口
2.单片机IRC运行频率:35MHz
3.设置用户EEPROM大小:0.5K
4.下次下载用户程序时不擦除用户EEPROM区
5.编程完成后自动打开串口
6.串口通信波特率:115200bps
7.程序下载成功后会自动读取芯片ID信息并传输到上位机

六、RTC、闹钟对时
在STC-ISP软件中选择RTC对时界面并打开串口:
1.RTC对时波特率:“115200bps”,命令头:“@”,自动获取系统时间
2.闹钟对时波特率:“115200bps”,命令头:“#”,格式:“小时:分钟 启停”(1启0停)
![UV3TC9~3I4]CE9U2C4HM4.png](//image.lceda.cn/oshwhub/a0efe6aa08d341388b788d98d3cc3355.png)
设计图

BOM


添加到专辑
0
0
分享
侵权投诉
评论