打印

04_51入门知识积累_数码管

[复制链接]
580|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
导语
数码管/LED 点阵是嵌入式系统中常见的显示方案,我们通过数码管可以将代码运行的结果可视化出来,是一种常见的显示器件,相对于屏幕,数码管成本低,被广泛的运用在各类小型家电,工业控制中。学会使用数码管,对于理解C语言控制GPIO有着很大的帮助。
数码管
数码管本质上是多个发光的LED等封装在一起,通过不同的LED灯点亮,使得数字或者符号显示出来,常见的由八段数码管,包括小数点在内共有8个LED灯封装在一起,其显示符号范围较广,配合封装显示可有更广泛的显示,被广泛使用。
其他更复杂的如米字数码管可以显示数字和26个英文字母,但其控制更加复杂,不常使用。
由于采用LED灯作为显示光源,由此数码管也存在共阴极和共阳极,其共阴极和共阳极控制有所区别。

通过选择这些数码管的开启,其dp,gfedcba的端口顺序排列可以产生一个8位2进制数来表示亮灭信息,并在C51中用HEX放在uchar数组中进行使用。
//共阴极:位选为低电平(即0)选中数码管, 各段选为高电平(即1接+5V时)选中各数码段(0~f) //共阴数码管段选表,无小数点:unsigned char code distab[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管段选表,有小数点:unsigned char code distab[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};//共阴数码管位选表-8个unsigned char code   distab[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};//位选/*******************************************************************************************************************/ //共阳极:位选为高电平(即1)选中数码管, 各段选为低电平(即0接地时)选中各数码段(0~f) //共阳数码管段选码表,无小数点:unsigned char code distab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管段选码表,有小数点:unsigned char code distab[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78, 0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};//共阳数码管位选表-8个unsigned char code   distab[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//位选
1位八段数码管一般会引出9个引脚,其中7个引脚显示数字(或某些字母),1个显示小数点,1个作为片选端。
n位一般引出n + 8引脚,n个片选引脚,8个显示引脚为共享引脚。
静态显示
何为片选信号? 以共阴极为例,其公共引脚为低电平时,其他8个控制引脚的电平才有效果。若为高电平,则IO操作对当前位置无效。
当片选信号全部打开时,8个显示IO的操作将显示在两位数码管上,这就是数码管的静态显示,
动态显示
利用人眼的视觉暂留,快速的切换数码管的片选信号,同时切换位选信号(8个显示IO的电平操作),便可以达到在人眼看来可以显示多位数字0-99。通过增加更多的数码管,便可以显示更多的系统状态。
缺陷与对策
我们可以直接将数码管直接接在单片机的IO上去驱动,但在多数的时候,我们不会去这样做。多位数码管将在系统中占用大量的IO,在一些IO丰富的单片机上这算不了什么,但在对于引脚较少的单片机中,我们可以通过增加外围电路来解决这个问题。
锁存器
对于常见于单片机学习板上多以锁存器为主,如74HC573芯片,包含八路3态输出的非反转透明锁存器。锁存器同它的名字一样,他可以将一些信号锁上并”保存“起来。

当锁存使能端LE为高时,这些器件的锁存对于数据是透明的。单片机的输入会直接通过芯片传向数码管。即D端口和O端口相连。
当锁存使能变低时,单片机的输入对于74HC573芯片的输出不在有影响,当输入的数据消失时,在芯片的输出端,数据仍然保持;即芯片输出取决于使能变低前输入的数据,旧数据可以保持,继续控制数码管。
这样我们就可以使用8个IO与对应的2个芯片使能IO,控制8位数码管,其具体代码实现可去理解例程,本文不做解释。
数码管显示驱动芯片
CH450 是一款数码管显示驱动芯片,可以用于驱动 6 位数码管或 48 点 LED 矩阵,可通过I2C接口与单片机进行通信。

其数码管被广泛运用,理解GPIO与锁存器便可以熟练使用数码管器件。
元器件是电路良好运行的基本保证,找元器件现货上唯样商城,原厂授权正品保障,品类齐全。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

40

帖子

0

粉丝