前言
在實(shí)際的應(yīng)用中,我們需要一些存儲介質(zhì)幫助我們來存儲一些東西,如保存一些參數(shù)和配置數(shù)據(jù)等。比較常用的有AT24Cxx系列。AT24C02芯片是以IIC接口的EEPROM器件。所謂EEPROM即電可擦除可編程只讀存儲器,是ROM的一種。它是只讀存儲器,即掉電可繼續(xù)存儲數(shù)據(jù),而同時又可以在高于普通電壓的作用下擦除和重寫。
AT24C02
其中A0、A1、A2用于定義芯片地址,VCC和GND是供電正負(fù)接口,SCL和SDA是IIC的數(shù)據(jù)總線,WP是寫保護(hù)(若接VCC則該芯片所有內(nèi)容都被保護(hù),只能讀不能寫,一般我們直接接地)。單片機(jī)入門繪制電路板,需要正品元器件可去唯樣商城,原廠真貨。
AT24C02的從機(jī)地址前四位1010為固定值,A0,A1,A2正好與芯片的1,2,3引角對應(yīng),最末一位表示讀(1)或?qū)懀?)。
AT24C02的內(nèi)存有2Kbit(256byte),分為32頁,對其的寫操作包括字節(jié)寫和頁寫。
寫操作
字節(jié)寫
字節(jié)寫就是對指定地址的字節(jié)進(jìn)行寫入操作,時序是:
①發(fā)送start信號
②發(fā)送從器件地址+寫標(biāo)志“0”,并等待應(yīng)答信號
③發(fā)送要寫入的地址,并等待應(yīng)答信號
④發(fā)送要寫入的數(shù)據(jù),并等應(yīng)答信號
⑤發(fā)送stop信號。
頁寫
頁寫則是在字節(jié)寫的基礎(chǔ)上,在第⑤步之前多次使用第④步,即最后先不要發(fā)送stop信號,而是繼續(xù)發(fā)送數(shù)據(jù),這時AT24C02就會自動將地址加一,待所有數(shù)據(jù)發(fā)送完畢再發(fā)送stop信號。
讀操作
隨機(jī)讀
隨機(jī)讀可以指定要讀取數(shù)據(jù)的地址,具體時序:
①發(fā)送start信號
②發(fā)送從器件地址+寫標(biāo)志“0”,并等待應(yīng)答
③發(fā)送要讀數(shù)據(jù)的地址,并等待應(yīng)答
④重新發(fā)送一個start信號(也可稱為restart信號)
⑤發(fā)送從器件地址+讀標(biāo)志“1”,并等待應(yīng)答
⑥接收傳來的數(shù)據(jù),收到數(shù)據(jù)后要發(fā)送非應(yīng)答信號
⑦發(fā)送stop信號。
當(dāng)前地址讀
當(dāng)前地址讀則是只能讀取芯片內(nèi)部最近一次操作的地址加一處的數(shù)據(jù)(主要在已知上次操作地址時使用),具體時序:
①發(fā)送start信號
②發(fā)送從器件地址+讀標(biāo)志“1”,并等待應(yīng)答
③接收傳來的數(shù)據(jù),然后發(fā)送非應(yīng)答信號
④發(fā)送stop信號。
順序讀
順序讀則是在前兩種讀操作的基礎(chǔ)上,在接收到數(shù)據(jù)后發(fā)送應(yīng)答信號,然后就可以繼續(xù)讀上次操作地址加一處的數(shù)據(jù)了(這是在芯片內(nèi)部實(shí)現(xiàn)的),當(dāng)讀夠數(shù)據(jù)后,要發(fā)送非應(yīng)答信號,最后發(fā)送stop信號。
代碼
void write_AT24C02(uchar unit_addr, uchar dat)
{
start();
write_byte(AT24C02_ADDR + 0);//下一個字節(jié)為寫,所以是+0
ack();
write_byte(unit_addr);
ack();
write_byte(dat);
ack();
end();
}
?
uchar read_AT24C02(uchar unit_addr)
{
uchar dat;
/先寫數(shù)據(jù)/
start();
write_byte(AT24C02_ADDR + 0);//下一個字節(jié)為寫
ack();
write_byte(unit_addr);
ack();
start();
write_byte(AT24C02_ADDR + 1);//下一個字節(jié)為讀
ack();
dat = read_byte();
end();
return dat;
}
?
void main()
{
write_AT24C02(0xf0, 0xae);
delay_10ms(); //寫完后,必須延時一定的時間才可以讀取
P1 = read_AT24C02(0xf0);
while(1);
}
?
審核編輯 黃昊宇
-
單片機(jī)
+關(guān)注
關(guān)注
6026文章
44459瀏覽量
631233
發(fā)布評論請先 登錄
相關(guān)推薦
評論