状况寄存器f3
该寄存器包括有ALU的算术状况位,RESET状况位、大于512字节程序存储器的页面预选位。
状况寄存器f3能够用作方针寄存器。某些标志位经过相应的写来设定,而别的一些位是不能经过指令来改动的。TO、PD位是不可写的。因而一条指令对状况寄存器履行的成果会有所不同。例如CLR f3被除了TO和PD位之外的一切位清“0”,并把“Z”方位“1”,所以得到的状况寄存器内容为“000UU100”,其间,U表明不改动。
主张用BCF、BSF或MOVWF指令来改动状况寄存器的内容,这些指令只改动相应的位,而不影响其它状况位。
其它影响状况位的指令可参阅指令系统的阐明。
状况寄存器包括8位数据位,其间低5位是状况标志位,高3位中的最高位PA2未用。PA0和PA1是存储器页面挑选位,其结构如下表所示。
表1 状况寄存器的结构 | |||||||
PA2 | PA1 | PA0 | TO | PD | Z | DC | C |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
下面咱们介绍各位的含义。
[1].C(D0):进位/借位标志位。在履行ADDWF和SUBWF指令时,最高位发生进位或借位时,C=“1”,在减法选用补码运算。 [2].DC(D1):辅佐进位位。当履行ADDWF和SUBWF指令时,低4位发生进位或借位时,DC=“1”。 [3].Z(D2):零标志位。当算术操作成果为0时,Z=”1″。 [4].PD(D3):低功耗标志位。上电或履行CLR WDT指令时,PD=“1”。履行SLEEP指令时,PD=“0”。 [5].TO(D4):WDT溢出标志位。当上电或履行CLR WDT、SLEEP指令时,TO=“1”,WDT溢出时,TO=“0”。 [6].PA0,PA1(D5,6):程序存储器页面挑选位。关于PIC16C56单片机,PA0是程序存储器页面挑选位。PA1是通用读写位。在PA=0时,挑选0页面,即000H-1FFH。PA0=1时,选中1页,地址为200H-3FFH。 关于PIC16C57/58单片机,PA0、PA1是程序存储器页面挑选位。它们的值从00-11H别离选中0-3页,即地址为000-1FFH、200H-3FFH、400H-5FFH、600H-7FFH。 [7].PA2(D7):通用读写位,未运用。 在复位时,PA2,PA1,PA0被清“0”,上电或履行CLR WDT指令时,TO、PD都被置“1”,这两位的改动如表2所示。上电复位时,Z、DC、C标志位状况不定。在其它复位情况下(如WDT溢出)Z、DC、C状况不变。上电复位TO、PD的状况见表3。 |
表2 事情对TO、PD标志位的影响 | |||
事情 | TO | PD | 阐明 |
上电 | 1 | 1 | 不影响PD标志位 |
WDT超时溢出 | 0 | X | |
SLEEP指令 | 1 | 0 | |
CLR WDT指令 | 1 | 1 |
表3 复位后TO、PD标志位的状况 | |||
TO | PD | 复位原因 | |
0 | 0 | WDT超时溢出使SLEEP唤醒 | |
0 | 1 | WDT超时溢出(不在SLEEP状况时) | |
1 | 0 | MCLR加低电平使SLEEP唤醒 | |
1 | 1 | 上电时 | |
X | X | MCLR加低电平 |
ADDWF指令后,进位位C=1表明发生进位,履行SUBWF指令后,进位位C=0表明借位,履行ADDWF或SUBWF指令也将影响辅佐进位位DC状况。DC表明低半字节到高半字节的进位和借位。 |