单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM 中的数据是无法保留的,那么怎
样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现。
在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过IIC 或SPI 等接口来进行数据通信。
这样不光会增加开发成本,同时在程序开发上也要花更多的心思。在STC 单片机中内置了EEPROM(其实是采用
ISP/IAP 技术读写内部FLASH 来实现EEPROM),这样就节省了片外资源,使用起来也更加方便。下面
就详细介绍STC 单片机内置EEPROM 及其使用方法
STC 各型号单片机内置的EEPROM 的容量最小有2K,最大有16K,基本上很好地满足项目的需要,更
方便之处就是节省了周边的EEPROM 器件,达到节省成本的目的,而且内部EEPROM 的速度比外部的
EEPROM 的速度快很多。
STC 各型号单片机内置的EEPROM 是以512 字节为一个扇区,EEPROM 的起始地址=FALSH 容量值+1,
那么STC89C52RC 的起始地址为0x2000,第一扇区的起始地址和结束地址0x2000~0x21FF,第二扇区
的起始地址和结束地址0x2200~0x23FF,其他扇区如此类推。
深入重点:
传统的EEPROM 是电可擦可编程只读存储一种掉电后数据不丢失的存储芯片。
STC89C52RC 的EEPROM 是通过ISP/IAP 技术读写内部FLASH 来实现EEPROM。
STC89C52RC 的EEPROM 起始地址为0x2000,以512 字节为一个扇区,EERPOM 的大小为2K 字节。
STC89C52RC 与EEPORM 实现的寄存器有6 个,分别是ISP_DATA、ISP_ADDRH、ISP_ADDRL
ISP_TRIG、ISP_CMD、ISP_CONTR。
1. ISP_DATA 寄存器
ISP_DATA 寄存器:ISP/IAP 操作时的数据寄存器。
ISP/IAP 从Flash 的数据在此处,向Flash 写的数据也须放在此处。
示例1:读单个字节
UINT8 EEPROMRead(UINT16 addr)
{
……
return ISP_DATA;
}
示例2:写单个字节
void EEPROMWrite(UINT8 byte)
{
……
ISP_DATA=byte;
}
2.ISP_ADDRH、ISP_ADDRL 寄存器
ISP_ADDRH: ISP/IAP 操作时的地址寄存器高八位
ISP_ADDRL: ISP/IAP 操作时的地址寄存器低八位
示例1:设置地址
void EEPROMSetAddress(UINT16 Addr)
{
……
ISP_ADDRH=(UINT8)(Addr>>8);
ISP_ADDRL=(UINT8) Addr;
}
3.ISP_CMD 寄存器
ISP_CMD: ISP/IAP 操作时的命令模式寄存器,需要通过ISP_TRIG 命令触发寄存器才能生效。
4.ISP_TRIG 寄存器
ISP/IAP 命令要生效即ISP_CMD 设置的命令要生效,必须通过ISP_TRIG 命令触发寄存器进行触发。
触发过程很特别,只需要连续二次对ISP_TRIG 寄存器赋值就可以的了,对ISP_TRIG 寄存器先写入
0x46,再写入0xB9 就完成命令触发的过程。
示例1:命令触发
void EEPROMCmdTrig(void)
{
……
ISP_TRIG=0x46;
ISP_TRIG=0xB9;
}
5.ISP_CONTR 寄存器
ISP_CONTR:ISP/IAP 控制寄存器
ISPEN:ISP/IAP 功能允许位。0:禁止ISP/IAP 编程改变Flash。
SWBS: 0:软件选择从用户主程序区启动1:ISP 程序区启动
SWRST: 0:不操作1:产生软件系统复位,硬件自动清零
WT2、WT1、WT0:设置等待时间
假如STC89C52RC 的工作频率为12MHz,那么机器周期为1us,参照表12-,EEPROM 的读单个字
节、写单个字节、扇区擦除的所需要的时间大致如下:
读单字节: 11*1us=11us
写单字节: 60*1us=60us
扇区擦除: 10942*1us=10.942ms
无论单片机运行在什么工作频率下,EEPROM 的读、写、擦除操作的所需要的时间分别约为10us、60us、
10ms。
深入重点:
STC89C52RC 与EEPORM 实现的寄存器有6 个,分别是ISP_DATA、ISP_ADDRH、
ISP_ADDRL ISP_TRIG、ISP_CMD、ISP_CONTR。
EEPROM 的命令触发必须对ISP_TRIG 寄存器先写入0x46,再写入0xB9。
无论单片机运行在什么工作频率下,EEPROM 的读、写、擦除操作的所需要的时间分别约
为10us、60us、10ms,因而要对ISP_CONTR 设置好等待时间,否则数据容易出现问题。
关键字:单片机 STC89C52RC 内部EEPROM
引用地址:
单片机STC89C52RC 内部EEPROM
推荐阅读最新更新时间:2024-03-16 15:21
基于32位单片机MC68HC376高可靠系统设计
引言 随着工业技术的不断发展,对单片机控制的要求也越来越高,需要单片机具备更高的反应速度和更强的数据处理能力,各种高性能的新型单片机得到了迅猛的发展和应用。 单片机上主要是高速的数字信号,弱信号很容易受到外界的电磁干扰,同时,单片机系统也会发生掉电、死循环等问题。在工业控制场合,一旦控制发生错误,将会造成难以估计的损失。因此,如何提高控制的可靠性是长期以来的一个重要问题。本文介绍了应用32位高性能单片机MC68HC376的一种实际开发方案,同时重点讨论了提高系统可靠性的设计和实现方法。 MC68HC376是Motorola公司推出的一种新型的32位高性能单片机,具有极强的数据处理、逻辑运算和信息存储能力,且支
[单片机]
PIC单片机程序编写和动作标志位的使用方法解析
控制部分采用PICl6F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。 1、动作标志位的使用 在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序: listP=16c73 calllefthandup callrighthan
[单片机]
零基础带你入门单片机
单片机到底是什么? 单片机又称单片微控制器,它的全称是单片微型计算机简称单片机(MCU)。它是典型的嵌入式微控制器,同时也是一种集成电路芯片。 单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。简单地说,单片机就是一个小计算机系统。 1、无人机工作原理以及主控MCU是如何工作的 MCU也叫单片机,是把中央处理器的频率与规格做适当缩减,并将内存(memory)、计数器(TImer)、US
[单片机]
基于ARM单片机的小车显示系统设计
0 引言 8位的51单片机长期占据着微控制器(MCU)的主流市场,但随着技术与需求的发展,32位微控制器应用增长率也在不断攀升。目前,基于ARM内核的32位微处理器在市场上处于领导地位。 基于ARM嵌入式处理器的片上系统解决方案可应用于企业应用、汽车系统,家庭网络和无线技术等市场领域。ARM CortexTM系列提供了一个标准的体系结构来满足以上各种技术的不同性能要求,基于ARM架构有3个分工明确的系列:A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列针对实时系统;M系列专为低成本控制和微控制器应用开发。Cortex-M3是基于ARM架构的处理器,是专门为了在微控制器等对功耗和成本敏感的应用领域实现高系统性
[单片机]
AVR单片机I/O寄存器的C语言源程序及剖析详解
I/O寄存器的C语言源程序及剖析 在ICCAVR中访问0x00~0x3f的寄存器空间,可以使用内汇编和预处理宏。一个数据内存地址可以通过加指针类型符号直接访问。 例如,SREG寄存器的地址是0x5f,对它的访问操作: unsigned char c; c=*(volatile unsigned char *)0x5f;//读取SREG寄存器 *(volatile unsigned char *)0x5f|=0x80;//打开全局中断允许位 提示:数据内存地址0x00~0x31指向CPU通用寄存器R0~R31,不能随意修改它们的地址(或者输入错误的地址),否则可能会造成致命的错误。 ICCAVR C在io
[单片机]
以MSP430F449单片机为控制核心的智能数字化SLED控制系统设计
1971年Kurbativ等人首次制备出半导体SLED以来,SLED得到了惊人的发展。特别是近几年,其在光纤陀螺仪、光纤传感、光时域发射仪等方面得到了广泛的应用。SLED兼有LD和LED的优点,是一种自发辐射单程光放大非相干光源,具有发射谱宽、高输出功率、体积小、质量轻的特点。另外,由于其时间相干性短和空间相干性长,能有效地将光耦合进单模光纤。 对于SLED来说,其出射光功率及中心波长会随着驱动电流和管芯温度的漂移而发生变化。为了获得良好的光源性能,SLED管芯的电流和温度控制精度必须达到一定的水平。基于实现输出功率稳定、可靠,输出波长准确的目的,笔者设计了基于MSP430F449单片机的智能数字化SLED控制系统。 SL
[单片机]
微控制器拨号上网的实现
摘要:介绍了一种在微控制器(单片机)上实现PPP协议,并使其通过ISP连入Internet的方法。分析了PPP协议,论述了软件系统的层次结构和实现难点,重点介绍了协议的简化方法以适应单片机有限的存储资源。
关键词:PPP 微控制器 单片机上网 调制解调器
微控制器(也称单片机)把所有常用的资源,如存储器、模数转换器、通用输入输出口、定时器等,与CPU集成在一个芯片上,具有体积小、功耗低、使用方便的特点,广泛应用于各种嵌入式系统中。随着互联网(Internet)的兴起与普及,使微控制器也接入到互联网,并通过互联网传送数据。便是实现单片机与互联网通信的前提是需要在单片机上实现多种繁杂的互联网协议。而微器一般处理能力较低、程序存储
[单片机]
基于ARM的可定制MCU可承担FPGA的工作
如今的产品生命周期可能短至六个月,因此在这种情况下要想取得定制ASIC的低成本、低功耗和高性能优势几乎是不可能的。定制ASIC的设计周期通常要一年左右,这通常要比终端产品的生命周期还要长。另外,标准单元ASIC还具有NRE费用(非重复工程成本),对于基本的0.13微米设计,该成本约为30万美元,而对于具有复杂IP内容的90nm设计将超过100万美元。因而当每年的批量小于10万片时,从经济角度看就不具有可行性。 为此人们研发出了平台化或结构化ASIC,它们具有预设计的IP块和可编程的ASIC门,可显著降低成本并缩短设计周期。这种方案将设计周期从一年甚至更长的时间缩短到几个月,还将NRE成本降低到大约15万美元,不过与门阵列
[单片机]