基本信息
文件名称:Microchip 系列:PIC18F 系列_(4).PIC18F系列的存储器结构.docx
文件大小:22.7 KB
总页数:15 页
更新时间:2025-06-19
总字数:约6.64千字
文档摘要

PAGE1

PAGE1

PIC18F系列的存储器结构

存储器概述

PIC18F系列单片机具有多种存储器类型,包括程序存储器、数据存储器、EEPROM存储器和配置寄存器。这些存储器类型在单片机的运行中扮演着不同的角色,理解它们的结构和功能对于高效地开发嵌入式系统至关重要。

程序存储器

程序存储器(也称为闪存存储器)用于存储单片机的程序代码。PIC18F系列单片机的程序存储器通常是一个24位宽的闪存存储器,其大小根据不同的型号而有所不同。程序存储器的地址空间分为多个块,每个块的大小和数量也因型号而异。程序存储器的访问速度非常快,可以支持高速的指令执行。

程序存储器的地址空间

程序存储器的地址空间通常从0x0000开始,不同的型号有不同的地址范围。例如,PIC18F4550的程序存储器地址范围为0x0000到0x7FFF,总共32K字节。

程序存储器的块结构

程序存储器被划分为多个块,每个块可以独立地进行擦除和编程。这种块结构使得程序更新更加灵活,可以在不影响其他部分的情况下对特定块进行操作。

程序存储器的访问

程序存储器通过程序计数器(PC)进行访问。PC指向当前要执行的指令地址,每执行一条指令,PC自动递增到下一条指令的地址。程序存储器的访问时间通常为1个时钟周期。

数据存储器

数据存储器用于存储运行时的数据,包括变量、堆栈和I/O寄存器。PIC18F系列单片机的数据存储器通常是一个16位宽的RAM存储器,其大小和结构根据不同的型号而有所不同。数据存储器的地址空间分为多个部分,包括通用寄存器、特殊功能寄存器(SFR)和直接地址空间。

数据存储器的地址空间

数据存储器的地址空间通常从0x00开始,不同的型号有不同的地址范围。例如,PIC18F4550的数据存储器地址范围为0x00到0x1FF,总共512字节。

数据存储器的分段

数据存储器被分为多个段,每个段可以独立地进行访问。例如,PIC18F4550的数据存储器分为以下几段:

直接地址空间(DirectAddressSpace):从0x00到0x7F,可以直接访问。

间接地址空间(IndirectAddressSpace):从0x80到0x1FF,需要通过间接寻址寄存器(FSR)进行访问。

数据存储器的访问

数据存储器的访问通过直接寻址和间接寻址两种方式完成。直接寻址可以直接使用寄存器名称或地址进行访问,而间接寻址需要通过FSR寄存器进行。

EEPROM存储器

EEPROM存储器是一种非易失性存储器,用于存储需要在断电后保持的数据。PIC18F系列单片机通常具有1K字节的EEPROM存储器。EEPROM存储器的访问速度较慢,但可以保证数据的持久存储。

EEPROM存储器的地址空间

EEPROM存储器的地址空间通常从0x0000开始,不同的型号有不同的地址范围。例如,PIC18F4550的EEPROM地址范围为0x0000到0x03FF,总共1K字节。

EEPROM存储器的读写操作

EEPROM存储器的读写操作需要通过特定的函数或命令完成。读操作通常较快,而写操作需要较长时间,因为每次写操作都需要先擦除再编程。

配置寄存器

配置寄存器用于设置单片机的初始配置,包括时钟源、复位向量、看门狗定时器等。配置寄存器的内容在单片机复位时加载,对单片机的运行有重要影响。

配置寄存器的地址

配置寄存器通常位于程序存储器的特定地址。例如,PIC18F4550的配置寄存器地址为0x300000到0x30000D。

配置寄存器的设置

配置寄存器的设置通常在程序的开始部分进行,可以通过C语言或汇编语言完成。以下是一个C语言的例子,设置PIC18F4550的配置寄存器:

//设置配置寄存器

#pragmaconfigFOSC=HS//选择外部高速振荡器

#pragmaconfigWDT=OFF//关闭看门狗定时器

#pragmaconfigLVP=OFF//关闭低电压编程

#pragmaconfigBOR=ON//打开Brown-outReset

#pragmaconfigCPD=OFF//关闭数据EEPROM保护

#pragmaconfigCP=OFF//关闭程序存储器保护

存储器映射

存储器映射是指将不同的存储器类型和功能映射到特定的地址空间。理解存储器映射有助于更好地管理和使用存储资源。

存储器映射表

以下是一个典型的PIC18F4550存储器映射表:

地址范围|功能|

|—————-|———————|

0x0000-0x0003|中断向量表|

0x0004-0x0007|