📄 i2c.asm
字号:
ORG 0000H
LJMP 0030H ;shang xian
ORG 0013H
LJMP 1000H ;zhong duan
ORG 0030H ;zhu cheng xu
MOV SP,#20H
SETB IT1
CLR EX1
CLR EA
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
; LCALL MAIN0
; MOV R5,#15
;A000: LCALL YS1S
; DJNZ R5,A000
;
; LCALL YS1S
; MOV A,#9FH
; MOV P2,A
;
; MOV R5,#250 ;01
;A001: LCALL MAIN1
; DJNZ R5,A001
; MOV A,#9FH
; MOV P2,A
; LCALL YS1S
; LCALL YS1S
; MOV R5,#250 ;1--R
;A002: LCALL MAIN2
; DJNZ R5,A002
;
; MOV A,#9FH
; MOV P2,A
; LCALL YS1S
; LCALL YS1S
; MOV R5,#250 ;U1.00
;A003: LCALL MAIN3
; DJNZ R5,A003
; MOV A,#9FH ;P.
; MOV P2,A
; LCALL YS1S
; LCALL YS1S
; LCALL MAIN4
MOV A,#9FH
MOV P2,A
LCALL YS1S
LCALL YS1S
MOV R5,#250 ;0000
A004: LCALL MAIN5
DJNZ R5,A004
MOV A,#9FH
MOV P2,A
LCALL YS1S
LCALL YS1S
MOV R5,#250 ;1000
A005: LCALL MAIN6
DJNZ R5,A005
MOV A,#9FH
MOV P2,A
LCALL YS1S
LCALL YS1S
;*************************************************
A007: JB P3.3,$ ;等待下降沿
MOV TMOD,#0D0H
MOV TL1,#00H
MOV TH1,#00H
SETB TR1
JNB P3.3,$
SETB IT1
SETB EX1
SETB EA
MOV A,#9FH
MOV P2,A
LCALL YS1S
JB P3.3,$ ;等待下降沿
MOV TMOD,#0D0H
MOV TL1,#00H
MOV TH1,#00H
SETB TR1
JNB P3.3,$
SETB IT1
SETB EX1
SETB EA
MOV A,#9FH
MOV P2,A
LCALL YS1S
A008: JB P3.3,$ ;等待下降沿
MOV TMOD,#0D0H
MOV TL1,#00H
MOV TH1,#00H
SETB TR1
WH1: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
JNB P3.3,WH1
SETB IT1
SETB EX1
SETB EA
MOV A,#9FH
MOV P2,A
MOV R5,#120
F001: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
SETB P1.6
MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY11 ;按功能键一次响应程序
LJMP F002
KEY11: LCALL YS12MS
JNB ACC.6,B001
F002: DJNZ R5,F001
MOV A,#9FH
MOV P2,A
LJMP A008
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;按键响应子程序
B001: CLR EX1
CLR EA
MOV R4,#5
B002: LCALL YS1S
DJNZ R4,B002
MOV R7,#6
B005: MOV R5,#255
B003: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY12
LJMP B004
KEY12: LCALL YS12MS
JNB ACC.6,B006
B004: MOV A,#9EH ; AL1
MOV P2,A
MOV A,#0FFH
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#28H
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#37H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#0EDH
MOV P0,A
LCALL YS1MS
DJNZ R5,B003
DJNZ R7,B005
MOV A,#0FFH
MOV P0,A
LJMP A007
;______________________
B006: MOV A,#0FFH ;按功能键二次响应程序
MOV P0,A
MOV R4,#5
B007: LCALL YS1S
DJNZ R4,B007
MOV R7,#6
MOV R0,#00 ;00H
LCALL RDDATA
LCALL YS12MS ;+++++++++++++++++++++
MOV 30H,A
MOV R0,#01 ;01H
LCALL RDDATA
LCALL YS12MS
MOV 31H,A
B009: MOV R5,#255
B008: MOV A,30H
MOV 0EH,A ;R6
MOV A,31H
MOV 0FH,A ;R7
LCALL XIAN ;shang xian
;修改第一报警值
SETB P1.6 ;按增加键响应程序
MOV A,#0FFH
MOV P0,A
MOV A,#97H
MOV P2,A
MOV A,P1
JNB ACC.6,KEY3
LJMP B110
KEY3: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ1
LJMP B110
ZJ1: LJMP XIU1
B110: SETB P1.6 ;按减少键响应程序
MOV A,#0FFH
MOV P0,A
MOV A,#9DH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY2
LJMP B112
KEY2: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ2
LJMP B112
ZJ2: LJMP XIU2
B112: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY13
LJMP B111
KEY13: LCALL YS12MS
JNB ACC.6,B011
B111: DJNZ R5,B008
DJNZ R7,B009
LJMP A007
;________________________
;按功能键三次响应程序
B011: MOV A,#0FFH ;写入数据
mov p0,A
CLR P1.2
MOV R0,#00H
MOV A,30H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
MOV R0,#01H
MOV A,31H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
SETB P1.2
MOV R4,#5
B012: LCALL YS1S
DJNZ R4,B012
MOV R7,#6
B015: MOV R5,#255
B013: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY14
LJMP B014
KEY14: LCALL YS12MS
JNB ACC.6,B016
B014: MOV A,#9EH
MOV P2,A ;AL2
MOV A,#0FFH
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#28H
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#37H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#0B0H
MOV P0,A
LCALL YS1MS
DJNZ R5,B013
DJNZ R7,B015
MOV A,#0FFH
MOV P0,A
LJMP A007
;______________________
B016: MOV A,#0FFH ;按功能键四次响应程序
MOV P0,A
MOV R4,#5
B017: LCALL YS1S
DJNZ R4,B017
MOV R7,#6
MOV R0,#00H ;82H
LCALL RDDATA
LCALL YS12MS
MOV 30H,A
MOV R0,#01H ;83H
LCALL RDDATA
LCALL YS12MS
MOV 31H,A
B019: MOV R5,#255
B018: MOV A,30H
MOV 0EH,A ;R6
MOV A,31H
MOV 0FH,A ;R7
LCALL XIAN ;shang xian
;修改第二报警值
SETB P1.6 ;+
MOV A,#0FFH
MOV P0,A
MOV A,#97H
MOV P2,A
MOV A,P1
JNB ACC.6,KEY31
LJMP B1110
KEY31: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ11
LJMP B1110
ZJ11: LJMP XIU11
B1110: SETB P1.6 ;-
MOV A,#0FFH
MOV P0,A
MOV A,#9DH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY21
LJMP B1112
KEY21: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ12
LJMP B1112
ZJ12: LJMP XIU12
B1112: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY15
LJMP B020
KEY15: LCALL YS12MS
JNB ACC.6,B021
B020: DJNZ R5,B018 ;
DJNZ R7,B019
LJMP A007
;________________________
B021: MOV A,#0FFH ;按功能键五次响应程序
MOV P0,A
CLR P1.2 ;写入数据
MOV R0,#80H
MOV A,30H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
MOV R0,#81H
MOV A,31H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
MOV R4,#5
B022: LCALL YS1S
DJNZ R4,B022
MOV R7,#6
B025: MOV R5,#255
B023: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY16
LJMP B024
KEY16: LCALL YS12MS
JNB ACC.6,B026
B024: MOV A,#9EH ; AH1
MOV P2,A
MOV A,#0FFH
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#28H
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#29H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#0EDH
MOV P0,A
LCALL YS1MS
DJNZ R5,B023
DJNZ R7,B025
MOV A,#0FFH
MOV P0,A
LJMP A007
;______________________
B026: MOV A,#0FFH ;按功能键六次响应程序
MOV P0,A
MOV R4,#5
B027: LCALL YS1S
DJNZ R4,B027
MOV R7,#6
MOV R0,#00H ;84H
LCALL RDDATA
LCALL YS12MS
MOV 30H,A
MOV R0,#01H ;85H
LCALL RDDATA
LCALL YS12MS
MOV 31H,A
B029: MOV R5,#255
B028: MOV A,30H
MOV 0EH,A ;R6
MOV A,31H
MOV 0FH,A ;R7
LCALL XIAN ;shang xian
;修改第一回差
SETB P1.6 ;+
MOV A,#0FFH
MOV P0,A
MOV A,#97H
MOV P2,A
MOV A,P1
JNB ACC.6,KEY32
LJMP B2110
KEY32: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ21
LJMP B2110
ZJ21: LJMP XIU21
B2110: SETB P1.6 ;-
MOV A,#0FFH
MOV P0,A
MOV A,#9DH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY22
LJMP B2112
KEY22: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ22
LJMP B2112
ZJ22: LJMP XIU22
B2112: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY17
LJMP B030
KEY17: LCALL YS12MS
JNB ACC.6,B031
B030: DJNZ R5,B028
DJNZ R7,B029
LJMP A007
;________________________
B031: MOV A,#0FFH ;按功能键七次响应程序
MOV P0,A
CLR P1.2 ;写入数据
MOV R0,#80H
MOV A,30H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
MOV R0,#81H
MOV A,31H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
SETB P1.2
MOV R4,#5
B032: LCALL YS1S
DJNZ R4,B032
MOV R7,#6
B035: MOV R5,#255
B033: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY18
LJMP B034
KEY18: LCALL YS12MS
JNB ACC.6,B036
B034: MOV A,#9EH ; AH2
MOV P2,A
MOV A,#0FFH
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#28H
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#29H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#0B0H
MOV P0,A
LCALL YS1MS
DJNZ R5,B033
DJNZ R7,B035
MOV A,#0FFH
MOV P0,A
LJMP A007
;______________________
B036: MOV A,#0FFH ; ;按功能键八次响应程序
MOV P0,A
MOV R4,#5
B037: LCALL YS1S
DJNZ R4,B037
MOV R7,#6
MOV R0,#00H ;86H
LCALL RDDATA
LCALL YS12MS
MOV 30H,A
MOV R0,#01H ;87H
LCALL RDDATA
LCALL YS12MS
MOV 31H,A
B039: MOV R5,#255
B038: MOV A,30H
MOV 0EH,A ;R6
MOV A,31H
MOV 0FH,A ;R7
LCALL XIAN ;shang xian
;修改第二回差
SETB P1.6 ;+
MOV A,#0FFH
MOV P0,A
MOV A,#97H
MOV P2,A
MOV A,P1
JNB ACC.6,KEY33
LJMP B3110
KEY33: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ31
LJMP B3110
ZJ31: LJMP XIU31
B3110: SETB P1.6 ;-
MOV A,#0FFH
MOV P0,A
MOV A,#9DH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY23
LJMP B3112
KEY23: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ32
LJMP B3112
ZJ32: LJMP XIU32
B3112: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY19
LJMP B040
KEY19: LCALL YS12MS
JNB ACC.6,B041
B040: DJNZ R5,B038
DJNZ R7,B039
LJMP A007
;________________________
B041: MOV A,#0FFH ;按功能键九次响应程序
MOV P0,A
CLR P1.2 ;写入数据
MOV R0,#80H
MOV A,30H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
MOV R0,#81H
MOV A,31H
MOV R6,A
LCALL WRDATA
LCALL YS12MS
LCALL YS12MS
SETB P1.2
MOV R4,#5
B042: LCALL YS1S
DJNZ R4,B042
MOV R7,#6
B045: MOV R5,#255
B043: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY20
LJMP B044
KEY20: LCALL YS12MS
JNB ACC.6,B046
B044: MOV A,#9EH ; CLR
MOV P2,A
MOV A,#0FFH
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#36H
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#37H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#31H
MOV P0,A
LCALL YS1MS
DJNZ R5,B043
DJNZ R7,B045
MOV A,#0FFH
MOV P0,A
LJMP A007
;______________________
B046: MOV A,#0FFH ;按功能键十次响应程序
MOV P0,A
MOV R4,#5
B047: LCALL YS1S
DJNZ R4,B047
MOV R7,#6
MOV R0,#80H ;88H
LCALL RDDATA
LCALL YS12MS
MOV 30H,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -