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的目的。
『本文转载自网络,64体育的版权归原作者所有,如有侵权请联系删除』