一个简单实用的控制七段数码器的显示方法
玩过单片机的朋友对数码管真是熟悉的不能再熟悉了,无论从哪款单片机入手,数码管这个是必须要学的,但是对于没学过单片机的朋友可能就没那么熟悉了,甚至都不知道怎么去控制显示它,因为它的引脚太多了,如果不用芯片来控制它,那简直太难了操作了。
我们文章主要针对初学者,所以简单介绍一下数码管的显示原理,这样学起来更容易理解,七段或八段数码管内部是由LED组成的,又分为共阳极数码管和共阴极数码管,所谓共阳极就是内部LED的正极全部连接在一块,共阴极也是如此,所以我们在控制数码管显示的时候本质就是控制数码管内部的LED灯的亮灭。
先看一下图片更深入了解一下
有了这两张图片对我刚才说的那句话更深入地了解了一下吧,我们控制数码管就是为了让LED亮,由于数码管中LED 较多,想最少的七段数码管就有7个LED,如果用手来控制这七个LED的亮灭,这未免太难了,所以我们可以用单片机来控制,通过给单片机写入程序来控制IO的输出,从而驱动数码管。
由单片机控制数码管的原理图
单片机是一定可以的但是用单片机成本还有知识水平都相应的提高,开发者在很早的时候就设计出了控制数码管的芯片。今天就给大家说一种共阳极的七段数码管显示译码器74LS247,这款芯片一共16个引脚,关于引脚功能可以参考下图
A0、A1、A2、A3既是信号输入信号,这个是二进制输入,LT是灯测试输入端,低电平有效,当其是低电平的时候,无论A0-A3是什么信号,数码管均全亮显示8,RBI是灭零输入端,也是低电平有效,当3号端口输入高电平,4号和5号端口输入低电平,若A0-A3为低电平,数码管均灭,BI为灭灯输入端,当4号端口为低电平,无论其它管脚输入信号如何,数码管均灭。
除此之外具体功能见下图
在正常显示的时候,数码管根据我们的输入信号A0-A2而显示出来,例如我们输入000,那么二进制转化为十进制就是0,那么数码管上就显示0,我们输入111,二进制转化为十进制就是7,那么数码管上就显示7。
这种方法我们只需要控制三个端口就可以了,相比于8个端口便捷了很多,不知道大家看懂了没有,这种方法还是比较便捷的,无论是用单片机控制还是其他方式,供大家参考,还是以个人习惯为主。
详解数码管显示控制
数码管种类繁多,按外观来划分,可以分为七段数码管、米字型数码管、点阵块等。图8-5所示为各种不同形状的数码管。
图8-5 各种不同形状的数码管
LED数码管结构与工作原理
单片机系统中常用的是七段数码管,它由8个发光二极管(以下简称字段)构成,如图8-6(a)图所示(注:由于小数点字段不常用,所以一般称为七段),通过不同的组合可以显示数字0~9、字符A~F、H、L、P、U、符号“-”及小数点“.”。
根据发光二极管物理连接的不同,七段数码管可以分为共阴极和共阳极两种结构。共阴极型数码管如图8-6(b)所示,所有字段的阴极均连接低电平,因此在使用共阴极数码时,需要在相应字段上加高电平,才会使其发光。共阳极数码管如图8-6(c)所示,所有字段的阳极均连接高电平,在使用时,需要在相应字段上加低电平。
图8-6 7段数码管结构
LED数码管字型编码
在单片机与数码管组成的应用系统中,一般将单片机的一个并口与数码管的8个段控制引脚连接,且按照口线位的顺序由低到高与a、b、c、d、e、f、g、h连接,这样,若要显示不同字符,只需应用单片机的口线输出相应的控制的电平就可以实现。向口线送的数据就是LED的字型编码。共阴和共阳的字型编码如表8-2所示。
表8-2 共阴和共阳的字型编码表
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态显式和动态显式两类。
LED数码管静态显示
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口线进行驱动,或者使用如BCD码、二–十进位解码器解码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口较多,如驱动5个数码管静态显示则需要5×8=40根I/O口线来驱动,而1个89S51单片机可用的I/O口线才32个。
2位共阳极数码管的静态显示电路如图8-7所示。
图8-7 2位共阳极数码管的静态显示电路原理图
显示数字12的C51程序如下:
LED数码管动态显示
数码管动态显示是单片机中应用最为广泛的显示方式,动态驱动是将所有数码管的8个同名端“a,b,c,d,e,f,g,h”连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
当单片机输出字形码时,所有数码管都接收到相同的字形码,究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制。通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示,不会有闪烁感,动态显示的效果和静态显示相同,并且能够节省大量的I/O口线,降低功耗。
2位共阳极数码管动态显示电路如图8-8所示。
显示数字12的C51程序如下:
图8-8 2位共阳极数码管动态显示电路原理图
相关问答
单片机 里的7SEG-MPX2-CC是什么?两位共阴七段数码管。7SEG表示七段数码管,MPX2-表示是两位,CC是表示共阴。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技...两位...
单片机 与 数码 管的连接?拿8段1位数码管做例子。8段指有8个LED,如果是共阴极的,那这8个LED的负极连在一起,正极不连。8个LED的8个正极分别连一个限流电阻,再接到单片机一个IO引脚上。...
单片机 六位数 数码 管怎么逆序输出?单片机六位数数码管逆序输出可以通过循环遍历数码管控制端口,逆序将各位数值向数码管内输送实现。可以先在程序中定义一个包含倒序数码管输出序列的数组,然后...
51 单片机 连接12位七 段数码 管,如何驱动(用三极管)?这么大的数码管需求量,建议你使用TM1640数码管驱动电路做系统,只需要就可以驱动16位8段数码管,而且只需要2个IO口。这么大的数码管需求量,建议你使用TM1640数...
简述 7段数码 动态管动态显示方式的工作原理?与静态方式相比有哪些优缺点?(1)静态显示方式:静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进...
51 单片机 8位 数码 管时钟程序?51单片机8位数码管时钟仿真实例,有程序可以参考,可以下载附件仿真试试。51单片机8位数码管时钟仿真实例,有程序可以参考,可以下载附件仿真试试。
用C语言写51 单片机 闹钟程序 - 132****9191 的回答 - 懂得#definep_outP1//宏定义4102输出的i/o口为P1//******************时间延迟函数**********************//描述:用指令1653实现延时一段时...
单片机 开发板上为何要用三极管驱动 数码管 ?-ZOL问答单片机开发板上面的常见单片机芯片的输出电流一般是20mA以内一个数码管的驱动电流大概是5mA左右若直接用单片机驱动数码管,则会导致单片机输出电流或者灌入电...
用C语言写51 单片机 闹钟程序 - 180****7518 的回答 - 懂得#definep_outP1//宏定义4102输出的i/o口为P1//******************时间延迟函数**********************//描述:用指令1653实现延时一段时...
单片机数码 管仿真的控制流程和仿真结果的步骤是什么?使用仿真软件Proteus可以实现单片机控制数码管显示的仿真。该仿真电路包括单片机的最小系统电路、数码管驱动电路,还需要进行编程。Proteus是支持程序联调的,运...