00-59 数显秒表仿真设计

2021-04-13 07:28吴光明
科技视界 2021年7期
关键词:秒表数码管计时

吴光明

(陕西中医药大学,陕西 咸阳 712046)

0 引言

信息时代, 计算机技术引领着产学研的发展潮流, 单片微机的应用更是充斥生产、 生活的各个角落。 以51 系列单片机为代表的微型计算机具有高性能、低成本、强通信的优点。 伴随加工技术的不断飞跃, 单片机的可用范围愈来愈广,在信息技术领域占有举住轻重的地位。 自人类需要计时就诞生的秒表,有较长的历史。最初靠机械驱动的模拟式秒表,从关键性能看有较大缺陷。高精度高分辨力的数字化秒表,大大拓宽了秒表原先的功能。 基于数字电路的数显秒表,可用元件多,结构也各不同。本文从虚拟仿真的设计角度,选择Proteus 和Keil 软件交互配合,成功实现了一种基于AT89C51 单片机的00-59 数显秒表的整套设计。

1 系统方案设计

1.1 功能要求

(1)计时范围0~59 秒。

(2)由两位七段LED 数码管显示。

(3)三键实现开始、中暂、复位功能。

1.2 总体方案

基于单片机最小系统,即电源电路、时钟电路和复位电路,附加二极管显示电路,构成计秒实时显现系统。

系统采用两位七段共阴极数码管, 数据口与AT89C51 单片机的P0 和P2 端口相接,P0 口驱动显示秒的十位,而P2 口驱动显示秒时间的个位。该电路可满足对计时时间的显示,精度为1s,溢出后向前进位,计时的范围为0 到59 秒。P3 口的低三位连接3 个功能按钮,实现系统的初始、中暂和清零。 系统的整体结构框图如图1 所示。

图1 系统结构框图

2 硬件电路

2.1 单片机型号

由于本系统对处理速度和I/O 资源无过多要求,只借助单片机实现两位时间显示、 附加定时/计数的中断,Atmel 公司出产的AT89C51 单片机就满足要求[1]。 AT89C51 具备在线调试功能,经过JTAG 接口下载、调试和固化控制程序,可结合软件实时仿真和在线或离线编程,还能在线升级、维护。 本设计选取MSC-51 系列AT89C51 单片机,物美价廉,经济便推广。

2.2 时钟电路

时钟电路为系统提供工作的时间基准[2]。 在AT89C51 单片机的XTAL1 和XTAL2 两个管脚, 接两只电容并一只晶振就构成了本系统的时钟电路,如图2 所示。 电路中, 对振荡频率起微调作用的C1 和C2, 选用30pF。 石英晶体震荡器频率选用12MHz。它具有很强的抗外界干扰和稳频率能力[3]。

图2 时钟电路

2.3 复位电路

为使CPU 和系统中的其他功能模块都能从一个确定的初始状态开始,需要复位电路。即在系统刚通电时,或断电断气产生故障后都需复位。从RST 引脚输入到芯片的施密特触发器中完成AT89C51 的复位信号传输[4]。当振荡器稳定且系统已开始正常工作时,如果RST引脚有一个高电平而且维持24 个振荡周期,则CPU 响应实现系统复位。 系统复位电路如图3 所示。

图3 复位电路

2.4 LED 显示电路

显示电路由LED 显示器、 段位驱动电路组成,本设计使用了2 个共阴极数码管,择取的是动态控制方式。 把单片机系统区域中的P0.0/AD0-P0.7/AD7 端口用8 芯排线连接到四路静态数码显示模块区域中的任一个a-h 端口上; 要求:P0.0/AD0 对应着a,P0.1/AD1 对应着b,……,P0.7/AD7 对应着h。 把单片机系统区域中的P2.0/A8-P2.7/A15 端口用8 芯排线连接到四路静态数码显示模块区域中的任一个a-h 端口上;要求:P2.0/A8 对应着a,P2.1/A9 对应着b,……,P2.7/A15 对应着h。 显示电路连线如图4 所示。

图4 LED 显示电路

3 软件程序设计

系统软件由主程序板块、 延时板块、 键盘扫描板块以及数码管驱动板块组成[5]。当功能按键按下时,转入相应板块程序。

(1)在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60 时,就自动返回到0,重新秒计数。

(2)对于秒计数单元中的数据要把它十位数和个数分开,方法采用对10 整除和对10 求余。

(3)在数码上显示,通过查表的方式完成。

(4)一秒时间的产生在这里我们采用软件精确延时的方法来完成, 经过精确计算得到1 秒时间为1.002 秒。

DELY1S:MOV R5,#100

D2: MOV R6,#20

D1: MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

DJNZ R5,D2

RET

其主程序流程图如图5 所示。

图5 程序流程图

4 运行仿真

在keil 环境下编译程序生成.hex 文件加载到proteus 中运行。 图6 为初始状态,图7 截取的系统13秒暂停界面。

图6 系统零点状态

图7 系统运行仿真图

5 结论

本文利用Proteus 和Keil 软件,基于AT89C51 单片机设计了具有起、 停及清零功能的数字化计时秒表。在制造前进行了仿真,预期效果完美。硬件电路结构简单,计时精度高,为后续开发类似更大范围计时仪器提供了参考。

猜你喜欢
秒表数码管计时
畅游计时天地
腕表计时2.0
无时无刻不在冲刺的人生
12时计时法与24时计时法的互化
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
24时计时法
基于CC2500 的无线电子秒表系统