新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Keil C的AT24C02串行E2PROM的編程

基于Keil C的AT24C02串行E2PROM的編程

作者: 時(shí)間:2012-05-24 來源:網(wǎng)絡(luò) 收藏

3。2。2頁寫操作

允許每次寫入8個(gè)字節(jié)的頁寫操作模式,頁寫操作和字節(jié)寫操作的時(shí)序差不多都相同,不同的是在于傳送了一字節(jié)數(shù)據(jù)后并不產(chǎn)生停止信號(hào),主機(jī)被允許再發(fā)送7個(gè)額外的字節(jié)。每發(fā)送一個(gè)字節(jié)數(shù)據(jù)后,產(chǎn)生一個(gè)應(yīng)答位。如果在發(fā)送停止信號(hào)之前,主機(jī)發(fā)送超過8個(gè)字節(jié),AT24C02內(nèi)部地址計(jì)數(shù)器將自動(dòng)翻轉(zhuǎn),先前寫入的數(shù)據(jù)被覆蓋。接收主機(jī)發(fā)送的停止信號(hào)后,AT24C02啟動(dòng)內(nèi)部寫周期將數(shù)據(jù)寫到數(shù)據(jù)區(qū)。因此,可以編寫一個(gè)頁寫操作的函數(shù)如下:

3。3讀操作

AT24C02的讀操作主要有立即地址讀取、隨機(jī)地址讀取和順序地址存取3種。立即地址讀取方式由一個(gè)空字節(jié)序列來加載數(shù)據(jù)地址,當(dāng)從機(jī)尋址碼和數(shù)據(jù)尋址碼隨鐘輸入,并被確認(rèn)時(shí),從機(jī)必須產(chǎn)生另一個(gè)開始狀態(tài),通過發(fā)出一個(gè)確認(rèn)讀取的信號(hào)之后,數(shù)據(jù)便隨時(shí)鐘輸出,數(shù)據(jù)的讀取不通過確認(rèn)狀態(tài)應(yīng)答,而是通過一個(gè)停止?fàn)顟B(tài)來應(yīng)答。其他兩種方式基本類似,只是不需要產(chǎn)生另一個(gè)開始狀態(tài),而順序地址讀取時(shí),讀出的是連續(xù)數(shù)據(jù)。讀操作的時(shí)序圖類似于圖4的寫操作時(shí)序,因此可編出讀一個(gè)字節(jié)的函數(shù)RlByte如下:

當(dāng)然,對(duì)于AT2402的讀取往往不是只一個(gè)字節(jié),更多的時(shí)候還是想一連幾個(gè)字節(jié)一起讀取,因此,可編出連續(xù)讀取N個(gè)字節(jié)的函數(shù)如下:

4綜合應(yīng)用舉例

以圖6所示硬件電路為例,調(diào)用上面所編寫的函數(shù),將數(shù)據(jù)00H~07H送到AT24C02內(nèi)部首地址為10H的地方存放,并將AT24C02內(nèi)部以20H為首地址的連續(xù)8個(gè)字讀到AT89C51的內(nèi)部RAM20H~27H存放。其主程序如下:

其實(shí),AT24CXX系列的芯片很多,但其不盡相同。由于C語言的要精準(zhǔn)控制時(shí)間很不容易,因此往往有些工程人員碰到類似的I2C硬件結(jié)構(gòu),大多采用C語言與匯編語言混合的方法。經(jīng)過筆者一番實(shí)踐之后,覺得上述所編寫的函數(shù)幾乎可以用到所有I2C結(jié)構(gòu)的硬件,只需要大家花一點(diǎn)時(shí)間調(diào)試下DELAY函數(shù)的時(shí)間就可以了。


上一頁 1 2 下一頁

關(guān)鍵詞: E2PROM 編程 串行 AT24C02 Keil 基于

評(píng)論


相關(guān)推薦

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

關(guān)閉