1.任务描述
在单片机控制系统中,常采用LED数码管来显示各种数字和符号。这种显示器显示清晰、亮度高、接口方便,广泛用于各种控制系统中。
本项目用单片机控制一个LED数码管。要求:数码管循环显示0~9这十个数,每个数字显示时间为0.5s。
2.总体设计

图4-15 LED数据管显示器系统结构图
按照要求完成LED数码管显示数字的设计任务,我们选择AT89S51单片机作为主控制器,系统硬件电路由单片机最小系统电路、LED数码管显示电路组成。LED数码管由7个(或8个)发光二极管构成,数码管有共阴极和共阳极两种结构,作为常用的输出设备,可以将数码管的各段分别连接于单片机的任一端口。
应用软件采用模块化设计方法,其主要由主程序和延时子程序组成,主程序架构采用循环结构实现数字的循环显示。延时子程序实现0.5s的延时。所显示字符的段码采用数组获取。即首先定义一个数组,数组中的元素依次为要显示的数字或字符的字形码,然后主程序依次取数组元素送输出口即可。系统结构如图4-15所示。
3.硬件设计
实现该项目的硬件电路中包含的主要元器件为:AT89S51 1片、共阴极数码管1个、12MHz晶振1个、电阻和电容等若干。该项目的原理图如图4-16所示。单片机的P1口接一个共阴极LED数码管组成显示电路。

图4-16 LED数码管显示器硬件电路原理图
4.软件设计
软件流程图如图4-17所示。(https://www.xing528.com)
源程序如下:

图4-17 LED数码管 显示器流程图


5.虚拟仿真与调试
LED数码管显示器的Proteus仿真硬件电路图如图4-18所示,在Keil μVision3与Proteus环境下完成LED数码管显示器的仿真调试。观察调试结果,LED可循环显示0~9这十个数,每个数字显示时间为0.5s。

图4-18 LED数码管显示器Proteus仿真硬件电路图
6.能力拓展
(1)让该LED数码管从9开始显示到0,再从头开始,如何实现?
(2)将共阴极数码管改为共阳极数码管,如何实现0~9依次显示?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
