您的位置 首页 资料

关于STC单片机EEPROM的使用总结

当在程序运行的过程中你希望修改某个变量并且此变量的值在掉电以后不丢失,那么你就可以采用将变量数据写入EEPROM的方式来实现。什么是EEPR

当在程序运转的过程中你期望修正某个变量而且此变量的值在掉电今后不丢掉,那么你就能够选用将变量数据写入EEPROM的办法来完成。

什么是EEPROM,即Electrically Erasable ProgrammableRead_Only Memory首要它是一种存储器,而且能够通过高电压来进行重复擦写的存储器。具有掉电数据不丢掉的特色。比方常用的24C系列,93C系列的器材。一般这种器材选用I2C的办法与单片机进行通讯,关于这种通讯办法及器材的运用另作总结。这儿首要总结一下,STC12C5204AD芯片内部包括的EEPROM的运用办法。
STC12C5201AD系列单片机内部集成了EEPROM是与程序空间分隔的,运用ISP/IAP技能可将内部dataflash当EEPROM,擦写10万次以上。
EEPROM可分为若干个扇区,每个扇区包括512字节。
运用时主张同一次修正的数据放在同一个扇区,不是同一次修正的数据放在不同的扇区,不一定要用满。数据存储器的擦除操作是按扇区进行的。
在程序中可对EEPROM进行字节读写/字节编程/扇区擦除操作。在作业电压Vcc偏低时,主张不要进行EEPROM/IAP操作。避免发生数据过错。
运用的过程
1、声明与EEPROM相关的寄存器
2、编写EEPROM初始化函数
3、编写字节擦除函数
4、编写字节编程函数
5、编写字节读取函数
6、在需求读取EEPROM字节内容时直接调用字节读取函数即可
7、在需求进行写EEPROM字节时,先调用字节擦除函数,将字节内容擦除成FFH后,在调用字节编程函数,将数据写入到EEPROM的地址单元中。
与EEPROM运用相关的寄存器

符号
描绘
地址
位地址及符号
复位值
IAP_DATA
ISP/IAP flash data register
C2H
1111 1111B
IAP_ADDRH
ISP/IAPflashaddress high
C3H
0000 0000B
IAP_ADDRL
ISP/IAP flash address low
C4H
IAP_CMD
ISP/IAP flash command register
C5H
MS1
MS0
IAP_TRIG
ISP/IAP flash command trigger
C6H
xxxxxxxxxB
IAP_CONTR
ISP/IAP control register
C7H
IAPEN
SWBS
SWRST
CMD_FAIL
WT2
WT1
WT0
0000X000B
PCON
Power control
87H
SOMD
SMOD0
LVDF
POF
GF1
GF0
PD
IDL
00110000B
1、IAP_DATA:ISP/IAP数据寄存器
ISP/IAP操作时的数据寄存器。
ISP/IAP从FlASH读出的数据寄存此处,向flash写的数据也需求放在此处。
2、IAP_ADDRH和IAP_ADDRL :IAP/ISP地址寄存器
3、IAP_CMD:ISP/IAP指令寄存器

MS1
MS0
指令/操作形式挑选
0
0
Standby 待机形式,无ISP操作
0
1
从用户程序区对“data flash /EEprom区”进行字节读
1
0
从用户的运用程序区对“data flash/eeprom区”进行字节编写
1
1
从用户的运用程序区对“dataflash/eeprom区”进行扇区擦除
4、IAP_TRIG:ISP/IAP指令触发寄存器
在IAPEN(IAP_CONTR.7)=1时,对IAP——trig先写入5AH,在写入A5H,ISPIAP指令才会收效
ISPIAP操作完成后,IAP地址高8位寄存器IAP_ADDRH、IAP地址低8位寄存器IAP_ADDRL 和IAP指令寄存器IAP_CMD的内容不变。假如接下来要对下一个地址的数据进行IAP/ISP操作,需手动将该地址的高8位和低8位别离写入IAP_ADDRH和IAP_ADDRL寄存器。
每次IAP操作时,都要对IAP_TRIG先写入5AH,再写入A5H,ISP/IAP指令才会收效。
5、IAP_CONTR:ISPIAP操控寄存器

SFR name
Address
Bit
B7
B6
B5
B4
B3
B2
B1
B0
IAP_CONTR
C7H
Name
IAPEN
SWBS
SWRST
CMD_FAIL
_
WT2
WT1
WT0
IAPEN:ISP/IAP功用答应位:0:制止IAP读/写/擦除 data flash /eeprom
1:答应IAP读/写/擦除 dataflash/eeprom
SWBW:软件挑选从用户运用程序区发动(送0),仍是从体系ISP监控程序发动(送1)。
要与SWRST直接合作运用才能够完成
SWRST:0:不操作;1:发生软件体系复位,硬件主动复位。
CMD_FAIL:假如送了ISP/IAP指令,并对IAP_TRIG送5AH/A5H触发失利,则为1,需由软件清零。
在用户运用程序区(AP区)软件复位并从用户运用程序区(AP区)开端履行程序。
MOV IAP_CONTR,#00100000B;SWBS=0(挑选AP区),SWRST=1(软复位)
在用户运用程序区(AP区)软件复位并从体系ISP监控程序区开端履行程序
MOV IAP_CONTR,#01100000B;SWBS=1(挑选ISP区),SWRST=1(软复位)
在体系ISP监控程序区软件复位并从用户运用程序区(AP区)开端履行程序
MOV IAP_CONTR,#00100000B;SWBS=0(挑选AP区)SWRST=1(软复位)
在体系ISP监控程序区软件复位并从体系ISP监控程序区开端履行程序。
MOV IAP_CONTR,#01100000B;SWBS=1(挑选ISP区),SWRST=1(软复位)
设置等候时间

设置等候时间
CPU等候时间(多少个CPU作业时钟)
WT2
WT1
WT0
Read/读
(2个时钟)
Program/编程(=55us)
Sector erase
扇区擦除
=21us
Recommended system clock
跟等候参数对应的引荐体系时钟
1
1
1
2个时钟
55个时钟
21012个时钟
<=1MHz
1
1
0
2个时钟
110个时钟
42024个时钟
<=2MHz
1
0
1
2个时钟
165个时钟
63036个时钟
<=3MHz
1
0
0
2个时钟
330个时钟
126072个时钟
<=6MHz
0
1
1
2个时钟
660个时钟
252144个时钟
<=12MHz
0
1
0
2个时钟
1100个时钟
420240个时钟
<=20MHz
0
0
1
2个时钟
1320个时钟
504288个时钟
<=24MHz
0
0
0
2个时钟
1760个时钟
672348个时钟
<=30MHz
12c系列单片机内部EEPROM选型一览表

类型
字节数(eeprom)
扇区数
开始扇区首地址
完毕扇区结尾地址
STC12C5201AD/PWM
2K
4
0000h
07ffh
STC12C5202AD/PWM
2k
4
0000h
07ffh
STC12C5203AD/PWM
2k
4
0000h
07ffh
STC12C5204AD/PWM
1k
2
0000h
03ffh
STC12C5205AD/PWM
1k
2
0000h
03ffh

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/317817.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部