通用寄存器文件是用于存放数据的寄存器。一般用于中间数据或结果数据存放。所有的通用寄存器构成了通用寄存器文件。
专用寄存器是单片机内的物理寄存器,它们与数据存储器无关,专用寄存器用于特殊用途,例如I/O断口控制等。
1.通用寄存器
PIC16C52/54/56的通用寄存器地址分配为F07H—F1FH,PIC16C55则为F08H—F1FH,这些地址组成了通用寄存器文件。PIC16C57/58的通用寄存器地址分配如下:
F08H—F0FH:常用的并与存储器块无关的通用寄存器文件。
F10H—F1FH:Bank0的通用寄存器文件。
F20H—F2FH:等同于F00—F0FH。
F30H—F3FH:Bank1的通用寄存器文件。
F40H—F4FH:等同于F00—F0FH。
F50H—F5FH:Bank2的通用寄存器文件。
F60H—F6FH:等同于F00—F0FH。
F70H—F7FH:Bank3的通用寄存器文件。
2.专用寄存器
[1].W工作寄存器
在两个操作量的指令中用于存放第二个操作量,同时,也用于内部数据传送。
[2].TRISA:A口(f5)I/O控制寄存器0-3位有效,对应于I/O(f5)4位宽度。
[3].TRISB:B口(f6)I/O控制寄存器。
[4].TRISC:C口(f7)I/O控制寄存器。
执行TRIS指令时,w寄存器的内容将传送至I/O控制寄存器,以此来定义各I/O口的输入/输出状态。
I/控制寄存器的某位为“1”,使相应的I/O线置于高阻抗状态,即输入态,某位为“0”,使相应的I/O线置输出态。I/O控制寄存器是只写寄存器,复位时全为“1”。
[5].OPTION:预分频器/RTCC选择寄存器。
分配预分频器(prescaler)给RTCC或WDT。预分频器只能分配给RTCC或WDT其中之一使用,不能同时使用。OPTION寄存器是用于定义预分频器的预分频系数,RTCC信号源及作用于RTCC的信号边缘。OPTION寄存器是一个只写6位宽度寄存器。执行OPTION指令时,会把W寄存器内容传送至OPTION寄存器中。在复位时,OPTION寄存器被置为全“1”。
RTS |
RTE |
PSA |
PS2 |
PS1 |
PS0 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
寄存器OPTION各位定义如下:
[1]. RTS(D5):RTCC信号选择位,RTS=0时,选中内部指令周期时钟(CLKOUT)为输入信号,在RTS=1时,选中RTCC引脚输入的信号。
[2]. RTE(D4):RTCC信号边沿选择位,RTE=0时,选中RTCC引脚输入信号的上升沿计数,RTE=1时,RTCC引脚输入信号下降沿触发。
[3]. RTS(D3):预分频器分配位。PSA=0时,把预分频器分配给RTCC,PSA=1时,把预分频器分配给WDT。
[4]. PS0-PS2(D2-D0):预分频值,它用于确定分频器的分频比,定义如下表所示。
预分频值 |
RTCC时分频比 |
WDT时分频比 |
0 0 0 |
1:2 |
1:1 |
0 0 1 |
1:4 |
1:2 |
0 1 0 |
1:8 |
1:4 |
0 1 1 |
1:16 |
1:8 |
1 0 0 |
1:32 |
1:16 |
1 0 1 |
1:64 |
1:32 |
1 1 0 |
1:128 |
1:64 |
1 1 1 |
1:256 |
1:128 | |