ZHCU032K December   2004  – August 2022 MSP430AFE221 , MSP430AFE222 , MSP430AFE223 , MSP430AFE231 , MSP430AFE232 , MSP430AFE233 , MSP430AFE251 , MSP430AFE252 , MSP430AFE253 , MSP430F2001 , MSP430F2002 , MSP430F2003 , MSP430F2011 , MSP430F2012 , MSP430F2013 , MSP430F2101 , MSP430F2111 , MSP430F2112 , MSP430F2121 , MSP430F2122 , MSP430F2131 , MSP430F2132 , MSP430F2132-EP , MSP430F2232 , MSP430F2234 , MSP430F2252 , MSP430F2252-Q1 , MSP430F2254 , MSP430F2272 , MSP430F2272-Q1 , MSP430F2274 , MSP430F2274-EP , MSP430F233 , MSP430F2330 , MSP430F235 , MSP430F2350 , MSP430F2370 , MSP430F2410 , MSP430F2416 , MSP430F2417 , MSP430F2418 , MSP430F2419 , MSP430F247 , MSP430F2471 , MSP430F248 , MSP430F2481 , MSP430F249 , MSP430F2491 , MSP430F2616 , MSP430F2617 , MSP430F2618 , MSP430F2619 , MSP430G2001 , MSP430G2101 , MSP430G2102 , MSP430G2111 , MSP430G2112 , MSP430G2121 , MSP430G2131 , MSP430G2132 , MSP430G2152 , MSP430G2153 , MSP430G2201 , MSP430G2201-Q1 , MSP430G2202 , MSP430G2203 , MSP430G2210 , MSP430G2211 , MSP430G2212 , MSP430G2213 , MSP430G2221 , MSP430G2230 , MSP430G2231 , MSP430G2231-Q1 , MSP430G2232 , MSP430G2233 , MSP430G2252 , MSP430G2253 , MSP430G2302 , MSP430G2303 , MSP430G2312 , MSP430G2313 , MSP430G2332 , MSP430G2333 , MSP430G2352 , MSP430G2353 , MSP430G2402 , MSP430G2403 , MSP430G2412 , MSP430G2413 , MSP430G2432 , MSP430G2433 , MSP430G2444 , MSP430G2452 , MSP430G2453 , MSP430G2513 , MSP430G2533 , MSP430G2544 , MSP430G2553 , MSP430G2744 , MSP430G2755 , MSP430G2855 , MSP430G2955 , MSP430TCH5E

 

  1.   请先阅读
    1.     关于本手册
    2.     德州仪器 (TI) 提供的相关文档
    3.     命名惯例
    4.     术语表
    5.     寄存器位惯例
  2. 简介
    1. 1.1 架构
    2. 1.2 灵活的时钟系统
    3. 1.3 嵌入式仿真
    4. 1.4 地址空间
      1. 1.4.1 闪存 / ROM
      2. 1.4.2 RAM
      3. 1.4.3 外设模块
      4. 1.4.4 特别功能寄存器 (SFR)
      5. 1.4.5 内存组织
    5. 1.5 MSP430x2xx 系列改进和增强
  3. 系统复位、中断和工作模式
    1. 2.1 系统复位和初始化
      1. 2.1.1 欠压复位 (BOR)
      2. 2.1.2 系统复位后的器件初始条件
        1. 2.1.2.1 软件初始化
    2. 2.2 中断
      1. 2.2.1 (不)可屏蔽中断 (NMI)
        1. 2.2.1.1 复位 / NMI 引脚
        2. 2.2.1.2 闪存访问违反
        3. 2.2.1.3 振荡器故障
        4. 2.2.1.4 NMI 中断处理程序示例
      2. 2.2.2 可屏蔽中断
      3. 2.2.3 中断处理
        1. 2.2.3.1 中断接受
        2. 2.2.3.2 从中断返回
        3. 2.2.3.3 中断嵌套
      4. 2.2.4 中断向量
    3. 2.3 操作模式
      1. 2.3.1 进入和退出低功耗模式
    4. 2.4 低功耗应用原理
    5. 2.5 未使用引脚的连接
  4. CPU
    1. 3.1 CPU 介绍
    2. 3.2 CPU 寄存器
      1. 3.2.1 程序计数器 (PC)
      2. 3.2.2 堆栈指针 (SP)
      3. 3.2.3 状态寄存器 (SR)
      4. 3.2.4 常数发生器寄存器 CG1 和 CG2
        1. 3.2.4.1 常数发生器 - 扩展指令集
      5. 3.2.5 通用寄存器 R4 至 R15
    3. 3.3 寻址模式
      1. 3.3.1 寄存器模式
      2. 3.3.2 已索引模式
      3. 3.3.3 符号模式
      4. 3.3.4 绝对模式
      5. 3.3.5 间接寄存器模式
      6. 3.3.6 间接自动递增模式
      7. 3.3.7 立即模式
    4. 3.4 指令集
      1. 3.4.1 双操作数(格式 I)指令
      2. 3.4.2 单操作数(格式 II)指令
      3. 3.4.3 跳转
      4. 3.4.4 指令周期和长度
        1. 3.4.4.1 中断和复位周期
        2. 3.4.4.2 格式 II(单操作数)指令周期和长度
        3. 3.4.4.3 格式 III(跳转)指令周期和长度
        4. 3.4.4.4 格式 I(双操作数)指令周期和长度
      5. 3.4.5 指令集说明
      6. 3.4.6 指令集详细信息
        1. 3.4.6.1  ADC
          1.        68
        2. 3.4.6.2  ADD
          1.        70
        3. 3.4.6.3  ADDC
          1.        72
        4. 3.4.6.4  AND
          1.        74
        5. 3.4.6.5  BIC
          1.        76
        6. 3.4.6.6  BIS
          1.        78
        7. 3.4.6.7 
          1.        80
        8. 3.4.6.8  BR,BRANCH
          1.        82
        9. 3.4.6.9  CALL
          1.        84
        10. 3.4.6.10 CLR
          1.        86
        11. 3.4.6.11 CLRC
          1.        88
        12. 3.4.6.12 CLRN
          1.        90
        13. 3.4.6.13 CLRZ
          1.        92
        14. 3.4.6.14 CMP
          1.        94
        15. 3.4.6.15 DADC
          1.        96
        16. 3.4.6.16 DADD
          1.        98
        17. 3.4.6.17 DEC
          1.        100
        18. 3.4.6.18 DECD
          1.        102
        19. 3.4.6.19 DINT
          1.        104
        20. 3.4.6.20 EINT
          1.        106
        21. 3.4.6.21 INC
          1.        108
        22. 3.4.6.22 INCD
          1.        110
        23. 3.4.6.23 INV
          1.        112
        24. 3.4.6.24 JC,JHS
          1.        114
        25. 3.4.6.25 JEQ,JZ
          1.        116
        26. 3.4.6.26 JGE
          1.        118
        27. 3.4.6.27 JL
          1.        120
        28. 3.4.6.28 JMP
          1.        122
        29. 3.4.6.29 JN
          1.        124
        30. 3.4.6.30 JNC,JLO
          1.        126
        31. 3.4.6.31 JNE,JNZ
          1.        128
        32. 3.4.6.32 MOV
          1.        130
        33. 3.4.6.33 NOP
          1.        132
        34. 3.4.6.34 POP
          1.        134
        35. 3.4.6.35 PUSH
          1.        136
        36. 3.4.6.36 RET
          1.        138
        37. 3.4.6.37 RETI
          1.        140
        38. 3.4.6.38 RLA
          1.        142
        39. 3.4.6.39 RLC 所取代:
          1.        144
        40. 3.4.6.40 RRA
          1.        146
        41. 3.4.6.41 RRC
          1.        148
        42. 3.4.6.42 SBC
          1.        150
        43. 3.4.6.43 SETC
          1.        152
        44. 3.4.6.44 SETN
          1.        154
        45. 3.4.6.45 SETZ
          1.        156
        46. 3.4.6.46 SUB
          1.        158
        47. 3.4.6.47 SUBC,SBB
          1.        160
        48. 3.4.6.48 SWPB
          1.        162
        49. 3.4.6.49 SXT
          1.        164
        50. 3.4.6.50 TST
          1. 3.4.6.50.1 166
        51. 3.4.6.51 XOR
          1. 3.4.6.51.1 168
  5. CPUX
    1. 4.1 CPU 介绍
    2. 4.2 中断
    3. 4.3 CPU 寄存器
      1. 4.3.1 程序计数器 (PC)
      2. 4.3.2 堆栈指针 (SP)
      3. 4.3.3 状态寄存器 (SR)
      4. 4.3.4 常数发生器寄存器(CG1 和 CG2)
        1. 4.3.4.1 常数发生器 - 扩展指令集
      5. 4.3.5 通用寄存器(R4 至 R15)
    4. 4.4 寻址模式
      1. 4.4.1 寄存器模式
      2. 4.4.2 已索引的模式:
        1. 4.4.2.1 低 64KB 存储器中的已索引模式
        2. 4.4.2.2 上部存储器中的具有已索引模式的 MSP430 指令
        3. 4.4.2.3 具有已索引模式的 MSP430 指令
      3. 4.4.3 符号模式
        1. 4.4.3.1 低 64KB 中的符号模式
        2. 4.4.3.2 上部存储器中的具有符号模式的 MSP430 指令
        3. 4.4.3.3 具有符号模式的 MSP430X 指令
      4. 4.4.4 绝对模式
        1. 4.4.4.1 低 64KB 中的绝对模式
        2. 4.4.4.2 具有绝对模式的 MSP430X 指令
      5. 4.4.5 间接寄存器模式
      6. 4.4.6 间接自动递增模式
      7. 4.4.7 立即模式
        1. 4.4.7.1 支持立即模式的 MSP430 指令
        2. 4.4.7.2 支持立即模式的 MSP430X 指令
    5. 4.5 MSP430 和 MSP430X 指令
      1. 4.5.1 MSP430 指令
        1. 4.5.1.1 MSP430 双操作数(格式 I)指令
        2. 4.5.1.2 MSP430 单操作数(格式 II)指令
        3. 4.5.1.3 跳转指令
        4. 4.5.1.4 仿真指令
        5. 4.5.1.5 MSP430 指令执行
          1. 4.5.1.5.1 针对中断、复位、和子例程的指令周期和长度
          2. 4.5.1.5.2 格式 II(单操作数)指令周期和长度
          3. 4.5.1.5.3 跳转指令周期和长度
          4. 4.5.1.5.4 格式 I(双操作数)指令周期和长度
      2. 4.5.2 MSP430 扩展指令
        1. 4.5.2.1 寄存器模式扩展字
        2. 4.5.2.2 非寄存器模式扩展位
        3. 4.5.2.3 扩展双操作数(格式 I)指令
        4. 4.5.2.4 扩展单操作数(格式 II)指令
          1. 4.5.2.4.1 扩展格式 II 指令格式除外
        5. 4.5.2.5 扩展仿真指令
        6. 4.5.2.6 MSP430X 寻址指令
        7. 4.5.2.7 MSP430X 指令执行
          1. 4.5.2.7.1 MSP430X 格式 II(单操作数)指令周期和长度
          2. 4.5.2.7.2 MSP430X 格式 I(双操作数)指令周期和长度
          3. 4.5.2.7.3 MSP430X 寻址指令周期和长度
    6. 4.6 指令集说明
      1. 4.6.1 扩展指令二进制说明
      2. 4.6.2 MSP430 指令
        1. 4.6.2.1  ADC
        2. 4.6.2.2 
        3. 4.6.2.3  ADDC
        4. 4.6.2.4 
        5. 4.6.2.5  BIC
        6. 4.6.2.6  BIS
        7. 4.6.2.7 
        8. 4.6.2.8  BR,BRANCH
        9. 4.6.2.9  调用
        10. 4.6.2.10 CLR
        11. 4.6.2.11 CLRC
        12. 4.6.2.12 CLRN
        13. 4.6.2.13 CLRZ
        14. 4.6.2.14 CMP
        15. 4.6.2.15 DADC
        16. 4.6.2.16 DADD
        17. 4.6.2.17 DEC
        18. 4.6.2.18 DECD
        19. 4.6.2.19 DINT
        20. 4.6.2.20 EINT
        21. 4.6.2.21 INC
        22. 4.6.2.22 INCD
        23. 4.6.2.23 INV
        24. 4.6.2.24 JC,JHS
        25. 4.6.2.25 JEQ,JZ
        26. 4.6.2.26 JGE
        27. 4.6.2.27 JL
        28. 4.6.2.28 JMP
        29. 4.6.2.29 JN
        30. 4.6.2.30 JNC,JLO
        31. 4.6.2.31 JNZ,JNE
        32. 4.6.2.32 MOV
        33. 4.6.2.33 NOP
        34. 4.6.2.34 POP
        35. 4.6.2.35 PUSH
        36. 4.6.2.36 RET
        37. 4.6.2.37 RETI
        38. 4.6.2.38 RLA
        39. 4.6.2.39 RLC 所取代:
        40. 4.6.2.40 RRA
        41. 4.6.2.41 RRC
        42. 4.6.2.42 SBC
        43. 4.6.2.43 SETC
        44. 4.6.2.44 SETN
        45. 4.6.2.45 SETZ
        46. 4.6.2.46 SUB
        47. 4.6.2.47 SUBC
        48. 4.6.2.48 SWPB
        49. 4.6.2.49 SXT
        50. 4.6.2.50 TST
        51. 4.6.2.51 异或
      3. 4.6.3 MSP430X 扩展指令
        1. 4.6.3.1  ADCX
        2. 4.6.3.2  ADDX
        3. 4.6.3.3  ADDCX
        4. 4.6.3.4  ANDX
        5. 4.6.3.5  BICX
        6. 4.6.3.6  BISX
        7. 4.6.3.7  BITX
        8. 4.6.3.8  CLRX
        9. 4.6.3.9  CMPX
        10. 4.6.3.10 DADCX
        11. 4.6.3.11 DADDX
        12. 4.6.3.12 DECX
        13. 4.6.3.13 DECDX
        14. 4.6.3.14 INCX
        15. 4.6.3.15 INCDX
        16. 4.6.3.16 INVX
        17. 4.6.3.17 MOVX
        18. 4.6.3.18 POPM
        19. 4.6.3.19 PUSHM
        20. 4.6.3.20 POPX
        21. 4.6.3.21 PUSHX
        22. 4.6.3.22 RLAM
        23. 4.6.3.23 RLAX
        24. 4.6.3.24 RLCX
        25. 4.6.3.25 RRAM
        26. 4.6.3.26 RRAX
        27. 4.6.3.27 RRCM
        28. 4.6.3.28 RRCX
        29. 4.6.3.29 RRUM
        30. 4.6.3.30 RRUX
        31. 4.6.3.31 SBCX
        32. 4.6.3.32 SUBX
        33. 4.6.3.33 SUBCX
        34. 4.6.3.34 SWPBX
        35. 4.6.3.35 SXTX
        36. 4.6.3.36 TSTX
        37. 4.6.3.37 XORX
      4. 4.6.4 MSP430X 寻址指令
        1. 4.6.4.1  ADDA
        2. 4.6.4.2  BRA
        3. 4.6.4.3  CALLA
        4. 4.6.4.4  CLRA
        5. 4.6.4.5  CMPA
        6. 4.6.4.6  DECDA
        7. 4.6.4.7  INCDA
        8. 4.6.4.8  MOVA
        9. 4.6.4.9  RETA
        10. 4.6.4.10 TSTA
        11. 4.6.4.11 SUBA
  6. 基本时钟模块+
    1. 5.1 基本时钟模块+ 介绍
    2. 5.2 基本时钟模块+ 的操作
      1. 5.2.1 适用于低功耗应用的基本时钟模块+ 功能
      2. 5.2.2 内部超低功耗低频振荡器 (VLO)
      3. 5.2.3 LFXT1 振荡器
      4. 5.2.4 XT2 振荡器
      5. 5.2.5 数控振荡器 (DCO)
        1. 5.2.5.1 禁用 DCO
        2. 5.2.5.2 调整 DCO 的频率
        3. 5.2.5.3 为 DCO 使用外部电阻器 (ROSC)
      6. 5.2.6 DCO 调制器
      7. 5.2.7 基本时钟模块+ 失效防护操作
        1. 5.2.7.1 MCLK 以晶振为时钟源
      8. 5.2.8 时钟信号的同步
    3. 5.3 基本时钟模块+ 寄存器
  7. DMA 控制器
    1. 6.1 DMA 介绍
    2. 6.2 DMA 操作
      1. 6.2.1  DMA 寻址模式
      2. 6.2.2  DMA 传输模式
        1. 6.2.2.1 单次传输
        2. 6.2.2.2 块传输
        3. 6.2.2.3 突发块传输
      3. 6.2.3  初始化 DMA 传输
        1. 6.2.3.1 边沿触发的触发器
        2. 6.2.3.2 电平触发的触发器
        3. 6.2.3.3 DMA传输的暂停执行执指令
      4. 6.2.4  停止 DMA 传输
      5. 6.2.5  DMA 通道的优先级
      6. 6.2.6  DMA 传输周期
      7. 6.2.7  使用带有系统中断的 DMA
      8. 6.2.8  DMA 控制器中断
        1. 6.2.8.1 DMAIV 软件示例
      9. 6.2.9  在 DMA控制器下使用 USCI_B I2C 模块
      10. 6.2.10 在 DMA 控制器下使用 ADC12
      11. 6.2.11 在 DMA 控制器下使用 DAC12
      12. 6.2.12 在 DMA 控制器下写入闪存
    3. 6.3 DMA 寄存器
  8. 闪存控制器
    1. 7.1 闪存存储器介绍
    2. 7.2 闪存存储器分段
      1. 7.2.1 段 A
    3. 7.3 闪存存储器运行
      1. 7.3.1 闪存存储器时序发生器
        1. 7.3.1.1 闪存时序发生器时钟选择
      2. 7.3.2 擦除闪存存储器
        1. 7.3.2.1 从闪存中启动擦除
        2. 7.3.2.2 从 RAM 中启动擦除
      3. 7.3.3 写入闪存存储器
        1. 7.3.3.1 字节或字写入
        2. 7.3.3.2 从闪存中启动字节或字写入
        3. 7.3.3.3 从 RAM 启动字节或字写入
        4. 7.3.3.4 块写入
        5. 7.3.3.5 块写入流程和示例
      4. 7.3.4 写入或擦除期间的闪存存储器访问
      5. 7.3.5 停止一个写入或擦除周期
      6. 7.3.6 边界读取模式
      7. 7.3.7 配置和访问闪存存储器控制器
      8. 7.3.8 闪存存储器控制器中断
      9. 7.3.9 编辑闪存存储器器件
        1. 7.3.9.1 使用 JTAG 对闪存进行编程
        2. 7.3.9.2 使用引导加载程序 (BSL) 对闪存进行编程
        3. 7.3.9.3 使用定制解决方案对闪存进行编程
    4. 7.4 闪存寄存器
  9. 数字 I/O
    1. 8.1 数字 I/O 介绍
    2. 8.2 数字 I/O 运行
      1. 8.2.1 输入寄存器 PxIN
      2. 8.2.2 输出寄存器 PxOUT
      3. 8.2.3 方向寄存器 PxDIR
      4. 8.2.4 上拉或下拉电阻器使能寄存器 PxREN
      5. 8.2.5 功能选择寄存器 PxSEL 和 PxSEL2
      6. 8.2.6 引脚振荡器
      7. 8.2.7 P1 和 P2 中断
        1. 8.2.7.1 中断标志寄存器 P1IFG、P2IFG
        2. 8.2.7.2 中断边沿选择寄存器 P1IES、P2IES
        3. 8.2.7.3 中断使能 P1IE,P2IE
      8. 8.2.8 配置未使用的端口引脚
    3. 8.3 输入 I/O 寄存器
      1. 8.3.1 PxIN 寄存器
      2. 8.3.2 PxOUT 寄存器
      3. 8.3.3 PxDIR 寄存器
      4. 8.3.4 PxIFG 寄存器
      5. 8.3.5 PxIES 寄存器
      6. 8.3.6 PxIE 寄存器
      7. 8.3.7 PxSEL 寄存器
      8. 8.3.8 PxSEL2 寄存器
      9. 8.3.9 PxREN 寄存器
  10. 电源电压监控器 (SVS)
    1. 9.1 电源电压监控器 (SVS) 介绍
    2. 9.2 SVS 运行
      1. 9.2.1 配置 SVS
      2. 9.2.2 SVS 比较器运行
      3. 9.2.3 更改 VLDx 位
      4. 9.2.4 SVS 运行范围
    3. 9.3 SVS 寄存器
  11. 10安全装置定时器+ (WDT+)
    1. 10.1 安全装置定时器+ (WDT+) 介绍
    2. 10.2 安全装置定时器+ 操作
      1. 10.2.1 安全装置定时器+ 计数器
      2. 10.2.2 安全装置模式
      3. 10.2.3 间隔定时器模式
      4. 10.2.4 安全装置定时器+ 的中断
      5. 10.2.5 安全装置定时器+ 时钟故障安全操作
      6. 10.2.6 在低功耗模式下的操作
      7. 10.2.7 软件示例
    3. 10.3 安全装置定时器+ 寄存器
  12. 11硬件乘法器
    1. 11.1 硬件乘法器介绍
    2. 11.2 硬件乘法器操作
      1. 11.2.1 操作数寄存器
      2. 11.2.2 结果寄存器
        1. 11.2.2.1 MACS 下溢和上溢
      3. 11.2.3 软件示例
      4. 11.2.4 RESLO 的间接寻址
      5. 11.2.5 使用中断
    3. 11.3 硬件乘法器寄存器
  13. 12定时器_A
    1. 12.1 定时器_A 介绍
    2. 12.2 定时器_A 的运行
      1. 12.2.1 16 位定时器计数器
        1. 12.2.1.1 时钟源选择和分频
      2. 12.2.2 启动定时器
      3. 12.2.3 定时器模式控制
        1. 12.2.3.1 上数模式
        2. 12.2.3.2 更改周期寄存器 TACCR0
        3. 12.2.3.3 连续模式
        4. 12.2.3.4 连续模式的使用
        5. 12.2.3.5 向上/向下计数模式
        6. 12.2.3.6 更改周期寄存器 TACCR0
        7. 12.2.3.7 增/减模式的使用
      4. 12.2.4 捕捉/比较区块
        1. 12.2.4.1 通过软件初始化捕捉
        2. 12.2.4.2 比较模式
      5. 12.2.5 输出单元
        1. 12.2.5.1 输出模式
        2. 12.2.5.2 输出示例 – 向上计数模式下的计时器
        3. 12.2.5.3 输出示例 – 连续模式下的计时器
        4. 12.2.5.4 输出示例 – 向上/向下计数模式下的计时器
      6. 12.2.6 定时器_A 中断
        1. 12.2.6.1 TACCR0 中断
        2. 12.2.6.2 TAIV,中断向量发生器
        3. 12.2.6.3 TAIV 软件举例
    3. 12.3 Timer_A 寄存器
  14. 13定时器_B
    1. 13.1 定时器_B 的介绍
      1. 13.1.1 与定时器_A 的相似和不同之处
    2. 13.2 Timer_B 的操作
      1. 13.2.1 16 位定时器计数器
        1. 13.2.1.1 TBR 的长度
        2. 13.2.1.2 时钟源选择和分频器
      2. 13.2.2 启动定时器
      3. 13.2.3 定时器模式控制
        1. 13.2.3.1 增模式
        2. 13.2.3.2 更改周期寄存器 TBCL0
        3. 13.2.3.3 连续模式
        4. 13.2.3.4 连续模式的使用
        5. 13.2.3.5 增/减模式
        6. 13.2.3.6 改变周期寄存器 TBCL0 的值
        7. 13.2.3.7 增/减模式的使用
      4. 13.2.4 捕捉/比较块
        1. 13.2.4.1 捕捉模式
          1. 13.2.4.1.1 通过软件初始化捕捉
        2. 13.2.4.2 比较模式
          1. 13.2.4.2.1 比较锁存器 TBCLx
          2. 13.2.4.2.2 编组比较锁存器
      5. 13.2.5 输出单元
        1. 13.2.5.1 输出模式
          1. 13.2.5.1.1 输出示例,增模式中的定时器
          2. 13.2.5.1.2 输出示例,连续模式下的计时器
          3. 13.2.5.1.3 输出示例,定时器处于增/减模式
      6. 13.2.6 Timer_B 的中断
        1. 13.2.6.1 TBCCR0 的中断向量
        2. 13.2.6.2 TBIV,中断向量发生器
        3. 13.2.6.3 TBIV,中断处理程序示例
          1. 13.2.6.3.1 建议的 TBIV 的使用
    3. 13.3 Timer_B 的寄存器
  15. 14通用串行接口 (USI)
    1. 14.1 USI 介绍
    2. 14.2 USI 运行
      1. 14.2.1 USI 初始化
      2. 14.2.2 USI 时钟生成
      3. 14.2.3 SPI 模式
        1. 14.2.3.1 SPI 主控模块
        2. 14.2.3.2 SPI 受控模式
        3. 14.2.3.3 USISR 操作
        4. 14.2.3.4 SPI 中断
      4. 14.2.4 I2C 模式
        1. 14.2.4.1 I2C 主控模式
        2. 14.2.4.2 I2C 从模式
        3. 14.2.4.3 I2C 发送器
        4. 14.2.4.4 I2C 接收器
        5. 14.2.4.5 START 条件
        6. 14.2.4.6 STOP 条件
        7. 14.2.4.7 释放 SCL
        8. 14.2.4.8 仲裁
        9. 14.2.4.9 I2C 中断
    3. 14.3 USI 寄存器
  16. 15通用串行通信接口,UART 模式
    1. 15.1 USCI 概述
    2. 15.2 USCI 简介:UART 模式
    3. 15.3 USCI 操作:UART 模式
      1. 15.3.1  USCI 初始化和复位
      2. 15.3.2  字符格式
      3. 15.3.3  异步通信格式
        1. 15.3.3.1 空闲线多处理器格式
        2. 15.3.3.2 发送一个空闲帧
        3. 15.3.3.3 地址位多处理器格式
        4. 15.3.3.4 中断接收和生成
      4. 15.3.4  自动波特率检测
        1. 15.3.4.1 发送一个中断/同步域
      5. 15.3.5  IrDA 编码和解码
        1. 15.3.5.1 IrDA 编码
        2. 15.3.5.2 IrDA 解码
      6. 15.3.6  自动错误检测
      7. 15.3.7  USCI 接收使能
        1. 15.3.7.1 接收数据毛刺脉冲抑制
      8. 15.3.8  USCI 发送使能
      9. 15.3.9  UART 波特率生成
        1. 15.3.9.1 低频率波特率生成
        2. 15.3.9.2 过采样波特率生成
      10. 15.3.10 设置一个波特率
        1. 15.3.10.1 低频波特率模式的设置
        2. 15.3.10.2 过采样波特率模式的设置
      11. 15.3.11 发送位时序
        1. 15.3.11.1 低频波特率模式位时序
        2. 15.3.11.2 过采样波特率模式位时序
      12. 15.3.12 接收位时序
      13. 15.3.13 典型的波特率和错误
      14. 15.3.14 在低功耗模式下 UART 模式中使用 USCI 模块
      15. 15.3.15 USCI 中断
        1. 15.3.15.1 USCI 发送中断操作
        2. 15.3.15.2 USCI 接收中断操作
        3. 15.3.15.3 USCI 中断用法
          1. 15.3.15.3.1 共享中断向量的软件示例,数据接收
          2.        560
          3. 15.3.15.3.2 共享中断向量的软件示例,数据发送
    4. 15.4 USCI 寄存器:UART 模式
  17. 16通用串行通信接口,SPI 模式。
    1. 16.1 USCI 概述
    2. 16.2 USCI 简介:SPI 模式
    3. 16.3 USCI 操作:SPI 模式
      1. 16.3.1 USCI 的初始化和复位
      2. 16.3.2 字符格式
      3. 16.3.3 主模式
        1. 16.3.3.1 4 引脚 SPI 主控模式
      4. 16.3.4 从模式
        1. 16.3.4.1 4 引脚 SPI 受控模式
      5. 16.3.5 SPI 使能
        1. 16.3.5.1 发送使能
        2. 16.3.5.2 接收使能
      6. 16.3.6 串行时钟控制
        1. 16.3.6.1 串行时钟的极性和相位
      7. 16.3.7 使用 SPI 低功耗模式
      8. 16.3.8 SPI 中断
        1. 16.3.8.1 SPI 发送中断操作
        2. 16.3.8.2 SPI 接收中断操作
        3. 16.3.8.3 USCI 中断用法
          1. 16.3.8.3.1 共享的接收中断矢量软件示例
          2.        584
          3. 16.3.8.3.2 共享的发送中断矢量软件示例
    4. 16.4 USCI 寄存器:SPI 模式
  18. 17通用串行通信接口,I2C 模式
    1. 17.1 USCI 概述
    2. 17.2 USCI 简介:I2C 模式
    3. 17.3 USCI 操作:I2C 模式
      1. 17.3.1 USCI 初始化和复位
      2. 17.3.2 I2C 串行数据
      3. 17.3.3 I2C 寻址模式
        1. 17.3.3.1 7 位寻址
        2. 17.3.3.2 10 位寻址
        3. 17.3.3.3 重复起始条件
      4. 17.3.4 I2C 模块的运行模式
        1. 17.3.4.1 受控模式
          1. 17.3.4.1.1 I2C 受控发送器模式
          2. 17.3.4.1.2 I2C 从接收器模式
          3. 17.3.4.1.3 I2C 从器件 10 位寻址模式
        2. 17.3.4.2 主控模式
          1. 17.3.4.2.1 I2C 主发送器模式
          2. 17.3.4.2.2 I2C 主接收器模式
          3. 17.3.4.2.3 I2C 主器件 10 位寻址模式
          4. 17.3.4.2.4 仲裁
      5. 17.3.5 I2C 时钟的发生与同步
        1. 17.3.5.1 时钟扩展
      6. 17.3.6 在处于低功耗模式中的 I2C 模式中使用 USCI 模块
      7. 17.3.7 I2C 模式下的 USCI 中断
        1. 17.3.7.1 I2C 发送中断操作
        2. 17.3.7.2 I2C 接收中断操作
        3. 17.3.7.3 I2C 状态更改中断操作
        4. 17.3.7.4 中断失量的分配
          1. 17.3.7.4.1 共享的接收中断矢量软件示例
          2.        616
          3. 17.3.7.4.2 共享的发送中断矢量软件示例
    4. 17.4 USCI 寄存器:I2C 模式
  19. 18USART 外设接口,USART 模式
    1. 18.1 USART 简介:UART 模式
    2. 18.2 USART 操作:UART 模式
      1. 18.2.1 USART 初始化和复位
      2. 18.2.2 字符格式
      3. 18.2.3 异步通信格式
        1. 18.2.3.1 空闲线多处理器格式
        2. 18.2.3.2 地址位多处理器格式
        3. 18.2.3.3 自动错误检测
      4. 18.2.4 USART 接收使能
      5. 18.2.5 USART 发送使能
      6. 18.2.6 USART 波特率生成
        1. 18.2.6.1 波特率位时序
        2. 18.2.6.2 决定调制值
        3. 18.2.6.3 发送位时序
        4. 18.2.6.4 接收位时序
        5. 18.2.6.5 典型的波特率和误差
      7. 18.2.7 USART 中断
        1. 18.2.7.1 USART 发送中断操作
        2. 18.2.7.2 USART 接收中断操作
        3. 18.2.7.3 接收开始边沿检测操作
        4. 18.2.7.4 接收开始边沿检测条件
    3. 18.3 USART 寄存器 – UART 模式
  20. 19USART 外设接口,SPI 模式。
    1. 19.1 USART 简介:SPI 模式
    2. 19.2 USART 操作:SPI 模式
      1. 19.2.1 USART 的初始化和复位
      2. 19.2.2 主模式
        1. 19.2.2.1 4 引脚 SPI 主控模式
      3. 19.2.3 从模式
        1. 19.2.3.1 4 引脚 SPI 受控模式
      4. 19.2.4 SPI 使能
        1. 19.2.4.1 发送使能
        2. 19.2.4.2 接收使能
      5. 19.2.5 串行时钟控制
        1. 19.2.5.1 串行时钟的极性和相位
      6. 19.2.6 SPI 中断
        1. 19.2.6.1 SPI 的发送中断操作
        2. 19.2.6.2 SPI 接收中断操作
    3. 19.3 USART 寄存器:SPI 模式
  21. 20OA
    1. 20.1 OA 介绍
    2. 20.2 OA 操作
      1. 20.2.1 OA 放大器
      2. 20.2.2 OA 输入
      3. 20.2.3 OA 输出和反馈路线
      4. 20.2.4 OA 配置
        1. 20.2.4.1 通用运算放大器模式
        2. 20.2.4.2 用于差分放大器的单位增益缓冲器
        3. 20.2.4.3 单位增益模式
        4. 20.2.4.4 比较器模式
        5. 20.2.4.5 同相 PGA 模式
        6. 20.2.4.6 级联同相 PGA 模式
        7. 20.2.4.7 反相 PGA 模式
        8. 20.2.4.8 差分放大器模式
    3. 20.3 OA 寄存器
  22. 21比较器_A+ (Comparator_A+)
    1. 21.1 比较器_A+ 介绍
    2. 21.2 比较器_A+ 的操作
      1. 21.2.1 比较器
      2. 21.2.2 输入模拟开关
      3. 21.2.3 输入短路开关
      4. 21.2.4 输出滤波器
      5. 21.2.5 基准电压发生器
      6. 21.2.6 Comparator_A+ 端口禁用寄存器 CAPD
      7. 21.2.7 比较器_A+ 的中断
      8. 21.2.8 Comparator_A+ 用于测量阻性元件
    3. 21.3 比较器_A+ 寄存器
  23. 22ADC10
    1. 22.1 ADC10 介绍
    2. 22.2 ADC10 的运行
      1. 22.2.1  10 位 ADC 内核
        1. 22.2.1.1 转换时钟选择
      2. 22.2.2  ADC10 输入和多路器
        1. 22.2.2.1 模拟端口选择
      3. 22.2.3  基准电压发生器
        1. 22.2.3.1 内部基准电压低功耗特性
      4. 22.2.4  自动关断
      5. 22.2.5  采样和转换时序
        1. 22.2.5.1 采样时序注意事项
      6. 22.2.6  转换时间
        1. 22.2.6.1 单通道单次转换模式
        2. 22.2.6.2 通道序列模式
        3. 22.2.6.3 单通道重复模式
        4. 22.2.6.4 通道的重复序列模式
        5. 22.2.6.5 使用 MSC 位
        6. 22.2.6.6 停止转换
      7. 22.2.7  ADC10 数据传输控制器
        1. 22.2.7.1 一个数据块传输模式
        2. 22.2.7.2 两个块传输模式
        3. 22.2.7.3 连续传输
        4. 22.2.7.4 DTC 传输周期时间
      8. 22.2.8  使用集成温度传感器
      9. 22.2.9  ADC10 接地和噪声注意事项
      10. 22.2.10 ADC10 中断
    3. 22.3 ADC10 寄存器
  24. 23ADC12
    1. 23.1 ADC12 介绍
    2. 23.2 ADC12 的操作
      1. 23.2.1 12 位 ADC 内核
        1. 23.2.1.1 转换时钟选择
      2. 23.2.2 ADC12 输入和多路复用器
        1. 23.2.2.1 模拟端口选择
      3. 23.2.3 基准电压发生器
      4. 23.2.4 采样和转换时序
        1. 23.2.4.1 扩展采样模式
        2. 23.2.4.2 脉冲采样模式
        3. 23.2.4.3 采样时序转换
      5. 23.2.5 转换存储器
      6. 23.2.6 ADC12转换模式
        1. 23.2.6.1 单通道单次转换模式
        2. 23.2.6.2 通道序列模式
        3. 23.2.6.3 单通道重复模式
        4. 23.2.6.4 通道的重复序列模式
        5. 23.2.6.5 使用多路采样和转换 (MSC) 位
        6. 23.2.6.6 停止转换
      7. 23.2.7 使用集成温度传感器
      8. 23.2.8 ADC12 接地和噪声考虑
      9. 23.2.9 ADC12 中断
        1. 23.2.9.1 ADC12IV,中断向量发生器
        2. 23.2.9.2 ADC12 中断处理软件示例
          1. 23.2.9.2.1 中断处理
    3. 23.3 ADC12 寄存器
  25. 24TLV 结构
    1. 24.1 TLV 介绍
    2. 24.2 支持的标签
      1. 24.2.1 DCO 校准 TLV 结构
        1. 24.2.1.1 使用绝对寻址模式的代码示例
        2.       747
        3. 24.2.1.2 使用 TLV 结构的代码示例
      2. 24.2.2 TAG_ADC12_1 校准 TLV 结构
        1. 24.2.2.1 温度传感器校准数据
        2. 24.2.2.2 集成电压基准校准数据
        3. 24.2.2.3 使用基准校准的示例
        4. 24.2.2.4 偏移和增益校准数据
        5. 24.2.2.5 使用增益和失调电压校准的示例
    3. 24.3 检查段 A 的完整性
    4. 24.4 分解段 A 的 TLV 结构
  26. 25DAC12
    1. 25.1 DAC12 介绍
    2. 25.2 DAC12 运行
      1. 25.2.1 DAC12 内核
        1. 25.2.1.1 DAC12 端口选择
      2. 25.2.2 DAC12 基准
        1. 25.2.2.1 DAC12 基准输入和电压输出缓冲器
      3. 25.2.3 更新 DAC12 电压输出
      4. 25.2.4 DAC12_xDAT 数据格式
      5. 25.2.5 DAC12 输出放大器的失调校准
      6. 25.2.6 编组多个 DAC12 模块
      7. 25.2.7 DAC12 中断
    3. 25.3 DAC12 寄存器
  27. 26SD16_A
    1. 26.1 SD16_A 介绍
    2. 26.2 SD16_A 操作
      1. 26.2.1  ADC 芯片
      2. 26.2.2  模拟输入范围和可编程增益放大器 (PGA)
      3. 26.2.3  基准电压发生器
      4. 26.2.4  自动断电
      5. 26.2.5  模拟输入对选择
        1. 26.2.5.1 模拟输入设置
      6. 26.2.6  模拟输入特性
      7. 26.2.7  数字滤波器
        1. 26.2.7.1 数字滤波器输出
      8. 26.2.8  转换存储器寄存器:SD16MEM0
        1. 26.2.8.1 输出数据格式
      9. 26.2.9  转换时间
        1. 26.2.9.1 单一转换
        2. 26.2.9.2 连续转换
      10. 26.2.10 使用集成温度传感器
      11. 26.2.11 中断处理
        1. 26.2.11.1 SD16IV,中断向量发生器
        2. 26.2.11.2 中断延时操作
    3. 26.3 SD16_A 寄存器
  28. 27SD24_A
    1. 27.1 SD24_A 介绍
    2. 27.2 SD24_A 的操作
      1. 27.2.1  ADC 芯片
      2. 27.2.2  模拟输入范围和可编程增益放大器 (PGA)
      3. 27.2.3  基准电压发电机
      4. 27.2.4  自动断电
      5. 27.2.5  模拟输入对的选择
        1. 27.2.5.1 模拟输入设置
      6. 27.2.6  模拟输入特性
      7. 27.2.7  数字滤波器
        1. 27.2.7.1 数字滤波器输出
      8. 27.2.8  转换存储器寄存器:SD24MEMx
        1. 27.2.8.1 输出数据格式
      9. 27.2.9  转换时间
        1. 27.2.9.1 单通道,单次转换
        2. 27.2.9.2 单通道,连续转换
        3. 27.2.9.3 通道组,单次转换
        4. 27.2.9.4 通道组,连续转换
      10. 27.2.10 使用预置的转换操作
      11. 27.2.11 使用集成温度传感器
      12. 27.2.12 中断处理
        1. 27.2.12.1 SD24IV,中断向量发生器
        2. 27.2.12.2 中断延时操作
        3. 27.2.12.3 SD24_A 中断处理软件示例
    3. 27.3 SD24_A 寄存器
  29. 28内嵌式仿真模块 (EEM)
    1. 28.1 EEM 说明
    2. 28.2 EEM 构建模块
      1. 28.2.1 触发器
      2. 28.2.2 触发序列发生器
      3. 28.2.3 状态储存(内部跟踪缓冲器)
      4. 28.2.4 时钟控制
    3. 28.3 嵌入式仿真模块的配置
  30.   修订历史记录

CMP[.W]

比较源和目的

CMP.B

比较源和目的

语法

CMP src,dst 或 CMP.W src,dst
CMP.B src,dst

操作

dst+.NOT.src+1

或者

(dst-src)

说明

从目的操作数中减去目的操作数。这是通过加上源操作数的 1 的补码加 1 来实现的。两个操作数不受影响,不存储结果;仅状态位受到影响。

状态位

N:如果结果为负 (src>dst),则置 1,如果为正,则复位 (src≤dst)

Z:如果为零 (src=dst),则置 1;否则复位 (src≠dst)

C:如果结果的 MSB 有进位,则置 1;否则复位

V:如果发生算术溢出,则置 1;否则复位

模式位

OSCOFF,CPUOFF 和 GIE 不受影响。

示例

R5 和 R6 被比较。如果它们相等,则程序在标签 EQUAL 处继续执行。

CMP   R5,R6   ; R5 = R6? 
JEQ   EQUAL   ; YES, JUMP

示例

两个 RAM 块被比较。如果它们不相等,则程序跳转到标签 ERROR 处。

     MOV   #NUM,R5      ; number of words to be compared
     MOV   #BLOCK1,R6   ; BLOCK1 start address in R6
     MOV   #BLOCK2,R7   ; BLOCK2 start address in R7
L$1  CMP   @R6+,0(R7)   ; Are Words equal? R6 increments
     JNZ   ERROR        ; No, branch to ERROR
     INCD  R7           ; Increment R7 pointer
     DEC   R5           ; Are all words compared? 
     JNZ   L$1          ; No, another compare

示例

由 EDE 和 TONI 寻址的 RAM 字节被比较。如果它们相等,则程序在标签 EQUAL 处继续执行。

CMP.B   EDE,TONI   ; MEM(EDE) = MEM(TONI)? 
JEQ     EQUAL      ; YES, JUMP