1.Design tasks and requirements/设计任务与要求
1.1 Basic partial request/基本部分要求
(1)显示学号(5p,I/O)
(2)时钟显示(HH MM SS + 秒闪),精度≤1s/24H(5p,定时器)
(3)时间设置(10p,状态机)
(4)闹钟一(5p,蜂鸣器)
单片机/单片机:STC15W4K32S4
显示:4*0.56共阳极 7 段 LED+LED 秒闪
键:1~3
PCB尺寸:<10cmX10cm
1.2 Play part requirements/发挥部分要求
(1)每秒滴答-滴答,可禁用(5p)
(2)室内温度交替显示,精度≤0.5°C(5p)
(3)≥2 组闹钟 + 音乐(5p)
1.3 Other Extensions/其他拓展(5积分,以下2项或以上任选)
(1)自动时间同步——WiFi NTP(网络时间协议),GNSS,
长波时间服务...
(2)遥控器设置:红外线、无线电、手机...
(3)亮度动态调整:光敏,定时,--
PWM 控制 VCCD 或控制显示扫描时序
(4)主机总线设置:485 MODBus
(5)掉电保护,低功耗设计
(6)或指淘宝相关产品....
2. 方案论证及器件选型
1. 方案演示:
核心控制器:
采用 STC15w4k48s4 或 STC15w4k32s4 等 51 系列微控制器作为主控芯片,负责系统的整体逻辑控制和数据处理。
时钟模块:
选择高精度、低功耗的时钟芯片,或者使用晶振输出高频波形,然后用定时器分频,实现时钟模块
显示模块:
根据需要选择 LCD 显示屏(如 LCD1602)或数码管进行时间显示。
按钮模块:
设计合理的按钮布局和功能定义,使用户能够设置和调整时间、日期和闹钟。
报警模块:
警报提醒功能是通过蜂鸣器或其他声音设备实现的。
2. 设备选择:
核心控制器:
选用理由:STC15w4k48s4 或 STC15w4k32s4 微控制器性价比高,I/O 端口和定时器资源充足,满足数字时钟的基本需求。
资源:包括至少 2 个定时器和多个 I/O 端口,用于按键输入和显示输出。
时钟芯片:
选择晶振
优点:精度高、低功耗时钟输出、高性价比、高可操作性,可通过定时器进行精确计时。
缺点:经过一段时间后,难免会出现相应的偏差,需要手动计时
选择 DS1302
优点:精度高、功耗低、时钟输出可编程,具有存储日历信息和时钟时间的能力。
缺点:性价比低。
但是,对于实际应用,晶体振荡器的价格较低,可以大大降低成本
显示模块:
数码管:
优点:适用于显示时间、日期、报警信息,I/O 端口较少,但通信和操作简单。
缺点:同时可观测数据较少,指示方式也需要使用秒闪。
LCD1602:
优点:可显示两行字符,每行 16 个字符,适合显示时间、日期、闹钟信息。
缺点:性价比低,对于微控制器等单线程 MCU,LCD1602对动态显示时序有更高的要求。如果处理不当,可能会导致显示器闪烁或不稳定等问题。这就要求开发人员在编写 control 程序时特别注意 timing 的准确性和稳定性。
因此,考虑到所有因素,数码管更适合这个实验
按钮模块
独立按钮:适用于简单的功能,每个按钮对应一个特定的功能,便于编程和调试。
4x4 键盘:适用于多功能场景,可以节省 I/O 端口资源,但编程复杂度高。
由于 4x4 矩阵键盘需要大量的 I/O 端口,并且此实验只需要 3 个或更少的按钮,因此我们使用了 3 个独立的按钮
报警模块
蜂鸣器
优点:简单易用,成本低,并且可以通过微控制器控制发出声音提醒。
控制方法:通过微控制器的 I/O 端口输出高低电平信号来控制蜂鸣器的开关。
3. Hardware design/硬件设计
3.1 Overall system design/系统总体方案设计
系统总体方案设计图:
单芯片:
51 微控制器是整个数字时钟系统的核心控制单元。它负责接收用户通过按键输入的指令,控制时钟源模块获取时间,然后在显示模块上显示时间信息。此外,微控制器还负责处理报警逻辑,当达到设定的报警时间时,它会通过蜂鸣器或其他方式发出提醒。
晶体振荡器:
clock source 模块用于提供准确的时间参考。在这个系统中,我们选择了一个 crystal oscillator 作为 clock source。它可以提供秒、分钟、小时、日期、周、月、年和警报等信息,并且可以在停电后继续计时。
Digtub:
显示模块用于显示当前时间信息、日期信息和告警状态。根据不同的系统要求选择 LED 数码管作为显示模块。LED数码管更适合显示时间和简单的数字信息。
键盘:
按钮模块用于接收用户输入指令。每个独立的按钮对应一个功能,使编程变得简单,但会消耗大量的 I/O 端口资源。
温度模块:
使用温控电阻器通过 ADC 收集电阻器的电压,最后变换并计算温度
串口:是用户与数字时钟交互的接口。在这个系统中,用户界面主要通过按钮模块实现,用户可以通过按钮设置时间、调整闹钟等
闹钟:
当闹钟时间等于实时时,音乐闹钟通过蜂鸣器发出声音
3.2 各单元电路设计/各单元电路设计
数字管显示:
温度检测:
蜂鸣器:
钥匙:
功率过滤和指示:
该系统由 STC15w4k32s4 微控制器管理,使用其 IO 端口管理按钮输入,使用总线控制数码管的显示。蜂鸣器的频率通过 IO 端口进行调整,以产生各种音效。温度测量部分利用微控制器的 ADC 功能从温度敏感电阻器收集电压读数,然后将这些读数转换为确定实际温度。
3.3 Final schematic of the system/系统最终原理图
3.4 PCB设计/
印刷电路板设计
4.Software design/软件设计
4.1 系统主程序设计/系统主程序设计
4.2 各功能模块的子程序设计/各功能模块子程序设计
K
安永:
T
我要:
音乐
报警:
数字试管显示:
温度:4.3 Proteus simulation design/ Proteus仿真设计
5. Test results and analysis/测试结果与分析
5.1 Test Instruments/测试仪器
测温仪 精确时钟.
5.2 Test Results and Analysis/测试结果与分析
1. 数码管显示学号。
2. 计时和时间显示,能够显示小时、分钟、秒,24 小时内误差小于 1 秒。
3、时间设置功能,使用三个按钮进行设置、切换、调整、长按、短按,不影响显示。
4. 有两组闹钟,可以使用音乐铃声,而不会影响显示。
在计算秒数时,可以产生滴答声,并且可以关闭。
6. 两组音乐闹钟:分别命名为“The Lone Brave”和“Darwin”,可以尝试、停止、启用/禁用,并带有可选铃声
7、室温显示功能包括交替显示、小数点、测温精度小于0.5°
8. 可以显示年、月、日
9. 可调数码管亮度,手动调节
6. 经验/心得体会
在深入探索并成功设计出一款基于微控制器的数字时钟后,我深刻体会到了从理论到实践的飞跃带来的挑战和成就感。这个过程不仅加深了我对单片机工作原理、编程技能和电子电路设计的理解,也使我学会了如何将所学知识全面应用到实际项目中。以下是我在这个设计过程中的经验。
1. 理论知识的重要性:
在开始设计过程之前,深入了解微控制器(如 51 系列、STM32 等)的基本结构、指令集、中断系统、定时器/计数器和 I/O 端口操作至关重要。这些理论知识就像基石,支撑着后续的设计和开发工作。同时,有必要清楚地了解数字时钟(如 24 小时和 12 小时系统)所需的时间显示原理、时间进位逻辑等。只有扎实的理论基础,才能在面对实际问题时迅速找到解决方案。
2. 练习和调试的艰辛:
虽然理论不错,但在实际操作中总会遇到意想不到的问题。从电路板的布线设计到元件的焊接,每一步都需要关注和耐心。尤其是在编写程序时,即使是很小的语法或逻辑错误也会导致整个系统出现故障。因此,反复调试和修改已成为设计过程中不可或缺的一部分。我深深明白,实践是检验真理的唯一标准。只有通过不断的试错和调整,设计才能逐步改进并达到预期的功能。
3. 团队合作的力量:
虽然我主要作为个人项目完成这个设计,但在这个过程中,我也深深感受到了团队合作的重要性。遇到困难时,与同学或老师交流和讨论往往可以激发新的想法并找到解决问题的新方法。同时,团队成员之间的相互支持和鼓励也是推动项目进展的重要动力。
4. 创新和扩张:
在设计过程中,我尝试在基本功能的基础上加入一些创新元素,如闹钟功能、温度显示等。这些扩展不仅增加了数字时钟的实用性,也让我在探索新技术和应用时有了更多的乐趣和成就感。我意识到创新是技术进步的驱动力,只有不断尝试和创新,才能在激烈的竞争中脱颖而出。
5. 总结与反思:
回顾整个设计过程,我深刻地意识到,在微控制器编程、电路设计、解决问题能力等方面还有很大的改进空间。同时,我也意识到,理论知识与实践相结合,敢于挑战自我,不断探索未知领域,是成为一名优秀工程师的必要路径。未来,我将继续努力学习,不断提高自己的专业技能和综合素质,为未来的技术创新贡献自己的力量。
简而言之,使用微控制器设计数字时钟的经验使我受益匪浅。它不仅磨练了我的专业技能和实践能力,还教会了我如何面对挑战、解决问题,并在实践中不断创新。我相信这段宝贵的经历将成为我人生旅程中的宝贵财富。