PIC单片机中级产品PIC16C6X的数据存储器一般分为两个存储体,即存储体0(Bank0)和存储体1(Bank1)。每个存储体都是由专用寄存器和通用寄存器两部分组成的。两个存储体中的一些寄存器单元实际上是同一个寄存器单元,却又具有有不同的地址。例如本版介绍的PIC16F84的状况寄存器STATUS-Reg的两个地址是03H和83H。又如通用寄存器也是如此。
不同类型的PIC单片机,其数据存储器的组成(即功用)是不完全相同的,所以规划人员一旦选用了某个PIC单片机的类型后,常要查找该单片机的数据存储器材料,以便编程用。
以PIC16F84在MPLAB集成开发软件的环境下编写的源程序中,有关RB口(RB7、RB6…RB0)初始化为例,阐明选用存储体0或1的办法如下:
程序清单
file:PIC01ASM
List P=16F84
#include P16F84.inc
STATUS EQU 03H
RB EQU 06H
TRISB EQU 86H
ORG 0x00 ;复位向量(PIC16F84)
GOTO MAIN ;转至主程序开端处
ORG 0x08 ;从地址08H开端寄存程序
MAIN
CLRF PORTB ;初始化
BSF STATUS,5 ;RP0置1,选中Bank1
;以便设置寄存器TRISB
MOVLW 0x0F ;初始化数据00001111B
MOVWF TRISB ;RB口D3~D0为输入;
… ;D7~D4为输出
以上实例阐明:源程序中的寄存器TRISB是在16F84数据存储器的存储体1(Bank1)中,所以使用编程到达挑选TRISB的意图。