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