📄 i2c.asm
字号:
MOV R0,#81H ;89H
LCALL RDDATA
LCALL YS12MS
MOV 31H,A
B049: MOV R5,#255
B048: 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,KEY34
LJMP B4110
KEY34: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ41
LJMP B4110
ZJ41: LJMP XIU41
;修改密码
B4110: SETB P1.6 ;-
MOV A,#0FFH
MOV P0,A
MOV A,#9DH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY24
LJMP B4112
KEY24: LCALL YS1S
LCALL YS1S
JNB ACC.6,ZJ42
LJMP B4112
ZJ42: LJMP XIU42
B4112: MOV A,#0FFH
MOV P0,A
MOV A,#9BH
MOV P2,A
MOV A,P1
JNB ACC.6,KEY211
LJMP B050
KEY211: LCALL YS12MS
JNB ACC.6,B051
B050: DJNZ R5,B048
DJNZ R7,B049
LJMP A007
;________________________
B051: 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
LCALL YS1S
LCALL YS1S
LJMP B001
B052: MOV A,#0FFH
MOV P0,A
LJMP A007
MAIN0: MOV A,#9FH
MOV P2,A
MOV A,#90h
MOV P2,A
MOV A,#69H ;8.8.8.8.
MOV P0,A
RET
MAIN1: MOV A,#9BH ;01
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#0EDH
MOV P0,A
LCALL YS1MS
RET
MAIN2: MOV A,#9EH ; 1--R
MOV P2,A
MOV A,#0EDH
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#0FBH
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#0FBH
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#28H
MOV P0,A
LCALL YS1MS
RET
MAIN3: MOV A,#9EH ; U1.00
MOV P2,A
MOV A,#25H
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#0CDH
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
RET
MAIN4: MOV A,#97H
MOV P2,A
MOV A,#18H
MOV P0,A
RET
MAIN5: MOV A,#9EH ; 0000
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
RET
MAIN6: MOV A,#9EH ; 1000
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#9BH
MOV P2,A
MOV A,#24H
MOV P0,A
LCALL YS1MS
MOV A,#97H
MOV P2,A
MOV A,#0EDH
MOV P0,A
LCALL YS1MS
RET
MAIN7: MOV A,#9EH ; -CH-
MOV P2,A
MOV A,#0FBH
MOV P0,A
LCALL YS1MS
MOV A,#9DH
MOV P2,A
MOV A,#24H
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,#0FBH
MOV P0,A
LCALL YS1MS
RET
;修改数据子程序
XIU1: CLR C ;修改第一报警值
MOV A,31H
SUBB A,#0000 ;???
MOV A,30H
SUBB A,#10 ;???
JNC C000
CLR C
MOV A,31H
ADDC A,#1
MOV 31H,A
MOV A,30H
ADDC A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E000
LJMP C000
E000: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU1
C000: MOV R7,#6
LJMP B008
XIU2: CLR C
MOV A,#0000 ;???
SUBB A,31H
MOV A,#0000 ;???
SUBB A,30H
JNC C000
CLR C
MOV A,31H
SUBB A,#1
MOV 31H,A
MOV A,30H
SUBB A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E001
LJMP C000
E001: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU2
XIU11: CLR C ;修改第二报警值
MOV A,31H
SUBB A,#0000 ;???
MOV A,30H
SUBB A,#10 ;???
JNC C001
CLR C
MOV A,31H
ADDC A,#1
MOV 31H,A
MOV A,30H
ADDC A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E002
LJMP C001
E002: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU11
C001: MOV R7,#6
LJMP B018
XIU12: CLR C
MOV A,#0000 ;???
SUBB A,31H
MOV A,#0000 ;???
SUBB A,30H
JNC C001
CLR C
MOV A,31H
SUBB A,#1
MOV 31H,A
MOV A,30H
SUBB A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E003
LJMP C001
E003: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU12
XIU21: CLR C ;修改第一回差
MOV A,31H
SUBB A,#0000 ;???
MOV A,30H
SUBB A,#10 ;???
JNC C002
CLR C
MOV A,31H
ADDC A,#1
MOV 31H,A
MOV A,30H
ADDC A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E004
LJMP C002
E004: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU21
C002: MOV R7,#6
LJMP B028
XIU22: CLR C
MOV A,#0000 ;???
SUBB A,31H
MOV A,#0000 ;???
SUBB A,30H
JNC C002
CLR C
MOV A,31H
SUBB A,#1
MOV 31H,A
MOV A,30H
SUBB A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E005
LJMP C002
E005: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU22
XIU31: CLR C ;修改第二回差
MOV A,31H
SUBB A,#0000 ;???
MOV A,30H
SUBB A,#10 ;???
JNC C003
CLR C
MOV A,31H
ADDC A,#1
MOV 31H,A
MOV A,30H
ADDC A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E006
LJMP C003
E006: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU31
C003: MOV R7,#6
LJMP B038
XIU32: CLR C
MOV A,#0000 ;???
SUBB A,31H
MOV A,#0000 ;???
SUBB A,30H
JNC C003
CLR C
MOV A,31H
SUBB A,#1
MOV 31H,A
MOV A,30H
SUBB A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E007
LJMP C003
E007: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU32
XIU41: CLR C ;修改密码
MOV A,31H
SUBB A,#0000 ;???
MOV A,30H
SUBB A,#10 ;???
JNC C004
CLR C
MOV A,31H
ADDC A,#1
MOV 31H,A
MOV A,30H
ADDC A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E008
LJMP C004
E008: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU41
C004: MOV R7,#6
LJMP B048
XIU42: CLR C
MOV A,#0000 ;???
SUBB A,31H
MOV A,#0000 ;???
SUBB A,30H
JNC C004
CLR C
MOV A,31H
SUBB A,#1
MOV 31H,A
MOV A,30H
SUBB A,#0
MOV 30H,A
SETB P1.6 ;-
MOV A,#90H
MOV P2,A
MOV A,P1
JNB ACC.6,E009
LJMP C004
E009: MOV 0EH,30H
MOV 0FH,31H
LCALL XIAN
LJMP XIU42
;#####################################
;#####################################
YS12MS: MOV R2,#30
TM: MOV R3,#255
RTM1: DJNZ R3,RTM1
DJNZ R2,TM
RET
; 24c02子程序
WRDATA: LCALL ST24
MOV A,#0A0H
LCALL WBYTE
MOV A,R0
LCALL WBYTE
MOV A,R6
LCALL WBYTE
LCALL STOP24
RET
RDDATA: LCALL ST24
MOV A,#0A0H
LCALL WBYTE
MOV A,R0
LCALL WBYTE
NOP
NOP
LCALL ST24
MOV A,#0A1H
LCALL WBYTE
LCALL RBYTE
LCALL STOP24
RET
WBYTE: NOP
NOP
MOV R5,#8
WBY0: CLR P1.1
NOP
RLC A
MOV P1.0,C
SETB P1.1
NOP
DJNZ R5,WBY0
CLR P1.1
NOP
NOP
SETB P1.1
NOP
NOP
JB P1.0,$
CLR P1.1
NOP
NOP
RET
RBYTE: NOP
NOP
MOV R5,#8
RBY0: CLR P1.1
NOP
NOP
SETB P1.1
NOP
NOP
MOV C,P1.0
RLC A
DJNZ R5,RBY0
CLR P1.1
NOP
NOP
SETB P1.0
NOP
NOP
SETB P1.1
NOP
NOP
RET
ST24: CLR P1.1
NOP
NOP
SETB P1.0
NOP
NOP
SETB P1.1
NOP
NOP
CLR P1.0
NOP
NOP
CLR P1.1
NOP
NOP
RET
STOP24: CLR P1.1
NOP
NOP
CLR P1.0
NOP
NOP
SETB P1.1
NOP
NOP
SETB P1.0
NOP
NOP
CLR P1.1
NOP
NOP
RET
;显示子程序
XIAN: CLR RS1
SETB RS0
CLR A
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H
HB3: MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A
DJNZ R2,HB3
MOV P2,#9EH
MOV A,R4 ;1000
ANL A,#0F0H
SWAP A
MOV DPTR,#DATA1
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
;____________________
MOV P2,#9DH
MOV A,R4 ;100
ANL A,#0FH
MOV DPTR,#DATA1
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
;_____________________
MOV P2,#9BH
MOV A,R5 ;10
ANL A,#0F0H
SWAP A
MOV DPTR,#DATA1
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
;____________________
MOV P2,#97H
MOV A,R5 ;0
ANL A,#0FH
MOV DPTR,#DATA1
MOVC A,@A+DPTR
MOV P0,A
LCALL YS1MS
CLR RS1
CLR RS0
RET
YS1MS: MOV R3,#2
DELAY1: MOV R2,#0FFH
DELAY2: DJNZ R2,DELAY2
DJNZ R3,DELAY1
RET
YS1S: MOV R3,#0FFH
DELAY3: MOV R2,#0FFH
DELAY4: DJNZ R2,DELAY4
DJNZ R3,DELAY3
RET
DATA1: DB 24H ;"0"
DB 0EDH ;"1"
DB 0B0H ;"2"
DB 0E0H ;"3"
DB 69H ;"4"
DB 62H ;"5"
DB 22H ;"6"
DB 0ECH ;"7"
DB 20H ;"8"
DB 60H ;"9"
ORG 1000H
CLR C
MOV A,TL1
SUBB A,#11H
MOV 31H,A
MOV A,TH1
SUBB A,#27H
MOV 30H,A
CLR TR1
MOV A,#9FH
MOV P2,A
RETI
;A007: MOV 0EH,30H
; MOV 0FH,31H
; LCALL XIAN
; JB P3.3,A007 ;等待下降沿
; MOV TMOD,#0D0H
; MOV TL1,#00H
; MOV TH1,#00H
; SETB TR1
;WH: MOV 0EH,30H
; MOV 0FH,31H
; LCALL XIAN
; JNB P3.3,WH
;WL: MOV 0EH,30H
; MOV 0FH,31H
; LCALL XIAN
; JB P3.3,WL
; CLR C
; MOV A,TL1
; SUBB A,#11H
; MOV 31H,A
; MOV A,TH1
; SUBB A,#27H
; MOV 30H,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -