基于AT89C51单片机的秒表设计与实现
2018-08-07张翠云
张翠云
单片机相当于微型计算机。因为它具有体积小、质量轻、价格便宜的特点,所以为应用和开发提供了便利条件。单片机已应用在生活的方方面面,如智能仪表、家用电器等。秒表是一种常用的计时仪器,比如在实验室、智力对抗比赛、运动场等场合,就会经常用到秒表。高精度数字化秒表的出现,给人们的生活提供了方便,已经取代了传统的机械秒表[1-3]。本文结合单片机,设计了一种基于AT89C51单片机的精度为0.01 s的数字秒表,并且在仿真软件Proteus环境下,实现了所设计秒表的各种功能。
1 系统整体设计方案
1.1 系统具体功能要求
(1)秒表计时范围00.00秒~60.00秒。
(2)显示部分采用四位七段数码管,其中前两位显示“10秒、秒”,后两位显示“0.1秒、0.01秒”。
(3)秒表具有功能:“开始”、“暂停/继续”、“复位”。
(4)键盘设置:键1→开始计时;键2→暂停/继续计时;键3→复位,清零计时。
1.2 系统总体框图
本数字秒表设计要对时间实行实时计时,精度达到0.01秒,并且通过功能键进行开始计时、暂停/继续计时、复位计时。系统主要包括时钟电路、复位电路、键盘电路、显示电路。系统的整体组成框图如图1所示。
图1 系统整体组成框图
2 硬件设计
图2 秒表硬件电路
数码管显示有静态显示和动态显示,静态显示程序结构简单,显示稳定,但是占用端口比较多;动态显示程序复杂,但是所使用的端口比较少,可以节省单片机的I/O口。本系统数码管显示采用动态显示,其中段码通过470Ω限流电阻与单片机P2口相接,四位位选通过PNP三极管与单片机P1口的P1.3、P1.2、P1.1、P1.0相连接,以增加P1口的驱动能力。三个功能键一端接在P3口的P3.2(开始)、P3.1(暂停/继续)、P3.0(复位),另一端接地,实现系统的开始、暂停/继续、复位功能。秒表的硬件设计电路如图2所示。
3 软件设计
软件设计分两部分,一部分是按键程序设计;另一部分是0.01秒、0.1秒、秒、10秒程序设计。
图3 按键程序设计流程图
3.1 按键程序设计
按键功能有:开始、暂停(继续)、复位。这三个按键一端 分 别 接 在 P3.0、P3.1、P3.2,另外一端接地。单片机上电,数码管显示00.00,按下“开始”按钮,开始以0.01秒为单位计时,按下“暂停(继续)”按钮,数码显示停在当前计时置,比如“23.57”, 如 果 需 要 从“00.00”开始计时,按下复位键;如果需要继续在“23.57”的基础上开始计时,再次按下“暂停(继续)”按钮,当数码管时间到“60.00”时,按下“开始”按钮重新开始计时。按键程序设计流程图如图3所示。
图4 0.01秒、0.1秒、秒、十秒程序设计流程图
3.2 0.01秒、0.1秒、秒、10秒程序设计
该电路的最小计时单位为0.01秒,溢出向高位进位,最大计时值60.00秒。在进行软件设计时,采用0组寄存器R0、R1、R2、R3中数值来判断0.01秒、0.1秒、秒、10秒是否向高位进位。初始化R0、R1、R2、R3中数值都为零。每经过0.01秒,R0+1→R0;经过0.1秒,R1+1→R1;经过1秒,R2+1→R2;经过10秒,R3+1→R3。具体0.01秒、0.1秒、秒、10秒程序设计流程图如图4所示。
4 仿真
本设计通过软件prote⁃us进行仿真,以验证设计的可靠性。Proteus软件是由英国Labcenter公司开发的,是目前世界上最先进最完善的电路设计与仿真平台之一。J.Proteus仿真软件具有国际通用的虚拟仪器及电子元器件库,可以仿真模拟电路、数字电路,以及数字、模拟混合电路[4-6],还能仿真单片机外围器件[7-8]。
启动【Proteus】;选择【System】,进行页面和其他参数的设置;选择【Library】—拾取元件来进行元件的选取和布局,元件的初步布局,连线,完成电路整体布局[5-6]。
(1)单片机上电,数码管显示“00.00”,按下“开始”按钮,开始计时,按下“暂停(继续)”按钮,数码管计时停在当前数值,比如“23.59”。仿真结果如图5所示。
(2)此时,按下“复位”按钮,数码管显示“00.00”,重新开始从零计时,如果按下“暂停(继续)”按钮,数码管从23.59秒开始计时直到59.99秒→60.00秒。仿真结果如图6所示。
图5 “暂停”按钮仿真结果
图6 “继续”按钮仿真结果
5 结束语
本文从硬件设计和软件编程两方面详尽地介绍了基于单片机的智能秒表控制系统的设计。并通过Proteus软件仿真整体电路系统,仿真结果验证了该秒表设计原理正确。与普通电子秒表系统相比,本设计除带有计时开始、暂停(继续)和复位功能以外,另外实现了0.01 s高精度的计时功能,并且硬件结构紧凑、简单和软件设计灵活,宜用电池作为电源,因此具有一定的推广和使用价值。然而不足的是:单片机AT89C51有32个并行I/O引脚,本设计只用到了15个引脚,所以其功能还有较大的扩展空间。