×

如何连续读写STC89C52RC内部EEPROM存储器资料和程序详细说明

消耗积分:1 | 格式:pdf | 大小:0.07 MB | 2019-04-23

吴湛

分享资料个

  STC单片机的内部EEPROM是用DATAFLASH模拟出来的,不是真正的EEPROM存储器,不能用普通的方法来操作下面是一些注意点:

  1.字节写之前要先将这个字节所在扇区的其它有效数据读取到RAM暂存(这步不是必须的)

  2.暂存完之后再对整个扇区(512字节)进行擦除操作,擦拭完后,整个扇区每个地址中数据都变成0xFF

  3.将欲写入的N个字节数据,用字节写函数写入EEPROM

  4.将暂存到RAM的其它有用的EEPROM值再用字节写函数写回EEPROM

  5.STC用FLASH模拟出来的EEPROM的字节写功能只能将1变成0,而不能将0变成1,

  只有扇区擦除后数据才是全1,

  例如:在地址0x21f0处第1次写11010110,第2次写111010,读出结果是这2个值的相与10010 所以如果一个地址处的值不是0xff时写入新的数据是不对的,要先执行扇区擦除,变为0xff, 对于单个字节的写入,我们可以先检查该地址处的数据是否为0xff,是的话就不用擦除扇区了

  ----------------------------------------------------------------------

  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功能:清相关寄存器

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !