📄 11111111111.asm
字号:
$INCLUDE(C8051F020.INC)
CTT1 DATA 070H
DAT1 DATA 021H
DAT2 DATA 022H
CTT2 DATA 071H
DIN BIT P1.1
LOAD BIT P1.2
CLK BIT P1.3
ORG 0000H
JMP START
ORG 0100H
START: MOV WDTCN,#0DEH
MOV WDTCN,#0ADH
CLOCK: MOV OSCXCN,#067H
CLR A
DJNZ ACC,$
DJNZ ACC,$
WAIT: MOV A,OSCXCN
JNB ACC.7,WAIT
ORL OSCICN,#80H
ORL OSCXCN,#80H
SETT: MOV XBR2,#40H
MOV P1MDOUT,#0FFH
MOV TMOD,#11H
TEST: ; CLR LOAD
MOV DAT1,#09H //硬件译码
MOV DAT2,#0FFH
LCALL SEND
; CLR LOAD
MOV DAT1,#0AH //强度5
MOV DAT2,#04H
LCALL SEND
; CLR LOAD
MOV DAT1,#0BH //限扫7
MOV DAT2,#03H
LCALL SEND
; CLR LOAD
MOV DAT1,#0CH// 启动
MOV DAT2,#01H
LCALL SEND
; CLR LOAD
; MOV DAT1,#0FH
; MOV DAT2,#00H
; LCALL SEND
; CLR LOAD
MOV DAT1,#01H // 1
MOV DAT2,#05H
LCALL SEND
; CLR LOAD
MOV DAT1,#02H // 2
MOV DAT2,#08H
LCALL SEND
; CLR LOAD
MOV DAT1,#03H // 3
MOV DAT2,#05H
LCALL SEND
; CLR LOAD
MOV DAT1,#04H // 4
MOV DAT2,#04H
LCALL SEND
MOV R5,#240 // delay 600ms
KEEP: MOV R1,#240
LCALL DELAY10US
DJNZ R5,KEEP
; MOV R2,#20
; ACALL DELAY10MS //1S
MOV DAT1,#0CH // SHUTDOWN
MOV DAT2,#00H
LCALL 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 R1,DELAY10US
RET
SEND: MOV R0,#08H
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
;MOV A,#20
;DJNZ ACC,$
RET
EXIT: AJMP EXIT
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -