HT46R064B/065B/066B
及到累加器的临时储存功能,如在用户定义的寄存器和另一个寄存器之间,由于两者之间的不能直
接传送数据,因此需要通过累加器来传送数据。
程序计数器低字节寄存器 – PCL
为了提供额外的程序控制功能,程序计数器的低字节被设置在数据存储器的特殊功能区域,程
序员可对此寄存器进行操作,很容易直接跳转到其它程序地址。直接给 PCL 寄存器赋值将导致程序
直接跳转到专用程序存储器某一地址,然而,由于寄存器只有 8 位的长度,因此只允许在本页的程
序存储器中跳转。注意,使用这种运算时,会插入一个空指令周期。
状态寄存器 – STATUS
这 8 位寄存器包括零标志位(Z)、进位标志位(C)、辅助进位标志位(AC)、溢出标志位
(OV),暂停标志位(PDF)、和看门狗溢出标志位(TO)。这些标志位同时记录单片机的状态
数据和算术/逻辑运算。
除了 TO 和 PDF 标志位以外,状态寄存器的其它位像其它大多数寄存器一样可以被改变。但是
任何数据写入状态寄存器将不会改变 TO 和 PDF 标志位。另外,执行不同指令操作后,与状态寄存
器相关的运算将会得到不同的结果。TO 标志位只会受系统上电、看门狗溢出、执行“CLR WDT”
或“HALT”指令的影响。PDF 指令只会受执行“HALT”或“CLR WDT”指令或系统上电的影响。
Z、OV、AC 和 C 标志位通常反映最近的运算操作的状态。
另外,当进入一个中断程序或者执行子程序调用时状态寄存器将不会自动压入到堆栈中保存。
假如状态寄存器的内容很重要,且中断子程序会改变状态寄存器的内容,则需要保存备份以备恢复。
注意,状态寄存器的 0~3 位可以读取和写入。
状态寄存器
位
7
6
5
TO
R
4
PDF
R
3
OV
R/W
x
2
Z
R/W
x
1
AC
R/W
x
0
C
R/W
x
名称
R/W
POR
—
—
—
—
—
—
0
0
“x”表示未知
Bit 7,6
未定义,读为“0”
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
TO:看门狗溢出标志位
0:系统上电或者执行“CLR WDT”或“HALT”指令
1:WDT 溢出
PDF:暂停标志位
0:系统上电或执行“CLR WDT”指令
1:执行“HALT”指令将会置位 PDF 位。
OV : 溢出标志位
0:不发生溢出时
1:当运算结果高两位的进位状态异或结果为 1 时
Z: 零标志位
0:算数运算或者逻辑运算的结果不为零时
1:算数运算或者逻辑运算的结果为零时
AC:辅助进位标志位
0:没有辅助进位时
1:当低字节的加法造成进位或者高字节的减法没有造成借位时
C:进位标志位
0:没有进位时
1:当加法造成进位或者减法没有造成借位时,同时移位指令也会影响 C 标志位。
输入/输出口和控制寄存器
在特殊功能寄存器中,输入/输出寄存器(PA、PB 等)和相关的控制寄存器(PAC、PBC 等)
是很重要的,这些寄存器在数据存储器有特定的地址。输入/输出口寄存器用来传送端口上的输入和
输出数据,而这些控制寄存器是用来设置引脚的状态,以决定是输出口还是输入口。若要设定一个
Rev 1.00
2011-04-13
20