51单片机读写内部EEPROM详解Word格式.docx
- 文档编号:17042084
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:31
- 大小:23.87KB
51单片机读写内部EEPROM详解Word格式.docx
《51单片机读写内部EEPROM详解Word格式.docx》由会员分享,可在线阅读,更多相关《51单片机读写内部EEPROM详解Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
sfrISP_ADDRH=0xe3;
sfrISP_ADDRL=0xe4;
sfrISP_CMD=0xe5;
sfrISP_TRIG=0xe6;
sfrISP_CONTR=0xe7;
sbitLED1=P2^0;
sbitLED2=P2^1;
sbitK1=P3^2;
//按钮1
sbitK2=P3^3;
//按钮2
voidcc(uintaddr);
voidxcx(uintaddr,uchardat);
uchardcx(uintaddr);
voidQ0();
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函数:
主程序
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
/*
voidmain(void)
{
ucharV;
V=dcx(0x2002);
//开机读取EEPROM区2002h数据,还原关电前LED的亮灭状况
if(V==2){LED1=0;
LED2=1;
}
elseif(V==6){LED1=0;
LED2=0;
}
while
(1)
{
if(!
K1)
while(!
K1);
LED1=0;
cc(0x2000);
//擦除第1个扇区(2000h~21FFh)
xcx(0x2002,2);
//对EEPROM区2002h写入2
}
K2)
while(!
K2);
xcx(0x2002,6);
//对EEPROM区2002h写入6
*/
擦除某一扇区(每个扇区512字节)
入口:
addr=某一扇区首地址
voidcc(uintaddr)
{
//打开IAP功能(ISP_CONTR.7)=1:
允许编程改变Flash,设置Flash操作等待时间
//0x83(晶振<
5M)0x82(晶振<
10M)0x81(晶振<
20M)0x80(晶振<
40M)
ISP_CONTR=0x81;
ISP_CMD=0x03;
//用户可以对"
DataFlash/EEPROM区"
进行扇区擦除
ISP_ADDRL=addr;
//ISP/IAP操作时的地址寄存器低八位,
ISP_ADDRH=addr>
>
8;
//ISP/IAP操作时的地址寄存器高八位。
EA=0;
ISP_TRIG=0x46;
//在ISPEN(ISP_CONTR.7)=1时,对ISP_TRIG先写入46h,
ISP_TRIG=0xB9;
//再写入B9h,ISP/IAP命令才会生效。
_nop_();
Q0();
//关闭ISP/IAP
写一字节
addr=扇区单元地址,dat=待写入数据
voidxcx(uintaddr,uchardat)
ISP_CMD=0x02;
//用户可以对"
进行字节编程
ISP_DATA=dat;
//数据进ISP_DATA
EA=0;
读一字节
addr=扇区单元地址
出口:
dat=读出的数据
uchardcx(uintaddr)
uchardat;
ISP_CMD=0x01;
进行字节读
dat=ISP_DATA;
//取出数据
//关闭ISP/IAP
returndat;
关闭ISP/IAP操作
voidQ0()
ISP_CONTR=0;
//关闭IAP功能
ISP_CMD=0;
//待机模式,无ISP操作
ISP_TRIG=0;
//关闭IAP功能,清与ISP有关的特殊功能寄存器
STC89C52RC内部EEPROM详细地址表:
第一扇区第二扇区第三扇区第四扇区
起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址
2000h21FFh2200h23FFh2400h25FFh2600h27FFH
第五扇区第六扇区第七扇区第八扇区
起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址
2800h29FFh2A00h2BFFh2C00h2DFFh2E00h2FFFh
程序2:
#ifndefuchar
#defineucharunsignedchar
#endif
#ifndefuint
#defineuintunsignedint
/**********************************
PIN口定义
**********************************/
#defineLCD1602_DATAPINSP0
sbitLCD1602_E=P2^7;
sbitLCD1602_RW=P2^5;
sbitLCD1602_RS=P2^6;
函数声明
/*在51单片机12MHZ时钟下的延时函数*/
voidLcd1602_Delay1ms(uintc);
//误差0us
/*LCD1602写入8位命令子函数*/
voidLcdWriteCom(ucharcom);
/*LCD1602写入8位数据子函数*/
voidLcdWriteData(uchardat);
/*LCD1602初始化子程序*/
voidLcdInit();
/*LCD1602写入字符串*/
voidLCDWrite_String(ucharx,uchary,ucharz,uchar*s);
/*设置LCD1602写入字符串的位置*/
voidLCD_set_xy(ucharx,uchary,ucharz);
ucharON_Hour=0x07;
//初始开灯时间07:
001
ucharWarning_TempH=32;
//高温报警温度5
//开机读取EEPROM区2002h数据,还原关电前LED的亮灭状况
xcx(0x2002,6);
LcdInit();
//不注销下面三句,烧录一次
//注销小面三句,再烧录一次
//若两次烧录后现象一致,则操作内部EEPROM成功
/////////////////////////////////////////////////////////////////
xcx(0x2000,ON_Hour);
xcx(0x2001,Warning_TempH);
/////////////////////////////////////////////////////////////////
ON_Hour=dcx(0x2000);
Warning_TempH=dcx(0x2001);
if((ON_Hour==0x07)||(Warning_TempH==32))
LcdWriteCom(0x80);
LCDWrite_String(0,1,7,"
SUCCESS"
);
else
LCDWrite_String(0,1,5,"
ERROR"
while
(1);
uchardat;
//关闭IAP功能
/*******************************************************************************
*函数名:
Lcd1602_Delay1ms
*函数功能:
延时函数,延时1ms
*输入:
c
*输出:
无
*说名:
该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/
voidLcd1602_Delay1ms(uintc)//误差0us
uchara,b;
for(;
c>
0;
c--)
for(b=199;
b>
b--)
{
for(a=1;
a>
a--);
}
}
voidLCDWrite_String(ucharx,uchary,uchar*s)
向LCD写入一个字符串
x,y,*s
voidLCDWrite_String(ucharx,uchary,ucharz,uchar*s)//x0~15,y0,1,2,3
LCD_set_xy(x,y,z);
while(*s)
LcdWriteData(*s);
s++;
voidLCD_set_xy(ucharx,uchary,ucharz)
指定向LCD写入字符串的位置
x,y,z//x:
横坐标y:
纵坐标z:
字符串长度
voidLCD_set_xy(ucharx,uchary,ucharz)
uchari;
if(y==0)
LcdWriteCom(0x80+x);
for(i=0;
i<
z;
i++)
LcdWriteData('
'
}
if(y==1)
LcdWriteCom(0xc0+x);
if(y==2)
LcdWriteCom(0x94+x);
if(y==3)
LcdWriteCom(0xd4+x);
LcdWriteCom
向LCD写入一个字节的命令
com
#ifndefLCD1602_4PINS//当没有定义这个LCD1602_4PINS时
voidLcdWriteCom(ucharcom)//写入命令
LCD1602_E=0;
//使能
LCD1602_RS=0;
//选择发送命令
LCD1602_RW=0;
//选择写入
LCD1602_DATAPINS=com;
//放入命令
Lcd1602_Delay1ms
(1);
//等待数据稳定
LCD1602_E=1;
//写入时序
Lcd1602_Delay1ms(5);
//保持时间
#else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 读写 内部 EEPROM 详解