📄 c.asm
字号:
$INCLUDE(C8051F020.INC)
BIT_COUNT DATA 07FH
TIMER DATA 07EH
TIMER1 DATA 07DH
TEN DATA 07CH
DATA_IN DATA 020H
DATA_OUT DATA 021H
DIN BIT P1.1
LOAD BIT P1.2
CLK BIT P1.3
ORG 0000H
JMP START
ORG 0100H
START:
mov WDTCN, #0deh ; disable watchdog timer
mov WDTCN, #0adh
mov OSCXCN, #67H ; enable external crystal
; oscillator at 12MHz
clr A ; wait at least 1ms
djnz acc,$ ; wait ~512us
djnz acc,$ ; wait ~512us
osc_wait: ; poll for XTLVLD-->1
mov a, OSCXCN
jnb acc.7, osc_wait
orl OSCICN, #08h ; select external oscillator as
; system clock source
orl OSCXCN, #80h ; enable missing clock detector
CP1INIT: mov CPT1CN, #080h ; Comparator 1 Control Register
mov A, #010h
djnz ACC, $
anl CPT1CN, #not(30h)
mov EIP1, #040h
MOV TIMER,#50
;MOV XBR2,#044H
MOV XBR2,#40H ;EMIFLE=1
MOV XBR1,#00000000B
//MOV XBR0,04H
MOV P0MDOUT,#0FFH
MOV P1MDOUT,#0FFH
MOV P2MDOUT,#0FFH
MOV P3MDOUT,#0FFH
MOV P1MDIN,#0FFH
DELAY0: MOV TIMER1,#255
DELAY1: DJNZ TIMER1,DELAY1
DJNZ TIMER,DELAY0
CODES: MOV DATA_OUT,#09H
ACALL SEND
MOV DATA_OUT,#0FFH
ACALL SEND
//DECODE MODE
MOV DATA_OUT,#00001010B
ACALL SEND
MOV DATA_OUT,#7
ACALL SEND
//INTENSITY
MOV DATA_OUT,#00001011B
ACALL SEND
MOV DATA_OUT,#7
ACALL SEND
//SCAN LIMIT
MOV DATA_OUT,#00001100B
ACALL SEND
MOV DATA_OUT,#1
ACALL SEND
//CLOSE
MOV DATA_OUT,#00001111B
ACALL SEND
MOV DATA_OUT,#00H
ACALL SEND
//TEST
//ACALL DELAY1S
// MOV DATA_OUT,#01H
// ACALL SEND
// MOV DATA_OUT,#09H
// ACALL SEND
;ACALL DELAY1S
//MOV R0,#010H
//MOV R1,#00000000B
// MOV DATA_OUT,#02H
//ACALL SEND
// MOV DATA_OUT,#00H
//ACALL SEND
AJMP EXIT
SEND: MOV BIT_COUNT,#8 ;发送字符子程序
CLR LOAD
SEND_LOOP:
MOV C,DATA_OUT.7
MOV DIN,C
SETB CLK
NOP
NOP
MOV A,DATA_OUT
RL A
MOV DATA_OUT,A
CLR CLK
NOP
NOP
DJNZ BIT_COUNT,SEND_LOOP
;ACALL SHORT_DELAY
RET
LONG_DELAY: MOV TIMER,#255 ;延时约200US
DELAY_LOOP: DJNZ TIMER,DELAY_LOOP
RET
SHORT_DELAY: MOV TIMER,#23 ;延时约20US
SHORT_LP: DJNZ TIMER,SHORT_LP
RET
DELAY1S: MOV TIMER,#200 ;延时约1S
DELAY10: MOV TIMER1,#20
DELAY11: CLR A
DJNZ ACC,$
DJNZ ACC,$
DJNZ TIMER1,DELAY11
DJNZ TIMER,DELAY10
RET
EXIT: JMP EXIT
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -