打印

PIC系列单片机基本的专用寄存器

[复制链接]
2853|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
msktlch|  楼主 | 2008-10-30 11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通用寄存器用法单一,但专用寄存器却各有各的用处,现将较基本的专用寄存器作一简单介绍。 

   (1)程序计数器(PCL、PCLATH)。程序计数器PC是对程序进行管理的计数器。 PIC16F84 的程序计数

器为13位宽,最大可寻址的存储空间为8k×14位。实际上16F84只使用前1k×14位(0000~03FFH)存储空间

。因程序计数器有13位宽,而专用寄存器只有8位。因此PC由两个专用寄存器构成。其低八位PCL是一个可

读/写寄存器(地址为02H或82H),而高字节PCH(有效位5位)不能直接进行读/写操作,它是通过一个8位的

保持寄存器PCLATH(地址为0A或8AH)把高5位地址传送给程序计数器的高字节。当执行CALL、GOTO指令写

PCL时,PC值的高字节就从PCLATH寄存器中装入。 

   (2)状态寄存器STATUS。状态寄存器STATUS含有算术逻辑单元ALU运算结果的状态(如有无进位等)、

复位状态及数据存储体选择位。有关位位的设定如表2所示,功能如下: 

   1)第0位。进位/借位位C。执行加、减运算指令 
表2   
  IRP RP1 RP0 TO PD Z DC C 
后,若结果有进位或借位,则C被置1,否则置0。在执行移位指令时,也要用到这一位。 
   2)第1位。辅助进位/借位位DC。执行加、减运算指令后,若结果的低四位向高四位有进位或借位,

则DC置1,否则置0。 
   3)第2位。零标志位运算结果为零,Z被置1;运算结果不为零,Z被清零。 
   4)第3位。低功耗标志位PD。上电复位或执行CLRWDT指令后置1,执行SLEEP指令后被清零。 
   5)第4位。定时时间到标志位TO。上电复位或执行CLRWDT、SLEEP指令后被置1,监视定时器的定时时

间到被清零。 
   6)第5位和第6位(RP0、RP1)。这两位是用于直接寻址时的寄存器体选择位。即00——选中Bank0(00H

~7FH);01——选中Bank1(80H~FFH),16F84只有两个存储体。故10、11不用。 
   7)第7位IRP。这是间接寻址的寄存体选择位。0——选中Bank0、1(00H~FFH),1——选中Bank2、3

。16F84只有Bank0、1,所以此IRP位应被置为0。 

   (3)间接寻址INDF和FSR寄存器 

   INDF寄存器不是一个物理寄存器,而是一个逻辑功能的寄存器(地址为00H或80H),当对INDF寄存器

进行寻址时,实际上是访问FSR寄存器内容所指的单元,即把FSR寄存器作为间接寄存器使用。FSR称为“

寄存器选择”寄存器,地址为(04H或84H)。对INDF寄存器本身进行间接寻址访问,将读出FSR寄存器的内

容,例如当FSR=00H时,间接寻址读出INDF的数据将为00H。用间接寻址方式写入INDF寄存器时,虽然写入

操作可能会影响STATUS中的状态字,但写入的数据是无效的。   


相关链接:http://www.hx51.com/Training/Study/Index.html
沙发
shiyan1532| | 2013-3-19 11:21 | 只看该作者
2)第1位。辅助进位/借位位DC。执行加、减运算指令后,若结果的低四位向高四位有进位或借位

则DC置1,否则置0。

有借位,为0.没借位,为1.
有进位,为1,没进位,为0.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

1

粉丝