📄 esffffsfesfesf.asm
字号:
BUF0 EQU 2BH
BUF1 EQU 2AH
BUF2 EQU 28H
BUF3 EQU 27H
Y EQU 25H
Y0 EQU 24H
X0 BIT ACC.0
X1 BIT ACC.1
X2 BIT ACC.2
X3 BIT ACC.3
ORG 00H
MAIN:
MOV R0,#00H
MOV R1,#00H
MOV R3,#01H
MOV A,P1
CPL A
ANL A,#0FH
MOV BUF0,A
NEXT:
MOV C,X0
JNB X1,NCEX
CPL C
NCEX:
ANL A,#00EH
JNZ DR
CPL C
DR:
RR A
INC R0
MOV X3,C
MOV Y0,A
CJNE R0,#04H,NEXT
MOV R0,#00H
INC R1
CJNE R1,#01H,K1
MOV BUF1,Y0
ANL BUF1,#0FH
K1: CJNE R1,#02H, K2
MOV BUF2,Y0
ANL BUF2,#0FH
K2: CJNE R1,#03H, NEXT
MOV BUF3,Y0
MOV A,BUF0
LCALL SHOW
MOV A,BUF1
LCALL SHOW
MOV A,BUF2
LCALL SHOW
MOV A,BUF3
LCALL SHOW
AJMP MAIN
SHOW:
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV P0,A
MOV P2,R3
LCALL DELAY
MOV A,R3
RL A
MOV R3,A
DELAY:
MOV R6,#2
D1:
MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
TAB1:
DB 03FH;0
DB 006H;1
DB 05BH;2
DB 04FH;3
DB 066H;4
DB 06DH;5
DB 07DH;6
DB 007H;7
DB 07FH;8
DB 06FH;9
DB 077H;A
DB 07CH;b
DB 039H;C
DB 05EH;d
DB 079H;E
DB 071H;F
END
BUF0 EQU 2BH
BUF1 EQU 2AH
BUF2 EQU 28H
BUF3 EQU 27H
DATE EQU 26H
COUNT0:
MOV BUF0,#0BH
MOV BUF1,#0EH
MOV BUF2,#01H
MOV BUF3,#02H
MOV R0,#00H
MOV R2,#01H
MOV R3,#10H
MOV R4,#00H
MOV R5,#00H
MOV R6,#00H
MOV R7,#00H
MOV A,BUF0
CPL A
ANL A,#00FH
MOV BUF0,A
MOV A,BUF1
CPL A
ANL A,#00FH
MOV BUF1,A
MOV A,BUF2
CPL A
ANL A,#00FH
MOV BUF2,A
MOV A,BUF3
CPL A
ANL A,#00FH
MOV BUF3,A
MOV A,BUF1
RL A
RL A
RL A
RL A
MOV R1,BUF0
ORL A,R1
MOV R1,#01H
BACK:
DJNZ R3,BEGIN
MOV A,R4
LCALL SHOW0
AJMP COUNT0
BEGIN:
INC R0
CJNE R0,#05H,PQ
MOV R0,#01H
CJNE R2,#01H, S1
INC R2
LCALL CHANGE1
S1: CJNE R2,#02H,PQ
LCALL CHANGE2
PQ:
MOV 24H,A
ANL A,#03H
JZ COUNT
NEXT1:
MOV A,24H
RR A
MOV R6,A
JMP BACK
COUNT:
INC R4
MOV R7,A
MOV A,R5
XRL A,R3
JZ SUB1
L:
MOV 25H,R3
DEC R3
MOV A,R3
MOV R5,A
MOV R3,25H
MOV A,R7
SJMP NEXT1
SUB1:
DEC R4
JMP L
CHANGE1:
RL A
RL A
RL A
RL A
ANL A,#0F0H
MOV R1,BUF2
ORL A,R1
SWAP A
JMP PQ
CHANGE2:
MOV A,R6
RL A
RL A
RL A
RL A
ANL A,#0F0H
MOV R1,BUF3
ORL A,R1
SWAP A
JMP PQ
SHOW0:
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#80H
LCALL DELAY
DELAY: MOV R5,#2
D1: MOV R6,#2
D2: MOV R7,#2
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TAB1:
DB 03FH;0
DB 006H;1
DB 05BH;2
DB 04FH;3
DB 066H;4
DB 06DH;5
DB 07DH;6
DB 007H;7
DB 07FH;8
DB 06FH;9
DB 077H;A
DB 07CH;b
DB 039H;C
DB 05EH;d
DB 079H;E
DB 071H;F
END
///////////////////////////////////
BUF0 EQU 2BH
BUF1 EQU 2AH
BUF2 EQU 28H
BUF3 EQU 27H
Y EQU 21H
Y0 EQU 20H
X0 BIT ACC.0
X1 BIT ACC.1
X2 BIT ACC.2
X3 BIT ACC.3
ORG 00H
AJMP MAIN
ORG 23H
AJMP RSINT
ORG 30H
MAIN:
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0F9H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F9H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
SETB EA;以上完成通讯初始化设置
SETB ES
MOV R0,#00H
MOV R1,#00H
MOV R3,#01H
MOV A,R5
SETB P3^5
JNB P3^5 ,REL
LCALL DELAY
JMP GO
REL: MOV A,P1
CPL A
GO:
ANL A,#0FH
MOV BUF0,A
NEXT:
MOV C,X0
JNB X1,NCEX
CPL C
NCEX:
ANL A,#00EH
JNZ DR
CPL C
DR:
RR A
INC R0
MOV X3,C
MOV Y0,A
CJNE R0,#04H,NEXT
MOV R0,#00H
INC R1
CJNE R1,#01H,K1
MOV BUF1,Y0
ANL BUF1,#0FH
K1: CJNE R1,#02H, K2
MOV BUF2,Y0
ANL BUF2,#0FH
K2: CJNE R1,#03H, NEXT
MOV BUF3,Y0
JNB P3^6, COUNT0
MOV A,BUF0
LCALL SHOW
MOV A,BUF1
LCALL SHOW
MOV A,BUF2
LCALL SHOW
MOV A,BUF3
LCALL SHOW
SJMP MAIN
RSINT:
CLR RI
MOV R5,SBUF
RETI
RSINT1:
MOV SBUF,A
LCALL DELAY
RETI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -