📄 imax7219.asm
字号:
$INCLUDE(C8051F020.INC)
CTT1 DATA 070H
DAT DATA 022H
CTT2 DATA 071H
DIN BIT P1.1
LOAD BIT P1.2
CLK BIT P1.3
ORG 0000H
AJMP START
ORG 0100H
START: MOV WDTCN,#0DEH
MOV WDTCN,#0ADH
CLOCK: MOV OSCXCN,#076H
CLR A
DJNZ ACC,$
DJNZ ACC,$
WAIT: MOV A,OSCXCN
JNB ACC.7,WAIT
ORL OSCICN,#10000000B
ORL OSCXCN,#80H
SETT: MOV XBR2,#40H
MOV P1MDOUT,#0FFH
MOV TMOD,#11H
TEST: CLR LOAD
MOV DAT,#09H //硬件译码
LCALL SEND
MOV DAT,#0FFH
LCALL SEND
SETB LOAD
NOP
NOP
NOP
CLR LOAD
MOV DAT,#0AH //强度7
LCALL SEND
MOV DAT,#07H
LCALL SEND
SETB LOAD
NOP
NOP
NOP
CLR LOAD
MOV DAT,#0BH //限扫7
LCALL SEND
MOV DAT,#03H
LCALL SEND
SETB LOAD
NOP
NOP
NOP
CLR LOAD
MOV DAT,#0CH// 启动
LCALL SEND
MOV DAT,#01H
LCALL SEND
SETB LOAD
NOP
NOP
NOP
;MOV DAT,#0FH// TEST
;ACALL SEND
;MOV DAT,#00H
;ACALL SEND
CLR LOAD
MOV DAT,01H // 1
LCALL SEND
MOV DAT,01H
LCALL SEND
SETB LOAD
NOP
NOP
NOP
CLR LOAD
MOV DAT,02H // 1
LCALL SEND
MOV DAT,01H
LCALL SEND
SETB LOAD
NOP
NOP
NOP
CLR LOAD
MOV DAT,03H // 1
LCALL SEND
MOV DAT,01H
LCALL SEND
SETB LOAD
NOP
NOP
NOP
CLR LOAD
MOV DAT,04H // 1
LCALL SEND
MOV DAT,01H
LCALL SEND
MOV R2,#20
SETB LOAD
ACALL DELAY10MS //1S
; MOV DAT,#0CH // SHUTDOWN
; ACALL SEND
; MOV DAT,#00H
; ACALL SEND
JMP EXIT
DELAY10US:MOV TH0,#0FFH //DELAY 10 US
MOV TL0,#0F7H
SETB TR0
LOOP1: JBC TF0,LOOP2
SJMP LOOP1
LOOP2: CLR TR0
CLR TF0
DJNZ R0,DELAY10US
RET
SEND: MOV R0,#08H
SENDLOOP: NOP
NOP
NOP
NOP
NOP
CLR CLK
NOP
NOP
NOP
MOV C,DAT.7
MOV DIN,C
NOP
NOP
NOP
SETB CLK
MOV A,DAT
RL A
MOV DAT,A
DJNZ R0,SENDLOOP
;SETB LOAD
RET
DELAY10MS:MOV TH1,#03CH //DELAY 50 MS
MOV TL1,#0B1H
SETB TR1
LOOP3: JBC TF1,LOOP4
SJMP LOOP3
LOOP4: CLR TR1
CLR TF1
DJNZ R2,DELAY10MS
RET
EXIT: AJMP EXIT
RET
END
//MOV DAT,#0FH //TEST
// ACALL SEND
// MOV DAT,#00H
// ACALL SEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -