<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > I2C總線在單片機上的實現(xiàn)

          I2C總線在單片機上的實現(xiàn)

          作者: 時間:2012-03-07 來源:網絡 收藏

          MOV A,#0A1H ;SEND THE CNOTROL BYTE

          LCALL SENDBYTE

          LCALL ACK

          LCALL READBYTE

          LCALL BSTOP

          POP 0EH

          RET

          送字節(jié)程序:

          SENDBYTE:PUSH 0EH

          PUSH 00H

          MOV R0,#08H

          LOOP1:CLR P1.3

          NOP

          NOP

          RLC A

          MOV P1.2,C

          CPL P1.3 ;P1.3=1

          NOP

          NOP

          DJNZ R0,LOOP1

          POP 00H

          POP 0EH

          RET

          讀字節(jié)子程序:

          READBYTE:PUSH 0EH

          PUSH 00H

          MOV R0,#08H;READ THE CONTENT

          CLR A

          LOOP4:CLR P1.3

          NOP

          NOP

          NOP

          SETB P1.3 ;P1.3=1

          MOV C,P1.2

          RLC A

          DJNZ R0,LOOP4

          MOV R2,A

          POP 00H

          POP 0EH

          RET

          c.寫數(shù)據(jù)程序:

          WRITE:PUSH 0EH

          CLR P1.4

          LCALL BSTART

          MOV A,#0A0H

          CLALL SENDBYTE ;SEND THE CONTROL BYTE

          LCALL ACK

          MOV A,R1 ;SEND THE ADDRESS

          LCALL SENDBYTE

          LCALL ACK

          MOV A,R2 ;WRITE THE CONTENT

          LCALL SENDBYTE

          LCALL ACK

          LCALL BSTOP

          POP 0EH

          RET

          連續(xù)寫的兩個字節(jié)之間最好是有10ms的延時。當然,也可以進行頁寫(PAGE WRITE),即一次性連續(xù)寫8個字節(jié),但采用頁寫方式時每個字節(jié)后要有一個應答信號。

          d.停止位程序:

          BSTOP:CLR P1.3

          NOP

          NOP

          CLR P1.2

          NOP

          NOP

          NOP

          SETB P1.3

          NOP

          NOP

          NOP

          SETB P1.2

          RET


          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();