| 為配合《實(shí)驗(yàn)10 8×8LED掃描輸出實(shí)驗(yàn)》,特給出8×8 點(diǎn)陣LED的工作原理。      圖(1)為8×8點(diǎn)陣LED外觀及引腳圖,其等效電路如圖(2)所示,只要其對(duì)應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點(diǎn)亮,則Y0=1,X0=0即可。應(yīng)用時(shí)限流電阻可以放在X軸或Y軸。點(diǎn)陣LED掃描法介紹  點(diǎn)陣LED一般采用掃描式顯示,實(shí)際運(yùn)用分為三種方式: (1)       點(diǎn)掃描;  (2)       行掃描; (3)       列掃描。 若使用第一種方式,其掃描頻率必須大于16×64=1024Hz,周期小于1ms即 可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺(jué)暫留要求。此外一次驅(qū)動(dòng)一列或一行(8顆LED)時(shí)需外加驅(qū)動(dòng)電路提高電流,否則LED亮度會(huì)不足。如圖3所示。下面是一個(gè)用P1口控制掃描,用74HC164控制顯示輸出,使8×8點(diǎn)陣LED顯示一個(gè)“×”的例程。如圖(3)所示。   CLK EQU       P3.2 DINA      EQU       P3.3 DINB      EQU       P3.4 CLEAR   EQU       P3.5   ORG       0000H AJMP   MAINORG       0100H  MAIN:        MOV      SP,#70H          ;設(shè)堆棧指針        MOV      50H,#07EH     ;設(shè)置發(fā)送的列數(shù)據(jù)(Y0~Y7)        MOV      51H,#0BDH        MOV      52H,#0DBH        MOV      53H,#0E7H        MOV      54H,#0E7HMOV      55H,#0DBH         MOV      56H,#0BDH        MOV      57H,#07EH        CLR      CLEAR             ;初始化I/O口        SETB      CLK        SETB      DINA        SETB     DINB        SETB  CLEAR  mainloop:        mov         r6,#8h              ;設(shè)置掃描次數(shù)        mov        dptr,#09000h    ;讀取掃描端口數(shù)據(jù)        MOV      R1,#50H          ;指定列數(shù)據(jù)指針    flashcy:                  MOV      A,@R1            ;讀取列數(shù)據(jù)MOV      R0,A         INC        R1                    ;列數(shù)據(jù)指針加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:                                     ;發(fā)送數(shù)據(jù)子程序        PUSH      ACC        CLR      CLK SENDTIME:MOV      R7,#08H         MOV      A,R0        CLR       C SENDCY:                      RRC       A        MOV      DINA,C        SETB      CLK        CLR        CLKDJNZ      R7,SENDCY         POP       ACC        RET DELAY:  MOV     R7,#01        ;延時(shí)子程序 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 |