新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機對SAA7113初始化和控制的程序代碼

        51單片機對SAA7113初始化和控制的程序代碼

        作者: 時間:2012-02-13 來源:網絡 收藏

         NOP

        本文引用地址:http://www.104case.com/article/172108.htm

          SETB SCL

          NOP

          NOP

          MOV C, SDA

          MOV I2C_ERROR, C

          CLR SCL

          NOP

          RET

          ;*******發送1字節數據,待送數據在A中******

          I2C_SEND_1BYTE:

          MOV R0, #8

          SEND100: RLC A

          MOV SDA, C

          NOP

          SETB SCL

          NOP

          NOP

          CLR SCL

          DJNZ R0, SEND100

          RET

          ;*******接收1字節數據,接收數據放在A中*****

          I2C_RECEIVE_1BYTE:

          MOV R0, #8

          RECV100: SETB SDA

          NOP

          SETB SCL

          NOP

          NOP

          NOP

          MOV C, SDA

          CLR SCL

          RLC A

          DJNZ R0, RECV100

          RET

          ;*******通過I2C總線向某一寄存器寫入一個字節數據*********

          I2C_WRITE: ACALL I2C_START ;發啟動信號

          MOV A, # DeviceaddressW ;調7113地址+寫

          ACALL I2C_SEND_1BYTE ;發送7113地址及“寫”命令

          ACALL CHECK_ACK ;檢查7113的應答信號

          JNB I2C_ERROR, WR200 ;應答正確,繼續

          WR100: ACALL I2C_STOP ;應答不對,返回

          RET

          WR200: MOV A, Subaddress ;調寄存器地址

          ACALL I2C_SEND_1BYTE ;發送寄存器地址

          ACALL CHECK_ACK ;檢查7113的應答信號

          JB I2C_ERROR, WR100 ;應答不對,返回

          MOV A, DATA_I2C ;調準備寫入的數據

          ACALL I2C_SEND_1BYTE ;發送數據字節

          ACALL CHECK_ACK

          JB I2C_ERROR, WR100

          ACALL I2C_STOP ;發停止信號



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贞丰县| 托克逊县| 瑞金市| 温宿县| 乾安县| 阳新县| 贵州省| 高州市| 从江县| 余干县| 恩施市| 牡丹江市| 广水市| 嘉定区| 巴彦县| 广宗县| 佛坪县| 鲁山县| 大兴区| 梁平县| 都安| 龙泉市| 香格里拉县| 隆昌县| 灵丘县| 桃江县| 从江县| 多伦县| 济南市| 柘城县| 若尔盖县| 宜良县| 姚安县| 苗栗县| 岫岩| 竹北市| 蓬安县| 江门市| 盐城市| 黄骅市| 县级市|