0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

13_51單片機(jī)應(yīng)用_AT24C02&IIC

天才小貍花 ? 來源:Sigle_chip ? 作者:Sigle_chip ? 2022-10-06 21:10 ? 次閱讀

前言

在實(shí)際的應(yīng)用中,我們需要一些存儲介質(zhì)幫助我們來存儲一些東西,如保存一些參數(shù)和配置數(shù)據(jù)等。比較常用的有AT24Cxx系列。AT24C02芯片是以IIC接口的EEPROM器件。所謂EEPROM即電可擦除可編程只讀存儲器,是ROM的一種。它是只讀存儲器,即掉電可繼續(xù)存儲數(shù)據(jù),而同時又可以在高于普通電壓的作用下擦除和重寫。

AT24C02

724b5b0f4a06107618ac1aaaa76026a9.png

img

其中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);
}
?
審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44459

    瀏覽量

    631233
收藏 人收藏

    評論

    相關(guān)推薦

    把esp8266加入到c51單片機(jī)單通道程序怎么寫

    要將ESP8266模塊加入到C51單片機(jī)的單通道程序中,您需要了解如何通過串行通信(UART)與ESP8266進(jìn)行通信。以下是如何實(shí)現(xiàn)這一點(diǎn)的步驟和示例代碼。 步驟 1:硬件連接 首先,您需要
    的頭像 發(fā)表于 10-18 11:32 ?237次閱讀

    51單片機(jī)驅(qū)動

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)驅(qū)動.exe》資料免費(fèi)下載
    發(fā)表于 09-20 11:46 ?1次下載

    OC7201C資料(PCB & 原理圖)

    電子發(fā)燒友網(wǎng)站提供《OC7201C資料(PCB & 原理圖).zip》資料免費(fèi)下載
    發(fā)表于 07-18 16:19 ?1次下載

    基于51單片機(jī)24秒倒計時設(shè)計

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)24秒倒計時設(shè)計包含了 C語言程序源代碼(keil軟件打開) 。本資源適合人群:? ? ? 單片機(jī)
    發(fā)表于 06-25 10:03 ?0次下載

    51、STM32單片機(jī)的編程方式一樣嗎?

    STM32和51單片機(jī)是兩種常見的單片機(jī)系列,它們在硬件架構(gòu)、性能特點(diǎn)和編程方式等方面有所不同。但是從c語言編程的角度來說,我認(rèn)為是大同小異的。我們來對比一下它們的編程特點(diǎn):
    的頭像 發(fā)表于 05-18 08:04 ?1686次閱讀
    <b class='flag-5'>51</b>、STM32<b class='flag-5'>單片機(jī)</b>的編程方式一樣嗎?

    基于51單片機(jī)的倒車?yán)走_(dá)的設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的倒車?yán)走_(dá)的設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:54 ?3次下載

    基于51單片機(jī)的電機(jī)控制設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電機(jī)控制設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:19 ?4次下載

    基于51單片機(jī)的光控小夜燈設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的光控小夜燈設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:13 ?0次下載

    stc51單片機(jī)怎么燒錄

    步驟 常見問題與解決方法 STC51單片機(jī)是一種常見的8位單片機(jī),廣泛應(yīng)用于各種嵌入式系統(tǒng)。它具有高性能、低成本、易于學(xué)習(xí)和使用等優(yōu)點(diǎn)。STC51
    的頭像 發(fā)表于 01-02 17:41 ?2753次閱讀

    基于51單片機(jī)的電子鬧鐘設(shè)計

    基于51單片機(jī)的電子鬧鐘設(shè)計(實(shí)物)
    發(fā)表于 01-02 09:58 ?7次下載

    51單片機(jī)C語言編程入門學(xué)習(xí)資料

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)C語言編程入門學(xué)習(xí)資料.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 11:04 ?14次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>C</b>語言編程入門學(xué)習(xí)資料

    單片機(jī)IIC總線及AT24C02的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)IIC總線及AT24C02的應(yīng)用.doc》資料免費(fèi)下載
    發(fā)表于 11-16 09:24 ?2次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>IIC</b>總線及AT<b class='flag-5'>24C02</b>的應(yīng)用

    基于51單片機(jī)的電子鐘鬧鐘溫度顯示設(shè)計

    基于51單片機(jī)AT89C51/52(與AT89S51/52、AT89C51/52、STC89C51
    的頭像 發(fā)表于 11-02 09:07 ?1986次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的電子鐘鬧鐘溫度顯示設(shè)計

    基于51單片機(jī)的鍋爐水位溫度壓力檢測系統(tǒng)仿真設(shè)計

    基于51單片機(jī)AT89C51/52(與AT89S51/52、AT89C51/52、STC89C51
    的頭像 發(fā)表于 11-02 09:06 ?1303次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的鍋爐水位溫度壓力檢測系統(tǒng)仿真設(shè)計

    80C51單片機(jī)和89C51單片機(jī)具體有什么不同?

    80C51單片機(jī)和89C51單片機(jī)具體有什么不同
    發(fā)表于 11-01 08:01