⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2c.asm

📁 这是一个有关i2c介绍
💻 ASM
📖 第 1 页 / 共 2 页
字号:

        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 + -