?? eeprom._c
字號:
/*******************************************
文件:EEPROM.C
環(huán)境:編譯為ICC AVR6.25A,仿真為AVR Studio4.10
硬件:ATMEGA16芯片
日期:2006年12月10日
功能:實現(xiàn)MEGA16的EEPROM的讀和寫操作
備注:參考《AVR系列單片機C語言編程與應(yīng)用實例》(清華大學(xué)出版社)
/******************************************/
#include <iom16v.h> //包含型號頭文件
#include <macros.h> //包含"位"操作頭文件
#include <stdio.h> //標(biāo)準(zhǔn)輸入輸出頭文件
#include <AVR_PQ1A.h> //包含自定義常量頭文件
/*******************************************
函數(shù)名稱: Delayms
功 能: 延時指定毫秒(8M晶振)
參 數(shù): MS--延時的毫秒數(shù)
返回值 : 無
/********************************************/
void Delayms(uint MS)
{
uint i,j;
for( i=0;i<MS;i++)
for(j=0;j<1141;j++); //1141是在8MHz晶振下,通過軟件仿真反復(fù)實驗得到的數(shù)值
}
/*******************************************
函數(shù)名稱: Eeprom_writeB
功 能: 向EEPROM中的指定地址寫入一個字節(jié)
參 數(shù): eaddr--EEPROM的指定地址
edata--寫入EEPROM的數(shù)據(jù)
返回值 : 無
/********************************************/
void Eeprom_writeB(uint eaddr,uchar edata)
{
SREG&=~BIT(7); //在寫入EEPROM期間應(yīng)該關(guān)閉全局中斷,防止中斷打斷寫EEPROM的特殊時序
while(EECR&BIT(EEWE)); //等待上次寫操作完畢
EEAR=eaddr; //配置地址寄存器
EEDR=edata; //配置數(shù)據(jù)寄存器
EECR|=BIT(EEMWE); //主寫使能置高
EECR|=BIT(EEWE); //EEMWE置高后,4個時鐘周期內(nèi)將EEWE置高才能將數(shù)據(jù)寫入
SREG|=BIT(7); //寫入完畢后,開放全局中斷
}
/*******************************************
函數(shù)名稱: Eeprom_readB
功 能: 從EEPROM中的指定地址讀出一個字節(jié)
參 數(shù): eaddr--EEPROM的指定地址
返回值 : edata--讀出的EEPROM數(shù)據(jù)
/********************************************/
uchar Eeprom_readB(uint eaddr)
{
uchar edata;
while(EECR&BIT(EEWE)); //等待上次寫操作完畢
EEAR=eaddr; //配置地址寄存器
EECR|=BIT(EERE); //讀使能置高
edata=EEDR; //讀出數(shù)據(jù)
return edata; //返回讀出的數(shù)據(jù)
}
/*******************************************
函數(shù)名稱: main
功 能: 實現(xiàn)EEPROM的0-254地址單元寫入0-254,然后讀出
參 數(shù): 無
返回值 : 無
/********************************************/
void main(void)
{
uchar i;
Board_init( ); //初始化開發(fā)板
for(i=0;i<255;i++) //連續(xù)寫入
{
Eeprom_writeB(i,i);
}
for(i=0;i<255;i++) //連續(xù)讀出
{
Eeprom_readB(i);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -