AVR128系列的在其内部有eeprom模块,通过控制相应的寄存器来控制存取操作,这里做一个简单的介绍。
#include <iom128v.h>
#include <macros.h>
/*向EEPROM里面写入数据
输入量:地址,数据*/
void EEPROM_write(unsigned int uiAddress,unsigned char ucData)
{
while(EECR&(1<<EEWE)); //等待上一次写操作结束
EEAR = uiAddress; //地址
EEDR = ucData; //数据
EECR |=(1<<EEMWE); //置位EEMWE,主机写使能
EECR |=(1<<EEWE); //置位EEWE,写使能,启动写操作
}
/*从EEPROM指定的地址里面读出相应的数据*/
unsigned char EEPROM_read(unsigned int uiAddress)
{
while(EECR&(1<<EEWE)); //等待上一次写操作结束
EEAR = uiAddress; //设置地址寄存器
EECR |=(1<<EERE); //读使能
return EEDR; //返回读入EEDR里面的数据
}
void main(void)
{
unsigned char temp=90;
unsigned char data;
HC_595_init(); //我的是595的驱动
EEPROM_write(0x01,temp);
data=EEPROM_read(0x01);
while(1)
{
Seg7_Led_display(data); //可以参照前面讲的数码管显示函数
}
}
编译环境:ICCAVR
文章评论(0条评论)
登录后参与讨论