历史上的今天
今天是:2024年09月02日(星期一)
2021年09月02日 | 51 单片机 EEPROM小结(FLASH)
2021-09-02 来源:eefocus
概念先行
RAM:可读可写,掉电消失
ROM:只读,掉电保存,存一些开机引导相关信息
两者同属内存,常说的电脑硬盘属外存。
SRAM就是速度快一点,EEPROM就是可重复编程可擦除,FLASH就是高级的EEPROM。
STC8利用ISP/IAP技术将内部DATA FLASH当EEPROM,可以自己设置,512字节单扇区擦除,每次擦除一个扇区,建议同一次修改的数据在一个扇区内。
寄存器
数据寄存器 IAP_DATA
读:读出的EEPROM的数据保存在其中
写:写之前必须将数据放入其中,再发写指令
地址寄存器
IAP_ADDRH:目标地址高字节
IAP_ADDRL:目标地址低字节
命令寄存器IAP_CMD
低两位置指令:
00:空
01:读EEPROM目的地址的1字节
10:写EEPROM目的地址的1字节
11:擦除目的地址的1扇区
控制寄存器IAP_CONTR (STC8A、8F)
B7:IAPEN:为1使能EEPROM操作
B6:SWBS:软件复位选择控制位,为1软件复位后从ISP监控代码区开始执行程序,为0软复后从用户代码开始执行程序。
B5:SWRST:软件复位控制位:为1产生软件复位。为0无动作
B4:CMD_FAIL:操作失败状态位,为0操作正确
B2-B0:设置EEPROM操作等待的时间,针对EEPROM操作的等待时间是硬件自动完成的,用户不需要加额外延时,此时钟是指对主时钟分频后的时钟,即CPU实际工作的时钟。
011 12MHz
001 24MHz
触发寄存器IAP_TRIG
命令,地址,数据,控制寄存器配置完成后,向触发寄存器依次写入5AH,A5H。
触发命令写完CP处于IDLE状态,执行完IQAP指令CPU才恢复正常
其他区别
特别的,对于STC8C,单列了一个擦除等待时间控制寄存器IAP_TPS,不像STC8A要配置IAP_CONTR的低3位 ,若工作频率12MHz,设IAP_TPS为12,若工作频率为24MHz,该位设24即可。


EEPROM按页擦除,STC8的一页是512字节,一页是从0000h到01FFh,
下一篇:51可调速步进电机
史海拾趣
|
基于51单片机开发的DS18B20的数字温度计(源程序+原理图) 基于51单片机开发的DS18B20的数字温度计 原程序用C编写可调试。原理图用protel设计 DS18B20为美国达拉斯(Dallas)公司开发的温度传感芯片,DS18B20可以直接 将被测温度转成串行数字信号,以供单片机处理! 感觉还行的朋友别忘了顶下啊! 请下 ...… 查看全部问答> |
|
ISA总线上的A12~A31是20位数据总线,我用的是A28~A31不同的主板对地址的处理方式不一样,我现在手上有两款工控机,有一款是这么处理的,在程序里发送地址8,A28~A31就是1000,再没送其他地址之前,A28到A31始终保持是1000,但另一款不一样,不管送 ...… 查看全部问答> |
|
如何读Extended BIOS Data Area还有BIOS read-only memory space 就是如题所说了。。。。。给分大大的 最好是C语言拉。。或者告诉我哪儿有DLL用也行拉… 查看全部问答> |
|
我用tornado2.2/vxworks5.5,配置了Mounted TFFS Filesystem / TrueFFS flash File System,在启动后在应用程序里调用tffsDevCreate(0,0)失败,什么原因?还要做其他工作吗?… 查看全部问答> |
|
1.CPU内置超级电容,在不太长的断电时间内为保持数据和始终提供电源,不需要附件。2.CPU上附加电池卡,与内置超级电容配合,长期为时钟和数据保持提供电源。3.使用数据块,永久保存不需要更改的数据。4.编程时设置系统块,可在CPU断电时自动永久保 ...… 查看全部问答> |
|
电路如图所示,24V供电,分为AB两组LED,平时只亮其中的一组,通过切换电源220V开关选择,原因是这样的:客户给A组LED通电连续点亮了3个月左右,又给AB组同时通电了几天,最后单独给B组通电,约20天后,发现B组严重暗了许多,于是马上把B组断电只亮A组,现在A组 ...… 查看全部问答> |




