色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 讀寫24LCxx系列的EEPROM的實例程序

          讀寫24LCxx系列的EEPROM的實例程序

          作者: 時間:2011-05-17 來源:網(wǎng)絡(luò) 收藏

          ;*
          ;*******************************************************
          ;
          ; Send Command for BYTE WRITE :
          ; Start+ 0xA0 + EE_Address + Write_Data + Stop
          ;
          EE_Byte_Write
          call StartI2C ; Set SSPCON2.SEN
          ;
          bcf I2C_Ctrl,0 ; Clear for Write Command
          movf I2C_Ctrl,W ; Send Slave Address to I2C Bus
          call Send_Byte
          ;
          movf I2C_Addr,W ; Send out the Command
          call Send_Byte
          ;
          movf I2C_Data,W ; Send out the Data
          call Send_Byte
          ;
          call StopI2C ; Initial STOP Condition
          return
          ;
          ;**********************************************************************
          ;
          ; As following subroutines perform commonly used I2C functions.
          ; You can use these subroutines for your I2C access
          ;
          ;**********************************************************************
          ;
          ;*** Initial I2Cmodule fot 7-bit I2C Master Mode with 100Kcps @4MHz
          ;
          Init_I2C_Master
          BANKSEL TRISC ; Initial PortC,bit 3 4 as Input
          bsf SCL ; RC3 = SCL , RC4 = SDA
          bsf SDA
          ;
          BANKSEL PORTC
          bsf SCL ; SCL = Hi
          bsf SDA ; SDA = Hi
          ;
          movlw b'00101000' ; I2C Master Mode, Clock Rate: FOSC/(4*SSPADD+1)
          movwf SSPCON ;
          ;
          banksel SSPADD
          movlw .9 ; This gives 100KHz I2C clock @ 4MHz
          movwf SSPADD ; (4MHz/4) / (9+1)= 100KHz
          ;
          movlw b'10000000' ; Disable slew rate control,
          movwf SSPSTAT ; and clear status bits
          ;
          movlw b'00000000' ; Set SCL,SDA into Ready status
          movwf SSPCON2
          ;
          return
          ;
          ;****** Send START condition to bus *******
          ;
          StartI2C ; Initiate the I2C START condition.
          banksel SSPCON2
          bsf SSPCON2,SEN
          goto I2C_Done
          ;
          ;****** Send STOP condition to bus *******
          ;
          StopI2C
          banksel SSPCON2
          bsf SSPCON2,PEN
          goto I2C_Done
          ;
          ;****** Send RESTART condition to bus *******
          ;
          RstartI2C
          banksel SSPCON2
          bsf SSPCON2,RSEN
          goto I2C_Done
          ;
          ;****** Send a Non-Acknowledge status to bus (ACK=1) *******
          ;
          Non_Ack
          banksel SSPCON2
          bsf SSPCON2,ACKDT ; Set the ACK bit
          bsf SSPCON2,ACKEN ; Initiate the NACK sequence.
          goto I2C_Done
          ;
          ;****** Send an Acknowledge status to bus (ACK=0) *******
          ;
          An_Ack
          banksel SSPCON2
          bcf SSPCON2,ACKDT ; Clear the ACK bit
          bsf SSPCON2,ACKEN ; Initiate the NACK sequence.
          goto I2C_Done
          ;
          ;****** Send data to I2C bus from Wreg. *******
          ;
          Send_Byte
          banksel SSPBUF
          movwf SSPBUF
          goto I2C_Done
          ;
          ;****** Enable I2C Receive for Master Mode *******
          ;
          RecI2C
          banksel SSPCON2
          bsf SSPCON2,RCEN ; Set the receive enable bit.
          goto I2C_Done
          ;
          ;****** Check the I2C stage is completed ********
          ;
          I2C_Done
          banksel PIR1
          btfss PIR1,SSPIF ; Poll for SSPIF
          goto $-1
          bcf PIR1,SSPIF
          return
          ;
          Delay_mS
          banksel D_Count
          movlw .124 ; Load .5mS Dealy Value
          movwf D_Count
          _D_mS nop
          decfsz D_Count,F
          goto _D_mS
          return
          ;
          ; *********** End Of Program !!!!!
          ;
          end

          本文引用地址:http://cafeforensic.com/article/172784.htm


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 實例 程序 EEPROM 系列 24LCxx 讀寫

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉