51单片机读写内部EEPROM详解

51单片机读写内部EEPROM详解

ID:39672081

大小:26.94 KB

页数:40页

时间:2019-07-08

51单片机读写内部EEPROM详解_第1页
51单片机读写内部EEPROM详解_第2页
51单片机读写内部EEPROM详解_第3页
51单片机读写内部EEPROM详解_第4页
51单片机读写内部EEPROM详解_第5页
资源描述:

《51单片机读写内部EEPROM详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文档此文档共包含三个程序。第一个程序最简单易懂,看懂了基本就会读写51单片机内部EEPROM了。第二个程序和第一个读写EEPROM原理差不多,包含有LCD1602操作方法,有写字符串的方法。第三个程序在原有基础上增加了外部中断功能,细心的人会发现,操作内部EEPROM过程会将总中断关闭,实际上程序要用到中断时只需在原有的EEPROM操作后加上开总中断即可。验证第二、第三个程序时需按程序内主程序中的操作说明进行烧录单片机,以验证是否成功操作单片机内部EEPROM。程序1:/**************************************************

2、*************作品:EEPROM实验,开机还原关电前LED的亮灭状况单片机:STC89C52RC晶振:12M编译环境:KeiluVision4V9.00***************************************************************///#include#include#include#defineucharunsignedchar实用文案标准文档#defineuintunsignedint/****************特殊功能寄存器声明****

3、************/sfrISP_DATA=0xe2;sfrISP_ADDRH=0xe3;sfrISP_ADDRL=0xe4;sfrISP_CMD=0xe5;sfrISP_TRIG=0xe6;sfrISP_CONTR=0xe7;sbitLED1=P2^0;sbitLED2=P2^1;sbitK1=P3^2;//按钮1sbitK2=P3^3;//按钮2voidcc(uintaddr);voidxcx(uintaddr,uchardat);uchardcx(uintaddr);voidQ0();/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数:主程序┈

4、┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*//*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;LED2=1;cc(0x2000);//擦除第1个扇区(2000h~21FFh)xcx(0x2002,2);//对EEPROM区2002h写入2}if(!K2){while(!K2);

5、LED1=0;LED2=0;cc(0x2000);//擦除第1个扇区(2000h~21FFh)xcx(0x2002,6);//对EEPROM区2002h写入6}}}*//*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数:擦除某一扇区(每个扇区512字节)实用文案标准文档入口:addr=某一扇区首地址┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/voidcc(uintaddr){//打开IAP功能(ISP_CONTR.7)=1:允许编程改变Flash,设置Flash操作等待时间//0x83(晶振<5M)0x82(晶振<10M)0x81(晶振

6、<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}/*┈┈┈┈┈┈┈┈┈┈┈┈

7、┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函数:写一字节入口:addr=扇区单元地址,dat=待写入数据┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/voidxcx(uintaddr,uchardat){ISP_CONTR=0x81;ISP_CMD=0x02;//用户可以对"DataFlash/EEPROM区"进行字节编程ISP_ADDRL=addr;ISP_ADDRH=addr>>8;ISP_DATA=dat;//数据进ISP_DATA实用文案标准文档EA=0;ISP_TRIG=0x46;ISP_TR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。