📄 主代码.txt
字号:
ORG 0000H ;初始化
ADRR1 EQU 20H
ADRR2 EQU 1000H
AJMP MAIN
ORG 0023H
AJMP OK
ORG 0040H
MAIN:
MOV R0,#ADRR1
MOV R7,#07H
MOV R5,#06H
MOV R6,#00H
MOV DPTR,#ADRR2
MOV A,#12H
MOVX @DPTR,A
INC DPTR
MOV A,#0FFH
MOVX @DPTR,A
INC DPTR
MOV A,#0AAH
MOVX @DPTR,A
INC DPTR
MOV A,#55H
MOVX @DPTR,A
INC DPTR
MOV A,#12H
MOVX @DPTR,A
INC DPTR
MOV A,#12H
MOVX @DPTR,A
MOV TMOD,#20H ;设置定时器T1为模式2
MOV TH1,#0E8H ;设置初值波特率为1200b/s(fosc=11.059MHz)
MOV TL1,#0E8H
SETB TR1
MOV SCON,#50H ;置串行口方式1,允许接收
SETB ES
SETB EA
SJMP $
OK: JBC RI,LOOP ;中断子程序
CLR TI
SJMP ENDT
LOOP:
CLR RI
MOV A,SBUF ;20H-26H存储数据
MOV @R0,A
INC R0
DJNZ R7,ENDT
MOV R7,#07H
MOV R3,#06H
MOV R0,#ADRR1
MOV A,#00H
SJMP LOOP1
LOOP1:
ADD A,@R0
INC R0
DJNZ R3,LOOP1
CJNE A,26H,ENDT
MOV R0,#ADRR1
MOV A,#11H
CJNE A,24H,NEXT ;判别是否11号水箱,否,跳转
MOV A,#11H
CJNE A,25H,NEXT1 ;判别是否11号操作,否,跳转
MOV 2CH,#00H
SJMP SEND
;MOV A,#66H
;MOV SBUF,A
;SJMP ENDT
NEXT:MOV A,#22H
CJNE A,24H,ENDT ;判别是否22号水箱,否,跳转
MOV A,#11H
CJNE A,25H,NEXT2 ;判别是否11号操作,否,跳转
MOV 2CH,#01H
SJMP SEND
;MOV A,#88H
;MOV SBUF,A
;SJMP ENDT
NEXT1: MOV A,#22H
CJNE A,25H,ENDT ;判别11号水箱是否22号操作,否,跳转
MOV 2CH,#02H
SJMP SEND
;MOV A,#77H
;MOV SBUF,A
;SJMP ENDT
NEXT2: MOV A,#22H
CJNE A,25H,ENDT ;判别22号水箱是否22号操作,否,跳转
MOV 2CH,#03H
SJMP SEND
;MOV A,#99H
;MOV SBUF,A
;SJMP ENDT
SEND: MOV TMOD,#20H ;发送主程序
MOV TH1,#0E8H
MOV TL1,#0E8H
SETB TR1
MOV SCON,#50H
SETB ES
SETB EA
MOV DPTR,#ADRR2
SJMP SEND1
SEND1: ;发送子程序
MOVX A,@DPTR
MOV SBUF,A
JNB TI,$
CLR TI
INC DPTR
ADD A,R6
MOV R6,A
DJNZ R5,SEND1
;MOV A,R6
MOV SBUF,A
MOV R7,#07H
MOV R3,#06H
MOV R0,#ADRR1
MOV R5,#06H
MOV R6,#00H
SJMP ENDT
ENDT:
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -