第三篇 PIC单片机的存储器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Bit2(WREN):E2PROM写操作允许 位,主动参数。 ◆设置WREN=1,允许写E2PROM; ◆设置WREN=0,禁止写E2PROM。 Bit3 (WRERR):E2PROM写过程错 误标志位,被动参数。 ◆当WRERR=1时,一次写操作没有执 行完毕,被手动复位或WDT复位; ◆当WRERR=0时,一次写操作完成, 没有发生错误。 Bit7(EEPGD):Flash程序存储器 /E2PROM数据存储器选择位。 ◆当EEPGD=1时,访问Flash程序存储器; ◆当EEPGD=0时,访问E2PROM数据存储器。 ⑷ EECON2: E2PROM数据存储器读/写控制寄存器2。 ◆EECON2寄存器是一个虚拟寄存器,它专用于防止在存储器写序列中的非法写操作。向E2PROM数据存储器写数据必须插入一串特殊的指令序列,连续将特定的通用参数55H和0AAH写入EECON2。 地址:体3的18DH E2PROM数据存储器的读和写操作 1、读操作 ◆读E2PROM数据存储器只需将希望访问的地址写入到EEADR寄存器中,EECON1的Bit7(EEPGD)选择位清零。 ◆在RD位置1后,在下一个指令周期数据就放到EEDATA寄存器。 ◆EEDATA寄存器将保持这个值到下一个“读”操作初始化或到被软件写。 读E2PROM数据存储器具体可以分为如下 几个步骤: ①清EERGD选择位,表示访问E2PROM 数据存储器; ②置位RD,启动读操作; ③从EEDATA寄存器读取数据。 ★注意:RD位不能用软件清0,在读操作完成之后硬件自动清0。 2、写操作 ◆首先清EEPGD位,然后使WREN置位,当WREN置位后,置位WR,用于初始化写操作,即启动向E2PROM数据存储器写入数据操作。 ★注意: WREN和WR不能在同一操作中置位(不能同时置位),必须WREN在前,WR在后。 ◆在写操作进行过程中对WREN清0不影响写的过程。 ◆WR位不能用软件清0,但在写操作完成之后硬件自动清0。 ◆在某些误操作情况下,单片机不能把数据正确写入E2PROM数据存储器中。为了防止误操作,PIC16F877单片机建立了各种保护机制。 写E2PROM数据存储器的步骤如下: ①如果第10步没有执行,首先检查WR标志位,看写操作是否正在进行; ②在确保地址不超过PIC16F877芯片E2PROM存储器地址范围的情况下,将地址写入EEADR; ③写8位数据到EEDATA; ④清EEPGD选择位,表示对E2PROM数据存储器操作。 ⑤置位WREN,允许写操作; ⑥关中断; ⑦执行如下特殊指令: ◆用两步将55H写到EECON2 (先写到W,再写到EECON2); ◆用两步将AAH写到EECON2 (先写到W,再写到EECON2); ◆置位WR。 ⑧开中断; ⑨清0写操作允许位WREN。 ⑩完成写操作,标志位WR清0,中断标志位EEIF置位(由软件复位)。 如果第1步没有执行,检查EEIF是否置位、WR是否复位,以确保写周期结束。 * 直接寻址/间接寻址方式示意图 2、间接寻址寄存器FSR、INDF ◆FSR、INDF用于间接寻址,但需注意,INDF为非物理存在的寄存器。 ◆对INDF的操作实际上是以FSR的内容作为要操作的RAM单元的低8位地址。 PIC16F877单片机间接寻址 movlw 0x20 movwf FSR LOOP clrf INDF incf FSR,F btfss FSR,7 goto LOOP next instruction 0000 0000 0000 0000 FSR = 20h INDF 00h 04h 20h 7Fh 数据存储器 例:清除从0x20到0x7F所有RAM单元的内容 ◆程序指针计数器PC宽13位,其内容总是CPU要执行的下一条指令所在的程序存储器的地址,所以执行一条指令后PC自动加1。 ◆通常可以将PC指针分成PCL和PCH两部分: 3、与PC指针相关的寄存器PCL和PCLATH ◆PCL PC的低8位 有专用地址:02H、82H、102H、182H ◆PCH PC的高5位 PCH不在RAM中,是根本不存在的,用户不可访问,只能通过PCLATH进行间接加载。 ◆寄存器PCLATH在RAM中是真实存在的,地址:0AH、8AH、10AH、18AH。因此,可以认为寄存器PCLATH是程序计数器PC的高位地址(5位),而且是通过特殊的方式装载到PCH中。 ◆PCLATH对于高5位PCH的装载分2种情况: ◆一种情况是当执行以PCL为目标的写操作指令时,PC的低8位来自算术逻辑单元ALU,PC的高5位来自PCLATH的低5位; ◆另一种情况是当执行跳转指令GOTO或调用子

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档