avr單片機(jī)eeprom初始化配置及說明
/*
EEPROM 數(shù)據(jù)存儲器
EEPROM 地址寄存器(EEARH 和 EEARL)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0
Res: 保留
保留位,讀操作返回值為零。
EEAR8..0: EEPROM 地址
EEPROM地址寄存器 – EEARH和EEARL指定了512字節(jié)的EEPROM空間。EEPROM地址是線性
的,從0 到511。EEAR的初始值沒有定義。在訪問EEPROM之前必須為其賦予正確的數(shù)據(jù)。
EEPROM數(shù)據(jù)寄存器 EEDR
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
MSB LSB
EEDR7.0: EEPROM 數(shù)據(jù)
對于EEPROM寫操作, EEDR是需要寫到EEAR單元的數(shù)據(jù);對于讀操作,EEDR 是從
地址EEAR讀取的數(shù)據(jù)。
EEPROM控制寄存器 EECR
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
– – – – EERIE EEMWE EEWE EERE
Res: 保留
保留位,讀操作返回值為零。
EERIE: 使能EEPROM 準(zhǔn)備好中斷
若SREG 的I 為"1",則置位EERIE 將使能EEPROM 準(zhǔn)備好中斷。清零EERIE 則禁止此
中斷。當(dāng)EEWE 清零時EEPROM 準(zhǔn)備好中斷即可發(fā)生。
EEMWE: EEPROM 主機(jī)寫使能
EEMWE決定了EEWE置位是否可以啟動EEPROM寫操作。當(dāng)EEMWE為"1"時,在4個時鐘周
期內(nèi)置位EEWE將把數(shù)據(jù)寫入EEPROM的指定地址;若EEMWE為"0“,則操作EEWE不起
作用。EEMWE置位后4個周期,硬件對其清零。見EEPROM 寫過程中對EEWE 位的描述。
EEWE: EEPROM寫使能
EEWE為EEPROM寫操作的使能信號。當(dāng)EEPROM數(shù)據(jù)和地址設(shè)置好之后,需置位EEWE以便將
數(shù)據(jù)寫入EEPROM。此時EEMWE必須置位,否則EEPROM寫操作將不會發(fā)生。
*/
#include
#include
/*EEPROM的512字節(jié)讀寫操作*/
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)//寫數(shù)據(jù).存數(shù)據(jù)的地址0-511之間
{
while(EECR & (1<
EEDR = ucData;//設(shè)置數(shù)據(jù)
EECR |= (1<
unsigned char EEPROM_read(unsigned int uiAddress)//讀數(shù)據(jù)
{
while(EECR & (1<
EECR |= (1<
}
評論