看一看以前的文章。

看一看:pic167f877简介

看一看:pic16f877 -架构和内存组织

看一看:在PIC 16f877中注册存储器组织

数据EEPROM和Flash程序存储器在正常运行时可通过电擦除或直接写入的方式进行读写。该寄存器空间的内存不会直接映射到寄存器内存空间中。它可以通过SFR寄存器间接寻址。下面给出了用于此目的的常用SFR寄存器(用于读写此内存)。

•EECON1

•EECON2

•EEDATA

•EEDATH

•EEADR

•EEADRH

当将数据存储位置接口到这个EEPROM时,EEDATA保存8位数据(用于读写),而寄存器EEADR保存EEPROM位置的地址。PIC16F8XX设备有128或256字节的数据EEPROM(取决于设备类型)。

EEPROM存储器的地址范围从00h到FFh(256字节设备)和80h到FFh(128字节设备)开始。当连接程序内存块时,EEDATA和EEDATH寄存器形成一个双字节字,保存14位数据用于读/写,而EEADR和EEADRH寄存器形成一个双字节字,保存被访问的程序内存位置的13位地址。这些设备有4或8K的Flash程序字,PIC16F873A/874A的地址范围从0000h到0FFFh, PIC16F876A/877A的地址范围从0000h到1FFFh。地址范围以上各自的设备将环绕到程序内存的开始。EEPROM数据存储器允许单字节读写。

Flash程序内存允许单字读和四字块写。程序内存写操作自动执行一个擦除-在写之前的四个字块。一个字节写入数据EEPROM存储器自动擦除位置和写入新数据(擦除前写)。写时间由片上定时器控制。写/擦除电压由片上电荷泵产生,额定工作在设备的电压范围内进行字节或字操作。当设备是代码保护的,CPU可以继续读和写数据的EEPROM存储器。

EEADR和EEADRH

EEADR寄存器对可寻址最多256字节的数据EEPROM或最多8K字的程序EEPROM。当选择一个数据地址值时,只有LS(最低有效)字节的地址被写入EEADR寄存器。当选择一个程序地址值时,地址的MS字节(最有意义的)被写入EEADRH寄存器,LS字节(最不重要的)被写入EEADR寄存器。如果设备包含的内存少于地址寄存器对的全部地址范围,则寄存器的最高有效位不实现。例如,如果设备有128字节的数据EEPROM,则在访问数据EEPROM时不实现EEADR的最高有效位。

EECON1和EECON2寄存器

EECON1是内存可访问的控制寄存器。控制位EEPGD决定要访问的存储器类型(程序存储器或数据存储器)。当清除时,就像复位时一样,任何后续操作都将对数据存储器进行操作。当设置时,任何后续操作都将在程序内存上操作。

控制位RD和WR分别发起读、写或擦除。在软件中,这些位不能清除,只能设置。在完成读或写操作时,它们在硬件中被清除。在软件中不能清除WR位可以防止意外的、过早的写操作终止。当设置WREN位时,将允许写或擦除操作。开启电源,

WREN的部分是清晰的。WRERR位是在写(或擦除)操作被MCLR或WDT超时复位中断时设置的。在这些情况下,在Reset之后,用户可以检查WRERR位并重写位置。EEDATA和EEADR寄存器中的数据和地址将保持不变。中断标志位(PIR2寄存器中的EEIF)是在写入完成时设置的。它必须在软件中清除。EECON2不是物理寄存器。读取EECON2将读取所有' 0 '。EECON2寄存器只在EEPROM写序列中使用。这个寄存器模块的结构如下所示。

R / w x U-0 U-0 U-0 R / w x R / w 0 R / S-0 R / S-0
EEPGD - - - - - - - - - WRERR 雷恩 或者说是 理查德·道金斯
  • 第7位(EEPGD):程序/数据EEPROM根据应用程序选择程序存储器或数据存储器的位。如果这个位是' 1 ',它可以访问程序内存,如果这个位是' 0 ',它可以访问数据内存。

(1 =访问程序内存

0 =访问数据内存)

  • 第6-4位(未实现):读取为' 0 '
  • 第3位(WRERR):该位用作EEPROM错误标志位

(1 =写操作提前终止(正常运行期间的任何MCLR或任何WDT复位)

0 =写操作完成)

  • 第2位(WREN):该位通常作为EEPROM写使能位

(1 =允许写周期

0 =禁止写入EEPROM)

  • 第1位(WR):写控制位,控制写指令。

(1 =启动写周期。一旦写入完成,该位就被硬件清除。WR位只能在软件中设置(不能清除)。

0 = EEPROM写入周期结束)

  • Bit 0 (RD):读控制位,控制读指令。

(1 =启动EEPROM读取;RD在硬件中被清除。RD位只能在软件中设置,不能清除。

0 =不初始化EEPROM读)

下表给出了与PIC16F877中的数据EEPROM和FLASH程序存储器相关的寄存器/比特。

数据eepm闪光
数据eepm闪光

作者

4评论

  1. rrgiri

    非常有帮助,谢谢

  2. 阿玛

    你们谁能告诉我一些关于这个项目的信息吗?请告诉我PIC 16F877中的EEPROM/FLASH Memory Organization

  3. vysakh

    在当今的电子工业中,模糊逻辑集成电路的制造和编程非常有用。我应该在完成我的PIC文章后,根据您的要求发表一篇关于这个的文章

  4. c.subramaniam

    亲爱的先生,
    这篇文章信息量很大。类似地,你能发布家用洗衣机中使用的“繁琐逻辑”ic和编程细节吗
    谢谢你!

Baidu