- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
片内EEPROM的结构和操作原理 * 以两个寄存器为分界线,左边部分CPU通过数据总线、工作寄存器W和EEADR、EEDATA交换数据,这种数据交换是通过软件完成。用户软件分两次完成地址和数据的传送。 右边部分两个寄存器和EEPROM之间的数据交换则是通过硬件自动完成的。 从EEPROM中读取数据 * 读操作只受到控制寄存器EECON1中的一个位RD的控制: RD被程序置位后,地址寄存器EEADR所指定的EEPROM单元的内容会被自动复制到数据寄存器EEDATA中,完成读出。 这个控制位只能由软件置位,却不能由软件清零,RD的清零只能由硬件在读出数据后自动完成。因此RD除了完成控制位的功能外,还实现了读操作完成状态位的功能。软件可以通过对这个位的查询判断读操作是否完成。 从EEPROM中读取数据 * 对EEPROM操作的前提是EECON1中的非易失性存储器选择位EEPGD必须首先清零,以选择EEPROM作为操作的对象。 同时将要读取的EEPROM单元的地址放入地址寄存器EEADR中,随后通过置位RD启动EEPROM读取操作。随后就可以通过工作寄存器W读取EEPROM中的数据了。EEDATA中的数据会被一直保存到下一次读写操作修改EEDATA为止。 向EEPROM中写入数据 * 由于EEPROM的写入较慢,且非常重要,PIC单片机用两个控制位WR和WREN,以及两个状态位WREN和EEIF来保证写入过程的可靠性。 WREN完成写使能的功能,也就是说只有在这个位为1的前提下,接下来所有的对EEPROM的写入才是有效的。 另外用户程序将WR置位,数据寄存器EEDATA里的数据就被自动存储到地址寄存器EEADR所指向的存储器中。WR的清零只能由硬件自动完成,因此WR位也可以作为非易失性存储器写入完成的标志。 向EEPROM中写入数据 * EEPROM的写入过程应该注意: 应使EEPGD清零,以选择写入对象为EEPROM。 WREN和WR的置位,将启动写操作。但为保证写入的安全性,WREN和WR的置位不能在同一条指令中完成。 同样出于安全原因,每次写操作完成后必须复位WREN,以防止误操作的发生。 EEPROM的写入需要用户软件通过5条特殊的指令序列来开始,而无法通过简单的直接读写完成。在执行这5条指令的过程中,应该暂时关闭所有中断 向EEPROM中写入数据 * EEPROM的写操作包括以下步骤: 1、确认当前的WR为0,即确认上一次EEPROM写入过程已经完成,如果WR为1则需要等待当前的写入过程完成,才能继续完成后面的步骤。 2、把地址送入EEADR,并确保这个地址不超过目标单片机的EEPROM地址范围 3、把准备写入EEPROM的,一个字节的内容送入EEDATA中。 4、EEPGD位清零,选择EEPROM作为写入对象。 5、写操作使能位WREN置位,允许写入操作。 6、GIE清零,暂时关闭所有中断。 7、按顺序执行专用的5个指令,这五条指令由厂家规定,不能进行任何改动: 用MOVLW指令将0X55写入工作寄存器; 用MOVWF指令将W中的0X55搬到EECON2中; 用MOVLW指令将0XAA写入工作寄存器; 用MOVWF指令将W中的0XAA搬到EECON2中; 用BSF指令将EECON1中的WR置位。 8、置位GIE,重新开发全局中断。 9、清零WREN位,只有在下次需要非易失性存储器写入时才再次对其置位。此时虽然EEPROM的写入仍未完成,但清零WREN位对本次EEPROM的写入操作已经没有了影响。 10、通过中断方式或查询方式等待写入过程的完成。完成的标志是EEPROM中断的发生或者EEIF置位和WR的清零。 片内Flash的结构和操作原理 * Flash存储器虽然属于程序存储器,但其结构和操作方法与数据EEPROM基本相同。 左半部分,CPU通过用户软件和寄存器交换数据;右半部分,寄存器和Flash之间的数据交换则是通过硬件自动完成的。 片内Flash的结构和操作原理 * Flash和EEPROM存储器结构的不同点在于: Flash作为程序存储器,它的宽度与程序总线相同是14位。因此在数据总线和Flash之间交换数据的EEDATA寄存器增加到两个字节,分别名为EEDATA和EEDATH,其中EEDATA用于存放低字节,EEDATH用于存放高6位。 用于存放目标Flash地址的寄存器也增加到两个,分别名为EEADR和EEADRH,分别用于存放地址低字节和地址高5位。 相关的寄存器 * Flash读写相关的寄存器含义和地址基本和与EEPROM相关的寄存器相同,只有两个新增的寄存器。 Flash地址寄存器高字节EEADRH Flash数据寄存器高字节EEDATH 从Flash中读取数据 * Flash的读取过程和EEPROM的
文档评论(0)