在51单片机关于数码管的实验电路中,采用的硬件是一个八位八段共阴极数码管,通过两个锁存器74HC573来控制。数码管电路的原理图如下图所示。
所谓“八位”指的是数码管上有八个子单元。每个子单元如下图所示。实际上开发板上的八位数码管是由两个四位八段共阴数码管组成。
所谓“八段”指的是每个子单元由8个发光二极管组成,如上图所示,八段分别为:A、B、C、D、E、F、G、DP。
数码管按照连接方式可以分为共阴数码管和共阳数码管。二者的区别在于每一位的8个发光二极管是阴极连接在一起还是阳极连接在一起。共阴数码管的阴极连接在一起,共阳数码管的阳极连接在一起。
开发板上包含了2个四位八段共阴数码管。数码管的内部原理图如下图所示。
数码管的管脚图如下图所示。
由以上两个图可以看出,虽然4位8段共阴数码管中有32个发光二极管,但是数码管引出的管脚只有12个。首先是每一位的发光二极管的阴极连接在了一起,总共引出了4个阴极。其次,四位的名称相同的阳极都是连接在一起的一共有8个阳极。因此数码管只有12个管脚。由于数码管的这个构造,4位数码管使用相同的阳极,决定了要想在4位上显示不同的数字,必须采用扫描的方式来显示。
数码管扫描的方式是:先给阳极赋值需要显示的第一位的段码,然后令第一位的阴极为低电平,其余位为高电平,这样第一位有显示;经过一段时间之后,再向阳极赋值第二位的段码,然后令第二位的阴极为低电平,其余位为高电平,这样第二位有显示;同理来显示第三位和第四位。把显示的时间间隔调节到适当的值,由于人眼的视觉暂留现象,感觉4位数码管是同时显示的。 开发板上的八位数码管是由两个四位八段共阴数码管组成的。扫描时,需要由第一位扫描到第八位。共阴数码管显示数字和字母的段码如下图所示。
开发板上采用两片74HC573来驱动数码管。74HC573是锁存器,它的内部逻辑图如下图所示。
上图中,D0~D7为数据输入,Q0~Q7为数据输出。Output Enable为输出使能端, Latch Enable为锁存使能端。74HC573的真值表如下表所示。
由真值表中可以看出,Output Enable为高电平时,无论Latch Enable与D端为何种电平状态,其输出都为高阻态,此时芯片处于不可控状态。所以在设计电路是我们直接将Output Enable接地,也就是74HC573一直处于使能状态。
当Output Enable为低电平,且Latch Enable为高电平时,D与Q同时为H或L。当Latch Enable为低电平时,无论D为何种电平,Q都保持上一次的数据状态。
锁存器就是把当前的状态锁存起来,使单片机发出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁存。锁存引脚高电平表示直通状态,为低电平表示锁存状态,可以通过控制锁存引脚,控制74HC573后端输出数据。两片74HC573,一片用来传输数码管的段码,另一片用来控制数码管的位选通。