新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式學(xué)習(xí)筆記21——AVR單片機(jī)之片內(nèi)EEPROM

嵌入式學(xué)習(xí)筆記21——AVR單片機(jī)之片內(nèi)EEPROM

作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
1. ATmega16單片機(jī)內(nèi)部具有512字節(jié)的EEPROM,它是一個(gè)獨(dú)立的數(shù)據(jù)空間。數(shù)據(jù)讀寫以一字節(jié)為單位,通過專用的指令來實(shí)現(xiàn)對(duì)EEPROM的操作,也可通過ISP,JTAG,并行編程的方式實(shí)現(xiàn)EEPROM的讀寫;采用內(nèi)部RC振蕩器的1MHz作為訪問的定時(shí)時(shí)鐘,其編程使用周期8848個(gè)周期,時(shí)間大約8.5ms;操作過程中盡量關(guān)閉中斷,保證時(shí)序不被打斷。

2. EEPROM存儲(chǔ)器相關(guān)的寄存器

本文引用地址:http://m.butianyuan.cn/article/201611/318410.htm


程序中可直接對(duì)地址寄存器EEAR賦值,如EEAR=0x01BA。


控制寄存器EECR用于控制單片機(jī)對(duì)EEPROM的操作


  • 位3——EERIE:EEPROM中斷準(zhǔn)備好使能位。當(dāng)EERIE置1而且全局中斷I置位時(shí),如果EEWE為0,則單片機(jī)產(chǎn)生一個(gè)中斷表示寫操作完成。(即置1后,才能在全中斷I為“1”,且EEWE為0時(shí)產(chǎn)生寫操作完成中斷。)
  • 位2——EEMWE:EEPROM主寫使能位。當(dāng)EEMWE為“1”時(shí),設(shè)置EEWE為“1”將把EEDR中的數(shù)據(jù)寫入EEAR所選擇的的地址空間中(只是寫入地址空間,還沒有真正寫入到EEPROM)。如果EEMWE為“0”,則EEWE無效。EEMWE在被用戶置“1”后的4個(gè)時(shí)鐘周期后被硬件清“0”。
  • 位1——EEWE:EEPROM寫使能位。當(dāng)EEPROM的地址和數(shù)據(jù)準(zhǔn)備好之后,用戶必須設(shè)置EEWE為“1”,才能將數(shù)據(jù)寫入EEPROM中,在置EEWE為“1”之前,EEMWE必須置“1”,否則寫入操作無效。EEPROM數(shù)據(jù)的寫入操作如下:a等待EEWE為“0”;b把EEPROM的地址寫入EEAR;c把EEPROM的數(shù)據(jù)寫入EEDR;d置EEMWE為“1”;e在置EEMWE為“1”的4個(gè)時(shí)鐘周期內(nèi),向EEWE中寫入“1”。
  • 位0——EERE:EEPROM讀使能位。EERE用于對(duì)EEPROM的數(shù)據(jù)讀取,當(dāng)EEAR中設(shè)置了EEPROM的讀取地址后,置位EERE將執(zhí)行讀操作。當(dāng)EEPROM中的數(shù)據(jù)被讀取到數(shù)據(jù)寄存器EEDR中后,EERE被硬件清零,用戶可以通過查詢此位來判斷讀操作是否完成。


評(píng)論


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

關(guān)閉