📄 max7219.asm
字号:
ORG 0000H
AJMP MAX7219
ORG 0100H
MAX7219:DIN BIT P2.0 ;定义变量
CLK BIT P2.2
LOAD BIT P2.1
LED_BF EQU 50H ;显示数据首址
AJMP MAIN
MAIN: MOV SP,#70H
MOV 50H,#08H
MOV 51H,#07H
MOV 52H,#03H
MOV 53H,#04H
MOV 54H,#04H
MOV 55H,#04H
MOV 56H,#04H
MOV 57H,#04H
LCALL PROCESS ;设置MAX7219起始值
LCALL DISPLAY ;显示
WAIT:
SJMP WAIT
;*************MAX7219初始化子程序************
;A中存储高八位(地址),B中存储第八位(数据)
PROCESS:MOV A,#0BH ;设置扫描界限
MOV B,#07H
LCALL W_7219
MOV A,#09H ;设置8位译码
MOV B,#0FFH
LCALL W_7219
MOV A,#0AH ;设置亮度
MOV B,#09H
LCALL W_7219
MOV A,#0CH ;设置正常工作方式
MOV B,#01H
LCALL W_7219
RET
;***************MAX7219显示子程序*******************
DISPLAY:MOV R0,#LED_BF ;设置显示区首址
MOV R4,#01H ;第一个LED
MOV R3,#08H ;显示个数
C_DISP: MOV A,@R0
MOV B,A
MOV A,R4
LCALL W_7219
INC R0 ;数据地址增一
INC R4 ;LED增一
DJNZ R3,C_DISP
RET
W_7219: CLR LOAD ;置LOAD=0
LCALL SD_7219 ;传送7219的地址
MOV A,B
LCALL SD_7219 ;传送数据
SETB LOAD ;数据装载
RET
SD_7219:MOV R6,#08H ;向7219送地址或数据
C_SD: NOP
CLR CLK
RLC A
MOV DIN,C
NOP
SETB CLK
DJNZ R6,C_SD
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -