单片机原理及应用第三章_第1页
单片机原理及应用第三章_第2页
单片机原理及应用第三章_第3页
单片机原理及应用第三章_第4页
单片机原理及应用第三章_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

存储器是单片机中一个非常重要的部件,专门用于存放指令、数据和运算结果。分析F877单片机存储器构架,可以从其配置的三大模块着手进行,它们是:

8K╳l4位FLASH程序存储器;512╳8位数据存储器RAM;256╳8位可掉电保护数据的EEPROM存储器模块。第3章PIC单片机存储器

存储器从使用功能上来分,可分为随机存储器RAM(RandomAccessMemory)和只读存储器ROM(ReadOnlyMemory)两类。存储器扩展:SRAM6264,EPROM2764。3.1存储器分类F877程序存储器具有13位宽的程序计数器PC。PC指针所产生的13位地址最大可寻址的程序存储器空间为8K,相应的地址编码范围为0000H~lFFFH。

F877归属于中档单片机,其指令字节宽度为14位,内部构架配置了8K╳l4位的闪烁FLASH程序存储器。3.2程序存储器构架

一般将整个程序存储器以2KB为单位进行分页(PAGE),如图3-1所示F877单片机,8KB程序存储器共分作4页,分别称为“页0”、“页l”、“页2”和“页3”。程序计数器高8位PCLATH的Bit4~Bit3位构成程序存储器分页的选择位,对应的地址空间如下:

PCLATHBit4:Bit3:

00页0:0000H~07FFH01页l:0800H~0FFFH10页2:1000H~17FFH11页3:1800H~1FFFHPIC16F877单片机架构程序存储器最大8K字(13位)程序存储空间程序空间按页面划分,每页2K字(11位);最多四页。页面选择PCLATH<4:3>复位向量地址0000h中断向量地址0004hPage00000h0004h07FFhInterruptResetPage10800h0FFFhPage21000h17FFhPage31800h1FFFhPCLATH<4:3>=00PCLATH<4:3>=01PCLATH<4:3>=10PCLATH<4:3>=11

程序存储器中有2个单元地址比较特殊,除了具备同其他单元地址一样的普通用途外,还具有专门用途:

0000H:用作单片机系统的复位矢量;

0004H:用作系统特殊模块的中断矢量。

复位矢量中断矢量

F877用于存储数据的RAM单元比一般单片机RAM的功能要强大得多,它除了具备普通RAM的功能之外,每一个单元都能实现移位、置位、复位和位测试等通常由寄存器才能完成的功能操作。3.3数据存储器构架

RAM数据存储器和FLASH程序存储器一样在空间构架上,进行类似方式进行分区。按横向排列,分为4个“体”(BANK),从左到右分别记为“体0”、“体1”、“体2”和“体3”,每个体为128个8位宽的存储器单元。RP1:RP0体域寄存器地址(二进制地址)

00体0:000H~07FH01体1:080H~0FFH10体2:100H~l7FH11体3:180H~lFFH数据存储器分区

PIC16F877单片机数据存储器架构四个存储体每个128字节特殊功能寄存器存储体选择通过Status中的RP0,1和IRP512单元368有效GPRGPRsSFRsBank0000h01Fh020h07FhGPRsSFRsBank1080h09Fh0A0h0FFh0F0hGPRsSFRsBank2100h11Fh120h17Fh170hGPRsSFRsBank3180h19Fh1A0h1FFh1F0hRP<1:0>RP<1:0>RP<1:0>RP<1:0>=00=01=10=11

根据直接寻址和间接寻址操作码携带址址信息情况,一般把512字节(包括无效地址)的数据存储器分成4个区域,在PIC中被称为“体”(BANK)。体0(000H~07FH)体1(080H~1FFH)体2(100H~17FH)体3(180H~1FFH)RAM区地址:十六进制、二进制。

数据存储器体域

有些寄存器单元在4个体上是互相映射的,如状态寄存器STATUS、间接寻址寄存器INDF、程序计数器低8位PCL、文件选择寄存器FSR、程序计数器高8位PCLATH和中断控制寄存器INTCON。所谓互为映射就是说,在4个体内的相同位置,物理上对应同一个寄存器单元,所以该单元具备4个不同的地址。

互相映射F877单片机的通用寄存器GPR(GeneralPurposeRegisters),可由用户自行支配存放随机数据。

通用寄存器区域:

通用寄存器数量:地址区域:F0H~FFH、170H~l7FH和1F0H~1FFH,都可以索引(或映射)到体0的16个RAM单元。这样安排是为了便于中断服务程序的设计和数据处理,就可以在程序设计中能够有效突破体的限制而定义通用的变量函数。3.3.1通用寄存器

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

3.3.2特殊功能寄存器

状态寄存器的内容用来记录算术逻辑单元ALU的运算结果状态、CPU的特殊运行状态以及RAM数据存储器体间选择等信息。1.状态寄存器STATUS

Bit0/C:进位/借位标志,被动参数。

0:执行加法(或减法)指令时,如果最高位无进位(或有借位);

1:执行加法(或减法)指令时,如果最高位有进位(或无借位)。状态标志位

Bit1/DC:辅助进位/借位标志,被动参数。

0:执行加法(或减法)指令时,如果低4位向高4位无进位(或有借位);

1:执行加法(或减法)指令时,如果低4位向高4位有进位(或无借位)。Bit2/Z:零标志,被动参数。

0:算术或逻辑运算结果不为0;

1:算术或逻辑运算结果为全0。Bit3/PD:降耗标志。0:休眠指令执行后;1:上电或看门狗清0指令执行后。Bit4/TO:超时标志。0:看门狗发生超时;1:上电或看门狗清0指令或休眠指令执行后。Bit6-Bit5/RP1-RP0:RAM数据存储器体选位,仅用于直接寻址。两位复合选择RAM数据存储器4个体,具体关系如下:

RP1、RP0=00选中体0RP1、RP0=01选中体1RP1、RP0=10选中体2RP1、RP0=11选中体3数据存储器体选位

Bit7/IRP:RAM数据存储器体选位,仅用于间接寻址。

0:选择数据存储器低位体:即体0(FSR的Bit7=0)或体1(FSR的Bit7=1);

1:选择数据存储器高位体:即体2(FSR的Bit7=0)或体3(FSR的Bit7=1)。

在RAM数据存储器中,有一个非常特别的寄存器INDF(地址),它的专有功能是与FSR寄存器配合,实现间接寻址。

当访问地址INDF时,实际上是访问以FSR内容为地址的数据存储器RAM单元。

2.间接寻址的寄存器INDF和FSR

在直接寻址中,体选码来自状态寄存器STATUS的RP1和RPO位,体内的单元地址直接来自指令机器码。而在间接寻址中,体选码由STATUS的IRP位和FSR寄存器的BIT7组成。

直接寻址/间接寻址方式的示意图

程序计数器PC指针宽13位,它的内容指向CPU将要执行的下一条指令所在程序存储器单元的地址。低8位PCL有自己的地址,可读可写;而高5位PCH和其它单片机不一样,即没有自己的地址,不能用软件访问,也就不能直接写入,只能用寄存器PCLATH装载的方式进行间接写入。3.与PC相关的寄存器PCL和PCLATH

两种情况下PC值的装入过程

PCLATH对于高5位PCH的装载分两种情况:一种情况是当执行以PCL为目标的写操作指令时,PC的低8位来自算术逻辑单元ALU,PC的高5位来自PCLATH的低5位;另一种情况是当执行跳转指令GOTO或调用子程序指令CALL时,PC的低11位来自指令码中直接携带的11位地址,高2位由PCLATH3-4提供。程序存储器OPCODEkkkk14-位call和goto指令kkkkkkk

通过CALL和GOTO修改PC(程序指针)kkkkkkkkkxxxkkxxxPCLATH寄存器有效的13-位程序存储器地址11-位来自指令2-位来自PCLATHkkkkPCH<5>PCL<8>13-位程序指针PCLATH<5>内部数据总线<8>558movlw HIGHDelaymovwf PCLATHmovlw LOWDelaymovwf PCL

*对于读PC值时:仅从PCL读低8位值,

PCH不会被载入到PCLATH程序存储器复位地址0000H,直接给出13根地址选择线;中断地址0004H,直接给出13根地址选择线;指令寄存器,是在每一个指令的执行周期自动加1而形成当前程序的执行方向;执行以PCL为目标地址的算术逻辑类指令;调用子程序方式,即CALL语句以及相应的返回语句(RETRUN、RETFIE、RETLW)。转移指令方式,即GOTO语句;程序存储器指令语句的选择主要有以下几种途径:

主要用于设置定时/计数器TMR0、前后分频器、外部INT中断以及B端口的弱上拉功能等各种控制位。4.选项寄存器OPTION_REG

Bit2-Bit0/PS2-PS0:分频器倍率选择位

Bit4/T0SE:TMR0用于计数器,计数脉冲信号边沿选择位,主动参数。0:RA4/T0CKI引脚上的上升沿增量;1:RA4/T0CKI引脚上的下降沿增量。Bit5/T0CS:定时/计数器TMR0时钟源选择位,主动参数。0:用内部指令周期时钟(CLKOUT)作为TMR0的触发脉冲;1:用T0CKI引脚上的外部时钟作为TMR0的触发脉冲。Bit3/PSA:前后分频器分配位,主动参数。0:分配给TMR0,作为TMR0的前分频器;1:分配给WDT,作为WDT的后分频器。Bit6/INTEDG:INT中断信号触发边沿选择位,主动参数。0:BR0/INT引脚上的上升沿触发;1:BR0/INT引脚上的下降沿触发。Bit7/RBPU:B端口弱上拉使能位,主动参数。0:RB0~RB7引脚弱上拉使能;1:RB0~RB7引脚弱上拉不使能。

5.电源控制寄存器PCON2个有效位:Bit0/BOR:0:发生了上电复位;1:未发生上电复位。Bit1/POR:0:发生了掉电锁定复位;1:未发生掉电锁定复位。

温馨提示

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

最新文档

评论

0/150

提交评论