赞
踩
一:认识数码管
四位数码管是一种常见的电子显示设备,它能够显示数字0~9以及一些字母和符号。四位数码管通常由七个发光二极管(或八个,其中包括一个小数点)组成,这些发光二极管的组合可以显示不同的数字和字符。四位数码管的工作原理是基于数字电路中的七段显示译码器。当输入一个四位二进制数时,七段显示译码器会将该二进制数转换为对应的七段二进制输出,从而控制七个发光二极管的亮灭状态,显示出相应的数字或字符 数码管是一种利用LED的显示器件,普通的数码管在内部集成了八个数码管,分别组成了对应的段,由于数字只需要七个段就可以,所以有的数码管内部只有七段,称为七段数码管,八段数码管的多余的段被用在小数点上,形成了可以显示小数点数据的显示器件。
根据数码管内部的连接方式,所以数码管又分为共阳数码管(低电平点亮)与共阴数码管(高电平点亮),共阳数码管内部是将所有LED的正极接在一起组成的公共端接电源+5V,只需要控制对应的LED负极就可以显示数字, 所以共阳级低电平才能点亮,共阴极与共阳级刚好相反,共阴极数码管内部将LED的负极接在一起形成公共端接地 0V,只需要控制对应的LED正极就能够显示数字,所以共阴极数码管高电平点亮。
数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。
数码管内部是由多个发光二极管封装在一起组成,他们可以有很多种颜色,很多种外形,很多种样式,但是本质来说他们都是通过点亮内部的LED来显示的,只要面板做好了,理论可以显示任意的字符或者图案
数码管可以分为共阳极和共阴极两类。共阳极中,所有的LED阳极都连接到一个公共接点(COM),而每个LED的阴极为a、b、c、d、e、f、g及dp(小数点)。对于共阴极,所有的LED阴极连接到公共接点,而每个LED的阳极为a、b、c、d、efg及dp(小数点)。显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。
二:数码管的原理
控制原理: 数码管显示有分为静态显示和动态显示,静态显示特点是在同一时间上所有位显示是相同的数值,显示单一无法满足更多的需求。往往使用更加更多的是动态显示,程序设计会更加复杂。动态显示可以实现六位数码管上内容都不一样比如显示742347这个数。首先,准备工作我们需在输入的二进制数前进行补零,补零的个数由十进制数位数决定,故234有三位数需要12个零。第一个脉冲到来进行BCD码的判断,当BCD码大于4则加3,反之BCD码保持不变。再将输入的二进制向BCD码移入一位,第二个脉冲到来又进行BCD码的判断,重复上述过程至第八个脉冲判断移位结束,第九个脉冲取出转换结果给数据驱动模块
上图为开发板中动态数码管模块电路图,我们可以从电路图中看出。动态数码管的上端分别为LED1-8,通过控制LED1-8的电平来控制某一位的数码管显示,称之为:位选;。上图为开发板中动态数码管模块电路图,我们可以从电路图中看出。动态数码管的上端分别为LED1-8,通过控制LED1-8的电平来控制某一位的数码管显示,称之为:位选;
宏观上所有的数码管都是同时亮的,所以人以为所有数码管同时工作,所以多个数码管可以合在一起来显示。微观上数码管是依次亮的,我们可以给不同的数码管送不同的段码,所以不同的数码管可以显示不同的数字。所以相当于几个数码管的显示是独立的
三:前缀代码
声明一个数组meg_code,保存数字0-9的字码。并写上延时函数,如果延迟很短就还会有较严重的阴影,如果延迟很长,就会出现流水灯的现象。
1位数码管只能显示1位数字,但是如果需要显示多位数字就需要多个数码管同时工作,这也是数码管的缺点,那就是显示的数字越多,数码管就越多,占用的端口也就越多,那么,弥补这种缺点的方法就是数码管的动态显示,所谓动态显示,就是依次向每位数码管送出字形码的同时控制公共端的电平,每一位数码管之间利用延时程序进行延时,当延时程序非常短时,由于发光管的余辉和人眼视觉暂留作用,此时我们的人眼就分辨不出位与位之间有延时存在,此时就感觉各位数码管同时都在显示。使用for循环循环10次,逐个显示0-9,这样就能 使用一个数码管显示数字0-9.
四:认识74HC138译码器
显示一个数码管之后要显示8个数码管就很简单了。由于这样接线太占用IO端口了,所以我们选用一个译码器来减少IO口的使用,用3个口控制8个口,这个译码器叫74HC138。74HC138共有16个引脚,分为四个独立的部分,每个部分包含输入、输出和使能引脚。具体引脚配置如下。74HC138由四个独立的反相器组成,每个反相器具有一个输入引脚和一个输出引脚。当输入引脚接收到高电平信号时,输出引脚会输出低电平信号;反之,当输入引脚接收到低电平信号时,输出引脚会输出高电平信号。通过控制使能引脚G1、G2、G3的状态,可以选择不同的反相器路径。
数码管显示电路使用74HC138译码器产生位选信号,同样,为了节省GPIO,74HC138的使能控制端在硬件上均设置为恒有效(E1、E2连接GND,恒为低电平;E3连接VCC,恒为高电平)。因此,程序中操作数码管时只需控制三个地址数据输入端(A0、A1、A2)去选中8个数码管中的待操作的数码管即可。
三个地址数据输入端(A0、A1、A2)是如何选中8个数码管中的一个的,这就要看74HC138译码器的真值表了(74HC138译码器的真值表如下图所示)。
发送选位信号,选择指定数码管。
按照以上代码重复步骤就可以实现8个数码管显示数字了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。