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

📄 i2c.txt

📁 基于I2C协议的读写程序,本人是用作IC卡读卡器用的
💻 TXT
字号:
ORG 0000H
MOV SP,#68H
MOV P1,#0FFH
LCALL I2CSTART
MOV A,#0A0H
LCALL I2CWRITE
LCALL ACK
MOV A,#01H
LCALL I2CWRITE
LCALL ACK
LCALL I2CSTART
MOV A,#0A1H
LCALL I2CWRITE
LCALL ACK
LCALL I2CREAD
LCALL NACK
LCALL I2CSTOP
MOV P3,A
L1:     JB P1.5,L1
        LCALL D2MS
        JB P1.5,L1
        MOV R7,#00H
        MOV P3,R7
        LCALL WRITE
        SJMP L1
I2CSTART:    CLR P1.0
             SETB P1.1
             LCALL SDELAY
             SETB P1.0
             LCALL SDELAY
             CLR P1.1
             LCALL SDELAY
             CLR P1.0
             LCALL SDELAY
             RET
I2CSTOP:     CLR P1.1
             LCALL SDELAY
             SETB P1.0
             LCALL SDELAY
             SETB P1.1
             LCALL SDELAY
             CLR P1.0
             LCALL SDELAY
             CLR P1.1
             LCALL SDELAY
             RET
I2CWRITE:    MOV R6,#08H
LA1:         CLR P1.0
             LCALL SDELAY
             RLC A
             MOV P1.1,C
             SETB P1.0
             LCALL SDELAY
             DJNZ  R6,LA1
             RET
I2CREAD:     MOV R6,#08H
LA2:         CLR P1.0
             LCALL SDELAY
             SETB P1.1
             LCALL SDELAY
             SETB P1.0
             LCALL SDELAY
             MOV C,P1.1
             RLC A
             DJNZ R6,LA2
             RET
ACK:         CLR P1.1
             LCALL SDELAY
             SETB P1.0
             LCALL SDELAY
             CLR P1.0
             LCALL SDELAY
             SETB P1.1
             LCALL SDELAY
             RET
NACK:        SETB P1.1
             LCALL SDELAY
             SETB P1.0
             LCALL SDELAY
             CLR P1.0
             LCALL SDELAY
             CLR P1.1
             LCALL SDELAY
             RET
WRITE:       LCALL I2CSTART
             MOV A,#0A0H
             LCALL I2CWRITE
             LCALL ACK
             MOV A,#01H
             LCALL I2CWRITE
             LCALL ACK
             MOV A,R7
             LCALL I2CWRITE
             LCALL ACK
             LCALL I2CSTOP
             RET
D2MS:        MOV R4,#10H
LD1:         MOV R5,#08H
LD2:         NOP
             NOP
             DJNZ R5,LD2
             DJNZ R4,LD1
             RET
SDELAY:      MOV       R2,     #18D
SDEL1:       NOP
             DJNZ      R2,     SDEL1
             RET


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -