📄 my_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 + -