📄 用单片机控制水温.txt
字号:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV DPTR,#1000H ;显示器初始化
MOV A,#01H
MOVX @DPTR,A
MOV A,#06H
MOVX @DPTR,A
MOV A,#0EH
MOVX @DPTR,A
;P1.6为继电器接口
KEYBOARD: ACALL KS1
JNZ LK1
AJMP KEYBOARD
LK1: ACALL TM12S
ACALL KS1
JNZ LK2
AJMP KEYBOARD
LK2:
MOV R0,#4
BACK: CJNE R0,#4,M1
AJMP WRITE1
M1: CJNE R0,#3,M2
AJMP WRITE2
M2: CJNE R0,#2,M3
AJMP WRITE3
M3: CJNE R0,#1,M4
AJMP WRITE4
M4: AJMP KEYBOARD
WRITE1: MOV DPTR,#0000H
MOV A,#01H
MOVX @DPTR,A
MOV A,#00H
AJMP READ
WRITE2: MOV DPTR,#0000H
MOV A,#02H
MOVX @DPTR,A
MOV A,#04H
AJMP READ
WRITE3: MOV DPTR,#0000H
MOV A,#04H
MOVX @DPTR,A
MOV A,#08H
AJMP READ
WRITE4: MOV DPTR,#0000H
MOV A,#08H
MOVX @DPTR,A
MOV A,#0CH
READ:
MOV R6,A
MOV DPTR,#0000H
MOVX A,@DPTR
JNB ACC.0,TEAM1
MOV A,R6
AJMP SHOW
TEAM1: JNB ACC.1,TEAM2
MOV A,R6
ADD A,#1
AJMP SHOW
TEAM2: JNB ACC.2,TEAM3
MOV A,R6
ADD A,#2
AJMP SHOW
TEAM3: DEC R0
JNB ACC.3,BACK
MOV A,R6
ADD A,#3
AJMP SHOW
RET
KS1:
MOV DPTR,#0000H
MOV A,#0FH
MOVX @DPTR,A
MOVX A,@DPTR
ANL A,#0FH
RET
TM12S: MOV R7,#18H
TM: MOV R6,#0FFH
TM6: DJNZ R6,TM6
DJNZ R7,TM
RET
CC: ACALL TM12S
ACALL KS1
RET
SHOW: MOV 56H,A
MM: ACALL CC
JNZ MM
MOV R7,56H
CJNE R7,#0FH,W1
AJMP NEW
W1: CJNE R7,#0EH,W2
AJMP KEYBOARD
W2: CJNE R7,#0DH,W3
AJMP KEYBOARD
W3: CJNE R7,#0CH,W4
AJMP KEYBOARD
W4: CJNE R7,#0BH,W5
AJMP KEYBOARD
W5: CJNE R7,#0AH,SHOWDATA
AJMP KEYBOARD
NEW: MOV DPTR,#1000H
MOV A,#01H
MOVX @DPTR,A
MOV A,#06H
MOVX @DPTR,A
MOV A,#0EH
MOVX @DPTR,A
AJMP KEYBOARD
SHOWDATA: SETB P1.6
CIRCLE: SETB P1.5
MOV A,#00H
CLR P1.5
JNB P1.1,T1
ADD A,#32H
T1: SETB P1.0
CLR P1.0
JNB P1.1,T20
ADD A,#19H
T20: SETB P1.0
CLR P1.0
JNB P1.1,T3
ADD A,#0DH
T3: SETB P1.0
CLR P1.0
JNB P1.1,T4
ADD A,#06H
T4: SETB P1.0
CLR P1.0
JNB P1.1,T5
ADD A,#03H
T5: SETB P1.0
CLR P1.0
JNB P1.1,T6
ADD A,#02H
T6: SETB P1.0
CLR P1.0
JNB P1.1,T7
ADD A,#01H
T7: SETB P1.0
CLR P1.0
JNB P1.1,T8
ADD A,#00H
T8: SETB P1.0
CLR P1.0
JNB P1.1,T9
ADD A,#00H
T9: SETB P1.0
CLR P1.0
JNB P1.1,T10
ADD A,#00H
T10: SETB P1.0
CLR P1.0
SETB P1.5
MOV 57H,A
MOV DPTR,#1001H ;显示
MOV A,56H
ACALL TM12S
ADD A,#30H
MOVX @DPTR,A
ACALL TM12S
MOV A,#30H
MOVX @DPTR,A
ACALL TM12S
MOV A,#0B0H
MOVX @DPTR,A
ACALL TM12S
MOV A,56H
ADD A,#30H
INC A
MOVX @DPTR,A
ACALL TM12S
MOV A,#30H
MOVX @DPTR,A
ACALL TM12S
MOV A,#3AH
MOVX @DPTR,A
ACALL TM12S
MOV A,57H
MOV B,#0AH
DIV AB
ADD A,#30H
MOVX @DPTR,A
ACALL TM12S
MOV A,B
ADD A,#30H
MOVX @DPTR,A
ACALL TM12S ;显示结束
ACALL TM100S
MOV DPTR,#1000H
MOV A,#01H
MOVX @DPTR,A
MOV A,#06H
MOVX @DPTR,A
MOV A,#0EH
MOVX @DPTR,A
MOV A,56H ;控制继电器程序
MOV B,#0AH
MUL AB
ADD A,#01H
CJNE A,57H,KKK1
CLR P1.6
KKK1: JC OFF
AJMP ON
OFF: CLR P1.6
AJMP ON
ON: MOV A,56H
MOV B,#0AH
MUL AB
CJNE A,57H,KKK2
SETB P1.6
KKK2: JNC FIRE
AJMP CIRCLE
FIRE: SETB P1.6
AJMP CIRCLE
TM100S: MOV R7,#0ffH
TM100: MOV R6,#0FFH
TM60: DJNZ R6,TM60
DJNZ R7,TM100
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -