专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

单片机驱动8×8点阵LED

作者:佚名   来源:本站原创   点击数:  更新时间:2007年06月21日   【字体:

  LED原理及其控制技术

  一、什么是LED?

  LED是light-emitting diode的缩写,在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。

  二、LED电子显示屏的特点优势所在

  LED电子显示屏作为一种现代电子媒体,以其灵活的显示面积(可分割、任意拼装)、高亮度、长寿命、大容量、数字化、实时性的特点,是其他任何一种媒体所不可替代的。

  LED电子显示屏充分运用现代信息技术,将声、光、电、机等学科整合并完美组合、集视频、动画、字幕、图片于一体的高科技信息发布的终端产品。LED显示屏还可延伸到网络、通讯、综合布线、监控、广播等弱电系统

图(1)为8×8点阵LED外观及引脚图,其等效电路如图(2)所示,只要其对应的XY轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1X0=0即可。应用时限流电阻可以放在X轴或Y轴。

 

图(18×8点阵LED外观及引脚图

 

 

图(28×8点阵LED等效电路

 

 

图(38×8点阵LED电路原理

 

点阵LED扫描法介绍

点阵LED一般采用扫描式显示,实际运用分为三种方式:

(1)       点扫描;

(2)       行扫描;

(3)       列扫描。

若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即

可。若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8LED)时需外加驱动电路提高电流,否则LED亮度会不足。如图3所示。

 

  下面是一个用P1口控制扫描,用74HC164控制显示输出,使8×8点阵LED显示一个“×”的例程。如图(3)所示。

 

CLK EQU       P3.2

DINA      EQU       P3.3

DINB      EQU       P3.4

CLEAR   EQU       P3.5

 

ORG       0000H

AJMP   MAIN

ORG       0100H

MAIN:

       MOV      SP,#70H          ;设堆栈指针

       MOV      50H,#07EH     ;设置发送的列数据(Y0~Y7)

       MOV      51H,#0BDH

       MOV      52H,#0DBH

       MOV      53H,#0E7H

       MOV      54H,#0E7H

       MOV      55H,#0DBH

       MOV      56H,#0BDH

       MOV      57H,#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

 

ORG       09000H

DB   0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH      ;X0~X7(列扫描)

 

end

关闭窗口