📄 n.asm
字号:
$INCLUDE(C8051F020.INC)
DAT1 DATA 021H
DAT2 DATA 022H
C0 DATA 072H
DIN BIT P1.1
LOAD BIT P1.2
CLK BIT P1.3
ORG 0000H
AJMP START
ORG 000BH
LJMP INT0
ORG 0100H
START: MOV WDTCN,#0DEH //SHUTDOWN WD
MOV WDTCN,#0ADH
EINT: SETB EA //ENABLE INT
SETB ET0
CLOCK: MOV OSCXCN,#076H // ENABLE EXTERNAL CLK
CLR A
DJNZ ACC,$
DJNZ ACC,$
DJNZ ACC,$
DJNZ ACC,$
WAIT: MOV ACC,OSCXCN
JNB ACC.7,WAIT
ORL OSCICN,#80H
ORL OSCXCN,#80H
SM7219: MOV XBR2,#040H //SET 7219
MOV P1MDOUT,#0FFH
ST0: MOV TMOD,#01H //SET T0 MD
ST7219: MOV DAT1,#09H //HARDWARE
MOV DAT2,#0FFH
LCALL SEND
MOV DAT1,#0AH // QIANGDU 5
MOV DAT2,#05H
LCALL SEND
MOV DAT1,#0BH //XIANSAO 1
MOV DAT2,#00H
LCALL SEND
MOV DAT1,#0CH //SET0FF
MOV DAT2,#01H
LCALL SEND
MOV R4,#00H
TEST: MOV DAT1,#01H //SCREEN
MOV DAT2,R4
LCALL SEND
LCALL T0
INC R4
SJMP TEST
SEND: MOV R0,#08H //SEND DATA TO 7219
CLR LOAD
MOV 040H,A
PUSH 040H
SENDLOOP: CLR CLK
MOV C,DAT1.7
MOV DIN,C
SETB CLK
MOV A,DAT1
RL A
MOV DAT1,A
DJNZ R0,SENDLOOP
SEND1: MOV R3,#08H
SENDLOOP1:CLR CLK
MOV C,DAT2.7
MOV DIN,C
SETB CLK
MOV A,DAT2
RL A
MOV DAT2,A
DJNZ R3,SENDLOOP1
SETB LOAD
POP 040H
MOV A,040H
RET
T0: MOV R1,#20 //1S
CLR PSW.1
LT0: MOV TH0,#03CH
MOV TL0,#0B0H
SETB TR0
WTLOOP: JNB PSW.1,WTLOOP
CLR TR0
DJNZ R1,LT0
RET
INT0: CLR TF0 //..INT
CLR TR0
SETB PSW.1
RETI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -