stc89c52内部eeprom

stc89c52内部eeprom

ID:11526603

大小:31.00 KB

页数:4页

时间:2018-07-12

stc89c52内部eeprom_第1页
stc89c52内部eeprom_第2页
stc89c52内部eeprom_第3页
stc89c52内部eeprom_第4页
资源描述:

《stc89c52内部eeprom》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM或FLASHROM等存储器来实现。在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过IIC或SPI等接口来进行数据通信。这样不光会增加开发成本,同时在程序开发上也要花更多的心思。在STC单片机中内置了EEPROM(其实是采用IAP技术读写内部FLASH来实现EEPROM),这样就节省了片外资源,使用起来也更加方便。下面就详细介绍STC单片机内置EE

2、PROM及其使用方法。STC各型号单片机内置的EEPROM的容量各有不同,见下表:(内部EEPROM可以擦写100000次以上)上面提到了IAP,它的意思是“在应用编程”,即在程序运行时程序存储器可由程序自身进行擦写。正是是因为有了IAP,从而可以使单片机可以将数据写入到程序存储器中,使得数据如同烧入的程序一样,掉电不丢失。当然写入数据的区域与程序存储区要分开来,以使程序不会遭到破坏。要使用IAP功能,与以下几个特殊功能寄存器相关:ISP_DATA:ISP/IAP操作时的数据寄存器。ISP/IAP从Fla

3、sh读出的数据放在此处,向Flash写的数据也需放在此处ISP_ADDRH:ISP/IAP操作时的地址寄存器高八位。ISP_ADDRL:ISP/IAP操作时的地址寄存器低八位。ISP_CMD:ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。ISP_TRIG:ISP/IAP操作时的命令触发寄存器。当ISPEN(ISP_CONTR.7)=1时,对ISP_TRIG先写入0x46,再写入0xb9,ISP/IAP命令才会生效。单片机芯片型号起始地址内置EEPROM容量(每扇区512字节)STC8

4、9C51RC,STC89LE51RC0x2000共八个扇区STC89C52RC,STC89LE52RC0x2000共八个扇区STC89C54RD+,STC89LE54RD+0x8000共五十八个扇区STC89C55RD+,STC89LE55RD+0x8000共五十八个扇区STC89C58RD+,STC89LE58RD+0x8000共五十八个扇区寄存器标识地址名称76543210初始值ISP_DATA0xE2ISP/IAP闪存数据寄存器11111111ISP_ADDRH0xE3ISP/IAP闪存地址高位00

5、000000ISP_ADDRL0xE4ISP/IAP闪存地址低位00000000ISP_CMD0xE5ISP/IAP闪存命令寄存器MS2MS1MS0xxxxx000ISP_TRIG0xE6ISP/IAP闪存命令触发xxxxxxxxISP_CONTR0xE7ISP/IAP控制寄存器ISPENSWBSSWRSTWT2WT1WT000xx000B7B6B5B4B3B2B1B0命令/操作模式选择保留命令选择-----000待机模式,无ISP/IAP操作-----001对用户的应用程序Flash区及数据Flash区

6、字节读-----010对用户的应用程序Flash区及数据Flash区字节编程-----011对用户的应用程序Flash区及数据Flash区扇区擦除ISP_CONTR:ISP/IAP控制寄存器。ISPEN:ISP/IAP功能允许位。0:禁止ISP/IAP编程改变Flash,1:允许编程改变FlashSWBS:软件选择从用户主程序区启动(0),还是从ISP程序区启动(1)。SWRST:0:不操作,1:产生软件系统复位,硬件自动清零。ISP_CONTR中的SWBS与SWRST这两个功能位,可以实现单片机的软件启

7、动,并启动到ISP区或用户程序区,这在“STC单片机自动下载”一节,亦有所应用。如:ISP_CONTR=0x60?则可以实现从用户应用程序区软件复位到ISP程序区开始运行程序。ISP_CONTR=0x20?则可以实现从ISP程序区软件复位到用户应用程序区开始运行程序。用IAP向Flash中读写数据,是需要一定的读写时间的,读写数据命令发出后,要等待一段时间才可以读写成功。这个等待时间就是由WT2、WT1、WT0与晶体振荡器频率决定的。(以上的建议时钟是(WT2、WT1、WT0)取不同的值时的标称时钟,用户

8、系统中的时钟不要过高,否则可能使操作不稳定。)#include"reg52.h"#include"eeprom.h"//******************关闭ISPIAP功能**************voidISP_IAP_Disable(void){ISP_CONTR=0x00;ISP_CMD=0X00;ISP_TRIG=0x00;EA=1;//开中断}//*******************字节读**********

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

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

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