8×8点阵LED原理及应用
作者:华信培训来源:本站原创点击数:5672更新时间:2005-6-30
为配合《实验108×8LED扫描输出实验》,特给出8×8点阵LED的工作原理。
图(1)为8×8点阵LED外观及引脚图,其等效电路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
图(1)8×8点阵LED外观及引脚图
图(2)8×8点阵LED等效电路
图(3)8×8点阵LED电路原理
点阵LED扫描法介绍
点阵LED一般采用扫描式显示,实际运用分为三种方式:
(1)点扫描;
(2)行扫描;
(3)列扫描。
若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。
若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
如图3所示。
下面是一个用P1口控制扫描,用74HC164控制显示输出,使8×8点阵LED显示一个“×”的例程。
如图(3)所示。
CLK EQU P3.2
DINA EQU P3.3
DINB EQU P3.4
CLEAR EQU P3.5
ORG0000H
AJMP MAIN
ORG0100H
MAIN:
MOV SP,#70H;设堆栈指针
MOV50H,#07EH;设置发送的列数据(X0~X7<A~H>)列数据编码,列为阴极,行为阳极(由于实验中74HC164输出至LED点阵之间接有一非门驱动电路,故行为低电平有效)
MOV51H,#0BDH
MOV52H,#0DBH
MOV53H,#0E7H
MOV54H,#0E7H
MOV55H,#0DBH
MOV56H,#0BDH
MOV57H,#07EH
CLR CLEAR;初始化I/O口
SETB CLK
SETB DINA
SETB DINB
SETB CLEAR
mainloop:
mov r6,#8h;设置扫描次数
mov dptr,#09000h;读取扫描端口数据
MOV R1,#50H;指定列数据指针
flashcy:
MOV A,@R1;读取列数据
MOV R0,A
INC R1;列数据指针加1
CLR A
MOVC A,@A+DPTR
MOV P1,#0FFH
LCALL SENDTO
MOV P1,A
INC DPTR
LCALL DELAY
DJNZ R6,flashcy
SJMP MAINLOOP
sendto:;发送数据子程序
PUSH ACC
CLR CLK
SENDTIME:
MOV R7,#08H
MOV A,R0
CLR C
SENDCY:
RRC A
MOV DINA,C
SETB CLK
CLR CLK
DJNZ R7,SENDCY
POP ACC
RET
DELAY:MOV R7,#01;延时子程序
DELAY0:MOV R4,#17
DELAY1:MOV R3,#28
DJNZ R3,$
DJNZ R4,DELAY1
DJNZ R7,DELAY0
RET
ORG09000H
DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH;Y0~Y7(列扫描) end。