dspic33e/pic24e 系列参考手册 2.1 简介 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 dspic33e/pic24e 器件 请参见当前器件数据手册中 CPU 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件

Size: px
Start display at page:

Download "dspic33e/pic24e 系列参考手册 2.1 简介 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 dspic33e/pic24e 器件 请参见当前器件数据手册中 CPU 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件"

Transcription

1 第 2 章 CPU 目录 本章包括下列主题 : 简介 编程模型 软件堆栈指针 CPU 寄存器说明 算术逻辑单元 (ALU) DSP 引擎 除法支持 指令流类型 循环结构 地址寄存器相依性 数据空间仲裁停顿 寄存器映射 相关应用笔记 版本历史 CPU 2011 Microchip Technology Inc. DS70359B_CN 第 2-1 页

2 dspic33e/pic24e 系列参考手册 2.1 简介 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 dspic33e/pic24e 器件 请参见当前器件数据手册中 CPU 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件数据手册和系列参考手册章节可从 Microchip 网站 下载 dspic33e/pic24e CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 24 位宽, 可以寻址最大 4M x 24 位的用户程序存储空间 指令预取机制可帮助维持吞吐量, 并使指令的执行具有可预测性 除了改变程序流的指令 双字传送 (MOV.D) 指令 PSV 访问和表指令以外, 大多数指令都以单周期有效执行速率执行 使用 DO 和 REPEAT 指令支持无开销的程序循环结构, 这两条指令在任意时刻都可以被中断 寄存器 dspic33e/pic24e 器件在编程模型中有 16 个 16 位工作寄存器 每个工作寄存器都可作为数据 地址或地址偏移量寄存器 第 16 个工作寄存器 (W15) 作为软件堆栈指针工作, 用于中断和调用 指令集 dspic33e/pic24e 指令集具有两类指令 : MCU 类指令 DSP 类指令这两类指令无缝地集成到架构中, 并从单个执行单元执行 指令集包含多种寻址模式, 指令的设计可使 C 编译器的效率达到最优 数据空间寻址 基本数据空间可以作为 32K 字或 64 KB 寻址, 并被分成两块, 称为 X 和 Y 数据存储区 每个存储块有自己独立的地址发生单元 (Address Generation Unit, AGU) MCU 类指令只通过 X 存储区 AGU 进行操作, 可将整个存储器映射作为一个线性数据空间访问 一些 DSP 指令通过 X 和 Y 的 AGU 进行操作以支持双操作数读操作, 这样会将数据地址空间分成两个部分 X 和 Y 数据空间的边界视具体器件而定 可选择将数据存储空间的高 32 KB 映射到任何 16K 程序字边界内的程序空间 程序空间到数据空间的映射功能 ( 称为程序空间可视性 (Program Space Visibility, PSV)) 让任何指令都能像访问数据空间一样访问程序空间 此外, 基本数据空间地址与读页寄存器或写页寄存器 (DSRPAG 或 DSWPAG) 配合使用, 可构成扩展数据空间 (Extended Data Space, EDS) 地址 EDS 可以作为 8M 字或 16 MB 寻址 关于 EDS PSV 和表访问的更多详细信息, 请参见第 3 章 数据存储器 (DS70595) 在 dspic33e 器件中,X 和 Y 地址空间都支持无开销循环缓冲区 ( 模寻址 ) 模寻址省去了 DSP 算法的软件边界检查开销 X AGU 的循环寻址可以用于任何 MCU 类指令 X AGU 还支持位反转寻址, 大幅简化了基 2 FFT 算法对输入或输出数据的重新排序 DS70359B_CN 第 2-2 页 2011 Microchip Technology Inc.

3 第 2 章 CPU 寻址模式 CPU 支持以下寻址模式 : 固有寻址 ( 无操作数 ) 相对寻址 立即数寻址 存储器直接寻址 寄存器直接寻址 寄存器间接寻址 根据每条指令的功能要求, 每条指令与预定义的寻址模式组相关联 对于每条指令, 支持最多 6 种寻址模式 对于大多数指令, dspic33e/pic24e 能在单个指令周期内执行以下功能 : 数据存储器读操作 工作寄存器 ( 数据 ) 读操作 数据存储器写操作 程序 ( 指令 ) 存储器读操作因此, 支持三操作数指令, 允许在单个周期内执行 A+B=C 这样的操作 2 CPU DSP 引擎和指令 ( 仅限 dspic33e 器件 ) DSP 引擎具有 : 一个高速 17 位 x 17 位乘法器 一个 40 位 ALU 两个 40 位饱和累加器 一个 40 位双向桶形移位寄存器, 能在单个周期内将一个 40 位的值右移或左移最多 16 位 DSP 指令可以无缝地与所有其他指令一起操作, 且设计为能获得最佳实时性能 MAC 指令及其他相关指令能够在从存储器取出两个数据操作数的同时, 将两个 W 寄存器相乘 这要求数据空间对于这些指令拆分为两块, 但对于所有其他指令保持线性 这是通过将某些工作寄存器分配给每个地址空间, 以透明和灵活的方式实现的 异常处理 dspic33e/pic24e 具有向量异常机制, 带有最多 8 个不可屏蔽陷阱源和最多 246 个中断源 可以为每个中断源分配 7 个优先级之一 根据应用要求, 用户可以在固定和可变中断延时之间进行选择 关于中断延时的更多信息, 请参见第 6 章 中断 (DS70600) 图 2-1 给出了 dspic33e/pic24e CPU 框图 2011 Microchip Technology Inc. DS70359B_CN 第 2-3 页

4 dspic33e/pic24e 系列参考手册 图 2-1: dspic33e/pic24e CPU 框图 X 地址总线 Y 数据总线 X 数据总线 中断控制器 PSV 和表数据访问控制模块 8 16 数据锁存器 Y 数据 RAM 地址锁存器 数据锁存器 X 数据 RAM 地址锁存器 地址锁存器 24 PCU PCH PCL 程序计数器 堆栈控制逻辑 循环控制逻辑 Y 地址总线 X RAGU X WAGU 16 程序存储器 Y AGU 数据锁存器 EA 多路开关 ROM 锁存器 IR 立即数数据 x 16 W 寄存器阵列 16 指令译码和控制 至各模块的控制信号 OSC1/CLKI 时序发生 上电延时定时器 振荡器起振定时器 DSP 引擎 16 位 ALU 除法支持 MCLR POR/BOR 复位 VDD,VSS AVDD,AVSS 看门狗定时器 外设模块 I/O 端口 DS70359B_CN 第 2-4 页 2011 Microchip Technology Inc.

5 第 2 章 CPU 2.2 编程模型 图 2-2 给出了 dspic33e/pic24e 的编程模型 编程模型中的所有寄存器都是存储器映射的, 并且可以通过指令直接操作 表 2-1 提供了编程模型中每个寄存器的说明 表 2-1: 编程模型的寄存器说明 寄存器名称 说明 W0 至 W15 工作寄存器阵列 ACCA 和 ACCB (1) 40 位 DSP 累加器 PC 23 位程序计数器 SR ALU 和 DSP 引擎状态寄存器 SPLIM 堆栈指针限制值寄存器 TBLPAG 表存储器页地址寄存器 DSRPAG 扩展数据空间 (EDS) 读页寄存器 DSWPAG 扩展数据空间 (EDS) 写页寄存器 RCOUNT REPEAT 循环计数寄存器 DCOUNT (1) DO 循环计数寄存器 DOSTARTH 和 DOSTARTL (1) DO 循环起始地址寄存器 ( 高字节和低字节 ) DOENDH 和 DOENDL (1) DO 循环结束地址寄存器 ( 高字节和低字节 ) CORCON 包含 DSP 引擎和 DO 循环控制位 注 1: 这些寄存器仅在 dspic33e 器件中存在 关于可用性, 请参见具体器件的数据手册 除了编程模型中包含的寄存器,dsPIC33E/PIC24E 还包含用于模寻址 位反转寻址和中断的控制寄存器 这些寄存器将在本文档后续章节中进行说明 与编程模型相关的所有寄存器都是存储器映射的, 如表 2-8 中所示 2 CPU 2011 Microchip Technology Inc. DS70359B_CN 第 2-5 页

6 dspic33e/pic24e 系列参考手册 图 2-2: 编程模型 DIV 和 MUL 结果寄存器 15 W0/WREG W1 W2 0 PUSH.S 和 POP.S 影子寄存器嵌套 DO 堆栈 MAC 操作数寄存器 W3 W4 W5 W6 图注 W7 W8 工作寄存器 MAC 地址寄存器 W9 W10 W11 W12 W13 W14/ 帧指针 W15/ 堆栈指针 SPLIM 堆栈指针限制寄存器 ACCA ACCB DSP 累加器 程序计数器 7 0 TABPAG TBLPAG 数据表页地址 9 0 PSVPAG DSRPAG X 数据空间读页地址 8 0 PSVPAG DSWPAG X 数据空间写页地址 15 0 RCOUNT REPEAT 循环计数器 15 0 DCOUNT DO 循环计数器 DOSTART 0 DO 循环起始地址 DOEND 0 DO 循环结束地址 15 0 CORCON CPU 内核控制寄存器 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C SRH SRL 状态寄存器 DS70359B_CN 第 2-6 页 2011 Microchip Technology Inc.

7 第 2 章 CPU 工作寄存器阵列 16 个工作 (W) 寄存器可用作数据 地址或地址偏移量寄存器 W 寄存器的功能由访问它的指令的寻址模式决定 dspic33e/pic24e 指令集可被分为两种指令类型 : 寄存器指令 文件寄存器指令 寄存器指令 寄存器指令可将每个 W 寄存器用作数据值或地址偏移值 例 2-1 给出了寄存器指令 例 2-1: 2 MOV W0,W1 ; move contents of W0 to W1 MOV W0,[W1] ; move W0 to address contained in W1 ADD W0,[W4],W5 ; add contents of W0 to contents pointed ; to by W4.Place result in W5. CPU 文件寄存器指令 文件寄存器指令对在指令操作码和寄存器 W0 中包含的特定存储器地址进行操作 W0 是一个可在文件寄存器指令中使用的特殊工作寄存器 在文件寄存器指令中, 工作寄存器 W1-W15 不可被指定为目标寄存器 文件寄存器指令与只有一个 W 寄存器的现有 PIC MCU 器件向后兼容 在汇编语法中使用标号 WREG 来表示文件寄存器指令中的 W0 例 2-2 给出了文件寄存器指令 例 2-2: MOV WREG,0x0100 ADD 0x0100,WREG ; move contents of W0 to address 0x0100 ; add W0 to address 0x0100, store in W0 注 : 关于寻址模式和指令语法的完整说明, 请参见 16 位 MCU 和 DSC 程序员参考手册 (DS70157E_CN) W 寄存器存储器映射 W 寄存器是存储器映射的, 因此可以用文件寄存器指令访问 W 寄存器, 如例 2-3 所示 例 2-3: MOV 0x0004, W10 ; equivalent to MOV W2, W10 其中 : 0x0004 = W2 的存储器地址 此外, 还可执行一条将 W 寄存器同时用作地址指针和操作数目标的指令, 如例 2-4 所示 例 2-4: MOV W1,[W2++] 其中 : W1 = 0x1234 W2 = 0x0004 ;[W2] addresses W Microchip Technology Inc. DS70359B_CN 第 2-7 页

8 dspic33e/pic24e 系列参考手册 在上例中, W2 的内容是 0x0004 由于 W2 被用作地址指针, 它指向存储器中的 0x0004 单元 W2 也映射到存储器中的该地址 虽然这是不太可能发生的事件, 但不到运行时不可能检测到 dspic33e/pic24e 确保数据写操作占据主导, 使上例中 W2 = 0x W 寄存器和字节模式指令 将 W 寄存器阵列作为目标寄存器的字节指令只影响目标寄存器的最低有效字节 (Least Significant Byte, LSB) 由于工作寄存器是存储器映射的, 因此可以通过对数据存储空间进行字节宽度的访问来操作 LSB 和最高有效字节 (Most Significant Byte, MSB) 影子寄存器 编程模型中的许多寄存器都有相关的影子寄存器, 如图 2-2 所示 所有影子寄存器均不能直接访问 在执行函数调用或中断服务程序 (Interrupt Service Routine,ISR) 时,PUSH.S 和 POP.S 指令用于快速现场保存 / 恢复 PUSH.S 指令会将以下寄存器的值传送到它们各自的影子寄存器中 : W0...W3 SR ( 仅 N OV Z C 和 DC 位 ) POP.S 指令会将值从影子寄存器恢复到这些寄存器中 例 2-5 给出了使用 PUSH.S 和 POP.S 指令的代码示例 例 2-5: MyFunction: PUSH.S ; Save W registers, MCU status MOV #0x03,W0 ; load a literal value into W0 ADD RAM100 ; add W0 to contents of RAM100 BTSC SR,#Z ; is the result 0? BSET Flags,#IsZero ; Yes, set a flag POP.S ; Restore W regs, MCU status RETURN PUSH.S 指令会改写先前保存在影子寄存器中的内容 影子寄存器深度只有一层, 所以如果多个软件任务使用影子寄存器, 必须小心 用户应用程序必须确保任何使用影子寄存器的任务均不会被同样使用该影子寄存器且具有更高优先级的任务中断 如果允许较高优先级的任务中断较低优先级的任务, 较低优先级任务保存在影子寄存器中的内容将被较高优先级任务改写 未初始化的 W 寄存器复位 W 寄存器阵列 (W15 除外 ) 在发生所有复位时被清零, 并且在被写入前视为未经初始化 试图将未初始化的寄存器用作地址指针将会复位器件 必须执行字写操作来初始化 W 寄存器 字节写操作不会影响初始化检测逻辑 DS70359B_CN 第 2-8 页 2011 Microchip Technology Inc.

9 第 2 章 CPU 2.3 软件堆栈指针 W15 寄存器作为专用的软件堆栈指针并被异常处理 子程序调用和返回自动修改 ; 但是,W15 可以被任何指令以与所有其他 W 寄存器相同的方式引用 这样就简化了对堆栈指针的读 写和操作 ( 例如, 创建堆栈帧 ) 注 : 为了防止不对齐的堆栈访问, W15<0> 被硬件固定设置为 0 所有复位均将 W15 初始化为 0x1000 该地址确保在所有 dspic33e/pic24e 器件中, 堆栈指针 (Stack Pointer, SP) 指向有效的 RAM 并允许不可屏蔽陷阱异常使用堆栈 这些可能在 SP 被用户软件初始化之前发生 在初始化期间, 可以将 SP 再编程以指向数据空间内的任何单元 堆栈指针总是指向第一个可用的空字并从低地址到高地址填充软件堆栈 图 2-3 显示了它如何在弹出 ( 读 ) 堆栈时预递减, 以及在堆栈 ( 写 ) 压入时后递增 当 PC 压入堆栈时, PC<15:0> 被压入第一个可用的堆栈字, 然后 PC<22:16> 被压入第二个可用的堆栈单元 对于任何 CALL 指令执行期间的 PC 压栈, 压栈前 PC 的 MSB 被零扩展, 如图 2-3 所示 在异常处理期间,PC 的 MSB 与 CPU 状态寄存器 SR 的低 8 位组合在一起 这样就能在中断处理期间自动保存 SRL 的内容 注 : 堆栈指针 W15 永远不会受分页影响 ; 因此, 堆栈地址被限制在基本数据空间 (0x0000 0xFFFF) 中 2 CPU 图 2-3: CALL 指令的堆栈操作 15 0 CALL SUBR 堆栈向高地址增长 PC<15:1> SFA b PC<22:16> < 空字 > W15(CALL 前 ) W15(CALL 后 ) 软件堆栈示例 可使用 PUSH 和 POP 指令操作软件堆栈 PUSH 和 POP 指令相当于将 W15 用作目标指针的 MOV 指令 例如, 要将 W0 的内容压入堆栈, 可通过 : PUSH W0 该语法相当于 : MOV W0,[W15++] 要将栈顶的内容返回 W0, 可通过 : POP W0 该语法相当于 : MOV [--W15],W Microchip Technology Inc. DS70359B_CN 第 2-9 页

10 dspic33e/pic24e 系列参考手册 图 2-4 至图 2-7 给出了如何使用软件堆栈的示例 图 2-4 显示了器件初始化时的软件堆栈 W15 已经初始化为 0x1000 该示例假设 0x5A5A 和 0x3636 这两个值已被分别写入 W0 和 W1 图 2-5 中第一次压入堆栈,W0 中包含的值被复制到堆栈中 W15 自动更新以指向下一个可用的堆栈单元 (0x1002) 在图 2-6 中, W1 的内容被压入堆栈 图 2-7 显示了如何弹出堆栈, 以及栈顶值 ( 先前从 W1 压入 ) 如何被写入 W3 图 2-4: 器件复位时的堆栈指针 W15 0x0000 0x1000 0xFFFE W15 = 0x1000 W0 = 0x5A5A W1 = 0x3636 图 2-5: 执行第一条 PUSH 指令后的堆栈指针 W15 0x5A5A 0x0000 0x1000 0x1002 PUSH W0 W15 = 0x1002 W0 = 0x5A5A W1 = 0x3636 0xFFFE 图 2-6: 执行第二条 PUSH 指令后的堆栈指针 W15 0x5A5A 0x3636 0x0000 0x1000 0x1002 0x1004 PUSH W1 W15 = 0x1004 W0 = 0x5A5A W1 = 0x3636 0xFFFE 图 2-7: 执行一条 POP 指令后的堆栈指针 W15 0x05A5A 0x x0000 0x1000 0x1002 POP W3 0xFFFE W15 = 0x1002 0x3636 W3 DS70359B_CN 第 2-10 页 2011 Microchip Technology Inc.

11 第 2 章 CPU W14 软件堆栈帧指针 帧是堆栈中用户定义的存储器段, 供单个子程序使用 通过使用 LNK( 分配堆栈帧 ) 和 ULNK( 释放堆栈帧 ) 指令可以将工作寄存器 W14 用作堆栈帧指针 当不用作帧指针时, W14 可被指令当作普通的工作寄存器使用 关于将 W14 用作堆栈帧指针的软件示例, 请参见 16 位 MCU 和 DSC 程序员参考手册 (DS70157E_CN) 堆栈指针上溢 堆栈指针限制寄存器 (SPLIM) 用于指定堆栈缓冲区的大小 SPLIM 是一个 16 位寄存器, 但 SPLIM<0> 被固定为 0, 因为所有的堆栈操作都必须按字对齐 直到一个字写入 SPLIM 后才会使能堆栈上溢检查 在此之后, 只能通过器件复位禁止堆栈上溢检查 所有将 W15 用作源或目标寄存器而产生的有效地址将与 SPLIM 中的值作比较 如果堆栈指针 (W15) 的内容比 SPLIM 寄存器的内容大 2, 并且执行了压栈操作, 则不会在后续压栈操作时产生堆栈错误陷阱 例如, 如果想要在堆栈指针递增到超出 RAM 中的地址 0x2000 时引起堆栈错误陷阱, 可将 SPLIM 初始化为值 0x1FFE 注 : 任何使用 W15 寄存器的内容来产生有效地址 (Effective Address, EA) 的指令均有可能产生堆栈错误陷阱 因此, 如果 W15 的内容比 SPLIM 寄存器的内容大 2, 并且执行了一条 CALL 指令或发生了中断, 则会产生堆栈错误陷阱 2 CPU 如果使能了堆栈上溢检查, 则当 W15 有效地址计算越过了数据空间的末尾 (0xFFFF) 时, 也会产生堆栈错误陷阱 注 : 当 SFA 位为高电平时,LNK 指令会产生堆栈错误陷阱 ; 当 SFA 位为 0 时,ULNK 指令会产生堆栈错误陷阱 对 SPLIM 的写操作后面不应紧跟一个使用 W15 的间接读操作 关于堆栈错误陷阱的更多信息, 请参见第 6 章 中断 (DS70600) 堆栈指针下溢 复位时堆栈被初始化为 0x1000 如果堆栈指针地址小于 0x1000, 则会产生堆栈错误陷阱 注 : 通常, 数据空间中 0x0000 和 0x0FFF 之间的单元预留给内核和外设的特殊功能寄存器 堆栈帧有效 (SFA) 控制 W15 不会受分页影响, 因此地址范围限制为 0x 至 0x00FFFF 但是, 当通过堆栈帧指针 (W14) 寻址的堆栈帧处于有效状态时 ( 即, 在 LNK 指令之后 ), 任何用户软件函数的 W14 将仅专用于该函数 因此, 需要能够在将 W14 用作通用 W 寄存器和用作堆栈帧指针之间动态地进行切换 SFA 状态 (CORCON<2>) 位可以实现该功能, 无需任何额外的软件开销 当 SFA 清零时,W14 可以与任意页寄存器配合使用 当 SFA 置 1 时,W14 不受分页影响, 并锁定为与 W15 相同的地址范围 (0x 至 0x00FFFF) SFA 寄存器锁定的操作如下 : LNK 指令将 SFA 置 1 ( 并创建一个堆栈帧 ) ULNK 指令将 SFA 清零 ( 并删除堆栈帧 ) 2011 Microchip Technology Inc. DS70359B_CN 第 2-11 页

12 dspic33e/pic24e 系列参考手册 CALL CALLW CALLWL RCALL 和 RCALLW 指令或向量中断还会将 SFA 位压入堆栈 ( 将它放入已入栈 PC 的最低有效位 (Least Significant bit, LSb)), 并在压栈操作完成之后清零 SFA 位 被调用的过程以及中断向量现在可以自由地使用 W14 作为通用寄存器, 也可以使用 LNK 指令创建另一个堆栈帧 RETURN RETLW 和 RETFIE 指令都会从先前入栈值中恢复 SFA 位 SFA 位是只读位 它只能通过执行 LNK 指令置 1, 通过 ULNK CALL CALLW CALLWL RCALL 和 RCALLW 指令清零 DS70359B_CN 第 2-12 页 2011 Microchip Technology Inc.

13 第 2 章 CPU 2.4 CPU 寄存器说明 SR:CPU 状态寄存器 dspic33e/pic24e CPU 有一个 16 位状态寄存器 (Status Register, SR) 寄存器 2-1 给出了 CPU SR 的详细说明 该寄存器的 LSB 被称为 SRL ( 状态寄存器低字节 ) MSB 被称为 SRH ( 状态寄存器高字节 ) SRL 包含 : 所有的 MCU ALU 操作状态标志 CPU 中断优先级状态位 IPL<2:0> REPEAT 循环有效状态位 RA (SR<4>) 在异常处理期间, SRL 与 PC 的 MSB 组合形成一个完整的字值, 然后将该字值压入堆栈 SRH 包含 : DSP 加法器 / 减法器状态位 DO 循环活动位 DA (SR<9>) 半进位位 DC (SR<8>) SR 位可读 / 写, 但以下各位例外 : DA 位 (SR<8>) 是只读位 RA 位 (SR<4>) 是只读位 OA OB (SR<15:14>) OAB (SR<11>) SA SB (SR<13:12>) 和 SAB (SR<10>) 位是可读 / 写位 ; 但是一旦置 1, 它们将保持置 1 状态直到被用户应用程序清零, 而与任何后续 DSP 操作的结果无关 2 CPU 注 : 清零 SAB 位也会清零 SA 和 SB 位 同样, 清零 OAB 位也会清零 OA 和 OB 位 16 位 MCU 和 DSC 程序员参考手册 (DS70157E_CN) 中提供了对受各指令影响的状态寄存器位的说明 CORCON: 内核控制寄存器 内核控制寄存器 (CORCON) 具有控制 DSP 乘法器和 DO 循环硬件操作的位 CORCON 寄存器还包含 IPL3 状态位, 它与 IPL<2:0> (SR<7:5>) 组合形成 CPU 中断优先级 2011 Microchip Technology Inc. DS70359B_CN 第 2-13 页

14 dspic33e/pic24e 系列参考手册 寄存器 2-1: SR:CPU 状态寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/C-0 R/C-0 R -0 R/W-0 OA (2) OB (2) SA (1,2) SB (1,2) OAB (2) SAB (2) DA (2) DC bit 15 bit 8 R/W-0 (3,4) R/W-0 (1,2) R/W-0 (3,4) 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 图注 : U = 未实现位, 读为 0 R = 可读位 W = 可写位 C = 可清零位 -n = POR 时的值 1 = 置 1 0 = 清零 x = 未知 bit 15 OA: 累加器 A 溢出状态位 (2) 1 = 累加器 A 已溢出 0 = 累加器 A 未溢出 bit 14 OB: 累加器 B 溢出状态位 (2) 1 = 累加器 B 已溢出 0 = 累加器 B 未溢出 bit 13 SA: 累加器 A 饱和 粘住 状态位 (1,2) 1 = 累加器 A 饱和或在某时已经饱和 0 = 累加器 A 未饱和 bit 12 (1,2) SB: 累加器 B 饱和 粘住 状态位 1 = 累加器 B 饱和或在某时已经饱和 0 = 累加器 B 未饱和 bit 11 OAB:OA 和 OB 组合的累加器溢出状态位 (2) 1 = 累加器 A 或 B 已溢出 0 = 累加器 A 和 B 都未溢出 bit 10 SAB:SA 和 SB 组合的累加器 粘住 状态位 (2) 1 = 累加器 A 或 B 饱和或在过去某时已经饱和 0 = 累加器 A 和 B 都未饱和 bit 9 (2) DA:DO 循环活动位 1 = 正在进行 DO 循环 0 = 不在进行 DO 循环 bit 8 DC:MCU ALU 半进位 / 借位标志位 1 = 结果的第 4 个低位 ( 对于字节大小的数据 ) 或第 8 个低位 ( 对于字大小的数据 ) 发生了进位 0 = 结果的第 4 个低位 ( 对于字节大小的数据 ) 或第 8 个低位 ( 对于字大小的数据 ) 未发生进位 注 1: 对 SR 的数据写操作可以修改 SA 和 SB 位, 方法是向 SA 和 SB 写入数据或清零 SAB 位 要避免可能出现的 SA 或 SB 位写竞争条件, 不要使用位操作来修改 SA 和 SB 位 2: 这些位仅在 dspic33e 器件中存在 关于可用性, 请参见具体器件的数据手册 3:IPL<2:0> 位与 IPL<3> 位 (CORCON<3>) 组合形成 CPU 中断优先级 如果 IPL<3> = 1, 那么括号中的值表示 IPL 当 IPL<3> = 1 时, 禁止用户中断 4: 当 NSTDIS (INTCON1<15>) = 1 时, IPL<2:0> 状态位是只读位 DS70359B_CN 第 2-14 页 2011 Microchip Technology Inc.

15 第 2 章 CPU 寄存器 2-1: SR:CPU 状态寄存器 ( 续 ) bit 7-5 IPL<2:0>:CPU 中断优先级状态位 (3,4) 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) bit 4 bit 3 bit 2 bit 1 bit 0 RA:REPEAT 循环活动位 1 = 正在进行 REPEAT 循环 0 = 不在进行 REPEAT 循环 N:MCU ALU 负标志位 1 = 结果为负 0 = 结果为非负 ( 零或正值 ) OV:MCU ALU 溢出标志位该位用于有符号的算术运算 ( 以二进制补码方式进行 ) 它表示量值上的溢出, 这种溢出将导致符号位改变状态 1 = 有符号算术运算 ( 本次算术运算 ) 中发生溢出 0 = 未发生溢出 Z:MCU ALU 全零标志位 1 = 影响 Z 位的任何运算在过去某时已将该位置 1 0 = 影响 Z 位的最近一次运算已将该位清零 ( 即运算结果非零 ) C:MCU ALU 进位 / 借位标志位 1 = 结果的最高有效位发生了进位 0 = 结果的最高有效位未发生进位 2 CPU 注 1: 对 SR 的数据写操作可以修改 SA 和 SB 位, 方法是向 SA 和 SB 写入数据或清零 SAB 位 要避免可能出现的 SA 或 SB 位写竞争条件, 不要使用位操作来修改 SA 和 SB 位 2: 这些位仅在 dspic33e 器件中存在 关于可用性, 请参见具体器件的数据手册 3:IPL<2:0> 位与 IPL<3> 位 (CORCON<3>) 组合形成 CPU 中断优先级 如果 IPL<3> = 1, 那么括号中的值表示 IPL 当 IPL<3> = 1 时, 禁止用户中断 4: 当 NSTDIS (INTCON1<15>) = 1 时, IPL<2:0> 状态位是只读位 2011 Microchip Technology Inc. DS70359B_CN 第 2-15 页

16 dspic33e/pic24e 系列参考手册 寄存器 2-2: CORCON: 内核控制寄存器 U-0 U-0 R/W-0 R/W-0 R/W-0 R-0 R-0 R-0 US<1:0> (2) EDT (1,2) DL<2:0> (2) bit 15 bit 8 R/W-0 R/W-0 R/W-1 R/W-0 R/C-0 R-0 R/W-0 R/W-0 SATA (2) SATB (2) SATDW (2) ACCSAT (2) IPL3 (3) SFA RND (2) IF (2) bit 7 bit 0 图注 : R = 可读位 W = 可写位 U = 未实现位, 读为 0 -n = POR 时的值 1 = 置 1 0 = 清零 x = 未知 bit 未实现 : 读为 0 bit US<1:0>:DSP 乘法无符号 / 有符号控制位 11 = 保留 10 = DSP 引擎执行混合符号乘法运算 01 = DSP 引擎执行无符号乘法运算 00 = DSP 引擎执行有符号乘法运算 bit 11 EDT:DO 循环提前终止控制位 (1) 1 = 在当前循环迭代结束时终止执行 DO 循环 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 (3) 1 = CPU 中断优先级大于 7 0 = CPU 中断优先级等于或小于 7 注 1: 该位总是读为 0 2: 这些位仅在 dspic33e 器件中存在 关于可用性, 请参见具体器件的数据手册 3: IPL3 位与 IPL<2:0> 位 (SR<7:5>) 组合形成 CPU 中断优先级 DS70359B_CN 第 2-16 页 2011 Microchip Technology Inc.

17 第 2 章 CPU 寄存器 2-2: CORCON: 内核控制寄存器 ( 续 ) bit 2 bit 1 bit 0 SFA: 堆栈帧有效状态位 1 = 堆栈帧有效 无论 DSRPAG 和 DSWPAG 值如何, W14 和 W15 都寻址 0x0000 至 0xFFFF 0 = 堆栈帧无效 W14 和 W15 寻址 EDS 或基本数据空间 RND: 舍入模式选择位 1 = 使能有偏 ( 常规 ) 舍入 0 = 使能无偏 ( 收敛 ) 舍入 IF: 整数或小数乘法器模式选择位 1 = 使能 DSP 乘法运算的整数模式 0 = 使能 DSP 乘法运算的小数模式 注 1: 该位总是读为 0 2: 这些位仅在 dspic33e 器件中存在 关于可用性, 请参见具体器件的数据手册 3: IPL3 位与 IPL<2:0> 位 (SR<7:5>) 组合形成 CPU 中断优先级 2 CPU 2011 Microchip Technology Inc. DS70359B_CN 第 2-17 页

18 dspic33e/pic24e 系列参考手册 其他 dspic33e/pic24e CPU 控制寄存器 以下寄存器也与 dspic33e/pic24e CPU 有关, 但会在 dspic33e/pic24e 系列参考手册 的其他章节中对这些寄存器进行更详细的说明 TBLPAG: 表页寄存器 TBLPAG 寄存器用于在表读和表写操作过程中保存程序存储器地址的高 8 位 表指令用于在程序存储空间和数据存储空间之间传输数据 更多详细信息, 请参见第 4 章 程序存储器 (DS70613) DSRPAG: 扩展数据空间读页寄存器 10 位 DSRPAG 寄存器将 X 数据空间读访问地址空间扩展为总共 32 MB DSRPAG 页值介于 0x001 和 0x1FF 之间时, 读操作将访问称为扩展数据空间 (Extended Data Space,EDS) 的 16 MB 地址空间 DSRPAG 页值介于 0x200 和 0x2FF 之间时, 读操作将访问 8 MB 的 PSV 地址空间 ( 因为最低有效字 (least significant word, lsw) 是只读的 ) DSRPAG 页值介于 0x300 和 0x3FF 之间时, 将重复 8 MB 的 PSV 地址空间, 但允许用户读取每个 PSV 地址的最高有效字节 关于 DSRPAG 寄存器的更多详细信息, 请参见第 3 章 数据存储器 (DS70595) DSWPAG: 扩展数据空间写页寄存器 9 位 DSWPAG 寄存器将数据空间写访问空间扩展至 16 MB ( 不允许写入 PSV 空间 ) DSWPAG 页值介于 0x01 和 0x1FF 之间时, 写操作将访问 EDS 关于 DSWPAG 寄存器的更多详细信息, 请参见第 3 章 数据存储器 (DS70595) MODCON: 模控制寄存器 MODCON 寄存器用于使能和配置模寻址 ( 循环缓冲区 ) 关于模寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70595) XMODSRT 和 XMODEND:X 模起始和结束地址寄存器 XMODSRT 和 XMODEND 寄存器保存在 X 数据存储器地址空间中实现的模 ( 循环 ) 缓冲区的起始和结束地址 关于模寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70595) YMODSRT 和 YMODEND:Y 模起始和结束地址寄存器 YMODSRT 和 YMODEND 寄存器保存在 Y 数据存储器地址空间中实现的模 ( 循环 ) 缓冲区的起始和结束地址 关于模寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70595) XBREV:X 模位反转寄存器 XBREV 寄存器设置用于位反转寻址的缓冲区大小 关于位反转寻址的更多详细信息, 请参见第 3 章 数据存储器 (DS70595) DISICNT: 禁止中断计数寄存器 DISI 指令使用 DISICNT 寄存器将优先级为 1-6 的中断在指定的几个周期内禁止 更多信息, 请参见第 6 章 中断 (DS70600) DS70359B_CN 第 2-18 页 2011 Microchip Technology Inc.

19 第 2 章 CPU 2.5 算术逻辑单元 (ALU) dspic33e/pic24e ALU 为 16 位宽, 并能进行加法 减法 单个位移位和逻辑运算 除非另外声明, 算术运算一般采用二进制补码方式进行 根据不同的运算,ALU 可能会影响 SR 寄存器中以下位的值 : 进位标志位 (C) 全零标志位 (Z) 负标志位 (N) 溢出标志位 (OV) 半进位标志位 (DC) 在减法运算中, C 和 DC 状态位分别作为借位位和半借位位 根据所使用的指令模式,ALU 可执行 8 位或 16 位运算 根据指令的寻址模式,ALU 运算的数据可以来自 W 寄存器阵列或数据存储器 同样,ALU 的输出数据可被写入 W 寄存器阵列或数据存储单元 关于受各指令 寻址模式和 8 位 /16 位指令模式影响的 SR 位的信息, 请参见 16 位 MCU 和 DSC 程序员参考手册 (DS70157E_CN) 注 1: 字节操作使用 16 位 ALU, 并可能产生超过 8 位的结果 但是, 如果要保持与 PIC MCU 器件的向后兼容性, 所有字节操作的 ALU 结果必须被写回为一个字节 ( 即, 不修改 MSB), 并且只根据结果 LSB 的状态更新 SR 寄存器 2: 字节模式中执行的所有寄存器指令只会影响 W 寄存器的 LSB 可以使用访问 W 寄存器的存储器映射内容的文件寄存器指令修改任何 W 寄存器的 MSB 2 CPU 字节到字的转换 dspic33e/pic24e 具有两条在混合执行 8 位和 16 位 ALU 运算时很有用的指令 符号扩展 (SE) 指令, 该指令可以从 W 寄存器或数据存储器获取字节值, 并产生经过符号扩展的字值, 存储到 W 寄存器中 零扩展 (ZE) 指令, 该指令可以将 W 寄存器或数据存储器中字值的高 8 位清零, 并将结果放入目标 W 寄存器中 2011 Microchip Technology Inc. DS70359B_CN 第 2-19 页

20 dspic33e/pic24e 系列参考手册 2.6 DSP 引擎 DSP 引擎是一个硬件模块, 它的输入数据来自 W 寄存器阵列, 但具有自己的专用结果寄存器 DSP 引擎由与 MCU ALU 相同的指令译码器驱动 此外, 所有操作数的 EA 都在 W 寄存器阵列中产生 DSP 引擎的工作不能与 MCU 指令流同时进行, 虽然 MCU ALU 和 DSP 引擎资源可以由指令集中的所有指令共用 DSP 引擎由以下组件组成 : 高速 17 位 x 17 位乘法器 桶形移位寄存器 40 位加法器 / 减法器 两个目标累加器寄存器 舍入逻辑 ( 具有可选的模式 ) 饱和逻辑 ( 具有可选的模式 ) DSP 引擎的数据输入来自于以下来源 : 对于双源操作数 DSP 指令, 直接来自 W 阵列 ( 寄存器 W4 W5 W6 或 W7) W4 W5 W6 和 W7 寄存器的数据值通过 X 和 Y 存储区数据总线预取 对于所有其他 DSP 指令, 来自 X 存储区数据总线 DSP 引擎的数据输出写入以下目标之一 : 由所执行的 DSP 指令定义的目标累加器 到数据存储器地址空间中任意单元的 X 存储区数据总线 DSP 引擎能执行固有 不需要其他数据的累加器 - 累加器操作 MCU 移位和乘法指令使用 DSP 引擎硬件来获取它们的结果 在这些操作中,X 存储区数据总线用于数据读取和写入 图 2-8 给出了 DSP 引擎的框图 注 : 关于与本节相关的详细代码示例和指令语法, 请参见 16 位 MCU 和 DSC 程序员参考手册 (DS70157E_CN) DS70359B_CN 第 2-20 页 2011 Microchip Technology Inc.

21 第 2 章 CPU 图 2-8: DSP 引擎框图 位累加器 A 位累加器 B 饱和 舍入逻辑 饱和逻辑 16 加法器 取补 桶形移位寄存器 16 CPU 40 符号扩展 X 数据总线 Y 数据总线 补零 位 x 17 位 乘法器 / 定标器 16 位至 17 位转换 至 / 来自 W 阵列 2011 Microchip Technology Inc. DS70359B_CN 第 2-21 页

22 dspic33e/pic24e 系列参考手册 数据累加器 ( 仅限 dspic33e 器件 ) 两个 40 位数据累加器 ACCA 和 ACCB 是表 2-3 中列出的 DSP 指令的结果寄存器 每个累加器通过存储器映射到以下 3 个寄存器, 其中的 x 表示特定的累加器 : ACCxL:ACCx<15:0> ACCxH:ACCx<31:16> ACCxU:ACCx<39:32> 对于使用累加器的小数运算, 小数点位于 bit 31 右侧 可在每个累加器中存储的小数值的范围为 至 ( ) 对于使用累加器的整数运算, 小数点位于 bit 0 右侧 可在每个累加器中存储的整数值的范围为 -549,755,813,888 至 549,755,813, 乘法器 dspic33e/pic24e 具有一个由 MCU ALU 和 DSP 引擎共用的 17 位 x 17 位乘法器 该乘法器可以执行有符号 无符号或混合符号运算, 并支持 1.31 小数 (Q.31) 或 32 位整数结果 乘法器接受 16 位输入数据, 并会将数据转换为 17 位 乘法器的有符号操作数会进行符号扩展 无符号输入操作数则进行零扩展 因为数据在乘法器内部使用 17 位表示, 所以可以正确地执行混合符号和无符号的 16 位 x 16 位乘法运算 对于整数和小数乘法器模式, 数据在硬件中的表示方式如下 : 整型数据的固有表示形式为有符号的二进制补码值, 其中最高有效位 (Most Significant bit, MSb) 定义为符号位 一般来说, N 位二进制补码整数的范围为 -2 N-1 至 2 N-1 1 小数数据表示为二进制补码小数, 其中 MSb 定义为符号位, 小数点暗含在符号位之后 (Q.X 格式 ) 暗含小数点的 N 位二进制补码小数的范围为 -1.0 至 (1 2 1-N ) 表 2-2 列出了整数和小数模式下的数据范围 图 2-9 和图 2-10 说明了乘法器硬件在整数和小数模式下是如何解释数据的 整数或小数乘法器模式选择 (IF) 位 (CORCON<0>) 决定表 2-3 中列出的指令的整数 / 小数运算 IF 位不会影响表 2-4 中列出的 MCU 乘法指令, 这些指令总是执行整数运算 对于小数运算, 乘法器会将结果向左换算一位 结果的 LSb 总是清零 在器件复位时, 对于 DSP 运算, 乘法器默认设为小数模式 表 2-2: dspic33e/pic24e 数据范围 寄存器长度 整数范围 小数范围 小数分辨率 16 位 至 至 ( ) (Q.15 格式 ) x 位 -2,147,483,648 至 2,147,483, 位 -549,755,813,888 至 549,755,813, 至 ( ) (Q.31 格式 ) 至 ( ) ( 带有 8 个警戒位的 Q.31 格式 ) x x DS70359B_CN 第 2-22 页 2011 Microchip Technology Inc.

23 第 2 章 CPU 图 2-9: 0x4001 的整数和小数表示 0x4001 的不同表示 整数 : x4001 = = 小数 : 暗含小数点 CPU 0x4001 = = 图 2-10: 0xC002 的整数和小数表示 0xC002 的不同表示 整数 : xC002 = = = 小数 : 暗含小数点 0xC002 = = = Microchip Technology Inc. DS70359B_CN 第 2-23 页

24 dspic33e/pic24e 系列参考手册 DSP 乘法指令 ( 仅限 dspic33e 器件 ) 表 2-3 中汇总了使用乘法器的 DSP 指令 表 2-3: MAC 使用乘法器的 DSP 指令 DSP 乘法器无符号 / 有符号控制 (US) 位 (CORCON<13:12>) 决定 DSP 乘法指令是执行有符号 ( 默认 ) 无符号还是混合符号运算 US 位不会影响 MCU 乘法指令, 具有用于有符号或无符号运算的 MCU 乘法指令 如果 US 位设置为 01, 则表 2-3 中列出的指令的输入操作数会被视为无符号值, 无符号值总是进行零扩展, 扩展到乘法器值的第 17 位 如果 US 位设置为 00, 则操作数会进行符号扩展 如果 US 位 (CORCON<13:12>) 设置为 10, 则以上所列指令的操作数将根据 W 寄存器源而视为有符号或无符号值 如果 W 寄存器源为奇编号 (W5 或 W7), 则认为操作数为有符号 如果 W 寄存器源为偶编号, 则认为操作数为无符号 在使用累加器 ( 它总是有符号 ) 进行任何运算之前, 如果有一个操作数为有符号或两个操作数均为有符号, 则会对结果进行符号扩展, 否则对它进行零扩展 MCU 乘法指令 同一个乘法器还支持包括 16 位有符号 无符号和混合符号整数乘法的 MCU 乘法指令, 如表 2-4 中所示 由 MUL 指令执行的所有乘法运算均产生整数结果 MUL 指令可以使用字节或字长度的操作数 字节输入操作数将产生 16 位结果, 而字输入操作数将产生 16 位结果或 32 位结果, 结果存放在 W 阵列的指定寄存器中或累加器中 表 2-4: DSP 指令说明等价代数表达式 相乘并与累加器相加, 或者平方并与累加器相加 使用乘法器的 MCU 指令 a = a + b * c a = a + b 2 MSC 相乘再从累加器中减去 a = a b * c MPY 相乘 a = b * c MPY.N 相乘并将结果取负 a = -b * c ED 偏欧氏距离 a = (b c) 2 EDAC 将偏欧氏距离与累加器相加 a = a + (b c) 2 注 1: 使用乘法器的 DSP 指令可以工作于小数 (1.15) 或整数模式 MCU 指令 说明 MUL/MUL.UU 将两个无符号整数相乘, 产生 32 位结果 MUL.SS 将两个有符号整数相乘, 产生 32 位结果 MUL.SU/MUL.US 将一个有符号整数与一个无符号整数相乘, 产生 32 位结果 MULW.UU 将两个无符号整数相乘, 产生 16 位结果 MULW.SS 将两个有符号整数相乘, 产生 16 位结果 MULW.SU/MULW.US 将一个有符号整数与一个无符号整数相乘, 产生 16 位结果 注 1: 使用乘法器的 MCU 指令只能工作于整数模式 DS70359B_CN 第 2-24 页 2011 Microchip Technology Inc.

25 第 2 章 CPU 数据累加器加法器 / 减法器 数据累加器具有一个 40 位加法器 / 减法器, 该加法器 / 减法器带有用于乘法器结果的自动符号扩展逻辑 ( 如果有符号 ) 它可以选择两个累加器 (A 或 B) 之一作为其累加前的源累加器和累加后的目标累加器 对于 ADD ( 累加器 ) 和 LAC 指令, 可选择通过桶形移位寄存器在累加之前将要累加或装入的数据进行换算 40 位加法器 / 减法器可以选择将它的其中一个操作数输入取负, 以更改结果的符号 ( 不会改变操作数 ) 取负操作在相乘并相减 (MSC) 或相乘并取负 (MPY.N) 运算期间使用 40 位加法器 / 减法器有一个额外的饱和模块, 如果使能, 饱和模块将控制累加器的数据饱和 累加器状态位 支持饱和与溢出的 6 个状态寄存器位位于 CPU 状态寄存器 (SR) 中, 表 2-5 中列出了这些位 : 2 表 2-5: 累加器溢出和饱和状态位 状态位位置说明 OA SR<15> 累加器 A 溢出到警戒位 (ACCA<39:32>) OB SR<14> 累加器 B 溢出到警戒位 (ACCB<39:32>) CPU SA SR<13> ACCA 已饱和 (bit 31 溢出并饱和 ) 或 ACCA 溢出到警戒位并饱和 (bit 39 溢出并饱和 ) SB SR<12> ACCB 已饱和 (bit 31 溢出并饱和 ) 或 ACCB 溢出到警戒位并饱和 (bit 39 溢出并饱和 ) OAB SR<11> OA 和 OB 的逻辑或 清零 OAB 的同时也将清零 OA 和 OB SAB SR<10> SA 和 SB 的逻辑或 清零 SAB 的同时也将清零 SA 和 SB 每次数据经过累加器加法 / 减法逻辑时, 就会修改 OA 和 OB 位 置 1 时, 它们指示最近的操作已溢出到累加器警戒位 (bit 32 至 bit 39) 此类溢出不是灾难性溢出 ; 警戒位会保留累加器数据 OAB 状态位的值是 OA 和 OB 的逻辑或运算值 在 OA 和 OB 位置 1 时, 可以选择产生算术错误陷阱 使能该陷阱的方法是将中断控制器的中断控制寄存器 1 中相应的溢出陷阱允许位 OVATE 或 OVBTE(INTCON1<10> 或 <9>) 置 1 通过陷阱事件, 用户可以根据需要立即执行修正操作 每次数据经过累加器饱和逻辑时,SA 和 SB 位可能置 1 置 1 之后, 这两位会保持置 1, 直到用户应用程序将其清零 SAB 状态位指示 SA 和 SB 的逻辑或运算值 置 1 时, 这两位指示累加器已溢出其最大范围 ( 对于 32 位饱和是 bit 31, 而 40 位饱和是 bit 39), 将发生饱和 ( 如果饱和使能 ) 未使能饱和时,SA 和 SB 位指示发生了灾难性溢出 ( 累加器的符号被破坏 ) 如果灾难性溢出陷阱允许 (COVTE) 位 (INTCON1<8>) 置 1, 当饱和被禁止时, SA 和 SB 位将产生算术错误陷阱 SA 和 SB 位可以用软件置 1, 从而使能高效的现场状态切换 关于算术警告陷阱的更多信息, 请参见第 6 章 中断 (DS70600) 注 : 根据累加器饱和是否使能,SA SB 和 SAB 状态位具有不同的含义 累加器饱和模式通过 CORCON 寄存器进行控制 2011 Microchip Technology Inc. DS70359B_CN 第 2-25 页

26 dspic33e/pic24e 系列参考手册 饱和和溢出模式 dspic33e/pic24e CPU 支持三种饱和和溢出模式 累加器 bit 39 饱和 : 在该模式下, 饱和逻辑将最大的正 9.31 值 (0x7FFFFFFFFF) 或最小的负 9.31 值 (0x ) 装入目标累加器 SA 或 SB 位置 1 并保持置 1 直到被用户应用程序清零 该饱和模式对于扩展累加器的动态范围非常有用 要配置该饱和模式, 需要将累加器饱和模式选择 (ACCSAT) 位 (CORCON<4>) 置 1 此外, 需要将 ACCA 饱和使能 (SATA) 位 (CORCON<7>) 和 / 或 ACCB 饱和使能 (SATB) 位 (CORCON< 6>) 置 1, 以使能累加器饱和 累加器 bit 31 饱和 : 在该模式下, 饱和逻辑将最大的正 1.31 值 (0x007FFFFFFF) 或最小的负 1.31 值 (0xFF ) 装入目标累加器 SA 或 SB 位置 1 并保持置 1 直到被用户清零 当该饱和模式生效时, 除了对于累加器值的符号扩展之外, 将不使用警戒位 bit 32 至 bit 39 因此, SR 中的 OA OB 或 OAB 位永远不会置 1 要配置该溢出和饱和模式, 必须清零 ACCSAT (CORCON<4>) 位 此外, 必须将 SATA (CORCON<7>) 和 / 或 SATB (CORCON<6>) 位置 1, 以使能累加器饱和 累加器灾难性溢出 : 如果 SATA (CORCON<7>) 和 / 或 SATB (CORCON<6>) 位未置 1, 则不会对累加器执行任何饱和操作, 并且允许累加器一直溢出到 bit 39 ( 破坏它的符号 ) 如果灾难性溢出陷阱允许 (COVTE) 位 ( 中断控制器中的 INTCON1<8>) 置 1, 则灾难性溢出会产生算术错误陷阱 只有执行通过 40 位 DSP ALU 修改两个累加器之一的 DSP 指令时, 才会发生累加器饱和和溢出检测 通过 MCU 类指令将累加器作为存储器映射寄存器访问时, 不会发生饱和和溢出检测 此外, 表 2-5 中列出的累加器状态位不会被修改 但是,MCU 状态位 (Z N C OV 和 DC) 会被修改, 具体取决于访问累加器的 MCU 指令 关于算术错误陷阱的更多信息, 请参见第 6 章 中断 (DS70600) 数据空间写饱和 除了加法器 / 减法器饱和, 对数据空间进行写操作也会饱和, 而不会影响源累加器的内容 通过该功能可以对数据进行限制, 同时不会损害累加器在中间计算阶段期间的动态范围 使能数据空间写饱和的方法是将 DSP 引擎对数据空间写饱和使能 (SATDW) 控制位 (CORCON<5>) 置 1 默认情况下, 在器件复位时会使能数据空间写饱和 数据空间写饱和功能与 SAC 和 SAC.R 指令配合工作 执行这些指令时, 累加器中保存的值永远不会被修改 硬件通过执行以下步骤来获取饱和的写结果 : 1. 根据指令中指定的算术移位值对读取数据进行换算 2. 对换算数据进行舍入 ( 仅对于 SAC.R) 3. 根据警戒位的值将换算 / 舍入值饱和为 16 位结果 如果数据值大于 0x007FFF, 则写入存储器的数据达到饱和, 为最大的正 1.15 值 0x7FFF 如果输入数据小于 0xFF8000, 则写入存储器的数据达到饱和, 为最小的负 1.15 值 0x8000 DS70359B_CN 第 2-26 页 2011 Microchip Technology Inc.

27 第 2 章 CPU 累加器 回写 MAC 和 MSC 指令可以选择将非当前操作目标的累加器的舍入形式写入数据存储空间 通过 X 总线寻址组合的 X 和 Y 地址空间, 执行回写操作 这种累加器回写功能对于某些算法 ( 例如 FFT 和 LMS 滤波器 ) 非常有用 累加器回写硬件支持以下寻址模式 : W13, 寄存器直接寻址 : 非目标累加器的舍入内容以 1.15 小数结果形式写入 W13 [W13]+ = 2, 带后递增的寄存器间接寻址 : 非目标累加器的舍入内容以 1.15 小数形式写入 W13 指向的地址 然后 W13 递增 舍入逻辑 ( 仅限 dspic33e 器件 ) 舍入逻辑在累加器写 ( 存储 ) 过程中执行常规的 ( 有偏 ) 或收敛的 ( 无偏 ) 舍入功能 舍入模式由舍入模式选择 (RND) 位 (CORCON<1>) 的状态决定 它会产生一个 16 位的 1.15 数据值, 该值被送到数据空间写饱和逻辑 如果指令不指明舍入, 则会存储一个截取的 1.15 数据值 图 2-11 给出了两种舍入模式 常规舍入模式取累加器的 bit 15, 对它进行零扩展, 并将它与最高有效字 (most significant word, msw) 相加 ( 不包括警戒或溢出位 (bit 16 至 bit 31)) 如果累加器的最低有效字 (lsw) 在 0x8000 和 0xFFFF 之间 ( 包括 0x8000), 则 msw 递增 1 如果累加器的 lsw 在 0x0000 和 0x7FFF 之间, 则 msw 保持不变 此算法的结果是经过一系列随机舍入操作, 值会稍稍偏大 ( 正偏 ) 除非 lsw 等于 0x8000, 否则收敛的 ( 或无偏 ) 舍入操作方式与常规舍入相同 lsw 等于 0x8000 时, 要对 msw 的 LSb ( 累加器的 bit 16) 进行检测 如果它为 1, msw 递增 1 如果它为 0, msw 不变 假设 bit 16 本身是随机的, 这样的机制将消除任何可能累加的舍入偏差 通过 X 总线, SAC 和 SAC.R 指令将目标累加器内容的截取 (SAC) 或舍入 (SAC.R) 形式存储到数据存储器 ( 这受数据饱和的影响 ) 更多信息, 请参见第 节 数据空间写饱和 对于 MAC 类指令, 累加器回写数据路径总是会受舍入模式影响 2 CPU 2011 Microchip Technology Inc. DS70359B_CN 第 2-27 页

28 dspic33e/pic24e 系列参考手册 图 2-11: 常规和收敛舍入模式 常规 ( 有偏 ) 收敛 ( 无偏 ) msw XXX XXXX XXXX XXXX msw 以下情况时, 进行上舍入 (msw 加 1): lsw >= 0x8000 以下情况时, 进行上舍入 (msw 加 1): 1. lsw = 0x8000 且 bit 16 = 1 2. lsw > 0x8000 msw XXX XXXX XXXX XXXX msw 以下情况时, 进行下舍入 ( 不加任何值 ): lsw < 0x8000 以下情况时, 进行下舍入 ( 不加任何值 ): 1. lsw = 0x8000 且 bit 16 = 0 2. lsw < 0x 桶形移位寄存器 ( 仅限 dspic33e 器件 ) 桶形移位寄存器可在单个周期内将数据算术右移或左移最多 16 位 DSP 或 MSU 指令可以使用桶形移位寄存器进行多位移位 移位寄存器需要一个有符号二进制值, 用来确定移位操作的幅度 ( 位数 ) 和方向 : 正值将操作数右移 负值将操作数左移 值为 0 则不改变操作数桶形移位寄存器的宽度为 40 位, 以适应累加器的宽度 对于 DSP 移位操作, 提供 40 位的输出结果 ; 对于 MCU 移位操作, 提供 16 位的结果 表 2-6 汇总了使用桶形移位寄存器的指令 表 2-6: ASR LSR SL SAC SFTAC 指令 使用 DSP 引擎桶形移位寄存器的指令说明对数据存储单元进行算术多位右移 对数据存储单元进行逻辑多位右移 对数据存储单元进行多位左移 存储 DSP 累加器, 并可选择进行移位 移位 DSP 累加器 DSP 引擎模式选择 ( 仅限 dspic33e 器件 ) 前面几节中讨论的 DSP 引擎的这些工作特性可以通过 CPU 内核配置寄存器 (CORCON) 进行选择 : 小数或整数乘法运算 常规或收敛舍入 ACCA 自动饱和使能 / 禁止 ACCB 自动饱和使能 / 禁止 对于写数据存储器的自动饱和使能 / 禁止 累加器饱和模式选择 DSP 引擎陷阱事件 ( 仅限 dspic33e 器件 ) 为了处理 DSP 引擎中的异常, 可以产生算术错误陷阱, 它们通过中断控制寄存器 (INTCON1) 进行选择 它们是 : DS70359B_CN 第 2-28 页 2011 Microchip Technology Inc.

29 第 2 章 CPU ACCA 溢出陷阱允许, 使用 OVATE (INTCON1<10>) ACCB 溢出陷阱允许, 使用 OVBTE (INTCON1<9>) 灾难性 ACCA 和 / 或 ACCB 溢出陷阱允许, 使用 COVTE (INTCON1<8>) 陷阱的产生通过以下错误状态位进行指示 : OVAERR (INTCON1<14>) OVBERR (INTCON1<13>) COVAERR (INTCON1<12>) COVBERR (INTCON1<11>) 当用户应用程序尝试使用 SFTAC 指令将某个值移位为超出最大允许范围 (±16 位 ) 时, 也会产生算术错误陷阱 该陷阱源不能被禁止, 它通过移位累加器错误状态 (SFTACERR) 位 ( 中断控制器中的 INTCON1<7>) 进行指示 该指令仍将执行, 但移位的结果不会写入目标累加器 关于 INTCON1 寄存器中各位和算术错误陷阱的更多信息, 请参见第 6 章 中断 (DS70600) 2 CPU 2011 Microchip Technology Inc. DS70359B_CN 第 2-29 页

30 dspic33e/pic24e 系列参考手册 2.7 除法支持 dspic33e/pic24e 支持以下类型的除法运算 : DIVF:16/16 位有符号小数除法 ( 仅限 dspic33e 器件 ) DIV.SD:32/16 位有符号除法 DIV.UD:32/16 位无符号除法 DIV.SW:16/16 位有符号除法 DIV.UW:16/16 位无符号除法 所有除法指令的商都放在工作寄存器 W0 中, 余数放在 W1 中 16 位除数可以位于任意 W 寄存器中 16 位被除数可以位于任意 W 寄存器中, 32 位被除数必须位于一对相邻的 W 寄存器中 所有除法指令都是迭代运算, 必须在 REPEAT 循环内执行 18 次 开发人员需要负责编写 REPEAT 指令 完整的除法运算需要 19 个指令周期来执行 与任何其他 REPEAT 循环一样, 除法流可以被中断 在循环的每次迭代之后, 所有数据存储到相应的数据寄存器中, 因此用户应用程序需要负责在 ISR 中保存相应的 W 寄存器 虽然 W 寄存器中的中间值对于除法硬件非常重要, 但它们对于用户应用程序没有任何意义 除法指令必须在 REPEAT 循环中执行 18 次, 以产生有意义的结果 被零除错误会产生数学错误陷阱 该条件通过数学错误状态 (DIV0ERR) 位 ( 中断控制器中的 INTCON1<6>) 进行指示 关于除法指令的更多信息和编程示例, 请参见 16 位 MCU 和 DSC 程序员参考手册 (DS70157E_CN) DS70359B_CN 第 2-30 页 2011 Microchip Technology Inc.

31 第 2 章 CPU 2.8 指令流类型 dspic33e/pic24e 架构中的大多数指令占用程序存储器的一个字并在单个周期内执行 指令预取机制方便了单周期 (1 TCY) 执行 但是, 某些指令的执行需要 2 个或更多个指令周期 因此, dspic DSC 架构中有 7 种不同类型的指令流 本节将对这些指令流进行说明 个指令字, 1 个指令周期 执行这些指令需要一个指令周期, 如图 2-12 所示 大多数指令是单字单周期指令 图 2-12: 指令流 单字单周期 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 1. MOV #0x55AA,W0 取指 1 执行 1 2. MOV W0,PORTA 取指 2 执行 2 3. MOV W0,PORTB 取指 3 执行 个指令字, 2 个指令周期 在这些指令中, 没有预取清除 这一类型的指令只有 MOV.D 指令 ( 装入和存储双字 ) SFR 读取和 SFR 位操作 完成这些指令需要两个周期, 如图 2-13 所示 CPU 图 2-13: 指令流 单字双周期 (MOV.D 操作 ) TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 TCY7 TCY8 1. MOV #0x1234,W2 取指 1 执行 1 取指 2 执行 2 R/W 周期 1 2. MOV.D [W0++],W4 执行 2 R/W 周期 2 3. MOV #0x00AA,W1 取指 3 不取指执行 3 4. MOV #0x00CC,W0 取指 4 不取指执行 4 图 2-14: 指令流 ( 程序流改变 ) 个指令字, 2 或 4 个指令周期 ( 程序流改变 ) 这些指令包括相对调用和跳转指令 当指令改变 PC ( 除了递增以外 ) 时, 程序存储器预取数据必须被丢弃 这使指令执行需要 4 个有效周期, 如图 2-14 所示 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 TCY7 TCY8 TCY9 1. ADD.B PORTA 取指 1 执行 1 2. BRA SUB_1 取指 2 执行 2 3. ADD.B PORTB 取指 3 清除 4. CLR W0 取指 4 清除 5. address SUB_1 取指 5 执行 Microchip Technology Inc. DS70359B_CN 第 2-31 页

32 dspic33e/pic24e 系列参考手册 表读 / 写指令 图 2-15: 指令流 ( 表操作 ) 这些指令将暂停取指令, 向程序存储器中插入读或写周期 执行表操作时所取的指令将被保存一个周期, 在紧接该表操作的下一个周期执行, 如图 2-15 所示 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 TCY7 TCY8 TCY9 TCY10 1. MOV #0x1234,W2 取指 1 执行 1 2. TBLRDL.w[W0++], W1 取指 2 执行 2 3. MOV #0x00AA,W1 取指 3 执行 个指令字, 4 个指令周期 GOTO 或 CALL 在这些指令中, 指令后的取指包含数据 这会产生一条 4 周期指令, 如图 2-16 所示 如果 CPU 只取了双字指令的第 2 个字而未取第 1 个字, 则第 2 个字将被编码以作为 NOP 执行 这在双字指令被跳过指令跳过时很重要 ( 见图 2-16) 图 2-16: 指令流 (GOTO 或 CALL) TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 TCY7 TCY8 TCY9 1. MOV #0x55AA,W0 取指 1 执行 1 2. GOTO LABEL 取指 2a 执行 2 取指 2b 3. MOV #0x1111,W2 取指 3 清除 4. address 取指 4 执行 个指令字, 2 个指令周期 DO 在该指令中, 指令之后取指操作中包含一个地址偏移量 该地址偏移量将与第一个指令地址相加, 以生成最后的循环指令地址 图 2-17: 指令流 (DO) TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 TCY7 TCY8 1. MOV W0,W1 取指 1 执行 1 2. DO #COUNT, OFFSET 取指 2a 执行 2 取指 2b 3. First Inst. of loop 取指 3 执行 3 DS70359B_CN 第 2-32 页 2011 Microchip Technology Inc.

33 第 2 章 CPU 地址寄存器相依性 由于 X 数据空间的读写操作之间存在数据地址的相依性, 这些指令会遭遇停顿 为了解决这种资源冲突, 插入了一个额外的周期, 这在第 2.10 节 地址寄存器相依性 中进行了讨论 图 2-18: 指令流水线流程 单字单周期 ( 带指令停顿 ) TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 TCY7 1. MOV W0,W1 取指 1 执行 1 2. MOV [W1],W4 取指 2 执行 2 3. MOV W4, LATB 取指 3 停顿执行 中断处理 关于中断处理的指令流水线流程的详细信息, 请参见第 6 章 中断 (DS70600) CPU 2011 Microchip Technology Inc. DS70359B_CN 第 2-33 页

34 dspic33e/pic24e 系列参考手册 2.9 循环结构 dspic33e/pic24e 支持 REPEAT 和 DO 指令结构, 以提供无条件自动程序循环控制 REPEAT 指令用于实现单指令程序循环 DO 指令用于实现多指令程序循环 这两条指令使用 CPU 状态寄存器 (SR) 内的控制位来临时修改 CPU 操作 REPEAT 循环结构 REPEAT 指令会使紧随其后的指令重复执行指定次数 可以使用指令中包含的立即数值或某个 W 寄存器中的值来指定 REPEAT 计数值 W 寄存器选项可使循环计数为软件变量 REPEAT 循环中的指令至少执行一次 REPEAT 循环的迭代次数是 15 位立即数值 + 1 或 Wn + 1 REPEAT 指令的两种语法形式如下所示 : 或 REPEAT #lit15 ; RCOUNT <-- lit15 ( 有效目标指令 ) REPEAT Wn ( 有效目标指令 ) REPEAT 操作 ; RCOUNT <-- Wn REPEAT 操作的循环计数保存在 16 位 REPEAT 循环计数器寄存器 (RCOUNT) 中, 该寄存器是存储器映射的 RCOUNT 由 REPEAT 指令初始化 如果 RCOUNT 为非零值, REPEAT 指令将 REPEAT 循环活动 (RA) 状态位 (SR<4>) 设置为 1 RA 是只读位, 不能用软件修改 REPEAT 循环计数值大于 0 时, 程序计数器不会递增 而且, 程序计数器递增被禁止直到 RCOUNT = 0 关于 REPEAT 循环的指令流示例, 请参见图 2-19 对于等于 0 的循环计数值,REPEAT 的作用相当于 NOP, 并且 RA(SR<4>) 位不置 1 REPEAT 循环在开始执行前实际上是被禁止的, 这样可以在预取后续指令时 ( 即在正常的执行流中 ) 让目标指令只执行一次 注 : 紧随 REPEAT 指令之后的指令 ( 即目标指令 ) 总是至少执行一次, 该指令的执行次数总是会比 15 位立即数或 W 寄存器操作数指定的值多一次 图 2-19: REPEAT 指令流水线流程 TCY0 TCY1 TCY2 TCY3 TCY4 TCY5 TCY6 TCY7 TCY8 TCY9 TCY10 1. REPEAT #0x2 取指 1 执行 1 2. MAC W4*W5,A,[W8]+=2,W4 取指 2 执行 2 3. BSET PORTA,#3 执行 2 执行 2 取指 3 执行 3 PC ( 指令结束时 ) PC PC+2 PC+2 PC+2 PC+4 PC+4 PC+4 RCOUNT ( 指令结束时 ) X RA ( 指令结束时 ) 注 : 重复相同指令产生的结果是, 由于闪存延时的原因, 即使所重复指令执行的是 PSV 读操作, 第一次和最后一次迭代也分别需要 5 个 TCY 和 6 个 TCY 所有其他迭代的有效吞吐量则为每周期一条指令 但是, 这种数据流水线仅限于某些寻址模式 : 后递增或后递减 1 或 2 DS70359B_CN 第 2-34 页 2011 Microchip Technology Inc.

35 第 2 章 CPU 中断 REPEAT 循环 REPEAT 指令循环可在任何时候被中断 在异常处理期间, RA 位的状态保存在堆栈中以便让用户应用程序在任何数量的嵌套中断中进一步执行更多的 REPEAT 循环 SRL 压入堆栈后,RA 状态位被清零以便从 ISR 内部恢复正常执行流程 注 : 如果 REPEAT 循环被中断且正在处理 ISR, 则用户应用程序在 ISR 内部执行另一条 REPEAT 指令前, 必须先将 REPEAT 计数寄存器 (RCOUNT) 压入堆栈 如果在 ISR 内部使用 REPEAT 指令, 则用户应用程序在执行 RETFIE 指令前必须先将 RCOUNT 寄存器的值弹出堆栈 使用 RETFIE 指令从 ISR 返回 REPEAT 循环不需要任何特殊处理 中断会在 RETFIE 指令的第 5 个周期预取要重复的指令 当 SRL 寄存器被弹出堆栈时, 压入堆栈的 RA 位将会恢复, 此时如果它置 1, 那么中断的 REPEAT 循环将会恢复 REPEAT 循环的提前终止 通过用软件将 RCOUNT 寄存器清零, 可以在 ISR 中比正常情况提前终止中断的 REPEAT 循环 REPEAT 指令的限制 除了以下指令外, 任何其他指令均可紧随 REPEAT 之后 : 程序流控制指令 ( 任何跳转 比较和跳过 子程序调用以及返回等指令 ) 另一条 REPEAT 或 DO 指令 DISI ULNK LNK PWRSAV 或 RESET 指令 MOV.D 指令 CPU 注 : 一些指令和 / 或指令寻址模式可以在 REPEAT 循环内执行, 但不一定重复执行所有指令都有意义 DO 循环结构 ( 仅限 dspic33e 器件 ) DO 指令可以对其后跟随的一组指令执行指定的次数, 无需软件开销 直到结束地址并包含结束地址在内的一组指令会被重复执行 DO 指令的重复计数值可以通过一个 15 位立即数值 + 1 或通过在指令中声明的 W 寄存器的内容 + 1 进行指定 DO 指令的 15 位立即数形式的语法如下所示 : DO #lit15,loop_end ; DCOUNT <-- lit15 Instruction1 Instruction2 : : LOOP_END: Instruction n DO 指令的 W 寄存器声明形式的语法如下所示 : DO Wn,LOOP_END ; DCOUNT <-- Wn<15:0> Instruction1 Instruction2 : : LOOP_END: Instruction n 2011 Microchip Technology Inc. DS70359B_CN 第 2-35 页

36 dspic33e/pic24e 系列参考手册 DO 循环结构具有以下特性 : DO 循环的第一条指令不能为 PSV 读或表读 可以使用 W 寄存器来指定循环计数, 从而可以在运行时定义循环计数 指令执行顺序不必是顺序的 ( 即, 可以存在跳转和子程序调用等 ) 循环结束地址不必大于起始地址 DO 循环寄存器和操作 DO 循环执行的迭代数为 15 位立即数值 + 1, 或者是 Wn 值 + 1 如果使用 W 寄存器来指定迭代数, 则高 2 位不用于指定循环计数 DO 循环的操作类似于 C 编程语言中的 DO-WHILE 结构, 因为循环中的指令总是至少执行一次 dspic33e/pic24e 具有 3 个与 DO 循环相关的寄存器 : DO 循环起始地址 (DOSTART) 寄存器用于保存 DO 循环的起始地址 它是一个 22 位寄存器 DO 循环结束地址 (DOEND) 寄存器用于保存 DO 循环的结束地址 它是一个 22 位寄存器 DO 循环计数器 (DCOUNT) 寄存器用于保存要由循环执行的迭代数 它是一个 16 位寄存器 这些寄存器是存储器映射的, 并在执行 DO 指令时由硬件自动装入 这些寄存器的 MSb 和 LSb 固定为 0 LSb 不存储在这些寄存器中, 因为 PC<0> 总是强制为 0 DO 循环活动 (DA) 状态位 (SR<9>) 指示单个 DO 循环 ( 或嵌套的 DO 循环 ) 正处于有效状态 执行 DO 指令时,DA 位会置 1, 这将允许在每个后续指令周期将 PC 地址与 DOEND 寄存器进行比较 当 PC 与 DOEND 中的值匹配时, DCOUNT 递减 1 如果 DCOUNT 寄存器不为零, 则 PC 中会装入 DOSTART 寄存器中包含的地址, 以启动 DO 循环的另一次迭代 当 DCOUNT 变为零时, DO 循环终止 如果没有任何其他嵌套 DO 循环正在进行, 则 DA 位也会清零 DO 循环可以在任意时刻被中断 注 : DO 循环嵌套 DOSTART DOEND 和 DCOUNT 寄存器各具有关联的硬件堆栈, 使 DO 循环硬件可以支持最多 3 层嵌套 DO 循环嵌套层级 (DL<2:0>) 状态位 (CORCON<10:8>) 指示当前正在执行的 DO 循环的嵌套层级 执行第一条 DO 指令时,DL<2:0> 会设置为 b001, 指示正在执行一层 DO 循环 DO 循环活动 (DA) 位 (SR<9>) 也将置 1 当执行第一个 DO 循环中的另一条 DO 指令时, 在 DOSTART DOEND 和 DCOUNT 寄存器更新为新的循环值之前, 它们的值会被传送到 DO 堆栈中 DL<2:0> 位会设置为 b010, 指示正在执行第二个 嵌套的 DO 循环 DA (SR<9>) 位也会保持置 1 对于后续的嵌套 DO 循环将会重复这一操作 当 DO 循环终止时, 会自动从 DO 堆栈中恢复 DOSTART DOEND 和 DCOUNT 寄存器 注 : DO 循环结构中的指令组总是至少执行一次 DO 循环的执行次数总是比立即数或 W 寄存器操作数中指定的值多一次 DL<2:0> (CORCON<10:8>) 位组合 ( 逻辑或运算 ) 构成 DA (SR<9>) 位 如果正在执行嵌套的 DO 循环, 则只有与最外层循环关联的循环计数结束时 DA 位才会清零 DS70359B_CN 第 2-36 页 2011 Microchip Technology Inc.

37 第 2 章 CPU DO 堆栈 DO 堆栈用于在遇到另一个 DO 循环 ( 即, 嵌套 DO 循环 ) 时保存与正在进行的 DO 循环相关联的以下元素 DOSTART 寄存器值 DOEND 寄存器值 DCOUNT 寄存器值 第一条循环指令 第二条循环指令, 或第一条循环指令的第二个字 ( 如果它是一条双字指令 ) 请注意, DO 嵌套层级状态位域 (DL<2:0>) 也可用作指针来寻址 DO 堆栈 执行 DO 之后, DL<2:0> 会指向下一个可用堆栈单元 第一条 DO 指令在执行时不使用堆栈 ( 实际上不填充堆栈 ) 后续 DO 指令会开始填充 DO 堆栈, 直到填充了 3 个堆栈单元为止 此时, 在执行最后一条 DO 指令之后,DL<2:0> = 4, 指示正在执行第一条 DO 循环加上 3 个嵌套 DO 循环 此时将无法嵌套更多的 DO 循环 如果用户尝试在 DL<2:0> = 4 时另外嵌套一个 DO 循环 ( 在指令开始处, 在 DO 嵌套层级递增之前 ), DO 堆栈溢出位 DO_OVR (INTCON3<4>) 将置 1, 并且会产生通用软陷阱 图 2-20 给出了 DO 堆栈的概念表示图 2 CPU 图 2-20: DO 堆栈概念图 DL<2:0> DOSTART DOEND DCOUNT 循环中奇指令操作 循环中偶指令操作 000 空 嵌套层级 1 寄存器 嵌套层级 2 寄存器 嵌套层级 3 寄存器 嵌套层级 1 操作嵌套层级 2 操作嵌套层级 3 操作嵌套层级 4 操作 注 1: 对于 DO 寄存器单元, DL<2:0> 代表在执行 DO 堆栈之前的值 2: 对于 DO 指令缓冲区单元, DL<2:0> 代表在执行 DO 堆栈之后的值 3: 如果 DL<2:0> = 0, 则表示不存在任何处于有效状态的 DO 循环 (DA = 0) DO 循环的提前终止有两种方式可以早于正常情况而提前终止 DO 循环 : 通过 DO 循环提前终止控制 (EDT) 位 (CORCON<11>), 用户应用程序可以在 DO 循环完成所有循环之前终止循环 向 EDT 位写入 1 可以强制循环完成正在进行的迭代, 然后终止 如果在循环的倒数第二条指令或最后一条指令期间 EDT 置 1, 则会再执行一次循环的迭代 EDT 总是读为 0 ; 将它清零不起任何作用 在 EDT 位置 1 之后, 用户可以选择跳出 DO 循环 或者, 代码可以从除最后两条指令之外的任何其他点跳出循环 ( 最后两条指令不能是流控制指令 ) 虽然 DA (SR<9>) 位使能 DO 循环硬件, 但除非在指令预取期间遇到倒数第二条指令的地址, 否则它不起任何作用 建议不要使用这种方法来终止 DO 循环 注 : 建议不要在不使用 EDT 的情况下退出 DO 循环, 因为硬件将会继续检查 DOEND 地址 2011 Microchip Technology Inc. DS70359B_CN 第 2-37 页

38 dspic33e/pic24e 系列参考手册 DO 循环的限制 使用 DO 循环存在一些限制, 例如 : 何时可以读取 DOEND 寄存器 禁止将某些指令用作循环的最后两条指令 某些小循环长度是不允许的 ( 循环长度指在循环中重复执行的指令块的长度 ) DOEND 寄存器的限制 所有 DO 循环都必须至少包含两条指令, 因为循环终止测试是在倒数第二条指令处执行 对于只包含一条指令的循环, 应使用 REPEAT 在紧随 DO 指令或对 DOEND SFR 的文件寄存器写操作之后的指令中, 用户软件不能读取特殊功能寄存器 DOEND DO 循环中倒数第二条指令之前的指令不应修改 : 由 CPU 中断优先级 (IPL) 状态位 (SR<7:5>) 控制的 CPU 优先级 由中断允许控制寄存器 IECn 控制的外设中断允许位 由中断优先级控制寄存器 IPCn 控制的外设中断优先级位 如果未遵循这些限制, DO 循环可能无法正确执行 第一条指令的限制 PSV 或表读不能为循环中的第一条指令 最后两条指令的限制 DO 循环的最后两条指令不应为以下任一指令 : 流控制指令 ( 例如, 任何跳转 比较和跳过 GOTO CALL RCALL 以及 TRAP 指令 ) 另一条 REPEAT 或 DO 指令 REPEAT 循环中的目标指令 该限制意味着倒数第二条指令也不能为 REPEAT 在程序空间中占用两个字的任何指令 DISI 指令 RETURN RETFIE 和 RETLW 可以作为 DO 循环的最后两条指令之一正确工作, 但用户应用程序需要负责返回到循环来完成循环 循环长度限制 循环长度定义为 DO 循环中最后一条指令相对于第一条指令的有符号偏移 循环长度与循环中第一条指令的地址相加时, 就会构成循环最后一条指令的地址 例如, 循环长度为 1 意味着循环是一个单指令循环 循环长度不得为 -1 0 或 1 DS70359B_CN 第 2-38 页 2011 Microchip Technology Inc.

39 第 2 章 CPU 2.10 地址寄存器相依性 dspic33e/pic24e 架构支持大多数 MCU 类指令的数据空间读 ( 源 ) 和数据空间写 ( 目标 ) 操作 AGU 进行的 EA 计算和后续数据空间读或写, 每个操作都需要一个指令周期来完成 该时序导致每条指令的数据空间读和写操作部分重叠, 如图 2-21 所示 由于这一重叠, 先写后读 (Read-After-Write,RAW) 数据相依性可能会在指令边界处发生 RAW 数据相依性在运行时由 dspic33e/pic24e CPU 检测并处理 图 2-21: 数据空间访问时序 1 个指令周期 (TCY) ADD MOV W0, [W7], [W10] [W8], [W9++] 2 TCY0 TCY1 TCY2 TCY3 指令寄存器内容 ADD MOV CPU X 空间 RAGU [W7] [W8] X 空间 WAGU [W10] [W9]++ X 空间地址 W7 W10 W8 W 先写后读相依性规则 如果 W 寄存器在当前指令中被用作写操作目标寄存器, 并且所预取到指令读取的也是同一个 W 寄存器, 则适用以下规则 : 如果对目标寄存器的写入 ( 当前指令 ) 不修改 Wn 的内容, 则不发生停顿 如果对源寄存器的读取 ( 预取指令 ) 不使用 Wn 计算 EA, 则不发生停顿 在每个指令周期中,dsPIC33E/PIC24E 硬件会自动检查以确定是否将发生 RAW 数据相依性 如果不满足上述条件,CPU 会在执行预取指令前自动增加一个指令周期的延时 指令停顿使目标 W 寄存器有足够的时间先执行写入, 再让下一条 ( 预取的 ) 指令使用写入的数据 表 2-7 提供了先写后读相依性的汇总 2011 Microchip Technology Inc. DS70359B_CN 第 2-39 页

40 dspic33e/pic24e 系列参考手册 表 2-7: 使用 Wn 的目标寻址模式 先写后读相依性汇总 指令停顿周期 使用 Wn 的源寻址模式 指令停顿实际上是加在指令读阶段前的一个指令周期的等待时间, 以便让前面的写操作先完成再发生下一个读操作 为了达到中断延时的目的, 停顿周期与检测到它的指令后的那条指令是关联的 ( 即停顿周期总是在指令执行周期之前 ) 如果检测到 RAW 数据相依性,dsPIC33E/PIC24E 将开始指令停顿周期 在指令停顿期间, 会发生以下事件 : 正在进行的 ( 上一条指令的 ) 写操作可以正常完成 在指令停顿周期结束前不会寻址数据空间 在指令停顿周期结束前禁止 PC 递增 在指令停顿周期结束前禁止再次取指 指令停顿周期和中断 当会造成指令停顿的两条相邻指令与中断事件同时发生时, 可能会产生以下两个结果之一 : 如果中断与第一条指令同时发生, 则允许第一条指令完成, 而第二条指令将在 ISR 完成后执行 在这种情况下, 由于异常处理为第一条指令提供了完成写阶段的时间, 停顿周期将在第二条指令中被消除 如果中断与第二条指令同时发生, 则允许第二条指令和附加的停顿周期在 ISR 前执行 在这种情况下, 与第二条指令关联的停顿周期会正常执行 但是, 停顿周期实际上会被嵌入到异常处理时序内 异常处理将会继续进行, 如同普通的双周期指令被中断一样 状态 示例 (Wn = W2) 直接寻址 直接寻址 允许 ADD.w W0, W1, W2 MOV.w W2, W3 直接寻址 间接寻址 停顿 ADD.w W0, W1, W2 MOV.w [W2], W3 直接寻址 带有修改的间接寻址停顿 ADD.w W0, W1, W2 MOV.w [W2++], W3 间接寻址 直接寻址 允许 ADD.w W0, W1, [W2] MOV.w W2, W3 间接寻址 间接寻址 允许 ADD.w W0, W1, [W2] MOV.w [W2], W3 间接寻址 带有修改的间接寻址允许 ADD.w W0, W1, [W2] MOV.w [W2++], W3 带有修改的间接寻址 直接寻址 允许 ADD.w W0, W1, [W2++] MOV.w W2, W3 间接寻址 间接寻址 停顿 ADD.w W0, W1, [W2] MOV.w [W2], W3 ; W2=0x0004 (mapped W2) 间接寻址 带有修改的间接寻址停顿 ADD.w W0, W1, [W2] MOV.w [W2++], W3 ; W2=0x0004 (mapped W2) 带有修改的间接寻址 间接寻址 停顿 ADD.w W0, W1, [W2++] MOV.w [W2], W3 带有修改的间接寻址 带有修改的间接寻址停顿 ADD.w W0, W1, [W2++] MOV.w [W2++], W3 DS70359B_CN 第 2-40 页 2011 Microchip Technology Inc.

41 第 2 章 CPU 指令停顿周期和流改变指令 CALL 和 RCALL 指令使用工作寄存器 W15 写入堆栈, 并且如果下一条指令的源读取使用 W15, 可能会因此在下一条指令前强制执行指令停顿 RETFIE 和 RETURN 指令永远不能在下一条指令前强制指令停顿, 因为它们只能执行读操作 但是, RETLW 指令能强制执行停顿, 因为它会在最后一个周期写入 W 寄存器 由于 GOTO 和跳转指令不执行写操作, 因此永远不能强制执行指令停顿 指令停顿以及 DO 和 REPEAT 循环 除了增加指令停顿周期外, RAW 数据相依性不会影响 DO 或 REPEAT 循环的操作 REPEAT 循环中预取的指令在循环完成或发生异常前不会改变 虽然寄存器相依性检查会跨指令边界进行, 在 REPEAT 循环中 dspic33e/pic24e 实际上会比较同一条指令的源和目标地址 DO 循环的最后一条指令将预取循环起始地址处的指令或下一条指令 ( 循环外部 ) 指令停顿决定将基于循环中的最后一条指令和预取指令的内容 指令停顿和程序空间可视性 (PSV) 将程序空间 (Program Space,PS) 映射到数据空间, 并且 X 空间 EA 处于可视的程序空间窗口中时, 读或写周期会被重定向到程序空间中的地址 通常, 从程序空间中访问数据的所有指令都需要 5 个指令周期, 因此会产生一次停顿来确保数据可用 PSV 地址空间中的指令操作与任何其他指令一样, 会受到 RAW 数据相依性和所造成指令停顿的影响 在例 2-6 中, 指令序列将需要 7 个指令周期来执行 通过 W1 进行 PSV 访问需要 5 个指令周期, 同时插入一个额外周期来解决由 W2 导致的 RAW 数据相依性 CPU 例 2-6: ADD W0,[W1],[W2++] ; W1=0x8000, PSVPAG=0xAA, DSRPAG=0x0200 MOV[W2], [W3] 2.11 数据空间仲裁停顿 扩展数据空间资源竞争也会产生 CPU 停顿 当数据空间仲裁逻辑确定必须停顿 CPU 周期, 以允许其他总线主器件 ( 例如, DMA 控制器或 USB 模块 ) 访问数据存储器时, 指令执行会被暂停, 直到优先级较高的总线主器件完成数据访问为止 2011 Microchip Technology Inc. DS70359B_CN 第 2-41 页

42 DS70359B_CN 第 2-42 页 2011 Microchip Technology Inc 寄存器映射 表 2-8 中提供了与 dspic33e/pic24e CPU 相关的寄存器汇总 表 2-8: dspic33e/pic24e CPU 寄存器映射 名称 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位时的状态 W0 W0 (WREG) W1 W W2 W W3 W W4 W W5 W W6 W W7 W W8 W W9 W W10 W W11 W W12 W W13 W W14 W W15 W SPLIM SPLIM ACCAL ACCAL ACCAH ACCAH ACCAU ACCA<39> 的符号扩展 ACCAU ACCBL ACCBL ACCBH ACCBH ACCBU ACCB<39> 的符号扩展 ACCBU PCL PCL PCH PCH DSRPAG DSRPAG DSWPAG DSWPAG RCOUNT RCOUNT xxxx xxxx xxxx xxxx DCOUNT DCOUNT xxxx xxxx xxxx xxxx DOSTARTL DOSTARTL 0 xxxx xxxx xxxx xxx0 DOSTARTH DOSTARTH xx xxxx DOENDL DOENDL 0 xxxx xxxx xxxx xxx0 图注 : x = 复位时的未知值, = 未实现, 读为 0 复位值以十六进制显示 注 : 关于具体的内核寄存器映射详细信息, 请参见器件数据手册 dspic33e/pic24e 系列参考手册

43 2011 Microchip Technology Inc. DS70359B_CN 第 2-43 页 表 2-8: dspic33e/pic24e CPU 寄存器映射 ( 续 ) 名称 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位时的状态 DOENDH DOENDH xx xxxx SR OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C CORCON US<1:0> EDT DL<2:0> SATA SATB SATDW ACCSAT IPL3 SFA RND IF MODCON XMODEN YMODEN BWM<3:0> YWM<3:0> XWM<3:0> XMODSRT XMODSRT<15:0> 0 xxxx xxxx xxxx xxx0 XMODEND XMODEND<15:0> 1 xxxx xxxx xxxx xxx1 YMODSRT YMODSRT<15:0> 0 xxxx xxxx xxxx xxx0 YMODEND YMODEND<15:0> 1 xxxx xxxx xxxx xxx1 XBREV BREN XBREV<14:0> xxxx xxxx xxxx xxxx DISICNT DISICNT<13:0> TBLPAG TBLPAG<7:0> MSTRPR MSTRPR<15:0> 图注 : x = 复位时的未知值, = 未实现, 读为 0 复位值以十六进制显示 注 : 关于具体的内核寄存器映射详细信息, 请参见器件数据手册 第 2 章 CPU CPU 2

44 dspic33e/pic24e 系列参考手册 2.13 相关应用笔记 本节列出了与手册本章内容相关的应用笔记 这些应用笔记可能并不是专为 dspic33e/pic24e 产品系列而编写的, 但其概念是相近的, 通过适当修改并受到一定限制即可使用 当前与 dspic33e/pic24e CPU 相关的应用笔记有 : 标题目前没有相关的应用笔记 应用笔记编号 注 : 如需获取更多 dspic33e/pic24e 系列器件的应用笔记和代码示例, 请访问 Microchip 网站 ( DS70359B_CN 第 2-44 页 2011 Microchip Technology Inc.

45 第 2 章 CPU 2.14 版本历史 版本 A (2008 年 11 月 ) 这是本文档的初始版本 版本 B (2010 年 5 月 ) 该版本包括以下更改 : 更新了文档以包含对 PIC24E 器件的引用 更新了以下章节的标题以指示内容仅适用于 dspic33e 器件 : - 第 节 DSP 引擎和指令 ( 仅限 dspic33e 器件 ) - 第 节 数据累加器 ( 仅限 dspic33e 器件 ) - 第 节 DSP 乘法指令 ( 仅限 dspic33e 器件 ) - 第 节 舍入逻辑 ( 仅限 dspic33e 器件 ) - 第 节 桶形移位寄存器 ( 仅限 dspic33e 器件 ) - 第 节 DSP 引擎模式选择 ( 仅限 dspic33e 器件 ) - 第 节 DSP 引擎陷阱事件 ( 仅限 dspic33e 器件 ) - 第 节 DO 循环结构 ( 仅限 dspic33e 器件 ) 在表 2-1 的编程模型寄存器说明中增加了 注 1 更新了图 2-2 中的编程模型 在第 节 堆栈指针上溢 的第一条阴影注释中, 新增了关于堆栈错误陷阱其他原因的一句话 在 CPU 状态寄存器中增加了新的 注 1 和 注 2 ( 见寄存器 2-1); 原有的 注 1 和 注 2 重新编号为 注 3 和 注 4 在内核控制寄存器中增加了新的 注 2 ( 见寄存器 2-2); 原有的 注 2 重新编号为 注 3 删除了 注 2, 并在 使用乘法器的 MCU 指令 中增加了 3 行 ( 见表 2-4) 更新了图 2-13 中的第二条 MOV.D 指令 更新了图 2-15 中的第三条指令 更新了图 2-16 中的第四条指令 更新了图 2-18 中的第二条和第三条指令 更新了图 2-19 中的第二条和第三条指令 更新了第 节 REPEAT 操作 中的第二条阴影注释 更新了第 节 DO 循环结构 ( 仅限 dspic33e 器件 ) 中第一段的最后一句 更新了图 2-21 中的 MOV 指令 更新了第 节 指令停顿和程序空间可视性 (PSV) 中第一段的第一句 更新了第 节 指令停顿和程序空间可视性 (PSV) 的最后一段 在 CPU 寄存器映射中, 更改了 DOSTARTH DOENDH 和 MSTRPR SFR 中可用位的范围 ( 见表 2-8) 对整篇文档进行了其他少量格式更新 2 CPU 2011 Microchip Technology Inc. DS70359B_CN 第 2-45 页

46 dspic33e/pic24e 系列参考手册 注 : DS70359B_CN 第 2-46 页 2011 Microchip Technology Inc.

47 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏代码保护功能的行为 就我们所知, 所有这些行为都不是以 Microchip 数据手册中规定的操作规范来使用 Microchip 产品的 这样做的人极可能侵犯了知识产权 Microchip 愿与那些注重代码完整性的客户合作 Microchip 或任何其他半导体厂商均无法保证其代码的安全性 代码保护并不意味着我们保证产品是 牢不可破 的 代码保护功能处于持续发展中 Microchip 承诺将不断改进产品的代码保护功能 任何试图破坏 Microchip 代码保护功能的行为均可视为违反了 数字器件千年版权法案 (Digital Millennium Copyright Act) 如果这种行为导致他人在未经授权的情况下, 能访问您的软件或其他受版权保护的成果, 您有权依据该法案提起诉讼, 从而制止这种行为 提供本文档的中文版本仅为了便于理解 请勿忽视文档中包含的英文部分, 因为其中提供了有关 Microchip 产品性能和使用情况的有用信息 Microchip Technology Inc. 及其分公司和相关公司 各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任 建议参考 Microchip Technology Inc. 的英文原版文档 本出版物中所述的器件应用信息及其他类似内容仅为您提供便利, 它们可能由更新之信息所替代 确保应用符合技术规范, 是您自身应负的责任 Microchip 对这些信息不作任何明示或暗示 书面或口头 法定或其他形式的声明或担保, 包括但不限于针对其使用情况 质量 性能 适销性或特定用途的适用性的声明或担保 Microchip 对因这些信息及使用这些信息而引起的后果不承担任何责任 如果将 Microchip 器件用于生命维持和 / 或生命安全应用, 一切风险由买方自负 买方同意在由此引发任何一切伤害 索赔 诉讼或费用时, 会维护和保障 Microchip 免于承担法律责任, 并加以赔偿 在 Microchip 知识产权保护下, 不得暗中或以其他方式转让任何许可证 商标 Microchip 的名称和徽标组合 Microchip 徽标 dspic KEELOQ KEELOQ 徽标 MPLAB PIC PICmicro PICSTART PIC 32 徽标 rfpic 和 UNI/O 均为 Microchip Technology Inc. 在美国和其他国家或地区的注册商标 FilterLab Hampshire HI-TECH C Linear Active Thermistor MXDEV MXLAB SEEVAL 和 The Embedded Control Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标 Analog-for-the-Digital Age Application Maestro chipkit chipkit 徽标 CodeGuard dspicdem dspicdem.net dspicworks dsspeak ECAN ECONOMONITOR FanSense HI-TIDE In-Circuit Serial Programming ICSP Mindi MiWi MPASM MPLAB Certified 徽标 MPLIB MPLINK mtouch Omniscient Code Generation PICC PICC-18 PICDEM PICDEM.net PICkit PICtail REAL ICE rflab Select Mode Total Endurance TSHARC UniWinDriver WiperLock 和 ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地区的商标 SQTP 是 Microchip Technology Inc. 在美国的服务标记 在此提及的所有其他商标均为各持有公司所有 2011, Microchip Technology Inc. 版权所有 ISBN: Microchip 位于美国亚利桑那州 Chandler 和 Tempe 与位于俄勒冈州 Gresham 的全球总部 设计和晶圆生产厂及位于美国加利福尼亚州和印度的设计中心均通过了 ISO/TS-16949:2009 认证 Microchip 的 PIC MCU 与 dspic DSC KEELOQ 跳码器件 串行 EEPROM 单片机外设 非易失性存储器和模拟产品严格遵守公司的质量体系流程 此外, Microchip 在开发系统的设计和生产方面的质量体系也已通过了 ISO 9001:2000 认证 2011 Microchip Technology Inc. DS70359B_CN 第 2-47 页

48 全球销售及服务网点 美洲 亚太地区 亚太地区 欧洲 公司总部 Corporate Office 2355 West Chandler Blvd. Chandler, AZ Tel: Fax: 技术支持 : support 网址 : 亚特兰大 Atlanta Duluth, GA Tel: Fax: 波士顿 Boston Westborough, MA Tel: Fax: 芝加哥 Chicago Itasca, IL Tel: Fax: 克里夫兰 Cleveland Independence, OH Tel: Fax: 达拉斯 Dallas Addison, TX Tel: Fax: 底特律 Detroit Farmington Hills, MI Tel: Fax: 印第安纳波利斯 Indianapolis Noblesville, IN Tel: Fax: 洛杉矶 Los Angeles Mission Viejo, CA Tel: Fax: 圣克拉拉 Santa Clara Santa Clara, CA Tel: Fax: 加拿大多伦多 Toronto Mississauga, Ontario, Canada Tel: Fax: 亚太总部 Asia Pacific Office Suites , 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: Fax: 中国 - 北京 Tel: Fax: 中国 - 成都 Tel: Fax: 中国 - 重庆 Tel: Fax: 中国 - 杭州 Tel: Fax: 中国 - 香港特别行政区 Tel: Fax: 中国 - 南京 Tel: Fax: 中国 - 青岛 Tel: Fax: 中国 - 上海 Tel: Fax: 中国 - 沈阳 Tel: Fax: 中国 - 深圳 Tel: Fax: 中国 - 武汉 Tel: Fax: 中国 - 西安 Tel: Fax: 中国 - 厦门 Tel: Fax: 中国 - 珠海 Tel: Fax: 台湾地区 - 高雄 Tel: Fax: 台湾地区 - 台北 Tel: Fax: 台湾地区 - 新竹 Tel: Fax: 澳大利亚 Australia - Sydney Tel: Fax: 印度 India - Bangalore Tel: Fax: 印度 India - New Delhi Tel: Fax: 印度 India - Pune Tel: Fax: 日本 Japan - Yokohama Tel: Fax: 韩国 Korea - Daegu Tel: Fax: 韩国 Korea - Seoul Tel: Fax: 或 马来西亚 Malaysia - Kuala Lumpur Tel: Fax: 马来西亚 Malaysia - Penang Tel: Fax: 菲律宾 Philippines - Manila Tel: Fax: 新加坡 Singapore Tel: Fax: 泰国 Thailand - Bangkok Tel: Fax: 奥地利 Austria - Wels Tel: Fax: 丹麦 Denmark-Copenhagen Tel: Fax: 法国 France - Paris Tel: Fax: 德国 Germany - Munich Tel: Fax: 意大利 Italy - Milan Tel: Fax: 荷兰 Netherlands - Drunen Tel: Fax: 西班牙 Spain - Madrid Tel: Fax: 英国 UK - Wokingham Tel: Fax: /02/11 DS70359B_CN 第 2-48 页 2011 Microchip Technology Inc.

untitled

untitled C 8051 MCU SPI EEPROM Alexandru Valeanu Microchip Technology Inc. Microchip Technology 25XXX EEPROM SPI 25XXX EEPROM SO 25XXX EEPROM 3MHz 20 MHz SPI HOLD 25XXX EEPROM EEPROM MCU HOLD 25XXX EEPROM SPI EEPROM

More information

00872a.book

00872a.book 从 MCP2510 升 级 至 MCP2515 作 者 : 介 绍 Pat Richards Microchip Technology Inc. 开 发 MCP2510 独 立 CAN 控 制 器 的 初 衷 是 赋 予 CAN 系 统 和 模 块 设 计 人 员 更 多 的 灵 活 性, 允 许 他 们 为 自 己 的 应 用 选 择 最 好 的 处 理 器 使 用 MCP2510 不 会 使 设

More information

untitled

untitled N1113 8051MU I 2 EEPROM lexandru Valeanu Microchip Technology Inc. Microchip Technology 24XXX EEPROM 2 SL 24XXX EEPROM 24XXX EEPROM I 2 100 khz 1MHz 24XXX EEPROM 2 I 2 EEPROM 128 512 b 100 khz 1MHz 1.7V

More information

untitled

untitled MCP3421 SOT23-6 DS51793A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip Microchip Technology

More information

untitled

untitled PICkit MCP3422 DS51781A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip Microchip Technology

More information

dspic33f 系列参考手册 2.1 简介 dspic33f CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 2

dspic33f 系列参考手册 2.1 简介 dspic33f CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 2 第 2 章 CPU 目录 本章包括下列主题 : 2 2.1 简介...2-2 2.2 编程模型... 2-5 2.3 软件堆栈指针 (SSP)... 2-9 2.4 CPU 寄存器说明... 2-12 2.5 算术逻辑单元 (ALU)... 2-18 2.6 DSP 引擎... 2-19 2.7 除法支持... 2-29 2.8 指令流类型... 2-30 2.9 循环结构... 2-33 2.10

More information

PIC24 MSSP FRM Rev A.book

PIC24 MSSP FRM Rev A.book 58 MSSP 58.1... 58-2 58.2... 58-2 58.3... 58-12 58.4 SPI... 58-13 58.5 I2C... 58-22 58.6 /... 58-58 58.7... 58-58 58.8... 58-59 58.9... 58-60 58.10... 58-61 58 MSSP 2012 Microchip Technology Inc. DS30627A_CN

More information

01262B.book

01262B.book 使用 C30 编译器实现单片机与片外串行 SRAM 的通信 作者 : 引言 Martin Bowman Microchip Technology Inc. 适用于 Microchip 的 dspic DSC 和 PIC24 系列单片机的 C30 编译器为寻址外部存储器提供了一个解决方案 该编译器支持这样的功能, 即允许用户按照访问 MCU 的片内存储器的方式来访问外部存储器 本应用笔记主要介绍如何使用

More information

Section1_16bit Arc.ppt

Section1_16bit Arc.ppt 16-bit Elite Program 2009 Summer Section-1 Microchip 16-bit 2005 Microchip Technology Incorporated. All Rights Reserved. Slide 1 MCU CPU (NOP),, (Data Memory), I/O CPU w. ALU/Working Reg. Data Mem. Data

More information

61127c_cn.book

61127c_cn.book 1 第 1 章 简 介 简 介 目 录 本 章 包 括 下 列 主 题 : 1.1 简 介... 1-2 1.2 本 手 册 的 目 标... 1-2 1.3 器 件 结 构... 1-2 1.4 开 发 支 持... 1-4 1.5 样 式 和 符 号 约 定... 1-4 1.6 相 关 文 档... 1-6 1.7 版 本 历 史... 1-7 2010 Microchip Technology

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

41632B.book

41632B.book 互 补 波 形 发 生 器 (CWG) 可 配 置 逻 辑 单 元 (CLC) 和 数 控 振 荡 器 (NCO) 外 设 技 巧 与 诀 窍 简 介 Microchip 致 力 于 不 断 向 客 户 提 供 体 积 更 小 速 度 更 快 使 用 更 简 便 与 运 行 更 可 靠 的 创 新 产 品 我 们 的 闪 存 PIC MCU 已 广 泛 应 用 于 日 常 生 活 中 从 烟 雾 探

More information

MCP47x6_DaughterBoard.book

MCP47x6_DaughterBoard.book MCP47X6 PICtail Plus 子 板 用 户 指 南 DS51932B_CN 请 注 意 以 下 有 关 Microchip 器 件 代 码 保 护 功 能 的 要 点 : Microchip 的 产 品 均 达 到 Microchip 数 据 手 册 中 所 述 的 技 术 指 标 Microchip 确 信 : 在 正 常 使 用 的 情 况 下, Microchip 系 列 产 品

More information

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC LCD PIC 单片机解决方案 集成 LCD 驱动器模块的 PIC 单片机 www.microchip.com/lcd ,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC,

More information

untitled

untitled MCP3421 DS51683A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip Microchip Technology Inc. Microchip

More information

39697b.book

39697b.book 第 9 章看门狗定时器 (WDT) 目录 本章包括下列主题 : 9.1 简介...9-2 9.2 WDT 工作原理... 9-3 9.3 寄存器映射... 9-7 9.4 设计技巧... 9-8 9.5 相关应用笔记... 9-9 9.6 版本历史... 9-10 9 看门狗定时器 (WDT) 2010 Microchip Technology Inc. DS39697B_CN 第 9-1 页 PIC24F

More information

39733a_cn.book

39733a_cn.book 第 45 章具有扩展数据空间 (EDS) 的数据存储器 目录 本章包括下列主题 : 45.1 简介... 45-2 45.2 数据存储器构成... 45-3 45.3 扩展数据空间... 45-7 45.4 数据对齐... 45-14 45.5 软件堆栈... 45-15 45.6 程序存储空间与数据存储空间的连接... 45-15 45.7 相关应用笔记... 45-16 45.8 版本历史...

More information

TB3109 PIC32MX 器件中与 USB 模块相关的更改 USB 模块中断位 ( 即 USBIF USBIE USBIP 和 USBIS 位 ) 的位置变化会影响 PIC32MX 器件上的 USB 协议栈操作 表 1 给出了所列 PIC32MX 器件系列中 USBIF USBIE USBIP

TB3109 PIC32MX 器件中与 USB 模块相关的更改 USB 模块中断位 ( 即 USBIF USBIE USBIP 和 USBIS 位 ) 的位置变化会影响 PIC32MX 器件上的 USB 协议栈操作 表 1 给出了所列 PIC32MX 器件系列中 USBIF USBIE USBIP 在 v2013-06-15 MLA USB 设备和主机协议栈中更新 PIC32MX 支持 TB3109 简介 我们提供适合 PIC32MX MCU 的 Microchip 应用程序库 (Microchip Libraries for Applications,MLA), 但未计划向 MLA 添加新功能 v2013-06-15 MLA USB 协议栈本质上支持所有适用的 PIC32MX MCU 器件

More information

61146A.book

61146A.book PIC32 2008 Microchip Technology Inc. DS61146A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip

More information

CTMU Temperature Measurement AN.book

CTMU Temperature Measurement AN.book 利用 PIC MCU 中的 CTMU 测量温度 TB3016 作者 : 最新一代 PIC24F 和 PIC18F 器件包含的充电时间测量单元 (Charge Time Measurement Unit,CTMU) 使用恒流源来计算电容值的变化以及事件的间隔时间 运用半导体物理学的基本原理, 同样的电流源也可用来测量温度 这允许使用普通而廉价的二极管来取代相对昂贵的热敏电阻和温度传感器 本技术简介描述了使用

More information

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 M8Rxxx 指令集说明 Version 1.04 2014 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 修正记录 版本 日期 描述 Ver1.02 2014-5-15 补全指令说明 Ver1.03 2014-10-8 勘误 Ver1.04

More information

01277A_cn.book

01277A_cn.book 使用 C32 编译器进行串行 SRAM 器件与 PIC32 MCU 的接口设计 作者 : 引言 Pinakin K Makwana Microchip Technology Inc. Microchip 的串行 SRAM 产品线提供了向应用添加附加 RAM 的一种新方法 这些器件采用 8 引脚小型封装以及 SPI 接口, 使设计人员提升系统的灵活性 Microchip Technology 的 23XXXX

More information

dsPIC Architecture Overview

dsPIC Architecture Overview Digital Signal Control 2004 Microchip Technology dspic30f 16-bit Architecture Workshop 1 dspic30f MCU P P MCU 2004 Microchip Technology dspic30f 16-bit Architecture Workshop 2 dspic30f dspic 1. 2. 3. dspic30f:

More information

33023A.book(31005A_cn.fm)

33023A.book(31005A_cn.fm) 第 5 章 CPU 和 ALU 目录 本章包括下面一些主要内容 : 5. 简介...5-2 5.2 指令的一般格式... 5-4 5.3 中央处理单元 (CPU)... 5-4 5.4 指令时钟... 5-4 5.5 算术逻辑单元 (ALU)... 5-5 5.6 状态寄存器... 5-6 5.7 OPTION_REG 寄存器... 5-8 5.8 电源控制寄存器... 5-9 5.9 设计技巧...

More information

21928a.book

21928a.book PS080, PowerTool 800 开发软件用户指南 2005 Microchip Technology Inc. DS21928A_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一

More information

Microsoft Word - em78 sub program.doc

Microsoft Word - em78 sub program.doc 一 二进制数转换为 ASCⅡ 码 将一个字节的二进制数转换为两位 16 进制数的 ASCⅡ 码 main: mov a,@0x9f ; 二进制数为 0x9f mov 0x30,a ; 二进制数存入 0x30 mov a,@0x02 mov 0x10,a ;0x10 中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04 中为转换后数据存放地址 mov a,0x30 B1: ; 取

More information

21999a_cn.book

21999a_cn.book 1.5A 低 电 压 低 静 态 电 流 LDO 稳 压 器 MCP1727 特 性 输 出 电 流 能 力 为 1.5A 输 入 工 作 电 压 范 围 :2.3V 至 6.0V 可 调 输 出 电 压 范 围 :0.8V 至 5.0V 标 准 固 定 输 入 电 压 : - 0.8V 1.2V 1.8V 2.5V 3.0V 3.3V 和 5.0V 可 根 据 需 要 提 供 其 他 固 定 输

More information

TB3098 PIC16F170X 外设引脚选择 (PPS) 技术简介 作者 : 简介 Stephen Allen Microchip Technology Inc. 外设引脚选择 (Peripheral Pin Select,PPS) 可以使数字外设灵活地映射到各种外部引脚 在过去, 外设硬接线到

TB3098 PIC16F170X 外设引脚选择 (PPS) 技术简介 作者 : 简介 Stephen Allen Microchip Technology Inc. 外设引脚选择 (Peripheral Pin Select,PPS) 可以使数字外设灵活地映射到各种外部引脚 在过去, 外设硬接线到 PIC16F170X 外设引脚选择 (PPS) 技术简介 作者 : 简介 Stephen Allen Microchip Technology Inc 外设引脚选择 (Peripheral Pin Select,PPS) 可以使数字外设灵活地映射到各种外部引脚 在过去, 外设硬接线到特定引脚 ( 例如 : 引脚 RC5 上的 PWM1 输出 ) PPS 允许开发人员从大量输出引脚中进行选择, 这提供了以下优势

More information

dsPIC30F Programmer’s Reference Manual

dsPIC30F Programmer’s Reference Manual dspic30f/33f 程序员 参考手册 高性能数字信号控制器 2006 Microchip Technology Inc. 初稿 DS70157B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

0507A_Auto Tech_Microchip

0507A_Auto Tech_Microchip 汽 车 无 线 安 全 接 入 技 术 解 决 方 案 Youbok Lee 主 任 工 程 师 Willie Fitzgerald 产 品 营 销 总 监 Microchip Technology Inc. 引 言 全 球 汽 车 半 导 体 面 临 极 大 的 市 场 机 会, 而 汽 车 设 计 工 程 师 正 在 应 对 高 性 价 比 的 性 能 增 强 功 耗 小 尺 寸 和 安 全 性

More information

工作原理 脉冲血氧仪基于氧合血红蛋白 (HbO 2 ) 和脱氧血红蛋白 (Hb) 的红光 ( 波长为 nm) 和红外光 ( 波长为 nm) 吸收特性来监测人体血液的氧饱和度 (SpO 2 ) 脉冲血氧仪会交替地闪烁红光和红外光, 光线穿过手指到达光电二极管 HbO

工作原理 脉冲血氧仪基于氧合血红蛋白 (HbO 2 ) 和脱氧血红蛋白 (Hb) 的红光 ( 波长为 nm) 和红外光 ( 波长为 nm) 吸收特性来监测人体血液的氧饱和度 (SpO 2 ) 脉冲血氧仪会交替地闪烁红光和红外光, 光线穿过手指到达光电二极管 HbO 使用 Microchip 的 dspic 数字信号控制器 (DSC) 和模拟器件实现脉冲血氧仪设计 作者 : Zhang Feng Microchip Technology Inc. 简介 脉冲血氧仪是一种用于监测患者血氧饱和度和心率的非侵入式医疗设备 本应用笔记演示了如何使用 Microchip 的 dspic 数字信号控制器 (Digital Signal Controller, DSC) 和模拟器件来实现高精度脉冲血氧仪

More information

AN1487 DALI 控制装置 作者 : 简介 数字可寻址照明接口 (Digitally Addressable Lighting Interface,DALI) 已成为欧洲应对能源危机的一项标准, 主要针对商业和工业用途 DALI 是 IEC 规范的一部分, 具体与数控可调光荧光镇流

AN1487 DALI 控制装置 作者 : 简介 数字可寻址照明接口 (Digitally Addressable Lighting Interface,DALI) 已成为欧洲应对能源危机的一项标准, 主要针对商业和工业用途 DALI 是 IEC 规范的一部分, 具体与数控可调光荧光镇流 DALI 控制装置 作者 : 简介 数字可寻址照明接口 (Digitally Addressable Lighting Interface,DALI) 已成为欧洲应对能源危机的一项标准, 主要针对商业和工业用途 DALI 是 IEC 60929 规范的一部分, 具体与数控可调光荧光镇流器有关 本文档结合 DALI 通信应用笔记 (AN1465A) (ww1.microchip.com/downloads/cn/appnotes/

More information

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378>

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378> 第一章第二章 Q2 1: 高序 : 最低位字节存储在字的最低位 ; 低序 : 最低位字节存储在字的最高位 ; Q2 2: 冯. 诺依曼结构 : 数据和指令都存储在同一存储器中 ; 哈佛结构 : 数据和程序存储在各自独立的存储器中 Q2 3: a) ARM 有 16 个通用寄存器,r0 r15, 其中 r15 还被用作程序计数器 b) CPSR 是程序状态寄存器, 包含了条件码标识 中断禁止位 当前处理器模式和其他状态

More information

70641A.book

70641A.book AN1299 调整指南 1.1 配置双电流检测电阻模式 本文档介绍了 AN1299 PMSM 无传感器 FOC 的单电流检测电阻三相电流重构算法 (DS01299A_CN) 中所述算法调整所需的步骤和设置 1. 第一步, 用户需完成 AN1078 中的调整过程, 其中介绍了在具体电机和硬件上运行滑模控制器 (Slide Mode Controller, SMC) 所需的全部步骤 2. 应用运行后,

More information

Microsoft Word - Ö¸Á.doc

Microsoft Word - Ö¸Á.doc 指令集说明 注 由于资源大小问题 其中以下几款 MCU 只有 62 条指令 其余均为 63 条指令 HT48CA0/HT48RA0A 无 RETI 指令 HT48R05A-1 无 TABRDL 指令 指令寻址方式有下面 5 种 立即寻址 此一寻址法是将立即的常数值紧跟在运算码 (opcode) 后 例如 MOV A, 33H ADD A, 33H 直接寻址 直接寻址的情況只允许在存储器之间作数据传送

More information

PIC18F65J90/85J90 Product Brief

PIC18F65J90/85J90 Product Brief 采用纳瓦技术内置 LCD 驱动器的 64/80 引脚高性能单片机 单片机的特殊性能 : 闪存程序存储器可承受 1000 次擦写 ( 典型值 ) 闪存数据保存时间为 20 年 ( 典型值 ) 软件控制下可自编程 中断具有优先级 8 x 8 单周期硬件乘法器 扩展的看门狗定时器 (Watchdog Timer, WDT): - 周期从 4 ms 到 131s, 可编程设定 通过两个引脚可进行在线串行编程

More information

33023A.book(31001A_cn.fm)

33023A.book(31001A_cn.fm) 1 第 1 章 简 介 简 介 目 录 本 章 包 括 下 面 一 些 主 要 内 容 : 1.1 简 介...1-2 1.2 本 手 册 的 宗 旨... 1-3 1.3 器 件 结 构... 1-4 1.4 开 发 支 持... 1-6 1.5 器 件 种 类... 1-7 1.6 格 式 和 符 号 的 约 定... 1-12 1.7 相 关 文 档... 1-14 1.8 相 关 应 用 笔

More information

文件名

文件名 MICROCHIP PIC10F200/202/204/206 6 8 FLASH PIC10F200 PIC10F202 PIC10F204 PIC10F206 RISC CPU 33 12 8 8 4MHz 1 s 4MHz 1% TM ICSP TM ICD POR DRT WDT RC MCLR I/O /CMOS < 350 A @ 2V 4 MHz 100 na @ 2V FLASH 10000

More information

70135e_cn.book

70135e_cn.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70135E_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

01018A.book

01018A.book 使用 C18 编译器进行 SPI 串行 EEPROM 与 PIC18 单片机的接口设计 作者 : 引言 Chris Parris Microchip Technology Inc. Microchip Technology 生产的 25XXX 系列串行 EEPROM 兼容 SPI 通信标准, 最大时钟频率范围从 3MHz 到 20 MHz 许多时候, 在设计利用串行 EEPROM 器件的应用时, 使用非专用

More information

33023A.book(31006A_cn.fm)

33023A.book(31006A_cn.fm) 6 第 6 章存储器构成 存储器构成 目录 本章包括下面一些主要内容 : 6.1 简介...6-2 6.2 程序存储器构成... 6-2 6.3 数据存储器构成... 6-8 6.4 初始化... 6-14 6.5 设计技巧... 6-16 6.6 相关应用笔记... 6-17 6.7 版本历史... 6-18 2004 Microchip Technology Inc. DS31006A_CN 第

More information

21498c_cn.book

21498c_cn.book 精密温度 - 电压转换器 特性 工作电压范围 : - TC147:2.7V 至 4.4V - TC147A:2.5V 至 5.5V 宽温度测量范围 : - -4 C 至 +125 C 温度转换精度高 : - 在 25 C 时为 ±2 C ( 最大值 ) 线性温度斜率 :1 mv/ C ( 典型值 ) 提供 3 引脚 SOT-23B 封装 低工作电流 : - 35 µa 典型值 应用 移动电话 电源过热关断控制

More information

光 探 测 应 用 光 探 测 应 用 可 以 使 用 许 多 探 测 器, 例 如 光 电 二 极 管 光 电 晶 体 管 光 敏 电 阻 光 电 管 光 电 倍 增 管 电 荷 耦 合 器 件 等 本 应 用 笔 记 将 重 点 介 绍 光 电 二 极 管, 因 为 它 是 最 常 用 的 光

光 探 测 应 用 光 探 测 应 用 可 以 使 用 许 多 探 测 器, 例 如 光 电 二 极 管 光 电 晶 体 管 光 敏 电 阻 光 电 管 光 电 倍 增 管 电 荷 耦 合 器 件 等 本 应 用 笔 记 将 重 点 介 绍 光 电 二 极 管, 因 为 它 是 最 常 用 的 光 用 于 光 探 测 应 用 的 MCP649 运 放 AN494 作 者 : 简 介 Yang Zhen Microchip Technology Inc. 许 多 光 探 测 应 用 中 经 常 使 用 低 输 入 偏 置 运 算 放 大 器 ( 运 放 ), 以 降 低 电 流 误 差 和 提 高 输 出 信 号 的 精 度 以 下 为 典 型 的 光 探 测 应 用 : 烟 雾 探 测 器 火

More information

00966A.book

00966A.book SPI 串行 EEPROM 与 PICmicro 单片机的接口设计 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. 目前市场上有许多种单片机用在嵌入式控制系统设计中, 这些嵌入式控制系统中的很大一部分都要用到非易失性存储器 由于串行 EEPROM 具有封装尺寸小, 存储容量灵活, 对 I/O 引脚要求低, 和低功耗低成本等特点, 已成为非易失性存储器的首选

More information

70149B.book

70149B.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70149B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

01236B.book

01236B.book 使用 C3 和定时器连接 dspic33 DSC 和 PIC24 MCU 与兼容 UNI/O 总线的串行 EEPROM 作者 : 简介 Martin Kvasnicka Microchip Technology Inc. 随着嵌入式系统小型化的趋势, 市场对于减少器件间通信所用 I/O 引脚数的需求也与日俱增 Microchip 开发的 UNI/O 总线正满足了这一需求, 这一个低成本且易于实现的解决方案,

More information

00975A.book

00975A.book 使用 MSSP 模块进行 Microwire 串行 EEPROM 与 PIC16 器件的接口设计 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. 目前市场上有许多种单片机用在嵌入式控制系统设计中, 这些嵌入式控制系统中的很大一部分都要用到非易失性存储器 由于串行 EEPROM 具有封装尺寸小, 存储容量灵活, 对 I/O 引脚要求低, 和低功耗低成本等特点,

More information

70178C.book

70178C.book 数 据 手 册 28/44 引 脚 高 性 能 开 关 电 源 数 字 信 号 控 制 器 2007 Microchip Technology Inc. 初 稿 DS70178C_CN 请 注 意 以 下 有 关 Microchip 器 件 代 码 保 护 功 能 的 要 点 : Microchip 的 产 品 均 达 到 Microchip 数 据 手 册 中 所 述 的 技 术 指 标 Microchip

More information

00513D_CN.FM

00513D_CN.FM 使用 PIC16C54 实现模数转换 AN513 作者 : 简介 本应用笔记介绍了一种使用 PIC16C5X 系列单片机实现模数转换 (Analog to Digital,A/D) 的方法 仅需 5 个外部元件即可实现该转换器, 且可通过软硬件配置使转换分辩率达到 6 到 10 位且转换时间不短于 250 µs 这一方法可用于电压和电流转换且使用软件校准技术来补偿由于时间和温度漂移以及元件误差造成的精度误差

More information

00686A.Book

00686A.Book 理解和使用监控电路 AN686 概要 本应用笔记讨论了什么是单片机监控器件, 为什么需要这些器件以及在选择这些器件时需要考虑的一些因素 监控器件属于一个很广的范畴, 它涵盖了上电复位 (Power on Reset,POR) 器件 欠压检测 (Brown-Out Detect,BOD) 器件和看门狗定时器器件 本应用笔记将仅讨论具有 POR 和 BOD 功能的监控器件 监控电路的工作 监控电路可用于几种不同的应用,

More information

01476A.book

01476A.book 结合 CLC 和 NCO 实现高分辨率 PWM AN1476 作者 : 简介 Cobus Van Eeden Microchip Technology Inc. 虽然许多应用可以使用分辨率低于 8 位的 PWM, 但是有一些应用 ( 例如灯具调光 ) 由于人眼灵敏度的原因需要较高分辨率 背景 传统的 PWM 使用定时器来生成规则的开关频率 (T PWM ), 然后使用纹波计数器来确定在脉冲结束之前,

More information

PIC24 intro.fm

PIC24 intro.fm 1 第 1 章简介 简介 目录 本章包括下列主题 : 1.1 简介... 1-2 1.2 手册目标... 1-2 1.3 器件结构... 1-2 1.4 开发支持... 1-4 1.5 样式和符号约定... 1-4 1.6 相关文档... 1-6 1.7 版本历史... 1-7 2008 Microchip Technology Inc. 超前信息 DS39718A_CN 第 1-1 页 PIC24F

More information

2 PIC PIC 1 / CPU PIC MCU PIC RC

2 PIC PIC 1 / CPU PIC MCU PIC RC 2 PIC PIC 1 /... 2-2 2... 2-3 3... 2-4 4... 2-4 5... 2-4 6 CPU... 2-5 7 PIC MCU... 2-6 8 PIC16... 2-6 9... 2-7 10... 2-7 11 RC... 2-7 12... 2-8 13... 2-8 14 NOP... 2-9 15 PMD... 2-9 16... 2-10 17 WDTWDT...

More information

70116g_cn.book

70116g_cn.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70116G_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic30f6010a/6015 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN

查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic30f6010a/6015 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN 查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

21666b.book

21666b.book 具 有 关 断 功 能 的 80 ma 小 型 CMOS LDO TC1016 特 性 节 省 空 间 的 5 引 脚 SC-70 和 SOT-23 封 装 极 低 的 工 作 电 流, 利 于 延 长 电 池 寿 命 : 典 型 值 53 µa 很 低 的 电 压 差 (Dropout Voltage) 额 定 输 出 电 流 :80 ma 仅 需 一 个 1µF 的 陶 瓷 输 出 电 容 高

More information

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

01096B.book

01096B.book 使用 C30 编译器进行 SPI 串行 EEPROM 与 dspic33f 和 PIC24F 的接口设计 AN1096 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. Microchip 的 25XXX 系列串行 EEPROM 均与 SPI 兼容, 其最大时钟频率在 3 MHz 到 20 MHz 的范围内 许多时候, 当设计利用串行 EEPROM

More information

MRF24WG0MAMB Software Migration

MRF24WG0MAMB Software Migration MRF24WG0MA/MB 软件移植 作者 : 概述 本应用笔记介绍为了从旧版 MRF24WB0MA/MB 软件协议栈移植以包含 MRF24WG0MA/MB 模块, 而必须对现有 MLA 软件协议栈进行的更改 使用入门 Amy Ong Microchip Technology Inc. MRF24WG0MA/MB 驱动程序代码已深度嵌入在 MLA 版本中 宏定义用于区分 MRF24WB0MA/MB

More information

800 mA Fixed-Output CMOS LDO with Shutdown

800 mA Fixed-Output CMOS LDO with Shutdown I 2 C 7/8-7 128 129-8 256 257 4 R AB - 5 kω - 1 kω - 5 kω - 1 kω 75Ω - 5 ppm -7 C - 15 ppm I 2 C - 1 khz - 4 khz - 3.4 MHz / TCON 1.5V 2.5 ua 12.5V SCL SDA - 2.7V 5.5V - 1.8V 5.5V -3 db 2 MHz 5. kω -4

More information

dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 产品系列 表 1 中列出了每款器件的器件名称 引脚数 存储容量和可用的外设, 表后还附有它们的引脚图 表 1: dspic33fj16(gp/mc)101/102 器件特性 器件 引脚

dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 产品系列 表 1 中列出了每款器件的器件名称 引脚数 存储容量和可用的外设, 表后还附有它们的引脚图 表 1: dspic33fj16(gp/mc)101/102 器件特性 器件 引脚 dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 16 位数字信号控制器 ( 最多 32 KB 闪存和 2 KB SRAM) 工作条件 3.0V 至 3.6V, -40 C 至 +125 C, DC 至 16 MIPS 内核 :16 位 dspic33f CPU 高效代码 (C 和汇编 ) 架构 两个 40 位宽累加器 带双数据取操作的单周期

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

More information

01020B.book

01020B.book 使用 MSSP 进行 Microwire 串行 EEPROM 与 PIC18 器件的接口设计 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. 当前市场上有许多不同的单片机用于嵌入式控制应用领域 许多这种嵌入式控制系统都需要非易失性存储器 由于外形小巧 提供字节级灵活性 I/O 引脚要求低 低功耗和低成本等特点, 串行 EEPROM 成为非易失性存储器的流行选择

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

MCP Phase Energy Meter Reference Design Using PIC18F2520 Users Guide

MCP Phase Energy Meter Reference Design Using PIC18F2520 Users Guide 跟踪接口工具包规范 跟踪接口工具包 简介 MPLAB REAL ICE 在线仿真器跟踪接口工具包 (AC2446) 可与具有跟踪连接器的 PIC32 接插模块 (PIM)( 表 1-1) 配合使用 具有跟踪连接器的 PIC32 PIM 支持 PIC32 指令跟踪 请参见仿真器文档了解关于 PIC32 指令跟踪的更多信息 表 1-1: PIC32 PIM 列表 * PIM 编号 PIM 名称 跟踪连接器

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

图 1 给出了 WWDT 的框图 为确保在最坏情况下能够通过程序主循环, 需要为定时器设置延时 定时器可通过控制寄存器进行配置 在定时器达到其设定的最大计数值并发生上溢前, 用户的应用程序应定期发出 CLRWDT 指令 如果用户的应用程序未能成功通过 CLRWDT 指令复位定时器, 则看门狗将发生上

图 1 给出了 WWDT 的框图 为确保在最坏情况下能够通过程序主循环, 需要为定时器设置延时 定时器可通过控制寄存器进行配置 在定时器达到其设定的最大计数值并发生上溢前, 用户的应用程序应定期发出 CLRWDT 指令 如果用户的应用程序未能成功通过 CLRWDT 指令复位定时器, 则看门狗将发生上 PIC 单片机的窗口看门狗定时器 TB3123 作者 : Ashutosh Tiwari Microchip Technology Inc. 简介 窗口看门狗定时器 (Windowed Watchdog Timer, WWDT) 是 PIC 单片机的增强型看门狗定时器 该定时器是 PIC 单片机现有看门狗定时器 (Watchdog Timer, WDT) 的扩展 Microchip 的 WDT 具有可配置的时间阈值上限和固定的时间阈值下限

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 1. 介绍 Application Notes EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 * 周期, 其余为单指令周期 ( 部分第一代芯片 JMP CALL RET RETL RETI JBS JBC JZ JZA DJZ DJZA 指令为 2

More information

Section 5. Flash Programming

Section 5. Flash  Programming 第 5 章闪存编程 目录 本章包括下列主题 : 5.1 简介...5-2 5.2 表指令操作... 5-2 5.3 控制寄存器... 5-5 5.4 运行时自编程 (RTSP)... 5-8 5.5 寄存器映射... 5-16 5.6 相关应用笔记... 5-17 5.7 版本历史... 5-18 5 闪存编程 2011 Microchip Technology Inc. DS70609C_CN 第

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

RW Focus Asia Whitepaper CH1029

RW Focus Asia Whitepaper CH1029 F CUSASIA 1 Robert Walters Focus Asia Whitepaper Matthew Bennett Robert Walters 2 03 04 06 08 10 13 13 14 3 4 5 Robert Walters Focus Asia Whitepaper 6 7 Robert Walters Focus Asia Whitepaper 8 9 Robert

More information

mdt1030

mdt1030 深圳市英锐恩科技有限公司 第 1 页 单片机集成方案全方位解决服务商 优质智能电子产品 芯 方案解决商 Micon MDT1030 产品用户参考手册 全球销售及服务联系信息 : 深圳市英锐恩科技有限公司 ENROO-TECH(SHENZHEN)CO.,LTD 中国 深圳市福田区福华路嘉汇新城汇商中心 27 楼 2701 室 Enroo-Tech Technologies CO., Limited Light-Tech

More information

Rotork new IQ brochure

Rotork new IQ brochure Rotork IQ Rotork IQ 3 40 4 5 6 7 Rotork 8 10 12 14 16 18 20 Rotork Rotork Rotork Controls Ltd, Bath, UK 2 Rotork Controls Inc, Rochester, USA Rotork IQ Rotork IQ IQ Rotork IQ Rotork IQ IQ Rotork IQ IQ

More information

目录 简介 概念 解决方案 / 实现 相关资源... 7 Microchip 网站... 8 变更通知客户服务... 8 客户支持... 8 Microchip 器件代码保护功能... 8 法律声明... 9 商标... 9 DNV 认证的质量管理体系

目录 简介 概念 解决方案 / 实现 相关资源... 7 Microchip 网站... 8 变更通知客户服务... 8 客户支持... 8 Microchip 器件代码保护功能... 8 法律声明... 9 商标... 9 DNV 认证的质量管理体系 什么是 ICM? 如何将 ICM 用于加密 简介 完整性检查监控器 (Integrity Check Monitor,ICM) 是一个 DMA 控制器, 可使用 Cortex M7 MCU 内存 (ICM 描述符区 ) 中的传输描述符在多个存储区上执行哈希计算 ICM 集成了用于哈希的安全哈希算法 (Secure Hash Algorithm,SHA) 引擎 基于 SHA 的哈希适合用于密码验证 质询哈希身份验证

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7> 能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO

More information

数据库系统概论

数据库系统概论 指令系统 是指 CPU 能完成的所有 指令的集合, 它是在 CPU 设计时就确定了的 所以, 对不同的 CPU, 其指令系统中所包含的具体指令将是各不相同的 但 8088/8086 CPU 的指令系统是完全一样的 8088/8086 CPU 的指令系统可分成下面 9 类 : (1) 数据传送指令 ; (2) 算术运算指令 ; (3) 逻辑运算指令 ; (4) 移位指令 ; (5) 标志处理指令和 CPU

More information

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生 第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介... 9-2 9.2 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器... 9-4 9.3 看门狗定时器工作原理... 9-12 9.4 DMT 工作原理... 9-16 9.5 中断和复位产生... 9-18 9.6 I/O 引脚... 9-21 9.7 调试和节能模式下的操作... 9-21

More information

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD Leica MC170 HD Leica MC190 HD 5 6 7 8 11 12 13 14 16 HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD 22 23 24 26 Leica MC170 HD Leica MC190 HD ( ) 28

More information

1 CPU

1 CPU 2000 Tel 82316285 82317634 Mail liuxd@buaa.edu.cn 1 CPU 2 CPU 7 72 A B 85 15 3 1/2 M301 2~17 : 3/4 1/2 323 IBM PC 1. 2. 3. 1. 2. 3. 1.1 Hardware Software 1.2 M3 M2 M1 1.2 M3 M1 M2 M2 M1 M1 M1 1.2 M3 M1

More information

2.0 MHz, 500 mA Synchronous Buck Regulator

2.0 MHz, 500 mA Synchronous Buck Regulator 2.0 MHz 500 ma 同 步 降 压 稳 压 器 MCP1603 特 性 典 型 效 率 大 于 90% 输 出 电 流 最 高 为 500 ma 低 静 态 电 流 = 45 µa ( 典 型 值 ) 低 关 断 电 流 = 0.1 µa ( 典 型 值 ) 可 调 输 出 电 压 : - 0.8V 至 4.5V 固 定 输 出 电 压 : - 1.2V 1.5V 1.8V 2.5V 和

More information

dsPIC33FJ32MC202/2024 and dsPIC33FJ16MC304 Data Sheet

dsPIC33FJ32MC202/2024 and dsPIC33FJ16MC304 Data Sheet dspic33fj32mc202/204 和 dspic33fj16mc304 数据手册高性能 16 位数字信号控制器 2007 Microchip Technology Inc. 初稿 DS70283B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下,

More information

条 件 的 限 制, 可 在 广 西 参 加 普 通 高 考, 特 指 不 受 学 籍 户 籍 迁 入 的 年 限 限 制, 但 在 高 考 报 名 时 考 生 的 学 籍 户 籍 必 须 已 迁 入 广 西 二 外 来 人 员 需 要 提 供 的 审 查 材 料 ( 一 ) 按 照 自 治 区 招

条 件 的 限 制, 可 在 广 西 参 加 普 通 高 考, 特 指 不 受 学 籍 户 籍 迁 入 的 年 限 限 制, 但 在 高 考 报 名 时 考 生 的 学 籍 户 籍 必 须 已 迁 入 广 西 二 外 来 人 员 需 要 提 供 的 审 查 材 料 ( 一 ) 按 照 自 治 区 招 广 西 壮 族 自 治 区 南 宁 市 招 生 考 试 院 南 招 考 院 2015 25 号 关 于 做 好 外 来 务 工 人 员 随 迁 子 女 和 外 省 户 籍 学 籍 迁 入 人 员 在 南 宁 市 参 加 2016 年 普 通 高 考 全 国 统 考 报 名 资 格 审 查 工 作 的 通 知 各 县 招 生 办, 市 区 各 普 通 高 中 中 职 学 校 : 按 照 自 治 区 招

More information

数据库系统概论

数据库系统概论 2. 减法指令 8086/8088 共有 5 条减法指令 1 不带 CF 的减法指令 (SUB) 格式 :SUB DST, SRC 功能 :(1)DST (DST)-(SRC) (2) 根据差设置 6 个状态标志 2 带 CF 的减法指令 (SBB) 格式 :SBB DST, SRC 功能 : (1)DST (DST)-(SRC)-CF (2) 根据差设置 6 个状态标志 3 减 1 指令 (DEC)

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 数据手册 高性能 16 位数字信号控制器 2010 Microchip Technology Inc. 初稿 DS70593B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前,

More information

CD DX Onkyo CD CD Cs

CD DX Onkyo CD CD Cs CD DX-7355... 2... 13... 15 Onkyo CD CD... 26 Cs 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. S3125A 13. 14. 15. A. B. C. D. E. F. 16. 17. 18. 20cm 8" 10cm 4" 10cm 4" Cs-2 1. 2. Onkyo 3. 4. AC230V 50Hz AC120V

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

More information

共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150

共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150 DSP 原理与应用教程 ( 张卫宁著 ) 课后习题答案第 3 章 (2014 年 10 月整理 刘忠国 ) 第三章习题答案 : 作业 :3.2, 3.6, 3.7,3.8, 3.11, 3.17, 3.19,3.21 3.1. TMS320C54x 的数据空间寻址方式各有什么特点? 应该应用在什么场合? ( 教材涉及特点较少 ) 答 :TMS320C54x 有 7 种基本的数据寻址方式 : 立即寻址,

More information

L15 MIPS Assembly

L15 MIPS Assembly Lecture 19: MIPS Assembly Language 程序的机器级表示主要内容 MIPS 指令格式 R- 类型 / I- 类型 / J- 类型 MIPS 寄存器 长度 / 个数 / 功能分配 MIPS 操作数 寄存器操作数 / 存储器操作数 / 立即数 / 文本 / 位 MIPS 指令寻址方式 立即数寻址 / 寄存器寻址 / 相对寻址 / 伪直接寻址 / 偏移寻址 MIPS 指令类型

More information

untitled

untitled CPU!! 00-11-8 Liping zhang, Tsinghua 1 : ADD(r1, r, r) CMPLEC(r, 5, r0) MUL(r1, r, r) SUB(r1, r, r5) ADD r, ( ) r CMP. CMP r.. t t + 1 t + t + t + t + 5 t + 6 IF( ) ADD CMP MUL SUB RF NOP ADD CMP MUL SUB

More information

「兆豐商業銀行」原交通銀行客戶重要權益手冊

「兆豐商業銀行」原交通銀行客戶重要權益手冊 行 益 行 95 年 8 錄 1 1 參 4 6 金 7 陸 金 7 7 8 錄 行 行 18 錄 行 行 19 行 行 益 行 行 行 95.8.21 行 行 Mega International Commercial Bank Co., Ltd. 行 017 北 路 123 金 樓 行 不 行 行 行 行 行 更 行 更 行 連 參 錄 不 益 益 不 利 行 行 利 不 行 www.ctnbank.com.tw

More information

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机比较器原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系列单片机的比较器内部结 构 STC 单片机比较器结构 从图中可以看出, 比较器正端输入 CMP+ 的输入电压来自单片机的 P5.5

More information