?? 8x8 led.asm
字號:
RS_CNT EQU 31H
DSP_CNT EQU 34H ;顯示模式
ORG 00H
START: MOV RS_CNT,#00H
MOV DSP_CNT,#00H ;顯示模式初始值
MOV DPTR,#SWITCH ;設置程序跳轉表首地址
A0: MOV A,DSP_CNT
ADD A,DSP_CNT ;雙字節指令,偏移量乘2
JMP @A+DPTR ;根據顯示模式值跳轉
SWITCH: SJMP DSP_0 ;程序跳轉表
SJMP DSP_1
SJMP DSP_2
SJMP DSP_3
DSP_0: MOV P0,#00H ;顯示模式0,行線全部置0
MOV A,#01H ;列掃描碼初值
L0: MOV P3,A ;輸出顯示
LCALL DELAY
RL A ;列掃描碼移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L0 ;模式0顯示完畢?
INC DSP_CNT ;顯示下一模式
MOV RS_CNT,#00H
LJMP A0
DSP_1: MOV P0,#00H ;顯示模式1,行線全部置0
MOV A,#80H ;列掃描碼初值
L1: MOV P3,A ;輸出顯示
LCALL DELAY
RR A ;列掃描碼移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L1 ;模式1顯示完畢?
INC DSP_CNT ;顯示下一模式
MOV RS_CNT,#00H
LJMP A0
DSP_2: MOV P3,#0FFH ;顯示模式2,列線全部置1
MOV A,#7FH ;行掃描碼初值
L2: MOV P0,A ;輸出顯示
LCALL DELAY
RR A ;行掃描碼移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L2 ;模式2顯示完畢?
INC DSP_CNT ;顯示下一模式
MOV RS_CNT,#00H
LJMP A0
DSP_3: MOV P3,#0FFH ;顯示模式3,列線全部置1
MOV A,#0FEH ;行掃描碼初值
L3: MOV P0,A ;輸出顯示
LCALL DELAY
RL A ;行掃描碼移位
INC RS_CNT
MOV R0,RS_CNT
CJNE R0,#24,L3 ;模式3顯示完畢?
MOV DSP_CNT,#00H ;顯示下一模式
MOV RS_CNT,#00H
LJMP A0
DELAY: MOV R5,#10 ;延時子程序
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -