找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1581|回復(fù): 0
收起左側(cè)

16*64點(diǎn)陣LED 單片機(jī)源代碼

[復(fù)制鏈接]
ID:743549 發(fā)表于 2020-5-6 21:05 | 顯示全部樓層 |閱讀模式
以下是4個(gè)16×16點(diǎn)陣LED電子顯示屏的源程序,分別采用匯編及C語言編寫,C程序在Keil 51環(huán)境下調(diào)試。
(1)匯編源程序
;********************************
;4字16×16點(diǎn)陣電F屏字符顯示器*
;*    AT89C52    12 MHz晶振   *
;*******************************
;顯示字用查表法,不占內(nèi)存,用4個(gè)16×16共陽LED點(diǎn)陣顯示
;效果:向上滾動(dòng)顯示字,每次4個(gè),重復(fù)循環(huán)
;R2:行掃描地址(00H~0FH)。
;R3:滾動(dòng)顯示時(shí)控制移動(dòng)速度,也可控制靜止顯示的時(shí)間
;*******中斷入口程序*********
    ORG    0000H
    LJMP   START
    ORG    0003H
    RETI
    ORG    000BH
    LJMP    INTT0
    ORG    0013H
    RETI
    ORG    001BH
    RETI
    ORG    0023H
    RETI
    ORG    002BH
    RETI
;*******主程序************
START:MOV    20H,#00H    ;清標(biāo)志,00H為l幀掃描結(jié)束標(biāo)志
    MOV    A,#0FFH    ;端口初始化
    MOV    P1, A
    MOV    P2, A
    MOV    P3, A
    MOV    P0,A
    CLR     Pl.6            ;串行寄存器輸入/輸出端控制位
    MOV    TMOD, #01H    ;使用T0作16位定時(shí)器,行掃描用
    MOV    TH0,  #0FCH    ;1ms初值(12 MHz)
    MOV    TL0,  #18H
    MOV    SCON, #00H    ;串口0方式傳送顯示字節(jié)
    MOV    IE,  #82H      ;T0中斷允許,總中斷允許
    MOV    SP,  #70H
    LCALL    DIS1         ;顯示準(zhǔn)備,黑屏,1.5 s
MAIN: MOV    DPTR,#TAB
    LCALL    MOVDISP    ;逐排顯示,每次4字)
    MOV    DPTR,#TAB
    LCALL    MOVDISP1   ;滾動(dòng)顯示,每排4字)
    AJMP    MAIN
;***************4字逐排顯示子程序*******
;每次4字移入移出顯示方式,入口時(shí)定義好DPTR值
MOVDISP:MOV    R1,#6       ;顯示6排字,每排4字(R1=排數(shù))
DISLOOP: MOV    R3,#100     ;每排顯示時(shí)間為16 ms×100=1.6 s
DISMOV: MOV    R2,#00H     ;第0行開始
       SETB    TR0          ;開掃描(每次l幀)
WAITMOV:JBC    00H,DISMOV1 ;標(biāo)志為1,掃描l幀結(jié)束(16 ms為1幀,每行1 ms)
       AJMP   WAITMOV
DISMOV1:DJNZ    R3,DISMOV  ;1幀重復(fù)顯示(控制顯示時(shí)間)
       MOV    A,#128       ;顯示字指針移1排(每排4字×32= 128字)
       ADD    A, DPL
       MOV    DPL, A
       MOV    A,#0
    ADDC   A, DPH
    MOV    DPH,A
    DEC    R1         ;R1為0,顯示完
    MOV    A,R1
    JZ    MOVOUT
    AJMP    DISLOOP
MOVOUT:RET                ;移動(dòng)顯示結(jié)束
;********************4字滾動(dòng)顯示子程序*****************
;每排4字向上移出顯示方式,入口時(shí)定義好DPTR值
MOVDISP1:MOV    R1,#255     ;向上移動(dòng)顯示6排字,每排4字(R1=排數(shù)×16)
DISLOOP1: MOV    R3,#10      ;移動(dòng)速度為16 ms×10= 0.16 s
DISMOV2:  MOV    R2,#00H    :第0行開始
         SETB   TR0          ;開掃描(每次1幀)
WAITMOV1: JBC    00H,DISMOV3;標(biāo)志為1掃描1幀結(jié)束(16 ms為1幀,每行1 ms)
         AJMP   WAITMOV1
DISMOV3:  DJNZ   R3,DISMOV2  ;1幀重復(fù)顯示(控制移動(dòng)速度)
         INC    DPTR          ;顯示字指針移1行(2字節(jié)位置)
         INC    DPTR
         DEC    R1         ;R1為0,顯示完
         MOV    A,R1
         JZ    MOVOUT1
         AJMP    DISLOOP1
MOVOUT1:  RET                ;移動(dòng)顯示結(jié)束

LED點(diǎn)陣16X64源程序.rar

548.95 KB, 下載次數(shù): 7, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表