基于51单片机的数码管设计

电子说

1.2w人已加入

描述

导语

数码管/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与锁存器便可以熟练使用数码管器件。

元器件是电路良好运行的基本保证,找元器件现货上唯样商城,原厂授权 正品保障,品类齐全。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分