PIC单片机原理及应用(第三章)_第1页
PIC单片机原理及应用(第三章)_第2页
PIC单片机原理及应用(第三章)_第3页
PIC单片机原理及应用(第三章)_第4页
PIC单片机原理及应用(第三章)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 存储器是单片机中一个非常重要的部件,专存储器是单片机中一个非常重要的部件,专门用于门用于存放指令、数据和运算结果存放指令、数据和运算结果。 分析分析PIC16F877PIC16F877单片机存储器构架,可以从其单片机存储器构架,可以从其配置的三大模块着手进行,它们是:配置的三大模块着手进行,它们是: 8K l48K l4位位FLASHFLASH程序存储器程序存储器; ; 5128 5128位数据存储器位数据存储器RAM;RAM; 2568 2568位可掉电保护数据的位可掉电保护数据的EEPROMEEPROM存储器模存储器模块。块。 存储器从使用功能上来分,可分为随机存存储器从使用功能上来分,

2、可分为随机存储器储器RAMRAM(Random Access MemoryRandom Access Memory)和只读存储)和只读存储器器ROMROM(Read Only MemoryRead Only Memory)两类。)两类。 存储器扩展:存储器扩展:SRAM6264SRAM6264,EPROM2764EPROM2764。 PIC16F877 PIC16F877程序存储器具有程序存储器具有1313位宽的程序位宽的程序计数器计数器PCPC。PCPC指针所产生的指针所产生的1313位地址最大可寻位地址最大可寻址的程序存储器空间为址的程序存储器空间为8K8K,相应的地址编码范,相应的地址编

3、码范围为围为0000H0000HlFFFHlFFFH。 PIC16F877PIC16F877归属于中档单片机,其指令字归属于中档单片机,其指令字节宽度为节宽度为1414位,内部构架配置了位,内部构架配置了8K l48K l4位的位的闪烁闪烁FLASHFLASH程序存储器。程序存储器。 一般将整个程序存储器以一般将整个程序存储器以2KB2KB为单位进行分为单位进行分页(页(PAGEPAGE),如图所示),如图所示16F87716F877单片机,单片机,8KB8KB程程序存储器共分作序存储器共分作4 4页,分别称为页,分别称为“页页0”0”、“页页l”l”、“页页2”2”和和“页页3”3”。 程序

4、计数器高程序计数器高8 8位位PCLATHPCLATH的的Bit4Bit4Bit3Bit3位构成程序存储器分页的位构成程序存储器分页的选择位,对应的地址空间如下:选择位,对应的地址空间如下: PCLATH Bit4PCLATH Bit4:Bit3Bit3: 0 0 0 0 页页0 0:0000H 0000H 07FFH07FFH 0 1 0 1 页页l l:0800H 0800H 0FFFH0FFFH 1 0 1 0 页页2 2:1000H 1000H 17FFH17FFH 1 1 1 1 页页3 3:1800H 1800H 1FFFH1FFFH最大最大8K8K字字(13 (13 位位) )

5、程序程序存储空间。存储空间。程序空间按页面划分,程序空间按页面划分,每页每页2K2K字字 (11 (11 位位) );最;最多四页。多四页。页面选择页面选择 PCLATHPCLATH。复位向量地址复位向量地址 0000h0000h。中断向量地址中断向量地址 0004h0004h。 程序存储器中有程序存储器中有2 2个单元地址比较特殊,除个单元地址比较特殊,除了具备同其他单元地址一样的普通用途外,还了具备同其他单元地址一样的普通用途外,还具有专门用途:具有专门用途: 0000H0000H:用作单片机系统的复位矢量;:用作单片机系统的复位矢量; 0004H0004H:用作系统特殊模块的中断矢量。:

6、用作系统特殊模块的中断矢量。 PIC16F877 PIC16F877用于存储数据的用于存储数据的RAMRAM单元比一单元比一般单片机般单片机RAMRAM的功能要强大得多,它除了具备的功能要强大得多,它除了具备普通普通RAMRAM的功能之外,的功能之外,每一个单元都能实现移每一个单元都能实现移位、置位、复位和位测试位、置位、复位和位测试等通常由寄存器才等通常由寄存器才能完成的功能操作。能完成的功能操作。 RAMRAM数据存储器和数据存储器和FLASHFLASH程序存储器一样在空程序存储器一样在空间构架上,进行类似方式进行分区。按横向排间构架上,进行类似方式进行分区。按横向排列,分为列,分为4 4

7、个个“体体”(BANKBANK),从左到右分别记),从左到右分别记为为“体体0”0”、“体体1”1”、“体体2”2”和和“体体3”3”,每,每个体为个体为128128个个8 8位宽的存储器单元。位宽的存储器单元。RP1RP1:RP0 RP0 体域体域 寄存器地址寄存器地址 0 0 0 0 体体0 0: 000H 000H 07FH 07FH 0 1 0 1 体体1 1: 080H 080H 0FFH 0FFH 1 0 1 0 体体2 2: 100H 100H l7FH l7FH 1 1 1 1 体体3 3: 180H 180H lFFH lFFHPIC16F877PIC16F877单片机单片机

8、四个存储体每个四个存储体每个 128 128 字节。字节。特殊功能寄存器。特殊功能寄存器。存储体选择通过存储体选择通过 StatusStatus中的中的 RP0,1 RP0,1 和和 IRPIRP。512512单元。单元。368368有效有效GPRGPR RAMRAM区地址:十六进制、二进制。区地址:十六进制、二进制。 有些寄存器单元在有些寄存器单元在4 4个体上是互相映射的,个体上是互相映射的,如状态寄存器如状态寄存器STATUSSTATUS、间接寻址寄存器、间接寻址寄存器INDFINDF、程序计数器低程序计数器低8 8位位PCLPCL、文件选择寄存器、文件选择寄存器FSRFSR、程序计数器

9、高程序计数器高8 8位位PCLATHPCLATH和中断控制寄存器和中断控制寄存器INTCONINTCON。 所谓互为映射就是说,所谓互为映射就是说,在在4 4个体内的相同位个体内的相同位置,物理上对应同一个寄存器单元,所以该单置,物理上对应同一个寄存器单元,所以该单元具备元具备4 4个不同的地址。个不同的地址。 PIC16F877 PIC16F877单片机的通用寄存器单片机的通用寄存器GPRGPR(General Purpose RegistersGeneral Purpose Registers),可由用户自),可由用户自行支配存放随机数据。行支配存放随机数据。 通用寄存器区域通用寄存器区域

10、: 通用寄存器数量通用寄存器数量: 地址区域:地址区域:F0HF0HFFHFFH、170H170Hl7FHl7FH和和1F0H1F0H1FFH1FFH,都可以索引(或映射)到体,都可以索引(或映射)到体0 0的的1616个个RAMRAM单元。单元。 这样安排是为了便于中断服务程序的设计和这样安排是为了便于中断服务程序的设计和数据处理,就可以在程序设计中能够有效突破数据处理,就可以在程序设计中能够有效突破体的限制而定义通用的变量函数。体的限制而定义通用的变量函数。 特殊功能寄存器特殊功能寄存器SFRSFR(Special Function Special Function RegistersRe

11、gisters)是用于专用目的的寄存器,每个寄是用于专用目的的寄存器,每个寄存器单元,甚至其中的每一位,都有它自己特存器单元,甚至其中的每一位,都有它自己特定的名称和用途。定的名称和用途。 主要涉及主要涉及PICPIC内核结构、外围功能模块的内核结构、外围功能模块的配置和数据通信方式的定义,是单片机赖于正配置和数据通信方式的定义,是单片机赖于正常运行的工作平台。所以,特殊功能寄存器又常运行的工作平台。所以,特殊功能寄存器又称为专用寄存器。称为专用寄存器。 可以依据它们不同的用途分为两类:一类可以依据它们不同的用途分为两类:一类是是与与CPUCPU内核相关的寄存器内核相关的寄存器;另一类是;另一

12、类是与外围模与外围模块相关的寄存器块相关的寄存器。 状态寄存器的内容用来记录状态寄存器的内容用来记录算术逻辑单元算术逻辑单元ALUALU的运算结果状态、的运算结果状态、CPUCPU的特殊运行状态以及的特殊运行状态以及RAMRAM数据存储器体间选择数据存储器体间选择等信息。等信息。 Bit0Bit0C C:进位:进位/ /借位标志借位标志,被动参数。,被动参数。 0 0:执行加法(或减法)指令时,如果最高:执行加法(或减法)指令时,如果最高位无进位(或有借位);位无进位(或有借位); 1 1:执行加法(或减法)指令时,如果最高:执行加法(或减法)指令时,如果最高位有进位(或无借位)。位有进位(或

13、无借位)。 Bit1Bit1DCDC:辅助进位:辅助进位/ /借位标志借位标志,被动参数。,被动参数。 0 0:执行加法(或减法)指令时,如果低:执行加法(或减法)指令时,如果低4 4位位向高向高4 4位无进位(或有借位);位无进位(或有借位); 1 1:执行加法(或减法)指令时,如果低:执行加法(或减法)指令时,如果低4 4位位向高向高4 4位有进位(或无借位)。位有进位(或无借位)。Bit2Bit2Z Z:零标志:零标志,被动参数。,被动参数。 0 0:算术或逻辑运算结果不为:算术或逻辑运算结果不为0 0; 1 1:算术或逻辑运算结果为全:算术或逻辑运算结果为全0 0。 Bit3/PDBi

14、t3/PD: 降耗标志降耗标志。0 0:休眠指令执行后;:休眠指令执行后;1 1:上电或看门狗清指令执行后。:上电或看门狗清指令执行后。Bit4/TOBit4/TO:超时标志:超时标志。:看门狗发生超时;:看门狗发生超时;:上电或看门狗清指令或休眠指令执行:上电或看门狗清指令或休眠指令执行后。后。Bit6-Bit5Bit6-Bit5RP1-RP0RP1-RP0:RAMRAM数据存储器体选位,数据存储器体选位,仅用于直接寻址仅用于直接寻址。 两位复合选择两位复合选择RAMRAM数据存储器数据存储器4 4个体,具个体,具体关系如下:体关系如下: RP1RP1、RP0 = 0 0 RP0 = 0 0

15、 选中体选中体0 0 RP1 RP1、RP0 = 0 1 RP0 = 0 1 选中体选中体1 1 RP1 RP1、RP0 = 1 0 RP0 = 1 0 选中体选中体2 2 RP1 RP1、RP0 = 1 1 RP0 = 1 1 选中体选中体3 3Bit7Bit7IRPIRP:RAMRAM数据存储器体选位,仅用于间数据存储器体选位,仅用于间接寻址。接寻址。 0 0:选择数据存储器低位体:选择数据存储器低位体: 即体即体0 0(FSRFSR的的Bit7=0Bit7=0)或体)或体1 1(FSRFSR的的Bit7=1Bit7=1);); 1: 1: 选择数据存储器高位体:选择数据存储器高位体: 即

16、体即体2 2(FSRFSR的的Bit7=0Bit7=0)或体)或体3 3(FSRFSR的的Bit7=1Bit7=1)。)。 在在RAMRAM数据存储器中,有一个非常特别的寄数据存储器中,有一个非常特别的寄存器存器INDFINDF(地址),它的专有功能是与(地址),它的专有功能是与FSRFSR寄存寄存器配合,实现器配合,实现间接寻址间接寻址。 当访问地址当访问地址INDFINDF时,实际上是访问以时,实际上是访问以FSRFSR内内容为地址的数据存储器容为地址的数据存储器RAMRAM单元。单元。 在直接寻址中,体选码来自状态寄存器在直接寻址中,体选码来自状态寄存器STATUSSTATUS的的RP1

17、RP1和和RPORPO位位,体内的单元地址直接来,体内的单元地址直接来自指令机器码。而在间接寻址中,体选码由自指令机器码。而在间接寻址中,体选码由STATUSSTATUS的的IRPIRP位和位和FSRFSR寄存器的寄存器的BIT7BIT7组成。组成。 程序计数器程序计数器PCPC指针宽指针宽1313位,它的内容指向位,它的内容指向CPUCPU将要执行的下一条指令所在程序存储器单元将要执行的下一条指令所在程序存储器单元的地址的地址。 低低8 8位位PCLPCL有自己的地址,可读可写;而高有自己的地址,可读可写;而高5 5位位PCHPCH和其它单片机不一样,即没有自己的地址,和其它单片机不一样,即

18、没有自己的地址,不能用软件访问,也就不能直接写入,只能用不能用软件访问,也就不能直接写入,只能用寄存器寄存器PCLATHPCLATH装载的方式进行间接写入。装载的方式进行间接写入。 PCLATHPCLATH对于高对于高5 5位位PCHPCH的装载分两种情况:的装载分两种情况: 一种情况是当执行一种情况是当执行以以PCLPCL为目标的写操作指令为目标的写操作指令时,时,PCPC的低的低8 8位来自算术逻辑单元位来自算术逻辑单元ALUALU,PCPC的高的高5 5位来自位来自PCLATHPCLATH的低的低5 5位;位; 另一种情况是当另一种情况是当执行跳转指令执行跳转指令GOTOGOTO或调用子

19、或调用子程序指令程序指令CALLCALL时时,PCPC的低的低1111位来自指令码中直接位来自指令码中直接携带的携带的1111位地址,高位地址,高2 2位由位由PCLATHPCLATH3-43-4提供。提供。 通过通过 CALL 和和 GOTO修改修改 PC (程序指针程序指针)复位地址复位地址0000H0000H,直接给出,直接给出1313根地址选择线;根地址选择线;中断地址中断地址0004H0004H,直接给出,直接给出1313根地址选择线;根地址选择线;指令寄存器指令寄存器PCPC,是在每一个指令的执行周期自动加,是在每一个指令的执行周期自动加1 1而形成当前程序的执行方向;而形成当前程

20、序的执行方向;执行执行以以PCLPCL为目标地址的算术逻辑类指令为目标地址的算术逻辑类指令;调用子程序方式,即调用子程序方式,即CALLCALL语句以及相应的返回语句语句以及相应的返回语句(RETRUNRETRUN、RETFIERETFIE、RETLWRETLW)。)。转移指令方式,即转移指令方式,即GOTOGOTO语句;语句; 主要用于设置定时主要用于设置定时/ /计数器计数器TMR0TMR0、前后分频、前后分频器、外部器、外部INTINT中断以及中断以及B B端口的弱上拉功能等各端口的弱上拉功能等各种控制位。种控制位。 Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1

21、Bit0RBPUINTEDGT0CST0SEPSAPS2PS1PS0PS2-PS0TMR0倍率WDT倍率0 0 01:021:010 0 11:041:020 1 01:081:040 1 11:161:081 0 01:321:161 0 11:641:321 1 01:1281:641 1 11:2561:128Bit4Bit4T0SET0SE:TMR0TMR0用于计数器,计数脉冲信用于计数器,计数脉冲信号边沿选择位号边沿选择位,主动参数。,主动参数。0 0: RA4/T0CKIRA4/T0CKI引脚上的上升沿增量;引脚上的上升沿增量;1 1: RA4/T0CKIRA4/T0CKI引脚上的

22、下降沿增量。引脚上的下降沿增量。Bit5Bit5T0CST0CS:定时:定时/ /计数器计数器TMR0TMR0时钟源选择时钟源选择位位,主动参数。,主动参数。0 0: 用内部指令周期时钟(用内部指令周期时钟(CLKOUTCLKOUT)作为)作为TMR0TMR0的触发脉冲;的触发脉冲;1 1: 用用T0CKIT0CKI引脚上的外部时钟作为引脚上的外部时钟作为TMR0TMR0的的触发脉冲。触发脉冲。Bit3Bit3PSAPSA:前后分频器分配位:前后分频器分配位,主动参数。,主动参数。0 0: 分配给分配给TMR0TMR0,作为,作为TMR0TMR0的前分频器;的前分频器;1 1: 分配给分配给W

23、DTWDT,作为,作为WDTWDT的后分频器。的后分频器。Bit6Bit6INTEDGINTEDG:INTINT中断信号触发边沿选择位中断信号触发边沿选择位,主动参数。主动参数。0 0: BR0/INTBR0/INT引脚上的上升沿触发;引脚上的上升沿触发;1 1: BR0/INTBR0/INT引脚上的下降沿触发。引脚上的下降沿触发。Bit7Bit7RBPURBPU:B B端口弱上拉使能位端口弱上拉使能位,主动参数。,主动参数。0 0: RB0RB0RB7RB7引脚弱上拉使能;引脚弱上拉使能;1 1: RB0RB0RB7RB7引脚弱上拉不使能。引脚弱上拉不使能。 2 2个有效位个有效位: :Bit0/BOR:Bit0/BOR::发生了上电复位;:发生了上电复位;:未:未发生上电复位。发生上电复位。Bit1/POR:Bit1/POR::发生了掉电锁定复位;:发生了掉电锁定复位;:未发生掉电锁定复位。:未发生掉电锁定复位。3.43.4失电保护数据存储器构架失电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论