avr内部EEPROM实验
内部flash中保存的是烧录进去的程序。
内部EEPROM可以保存数据,并且断电后还保存着。
内部SRAM可以保存变量数据,断电后不保存。
仿真图片
程序代码
#include
#include
#include "delay.h"
#define uchar unsigned char
#define uint unsigned int
uchar led7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳7段数码管显示0-9对应的8bit
uchar temp;
void main(void)
{
inti_port(); //端口初始化
eeprom_read(0x00, 0x01, &temp);//先读0x00位置的内容
if(temp>9) //循环显示0-9
{
temp=0;
}
PORTB=led7[temp]; //通过共阳数码管显示
temp++; //把读出的内容+1
eeprom_write(0x00, 0x01, &temp);//把+1后的内部写入EEPROM
while(1)
{};
}
void inti_port(void)
{
PORTB=0xff;
DDRB=0xff;
}
//EEPROM写入函数 addr:地址;number:长度;p_buff:写入数据存放指针
void eeprom_write(uint addr, uchar number, uchar *p_buff)//此段参考atmage16规格书写
{
EEARH = 0x00;
while(number--)
{
while(EECR&(1
EEDR=*p_buff++;
EECR|=(1
}
//EEPROM读取函数 addr:地址;number:长度;p_buff:读出数据存放指针*/
void eeprom_read(unsigned int addr, unsigned char number, unsigned char *p_buff)//此段参考atmage16规格书写
{
while(EECR&(1
while(number--)
{
EEARL=addr++;
EECR|=(1
}
}
AVR内部EEPRO 相关文章:
- AVR内部EEPROM擦写次数测试程序(12-02)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)