从图 7-2 上可以看出,实在点阵 LED 点亮事理还是很大略的。在图中大方框外侧的便是点阵 LED 的引脚号,左侧的 8 个引脚是接的内部 LED 的阳极,上侧的 8 个引脚接的是内部LED 的阴极。那么如果我们把 9 脚置成高电平、13 脚置成低电平的话,左上角的那个 LED小灯就会亮了。下面我们就用程序来实现一下,特殊把稳,掌握点阵左侧引脚的 74HC138是事理图上的 U4,8 个引脚自上而下依次由 U4 的 Y0~Y7 输出来掌握。
那么同样的方法,通过对 P0 的整体赋值我们可以一次点亮点阵的一行,那么这次我们用程序来点亮点阵的第二行,对应的就须要编号 U4 的74HC138 在其Y1引脚输出低电平了。

#include <reg52.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
ENLED = 0; //U3、U4 两片 74HC138 总使能
ADDR3 = 0; //使能 U4 使之正常输出
ADDR2 = 0; //经 U4 的 Y1 输出开启三极管 Q11
ADDR1 = 0;
ADDR0 = 1;
P0 = 0x00; //向 P0 写入 0 来点亮一行
while(1); //程序停滞在这里
}
从这里我们可以逐步创造点阵的掌握事理了。我们前面讲了一个数码管便是 8 个 LED 小灯,一个点阵是 64 个 LED 小灯。同样的道理,我们还可以把一个点阵理解成是 8 个数码管。经由前面的学习已经节制了 6 个数码管同时显示的方法,那 8 个数码管也该当轻轻松松了。下面我们就利用定时器中断和数码管动态显示的事理来把这个点阵全部点亮。







