当前位置:首页 > 单片机 > 单片机
[导读]单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM 中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现。在传统的单片机系统中,一般是在片外扩展存储

单片机运行时的数据都存在于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 设置好等待时间,否则数据容易出现问题。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭