




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
STC 单片机的内部 EEPROM 是用 DATAFLASH 模拟出来的 不是真正的 EEPROM 存储 器 不能用普通的方法来操作 下面是一些注意点 1 字节写之前要先将这个字节所在扇区的其它有效数据读取到 RAM 暂存 这步不是必须的 2 暂存完之后再对整个扇区 512 字节 进行擦除操作 擦拭完后 整个扇区每个地址中数据 都变成 0 xFF 3 将欲写入的 N 个字节数据 用字节写函数写入 EEPROM 4 将暂存到 RAM 的其它有用的 EEPROM 值再用字节写函数写回 EEPROM 5 STC 用 FLASH 模拟出来的 EEPROM 的字节写功能只能将 1 变成 0 而不能将 0 变成 1 只有扇区擦除后数据才是全 1 例如 在地址 0 x21f0 处第 1 次写 11010110 第 2 次写 111010 读出结果是这 2 个值的相 与 10010 所以如果一个地址处的值不是 0 xff 时写入新的数据是不对的 要先执行扇区擦除 变为 0 xff 对于单个字节的写入 我们可以先检查该地址处的数据是否为 0 xff 是的话就不用擦除 扇区了 STC89C52 单片机内部 EEPROM 的读写过程 1 配置 ISP CONTR 寄存器 使能第 7 位 ISPEN 让 ISP IAP 功能生效 并配置低 3 位的等 待时间 2 写指令 读 写 擦除扇区 这 3 个命令 3 赋值 ISP ADDRH 和 ISP ADDRL 的地址值 4 关闭总中断 EA 因为下面要写的 2 个触发指令必须是连续操作的 不能被中断 5 执行公用的 ISP IAP 触发指令 触发后读写操作才能进行 6 打开中断 EA 关闭 ISP IAP 功能 清相关寄存器 include my51 h 定义命令字节 define read cmd 0 x01 字节读数据命令 define wirte cmd 0 x02 字节编程数据命令 define erase cmd 0 x03 扇区擦除数据命令 特殊功能寄存器声明 sfr ISP DATA 0 xe2 sfr ISP ADDRH 0 xe3 sfr ISP ADDRL 0 xe4 sfr ISP CMD 0 xe5 sfr ISP TRIG 0 xe6 sfr ISP CONTR 0 xe7 定义 Flash 操作等待时间及允许 IAP ISP EEPROM 操作的常数 define enable waitTime 0 x80 系统工作时钟 30MHz 时 对 IAP CONTR 寄存器设置此 值 define enable waitTime 0 x81 系统工作时钟 24MHz 时 对 IAP CONTR 寄存器设置此 值 define enable waitTime 0 x82 系统工作时钟 20MHz 时 对 IAP CONTR 寄存器设置此 值 define enable waitTime 0 x83 系统工作时钟 12MHz 时 对 IAP CONTR 寄存器设置此值 define enable waitTime 0 x84 系统工作时钟 8 送地址高字节 ISP ADDRL u8 beginAddr 送地址低字节 ISP IAP trigger 触发 beginAddr 地址 pBuf ISP DATA 将数据保存到接收缓冲区 ISP IAP disable 关闭 ISP IAP 功能 void ISP IAP writeData u16 beginAddr u8 pDat u16 dataSize 写数据 ISP CONTR enable waitTime 开启 ISP IAP 并送等待时间 ISP CMD wirte cmd 送字节编程命令字 while dataSize ISP ADDRH u8 beginAddr 8 送地址高字节 ISP ADDRL u8 beginAddr 送地址低字节 ISP DATA pDat 送数据 beginAddr ISP IAP trigger 触发 ISP IAP disable 关闭 void ISP IAP sectorErase u16 sectorAddr 扇区擦除 ISP CONTR enable waitTime 开启 ISP IAP 并送等待时间 ISP CMD erase cmd 送扇区擦除命令字 ISP ADDRH u8 sectorAddr 8 送地址高字节 ISP ADDRL u8 sectorAddr 送地址低字节 ISP IAP trigger 触发 ISP IAP disable 关闭 ISP IAP 功能 void main 测试 u8 buf 3 0 接收数据缓冲区 u8 dat 5 b 111010 b 1001 b 1 b 1011 b 1110 我写成二进制是为观察 led 灯 ISP IAP sectorErase 0 x2000 扇区擦除 一块 512 字节 ISP IAP writeData 0 x21f0 dat sizeof dat 写 EEPROM ISP IAP readData 0 x21f0 buf sizeof buf 读取 P1 buf 2 在地址 0 x21f0 处第 1 次写 11010110 第 2 次写 111010 读出结果是这 2 个值 的相与 10010 while 1 所以如果一个地址处的值不是 0 xff 时写入新的数据是不对的 要先擦除为 0 xff ifndef MY51 H define MY51 H include include include include include mytype h 二进制输入宏 ifndef LongToBin define LongToBin define LongToBin n n 21 8 个 led 灯 阴极送低电平点亮 sbit led1 P1 1 sbit led2 P1 2 sbit led3 P1 3 sbit led4 P1 4 sbit led5 P1 5 sbit led6 P1 6 sbit led7 P1 7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年绿色制造在新能源行业中的节能降耗应用报告
- 水禽饲养员专业技能考核试卷及答案
- 2025年食品安全追溯技术在食品生产企业的实际应用案例报告
- 水产品风味优化技术分析报告
- 聚焦2025:工业互联网平台RFID技术创新在智能家居领域的应用报告
- 2025年工业互联网平台IPv6技术升级与工业自动化控制系统优化报告
- 拖拉机生产成本优化策略分析报告
- 2025年新能源汽车车路协同通信网络建设与智慧城市交通规划应用报告
- 2025年书记员试题及答案
- 防洪成本效益比较分析报告
- 汽车驾驶员(技师)考试试题及答案
- 2024年东台市城市建设投资发展集团有限公司招聘笔试冲刺题(带答案解析)
- 《2024年北京市医疗服务收费目录》
- 2024年全国养老护理职业技能大赛理论备考试题库(附答案)
- 经济数学(高职)全套教学课件
- 新疆地方史课件
- 防止厂家与客户直接联系协议书
- 硫铁矿的化学性质和利用技术
- 气管切开后气道湿化的护理
- 防震减灾科普知识(图文)课件
- 消防设施正确使用与操作指南
评论
0/150
提交评论