I2C總線原理與應(yīng)用
控制字后就是相應(yīng)的操作,讀或?qū)懀欢ú灰Y(jié)束,因?yàn)檫@個(gè)操作還沒(méi)有完成,如果結(jié)束就等于放棄操作。
先來(lái)看寫操作,寫操作分為字節(jié)寫和頁(yè)面寫兩種操作,對(duì)于頁(yè)面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同,AT24C02為8字節(jié),每寫一個(gè)字節(jié)后,地址自動(dòng)加1。關(guān)于頁(yè)面寫的地址、應(yīng)答和數(shù)據(jù)傳送的時(shí)序參見(jiàn)圖3,字節(jié)寫可以看成是只有一個(gè)字節(jié)的頁(yè)面寫,也就是寫一個(gè)數(shù)據(jù)后停止。注意:寫一次需要一定時(shí)間,一般為10ms,要等侍這個(gè)操作完成。時(shí)序如下圖:
說(shuō)明:對(duì)于AT24C02,在控制字后還必須寫入地址,這個(gè)地址是以后讀寫的起始地址。
讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。三種操作方法類似,只是讀的數(shù)據(jù)個(gè)數(shù)不同,可連續(xù)讀8個(gè)字節(jié),圖4給出的是順序讀的時(shí)序圖,圖中共讀了四個(gè)數(shù)據(jù),需要注意的是當(dāng)前的地址,如果不是想要的,可以用寫操作,重新寫入地址。非常重要的是,每讀一個(gè)數(shù)據(jù)后,必須置低SDA,作為應(yīng)答,否則,只能讀一個(gè)數(shù)據(jù),后面的數(shù)據(jù),因?yàn)槭盏讲粦?yīng)答信號(hào),AT24C02就會(huì)認(rèn)為出錯(cuò),停止操作。特別提醒的是,當(dāng)SCL為低電平時(shí),數(shù)據(jù)是可變的,因些只有SCL為高電平時(shí),才能讀數(shù)。(相關(guān)時(shí)序,請(qǐng)看例程序的,讀功能函數(shù))
四.例程序(51匯編,測(cè)試單片機(jī)為AT89C51,12M晶振)
電路連接如圖5,其中A0,A1,A2為地址線,本例中全部接地,因此全部為0。由于SCL和SDA為漏極開(kāi)路輸出,所以在使用時(shí),需加上拉電阻。
評(píng)論