目录
前言
本设计为博主利用每日闲余时间设计的小作品,有不足之处还请各位在评论区批评指正,部分内容参考来源网络资料,如有侵权请联系博主删除。
一、绪论
1.1 设计背景
随着科技的飞速发展,电子设备在日常生活和工业生产中扮演着越来越重要的角色。这些设备不仅极大地提升了生活的便捷性,还显著提高了工作效率和精确度。电子秒表作为常用的计时设备之一,因其高精度和实时性,在多个领域得到广泛应用,如体育赛事、工业生产、实验室测试等。因此,设计一款性能稳定、操作简便的电子秒表具有重要意义。
在众多的微控制器中,51单片机因其高性价比、丰富的功能和广泛的应用基础,成为设计电子秒表的理想选择。51单片机是一种低功耗、高性能的CMOS-8位微控制器,具备丰富的I/O接口和定时器/计数器资源,能够满足电子秒表对时间精确控制的需求。此外,51单片机还拥有庞大的技术支持社区和丰富的开发资源,为设计者提供了极大的便利。
综上所述,基于51单片机的电子秒表设计不仅符合当前电子设备的发展趋势,还具备广阔的应用前景和市场价值。通过本设计,可以进一步加深对51单片机及其相关技术的理解和掌握,为后续的电子产品开发打下坚实的基础。
1.2 设计内容
本设计为基于51单片机的电子秒表设计,其通过LCD1602显示器动态展示时间,提供了清晰易读的时间显示界面,避免了传统秒表中可能出现的读数模糊或不准确的问题。LCD1602显示器以其高对比度和稳定的显示性能,能够在不同的环境下确保时间信息的清晰展示。电子秒表的操作则通过四个独立按键来实现,包括启动、停止、清零和复位。启动按键用于开始计时,停止按键在计时过程中暂停计时以便记录时间,清零按键则将计时器重置为零以便重新开始计时,复位按键则在电子秒表经历长时间使用或故障后将其恢复到初始状态。具体实现以下功能:
(1)设计并制作一个基于单片机的精度为0.1S的秒表系统,实现时间的精确测量;
(2)系统具备开始、停止、清零以及复位等功能,并能对时间进行累加;
(3)系统应采用L CD显示屏实时显示时间间隔且每过1秒钟都会提醒;
(4)秒表的最长计时长度为9:59:59,超过此长度,报警。
二、系统硬件设计
2.1 硬件系统框图
本设计硬件设计部分主要由以下几个模块组成:单片机最小系统、报警模块、LCD1602显示模块、键盘模块。通过这几种模块组成电子秒表系统,单片机最小系统由复位电路和时钟电路组成。具体硬件系统框图如下图所示:
2.2 主控制电路
本设计设计中主控芯片采用STC89C52RC,其内部集成了CPU、RAM、ROM、定时器、I/O端口等模块,支持多种编程语言(如汇编和C语言),并且拥有丰富的外设接口,适合用于家电控制、工业自动化、传感器数据采集等领域。由于其架构成熟,学习资料丰富,成为电子工程师和学生学习嵌入式系统的热门选择。所用STC89C52RC芯片如下图所示:
时钟电路是为主控芯片提供稳定的时钟信号,常使用晶体振荡器。通过确定的振荡频率,主控芯片可以按照时序进行正常的工作和指令执行。根据系统需要,可以选择合适的晶体频率,通常使用10MHz或者12MHz晶体。
复位电路用于在系统上电或者复位时将主控芯片初始化为一个已知的状态,以确保系统在启动时正常工作。复位电路可以使用复位按钮或者上电复位电路,通过将主控芯片的复位引脚拉低一段时间来实现复位操作。主控制电路原理图如下图所示:
2.3 LCD1602显示电路
本次设计采用字符型液晶LCD1602作为电子秒表的显示器,其通过控制芯片的指令和数据,可以实时显示秒表时间,为用户提供良好的视觉体验。LCD1602显示电路原理图如下图所示:
2.4 键盘输入电路
本次设计采用三个独立式按键实现秒表开始、停止和清零操作。如下图、为键盘电路设计图,图中三个按键一端接公共端GND,另一端分别接单片机的I/O。三个按键接口分别接单片机的P1^3(SET)、P1^4(SET)、P3^4(SET)引脚,当单片机的相应引脚检测到低电平时,说明该引脚被触发,从而实现相应的动作。
2.5 声光报警模块电路
本次设计的报警系统设计采用有源蜂鸣器以及发光二极管LED实现声光报警功能。如下图为声光报警电路设计图,由于蜂鸣器是非信号类器件,单片机的I/O不可直接进行驱动,故而利用三极管的开关作用控制蜂鸣器的开关。如图中所示,BUZZER为蜂鸣器元件,Q1为S8550三极管,通过基极的电平状态从而控制三极管的开关,当单片机BEEP输出高电平时,三极管集电极导通,蜂鸣器通电,从而蜂鸣器发出声响,同时LED亮;当BEEP输出低电平时,三极管集电极处于截止状态,蜂鸣器没有电压从而不发声,LED灭。
三、系统软件设计
3.1 系统主程序设计
本系统是以51单片机为核心,设计的一款电子秒表。首先,进行系统的初始化,包括定时器0的初始化和IO的初始化。然后,判断是否按下启动按键,若按下启动按键,则启动定时器0,秒表开始工作,否则继续判断是否按下停止按键。若停止按键按下,则关闭定时器0,秒表暂停工作,否则继续判断清零按键是否按下。若清零按键按下,则时分秒数据清零,然后进行时分秒数据显示,否则,直接进入时分秒数据显示,整体软件设计的流程图,如下图所示:
3.2 LCD1602显示程序设计
本次设计采用LCD1602字符型液晶屏作为显示器,通过IO口驱动LCD1602液晶屏,使用方式非常简单。以下为LCD1602读取显示数据流程图,首先进行初始化配置,配置相关指令。接下来进入显示数据工作中,首先确定显示坐标,然后写入显示数据。具体流程图如下图所示。
四、仿真测试
在制作实物前,使用Protues软件,对设计方案进行仿真验证,仿真结果如下所示:
经测试,电子秒表的启动、停止、清零和报警功能仿真顺利达到预期效果。
五、系统调试
4.1 硬件调试
本次设计采用立创EDA设计出了PCB电路板线路图,该软件是一款高性能、开发方便的EDA软件,该软件能够完成原理图绘制和PCB设计。本次采用该软件绘制出来整个系统的电路图,以及PCB图,在设计过程中要注意以下几点:
(1)线宽规则:地线铺铜,电源线宽大于信号线宽。
(2)走线不能直角,尽量45度转角。
(3)电源电路和信号电路尽量隔远。
(4)电源线从滤波电容布线输出。
如下图为PCB板设计布线调试图。
4.2 软件调试
软件调试主要在KEIL5 MDK平台上进行软件bug调试,通过对软件中编译的问题进行修改和调试。本次设计主控是基于STM32F103C8T6的,开发环境是基于KEIL5,通过新建工程、创建主程序、创建子程序、编译、下载调试等步骤,先写出一个小模块,然后点击编译按钮,然后增加完善到最后的理想结果。
4.3 系统调试
最后一步就是硬件整体测试了,主要运用万用表、直流电源和示波器对焊接好的板子进行整体调试,主要检查每一个器件是不是都正常工作了,主要分为两个环节动态调试和静态调试。其中静态调试主要分为以下三种:
1.肉眼观察。主要观看焊接点是否饱满,以及相连器件之间是否相连或者器件管脚没有焊接好,出现短路现象。
2.使用万用表调试。首先查看电源是否短路,然后测量管脚是否连接正确,有没有接线错误。
3.上电检查。在完成第一步和第二步都没有问题,接下来就可以上电了,上电以后观看每个器件是否正常工作,然后在逐一测试功能。
动态调试。动态调试主要是静态调试没有任何问题,做最后一步检查,就是每个器件能否正常工作,能否满足我系统开发的功能,防止器件内部损坏,影响系统性能。
六、实物测试
通过对本次设计的硬件电路设计,最终做出电路板,将电路各个模块进行焊接。在焊接时应该注意先后顺序,先焊接电路模块,将电路接口和电源开关焊接好后,接通电源。接下来利用万用表测试各个电源点是否正常,测试正常后进入下一步的焊接。焊接顺序按照先焊接电源和主控制单片机部分,先焊接小元件再焊接大元件的方式,最终焊接完成。焊接实物图如下图所示:
按下启动按键(左数第一个按键),电子秒表开始计时,LED和蜂鸣器开始以1s为间隔开始工作,测试结果如下图所示:
按下停止按键(左数第二个按键),电子秒表开始暂停计时,LED和蜂鸣器暂停工作,测试结果如下图所示:
按下清零按键(左数第三个按键),电子秒表计时清零,重新从00:00:00开始计时,测试结果如下图所示:
按下复位键(左数第四个按键),系统回归到初始状态。 经测试,系统达到预期设计功能。实物演示视频链接:电子秒表演示视频-CSDN直播
总结
本次设计顺利完成预期设计功能,设计源码、PCB原理图、仿真以及实物视频等见下百度网盘链接:https://pan.baidu.com/s/1My986II93Bm66YU0vQdMUw?pwd=fnq3
提取码: fnq3