📄 m7219d.asm
字号:
; 这是三片MAX7219级连显示24位LED时所用汇编程序, 文件名为
; M7219D.ASM 。三片MAX7219级连,是在两片MAX7219级连的基础上,
; 再加一片。连法和两片相连类似。第三片的12脚、13脚依次接第二
; 片的12脚、13脚,第三片的第1脚接第二片的第24脚。
; 功能:本程序主要是将显示缓冲区的24位数在LED上显示出来,因所
; 用单片机为华邦的W77E58,所用显示缓冲区分两部份,第一
; 部份为单片机的内部DATA RAM区的40H,41HH,...,4FH连续的
; 16个字节, 第二部份为单片机的内部XDATA区的0050H,0051H,...,
; 0057H连续的8个字节, 这里显示的3个8位数依次为0.1234567,
; 3.1415926,0.12655361。其中扫描界、数码亮度、译码方式均
; 可选,参见程序中的注释 。
PMR EQU 0C4H
DIN EQU P0.0
LOAD EQU P0.1
CLK EQU P0.2
ORG 0000H
LJMP MAIN
ORG 0050H
MAIN: MOV SP,#0CFH
CLR EA
MOV PMR,#01H
MOV 40H,#06H ;0.12655361
MOV 41H,#03H
MOV 42H,#05H
MOV 43H,#05H
MOV 44H,#06H
MOV 45H,#02H
MOV 46H,#01H
MOV 47H,#80H
MOV 48H,#06H ;3.1415926
MOV 49H,#02H
MOV 4AH,#09H
MOV 4BH,#05H
MOV 4CH,#01H
MOV 4DH,#04H
MOV 4EH,#01H
MOV 4FH,#83H
MOV DPTR,#0050H ;0.1234567
MOV A,#07H
MOVX @DPTR,A
INC DPTR
MOV A,#06H
MOVX @DPTR,A
INC DPTR
MOV A,#05H
MOVX @DPTR,A
INC DPTR
MOV A,#04H
MOVX @DPTR,A
INC DPTR
MOV A,#03H
MOVX @DPTR,A
INC DPTR
MOV A,#02H
MOVX @DPTR,A
INC DPTR
MOV A,#01H
MOVX @DPTR,A
INC DPTR
MOV A,#80H
MOVX @DPTR,A
NOP
SETB LOAD
LCALL INI2
LCALL DISP
SJMP $
INI2:MOV R2,#0CH ;选择扫描界0-7
MOV R3,#01H
MOV R4,#01H
MOV R7,#01H
LCALL WRIT
MOV R2,#0AH ;选择码亮度 01-0FH
MOV R3,#01H
MOV R4,#01H
MOV R7,#01H
LCALL WRIT
MOV R2,#09H ;选择译码方式00,0FFH
MOV R3,#0FFH
MOV R4,#0FFH
MOV R7,#0FFH
LCALL WRIT
MOV R2,#0BH ;选择正常工作状态00,01
MOV R3,#07H
MOV R4,#07H
MOV R7,#07H
LCALL WRIT
RET
DISP: MOV R5,#8
MOV R0 ,#40H
MOV R1 ,#48H
MOV DPTR,#0050H
MOV R2 ,#1
LOP3: MOV A,@R0
MOV R3 ,A
MOV A,@R1
MOV R4 ,A
MOVX A,@DPTR
MOV R7 ,A
LCALL WRIT
INC R0
INC R1
INC R2
INC DPTR
DJNZ R5, LOP3
RET
WRIT: CLR LOAD
MOV A,R2
LCALL SEND
MOV A,R3
LCALL SEND
MOV A,R2
LCALL SEND
MOV A,R4
LCALL SEND
MOV A,R2
LCALL SEND
MOV A,R7
LCALL SEND
CLR LOAD
NOP
NOP
SETB LOAD
NOP
RET
SEND:
MOV R6,#08H
LOP1: NOP
NOP
CLR CLK
RLC A
MOV DIN,C
NOP
NOP
SETB CLK
DJNZ R6,LOP1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -