微芯片技术的闪存程序存储器操作指南

需积分: 50 12 下载量 55 浏览量 更新于2024-08-09 收藏 6.49MB PDF 举报
"这篇文档是关于PIC16F1826微控制器的闪存程序存储器的使用和操作的概述,主要涉及闪存的结构、读写操作以及注意事项。" 在微控制器 PIC16F1826 中,闪存程序存储器是一种重要的非易失性存储器类型,它按照行进行组织,每行包含固定数量的14位程序存储器字。行是可擦除的基本单位,用户可以通过特定的操作擦除和重新编程这些行。擦除操作后,行内的任何部分都可以被再次编程。写入数据时,数据首先会被暂存到14位宽的数据写锁存器中,用户无法直接访问这些锁存器,但可以通过EEDATH和EEDATL寄存器对来间接加载数据。 编程过程中,如果行大小不等于写锁存器的数量,可能需要多次启动编程操作以完成对整个行的重新编程。例如,一个有32字行大小和8个写锁存器的器件,可能需要四次编程操作来完整地重写一行。具体行大小和写锁存器的数量因器件型号而异,如表11-1所示,对于PIC16(L)F1826/27,行大小为32字,且边界设定为EEADRL<4:0>=00000。 读取闪存程序存储器的操作则涉及到以下步骤: 1. 设置低有效地址位和高有效地址位到EEADRH:EEADRL寄存器对。 2. 清零EECON1寄存器的CFGS位。 3. 设置EECON1寄存器的EEPGD控制位。 4. 最后,置位EECON1寄存器的RD控制位。一旦RD置1,数据将在第二个指令周期被读取,并存储在EEDATH:EEDATL寄存器对中,可供后续指令读取。 需要注意的是,若要修改已编程的行的一部分,需要先读取整个行并保存在RAM中,然后进行擦除操作。此外,对于程序存储器的读指令,后续的两条指令应为NOP,以防双周期指令的执行。无论CP位设置如何,都可以读取闪存程序存储器。 在使用PIC16F1826微控制器时,理解和掌握这些关于闪存程序存储器的操作细节至关重要,因为它直接影响到程序的存储、更新和保护。在实际应用中,务必遵循提供的指导,以避免潜在的问题和错误。