新闻中心

EEPW首页>模拟技术>设计应用> PIC单片机之16C84单片机介绍(一)

PIC单片机之16C84单片机介绍(一)

作者: 时间:2012-11-14 来源:网络 收藏
入堆栈。在执行RETURN,RETLW,RETFIE等指令时,堆栈被弹出。PUSH(压入)和POP(弹出)不影响PCLATH。

  堆栈是作为循环缓冲器。当堆栈被压入38次后,第9次压入将占据第一次压入的位置,第十次压入将占据第二次压入的位置,等等。同样当堆栈弹出第9次时,与第一次弹出是一样的。注意,没有状态位来 指明堆栈上溢式下溢的条件。没有PUSH,POP指令助记符,但CALL,R ETURN,RETLW,RETFIE等指令的执行或中断发生,将实际发生压栈退栈。

  4-2程序存储器的页

16C84具有1K的程序存储器,CALL,GOTO指令只有11位的地址范围,这11位的地址范围允许分支在2K程序存储器页大小的范围。

  为将来16C8X程序存储器的扩展,必须由另外两位来说明程序 存储器的页。这些页位来自于PCLATH4:3>。当执行CALL、GOTO指令时,用户必须确保这些页位的编程等指向要求的程序存储器的页。

  如果执行CALL指令,整个13位被压入堆栈。所以对于返回指令不要求 对PCLATH4:3>位的管理。因为PC的值将会由退栈而获得。注意:16C84忽略了PCLATH4:3>位,这些位用于程序存储页1,2,3(0800H-1FFFH),不可以把PIC16C84的PCLATH4:3>位用作通用读/写位,这会影响将来产品的向上兼容。

  4-3间接寻址,INDF和FSR的作用

  INDF寄存器不是物理寄存器,只是被用来与FSR寄存器连接以执行间接寻址。

  使用INDF寄存器,就可以实现间接寻址。

  使用INDF寄存器的任何指令,实际寻址数据是由文件选择寄存器(FSR)所决定的。读INDF自身(FSR=0),将产生00H。向INDF写,结果无操作(显然可以提供状态位)。8位FSR寄存器同状态寄存器STATUS7>(IRP)组合可以得到9位地址。

  然而PIC16C84是不用IRP的。使用下面的例程序,通过间接寻址清零。2OH~2FH单位。

  MOVLW 20H ;初始化RAM的指针

  MOVF FSR ;到FSR

  NEXT CLRF INDF ;通过间接寻址清0,由FSR的内容所指问的寄存器。

  INCF FSR ;(FSR)+1→FSR

  BIFSS FSR,4;当FSR的第4位为1跳过下一条指令

  GOTO NEXT ;否则入。

存储器相关文章:存储器原理



上一页 1 2 3 4 5 下一页

评论


相关推荐

技术专区

关闭