宋昕一,万宏飞
(上海理工大学,上海,200093)
随着社会的不断进步与发展,不同类型与性能的数码管相继发明出现。数码管可以显示数字与相应信息,其亮度高、控制简单、性能稳定、呈现速度即时等诸多优点,使得数码管在电子设计应用中得到广泛应用。本文运用Proteus仿真软件,利用汇编语言进行编码,将程序写入并编译仿真实现数码管的动态显示与设计。
Proteus是一款高性能的EDA工具软件,配置有完善的电子设计开发环境,器件库齐全,功能形象。可进行原理图设计、搭建、仿真,PCB设计等多功能操作。支持C51、ARM、DSP诸多处理器。在软件中进行虚拟仿真,力求实证现实;在Proteus软件中可直接在原理图搭建完成后,进行编译输出得到结果,进行实时电路分析与实物仿真。Proteus软件大大缩短了设计时间,降低器件损耗的开发成本,途径灵活,仿真结果准确,在实际开发与教学中得到广泛应用。
定时器T0/T1的结构如图1所示,其中振荡器经12分频后作为定时器的时钟脉冲,T1引脚为外部计数脉冲输入端,通过开关进行选择。反相器,或门,与门共同构成启/停控制信号。TH和TL为加1计数器,TF为中断标志。每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON。
图1 定时器T0(T1)结构图
利用单片机U1 P3.0口进行脉冲的输出,通过定时器模式选择与初值的设定,完成定时器定时功能的实现。运用定时器进行端口定时控制,实现每1ms高低电平变换。就可以实现一个占空比为50%的矩形脉冲输出。
利用单片机U1 P3.0口输出的脉冲连接到单片机U2的中断INT0口P3.2,通过脉冲的高低电平变换触发中断0,进行脉冲个数的计数,再通过数码管显示出数字信息。中断INT0口P3.2连接有示波器可观察脉冲波形的高低变化。
此设计中主要使用两片AT89C51单片机,利用中断实现对8个集成共阳级LED灯数码管的动态显示与计数。
如图2所示,通过按下U1机的中断INT0口P3.2连接的按键开始进行脉冲的产生与计数,单片机U1产生脉冲并通过数码管显示脉冲产生数;单片机U2接收脉冲同时也通过数码管显示脉冲接收数字。当按下按键时开始产生并传送脉冲,通过一个VSM counter timer进行计数验证的准确与否。按下按键后发现两个多位数码管同时显示并跳转同样的数字,并且计数器也显示。
图2 电路设计图
如图3所示,还可修改电路设计,使单片机U1显示所有高低脉冲产生数,调整单片机U2功能,使其显示高脉冲的产生数,即单片机U1对应数码管的计数值为U2的2倍。
图3 修改后计数效果
通过调整定时器的模式与初值设定,改变定时器定时功能,进行端口定时控制,即可修改脉冲高低电平变换的时间,从而能够根据实际需求进行不同时间模式的计数。
最后通过示波器验证观察所产生的脉冲是否正确,通过调节示波器上的时间和幅度旋钮可以观察到矩形方波的产生。如图4所示。
图4 示波器脉冲波形
本文所设计的数码管动态显示及计数的流程图如图5、如图6所示。
图5 主程序流程图
图6 计数显示流程图
本文利用Proteus软件设计并仿真了数码管的动态显示与计数。仿真表明,该设计可通过调节脉冲时间实现不同模式的时间计数显示,且电路设计简单,控制稳定,可广泛应用于电子设计的显示电路中。