欢迎来到天天文库
浏览记录
ID:38179575
大小:449.54 KB
页数:6页
时间:2019-06-03
《用51hei-5板子学习单片机内部EEPROM的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、51系列单片机内部EEPROM应用STC89C51、52内部都⾃带有2K字节的EEPROM,54、55和58都⾃带有16K字节的EEPROM,STC单⽚机是利⽤IAP技术实现的EEPROM,内部Flash擦写次数可达100,000次以上,先来介绍下ISP与IAP的区别和特点。用51hei-5板子学习单片机内部EEPROM的应用STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000次以
2、上,先来介绍下ISP与IAP的区别和特点。ISP:InSystemProgramable是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。IAP:InApplicationProgramable是指在应用编程,就是片子提供一系列的机制(硬件/软件上的)当片子在运行程序的时候可以提供一种改变flash数据的方法。通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式的典型应
3、用就是用一小段代码来实现程序的下载,实际上单片机的ISP功能就是通过IAP技术来实现的,即片子在出厂前就已经有一段小的boot程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。大家要注意千万不要尝试去擦除这段ISP引导程序,否则恐怕以后再也下载不了程序了。STC单片机内部有几个专门的特殊功能寄存器负责管理ISP/IAP功能的,见表1。表1ISP/IAP相关寄存器列表相关寄存器列表名称地址功能描述D7D6D5D4D3D2D1D0复位值ISP_DATAE2hFlash数
4、据寄11111111存器ISP_ADDRHE3hFlash高字节00000000地址存储器ISP_ADDRLE4hFlash高字节00000000地址存储器ISP_CMDE5hFlash命令模-----MS2MS1MS0XXXXX000式寄存器ISP_TRIGE6hFlash命令触XXXXXXXX发寄存器SP_CONTRE7HISP/IA控制寄ISPENSWBSSWRST--WT2WT1WT0000xx000存器ISP_DATA:ISP/IAP操作时的数据寄存器。ISP/IAP:从Flash读出的数据放在此处,向Flash
5、写入的数据也需放在此处。ISP_ADDRH:ISP/IAP操作时的地址寄存器高八位。ISP_ADDRL:ISP/IAP操作时的地址寄存器低八位。ISP_CMD:ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。命令模式如表2所示表2ISP_CMD寄存器模式设置D7D6D5D4D3D2D1D0模式选择保留命令选择-----000待机模式,无ISP操-----001对用户的应用程序flash区及数据flash区字节读-----010对用户的应用程序flash区及数据flash区字节编程-----011对用户的
6、应用程序flash区及数据flash区扇区擦除程序在系统ISP程序区时可以对用户应用程序区/数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除;程序在用户应用程序区时,仅可以对数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除。STC89C51RC/RD+系列单片机出厂时已经固化有ISP引导码,并设置为上电复位进入ISP程序区,并且出厂时就已完全加密。ISP_TRIG:ISP/IAP操作时的命令触发寄存器。在ISPEN(ISP_CONTR.7)=1时,对ISP_TRIG先写入46h,再写入B9h,I
7、SP/IAP命令才会生效。STC89C52RC,STC89LE52RC单片机内部可用DataFlash(EEPROM)的地址如表3所示,其它型号单片机请查阅相关资料。表3STC89C52RC、STC89LE52RC单片机内部EEPROM地址表第一扇区第二扇区第三扇区第四扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址2000H21FFH2200H23FFH2400H25FFH2600H27FFH第五扇区第六扇区第七扇区第八扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址2800H29
8、FFH2A00H2BFFH2C00H2DFFH2E00H2FFFH每个扇区为512字节,建议大家在写程序时,将同一次修改的数据放在同一个扇区,方便修改,因为在执行擦除命令时,一次最少要擦除一个扇区的数据,每次在更新数据前都必须擦除原数据方可重新写入新数据,不能直接在原来数据基础上更新内容。下面通过一个例
此文档下载收益归作者所有