stc单片机内部eeprom的应用_第1页
stc单片机内部eeprom的应用_第2页
stc单片机内部eeprom的应用_第3页
stc单片机内部eeprom的应用_第4页
stc单片机内部eeprom的应用_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TX1C开发板学习单片机内部EEPROM的应用STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部FLASH擦写次数可达100,000次以上,先来介绍下ISP与IAP的区别和特点。知识点ISP与IAP介绍ISPINSYSTEMPROGRAMABLE是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。IAPINAPPLICATIONPROGRAMABLE是指在应用编程,就是片子提供一系列的机制硬件/软件上的当片子在运行程序的时候可以提供一种改变FLASH数据的方法。通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式的典型应用就是用一小段代码来实现程序的下载,实际上单片机的ISP功能就是通过IAP技术来实现的,即片子在出厂前就已经有一段小的BOOT程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。大家要注意千万不要尝试去擦除这段ISP引导程序,否则恐怕以后再也下载不了程序了。STC单片机内部有几个专门的特殊功能寄存器负责管理ISP/IAP功能的,见表1。表1ISP/IAP相关寄存器列表名称地址功能描述D7D6D5D4D3D2D1D0复位值ISP_DATAE2HFLASH数据寄存器11111111ISP_ADDRHE3HFLASH高字节地址寄存器00000000ISP_ADDRLE4HFLASH低字节地址寄存器00000000ISP_CMDE5HFLASH命令模式寄存器MS2MS1MS0XXXXX000ISP_TRIGE6HFLASH命令触发寄存器XXXXXXXXISP_CONTRE7HISP/IAP控制寄存器ISPENSWBSSWRSTWT2WT1WT0000XX000ISP_DATAISP/IAP操作时的数据寄存器。ISP/IAP从FLASH读出的数据放在此处,向FLASH写入的数据也需放在此处。ISP_ADDRHISP/IAP操作时的地址寄存器高八位。ISP_ADDRLISP/IAP操作时的地址寄存器低八位。ISP_CMDISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。命令模式如表2所示。表2ISP_CMD寄存器模式设置D7D6D5D4D3D2D1D0模式选择保留命令选择000待机模式,无ISP操作001对用户的应用程序FLASH区及数据FLASH区字节读010对用户的应用程序FLASH区及数据FLASH区字节编程011对用户的应用程序FLASH区及数据FLASH区扇区擦除程序在系统ISP程序区时可以对用户应用程序区/数据FLASH区EEPROM进行字节读/字节编程/扇区擦除;程序在用户应用程序区时,仅可以对数据FLASH区EEPROM进行字节读/字节编程/扇区擦除。STC89C51RC/RD系列单片机出厂时已经固化有ISP引导码,并设置为上电复位进入ISP程序区,并且出厂时就已完全加密。ISP_TRIGISP/IAP操作时的命令触发寄存器。在ISPENISP_CONTR71时,对ISP_TRIG先写入46H,再写入B9H,ISP/IAP命令才会生效。STC89C52RC,STC89LE52RC单片机内部可用DATAFLASHEEPROM的地址如表3所示,其它型号单片机请查阅相关资料。表3STC89C52RC、STC89LE52RC单片机内部EEPROM地址表第一扇区第二扇区第三扇区第四扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址2000H21FFH2200H23FFH2400H25FFH2600H27FFH第五扇区第六扇区第七扇区第八扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址2800H29FFH2A00H2BFFH2C00H2DFFH2E00H2FFFH每个扇区为512字节,建议大家在写程序时,将同一次修改的数据放在同一个扇区,方便修改,因为在执行擦除命令时,一次最少要擦除一个扇区的数据,每次在更新数据前都必须要擦除原数据方可重新写入新数据,不能直接在原来数据基础上更新内容。下面来讲解STC系列单片机EEPROM的具体用法。在TX1C实验板上实现如下描述,操作STC单片机自带的EEPROM,存储一组按秒递增的二位数据,并且将数据实时显示在数码管上,数据每变化一次就往EEPROM中写入一次,当关闭实验板电源,再次开启电源时,从EEPROM中读取先前存储的数据,接着递增显示。新建文件PART344C,程序代码如下INCLUDEINCLUDE/52系列单片机头文件DEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINERDCOMMAND0X01/定义ISP的操作命令DEFINEPRGCOMMAND0X02DEFINEERASECOMMAND0X03DEFINEERROR1DEFINEOK0DEFINEWAITTIME0X01/定义CPU的等待时间UCHARCODETABLE0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71UCHARNUMVOIDDELAYMSUINTXMSUINTI,JFORIXMSI0I/IXMS即延时约XMS毫秒FORJ110J0JVOIDDISPLAYUCHARSHI,UCHARGE/显示子函数DULA1P0TABLESHI/送十位段选数据DULA0P00XFF/送位选数据前关闭所有显示,防止打开位选锁存时WELA1/原来段选数据通过位选锁存器造成混乱P00XFE/送位选数据WELA0SFRISP_DATA0XE2/寄存器申明SFRISP_ADDRH0XE3SFRISP_ADDRL0XE4SFRISP_CMD0XE5SFRISP_TRIG0XE6SFRISP_CONTR0XE7SBITDULAP26/申明U1锁存器的锁存端SBITWELAP27/申明U2锁存器的锁存端DELAYMS5/延时DULA1P0TABLEGE/送个位段选数据DULA0P00XFFWELA1P00XFDWELA0DELAYMS5VOIDISP_IAP_ENABLEVOID/打开ISP,IAP功能/EA0/关中断/ISP_CONTRISP_CONTR/0001,1000/ISP_CONTRISP_CONTR|WAITTIME/写入硬件延时/ISP_CONTRISP_CONTR|0X80/ISPEN1/VOIDISP_IAP_DISABLEVOID/关闭ISP,IAP功能/ISP_CONTRISP_CONTR/ISPEN0/ISP_TRIG0X00EA1/开中断/VOIDISPGOONVOID/公用的触发代码/ISP_IAP_ENABLE/打开ISP,IAP功能/ISP_TRIG0X46/触发ISP_IAP命令字节1/ISP_TRIG0XB9/触发ISP_IAP命令字节2/_NOP_UNSIGNEDCHARBYTE_READUNSIGNEDINTBYTE_ADDR/字节读/ISP_ADDRHUNSIGNEDCHARBYTE_ADDR8/地址赋值/ISP_ADDRLUNSIGNEDCHARBYTE_ADDRISP_CMDISP_CMD/清除低3位/ISP_CMDISP_CMD|RDCOMMAND/写入读命令/ISPGOON/触发执行/ISP_IAP_DISABLE/关闭ISP,IAP功能/RETURNISP_DATA/返回读到的数据/VOIDSECTORERASEUNSIGNEDINTSECTOR_ADDR/扇区擦除/UNSIGNEDINTISECTORADDRISECTORADDRSECTOR_ADDR/取扇区地址/ISP_ADDRHUNSIGNEDCHARISECTORADDR8ISP_ADDRL0X00ISP_CMDISP_CMD/清空低3位/ISP_CMDISP_CMD|ERASECOMMAND/擦除命令3/ISPGOON/触发执行/ISP_IAP_DISABLE/关闭ISP,IAP功能/VOIDBYTE_WRITEUNSIGNEDINTBYTE_ADDR,UNSIGNEDCHARORIGINAL_DATA/字节写/ISP_ADDRHUNSIGNEDCHARBYTE_ADDR8/取地址/ISP_ADDRLUNSIGNEDCHARBYTE_ADDRISP_CMDISP_CMD/清低3位/ISP_CMDISP_CMD|PRGCOMMAND/写命令2/ISP_DATAORIGINAL_DATA/写入数据准备/ISPGOON/触发执行/ISP_IAP_DISABLE/关闭IAP功能/VOIDMAINUCHARA,B,NUM1TMOD0X01/设置定时器0为工作方式100000001TH06553650000/256TL06553650000256EA1ET01TR01NUM1BYTE_READ0X2000/程序开始

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论