发布企业信息

PIC16F87x的数据存储器规划和中断编程

作者:林东亮 罗胜  信息来源:单片机与嵌入式系统应用  2008-4-1

字体大小:  网友评论  进入论坛  

PIC16F87x系列单片机是PIC16系列子系列,是中间档次产品。本文介绍在PIC1687x系列单片机中,根据数据变量的访问特性安排其在数据存储器中的位置的方法及其中断编程,从一方面说明内存的规划对编程的影响。1 PIC16F87x单片机存储器特点PIC16F87x单片机采用哈佛总线结构,程序存储器和数据存储器分别有自己的总线。数据存储器被分...

  美国微芯科技公司的PICmicro单片机和其他单片机相比,在硬件结构和指令系统中采用了很多独有的设计。

  PIC系列单片机硬件系统设计简洁,指令系统设计精练;采用哈佛总线结构,芯片内部数据总线和指令总线分离;选址方式简单。

  PIC16F87x系列单片机是PIC16系列子系列,是中间档次产品。PIC系列与其他单片机相比,让人印象最深的特点可能要属其内存的分页结构,有很多习惯了其他单片机编程的人认为PIC单片机的内存分页带来很多不便。本文介绍在PIC1687x系列单片机中,根据数据变量的访问特性安排其在数据存储器中的位置的方法及其中断编程,从一方面说明内存的规划对编程的影响。

  1 PIC16F87x单片机存储器特点

  PIC16F87x单片机采用哈佛总线结构,程序存储器和数据存储器分别有自己的总线。数据存储器被分成4个页(BANK),每个页大小为128字节,RP1和RP0位可以用来进行页选择。数据存储器分为通用寄存器和特殊功能寄存器。

  特殊功能寄存器是通过CPU和外围模块来控制单片机运行的寄存器。特殊功能寄存器分成两类:一类是与核心功能有关的特殊寄存器,如状 态寄存器(STATUS)、FSR等;另一类是与外围特性有关的外设寄存器。通用寄存器文件可以通过文件寄存器直接访问,一般给用户系统用作变量存储。

  特殊功能寄存器在每个页靠前的位置,有部分特殊功能寄存器(如STATUS)在每个页中都有,但其实共享一个物理存储,在PIC16F876/877中BANK0~ BANK3的后16个字节的通用寄存器也共享一个物理存储。在PIC16F874/873中通用寄存器也有类似的安排。可见厂家在设计安排这些存储器时已经考虑根据它们的访问特性安排其物理存储位置。

  PIC16F87x系列单片机所有寄存器有两种访问方式,即直接寻址访问和间接寻址访问。当通过直接寻址访问时,先设置状态寄存器的RP1和RP0位进行页(BANK)选择,每个页内具体偏移地址则由访问寄存器的指令给出。汇编代码可以将页选择代码写成宏,例如:

         BANK0 MACRO ;选择页0
       bcf STATUS,RP0
       bcf STATUS,RP1
       BANK1 MACRO ;选择页1
       bsf STATUS,RP0
       bcf STATUS,RP1
       ENDM
       假如变量tempVar1是在Bank1:
       CBLOCK 0xA0
       tempVar1
       ……
       ENDC
       则访问tempVar1可以用:
       BANK1 ;选择TempVar1所在的页
       movwf tempVar1 ;将w内容复制到tempVar1movwf

  用上面传统的方法经常要考虑当前的变量是否与前面访问的处于同一个页。如果不是在同一个页,则要进行页选择;如果要进行页选择,还要考虑决定调用BANK0还是BANK1、BANK2等。

  当然,单片机开发人员也没有必要每次访问变量时都要考虑变量是在那个页,MPASM 汇编语言提供伪指令BANKSEL可帮助完成页选择,如BANKSEL tempVar1。如果在访问变量时都用这个伪指令进行页选择,则可以避免编程时考虑变量页的问题,但这无疑使程序的效率降低。

  间接寻址访问寄存器是通过INDF和FSR寄存器。INDF不是物理上的寄存器,访问INDF寄存器导致间接寻址,所要访问的寄存器地址由FSR内容给出。FSR是8位的,可以给出地址空间是256字节,而页大小是128字节,所以间接寻址一样存在页选择的问题。但与直接访问的页选择机制不同,它是通过IRP一个位来进行页选择的。当然,这个时候所指的“页”,应该是256字节。

分页: [1] [2] [3] [下一页] 
Google


推荐图文

广告

电子热点图文

  • 新型太阳能充电器的研究与设计
  • 基于EDA的交通灯控制系统
  • 电子元件基础知识--半导体三极管
  • PID控制中如何整定PID参数

电子风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》