dsPIC30F系列参考手册 寄存器21: SR:CPU状态寄存器 高字节: R-0 R-0 R/C-0 R/C-0 R-0 R/C-0R-0 R/W-0 OA OB SA SB OAB SAB DA DC bit 15 bit 8 低字节:(SRL) RW-0②RW-0② RW-0(2) R-0 R/W-0 R/-0 R/W-0 R/-0 IPL<2:0> RA N OV Z bit 7 bit 0 bit 15 OA:累加器A上溢状态位 1=累加器A上溢 0=累加器A未上溢 bit 14 OB:累加器B上溢状态位 1=累加器B上溢 0=累加器B未上溢 bit 13 SA:累加器A饱和“粘着”(Sticky)状态位 1=累加器A饱和或在某时己经饱和 0=累加器A未饱和 注: 此位可读或被清零(不能置位)。 bit 12 SB:累加器B饱和“粘着”状态位 1=累加器B饱和或在某时已经饱和 0=累加器B未饱和 注:此位可读或被清零(不能置位)。 bit 11 OAB:OA II OB组合的累加器上溢状态位 1=累加器A或B已经上溢 0=累加器A和B都未上溢 bit 10 SAB:SA II SB组合的累加器“粘着”状态位 1=累加器A或B饱和或在过去某时己经饱和 0=累加器A和B都未饱和 注:此位可读或被清零(不能置位)。清零此位的同时将清零SA和SB。 bit 9 DA:DO循环有效位 1=正在进行DO循环 0=未进行DO循环 bit 8 DC:MCU ALU半进位/借位标志位 1=结果的第4低位(对于字节大小的数据)或第8低位(对于字大小的数据)发生了 向高位的进位 0=结果的第4低位(对于字节大小的数据)或第8低位(对于字大小的数据)未发生 向高位的进位 DS70049CCN第2-12页 2005 Microchip Technology Inc
dsPIC30F 系列参考手册 DS70049C_CN 第 2-12 页 © 2005 Microchip Technology Inc. 寄存器 2-1: SR:CPU 状态寄存器 高字节: R-0 R-0 R/C-0 R/C-0 R-0 R/C-0 R -0 R/W-0 OA OB SA SB OAB SAB DA DC bit 15 bit 8 低字节:(SRL) R/W-0(2) R/W-0(2) R/W-0(2) R-0 R/W-0 R/W-0 R/W-0 R/W-0 IPL<2:0> RA N OV Z C bit 7 bit 0 bit 15 OA:累加器 A 上溢状态位 1 = 累加器 A 上溢 0 = 累加器 A 未上溢 bit 14 OB:累加器 B 上溢状态位 1 = 累加器 B 上溢 0 = 累加器 B 未上溢 bit 13 SA:累加器 A 饱和 “粘着”(Sticky)状态位 1 = 累加器 A 饱和或在某时已经饱和 0 = 累加器 A 未饱和 注: 此位可读或被清零 (不能置位)。 bit 12 SB:累加器 B 饱和 “粘着”状态位 1 = 累加器 B 饱和或在某时已经饱和 0 = 累加器 B 未饱和 注: 此位可读或被清零 (不能置位)。 bit 11 OAB:OA || OB 组合的累加器上溢状态位 1 = 累加器 A 或 B 已经上溢 0 = 累加器 A 和 B 都未上溢 bit 10 SAB:SA || SB 组合的累加器 “粘着”状态位 1 = 累加器 A 或 B 饱和或在过去某时已经饱和 0 = 累加器 A 和 B 都未饱和 注: 此位可读或被清零 (不能置位)。清零此位的同时将清零 SA 和 SB。 bit 9 DA:DO 循环有效位 1 = 正在进行 DO 循环 0 = 未进行 DO 循环 bit 8 DC:MCU ALU 半进位 / 借位标志位 1 = 结果的第 4 低位 (对于字节大小的数据)或第 8 低位 (对于字大小的数据)发生了 向高位的进位 0 = 结果的第 4 低位 (对于字节大小的数据)或第 8 低位 (对于字大小的数据)未发生 向高位的进位
第2章CPU 寄存器2-1: SR:CPU状态寄存器(续) bit 7-5 IPL<2:0>:CPU中断优先级级别状态位() 111=CPU中断优先级级别是7(15)。禁止用户中断。 110=CPU中断优先级级别是6(14) 101=CPU中断优先级级别是5(13) 100=CPU中断优先级级别是4(12) 011=CPU中断优先级级别是3(11) 010=CPU中断优先级级别是2(10) 001=CPU中断优先级级别是1(9) 000=CPU中断优先级级别是0(8) 注1:PL<20>位与IPL<3>位(CORCON<3>)相连以形成CPU中断优先级级别。如果PL<3>=1, 2 那么括号中的值表示PL。当PL<3>=1时,禁止用户中断。 2:当NSTDIS=1(INTCON1<15>)时,IPL<2:0>状态位为只读。 bit 4 RA:REPEAT循环有效位 1=正在进行REPEAT循环 O=未进行REPEAT循环 bit 3 N:MCU ALU负标志位 超 1=结果为负 0=结果为非负(零或正) bit 2 OV:MCU ALU溢出标志位 此位用于带符号的算术运算(2进制补码)。它表明数量级的溢出,这样导致了符号位改变状态。 1=带符号的算术运算中发生溢出(本次运算) 0=未发生溢出 bit 1 Z:MCU ALU零标志位 1=影响Z位的运算在过去某时将该位置1 0=影响Z位的最近一次运算己经将该位清零(也就是说,一个非零结果) bit 0 C:MCU ALU进位/借位标志位 1=结果的最高有效位发生了进位 0=结果的最高有效位未发生进位 图注: R=可读位 W=可写位 U=未用位,读作0 C=只清零位 S=只置1位 n=POR时的值 1=置位 0=清零 X=未知 2005 Microchip Technology Inc. DS70049CCN第2-13页
© 2005 Microchip Technology Inc. DS70049C_CN 第 2-13 页 第 2 章 CPU CPU 2 寄存器 2-1: SR:CPU 状态寄存器 (续) bit 7-5 IPL<2:0>:CPU 中断优先级级别状态位 (1) 111 = CPU 中断优先级级别是 7 (15)。禁止用户中断。 110 = CPU 中断优先级级别是 6 (14) 101 = CPU 中断优先级级别是 5 (13) 100 = CPU 中断优先级级别是 4 (12) 011 = CPU 中断优先级级别是 3 (11) 010 = CPU 中断优先级级别是 2 (10) 001 = CPU 中断优先级级别是 1 (9) 000 = CPU 中断优先级级别是 0 (8) 注 1:IPL<2:0> 位与IPL<3> 位(CORCON<3>)相连以形成 CPU中断优先级级别。如果 IPL<3> = 1, 那么括号中的值表示 IPL。 当 IPL<3> = 1 时,禁止用户中断。 2:当 NSTDIS = 1 (INTCON1<15>)时, IPL<2:0> 状态位为只读。 bit 4 RA:REPEAT 循环有效位 1 = 正在进行 REPEAT 循环 0 = 未进行 REPEAT 循环 bit 3 N:MCU ALU 负标志位 1 = 结果为负 0 = 结果为非负 (零或正) bit 2 OV:MCU ALU 溢出标志位 此位用于带符号的算术运算 (2 进制补码)。它表明数量级的溢出,这样导致了符号位改变状态。 1 = 带符号的算术运算中发生溢出 (本次运算) 0 = 未发生溢出 bit 1 Z:MCU ALU 零标志位 1 = 影响 Z 位的运算在过去某时将该位置 1 0 = 影响 Z 位的最近一次运算已经将该位清零 (也就是说,一个非零结果) bit 0 C:MCU ALU 进位 / 借位标志位 1 = 结果的最高有效位发生了进位 0 = 结果的最高有效位未发生进位 图注: R = 可读位 W = 可写位 U = 未用位,读作 0 C = 只清零位 S = 只置 1 位 -n = POR 时的值 1 = 置位 0 = 清零 x = 未知
dsPIC30F系列参考手册 寄存器2-2: CORCON:内核控制寄存器 高字节: U-0 U-0 U-0 R/W-0 R/W-0 R-0 R-0 R-0 US EDT DL<2:0> bit 15 bit 8 低字节: R/W-0 R/W-0 R/W-1 R/-0 R/C-0 R/-0 R/W-0 R/-0 SATA SATB SATDW ACCSAT IPL3 PSV RND F bit 7 bit 0 bit15-13未用:读作0 bit 12 US:DSP乘法无符号/带符号控制位 1=DSP引擎乘法无符号 0=DSP引擎乘法带符号 bit 11 EDT:DO循环提前终止控制位 1=在当前循环的迭代结束时终止执行DO循环 0=无影响 注:此位总是读作0。 bit10-8DL<2:0>:D0循环嵌套级状态位 111=7个D0循环有效 001=1个D0循环有效 000=0个DO循环有效 bit 7 SATA:ACCA饱和使能位 1=使能累加器A饱和 0=禁止累加器A饱和 bit 6 SATB:AccB饱和使能位 1=使能累加器B饱和 0=禁止累加器B饱和 bit 5 SATDW:来自DSP引擎的数据空间写操作饱和使能位 1=使能数据空间写操作饱和 0=禁止数据空间写操作饱和 bit 4 ACCSAT:累加器饱和模式选择位 1=9.31饱和(超级饱和) 0=1.31饱和(正常饱和) bit 3 IPL3:CPU中断优先级状态位3 1=CPU中断优先级高于7 0=CPU中断优先级等于或低于7 注:IPL3位与IPL<2:0>位(SR<7:5>)相连形成CPU中断优先级。 DS70049CCN第2-14页 2005 Microchip Technology Inc
dsPIC30F 系列参考手册 DS70049C_CN 第 2-14 页 © 2005 Microchip Technology Inc. 寄存器 2-2: CORCON:内核控制寄存器 高字节: U-0 U-0 U-0 R/W-0 R/W-0 R-0 R-0 R-0 - - - US EDT DL<2:0> bit 15 bit 8 低字节: R/W-0 R/W-0 R/W-1 R/W-0 R/C-0 R/W-0 R/W-0 R/W-0 SATA SATB SATDW ACCSAT IPL3 PSV RND IF bit 7 bit 0 bit 15-13 未用:读作 0 bit 12 US:DSP 乘法无符号 / 带符号控制位 1 = DSP 引擎乘法无符号 0 = DSP 引擎乘法带符号 bit 11 EDT:DO 循环提前终止控制位 1 = 在当前循环的迭代结束时终止执行 DO 循环 0 = 无影响 注: 此位总是读作 0。 bit 10-8 DL<2:0>:DO 循环嵌套级状态位 111 = 7 个 DO 循环有效 • • 001 = 1 个 DO 循环有效 000 = 0 个 DO 循环有效 bit 7 SATA:AccA 饱和使能位 1 = 使能累加器 A 饱和 0 = 禁止累加器 A 饱和 bit 6 SATB:AccB 饱和使能位 1 = 使能累加器 B 饱和 0 = 禁止累加器 B 饱和 bit 5 SATDW: 来自 DSP 引擎的数据空间写操作饱和使能位 1 = 使能数据空间写操作饱和 0 = 禁止数据空间写操作饱和 bit 4 ACCSAT:累加器饱和模式选择位 1 = 9.31 饱和 (超级饱和) 0 = 1.31 饱和 (正常饱和) bit 3 IPL3:CPU 中断优先级状态位 3 1 = CPU 中断优先级高于 7 0 = CPU 中断优先级等于或低于 7 注: IPL3 位与 IPL<2:0> 位 (SR<7:5>)相连形成 CPU 中断优先级
第2章CPU 寄存器2-2 CORCON: 内核控制寄存器(续) bit2 PSV:数据空间中的程序空间可视性使能位 1=程序空间在数据空间中可视 0=程序空间在数据空间中不可视 bit 1 RND:舍入模式选择位 1=使能带偏置的(传统)舍入 0=使能非偏置(收敛)舍入 bit 0 F:整数或小数乘法器模式选择位 1=使能DSP乘法运算器的整数模式 0=使能DSP乘法运算器的小数模式 2 图注: R=可读位 W=可写位 U=未用位,读作0 C=位可被清零 n=POR时的值 1=置位 0=清零 x=未知 超 2005 Microchip Technology Inc. DS70049CCN第2-15页
© 2005 Microchip Technology Inc. DS70049C_CN 第 2-15 页 第 2 章 CPU CPU 2 寄存器 2-2: CORCON:内核控制寄存器 (续) bit 2 PSV:数据空间中的程序空间可视性使能位 1 = 程序空间在数据空间中可视 0 = 程序空间在数据空间中不可视 bit 1 RND:舍入模式选择位 1 = 使能带偏置的 (传统)舍入 0 = 使能非偏置 (收敛)舍入 bit 0 IF:整数或小数乘法器模式选择位 1 = 使能 DSP 乘法运算器的整数模式 0 = 使能 DSP 乘法运算器的小数模式 图注: R = 可读位 W = 可写位 U= 未用位,读作 0 C = 位可被清零 -n = POR 时的值 1 = 置位 0 = 清零 x = 未知
dsPIC30F系列参考手册 2.4.3其他dsPIC30FCPU控制寄存器 以下所列的寄存器与dsP1C30FCPU内核有关,本手册的其他章节会对它们进行更详细的描述。 2.4.3.1 TBLPAG:表页寄存器 TBLPAG寄存器用于在读表和写表操作过程中保存程序存储器地址的高8位。表指令用于传输程 序存储空间和数据存储空间之间的数据。更多详细信息,请参见第4章“程序存储器”。 2.4.3.2 PSVPAG:程序空间可视性页寄存器 程序空间可视性允许用户将程序存储空间的32KB区域映射到数据地址空间的高32KB。此特性 允许通过在数据存储器上操作的dsPIC30F指令对常数数据进行透明访问。PSVPAG寄存器选择 映射到数据地址空间的程序存储空间的32KB区域。更多有关PSVPAG寄存器的信息,请参见 第4章“程序存储器”。 2.4.3.3 MODCON:模控制寄存器 MODCON寄存器用于使能并配置模寻址(循环缓冲)。更多有关模寻址的详细信息,请参见第 3章“数据存储器”。 2.4.3.4 XMODSRT,XMODEND:X模起始和结束地址寄存器 XMODSRT和XMODEND寄存器保持X数据存储地址空间中执行模(循环)缓冲的起始和结束 地址。更多有关模寻址的详细信息,请参见第3章“数据存储器”。 2.4.3.5 YMODSRT,YMODEND:Y模起始和结束地址寄存器 YMODSRT和YMODEND寄存器保持Y数据存储地址空间中执行模(循环)缓冲的起始和结束 地址。更多有关模寻址的详细信息,请参见第3章“数据存储器”。 2.4.3.6 XBREV:X模位反转寄存器 XBREV寄存器用于设置位反转寻址的缓冲区大小。更多有关位反转寻址的详细信息,请参见第 3章“数据存储器”。 2.4.3.7DIS1CNT:禁止中断计数寄存器 DISI指令使用DISICNT寄存器将优先级为1-6的中断在指定的几个周期内禁止。更多的信息,请 参见第6章“复位中断”。 DS70049CCN第2-16页 2005 Microchip Technology Inc
dsPIC30F 系列参考手册 DS70049C_CN 第 2-16 页 © 2005 Microchip Technology Inc. 2.4.3 其他 dsPIC30F CPU 控制寄存器 以下所列的寄存器与 dsPIC30F CPU 内核有关,本手册的其他章节会对它们进行更详细的描述。 2.4.3.1 TBLPAG:表页寄存器 TBLPAG 寄存器用于在读表和写表操作过程中保存程序存储器地址的高 8 位。表指令用于传输程 序存储空间和数据存储空间之间的数据。更多详细信息,请参见第 4 章 “程序存储器”。 2.4.3.2 PSVPAG:程序空间可视性页寄存器 程序空间可视性允许用户将程序存储空间的 32 KB 区域映射到数据地址空间的高 32 KB。此特性 允许通过在数据存储器上操作的 dsPIC30F 指令对常数数据进行透明访问。 PSVPAG 寄存器选择 映射到数据地址空间的程序存储空间的 32 KB 区域。更多有关 PSVPAG 寄存器的信息,请参见 第 4 章 “程序存储器”。 2.4.3.3 MODCON:模控制寄存器 MODCON 寄存器用于使能并配置模寻址 (循环缓冲)。更多有关模寻址的详细信息,请参见第 3 章 “数据存储器”。 2.4.3.4 XMODSRT, XMODEND:X 模起始和结束地址寄存器 XMODSRT 和 XMODEND 寄存器保持 X 数据存储地址空间中执行模(循环)缓冲的起始和结束 地址。更多有关模寻址的详细信息,请参见第 3 章 “数据存储器”。 2.4.3.5 YMODSRT, YMODEND:Y 模起始和结束地址寄存器 YMODSRT 和 YMODEND 寄存器保持 Y 数据存储地址空间中执行模(循环)缓冲的起始和结束 地址。更多有关模寻址的详细信息,请参见第 3 章 “数据存储器”。 2.4.3.6 XBREV:X 模位反转寄存器 XBREV 寄存器用于设置位反转寻址的缓冲区大小。更多有关位反转寻址的详细信息,请参见第 3 章 “数据存储器”。 2.4.3.7 DISICNT:禁止中断计数寄存器 DISI指令使用DISICNT寄存器将优先级为1-6的中断在指定的几个周期内禁止。更多的信息,请 参见第 6 章 “复位中断