在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 模擬I2C總線多主節(jié)點(diǎn)通信原理簡(jiǎn)介

            模擬I2C總線多主節(jié)點(diǎn)通信原理簡(jiǎn)介

            作者: 時(shí)間:2012-09-02 來(lái)源:網(wǎng)絡(luò) 收藏

            圖5給出了從的流程。進(jìn)入從時(shí),要將BUSY置為高,說(shuō)明MCU現(xiàn)在正在工作,不能完成其他的任務(wù)。在MCU作為從完成接收任務(wù)后,要將BUSY置為低。MCU在接收到尋址字節(jié)后與自己的地址字節(jié)進(jìn)行比較。如果是訪問(wèn)自己的就進(jìn)入到下面的接收程序,否則跳出。在訪問(wèn)自己的時(shí)候,還要判斷主節(jié)點(diǎn)是讀取數(shù)據(jù)還是寫數(shù)據(jù),以便進(jìn)入相應(yīng)的程序。在寫字節(jié)的子程序中,從節(jié)點(diǎn)每發(fā)送1個(gè)字節(jié)的數(shù)據(jù)后都要察看是否有應(yīng)答信號(hào)(ACK),有則說(shuō)明數(shù)據(jù)接收到了;否則要跳出等待,重新發(fā)送。在讀字節(jié)的子程序中,每接收1個(gè)字節(jié)的數(shù)據(jù)就要發(fā)送1個(gè)應(yīng)答信號(hào)(ACK),以示接收正常,否則主節(jié)點(diǎn)將停止繼續(xù)發(fā)送。在現(xiàn)有的資料中,關(guān)于從節(jié)點(diǎn)的和源代碼比較少,這里給出作為從節(jié)點(diǎn)時(shí)寫字節(jié)子程序的源代碼。由于篇幅有限其他的子程序沒(méi)有列出。

            本文引用地址:http://www.biyoush.com/article/154009.htm

              4 部分源代碼

              本節(jié)是在MCU多主中的部分源代碼。多主的實(shí)現(xiàn)中有幾個(gè)難點(diǎn)和重點(diǎn)。一是在作為主節(jié)點(diǎn)時(shí)的寫字節(jié)子程序,里面要包括發(fā)送的每位數(shù)據(jù)和的數(shù)據(jù)進(jìn)行比較并做出判斷。如果數(shù)據(jù)不同,要跳出并進(jìn)入從節(jié)點(diǎn)的狀態(tài)。由于子程序返回主程序時(shí)改變的只是PC的值而累加器(ACC)和工作寄存器(Ri)里面的值是不變的,因此MCU進(jìn)入從機(jī)狀態(tài)后繼續(xù)接收剩下的數(shù)據(jù),這樣的數(shù)據(jù)并沒(méi)有丟失。二是作為從節(jié)點(diǎn)時(shí)的寫字節(jié)的子程序。由于時(shí)鐘線是由主節(jié)點(diǎn)的MCU控制的,所以怎樣根據(jù)SCL線來(lái)讀取SDA線的數(shù)據(jù)是其中的一個(gè)難點(diǎn)。三是在具有子地址的從節(jié)點(diǎn)關(guān)于是寫字節(jié)還是讀字節(jié)時(shí)的判斷。如果是寫字節(jié)時(shí)主節(jié)點(diǎn)會(huì)給出新的起始信號(hào),并再次發(fā)送從節(jié)點(diǎn)的地址數(shù)據(jù)。這時(shí)從節(jié)點(diǎn)需要做出判斷是讀取數(shù)據(jù)還是寫數(shù)據(jù),并進(jìn)入相應(yīng)的子程序。這里給出以上三個(gè)重點(diǎn)和難點(diǎn)的子程序的源代碼,以供讀者參考。這些源代碼經(jīng)實(shí)踐證明都是正確的。

              主節(jié)點(diǎn)的寫字節(jié)子程序:

              ;其中的NOP可根據(jù)時(shí)鐘的快慢自己加減

              WRBYTE:MOV R0,#08H

              CLR BUSY;將BUSY值清零

              WLP:  RLC A;取數(shù)據(jù)位

              JC   WR1

              SJMP WR0;判斷數(shù)據(jù)位

              WLP1: DJNZ R0,WLP

              NOP

              OUT1: RET

              WR1:  SETB SDA;發(fā)送1

              NOP

              SETB  SCL

              MOV  C,SDA;判斷是否與發(fā)送的數(shù)據(jù)相同

              JC   GOON

              SETB  BUSY

              AJMP  OUT1

              GOON: NOP

              NOP

              NOP

              CLR SCL

              SJMP WLP1

              WR0:  CLR SDA;發(fā)送0

              NOP

              SCL

              NOP

              NOP

              NOP

              NOP

              NOP

              CLR

              SCL

              SJMP  WLP1

              從節(jié)點(diǎn)的寫字節(jié)子程序(返回為ACK):

              SWRBYTE:MOV R0,#08H

              WAGAIN: RRC A



            評(píng)論


            相關(guān)推薦

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

            關(guān)閉