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

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        單片機(jī)與24C02的通訊

        作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
        I2C的起源:

        I2C(Inter-Integrated Circuit)總線是一種由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備

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

        I2C的特點(diǎn):

        I2C總線的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件;支持多主控(multimastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。

        I2C總線工作原理:

        I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過(guò)程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠郑刂反a用來(lái)選址,即接通需要控制的電路,確定控制的種類(lèi);控制量決定該調(diào)整的類(lèi)別(如對(duì)比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。

        I2C總線在傳送數(shù)據(jù)過(guò)程中共有三種類(lèi)型信號(hào),它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。
        開(kāi)始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。
        結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。
        應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。

        AT24C02的工作原理:

        1.AT24C02的地址

        2.AT24C02的開(kāi)始和結(jié)束信號(hào)

        3.AT24C02的應(yīng)答信號(hào):無(wú)論主從,每接收1個(gè)字節(jié)都要給出1個(gè)應(yīng)答信號(hào)

        4.AT24C02的容量:8個(gè)字節(jié)為一頁(yè),共32頁(yè),地址范圍為00H~FFH,即00H~07H為第一頁(yè),08H~0FH為第二頁(yè),以此類(lèi)推。在連續(xù)讀寫(xiě)時(shí),若讀取地址超過(guò)單頁(yè)的第八個(gè)地址,則又從該頁(yè)的第一個(gè)地址循環(huán)開(kāi)始。

        5.AT24C02的讀寫(xiě):只有在SCL置低時(shí),方可改變SDA的值,在SCL高電平期間,SDA需保持不變

        A.寫(xiě)入單個(gè)字節(jié)

        B.連續(xù)寫(xiě)入字節(jié),當(dāng)寫(xiě)入到該頁(yè)最后一個(gè)地址單元時(shí),再?gòu)脑擁?yè)的起始單元寫(xiě)入,如此反復(fù)。

        C.AT24C02當(dāng)前指針地址讀一個(gè)字節(jié)

        D.指定AT24C02的內(nèi)存地址讀取一個(gè)字節(jié)

        E.在當(dāng)前AT24C02的地址指針位置開(kāi)始,順序讀取多個(gè)字節(jié),讀取到該頁(yè)最后一個(gè)字節(jié)時(shí),再?gòu)脑擁?yè)的第一個(gè)字節(jié)循環(huán)讀取

        單片機(jī)與AT24C02通訊范例:

        SCL EQU P3.6 ;定義SCL引腳
        SDA EQU P3.7 ;定義SDA引腳

        ORG 0000H
        AJMP MAIN
        ORG 0030H

        START: SETB SDA ;開(kāi)始信號(hào)
        SETB SCL
        CLR SDA
        CLR SCL
        RET

        STOP: CLR SDA ;結(jié)束信號(hào)
        SETB SCL
        SETB SDA
        RET

        SEND: MOV R0,#08H ; 單片機(jī)向24C02寫(xiě)入單字節(jié)子程序,1個(gè)bit1個(gè)bit地寫(xiě),連續(xù)寫(xiě)8個(gè)
        SEND0: RLC A
        MOV SDA,C
        SETB SCL
        CLR SCL
        DJNZ R0,SEND0
        RET

        REV: MOV R0,#08H ; 單片機(jī)從24C02讀取單字節(jié)子程序,1個(gè)bit接1個(gè)bit地讀,連續(xù)8個(gè)
        REV0: MOV C,SDA
        RLC A
        SETB SCL
        CLR SCL
        DJNZ R0,REV0
        RET

        DELAY:MOV R6,#40 ; 用于結(jié)束信號(hào)的延時(shí),在我的系統(tǒng)上少于1600us還不行,怪事
        D1: MOV R7,#40
        D2: DJNZ R7,D2
        DJNZ R6,D1
        RET

        ACK : SETB SCL ; 24C02的應(yīng)答信號(hào)
        ;CLR SDA ; 接收1個(gè)字節(jié)后自動(dòng)產(chǎn)生,無(wú)需給出
        CLR SCL
        RET

        ACK0: CLR SDA ; 單片機(jī)的應(yīng)答信號(hào),需要單片機(jī)主動(dòng)給出
        SETB SCL
        CLR SCL
        SETB SDA ; 這一步不可省略,請(qǐng)仔細(xì)看時(shí)序圖
        RET

        MAIN: MOV DPTR,#TABLE

        ACALL START ; 開(kāi)始信號(hào)
        MOV A,#0A0H ; 輸入24C02地址及寫(xiě)入信號(hào),因?yàn)镮2C總線上只有24C02這個(gè)器件,所以A0,A1,A2接地
        ACALL SEND ; 發(fā)送到24C02
        ACALL ACK ; 等待24C02的應(yīng)答

        MOV A,#00H ; 輸入24C02的地址指針,即寫(xiě)入24C02的32頁(yè)地址段中的起始位置
        ACALL SEND ; 發(fā)送到24C02
        ACALL ACK ; 等待24C02的應(yīng)答

        MOV R4,#00H ;此程序段功能為連續(xù)寫(xiě)入8個(gè)字節(jié)
        MOV R5,#08H
        WRITE: MOV A,R4
        MOVC A,@A+DPTR
        ACALL SEND
        ACALL ACK
        INC R4
        DJNZ R5,WRITE
        ACALL STOP ;寫(xiě)完后發(fā)出結(jié)束信號(hào)
        ACALL DELAY

        ACALL START ; 送出開(kāi)始信號(hào),進(jìn)入指定24C02地址中讀取單個(gè)字節(jié)模式
        MOV A,#0A0H ; 輸入24C02地址及寫(xiě)入信號(hào)
        ACALL SEND ; 發(fā)送到24C02
        ACALL ACK ; 等待24C02應(yīng)答

        MOV A,#00H ; 輸入要在24C02中讀取的數(shù)據(jù)的指定地址
        ACALL SEND ; 發(fā)送到24C02
        ACALL ACK ; 等待24C02應(yīng)答

        ACALL START ; 再次送出開(kāi)始信號(hào),準(zhǔn)備讀取上面指定的24C02內(nèi)存單元
        MOV A,#0A1H ; 輸入24C02地址及讀取信號(hào)
        ACALL SEND ; 發(fā)送到24C02
        ACALL ACK ; 等待24C02應(yīng)答

        ACALL REV ; 調(diào)用讀取單個(gè)字節(jié)子程序
        ;ACALL ACK ; NO ACK ,指定地址讀取單個(gè)字節(jié)模式不需要ACK
        ACALL STOP ; 結(jié)束信號(hào)
        ACALL DELAY
        MOV 50H,A ; 將讀取到數(shù)據(jù)存入單片機(jī)50H地址中

        ACALL START ; 發(fā)送開(kāi)始信號(hào),進(jìn)入連續(xù)讀取數(shù)據(jù)模式
        MOV A,#0A1H ; 輸入24C02地址及讀取信號(hào)
        ACALL SEND ; 發(fā)送到24C02
        ACALL ACK ; 等待24C02應(yīng)答

        MOV R2,#07 ; 緊接上面的地址后連續(xù)讀取7個(gè)字節(jié)
        MOV R1,#51H ; 放入單片機(jī)的51H~57H地址單元
        READ: ACALL REV
        ACALL ACK0
        MOV @R1,A
        INC R1
        DJNZ R2,READ
        ACALL STOP
        ACALL DELAY

        LIGHT: MOV R1,#50H ; 從單片機(jī)的50H~57H單元中提取剛才存入的數(shù)據(jù),顯示在數(shù)碼管上
        MOV R2,#08H
        MOV A,#0FEH
        LOOP: MOV P1,A
        MOV P0,@R1
        INC R1
        RL A
        ACALL DEL
        MOV P1,#0FFH
        DJNZ R2,LOOP
        AJMP LIGHT

        DEL :MOV R4,#20 ;數(shù)碼管顯示的延時(shí)
        D3: MOV R5,#20
        D4: DJNZ R5,D4
        DJNZ R4,D3
        RET

        TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
        END

        ;uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,;0,1,2,3,4,
        ;0x92,0x82,0xf8,0x80,0x90,;5,6,7,8,9,
        ;0x88,0x83,0xc6,0xa1,0x86,;A,B,C,D,E,
        ;0x8e,0x8c,0xc1,0xce,0x91,
        ;0x00,0xff}; //0-f,p,u,t,y,8.,滅共陽(yáng)極數(shù)碼管顯示段碼



        關(guān)鍵詞: 單片機(jī)24C02通

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        ×

        “芯”朋友见面大会
        珠海|11.14|泰克“芯”朋友见面大会珠海站|泰克带您从测试角度看半导体的整条产业链,快来报名抢位吧>>