吴光明
(陕西中医药大学,陕西 咸阳 712046)
信息时代, 计算机技术引领着产学研的发展潮流, 单片微机的应用更是充斥生产、 生活的各个角落。 以51 系列单片机为代表的微型计算机具有高性能、低成本、强通信的优点。 伴随加工技术的不断飞跃, 单片机的可用范围愈来愈广,在信息技术领域占有举住轻重的地位。 自人类需要计时就诞生的秒表,有较长的历史。最初靠机械驱动的模拟式秒表,从关键性能看有较大缺陷。高精度高分辨力的数字化秒表,大大拓宽了秒表原先的功能。 基于数字电路的数显秒表,可用元件多,结构也各不同。本文从虚拟仿真的设计角度,选择Proteus 和Keil 软件交互配合,成功实现了一种基于AT89C51 单片机的00-59 数显秒表的整套设计。
(1)计时范围0~59 秒。
(2)由两位七段LED 数码管显示。
(3)三键实现开始、中暂、复位功能。
基于单片机最小系统,即电源电路、时钟电路和复位电路,附加二极管显示电路,构成计秒实时显现系统。
系统采用两位七段共阴极数码管, 数据口与AT89C51 单片机的P0 和P2 端口相接,P0 口驱动显示秒的十位,而P2 口驱动显示秒时间的个位。该电路可满足对计时时间的显示,精度为1s,溢出后向前进位,计时的范围为0 到59 秒。P3 口的低三位连接3 个功能按钮,实现系统的初始、中暂和清零。 系统的整体结构框图如图1 所示。
图1 系统结构框图
由于本系统对处理速度和I/O 资源无过多要求,只借助单片机实现两位时间显示、 附加定时/计数的中断,Atmel 公司出产的AT89C51 单片机就满足要求[1]。 AT89C51 具备在线调试功能,经过JTAG 接口下载、调试和固化控制程序,可结合软件实时仿真和在线或离线编程,还能在线升级、维护。 本设计选取MSC-51 系列AT89C51 单片机,物美价廉,经济便推广。
时钟电路为系统提供工作的时间基准[2]。 在AT89C51 单片机的XTAL1 和XTAL2 两个管脚, 接两只电容并一只晶振就构成了本系统的时钟电路,如图2 所示。 电路中, 对振荡频率起微调作用的C1 和C2, 选用30pF。 石英晶体震荡器频率选用12MHz。它具有很强的抗外界干扰和稳频率能力[3]。
图2 时钟电路
为使CPU 和系统中的其他功能模块都能从一个确定的初始状态开始,需要复位电路。即在系统刚通电时,或断电断气产生故障后都需复位。从RST 引脚输入到芯片的施密特触发器中完成AT89C51 的复位信号传输[4]。当振荡器稳定且系统已开始正常工作时,如果RST引脚有一个高电平而且维持24 个振荡周期,则CPU 响应实现系统复位。 系统复位电路如图3 所示。
图3 复位电路
显示电路由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 显示电路
系统软件由主程序板块、 延时板块、 键盘扫描板块以及数码管驱动板块组成[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 程序流程图
在keil 环境下编译程序生成.hex 文件加载到proteus 中运行。 图6 为初始状态,图7 截取的系统13秒暂停界面。
图6 系统零点状态
图7 系统运行仿真图
本文利用Proteus 和Keil 软件,基于AT89C51 单片机设计了具有起、 停及清零功能的数字化计时秒表。在制造前进行了仿真,预期效果完美。硬件电路结构简单,计时精度高,为后续开发类似更大范围计时仪器提供了参考。