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

📄 i2c.a51

📁 keil C51 LCD 驱动源码,其中还有I2C驱动,ADC驱动,键盘操作等,是一个完整的keil源代码,供大家参考
💻 A51
字号:

        $LIST


        SCLPin          BIT     P1.2            ;I2C serial clock line.
        SDAPin          BIT     P1.3            ;I2C serial data line.

PUBLIC   _IIC_SendByte

SoftwareIIC     SEGMENT CODE
                RSEG    SoftwareIIC
_IIC_SendByte:
        MOV     A,R7
SendDataBit:
        RLC     A           	;; Bit 7
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin 
          
        RLC     A            	;; Bit 6
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin            
        
        RLC     A            	;; Bit 5
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin                
        
        RLC     A            	;; Bit 4
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin                
        
        RLC     A            	;; Bit 3
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin                
        
        RLC     A            	;; Bit 2
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin                  
          
        RLC     A            	;; Bit 1
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin        

        RLC     A            	;; Bit 0
        MOV     SDAPin,C
        SETB    SCLPin
;;        NOP
        CLR     SCLPin        
        NOP
        NOP
          
;;NextDataBit:
;;        DJNZ    R6,SendDataBit

        SETB    SDAPin
;;        NOP
        NOP
        NOP
        SETB    SCLPin

        CLR     A
        MOV     R6,A
WaitAck:
        JNB     SDAPin,ChkAckStatus
        INC     R6
        CJNE    R6,#040H,WaitAck
ChkAckStatus:
        CJNE    R6,#040H,AckOK
        CLR     SCLPin
;;        NOP
        CLR     SDAPin
        SETB    C                       ;; fail, no Ack
        RET
AckOK:
        CLR     SCLPin
;;        NOP
        CLR     SDAPin
        CLR     C
        RET
                END

⌨️ 快捷键说明

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