⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 my_eeprom.h

📁 avr单片机EEPROM读写程序 经过调试
💻 H
字号:
/*============================================================
File Name :eeprom.h
说明 :
1. 将写入的数据重新读出来送液晶显示
2. 关于乱码问题是eeprom的清除,有待解决
=============================================================*/
#ifndef _EEPROM_H
#define _EEPROM_H


#include<iom128v.h>
#include<macros.h>
#include<BIT.h>   
#include<STRING.h>
//#include"12864.h"

unsigned char a[]="搞定AVR";
unsigned char b[]="0";
unsigned char n;

//求字符串长度
#define n strlen(a) 



/*============================================================
函数功能:写入单个数据到eeprom,uiAddress是要写入的地址,
=============================================================*/
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读出单个数据,uiAddress是要写入的地址,
=============================================================*/
unsigned char eeprom_read(unsigned int uiAddress)
{

while(EECR & (1<<EEWE));/* 等待上一次写操作结束 */
EEAR = uiAddress;       /* 设置地址寄存器*/
EECR |= (1<<EERE);      /* 设置EERE 以启动读操作*/
return EEDR;            /* 自数据寄存器返回数据 */
}


/*============================================================
函数功能: 写入连续数据到eeprom,uiAddress是要写入的地址,
           str是要写入的数据,length是字符串的长度
=============================================================*/
void eeprom_write_block(unsigned int uiAddress,unsigned char *str,unsigned int length)
{   
     unsigned char i;
 	 for(i=0;i<length;i++)
     eeprom_write(uiAddress+i,str[i]);
}


/*============================================================
函数功能: 从eeprom读出连续数据,uiAddress是要写入的地址,
           length是字符串的长度,将读出的数据保存在b[]数组里
=============================================================*/
void eeprom_read_block(unsigned int uiAddress,unsigned int length)
{
 	 unsigned char i;
	 for(i=0;i<length;i++)
     b[i]=eeprom_read(uiAddress+i);
}

#endif
/*void main()
 {
      unsigned char i;	   
      unsigned int addr=1; 	
 	  DDRA=0X0F;     //A端口输出
      PORTA&=~BIT(3);//PSB输出低电平
	  Init_12864();  //液晶初始化
	  LcmClearTXT(); //液晶清屏     
	  eeprom_write_block(0,a,n); //写入连续数据到eeprom
	  eeprom_read_block(0,n);    //从eeprom读出连续数据
	  Display_x_y_data(0,0,b);   //显示在液晶上
      while(1);  
 
 }*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -