PIC系列单片机品种虽多,但各产品内部硬件资源的数据存储器设置仍是很有规律的。笔者以PIC16C71A和PIC16C63/65/65A两个品种为实例,查看它们片内数据存储器的结构,找出它们的特点并说明某些寄存器的主要功能,以供用户快速编程。表1和表2分别是PIC16C71A和PIC16C63/65/65A产品片内数据存储器的资源表,其它系列产品的片内数据存储器结构的资源与表1、表2资源都很相似,其差别仅仅是片内功能部件的种类和数量不同(PIC16C57/58有4个存储体)。笔者从下述几个方面介绍表1和表2的特点和主要功能。
1统一编址 PIC系列单片机各类数据存储器都是以寄存器方式工作和寻址的。专用寄存器包括了定时寄存器TMRO、选择寄存器OPTION(又称为项选寄存器)、程序计数器PCL、状态寄存器STATUS、间接寻址寄存器INDF和FSR、端口I/O寄存器(如PORTA、PORTB…)和相对应的端口I/O控制寄存器(又称为端口I/O数据方向寄存器,如TRIAS、TRISB…)、保持寄存器PCLATH和中断控制寄存器INTCON等。上述的专用寄存器都是PIC16C63/65/65A和PIC16C71A共同有的,它们不仅是寄存器名称、功能相同,而且寄存器的地址也完全相同。如果再查看其它PIC单片机,如PIC16C62/62A/64/64A、PIC16C71/72/73/73A/74/74A、PIC16C8X……它们的专用寄存器名称凡是与以上相同者其地址也完全与上述相同,可见尽管PIC系列单片机品种多,但掌握它们的规律后,学习是不难的。
型号不同的PIC单片机,其数据存储器的内部资源仅仅是功能种类和多少的不同。如PIC16C71A型,其引脚为18脚,主要功能是带有8位的A/D转换部件,有4个A/D通道模拟输入,所以在表1中与其A/D转换部件有关的专用寄存器ADRES(用于存放A/D转换的数值结果)、A/D控制寄存器ADCON0(用于控制A/D转换器的操作)和A/D控制寄存器ADCON1(用于控制选择A/D引脚的功能)等。对PIC16C65/65A型,其引脚是40脚的,其功能比PIC16C71A强,因而数据存储器表2中的专用寄存器的种类就比表1的增加了很多。
专用寄存器的每个寄存单元都有相对应的固定用途,它们可分成两类:一类用于供CPU操作(如INDF和FSR、STATUS、PCL……);另一类用于控制外围功能芯片的操作。