0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
MS51PC0AE

MS51PC0AE

  • 厂商:

    NUVOTON(新唐)

  • 封装:

    LQFP32_7X7MM

  • 描述:

    8位MUC单片机 LQFP32_7X7MM 2KB 2.4~5.5V 8051 24MHz

  • 数据手册
  • 价格&库存
MS51PC0AE 数据手册
MS51 1T 8051 8位微控制器 NuMicro® 家族 MS51系列 MS51FC0AE MS51XC0BE MS51EC0AE MS51TC0AE MS51PC0AE 技术参考手册 MS51 系列技术参考手册 The information described in this document is the exclusive intellectual property of Nuvoton Technology Corporation and shall not be reproduced without permission from Nuvoton. Nuvoton is providing this document only for reference purposes of NuMicro microcontroller based system design. Nuvoton assumes no responsibility for errors or omissions. All data and specifications are subject to change without notice. For additional information or questions, please contact: Nuvoton Technology Corporation. www.nuvoton.com Feb. 21, 2020 Page 1 of 460 Rev. 1.01 MS51 目录 1 概述 ................................................................................................................ 10 2 特性 ................................................................................................................ 11 3 料号信息 ......................................................................................................... 14 3.1 封装类型........................................................................................................................ 14 3.2 MS51 系列选型指南 .................................................................................................... 14 3.3 MS51 命名规则 ............................................................................................................ 15 4 引脚配置 ......................................................................................................... 16 4.1 MS51 32KB 系列引脚图 ............................................................................................. 16 4.1.1 QFN 33封装 ..................................................................................................................... 16 4.1.2 LQFP 32封装 ................................................................................................................... 17 4.1.3 TSSOP 28封装................................................................................................................ 18 4.1.4 TSSOP 20封装................................................................................................................ 18 4.1.5 QFN 20封装 ..................................................................................................................... 19 4.2 MS51 32KB系列引脚描述 .......................................................................................... 20 5 功能框图 ......................................................................................................... 24 5.1 MS51 32KB 系列框图 ................................................................................................. 24 6 功能描述 ......................................................................................................... 25 6.1 内存架构........................................................................................................................ 25 6.1.1 概述 .................................................................................................................................. 25 MS51 系列技术参考手册 6.1.2 程序内存编程内存 (APROM 及 LDROM) .................................................................... 25 6.1.3 数据存储器数据内存 (Data Flash) ................................................................................ 27 6.1.4 安全保护存储器(SPROM) ............................................................................................. 27 6.1.5 用户配置区 (CONFIG) ................................................................................................... 27 6.1.6 数据存储器 (RAM) .......................................................................................................... 34 6.1.7 特殊功能寄存器 (SFR) ................................................................................................... 37 6.2 系统管理...................................................................................................................... 205 6.2.1 时钟系统......................................................................................................................... 205 6.2.2 电源管理......................................................................................................................... 212 6.2.3 电源监控與复位 ............................................................................................................. 213 6.2.4 中断系统......................................................................................................................... 227 6.3 内存控制器 .................................................................................................................. 243 6.3.1 在应用编程 (IAP) .......................................................................................................... 243 6.3.2 在电路编程(ICP) ........................................................................................................... 258 6.3.3 片上调试器 (OCD) ........................................................................................................ 258 6.3.4 96位序列号 .................................................................................................................... 260 Feb. 21, 2020 Page 2 of 460 Rev. 1.01 MS51 6.4 通用I/O(GPIO) ............................................................................................................ 261 6.4.1 I/O模式 ........................................................................................................................... 261 6.4.2 引脚中断(PIT) ................................................................................................................ 263 6.4.3 控制寄存器..................................................................................................................... 264 6.5 定时器.......................................................................................................................... 274 6.5.1 定时器/計數器0/1 .......................................................................................................... 274 6.5.2 定时器2 和输入捕获 ..................................................................................................... 283 6.5.3 定时器 3 ......................................................................................................................... 299 6.6 脉冲宽度调制(PWM) ................................................................................................. 303 6.6.1 概述 ................................................................................................................................ 303 6.6.2 引脚配置......................................................................................................................... 303 6.6.3 结构框图......................................................................................................................... 304 6.6.4 功能描述......................................................................................................................... 305 6.6.5 PWM 中断 ...................................................................................................................... 310 6.6.6 PWM 的控制寄存器 ...................................................................................................... 312 6.7 看门狗(WDT) .............................................................................................................. 334 6.7.1 概述 ................................................................................................................................ 334 6.7.2 WDT 溢出复位功能....................................................................................................... 335 6.7.3 WDT 通用定时器功能................................................................................................... 335 6.7.4 WDT控制寄存器............................................................................................................ 337 6.8 唤醒定时器(WKT) ...................................................................................................... 339 6.8.1 概述 ................................................................................................................................ 339 6.8.2 WKT控制寄存器 ............................................................................................................ 339 6.9.1 概述 ................................................................................................................................ 343 6.9.2 操作模式......................................................................................................................... 343 6.9.3 波特率............................................................................................................................. 346 6.9.4 帧错误检测..................................................................................................................... 349 6.9.5 多机通信......................................................................................................................... 349 6.9.6 自动地址识别 ................................................................................................................. 350 6.9.7 串口控制寄存器 ............................................................................................................. 351 6.10 ISO 7816-3 接口 (SC0~2 和 UART2 ~ 4) ........................................................ 367 6.10.1 概述 ................................................................................................................................ 367 6.10.2 操作模式......................................................................................................................... 368 6.10.3 ISO 7816-3 数据传输 ................................................................................................... 371 6.10.4 初始化字符 TS .............................................................................................................. 371 6.10.5 错误信号和字符重复 ..................................................................................................... 372 6.10.6 块保护时间和扩展保护时间 ......................................................................................... 372 6.10.7 智能卡控制寄存器 ......................................................................................................... 373 Feb. 21, 2020 Page 3 of 460 Rev. 1.01 MS51 系列技术参考手册 6.9 串口 (UART0 和 UART1) .......................................................................................... 343 MS51 6.11 2 I C总线接口 .......................................................................................................... 388 6.11.1 概述 ................................................................................................................................ 388 6.11.2 功能描述......................................................................................................................... 388 2 6.11.3 I C 中断服务程序典型结构范例 .................................................................................. 397 2 6.11.4 I C 超时 .......................................................................................................................... 400 2 6.11.5 I C 中断 .......................................................................................................................... 401 2 6.11.6 I C控制寄存器 ............................................................................................................... 401 6.12 串行外围总线 (SPI).............................................................................................. 408 6.12.1 概述 ................................................................................................................................ 408 6.12.2 操作模式......................................................................................................................... 410 6.12.3 时钟格式和数据传输 ..................................................................................................... 410 6.12.4 片选管脚设置 ................................................................................................................. 412 6.12.5 模式错误检测 ................................................................................................................. 412 6.12.6 写冲突错误..................................................................................................................... 412 6.12.7 覆盖错误......................................................................................................................... 413 6.12.8 SPI 中断 ......................................................................................................................... 413 6.12.9 SPI控制寄存器 .............................................................................................................. 413 6.13 12位模数转换器 (ADC) ....................................................................................... 419 6.13.1 概述 ................................................................................................................................ 419 6.13.2 功能描述......................................................................................................................... 419 6.13.3 ADC 连续转换 ............................................................................................................... 421 6.13.4 ADC控制寄存器 ............................................................................................................ 422 6.14 辅助功能 ................................................................................................................ 442 MS51 系列技术参考手册 6.14.1 双 DPTR......................................................................................................................... 442 7 应用电路 ....................................................................................................... 446 7.1 供电电路...................................................................................................................... 446 7.2 外围应用电路 .............................................................................................................. 447 8 电气特性 ....................................................................................................... 448 9 封装尺寸 ....................................................................................................... 449 9.1 QFN 33-管脚 (4.0 x 4.0 x 0.8 毫米) ........................................................................ 449 9.2 LQFP 32-管脚 (7.0 x 7.0 x 1.4 毫米)....................................................................... 450 9.3 TSSOP 28-管脚 (4.4 x 9.7 x 1.0 毫米) ................................................................... 451 9.4 TSSOP 20-管脚 (4.4 x 6.5 x 0.9 毫米) .................................................................. 452 9.5 QFN 20-管脚 (3.0 x 3.0 x 0.5毫米).......................................................................... 453 10 名词缩写 ....................................................................................................... 454 10.1 Feb. 21, 2020 名词缩写 ................................................................................................................ 454 Page 4 of 460 Rev. 1.01 MS51 11 指令集........................................................................................................... 455 11.1 指令集以及寻址模式 ............................................................................................ 455 11.2 读-修改-回写指令 ................................................................................................. 456 11.3 指令集列表 ............................................................................................................ 457 12 版本历史 ....................................................................................................... 460 MS51 系列技术参考手册 Feb. 21, 2020 Page 5 of 460 Rev. 1.01 MS51 图集 图 4.1‑1 LQFP-33封装引脚配置.................................................................................................... 16 图 4.1‑2 LQFP-32 封装引脚配置................................................................................................... 17 图 4.1‑3 TSSOP28封装引脚配置 .................................................................................................. 18 图 4.1‑4 TSSOP20封装引脚配置 .................................................................................................. 18 图 4.1‑5 QFN20封装引脚配置....................................................................................................... 19 图 5.1‑1 功能框图 ......................................................................................................................... 24 图 6.1‑1 MS51 程序内存映像 ........................................................................................................ 26 图 6.1‑2 SPROM内存映像和安全模式 .......................................................................................... 27 图 6.1‑3 CONFIG0 复位后自动重载............................................................................................. 29 图 6.1‑4 CONFIG2 上电复位自动重载 ......................................................................................... 31 图 6.1‑5 数据存储器地址映像 ....................................................................................................... 34 图 6.1‑6 内部256 字节RAM 地址 .................................................................................................. 35 图 6.2-1 时钟系统框图 ................................................................................................................. 205 图 6.2-2 欠压检测框图 ................................................................................................................. 216 图 6.2-3 nRESET 复位波形 ......................................................................................................... 220 图 6.2-4启动选择框图 .................................................................................................................. 224 图 6.4-1 准双向结构图 ................................................................................................................. 262 图 6.4-2 推挽模式结构图 ............................................................................................................. 262 图 6.4-3仅输入模式结构图 ........................................................................................................... 263 MS51 系列技术参考手册 图 6.4-4 开漏模式 ........................................................................................................................ 263 图 6.4-5 引脚中断框图 ................................................................................................................. 264 图 6.5-1 定时器/計數器0/1模式0.................................................................................................. 274 图 6.5-2 定时器/计数器0/1 模式1................................................................................................. 275 图 6.5-3 定时器/计数器0/1 模式2................................................................................................. 275 图 6.5-4 定时器/计数器0 模式3.................................................................................................... 276 图 6.5-5 定时器2 框图 ................................................................................................................. 284 图 6.5-6 定时器2 自动装载和输入捕获框图 ................................................................................. 285 图 6.5-7 定时器2 比较模式和捕获模式框图 ................................................................................. 286 图 6.5-8 定时器 3 框图 ................................................................................................................ 299 图 6.6-1 PWM0 框图 ................................................................................................................... 304 图 6.6-2 PWM1/2/3 框图 ............................................................................................................. 305 图 6.6-3 PWM0 输出电路框图 ..................................................................................................... 306 Feb. 21, 2020 Page 6 of 460 Rev. 1.01 MS51 图 6.6-4 PWM1/2/3 控制框图 ...................................................................................................... 307 图 6.6-5 PWM 边沿对齐波形图 ................................................................................................... 307 图 6.6-6 PWM 中心对齐波形 ...................................................................................................... 308 图 6.6-7 PWM0 互补模式和死区插入 .......................................................................................... 309 图 6.6-8 紧急停止框图 ................................................................................................................. 309 图 6.6-9 PWM 中断 ..................................................................................................................... 311 图 6.7-1 WDT 配置为复位功能 .................................................................................................... 335 图 6.7-2 WDT做定时器的框图 ..................................................................................................... 336 图 6.8-1 唤醒定时器框图 ............................................................................................................. 339 图 6.9-1 串口模式 0 时序图 ......................................................................................................... 343 图 6.9-2 串口模式 1 时序图 ......................................................................................................... 344 图 6.9-3 串口模式2 和 3 时序图................................................................................................... 345 图 6.10-1 智能卡 控制器框图....................................................................................................... 367 图 6.10-2 智能卡接口连接 ........................................................................................................... 369 图 6.10-3 智能卡激活和冷复位流程 ............................................................................................ 369 图 6.10-4 智能卡热复位流程 ........................................................................................................ 370 图 6.10-5 智能卡释放流程 .......................................................................................................... 370 图 6.10-6 智能卡数据格式 .......................................................................................................... 371 图 6.10-7 初始化字符 TS ........................................................................................................... 372 图 6.10-8 智能卡错误信号 ........................................................................................................... 372 图 6.10-10 接收方向块保护时间操作 ........................................................................................... 373 图 6.10-11额外保护时间操作....................................................................................................... 373 2 图 6.11-1 I C 总线连接 ................................................................................................................ 388 2 图 6.11-2 I C 总线协议 ................................................................................................................ 388 图 6.11-3 启动、 重复启动、停止条件 ........................................................................................ 389 图 6.11-4 主机发送数据给一个7位地址从机 ................................................................................ 389 图 6.11-5主机从一个7位地址从机读取数据 ................................................................................. 390 图 6.11-6 一次传输中的I2C数据格式 ........................................................................................... 390 图 6.11-7应答位 ........................................................................................................................... 391 图 6.11-8 两台主机仲裁过程 ........................................................................................................ 391 2 2 图 6.11-9 根据当前I C 状态来控制I C总线 .................................................................................. 392 图 6.11-10 主机发送模式流程和寄存器状态 ................................................................................ 393 Feb. 21, 2020 Page 7 of 460 Rev. 1.01 MS51 系列技术参考手册 图 6.10-9 发送方向块保护时间操作 ............................................................................................ 373 MS51 图 6.11-11 主机接收模式流程和寄存器状态 ................................................................................ 394 图 6.11-12 从机接收模式流程和状态 ........................................................................................... 396 图 6.11-13 广播呼叫模式流程和状态 ........................................................................................... 396 2 图 6.11-14 I C 超时计数器 .......................................................................................................... 401 图 6.11-15 保持时间延长使能...................................................................................................... 402 图 6.12-1 SPI 框图 ...................................................................................................................... 408 图 6.12-2 SPI多主机,多从机连接图........................................................................................... 409 图 6.12-3 SPI 单主机单从机连接图 ............................................................................................. 409 图 6.12-4 SPI 时钟格式 ............................................................................................................... 410 图 6.12-5 SPI CPHA = 0时时钟和数据格式................................................................................. 411 图 6.12-6 SPI CPHA = 1 时时钟和数据格式 ............................................................................... 412 图 6.12-7 SPI 覆盖波形 ............................................................................................................... 413 图 6.12-8 SPI 中断请求 ............................................................................................................... 413 图 6.13-1 12位ADC框图 .............................................................................................................. 419 图 6.13-2 外部触发 ADC 电路 ..................................................................................................... 421 图 6.13-3 ADC 结果比较器 ........................................................................................................ 421 图 6.13-4 ADC连续转换模式,包含 DMA ................................................................................. 422 ® 图 7.1-1 NuMicro MS51 供电电路 ............................................................................................. 446 ® 图 7.2-1 NuMicro MS51外围接口电路 ....................................................................................... 447 图 9.1-1 QFN-33 封装尺寸 .......................................................................................................... 449 MS51 系列技术参考手册 图 9.2-1 LQFP-32 封装尺寸 ........................................................................................................ 450 图 9.3-1 TSSOP-28 封装尺寸...................................................................................................... 451 图 9.4-1 TSSOP-20 封装尺寸...................................................................................................... 452 图 9.5-1 QFN-20 封装尺寸 .......................................................................................................... 453 Feb. 21, 2020 Page 8 of 460 Rev. 1.01 MS51 表集 表 6.1‑1 特殊功能寄存器地址映像 ................................................................................................. 40 表 6.1‑2 特殊功能寄存器定义和复位值 .......................................................................................... 48 表 6.1-3 影响标志位设置的指令 ................................................................................................... 135 表 6.2-1 BOF 复位值 .................................................................................................................... 217 表 6.2-2 最小欠压检测脉冲宽度 ................................................................................................... 220 表 6.2-3 中断函数首地址表 ........................................................................................................... 227 表 6.2-4 中断优先级设置 .............................................................................................................. 231 表 6.2-5 各级中断源特性表 ........................................................................................................... 232 表 6.3-1 IAP 模式及命令 ............................................................................................................... 244 表 6.4-1 I/O 模式配置 ................................................................................................................... 261 表 6.6-1 PWM 引脚定义和使能寄存器表 ...................................................................................... 303 表 6.7-1 WDT 定时时间表 ............................................................................................................ 334 表 6.9-1 串口UART0 模式/波特率描述 ........................................................................................ 347 表 6.9-2 串口 UART1 模式/波特率描述 ....................................................................................... 347 表 6.10-1 智能卡或 UART 管脚定义以及使能控制寄存器 ............................................................ 368 表 6.12-1 片选管脚配置 ................................................................................................................ 416 表 10.1-1 名词缩写列表 ................................................................................................................ 454 表 11.1-1 指令集寻址方式 ............................................................................................................ 455 表 11.1‑2 指令影响标志位结果 .................................................................................................... 455 Feb. 21, 2020 Page 9 of 460 Rev. 1.01 MS51 系列技术参考手册 表 11.3-1 指令集 ........................................................................................................................... 459 MS51 1 概述 MS51为带有flash的增强型8位8051内核微控制器(1T工作模式),指令集与标准的80C51完全兼容并 具备更高效能。 MS51系列内嵌32K字节的Flash存储区,通常称作APROM,用于存放用户程序代码。该Flash存储区支 持在应用编程(IAP)功能,即可通过片内固件更新程序代码。IAP功能同时提供用户可自行配置程序区 域或数据存储区。IAP功能可以对数据存储区进行读写操作,同时读数据也可以通过MOVC指令来实现 。MS51有一个额外的存储区称作LDROM,该区域通常存放用于执行在系统编程(ISP)的引导代码( boot code),LDROM的大小最多可配置到 4K 字节。为了方便烧写和校验,整个flash区域支持并行烧 录和ICP烧录。可通过加密位对Flash加密,保障程序代码无法被读出。MS51 32K系列内嵌256字节 SRAM,2K字节XRAM。 MS51 32KB系列提供丰富的特殊功能模块,包括:256字节SRAM,2K字节XRAM。最多可达29个标准 管脚。两组标准16位定时器/计数器:定时器0及1,一组带有3路管脚输入捕获模式的16位定时器:定时 器2,一组看门狗定时器(WDT),一组自唤醒定时器(WKT),一组带自动重装载功能,可用于产生 标准波特率的定时器:定时器3。两组标准串行口(UART),这两组串行口具有帧错误侦测及自动地址 2 识别功能。一组SPI,一组I C,3组ISO 7816-3标准界面,6通道标准型PWM输出,6路增强型PWM输 出,16通道12位ADC。上述功能对应产生24个中断源,具有4级中断优先级配置。 MS51 32KB系列支持3组时钟源输入,所有时钟源支持软件切换立即生效功能(on-the-fly)。3组时钟 源包括:外部时钟,10kHz内部RC振荡时钟和一个出厂时已校准到室温下精度达±1%的16MHz内部高 速时钟。MS51提供额外的电源监控管理模块,例如上电复位和4级低电压检测,该模块用于保障芯片在 上电及掉电时系统稳定工作。 MS51可运行在两种低功耗模式-空闲模式和掉电模式,可通过软件选择运行在哪种模式。空闲模式时 ,芯片主时钟关闭,但部分功能模块仍然运行。掉电模式下芯片全部时钟关闭确保芯片功耗达到最低。 在正常工作模式下,也可选择主时钟除频方式工作,确保在功耗和性能之间灵活运用。高效能、丰富的 功能模块及配置,MS51可灵活用于各种应用场合,家电产品,甚至是马达控制等高端需求控制系统。 MS51 系列技术参考手册 Feb. 21, 2020 Page 10 of 460 Rev. 1.01 MS51 2 特性 核心和系统  全静态8位1T 8051内核CMOS微控制器  指令集完全兼容 MCS-51  4级优先级中断配置  双数据指针(DPTRs) 上电复位 (POR)  POR 电压门限1.15V 欠压检测 (BOD)  4级电压选择支持欠压中断和复位功能 (4.4V / 3.7V / 2.7V / 2.2V) 低电压复位 (LVR)  电压门限 2.0V  96位唯一序列号(UID)  128位用户码(UCID)  128字节加密保护代码空间       32 KB应用代码空间(APROM) . 4/3/2/1 KB 加载代码空间(LDROM), 与APROM共享Flash空间, 可利用ISP来引导代码来更新APROM 支持内嵌内存128字节页擦除,可作为Data Flash使用 128字节加密保护代码空间 通过安全加锁位保护整块内存不被外部读取 支持系统编程(ISP), 在应用编程(IAP) 更新内嵌内存  支持通过SWD/ICE接口的2线ICP更新  内嵌256KB SRAM  内嵌额外 2 KB字节 RAM (XRAM)通过MOVX 指令读写  4~24 MHz 外部高速晶振(HXT)为精确的时间操作  默认16 MHz高速内部RC振荡器 (HIRC) 校正精度±1% (25 °C, 3.3 V), ±2% ( -20~105°C. 2.4 ~ 5.5 V)  高速内部RC振荡器可配置为24 MHz  10kHz低速内部振荡器(LIRC) ±1%精度等级 (25 C, 3.3 V) 8051 安全 存储 Flash 时钟 外部时钟源 内置时钟源 定时器 Feb. 21, 2020 Page 11 of 460 Rev. 1.01 MS51 系列技术参考手册 SRAM MS51 16位定时器  两组16位定时器/计数器0和1,与标准8051兼容  一组16位定时器2带有3路输入捕获功能,9个输入管脚可供选择  一组16位自动重装载功能定时器3,可用于配置串行口UART的 波特率  一组6位看门狗定时器(WDT)  溢出时间间隔可选择 6.40 ms ~ 1.638s 由内部10 kHz独立时钟 作为时钟源  可用作掉电模式或者空闲模式下的唤醒  看门狗溢出可触发中断或复位芯片  一组16位上计数自唤醒功能定时器(WKT)  内部10 kHz独立时钟作为时钟源  用于低功耗模式下自主唤醒  溢出可触发中断  最多可至12路输出选择  支持最大时钟源频率达 24 MHz  四个 PWM 模块, 12路PWM输出  支持每路独立输出模式输出  支持3对互补模式PWM输出  8位分辨率的死区插入  最大16位分辨率的周期  每路PWM管脚支持掩码功能屏蔽输出功能和三态使能  支持刹车功能  ADC比较事件产生刹车  模拟输入电压范围: 0 ~ AVDD.  12位分辨率和10位精度保证.  单端输入模式 16 个信道  1 个内部通道, 带隙电压 (VBG).  最快ADC 转换频率1 MHz.  500 KSPS 采样率  软件写 1 ADCS 位触发转换  外部管脚 (STADC) 触发转换  PWM 触发转换  支持2路标准UART: UART0, UART1 看门狗 WKT唤醒定时器 PWM MS51 系列技术参考手册 模拟接口 模数转换 (ADC) 通信接口 UART Feb. 21, 2020 Page 12 of 460 Rev. 1.01 MS51 2 IC  UART波特率时钟可选HIRC或HXT  全双工异步通信  可发送或接收第9位.  可通过软件配置TXD与RXD管脚对换位置  1 组I C 设备     主机/从机 模式 主从机双向传输模式 7位地址模式 标准模式 (100 kbps快速模式 (400 kbps) 和快速加模式 (1 Mbps) 2 2 内建8位溢出定时器,当I C总线中止且定时器溢出时,产生I C 中断  2 支持保持时间可编程  支持一组 SPI控制器  支持主机或从机模式操作  支持MSB或LSB传送顺序  从机模式最高可达 12 MHz  支持三组ISO 7816-3  支持ISO 7816-3 协议 T=0, T=1  支持配置为全双工UART 模式.   4种 I/O 模式: – 准双向模式 – 推挽输出模式 – 开漏模式 – 高阻态输入 施密特触发输入 / TTL 模式可选 每个GPIO均 可配置为边沿 或电平触发的中断源 支持标准外部中断 ̅̅̅̅̅̅̅ 及̅̅̅̅̅̅̅.   支持高驱动力和高翻转速率的 I/O I/O 管脚可配置内部上拉 / 下拉功能  最大 I/O 速度为 24 MHz  使能引脚中断功能将使能唤醒功能 ESD  HBM 达 8 kV EFT  > ± 4.4 kV Latch-up  达150 mA SPI ISO-7816 GPIO   MS51 系列技术参考手册  ESD & EFT Feb. 21, 2020 Page 13 of 460 Rev. 1.01 MS51 料号信息 3 封装类型 3.1 料号 MSOP10 TSSOP14 MS51BA9AE MS51DA9AE TSSOP20 QFN20 TSSOP28 LQFP32 QFN33 MS51FB9AE MS51XB9AE MS51EC0AE MS51PC0AE MS51TC0AE MS51FC0AE MS51XB9BE MS51XC0BE MS51 系列选型指南 3.2 Flash (KB) SRAM (KB) LDROM (KB) [1] I/O Timer PWM ISO 7816-3 [2] UART SPI I2C ADC(12-Bit) 封装 通讯接口 MS51BA9AE 8 1 4 8 4 5 - 2 1 1 5-ch MSOP10 MS51DA9AE 8 1 4 12 4 5 - 2 1 1 7-ch TSSOP14 MS51XB9AE 16 1 4 18 4 6 - 2 1 1 8-ch QFN20 [3] MS51XB9BE 16 1 4 18 4 6 - 2 1 1 8-ch QFN20 [3] MS51FB9AE 16 1 4 18 4 6 - 2 1 1 8-ch TSSOP20 MS51FC0AE 32 2 4 18 4 8 2 2 1 1 10-ch TSSOP20 MS51XC0BE 32 2 4 18 4 8 2 2 1 1 10-ch QFN20 MS51EC0AE 32 2 4 26 4 10 3 2 1 1 15-ch TSSOP28 MS51TC0AE 32 2 4 30 4 12 3 2 2 1 15-ch QFN33 MS51PC0AE 32 2 4 30 4 12 3 2 2 1 15-ch LQFP32 料号 MS51 系列技术参考手册 注: 1. 2. 3. 4. LDROM 由 APROM 独立出 4/3/2/1KB Flash 区域,可用于进行 ISP 动作。 ISO 7816-3 可配置为 UART2~4。 封装具体尺寸请看章节9。 本技术参考手册仅针对 32KB 系列进行具体描述。 Feb. 21, 2020 Page 14 of 460 Rev. 1.01 MS51 MS51 命名规则 3.3 MS 51 F B 9 A E 内核 产品线 封装 Flash SRAM 保留 温度范围 1T 8051 51: Base Industry B: MSOP10 (3x3 mm) A: 8 KB 0: 2 KB D: TSSOP14 (4.4x5.0 mm) B: 16 KB 1: 4 KB E: TSSOP28 (4.4x9.7 mm) C: 32 KB 2: 8/12 KB F: TSSOP20 (4.4x6.5 mm) 3: 16 KB O: SOP20 (300 mil) 6: 32 KB P: LQFP32 (7x7 mm) 8: 64 KB T: QFN33 (4x4 mm) 9: 1 KB U: SOP28 (300 mil) A: 96 KB E:-40 ~ 105°C X: QFN20 (3x3mm) MS51 系列技术参考手册 Feb. 21, 2020 Page 15 of 460 Rev. 1.01 MS51 4 引脚配置 用户可以在第四章找到引脚的配置信息或使用NuTool - PinConfigure。NuTool – PinConfigure包含所有 ® NuMicro 家族芯片系列的所有型号,帮助客户正确方便的配置GPIO的多功能引脚。 MS51 32KB 系列引脚图 4.1 4.1.1 QFN 33封装 P0.1 / PWM0_CH4 / SPI0_MISO / IC4 / HXTOUT / PWM3_CH0 P0.0 / PWM0_CH3 / SPI0_MOSI / IC3 / UART1_RXD / T1 / HXTIN / PWM2_CH1 P1.0 / PWM0_CH2 / SPI0_CLK / IC2 / UART1_TXD / PWM2_CH0 P1.1 / ADC_CH7 / CLKO / IC1 / PWM0_CH1 / UART3_RXD / PWM1_CH1 P1.2 / PWM0_CH0 / IC0 / UART3_TXD / PWM1_CH0 P3.2 / PWM3_CH0 P3.1 / PWM2_CH1 P3.5 / SPI0_SS 24 23 22 21 20 19 18 17 相关型号: MS51TC0AE PWM0_BRAKE / CLKO / PWM0_CH0 / P3.3 25 16 P2.1 / ADC_CH9 / PWM2_CH0 UART1_RXD / I2C0_SCL / ICE_CLK / P0.2 26 15 P2.2 / ADC_CH10 / PWM1_CH1 / UART4_RXD PWM3_CH1 / UART2_TXD / PWM0_CH5 / IC5 / ADC_CH6 / P0.3 27 14 P2.3 / ADC_CH11 / PWM1_CH0 / UART4_TXD PWM2_CH1 / UART2_RXD / STADC / PWM0_CH3 / IC3 / ADC_CH5 / P0.4 28 13 P2.4 / ADC_CH12 / T0 PWM2_CH0 / UART3_TXD / T0 / PWM0_CH2 / IC6 / ADC_CH4 / P0.5 29 12 P1.3 / STADC / I2C0_SCL / ADC_CH13 UART0_TXD / ADC_CH3 / P0.6 30 11 P1.4 / PWM0_CH1 / I2C0_SDA / PWM0_BRAKE / ADC_CH14 / PWM1_CH1 UART0_RXD / ADC_CH2 / P0.7 31 10 P3.7 / UART1_TXD 9 P3.6 / UART1_RXD QFN33 33 VSS 1 2 3 4 5 6 7 8 SPI0_CLK / UART2_RXD / INT1 / ADC_CH0 / P1.7 VSS UART1_TXD / I2C0_SDA / ICE_DAT / P1.6 VDD PWM3_CH1 / UART3_TXD / IC7 / SPI0_SS / PWM0_CH5 / P1.5 SPI0_MISO / UART3_RXD / ADC_CH15 / P2.5 MS51 系列技术参考手册 nRESET / P2.0 32 SPI0_MOSI / UART2_TXD / INT0 / OSCIN / ADC_CH1 / P3.0 UART3_RXD / PWM3_CH1 / P3.4 Top transparent view 图 4.1‑ 1 LQFP-33 封装引脚配置 Feb. 21, 2020 Page 16 of 460 Rev. 1.01 MS51 4.1.2 LQFP 32封装 P0.1 / PWM0_CH4 / SPI0_MISO / IC4 / HXTOUT / PWM3_CH0 P0.0 / PWM0_CH3 / SPI0_MOSI / IC3 / UART1_RXD / T1 / HXTIN / PWM2_CH1 P1.0 / PWM0_CH2 / SPI0_CLK / IC2 / UART1_TXD / PWM2_CH0 P1.1 / ADC_CH7 / CLKO / IC1 / PWM0_CH1 / UART3_RXD / PWM1_CH1 P1.2 / PWM0_CH0 / IC0 / UART3_TXD / PWM1_CH0 P3.2 / PWM3_CH0 P3.1 / PWM2_CH1 P3.5 / SPI0_SS 24 23 22 21 20 19 18 17 相关型号: MS51PC0AE PWM0_BRAKE / CLKO / PWM0_CH0 / P3.3 25 16 P2.1 / ADC_CH9 / PWM2_CH0 UART1_RXD / I2C0_SCL / ICE_CLK / P0.2 26 15 P2.2 / ADC_CH10 / PWM1_CH1 / UART4_RXD PWM3_CH1 / UART2_TXD / PWM0_CH5 / IC5 / ADC_CH6 / P0.3 27 14 P2.3 / ADC_CH11 / PWM1_CH0 / UART4_TXD PWM2_CH1 / UART2_RXD / STADC / PWM0_CH3 / IC3 / ADC_CH5 / P0.4 28 13 P2.4 / ADC_CH12 / T0 PWM2_CH0 / UART3_TXD / T0 / PWM0_CH2 / IC6 / ADC_CH4 / P0.5 29 12 P1.3 / STADC / I2C0_SCL / ADC_CH13 UART0_TXD / ADC_CH3 / P0.6 30 11 P1.4 / PWM0_CH1 / I2C0_SDA / PWM0_BRAKE / ADC_CH14 / PWM1_CH1 UART0_RXD / ADC_CH2 / P0.7 31 10 P3.7 / UART1_TXD UART3_RXD / PWM3_CH1 / P3.4 32 9 P3.6 / UART1_RXD 1 2 3 4 5 6 7 8 nRESET / P2.0 SPI0_CLK / UART2_RXD / INT1 / ADC_CH0 / P1.7 VSS UART1_TXD / I2C0_SDA / ICE_DAT / P1.6 VDD PWM3_CH1 / UART3_TXD / IC7 / SPI0_SS / PWM0_CH5 / P1.5 SPI0_MISO / UART3_RXD / ADC_CH15 / P2.5 MS51 系列技术参考手册 SPI0_MOSI / UART2_TXD / INT0 / OSCIN / ADC_CH1 / P3.0 LQFP32 图 4.1‑ 2 LQFP-32 封装引脚配置 Feb. 21, 2020 Page 17 of 460 Rev. 1.01 MS51 4.1.3 TSSOP 28封装 相关型号: MS51EC0AE 1 28 P1.7 / ADC_CH0 / INT1 / UART2_RXD / SPI0_CLK 2 27 P3.0 / ADC_CH1 / OSCIN / INT0 / UART2_TXD / SPI0_MOSI VDD 3 26 P2.0 / nRESET PWM3_CH1 / UART3_TXD / IC7 / SPI0_SS / PWM0_CH5 / P1.5 4 25 P3.4 / PWM3_CH1 / UART3_RXD SPI0_MISO / UART3_RXD / ADC_CH15 / P2.5 5 24 P0.7 / ADC_CH2 / UART0_RXD PWM1_CH1 / ADC_CH14 / PWM0_BRAKE / I2C0_SDA / PWM0_CH1 / P1.4 6 23 P0.6 / ADC_CH3 / UART0_TXD ADC_CH13 / I2C0_SCL / STADC / P1.3 7 22 P0.5 / ADC_CH4 / IC6 / PWM0_CH2 / T0 / UART3_TXD / PWM2_CH0 T0 / ADC_CH12 / P2.4 8 21 P0.4 / ADC_CH5 / IC3 / PWM0_CH3 / STADC / UART2_RXD / PWM2_CH1 UART4_TXD / PWM1_CH0 / ADC_CH11 / P2.3 9 20 P0.3 / ADC_CH6 / IC5 / PWM0_CH5 / UART2_TXD / PWM3_CH1 UART4_RXD / PWM1_CH1 / ADC_CH10 / P2.2 10 19 P0.2 / ICE_CLK / I2C0_SCL / UART1_RXD PWM2_CH0 / ADC_CH9 / P2.1 11 18 P3.3 / PWM0_CH0 / CLKO / PWM0_BRAKE SPI0_SS / P3.5 12 17 P0.1 / PWM0_CH4 / SPI0_MISO / IC4 / HXTOUT / PWM3_CH0 PWM1_CH0 / UART3_TXD / IC0 / PWM0_CH0 / P1.2 13 16 P0.0 / PWM0_CH3 / SPI0_MOSI / IC3 / UART1_RXD / T1 / HXTIN / PWM2_CH1 PWM1_CH1 / UART3_RXD / PWM0_CH1 / IC1 / CLKO / ADC_CH7 / P1.1 14 15 P1.0 / PWM0_CH2 / SPI0_CLK / IC2 / UART1_TXD / PWM2_CH0 TSSOP28 VSS UART1_TXD / I2C0_SDA / ICE_DAT / P1.6 图 4.1‑ 3 TSSOP28 封装引脚配置 4.1.4 TSSOP 20封装 相关型号: MS51FC0AE 1 20 P0.4 / ADC_CH5 / IC3 / PWM0_CH3 / STADC / UART2_RXD / PWM2_CH1 UART0_TXD / ADC_CH3 / P0.6 2 19 P0.3 / ADC_CH6 / IC5 / PWM0_CH5 / UART2_TXD / PWM3_CH1 UART0_RXD / ADC_CH2 / P0.7 3 18 P0.2 / ICE_CLK / I2C0_SCL / UART1_RXD nRESET / P2.0 4 17 P0.1 / PWM0_CH4 / SPI0_MISO / IC4 / HXTOUT / PWM3_CH0 SPI0_MOSI / UART2_TXD / INT0 / OSCIN / ADC_CH1 / P3.0 5 16 P0.0 / PWM0_CH3 / SPI0_MOSI / IC3 / UART1_RXD / T1 / HXTIN / PWM2_CH1 SPI0_CLK / UART2_RXD / INT1 / ADC_CH0 / P1.7 6 15 P1.0 / PWM0_CH2 / SPI0_CLK / IC2 / UART1_TXD / PWM2_CH0 VSS 7 14 P1.1 / ADC_CH7 / CLKO / IC1 / PWM0_CH1 / UART3_RXD / PWM1_CH1 UART1_TXD / I2C0_SDA / ICE_DAT / P1.6 8 13 P1.2 / PWM0_CH0 / IC0 / UART3_TXD / PWM1_CH0 VDD 9 12 P1.3 / STADC / I2C0_SCL / ADC_CH13 PWM3_CH1 / UART3_TXD / IC7 / SPI0_SS / PWM0_CH5 / P1.5 10 11 P1.4 / PWM0_CH1 / I2C0_SDA / PWM0_BRAKE / ADC_CH14 / PWM1_CH1 TSSOP20 PWM2_CH0 / UART3_TXD / T0 / PWM0_CH2 / IC6 / ADC_CH4 / P0.5 MS51 系列技术参考手册 图 4.1‑ 4 TSSOP20 封装引脚配置 Feb. 21, 2020 Page 18 of 460 Rev. 1.01 MS51 4.1.5 QFN 20封装 16 17 PWM2_CH0 / UART3_TXD / T0 / PWM0_CH2 / IC6 / ADC_CH4 / P0.5 18 UART0_TXD / ADC_CH3 / P0.6 19 P0.1 / PWM0_CH4 / SPI0_MISO / IC4 / HXTOUT / PWM3_CH0 P0.0 / PWM0_CH3 / SPI0_MOSI / IC3 / UART1_RXD / T1 / HXTIN / PWM2_CH1 P1.0 / PWM0_CH2 / SPI0_CLK / IC2 / UART1_TXD / PWM2_CH0 P1.1 / ADC_CH7 / CLKO / IC1 / PWM0_CH1 / UART3_RXD / PWM1_CH1 13 12 11 P0.2 / ICE_CLK / I2C0_SCL / UART1_RXD 15 PWM3_CH1 / UART2_TXD / PWM0_CH5 / IC5 / ADC_CH6 / P0.3 PWM2_CH1 / UART2_RXD / STADC / PWM0_CH3 / IC3 / ADC_CH5 / P0.4 14 相关型号:MS51XC0BE 10 P1.2 / PWM0_CH0 / IC0 / UART3_TXD / PWM1_CH0 Top transparent view QFN20 9 P1.3 / STADC / I2C0_SCL / ADC_CH13 8 P1.4 / PWM0_CH1 / I2C0_SDA / PWM0_BRAKE / ADC_CH14 / PWM1_CH1 7 P1.5 / PWM0_CH5 / SPI0_SS / IC7 / UART3_TXD / PWM3_CH1 6 VDD 33 VSS 1 2 3 4 5 SPI0_CLK / UART2_RXD / INT1 / ADC_CH0 / P1.7 VSS UART1_TXD / I2C0_SDA / ICE_DAT / P1.6 MS51 系列技术参考手册 nRESET / P2.0 20 SPI0_MOSI / UART2_TXD / INT0 / OSCIN / ADC_CH1 / P3.0 UART0_RXD / ADC_CH2 / P0.7 图 4.1‑ 5 QFN20 封装引脚配置 Feb. 21, 2020 Page 19 of 460 Rev. 1.01 MS51 4.2 MS51 32KB系列引脚描述 管脚号 MS51XC0BE QFN 20 MS51FC0AE TSSOP20 MS51EC0AE TSSOP28 MS51PC0AE LQFP 32 MS51TC0AE QFN 33 6 9 3 6 VDD 数字电源管脚.电源: 电源正端 4 7 1 4 VSS 数字地管脚 电源负端 P0.0 通用数字输入/输出管脚 P0.0: 端口0管脚0 PWM0_CH3 PWM0通道3输出管脚. PWM2_CH1 PWM2通道1输出管脚. IC3 输入捕获通道 3管脚. 定时器输入捕获通道3 SPI0_MOSI SPI 主机输出/从机输入管脚. UART1_RX UART1 输入管脚 XT1_IN 外部4~24 MHz 晶振输入管脚. OSCIN 当 EXTEN[1:0] = 10b,作为外部时钟输入管脚 T1 定时器/计数器1,外部计数输入或翻转输出管脚 P0.1 通用数字输入/输出管脚P0.1: 端口0管脚1 PWM0_CH4 PWM0 输出通道 4管脚. PWM3_CH0 PWM3 输出通道 0 管脚. IC4 输入捕获通道4管脚. SPI0_MISO SPI 主机输入/从机输出管脚 XT1_OUT 外部 4~24 MHz (高速) 晶振输出管脚 P0.2 通用数字输入/输出管脚P0.2: 端口0管脚2 I2C0_SCL I C 时钟管脚 UART1_RXD UART1 数据接收管脚 ICE_CLK ICE / ICP 时钟输入管脚 P0.3 通用数字输入/输出管脚P0.3: 端口0管脚3 ADC_CH6 ADC输出通道 6 管脚. PWM0_CH5 PWM0 输出通道5管脚 PWM3_CH1 PWM3 输出通道1管脚 IC5 输出捕获通道 5管脚. UART2_TXD UART2 数据发送管脚 SC0_CLK Smart Card 0时钟输入管脚 P0.4 通用数字输入/输出管脚P0.4: 端口0管脚4 ADC_CH5 ADC输入通道5管脚. PWM0_CH3 PWM0 输出通道3管脚. PWM2_CH1 PWM2 输出通道1管脚. IC3 输入捕获通道 3管脚. UART2_RXD UART2 数据接收管脚. SC0_DAT Smart Card 0 数据管脚 STADC ADC外部触发管脚 P0.5 通用数字输入/输出管脚 ADC_CH4 ADC输出入通道4管脚. PWM0_CH2 PWM0 输出通道2管脚. PWM2_CH0 PWM2 输出通道 0管脚. IC6 输入捕获通道 6管脚. UART3_TXD UART3 数据发送管脚. SC1_CLK Smart card 时钟输入管脚. T0 定时器/计数器0,外部计数输入或翻转输出管脚 P0.6 通用数字输入/输出管脚P0.6: 端口0管脚6 13 14 15 MS51 系列技术参考手册 16 17 18 19 Feb. 21, 2020 16 17 18 19 20 1 2 16 17 19 20 21 22 23 23 24 26 27 28 29 30 管脚描述[1] 管脚名称 Page 20 of 460 2 Rev. 1.01 MS51 管脚号 MS51XC0BE QFN 20 MS51FC0AE TSSOP20 20 12 11 10 8 7 5 3 Feb. 21, 2020 15 14 13 12 11 10 8 6 24 15 14 13 7 6 4 2 28 MS51PC0AE LQFP 32 MS51TC0AE QFN 33 31 22 21 20 12 11 7 5 3 管脚描述[1] 管脚名称 ADC_CH3 ADC输入通道3管脚. UART0_TXD UART0发送数据管脚 P0.7 通用数字输入/输出管脚P0.7: 端口0管脚7 ADC_CH2 ADC 输入通道2管脚. UART0_RXD UART0 数据发送管脚. P1.0 通用数字输入/输出管脚P1.0: 端口1管脚0 PWM0_CH2 PWM0输出通道 2管脚. PWM2_CH0 PWM2 输出通道 0管脚. IC2 输入捕获通道 2管脚. SPI0_CLK SPI0 时钟管脚 UART1_TXD UART1 数据接收管脚 P1.1 通用数字输入/输出管脚 ADC_CH7 ADC输入通道7管脚. PWM0_CH1 PWM0 输出通道1管脚. PWM1_CH1 PWM1 输出通道1管脚. IC1 输入捕获通道1管脚. UART3_RXD UART3数据接收管脚 SC1_DAT Smart Card 1 数据管脚 CLKO 系统时钟输出管脚 P1.2 通用数字输入/输出管脚P1.2: 端口1管脚2 PWM0_CH0 PWM0 输出通道 0管脚. PWM1_CH0 PWM1输出通道0管脚. IC0 输入捕获通道 0管脚. UART3_TXD UART3 数据发送管脚 SC1_CLK Smart Card 1 时钟输入管脚. P1.3 通用数字输入/输出管脚P1.3: 端口1管脚3 ADC_CH13 ADC 输入通道 13管脚. I2C0_SCL I C0 时钟管脚. 2 STADC ADC外部触发管脚外部启动ADC触发脚 P1.4 通用数字输入/输出管脚P1.4: 端口1管脚4 ADC_CH14 ADC输入通道14管脚. PWM0_CH1 PWM0输出通道1管脚. PWM1_CH1 PWM1 输出通道1管脚. I2C0_SDA I C0 数据管脚 PWM0_Brake PWM0 刹车输入管脚. P1.5 通用数字输入/输出管脚P1.5: 端口1管脚5 PWM0_CH5 PWM0 输出通道5管脚. PWM3_CH1 PWM3输出通道1管脚. IC7 输入捕获通道 7管脚. SPI0_SS SPI0 从机选择输入管脚. UART3_TXD UART3数据发送管脚 SC1_CLK6 Smart card 2 时钟输入管脚 P1.6 通用数字输入/输出管脚P1.6: 端口1管脚6 I2C0_SDA I C0 数据管脚. UART1_TXD UART1数据发送管脚. ICE_DAT ICE 数据输入/输出管脚. P1.7 通用数字输入/输出管脚P1.7: 端口1管脚7 Page 21 of 460 2 2 Rev. 1.01 MS51 系列技术参考手册 9 3 MS51EC0AE TSSOP28 MS51 管脚号 MS51XC0BE QFN 20 MS51FC0AE TSSOP20 1 - - - - MS51 系列技术参考手册 - 2 - - Feb. 21, 2020 4 - - - - - 5 - - MS51EC0AE TSSOP28 26 11 10 9 8 5 27 - 18 MS51PC0AE LQFP 32 MS51TC0AE QFN 33 ADC_CH0 ADC 输入通道0管脚. SPI0_CLK SPI0 时钟管脚. UART2_RXD UART2 数据接收管脚. SC0_DAT Smart Card 0 数据管脚 INT1 外部中断1 输入管脚. P2.0 通用数字输入/输出管脚,RPD (CONFIG0.2) 配 置为0时可用 nRESET 复位脚为施密特触发输入,用以外部复位信号复 位芯片。 nRESET 内部带上拉电阻,外部只需 接下拉电容,也可稳定工作。 P2.1 通用数字输入/输出管脚P2.1: 端口2管脚1 ADC_CH9 ADC输入通道 9 管脚. PWM2_CH0 PWM2 输出通道0管脚. P2.2 通用数字输入/输出管脚 ADC_CH10 ADC 输入通道10管脚. PWM1_CH1 PWM1 输出通道1管脚. UART4_RX6 UART4 数据接收管脚. SC2_DAT6 Smart card 2 数据管脚 P2.3 通用数字输入/输出管脚 ADC_CH11 ADC 输入通道11管脚. PWM1_CH0 PWM1 输出通道 0管脚. UART4_TXD UART4数据发送管脚. SC2_CLK Smart card 2 时钟管脚 P2.4 通用数字输入/输出管脚 ADC_CH12 ADC 输入通道 12管脚. T0 定时器/计数器1,外部计数输入或翻转输出管脚 P2.5 通用数字输入/输出管脚 ADC_CH15 ADC 输入通道15管脚. SPI0_MISO SPI 主机输入/从机输入管脚. UART3_RXD UART3 数据接收管脚. SC1_DAT Smart card 1 数据管脚 P3.0 通用数字输入/输出管脚 ADC_CH1 ADC输入通道 1管脚. PWM2_CH1 PWM2 输出通道 1管脚. SPI0_MOSI SPI 主机输出/从机输入管脚. UART2_TXD UART2数据发送管脚. SC0_CLK Smart card 0 时钟管脚 INT0 外部中断0 输入管脚. OSCIN 当EXTEN[1:0] = 11b 用作外部时钟输入管脚 P3.1 通用数字输入/输出管脚 PWM2_CH1 PWM2 输出通道 1管脚. P3.2 通用数字输入/输出管脚 PWM3_CH0 PWM3 输出通道 0管脚. P3.3 通用数字输入/输出管脚 PWM0_CH0 PWM3 输出通道0管脚. CLK_OUT 系统时钟输出管脚 PWM0_BRAKE PWM0 刹车输入管脚. 1 16 15 14 13 8 2 18 19 25 管脚描述[1] 管脚名称 Page 22 of 460 Rev. 1.01 MS51 管脚号 MS51XC0BE QFN 20 MS51FC0AE TSSOP20 - - - - MS51EC0AE TSSOP28 25 12 - MS51PC0AE LQFP 32 MS51TC0AE QFN 33 32 17 9 10 管脚名称 管脚描述[1] P3.4 通用数字输入/输出管脚 PWM3_CH1 PWM3 输出通道1管脚. UART3_RXD UART3 数据接收管脚. SC1_DAT Smart card 0 1数据管脚 P3.5 通用数字输入/输出管脚 SPI0_SS SPI0从机选择输入管脚. P3.6 通用数字输入/输出管脚 UART1_TXD UART1 数据发送管脚 P3.7 通用数字输入/输出管脚 UART1_RXD UART1数据接收管脚 注: 1. 所有管脚都可以被配置成中断引脚,此功能并没在管脚描述中提到。详细请查看章节6.4.2引脚中断(PIT) 2. UART0_TXD和UART0_RXD管脚可以通过配置寄存器UART0PX (AUXR1.2)交换位置。 3. [I2C] 功能重映像选项。 I2C管脚可以通过配置寄存器I2CPX (I2CON.0)转换位置。 4. [STADC] 功能重映像选项。 STADC引脚通过配置寄存器STADCPX(ADCCON1.6)转换位置。 5. PIOx寄存器设置管脚是PWM或者GPIO功能。 6. UART2_TXD 和UART2_RXD管脚位置由AUXR2定义。UART3_TXD, UART3_RXD, UART4_TXD和 UART4_RXD 管脚由AUXR3定义。 MS51 系列技术参考手册 Feb. 21, 2020 Page 23 of 460 Rev. 1.01 MS51 5 5.1 功能框图 MS51 32KB 系列框图 下图是MS51的功能框图。用户可以在框图中看到所有的外设。 1T High Performance 8051 Core Memory Access POR / LVR / BOD 32 KB APROM Flash Timer 0/1 Max. 4KB LDROM Flash Timer 2 with Input Capture P1[7:0] P2[5:0] P3[7:0] MS51 系列技术参考手册 Any Port INT0 INT1 8 P1 6 P2 Digital Peripheral UART0/1_TX UART0/1_RX Serial Ports (UART 0/1) UART2/3/4_TX UART2/3/4_RX UART2/3/4 (ISO 7816-3 port) I2C0_SDA I2C0_SCL I2C0 8 P3 8 ICAP0~2 Watchdog Timer 8-bit Internal Bus GPIO 3 Self Wake-up Timer 2 Kbytes XRAM (Auxiliary RAM) P0 T0 Timer 3 256 bytes Internal RAM P0[7:0] VSS T1 Max. Bytes Data Flash (page: 128B) 8 Power Management VDD SPI0 GPIO Interrupt PWM0/1/2/3 6 6 15 External Interrupt 12-bit ADC SPI0_MOSI SPI0_MISO SPI0_SS SPI0_SCK PWM0CH0~5 PWM1/2/3CH0~1 FB0 AIN0~7, 9~15 STADC Analog Peripheral System Clock XIN XOUT 4-24 MHz Oscillator Circuit (HXT) 16/24 MHz Internal RC Oscillator (HIRC) Clock Divider 10 kHz Internal RC Oscillator (LIRC) System Clock Source 图 5.1‑ 1 功能框图 Feb. 21, 2020 Page 24 of 460 Rev. 1.01 MS51 6 功能描述 6.1 内存架构 6.1.1 概述 标准的基于80C51微控制器将内存分成两个不同的部分,编程内存和数据内存。编程内存用来存储指令 代码。而数据内存用来存储编程执行过程中的数据或变量。 数据内存占用的地址空间独立于编程内存。在MS51中,有256字节内部RAM。针对于需要更多内部 RAM的应用,MS51提供另外一个2K字节的片上RAM,叫做XRAM,通过MOVX指令访问。 整个内置FLASH,作为编程存储器被分成了三块。应用ROM(APROM)通常存储用户代码,加载 ROM(LDROM)通常存储启动代码,CONFIG字节作用于硬件初始化。事实上, APROM 和 LDROM功 能相似,但是大小不一样,每一块由一页一页组成,每页大小是128字节。FLASH控制单元支持擦除、 编程和读模式。使用外部烧写器是通过指定的I/O口烧写,在应用编程(IAP)或在系统编程(ISP)都 可以执行这些模式。 6.1.2 程序内存编程内存 (APROM 及 LDROM) 程序内存用于存储执行代码,如图 6.1‑1所示。任何复位后CPU从地址0000H开始执行。 关于服务中断,中断服务向量位置(叫做中断向量)位于编程内存。每一个中断被分配一个固定的编程 内存地址。中断引起CPU跳到中断服务子程序(ISR)开始执行的地方。例如外部中断0被分配到地址 0003H。如果外部中断0被使用,它的服务子程序应该从地址0003H开始。如果中断不使用,该地址可 以作为通用的编程内存。 中断服务向量位置间隔为八个字节:0003H用于外部中断0,000BH用于定时器0,0013H用于外部中断 1,001BH用于定时器1 等。如果一个中断服务子程序足够短,可以完整地放在这8个字节间隔中。而长 的中断服务程序需要用JMP指令跳过后面的中断地址,如果此中断地址有被其它中断使用。 另外单独的编程编程内存块叫做LDROM,它的功能通常是存储ISP的启动代码。它可以更新APROM和 CONFIG。APROM里的代码可以重新编程LDROM。 APROM和LDROM关于ISP的细节和配置位设置 ,请查看章节 6.3.1.5“在线系统编程 (ISP)” 。注意APROM和LDROM是硬件独立的模块,如果CPU从 LDROM启动,CPU会自动重映射PC指针0000H到LDROM开始的地址。因此CPU认为LDROM是单独 的编程内存且所有中断向量独立于APROM。 Feb. 21, 2020 Page 25 of 460 Rev. 1.01 MS51 系列技术参考手册 MS51提供两个内部编程内存块APROM和LDROM。虽然它们都和标准8051编程内存一样,但是根据它 们ROM的大小不一样,扮演着不同的角色。MS51的APROM可以最大到32K字节。用户代码通常放在 这里面。CPU从APROM获取指令来执行。MOVC指令也可以从这个区域读取。 MS51 CONFIG1 7 6 5 4 3 2 1 - - - - - LDSIZE[2:0] - - - - - 读/写 0 出厂预设置: 1111 1111b 位 名称 描述 2:0 LDSIZE[2:0] LDROM 容量选择 此区域选择LDROM的容量 111 = 无 LDROM. APROM 为 32K 字节. 110 = LDROM 为 1K 字节. APROM 为 1531K 字节. 101 = LDROM 为 2K 字节. APROM 为 1430K 字节. 100 = LDROM 为 3K 字节. APROM 为 1329K 字节. 0xx = LDROM 为 4K 字节. APROM 为 1228K 字节. 0000H FFFFH CONFIG CONFIG 0000H SPROM FF80H SPROM 7FFFH [1] MS51 系列技术参考手册 7C00H 7800H[1] 7400H[1] 7000H[1] 0FFFH[1] 0BFFH[1] 07FFH[1] 03FFH[1] APROM 32K bytes LDROM 0000H 0000H CHPCON[1] BS = 0 CHPCON[1] BS = 1 [1] The logic boundary addresses of APROM and LDROM are defined by CONFIG1[2:0]. 图 6.1‑ 1 MS51 程序内存映像 Feb. 21, 2020 Page 26 of 460 Rev. 1.01 MS51 6.1.3 数据存储器数据内存 (Data Flash) MS51的数据存储器是和APROM和LDROM共享存储地址的。任何页的APROM或LDROM都可以用作非 易失数据存储器,不需要专门设置大小。数据存储器的地址有IAP配置。关于IAP的细节请查看章节 6.3.1在应用编程 (IAP).所有内置存储器的每次可擦除大小都是128字节。 6.1.4 安全保护存储器(SPROM) 安全保护存储器 (SPROM)用于应用程序加密。SPROM包含128字节,起始地址从FF80H ~ FFFFH,不支持 整片擦除命令。图 6.1‑2 SPROM内存映像和安全模式 表示SPROM的最后一个自己字节(地址: FFFFH) 用于标识SPROM中的程序是非安全模式还是安全模式。. FFFFH SPROM FFFFH FF80H 0xFF 7FFFH FFFEH Others SPROM SPROM Non-security mode Security mode FF80H APROM 32K bytes 0000H CHPCON[1] BS = 0 图 6.1‑ 2 SPROM 内存映像和安全模式 (2) SPROM 安全模式 (最后一个字节不为 0xFF)。在安全模式下为了隐藏SPROM中的代码, 只有当CPU运 行在SPROM区域,CPU才能从SPROM执行取指令和获取数据。否则,CPU的操作收到的数据将全是0。在安 全模式下,即使ICE接口被连接上,为了保护SPROM,CPU获取的指令也将全部为0。在这个模式下, SPROM不支持ISP/IAP编程和读flash的命令。 6.1.5 用户配置区 (CONFIG) MS51有一部分硬件配置区。用于配置硬件的一些可选功能比如:安全锁位、系统时钟源等等。配置区 可以用过并行烧写器、在电路编程器(ICP)、在应用编程器(ISP)重新编程。CONFIG某些位定义的功能 也可以通过SFR修改。因此复位的时候,会将CONFIG位加载到SFR相应位。这些寄存器位SFR的位还 可以通过用户软件控制。 CONFIG 位标记 “-“不允许更改。 Feb. 21, 2020 Page 27 of 460 Rev. 1.01 MS51 系列技术参考手册 (1) SPROM 非安全模式 (最后一个字节是 0xFF). 对 SPROM的操作跟 APROM和LDROM一样的。所有 的区域都可以被CPU或者ISP命令读取,也能通过ISP命令擦除和编程。 MS51 CONFIG0 7 6 5 4 3 2 1 0 CBS - OCDPWM OCDEN - RPD LOCK - 读/写 - 读/写 读/写 - 读/写 读/写 - 出厂预设值: 1111 1111b 位 名称 描述 7 CBS 配置启动选择位 该位定义,除软件复位外的所有复位后,MCU启动区域。 1 = 除软件复位外的所有复位后,MCU从APROM启动 0 = 除软件复位外的所有复位后,MCU从LDROM启动 5 OCDPWM 片上调试OCD模式下,PWM输出状态 该位决定当OCD停止CPU时,PWM的输出状态。 1 = PWM 输出脚为三态模式(Tri-state) 0 = PWM 持续输出 注:只有当PWM通道对应的PIO位设置为1时,该位才有效。 4 OCDEN 片上调试 使能 1 = 禁止片上调试. 0 = 使能片上调试. 注: 当MCU运行在OCD调试模式并且 OCDEN = 0,硬件故障复位被禁止,仅仅HFIF标志位被 置位。 MS51 系列技术参考手册 3 - 2 RPD 保留 复位引脚使能 1 = 使能P2.0/nRST引脚复位功能。 P2.0/nRST 作为复位引脚。. 0 = 禁止P2.0/nRST引脚复位功能。. P2.0/nRST 用作P2.0输入引脚。 1 LOCK 芯片加密使能 1 = 芯片不加密。 Flash存储器不加密,用户可通过硬件编程器/ ICP编程器读 取FLASH的值. 0 = 芯片加密。全芯片FLASH区域加密,通过硬件编程器/ ICP编程器读取 FALSH的值,读回全部为(FFH),对FLASH进行编程无效。 注:配置字内容始终不加密,可以读出。当LOCK位配置为0对芯片加密后, 配置字内容不能单独擦除或改写,解除芯片加密的唯一方式是执行全擦除 动作(whole chip erase) ,一但执行全擦除动作,FLASH内所有内容将被擦 除且配置字内容也会被擦除。 芯片加密,不影响IAP功能。 Feb. 21, 2020 Page 28 of 460 Rev. 1.01 MS51 CONFIG0 7 6 5 4 3 2 1 0 CBS - OCDPWM OCDEN - RPD LOCK - Software reset does not reload CHPCON 7 6 5 4 3 2 1 0 SWRST IAPFF - - - - BS IAPEN 图 6.1‑ 3 CONFIG0 复位后自动重载 MS51 系列技术参考手册 Feb. 21, 2020 Page 29 of 460 Rev. 1.01 MS51 CONFIG1 7 6 5 4 3 2 1 0 - - - - - LDSIZE[2:0] - - - - - 读/写 工厂预设值: 1111 1111b 位 名称 2:0 LDSIZE[2:0] 描述 LDROM 容量选择 型号 MS51: 111 = 无 LDROM. APROM 32 KB. 110 = LDROM 1 KB. APROM 31KB. 101 = LDROM 2 KB. APROM 30 KB. 100 = LDROM 3 KB. APROM 29 KB. 0xx = LDROM 4 KB. APROM 28 KB. MS51 系列技术参考手册 Feb. 21, 2020 Page 30 of 460 Rev. 1.01 MS51 CONFIG2 7 6 CBODEN - 读/写 - 5 4 3 2 1 0 CBOV[1:0] BOIAP CBORST - - 读/写 读/写 读/写 - - 工厂预设值:1111 1111b 位 名称 7 描述 CBODEN 欠压检测使能 1 = 打开欠压检测功能. 0 =关闭欠压检测功能. 6 - 5:4 CBOV[1:0] 保留 欠压检测电压选择 11 = VBOD 生效电压 2.2V. 10 = VBOD生效电压2.7V. 01 = VBOD生效电压3.7V. 00 = VBOD生效电压4.4V. 3 BOIAP 欠压禁止IAP 该位决定当系统电压低于VBOD时,IAP擦除、编程功能是否禁止。该位仅当欠压检测功能使能后生 效。 1 =当VDD 低于VBOD ,IAP 擦除或编程功能禁止 0 = VDD 任何电压状态下,IAP擦除及编程功能都可执行 CBORST 欠压复位使能 MS51 系列技术参考手册 2 该位决定当欠压检测电压低于VBOD时,芯片是否复位。 1 = 使能欠压复位功能. 0 = 禁止欠压复位功能. CONFIG2 BODCON0 7 6 CBODEN - 7 6 BODEN - 5 4 CBOV[1:0] 5 3 2 1 0 BOIAP CBORST - - 4 BOV[1:0] 3 2 1 0 BOF BORST BORF BOS 图 6.1‑ 4 CONFIG2 上电复位自动重载 Feb. 21, 2020 Page 31 of 460 Rev. 1.01 MS51 CONFIG3 7 6 5 4 3 2 1 0 CKFS[1:0] - - - - - 读/写 - - - - - 工厂预设值: 1111 1111b 位 名称 7:6 描述 CKFS[1:0] 时钟滤波器时间选择 使能时钟滤波器。提高抗噪声和EMC能力。 00 = 禁止时钟滤波器 其它 = 15 ns 5:0 - 保留 MS51 系列技术参考手册 Feb. 21, 2020 Page 32 of 460 Rev. 1.01 MS51 CONFIG4 7 6 5 4 3 2 1 0 WDTEN[3:0] - - - - 读/写 - - - - 工厂预设值: 1111 1111b 位 名称 7:4 描述 WDTEN[3:0] 看门狗定时器使能 该区域设置MCU运行后,看门狗定时器的功能。 1111 = 禁止WDT。WDT可以通过软件设置成普通定时器 。 0101 = 使能WDT超时复位功能。且待机和掉电模式下WDT停止。 其他 =使能WDT超时复位功能。且待机和掉电模式下WDT工作。 3:0 - 保留 MS51 系列技术参考手册 Feb. 21, 2020 Page 33 of 460 Rev. 1.01 MS51 6.1.6 6.1.6.1 数据存储器 (RAM) 内部数据存储器 FFH 80H 7FH 00H Upper 128 Bytes SFR internal RAM (direct addressing) (indirect addressing) 07FFH Lower 128 Bytes internal RAM (direct or indirect addressing) 2 KBytes XRAM (MOVX addressing) 0000H 图 6.1‑ 5 数据存储器地址映像 图 6.1‑5所示MS51中可用内部数据存储器。内部数据内存占用一个独立的地址空间. 内部数据存储器被 划分为三块:RAM低128字节、RAM高128字节、128字节的SFR。. 内部数据内存的地址是8位的宽度 ,可用于256字节的地址空间。直接寻址高低于7FH的地址会访问特殊功能寄存器(SFR)空间,间接寻 址高于7FH的地址会访问RAM的高128字节。虽然SFR地址空间和RAM高128字节共享相同的逻辑地址 80H 到 FFH,事实上他们是物理独立的实体。区别于RAM的高128字节直接寻址仅可以访问SFR。SFR 空间中的16个地址既可以字节寻址也可以位寻址。这些位寻址的SFR分布在地址以0H或8H结尾的地方 。 MS51 系列技术参考手册 内部RAM的低128字节在所有的80C51设备上都存在。最低的32字节作为通用寄存器分成四组8个寄存器, 程序指令称呼这些寄存器为R0到R7。程序状态字(PSW[3:4])的两个位RS0 和 RS1用于选择哪一个寄存器 组会被使用。这使代码空间更有效率,因为寄存器指令比其他直接寻址的指令更短。接下来的16个字节 (字节地址 20H 到 2FH)是可位寻址的内存空间(位地址 00H 到 7FH)的一部分。80C51指令集包括各种 的单位指令。这个域的128个位可以通过这些指令直接寻址。该域的位地址从00H 到 7FH。 直接或间接寻址都可以访问低128字节空间。但是访问高128字节空间必须采用间接寻址。 另一个应用是将整块内部256字节RAM用作栈空间。此区域用过堆栈指针(SP)来选择,SP保存栈顶地址。 无论何时调用JMP、CALL 和中断,返回地址都放在堆栈。堆栈在RAM里的起始位置没有限制。但是在默 认情况下,复位后堆栈指针指向07H。用户可以根据需要修改这个值。 堆栈指针SP会指向最后使用的值 。因此,压栈时堆栈指针递增,弹栈时堆栈指针递减。 Feb. 21, 2020 Page 34 of 460 Rev. 1.01 MS51 FFH FFH Indirect Accessing RAM 80H 7FH Direct or Indirect Accessing RAM 30H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 1FH 18H 17H General Purpose Registers 10H 0FH 08H 07H 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05 7C 74 6C 64 5C 54 4C 44 3C 34 2C 24 1C 14 0C 04 7B 73 6B 63 5B 53 4B 43 3B 33 2B 23 1B 13 0B 03 7A 72 6A 62 5A 52 4A 42 3A 32 2A 22 1A 12 0A 02 79 71 69 61 59 51 49 41 39 31 29 21 19 11 09 01 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00 Bit-addressable Register Bank 3 Register Bank 2 General Purpose Registers Register Bank 1 Register Bank 0 00H MS51 系列技术参考手册 00H 图 6.1‑ 6 内部 256 字节 RAM 地址 Feb. 21, 2020 Page 35 of 460 Rev. 1.01 MS51 6.1.6.2 片上 XRAM MS51提供额外的片上2 K字节附加的RAM叫做XRAM用来扩展RAM空间。它占用的地址空间从00H 到 7FFH。 这2 K字节的XRAM通过调用外部指令MOVX @DPTR或 MOVX @Ri. (如下面示例代码.) 间接 访问。注意堆栈指针不能位于XRAM的任何区域。 XRAM参考代码: 汇编: MOV R0,#23H MOV A,#5AH MOVX @R0,A MOV R1,#23H MOVX A,@R1 MOV DPTR,#0023H MOV A,#5BH MOVX @DPTR,A MOV DPTR,#0023H MOVX A,@DPTR ;write #5AH to XRAM with address @23H ;read from XRAM with address @23H ;write #5BH to XRAM with address @0023H ;read from XRAM with address @0023H C51: unsigned char temp; //define data variable unsigned char xdata xtemp _at_ 0x23;//define variable at xdata 0x23; xtemp = 0x5B; // write #5BH to XRAM with address @0023H xtemp++; temp = xtemp; //read from XRAM with address @0023H MS51 系列技术参考手册 Feb. 21, 2020 Page 36 of 460 Rev. 1.01 MS51 特殊功能寄存器 (SFR) 6.1.7 MS51用特殊功能寄存器 (SFRs)来控制或监控外设和他们的模块。SFRs位于地址80到FFH地址空间,仅可 以通过直接寻址访问。以0H或8H结尾的SFRs是可以位寻址的。当用户需要修改某一位而不改变其他位的 情况下,位寻址是非常有用的。其它所有的 SFRs仅可以字节寻址。MS51包含标准8051中出现的所有 SFRs,然而一些额外的 SFRs 也包含在内。因此在原始8051中一些没有使用的字节被给予了新的功能。 SFRs 如下所列: 6.1.7.1 SFR页选择 为了在0x80 到 0xFF间容纳128字节的SFRs,增添了SFR页。默认情况下,所有SFR访问的都是SFR页 0。在设备初始化期间,SFR页1、2上的一些SFR可能需要被访问。寄存器SFRS用于切换SFR寻址页 。 注:特别是,由于中断不可预知,建议在每个中断服务子程序中添加以下操作。在中断子程序开始时将 SFRS压入堆栈,推出中断时弹出SFRS。 SFRS – SFR 页选择 寄存器 SFR 地址 复位值 SFRS 91H, 所有页 0000_0000 b 7 6 5 4 3 2 1 0 - - - - - - SFRPAGE1 SFRPAGE0 - - - - - - 读/写 读/写 位 名称 MS51 系列技术参考手册 1:0 描述 SFRPAGE[1:0] SFR 页选择 0 = 指令访问SFR页 0. 1 =指令访问SFR页1. 2 =指令访问SFR页2. 切换 SFR 页参考代码 : MOV SFRS,#01H MOV SFRS,#00H Feb. 21, 2020 Page 37 of 460 Rev. 1.01 MS51 6.1.7.2 时效访问保护 (TA) MS51有几个特殊的功能,如WDT和掉电检测,对系统正常运行非常重要。如果这些控制寄存器不保护 ,错误的代码可能往它们写入不确定的值,导致运行在错误的状态且失控。为了避免这个风险,MS51 有一个保护机制,关键的SFR限制写访问。该保护机制使用时效访问(TA)。下列寄存器与TA处理过程相 关。 TA – 时钟控制访问保护 寄存器 地址,页,特别说明 复位值 TA C7H, 所有页 0000_0000 b 7 6 5 4 3 2 1 0 TA[7:0] W 位 名称 7:0 TA[7:0] 描述 时效访问 时效访问寄存器控制保护SFR的访问。为了访问保护位,用户必须首先往TA写入AAH,然后立即写 入55H。这两步之后,写允许窗口将打开4个时钟周期,在这个时间内,用户可以写保护SFR。 在时效访问方式,受保护的位有一个写使能时间窗口。只有在该窗口有效的状态下,写才能成功,否则 写的直接丢弃。当软件往TA写入AAH,计数器开始运行。该计数器等待3个时钟周期查询是否往TA写入 55H。如果写入55H在写入AAH后 3个时钟周期内,时效访问窗口打开。它保持4个时钟周期的打开状态 ,用户可以写保护位。4个时钟周期后,窗口自动关闭。一旦窗口关闭,写另一个保护位时,必须重新 运行解保护程序。TA保护SFR,写入需要时效访问,但读不用。用户可以读TA保护SFR,而不需要往 TA寄存器写入AAH和55H。打开时效访问窗口的建议代码如下所示。 MS51 系列技术参考手册 (CLR temporally EA) MOV TA,#0AAH MOV TA,#55H ;if any interrupt is enabled, disable (Instruction that writes a TA保护 register) (SETB EA) ;resume interrupts enabled 在执行上述指令过程中,任何中断必须关闭,避免执行上述指令的过程中有延时。如果没有中断使能, CLR EA 和 SETB EA 指令可以拿掉. 以下是时效访问例子,展示正确或错误写过程。 例 1, MOV TA,#0AAH ;3 clock cycles MOV TA,#55H ;3 clock cycles ORL WDCON,#data ;4 clock cycles MOV TA,#0AAH ;3 clock cycles MOV TA,#55H ;3 clock cycles 例 2, Feb. 21, 2020 Page 38 of 460 Rev. 1.01 MS51 NOP ;1 clock cycle ANL BODCON0,#data ;4 clock cycles MOV TA,#0AAH ;3 clock cycles MOV TA,#55H ;3 clock cycles MOV WDCON,#data1 ;3 clock cycles ORL BODCON0,#data2 ;4 clock cycles MOV TA,#0AAH ;3 clock cycles 例 3, 例 4, NOP ;1 clock cycle MOV TA,#55H ;3 clock cycles ANL BODCON0,#data ;4 clock cycles 第1个例子,写保护位在3个时钟周期窗口关闭之前已经完成;第2个例子,写BODCON0在窗口打开期 间没有完成,BODCON0的值不会改变;第3个例子,WDCON成功写入,但是写BODCON0超出3个时 钟周期窗口,因此BODCON0的值也不会变化;第4个例子,写55H到TA完成再往TA写入AAH 3个时钟 周期以后,所以时效访问窗口没有打开,写保护字节不成功。 MS51 系列技术参考手册 Feb. 21, 2020 Page 39 of 460 Rev. 1.01 MS51 6.1.7.3 页 MS51 系列技术参考手册 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 注: 1. 特殊功能寄存器SFR内存映射 地址 0/8 F8 SCON_1 F0 E8 E0 C8 C0 B8 B0 A8 A0 98 90 88 80 2/A 3/B 4/C 5/D 6/E PWM0DTEN PWM0DTCNT PWM0MEN PWM0MD PORDIS EIP1 EIPH1 - - - - - - LVRDIS PIPS0 PIPS1 PIPS2 PIPS3 PIPS4 PIPS5 PIPS6 CAPCON3 CAPCON4 SPCR SPSR SPDR AINDIDS0 EIPH SPCR2 - - - - B ADCCON0 ACC PWM0CON0 D8 D0 1/9 PSW T2CON I2CON IP P3 IE P2 SCON P1 TCON P0 7/F SC0CR0 SC0CR1 SC1CR0 SC1CR1 SC2CR0 SC2CR1 PIPS7 PICON - PINEN - PIPEN - PIF - C2L - C2H EIP - - SC2DR SC2EGT SC2ETURD0 SC2ETURD1 SC2IE SC2IS SC2TSR ADCCON1 - ADCCON2 - ADCDLY - C0L - C0H - C1L - C1H - SC1DR SC1EGT SC1ETURD0 SC1ETURD1 SC1IE SC1IS SC1TSR PWM0PL - PWM0C0L - PWM0C1L - PWM0C2L - PWM0C3L - PIOCON0 - PWM0CON1 - SC0DR SC0EGT SC0ETURD0 SC0ETURD1 SC0IE SC0IS SC0TSR PWM0PH - PWM0C0H - PWM0C1H - PWM0C2H - PWM0C3H - PNP - PWM0FBD - PWM3PL PWM3_CH0L PWM3_CH1L PWM3CON0 PWM3CON1 PWM3INTC XTLCON T2MOD - RCMP2L - RCMP2H - TL2 TH2 PWM0C4L PWM0C5L ADCMPL - ADCMPH - PWM3PH PWM3_CH0H PWM3_CH1H PWM3MD PWM3MEN EIP2 EIPH2 I2ADDR - ADCRL - ADCRH - T3CON RL3 RH3 PWM0C4H PWM0C5H PIOCON1 PWM2PL PWM2_CH0L PWM2_CH1L PWM2CON0 PWM2CON1 PWM2INTC SADEN - SADEN_1 - SADDR_1 - I2DAT - I2STAT - I2CLK - PWM2PH PWM2_CH0H PWM2_CH1H PWM2MD PWM2MEN - - P0M1 P0M2 P1M1 P1M2 - IPH PWM0INTC TA I2TOC - P0S P0SR P1S P1SR TOE - PWM1PL PWM1_CH0L PWM1_CH1L PWM1CON0 PWM1CON1 PWM1INTC PIOCON2 SADDR - WDCON - BODCON1 - P3M1 P3M2 P3S P3SR IAPFD - IAPCN PWM0INTC PWM1PH PWM1_CH0H PWM1_CH1H PWM1MD PWM1MEN - - - AUXR1 - BODCON0 - IAPTRG - IAPUEN - IAPAL - IAPAH - AUXR2 AUXR3 AUXR4 AUXR5 AUXR6 AUXR7 AUXR8 SBUF - SBUF_1 - EIE - EIE1 - RSR - - CHPCON - CKSWT CKEN AINDIDS1 P0DW P1DW P2DW P3DW SFRS CAPCON0 - CAPCON1 - CAPCON2 - CKDIV - P0UP P1UP P2UP P3UP TMOD - TL0 - TL1 - TH0 - TH1 - CKCON - WKCON - P2M1 P2M2 P2SR ADCSR SP DPL - RWKH P2S ADCSN ADCCN RCTRIM0 RCTRIM1 RWK ADCBAL ADCBAH ADCCON3 DPH PCON SFR空间中未使用的地址用 “-“ 标记。访问这些地址会有不可预知的影响,请避免这种情况。 2. 该类型标示为可位寻址字节。 3. 该类型标示为任何页内都可直接读写。. 表 6.1‑ 1 特殊功能寄存器地址映像 Feb. 21, 2020 Page 40 of 460 Rev. 1.01 MS51 SFR 描述及复位值 页 高位 7 EIPH1 扩展中断优先级高位 1 FFH 0 - LVRDIS 低电压检测禁止 FFH 1 PIPS6 引脚中断控制6 FFH 2 - BSEL2 - - FEH 0 - - - - - - - - EIP1 扩展中断优先级 1 FEH 1 - - PPWM3 PPWM2 PPWM1 PWKT PT3 PS_1 0000 0000b PIPS5 引脚中断控制 5 FEH 2 - PSEL2 PSEL1 PSEL0 - BSEL2 BSEL1 BSEL0 0000 0000b PORDIS 上电复位禁止 FDH 0 - - FDH 1 - - - - - - - - PIPS4 引脚中断控制4 FDH 2 - PSEL2 PSEL1 PSEL0 - BSEL2 BSEL1 BSEL0 0000 0000b PWM0MD PWM0 屏蔽数据 FCH 0 - - PMD5 PMD4 PMD3 PMD2 PMD1 PMD0 0000 0000b - - FCH 1 - - - - - - - - PIPS3 引脚中断控制3 FCH 2 - PSEL2 PSEL1 PSEL0 - BSEL2 BSEL1 BSEL0 0000 0000b PWM0ME PWM0 屏蔽使能 N FBH 0 - - PMEN5 PMEN4 PMEN3 PMEN2 PMEN1 PMEN0 0000 0000b - - FBH 1 - - - - - - - - PIPS2 引脚中断控制 2 FBH 2 - PSEL2 PSEL1 PSEL0 BSEL2 BSEL1 BSEL0 PWM0DT CNT PWM0 死区计数器 FAH 0 - - FAH 1 - - - - - - - - PIPS1 引脚中断控制1 FAH 2 - PSEL2 PSEL1 PSEL0 - BSEL2 BSEL1 BSEL0 PWM0DT EN PWM0 死区使能 F9H 0 - - - PWM0DTCN T.8 - PDT45EN PDT23EN - - F9H 1 - - - - - - - - PIPS0 引脚中断控制0 F9H 2 - PSEL2 PSEL1 PSEL0 - BSEL2 BSEL1 BSEL0 0000 0000b SCON_1 串口1控制 F8H A SM0_1 FE_1 SM1_1 SM2_1 REN_1 TB8_1 RB8_1 TI_1 RI_1 0000 0000b EIPH 扩展中断优先级高 F7H 0 PT2H PSPIH PFBH PWDTH PPWMH PCAPH PPIH PI2CH 0000 0000b - - F7H 1 - - - - - - - - PIPS7 引脚中断控制7 F7H 2 - PSEL2 PSEL1 PSEL0 - BSEL2 BSEL1 BSEL0 0000 0000b ADC 信道数字输入信 F6H AINDIDS0 道禁止 0 P11DIDS P03DIDS P04DIDS P05DIDS P06DIDS P07DIDS P30DIDS P17DIDS 0000 0000b - - F6H 1 - - - - - - - - SC2CR1 智能卡2 控制寄存器 1 F6H 2 OPE PBOFF WLS1 WLS0 TXDMAEN RXDMAEN CLKKEEP UARTEN SPDR 串行外设数据寄存器 F5H 0 - - F5H 1 - - - - - - - - SC2CR0 智能卡2 控制寄存器 0 F5H 2 NSB T RXBGTEN CONSEL AUTOCEN TXOFF RXOFF SCEN 0000 0000b SPSR 串行外设状态寄存器 F4H 0 SPIF WCOL SPIOVF MODF DISMODF TXBUF - - 0000 0000b - - F4H 1 - - - - - - - - - SC1CR1 智能卡1 控制寄存器1 F4H 2 OPE PBOFF WLS1 WLS0 TXDMAEN RXDMAEN CLKKEEP UARTEN 0000 0000b SPCR 串行外设控制寄存器 F3H 0 SSOE SPIEN LSBFE MSTR CPOL CPHA SPR1 SPR0 0000 0000b SPCR2 串行外设控制寄存器 2 F3H 1 - - - - - - SPIS1 SPIS0 0000 0000b SC1CR0 智能卡1 控制寄存器 0 F3H 寄存器 定义 6 - 5 PPWM3H 4 PPWM2H 3 PPWM1H 2 1 低位 0 [1] 地址 6.1.7.4 PWKTH PT3H PSH_1 BSEL2 BSEL1 BSEL0 LVRDIS[7:0] BSEL1 BSEL0 复位值[2] 0000 0000b 0000 0000b - PORDIS[7:0] PWM0DTCNT[7:0] - 0000 0000b Y - - - 0000 0000b 0000 0000b PDT01EN 0000 0000b - - 0000 0000b - - T RXBGTEN CONSEL AUTOCEN TXOFF RXOFF SCEN 0000 0000b CAPCON4 输入捕获控制 4 0 - - - - CAP23 CAP22 CAP21 CAP20 0000 0000b - - F2H 1 - - - - - - - - SC0CR1 智能卡0 控制寄存器 1 F2H 2 OPE PBOFF WLS1 WLS0 CLKKEEP UARTEN 0000 0000b CAPCON3 输入捕获控制 3 F1H 0 CAP13 CAP12 CAP11 CAP10 CAP03 CAP02 CAP01 CAP00 0000 0000b - - F1H 1 - - - - - - - - SC0CR0 智能卡0控制寄存器 0 F1H 2 NSB T RXBGTEN CONSEL AUTOCEN TXOFF RXOFF SCEN 0000 0000b B B 累加器 F0H A B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 0000 0000b EIP 扩展中断优先级 EFH 0 PT2 PSPI PFB PWDT PPWM PCAP PPI PI2C 0000 0000b - - EFH 1 - - - - - - - - SC2TSR 智能卡2 传输状态寄 存器 EFH 2 ACT BEF FEF PEF TXEMPTY TXOV RXEMPTY RXOV C2H 输入捕获 2 高字节 EEH 0 - - EEH 1 - - - - - - - - SC2IS 智能卡2 中断状态寄 存器 EEH 2 - - - ACERRIF BGTIF TERRIF TBEIF RDAIF C2L 输入捕获 2 地低字节 EDH 0 - - 1 - - - - - - - TXDMAEN RXDMAEN C2H[7:0] - - 0000 1010b 0000 0000b C2L[7:0] 0000 0010b 0000 0000b - - Rev. 1.01 MS51 系列技术参考手册 NSB Page 41 of 460 Y - 2 Feb. 21, 2020 Y - F2H EDH Y 0000 0000b 0000 0000b SPDR[7:0] TA 定义 页 寄存器 地址 MS51 高位 7 6 5 4 3 2 1 低位 0 [1] 复位值[2] SC2IE 智能卡2 中断使能控 制寄存器 EDH 2 - - - ACERRIEN BGTIEN TERRIEN TBEIEN RDAIEN 0000 0000b PIF 引脚中断标志 ECH 0 PIF7 PIF6 PIF5 PIF4 PIF3 PIF2 PIF1 PIF0 0000 0000b - - ECH 1 - - - - - - - - SC2ETUR 智能卡2 ETU 除频器 ECH D1 寄存器1 2 - SCDIV2 SCDIV1 SCDIV0 PIPEN 引脚中断正相/上升缘 EBH 特性使能 0 PIPEN7 PIPEN6 PIPEN5 PIPEN4 PIPEN3 PIPEN2 PIPEN1 PIPEN0 - - EBH 1 - - - - - - - - SC2ETUR 智能卡2 ETU 除频器 EBH D0 寄存器 2 PINEN 引脚中断反相/下降缘 EAH 特性使能 0 PINEN7 PINEN6 PINEN5 PINEN4 PINEN3 PINEN2 PINEN1 PINEN0 - - EAH 1 - - - - - - - - SC2EGT 智能卡2 额外保护时 间寄存器 EAH PICON 引脚中断控制 E9H 0 PIT7 PIT6 PIT5 PIT4 PIT3 PIT2 PIT1 PIT0 - - E9H 1 - - - - - - - - SC2DR 智能卡2 数据寄存器 E9H 2 E8H A ADCHS3 ADCHS2 ADCHS1 ADCHS0 - - - - TXEMPTY TXOV RXEMPTY RXOV ADCCON0 ADC 控制 0 ETGSEL1 ETGSEL0 MS51 系列技术参考手册 输入捕获1 高字节 E7H 0 - - E7H 1 - - - - SC1TSR 智能卡1 传输状态寄 存器 E7H 2 ACT BEF FEF PEF C1L 输入捕获 1 低字节 E6H 0 - - E6H 1 - - - - - - - - SC1IS 智能卡1 中断状态寄 存器 E6H 2 - - - ACERRIF BGTIF TERRIF TBEIF RDAIF C0H 输入捕获0 高字节 E5H 0 - - E5H 1 - - - - - - - - SC1IE 智能卡1 中断使能寄 存器 E5H 2 - - - ACERRIEN BGTIEN TERRIEN TBEIEN RDAIEN C0L 输入捕获0 低字节 E4H 0 - - E4H 1 - - - - - - - SC1ETUR 智能卡1 ETU 除频器 E4H D1 寄存器1 2 - SCDIV2 SCDIV1 SCDIV0 ADCDLY ADC 触发延时寄存器 E3H 0 - - E3H 1 - - - - SC1ETUR 智能卡1 ETU 除频器 E3H D0 寄存器 2 ADCCON2 ADC 控制 2 E2H 0 ADFBEN - - E2H 1 - SC1EGT 智能卡1 额外保护时 间寄存器 E2H C1H[7:0] - - - ADCAQT2 ADCAQT1 ADCAQT0 - - - - - OCEN STADCPX ADCDIV1 ADCDIV0 ETGTYP1 ETGTYP0 ADCEX ADCEN - - E1H 1 - - - - - - - - SC1DR 智能卡1 数据寄存器 E1H 2 ACC 累加器 E0H A ACC.0 - DFH SC0TSR 智能卡0 传输状态寄 存器 DFH SC1DR[7:0] 1 - - 0000 0000b - - 0000 0000b 0 - 0000 0010b ADCDLY.8 0000 0000b SC1EGT[7:0] 0 PWMMOD1 PWMMOD0 - 0111 0011b ADCMPO E1H DFH 0000 1010b 0000 0000b - ADCCON1 ADC 控制 1 PWM0CO PWM0 控制 1 N1 - ETURDIV1 ETURDIV1 ETURDIV9 ETURDIV8 0011 0001b 1 0 ETURDIV[7:0] ACC.6 0000 0000b 0000 0000b - ADCDLY[7:0] ACC.7 - 0000 0000b C0L[7:0] - 0000 0000b 0000 0000b C0H[7:0] - - 0000 0000b C1L[7:0] 2 0000 0000b 0000 0000b C1H ADCMPOP ADCMPEN - 0000 0000b SC2DR[7:0] ADCS 0000 0000b 0111 0011b SC2EGT[7:0] ADCF - ETURDIV1 ETURDIV1 ETURDIV9 ETURDIV8 0000 0000b 1 0 ETURDIV[7:0] 2 0000 0000b 0000 0000b ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 GP PWMTYP FBINEN PWMDIV2 PWMDIV1 - - - - - - 0000 0000b PWMDIV0 0000 0000b - 2 ACT BEF FEF PEF TXEMPTY TXOV RXEMPTY RXOV 0000 1010b PIOCON0 PWM0 引脚功能0 DEH 0 - - PIO03 PIO01 PIO00 PIO10 PIO11 PIO12 0000 0000b - - DEH 1 - - - - - - - - SC0IS 智能卡0 中断状态寄 存器 DEH 2 - - - ACERRIF BGTIF TERRIF TBEIF RDAIF PWM0 通道3 占空比 DDH PWM0C3L 低字节 0 - - DDH 1 - - - - - - - - SC0IE 智能卡0中断使能控制 DDH 寄存器 2 - - - ACERRIEN BGTIEN TERRIEN TBEIEN RDAIEN PWM0 通道 2 占空比 DCH PWM0C2L 低字节 0 - DCH 1 - - - - SC0ETUR 智能卡0 ETU 除频器 DCH D1 寄存器 2 - SCDIV2 SCDIV1 SCDIV0 - Feb. 21, 2020 TA PWM0_CH3[7:0] 0000 0010b 0000 0000b PWM0_CH2[7:0] - - 0000 0000b 0000 0000b - - - - ETURDIV1 ETURDIV1 ETURDIV9 ETURDIV8 0011 0001b 1 0 Page 42 of 460 Rev. 1.01 定义 PWM0C1L PWM0 通道1占空比 低字节 DBH - - DBH SC0ETUR 智能卡0 ETU除频器 D0 寄存器 DBH 页 寄存器 地址 MS51 高位 7 6 5 0 1 4 3 2 1 低位 0 [1] PWM0_CH1[7:0] - - - - - 复位值[2] 0000 0000b - - - - 2 ETURDIV[7:0] 0111 0011b PWM0通道0占空比低 DAH PWM0C0L 字节 0 PWM0C0[7:0] 0000 0000b - - DAH 1 SC0EGT 智能卡0 额外时间保 护寄存器 DAH PWM0PL - - - - - 2 SC0EGT[7:0] PWM0 周期值低字节 D9H 0 PWM0P[7:0] - - D9H 1 SC0DR 智能卡0 数据寄存器 D9H 2 PWM0CO PWM0控制0 N0 D8H - - - 0000 0000b - - - SC0DR[7:0] 0000 0000b CLRPWM 0 FBF FBINLS FBD5 FBD4 FBD3 FBD2 FBD1 R/W 1 - - - - - - - - D7H 2 - HXSG2 HXSG1 HXSG0 - - - D6H 0 - - PNP5 PNP4 PNP3 PNP2 PNP1 D6H 1 - - - - - - - - 2 - - INTTYP1 INTTYP0 - INTSEL2 INTSEL1 INTSEL0 - - - - - - - PWMTYP - PWMDIV2 PWMDIV1 - D7H XTLCON XLT 时钟控制 PNP PWM反相控制 D6H PWM0 通道 3 占空比 D5H 高字节 D5H D5H 0 1 - 0000 0000b 0111 0111b PNP0 PWM0_CH3[15:8] 2 PWMMOD1 PWMMOD0 - P33FBINE PWM3RUN PWM2RUN PWM1RUN 0000 0000b N PWMF D7H 0000 0000b LOAD PWM急停控制 PWM3CO PWM3 控制 1 N1 - - PWM0RUN - PWM0C3 H - - 0 PWM0FB D PWM3INT PWM3 中断控制 C - 0000 0000b 0000 0000b - PWMDIV0 0000 0000b PWM0 通道 2 占空比 D4H 高字节 0 - - D4H 1 - - - - - - - - - PWM3CO PWM3 控制 0 N0 D4H 2 PWMRUN LOAD PWMF CLRPWM - - - - 0000 0000b PWM0_CH2[15:8] 0000 0000b PWM0C1 H PWM0 通道 1 占空比 D3H 高字节 0 - - D3H 1 PWM3_C H1L PWM3 通道 1 占空比 D3H 低字节 2 PWM3_CH1[7:0] 0000 0000b PWM0C0 H PWM0通道 0 占空比 D2H 高字节 0 PWM0C0[15:8] 0000 0000b - - D2H 1 PWM3_C H0L PWM3 通道 0 占空比 D2H 低字节 2 PWM0PH PWM0 周期值高字节 D1H 0 - - D1H 1 PWM3PL PWM3 周期值低字节 D1H 2 PSW 程序状态字 D0H A ADCMPH ADC 比较值高字节 CFH 0 - - CFH 1 - - - - EIPH2 扩展中断优先级 高 2 CFH 2 - - - ADCMPL ADC 比较值低字节 CEH 0 - - - - CEH 1 - - EIP2 扩展中断优先级1 CEH 2 - - TH2 定时器 2 高字节 CDH 0 TH2[7:0] 0000 0000b PWM0 通道 5 占空比 CDH PWM0C5L 低字节 1 PWM0C5[7:0] 0000 0000b PWM3ME PWM3 屏蔽使能 N CDH 2 定时器 2 低字节 CCH 0 TL2[7:0] 0000 0000b PWM0 通道 4 占空比 CCH PWM0C4L 低字节 1 PWM0C4[7:0] 0000 0000b CCH 2 RCMP2H 定时器 2 比较值 高字 CBH 节 0 - - CBH 1 PWM3_C H1H PWM3 通道 1 占空比 CBH 高字节 2 PWM3MD PWM3 屏蔽数据 Feb. 21, 2020 - - - - - - - - 0000 0000b - - - - - - PWM3_CH0[7:0] - - - - 0000 0000b - - - OV - P - - - - - - PUART4H PUART3H PUART2H 0000 0000b - - ADCMP3 ADCMP2 ADCMP1 ADCMP0 - - - - - - - - - PUART4 PUART3 PUART2 PWM3P[7:0] CY AC F0 RS1 RS0 - - - - - - - - - - - - - PWM3_CH1[15:8] Page 43 of 460 0000 0000b 0000 0000b - PMEN1 PMEN0 - PMD1 PMD0 - - - RCMP2H[7:0] - 0000 0000b ADCMP[11:4] - 0000 0000b PWM0P[15:8] - - 0000 0000b 0000 0000b 0000 0000b 0000 0000b 0000 0000b 0000 0000b Rev. 1.01 MS51 系列技术参考手册 TL2 PWM0_CH1[15:8] - Y 0000 0000b PWM0C2 H - TA 定义 页 寄存器 地址 MS51 RCMP2L 定时器 2 比较值低字 CAH 节 0 - - CAH 1 PWM3_C H0H PWM3 通道 0 占空比 CAH 高字节 2 T2MOD 定时器 2 模式 C9H - - PWM3PH PWM3周期值高字节 高位 7 6 5 4 3 2 1 低位 0 [1] RCMP2L[7:0] - - - - - 0 LDEN T2DIV2 T2DIV1 T2DIV0 C9H 1 - - - - C9H 2 复位值[2] 0000 0000b - - - CAPCR CMPCR LDTS1 LDTS0 - - - - TR2 - CM/RL2 PWM3_CH0[15:8] 0000 0000b PWM3P[15:8] 0000 0000b 0000 0000b T2CON 定时器 2 控制 C8H A TA 时钟控制访问保护 C7H A TA[7:0] 0000 0000b RH3 定时器 3 重载值 高字 C6H 节 0 RH3[7:0] 0000 0000b PIOCON1 PWM0引脚控制器 C6H 1 PIO17 - PIO15 - PIO04 PIO05 PIO14 - PWM2INT PWM2 中断控制 C C6H 2 - - INTTYP1 INTTYP0 - INTSEL2 INTSEL1 INTSEL0 RL3 Timer 3 重载值低字 节 C5H PWM0C5 H PWM0 通道5占空比 高字节 C5H PWM2CO PWM2 控制 1 N1 C5H T3CON 定时器3 控制 C4H PWM0C4 H PWM0通道4占空比 高字节 C4H PWM2CO PWM2 控制 1 N0 C4H TF2 - - - - 0000 0000b 0000 0000b 0 RL3[7:0] 0000 0000b 1 PWM0C5[15:8] 0000 0000b 2 PWMMOD1 PWMMOD0 0 SMOD_1 SMOD0_1 PWMTYP - BRCK TF3 1 2 TR3 PWMDIV2 PWMDIV1 T3PS2 T3PS1 PWMDIV0 0000 0000b T3PS0 PWM0C4[15:8] PWMRUN LOAD PWMF CLRPWM 0000 0000b 0000 0000b - - - - - - - - 0000 0000b MS51 系列技术参考手册 ADCRH ADC 结果 高字节 C3H 0 - - C3H 1 PWM2_C H1L PWM2 通道1占空比 低字节 C3H ADCRL ADC 结果低字节 C2H 0 - - - - ADCR3 ADCR2 ADCR1 ADCR0 - - C2H 1 - - - - - - - - PWM2_C H0L PWM2 通道0占空比 低字节 C2H I2ADDR I2C本机从机地址 C1H 0 I2ADDR7 I2ADDR6 I2ADDR5 I2ADDR4 I2ADDR3 I2ADDR2 I2ADDR1 GC - - C1H 1 - - - - - - - - PWM2PL PWM2 周期值低字节 C1H 2 I2CON I2C控制器 C0H A - I2CEN STA STO SI AA - I2CPX 0000 0000b I2TOC I2C 超时计数器 BFH 0 - - - - - I2TOCEN DIV I2TOF 0000 0000b - - BFH 1 - - - - - - - - 2 - - - - - - PMEN1 PMEN0 - - - - - - - - PWM2ME PWM2 屏蔽使能 N BFH - I2CLK I2C 时钟 - BEH 1 - 0000 0000b PWM2_CH1[7:0] 2 - BEH - 2 BEH PWM2MD PWM2 屏蔽数据 ADCR[11:4] - 0000 0000b PWM2_CH0[7:0] 0000 0000b 0000 0000b PWM2P[7:0] 0 0000 0000b 0000 0000b I2CLK[7:0] 0000 0000b 0000 1001b - 2 - - - - - - PMD1 PMD0 0000 0000b I2STAT I2C 状态 BDH 0 I2STAT7 I2STAT6 I2STAT5 I2STAT4 I2STAT3 0 0 0 1111 1000b - - BDH 1 - - - - - - - - - PWM2_C H1H PWM2 通道1占空比 高字节 BDH I2DAT I2C 数据 BCH 0 - - BCH 1 PWM2_C H0H PWM2 通道0占空比 高字节 BCH 2 PWM2_CH1[15:8] 0000 0000b I2DAT[7:0] - - - - 0000 0000b - - - - - 2 PWM2_CH015:8] 0000 0000b SADDR_1[7:0] 0000 0000b SADDR_1 从机1地址 BBH 0 - BBH 1 PWM2PH PWM2 周期值高字节 BBH 2 SADEN_1 从机1 地址掩码 BAH 0 - - BAH 1 - - - - - - - - - - - BAH 2 - - - - - - - - - SADEN 从机0 地址掩码 B9H 0 - - B9H 1 - - - - - Feb. 21, 2020 - - - - - - - - PWM2P[15:8] 0000 0000b SADEN[7:0] - - - Page 44 of 460 0000 0000b SADEN_1[7:0] - TA 0000 0000b - Rev. 1.01 MS51 页 - B9H 2 - - - - - - - - IP 中断优先级 B8H A - PADC PBOD PS PT1 PX1 PT0 PX0 0000 0000b IPH 中断优先级 高 B7H 0 - PADCH PBODH PSH PT1H PX1H PT0H PX0H 0000 0000b - - B7H 1 - - - - - - - - PIOCON2 PWM 引脚控制 B7H 2 PIO34 PIO33 PIO32 PIO31 - PIO23 PIO22 PIO21 - B6H 0 - - - - - - - - - B6H 1 - - - - - - - - - 2 - - INTTYP1 INTTYP0 - INTSEL2 INTSEL1 INTSEL0 0000 0000b 0 - - - - T1OE T0OE - - 0000 0000b 1 - - - - - - - - - - PWMTYP - PWMDIV2 PWMDIV1 - PWM1INT PWM1 中断控制 C 地址 - 定义 B6H TOE 定时器01 输出使能 B5H - - B5H PWM1CO PWM1 控制 1 N1 B5H 6 5 2 PWMMOD1 PWMMOD0 4 3 2 1 低位 0 [1] 高位 7 寄存器 复位值[2] - 0000 0000b PWMDIV0 0000 0000b P1M2 端口1 模式选择2 B4H 0 P1M2.7 P1M2.6 P1M2.5 P1M2.4 P1M2.3 P1M2.2 P1M2.1 P1M2.0 0000 0000b P1SR 端口1 转换速率 B4H 1 P1SR.7 P1SR.6 P1SR.5 P1SR.4 P1SR.3 P1SR.2 P1SR.1 P1SR.0 0000 0000b 2 PWMRUN LOAD PWMF CLRPWM - - - - 0000 0000b 0 P1M1.7 P1M1.6 P1M1.5 P1M1.4 P1M1.3 P1M1.2 P1M1.1 P1M1.0 1111 1111b 1 P1S.7 P1S.6 P1S.5 P1S.4 P1S.3 P1S.2 P1S.1 P1S.0 0000 0000b PWM1CO PWM1 控制 0 N0 B4H P1M1 端口1 模式选择1 B3H P1S 端口1 施密特触发输 入 B3H PWM1_C H1L PWM1 通道1 占空比 B3H 低字节 2 P0M2 端口0 模式选择 2 B2H 0 P0M2.7 P0M2.6 P0M2.5 P0M2.4 P0M2.3 P0M2.2 P0M2.1 P0M2.0 0000 0000b P0SR 端口0 转换速率 B2H 1 P0SR.7 P0SR.6 P0SR.5 P0SR.4 P0SR.3 P0SR.2 P0SR.1 P0SR.0 0000 0000b PWM1_C H0L PWM1通道占空比低 字节 B2H P0M1 端口0 模式选择 1 B1H 0 P0M1.7 P0M1.6 P0M1.5 P0M1.4 P0M1.3 P0M1.2 P0M1.1 P0M1.0 1111 1111b P0S 端口0 施密特触发输 入t B1H 1 P0S.7 P0S.6 P0S.5 P0S.4 P0S.3 P0S.2 P0S.1 P0S.0 0000 0000b PWM1PL PWM1周期值低字节 B1H 2 P3 端口 3 B0H A P3.7 P3.6 IAPCN IAP 控制寄存器 AFH 0 IAPA17 IAPA16 1 - - - - - AFH - - AFH 2 IAPFD IAP 数据寄存器 AEH 0 - - AEH 1 AEH 0000 0000b PWM1_CH07:0] 0000 0000b PWM1P[7:0] P3.5 0000 0000b P3.2 P3.0 输出锁存, 1111 1111b 输入 xxxx xxxxb[3] FCTRL1 FCTRL0 0011 0000b INTSEL1 INTSEL0 0000 0000b P3.4 P3.3 P3.1 FOEN FCEN FCTRL3 FCTRL2 INTTYP1 INTTYP0 - INTSEL2 - - - - - - - - - IAPFD[7:0] - - - - 0000 0000b - 2 - - - - - - PMEN1 PMEN0 0000 0000b P3M2 端口3 模式选择 2 ADH 0 P3M2.7 P3M2.6 P3M2.5 P3M2.4 P3M2.3 P3M2.2 P3M2.1 P3M2.0 0000 0000b P3SR 端口3 转换速率 ADH 1 P3SR.7 P3SR.6 P3SR.5 P3SR.4 P3SR.3 P3SR.2 P3SR.1 P3SR.0 0000 0000b ADH 2 - - - - - - PMD1 PMD0 0000 0000b 0 P3M1.7 P3M1.6 P3M1.5 P3M1.4 P3M1.3 P3M1.2 P3M1.1 P3M1.0 1111 1111b 1 P3S.7 P3S.6 P3S.5 P3S.4 P3S.3 P3S.2 P3S.1 P3S.0 0000 0000b PWM1MD PWM1 屏蔽数据 P3M1 端口3 模式选择 1 ACH P3S 端口3 施密特触发输 入 ACH PWM1_C H1H PWM1通道1占空比高 ACH 字节 BODCON 1 欠压检测控制1 - - PWM1_C H0H 2 PWM1_CH1[15:8] 0000 0000b ABH 0 - - - - - LPBOD1 LPBOD0 BODFLT ABH 1 - - - - - - - - PWM1通道0占空比高 ABH 字节 2 PWM1_CH015:8] WTD控制 - - PWM1PH PWM1周期值高字节 Feb. 21, 2020 0 WDTR WDCLR WDTF WIDPD WDTRF WDPS2 WDPS1 WDPS0 AAH 1 - - - - - - - - AAH 2 PWM1P[15:8] Page 45 of 460 POR, 0000 0001b 其他, 0000 0UUUb Y 0000 0000b AAH WDCON MS51 系列技术参考手册 PWM0INT PWM0 中断控制 C PWM1ME PWM1 屏蔽使能 N PWM1_CH1[7:0] 2 TA POR, 0000 0111b WDT, 0000 1UUUb 其他, 0000 UUUUb Y 0000 0000b Rev. 1.01 地址 页 MS51 SADDR 从机0地址 A9H 0 - - A9H 1 A9H 2 寄存器 定义 PWM1PH PWM1周期值高字节 高位 7 6 5 4 3 2 1 - - - - - - EX1 ET0 EX0 - - - PWM1P[15:8] A IAPAH IAP 地址高字节 A7H 0 - - A7H 1 AUXR8 辅助寄存器 8 A7H IAPAL IAP 地址低字节 A6H 0 - - A6H 1 - - - AUXR7 辅助寄存器 7 A6H 2 - - - IAPUEN IAP 更新使能 A5H 0 - - SPMEN SPUEN CFUEN - - A5H 1 - - - - - - AUXR6 辅助寄存器6 A5H 2 - - - UART4DG UART3DG UART2DG UART1DG IAPTRG IAP触发寄存器 A4H 0 - - - - - - - - A4H 1 - - - - 辅助寄存器5 A4H 2 CLOP T0P EADC EBOD ES - - - - ET1 IAPA[15:8] CLODIV3 CLODIV2 CLODIV1 欠压检测控制0 - - A3H AUXR4 辅助寄存器 4 A3H 0 1 2 BODEN - BOV1 - SPI0NSSP SPI0MOSIP SPI0MISOP 0 - - SPI0CKP 0000 0000b LDUEN APUEN 0000 0000b - IAPGO 0000 0000b BOV0 BOF BORST BORF BOS POR, CCCC XC0Xb BOD, UUUU XU1Xb 其他, UUUU XUUXb POR, 0000 0000b 软件, 1U00 0000b nRESET 引脚, U100 0000b 其他, UUU0 0000b MS51 系列技术参考手册 - - A2H AUXR3 辅助寄存器 3 A2H - - A1H 0 - - A1H 1 AUXR2 辅助寄存器 2 A1H P2 Port 2端口 2 A0H A - - P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 输出锁存 0000 000Xb 输入, 0000 000Xb CHPCON 芯片控制 9FH 0 SWRST IAPFF - - - - BS[5] IAPEN 软件, 0000 00U0b 其他, 0000 00C0b - - 9FH 1 - - - - - - - - - - - 9FH 2 - - - - - - - - - - - 9EH 1 - - - - - - 9EH 1 - - - - - - - - 9EH 2 - HardF(mirro red from AUXR1.5) POF (mirrored from PCON.4) RSTPINF (mirrored from AUXR1.6) 2 SWRF RSTPINF HardF SLOW GF2 UART0PX 0 DPS UART4TXP UART4TXP UART4RXP UART4RXP UART3TXP UART3TXP UART3RXP UART3RXP 0000 0000b 1 0 1 0 1 0 1 0 - - - - - - - - - UART2TXP UART2TXP UART2RXP UART2RXP UART1TXP UART1TXP UART1RXP UART1RXP 0000 0000b 1 0 1 0 1 0 1 0 BORF WDTRF (mirrored (mirrored from from BODCON0. WDCON.3) 1) SWRF (mirrored from AUXR1.7) - 复位标志寄存器 9DH 0 - - 9DH 1 - - - - - - - - P3DW 端口3下拉电阻控制 9DH 2 P3DW.7 P3DW.6 P3DW.5 P3DW.4 P3DW.3 P3DW.2 P3DW.1 P3DW.0 0000 0000b EIE1 扩展中断使能寄存 1 9CH 0 - - EPWM3 EPWM2 EPWM1 EWKT ET3 ES_1 0000 0000b - - 9CH 1 - - - - - - - - P2DW 端口2下拉电阻控制 9CH 2 - - P2DW.5 P2DW.4 P2DW.3 P2DW.2 P2DW.1 P2DW.0 0000 0000b EIE 扩展中段使能寄存器 9BH 0 ET2 ESPI EFB EWDT EPWM0 ECAP EPI EI2C 0000 0000b - - 9BH 1 - - - - - - - - P1DW 端口1下拉电阻控制 9BH 2 P1DW.7 P1DW.6 P1DW.5 P1DW.4 P1DW.3 P1DW.2 P1DW.1 P1DW.0 SBUF_1 串口1数据缓存 9AH 0 - SBUF_1[7:0] Page 46 of 460 Y - RSR Feb. 21, 2020 Y PWM2_CH PWM2_CH PWM2_CH PWM2_CH PWM1_CH PWM1_CH PWM1_CH PWM1_CH 0000 0000b 1P1 1P0 0P1 0P0 1P1 1P0 0P1 0P0 辅助寄存器 1 2 Y PWM3_CH PWM3_CH PWM3_CH PWM3_CH 0000 0000b 1P1 1P0 0P1 0P0 AUXR1 1 Y - UART0DG 0000 0000b A2H 0 Y 0000 0000b A3H BODCON 0 0000 0000b CKTESTOE CKTESTOE CKTESTOE CKTESTOE 0000 0000b N3 N2 N1 N0 IAPA[7:0] SPI0NSSP 1 - 0000 0000b - CLODIV0 TA 0000 0000b A8H EA 复位值[2] 0000 0000b - 中断使能寄存器 AUXR5 [1] SADDR[7:0] - IE 2 低位 0 00XX XXXXb - - 0000 0000b 0000 0000b Rev. 1.01 MS51 [1] 页 低位 0 地址 高位 7 - - 9AH 1 - - - - - - - - P0DW 端口 0 下拉电阻控制 9AH 2 P0DW.7 P0DW.6 P0DW.5 P0DW.4 P0DW.3 P0DW.2 P0DW.1 P0DW.0 SBUF 串口0数据缓存 99H 0 - - 99H 1 - - - - - - - - - 寄存器 定义 ADC 信道数字输入信 99H AINDIDS1 道关闭1 6 5 4 3 2 1 SBUF[7:0] 复位值[2] 0000 0000b 0000 0000b 2 P25DIDS P14DIDS P13DIDS P24DIDS P23DIDS P22DIDS P21DIDS - 0000 0000b SCON 串口0控制器 98H A SM0/FE SM1 SM2 REN TB8 RB8 TI RI 0000 0000b CKEN 时钟使能 97H 0 EXTEN1 EXTEN0 HIRCEN - - - - CKSWTF 0011 0000b - - 97H 1 - - - - - - - - RWKH WKT加载值高字节 97H 2 CKSWT 时钟切换 96H 0 HXTST ECKP00ST HIRCST - ECKP30ST OSC1 OSC0 - 0011 0000b - - 96H 1 - - - - - - - - - - - 96H 2 - - - - - - - - 0000 0000b CKDIV 时钟除频器 95H 0 - - 95H 1 - - - - - - - - P3UP 端口 3 上拉电阻控制 95H 2 P3UP.7 P3UP.6 P3UP.5 P3UP.4 P3UP.3 P3UP.2 P3UP.1 P3UP.0 0000 0000b CAPCON2 输入捕获控制 2 94H 0 - ENF2 ENF1 ENF0 - - - - 0000 0000b - - 94H 1 - - - - - - - - - P2UP 端口 2 上拉电阻控制 94H 2 - - P2UP.5 P2UP.4 P2UP.3 P2UP.2 P2UP.1 P2UP.0 0000 0000b CAPCON1 输入捕获控制1 93H 0 - - CAP2LS1 CAP2LS0 CAP1LS1 CAP1LS0 CAP0LS1 CAP0LS0 0000 0000b - - 93H 1 - - - - - - - - P1UP 端口 1 上拉电阻控制 93H 2 P1UP.7 P1UP.6 P1UP.5 P1UP.4 P1UP.3 P1UP.2 P1UP.1 P1UP.0 0000 0000b CAPCON0 输入捕获控制 0 92H 0 - CAPEN2 CAPEN1 CAPEN0 - CAPF2 CAPF1 CAPF0 0000 0000b - - 92H 1 - - - - - - - - P0UP 端口 0 上拉电阻控制 92H 2 P0UP.7 P0UP.6 P0UP.5 P0UP.4 P0UP.3 P0UP.2 P0UP.1 P0UP.0 SFRS SFR 页选择 91H A - - - - - - P1 Port 1端口 1 90H A P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 WKCON WTK控制寄存器 8FH 0 - - - WKTF WKTR WKPS2 WKPS1 WKPS0 - - 8FH 1 - - - - - - - - ADCSR ADC 状态寄存器 8FH 2 - CMPHIT HDONE FDONE 0000 0000b CKCON 时钟控制器 8EH 0 - PWMCKS - T1M T0M - CLOEN - 0000 0000b - - 8EH 1 - - - - - - - - - ADCCN ADC目前采样个数 8EH 2 ADCCN[7:0] TH1 定时器 1 高字节 8DH 0 TH1[7:0] - - 8DH 1 ADCSN ADC采样个数 8DH 2 ADCSN[7:0] TH0 定时器 0 高字节 8CH 0 TH0[7:0] - - 8CH 1 - - - - - - - - P2S 端口 2 施密特触发输 8CH 入 2 P2S.7 P2S.6 P2S.5 P2S.4 P2S.3 P2S.2 P2S.1 P2S.0 TL1 定时器 1 低字节 8BH 0 - - 8BH 1 - - - - - - - - P2SR 端口 2 转换速率 8BH 2 P2SR.7 P2SR.6 P2SR.5 P2SR.4 P2SR.3 P2SR.2 P2SR.1 P2SR.0 TL0 定时器 0 低字节 8AH 0 - - 8AH 1 - - - - - - - - P2M2 端口2 模式选择 2 8AH 2 P2M2.7 P2M2.6 P2M2.5 P2M2.4 P2M2.3 P2M2.2 P2M2.1 P2M2.0 89H 0 0000 0000b CKDIV[7:0] - - Y 0000 0000b - - 0000 0000b SFRPSEL1 SFRPSEL0 0000 0000b 输出锁存, 1111 1111b 输入 XXXX XXXXb 0000 0000b - 0000 0000b 0000 0000b - - - - - 0000 0000b 0000 0000b TL1[7:0] 0000 0000b 0000 0000b TL1[7:0] 0000 0000b 0000 0000b 0000 0000b 0000 0000b - - 89H 1 - - - - - - - - P2M1 端口模式选择 1 89H 2 P2M1.7 P2M1.6 P2M1.5 P2M1.4 P2M1.3 P2M1.2 P2M1.1 P2M1.0 0000 0000b TCON 定时器0和1控制 88H A TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 0000 0000b PCON 电源控制 87H A SMOD SMOD0 - POF GF1 GF0 PD IDL POR, 0001 0000b 其他, 000U 0000b RWKL 加载值低字节 86H 0 - - 86H 1 - - - - - - - Feb. 21, 2020 Y - RWK[7:0] Page 47 of 460 - 0000 0000b - - Rev. 1.01 MS51 系列技术参考手册 TMOD RWK[15:8] - TA MS51 地址 页 ADCCON3 ADC 控制3 86H 2 - 高速内部振荡器 RCTRIM1 16MHz调整值1 85H 0 - - HIRC24 - - - - 85H 1 - - - - - - - - ADCBAH ADC 内存基地址高字 85H 节 2 - - - - ADCBA3 ADCBA2 ADCBA1 ADCBA0 RCTRIM0 高速内部振荡器 16MHz调整值0 84H 0 - - 84H 1 - - - - - - ADCBAL ADC 内存基地址低字 84H 节 2 ADCBA[7:0] 0000 0000b DPH 数据指针高字节 83H A DPTR[15:8] 0000 0000b DPL 数据指针低字节 82H A DPTR[7:0] 0000 0000b SP 堆栈指针 81H A SP[7:0] 0000 0111b P0 端口 0 80H A 定义 6 - 5 HIE 4 3 CONT ADCAQT2 2 ADCAQT1 1 ADCAQT0 低位 0 [1] 高位 7 寄存器 SLOW P0.7 P0.6 P0.5 - P0.4 P0.3 P0.1 P0.0 Y 0000 0000b 0000 0000b P0.2 TA 0000 0000b HIRCTRIM. 0000 0000b 0 HIRCTRIM[8:1] - 复位值[2] Y - 输出锁存, 1111 1111b 输入, XXXX XXXXb 注: 1. ( ) 意思是SFRs的可位寻址地址。 2. 复位值符号描述。 0:逻辑 0; 1:逻辑 1; U:不变; C:见 [5]; X见 [3], [6],和 [7]. 3. 复位之后所有I/O引脚默认为悬浮输入模式。如果 RPD (CONFIG0.2)一直保持1,读取P2.0始终为0。复位后OCDDA和OCDCK引脚 将保持准双向带上拉电阻的模式 600个LIRC时钟周期之后变为输入模式。 4. 这些SFRs有TA写保护。 5. 在规定复位后,根据CONFIG值,SFRs有些位初始化时设置。 6. BOF复位值取决于CONFIG2不同的设置和VDD 电压值。 7. 当欠压检测使能,BOS是只读标志,由VDD值来决定。 表 6.1‑ 2 特殊功能寄存器定义和复位值 MS51 系列技术参考手册 Feb. 21, 2020 Page 48 of 460 Rev. 1.01 MS51 6.1.7.5 所有SFR介绍 注: 1. 所有SFR的复位值意义为:U-不改变;C-由CONFIG初始化;X- 基于实际芯片状态。 Pn – 端口 (可位寻址) 寄存器 SFR 地址 复位值 P0 80H,所有页,可位寻址 1111_1111 b P1 90H,所有页,可位寻址 1111_1111 b P2 A0H,所有页,可位寻址 0011_1111 b P3 B0H,所有页,可位寻址 1111_1111 b 7 6 5 4 3 2 1 0 Pn.7 Pn.6 Pn.5 Pn.4 Pn.3 Pn.2 Pn.1 Pn.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 Pn[7:0] 描述 端口 端口是8位通用输入输出端口 MS51 系列技术参考手册 Feb. 21, 2020 Page 49 of 460 Rev. 1.01 MS51 SP – 堆栈指针 寄存器 SFR 地址 复位值 SP 81H,所有页 0000_0111b 7 6 5 4 3 2 1 0 SP[7:0] 读/写 位 名称 7:0 SP[7:0] 描述 堆栈指针 堆栈指针存储的是RAM的地址,该地址是堆栈的起始地址。在执行PUSH 或 CALL指令的时候,在数据 被存储之前,堆栈指针递增。注意:SP的默认值是07H。因此堆栈起始位置在08H。 MS51 系列技术参考手册 Feb. 21, 2020 Page 50 of 460 Rev. 1.01 MS51 DPL – 数据指针低字节 寄存器 SFR 地址 复位值 DPL 82H,所有页 0000_0000b 7 6 5 4 3 2 1 0 DPL[7:0] 读/写 位 名称 7:0 DPL[7:0] 描述 数据指针低字节 这是16位数据指针的低字节,DPL 结合DPH作为16位的数据指针DPTR访问想要访问的RAM或编程内存地 址。DPS (AUXR0.0) 位决定哪一个数据指针DPTR 或 DPTR1激活。 MS51 系列技术参考手册 Feb. 21, 2020 Page 51 of 460 Rev. 1.01 MS51 DPH – 数据指针高字节 寄存器 SFR 地址 复位值 DPH 83H,所有页 0000_0000b 7 6 5 4 3 2 1 0 DPH[7:0] 读/写 位 名称 7:0 DPH[7:0] 描述 数据指针高字节 这是16位数据指针的低高字节, DPL 结合DPH作为16位的数据指针DPTR访问想要访问的RAM或编程内 存地址。DPS (AUXR0.0) 位决定哪一个数据指针DPTR 或 DPTR1激活 。 MS51 系列技术参考手册 Feb. 21, 2020 Page 52 of 460 Rev. 1.01 MS51 RWKL – 加载值低字节自唤醒定时器重装载数据低字节寄存器 寄存器 SFR 地址 复位值 RWKL 86H, 页 0 0000 0000b 7 6 5 4 3 2 1 0 RWK[7:0] 读/写 位 名称 7:0 RWK[7:0] 描述 WKT 重装载数据低字节 加载WKT时16位数值的低字节。 注意:若不分频,加载值不能是 FFFFH MS51 系列技术参考手册 Feb. 21, 2020 Page 53 of 460 Rev. 1.01 MS51 RWKH – 加载值高字节自唤醒定时器重装载数据高字节寄存器 寄存器 SFR 地址 复位值 RWKH 97H, 页 2 0000 0000b 7 6 5 4 3 2 1 0 RWK[15:8] 读/写 位 名称 7:0 RWK[15:8] 描述 WKT 重装载数据高字节 加载WKT时16位数值的高字节。 注意:若不分频,加载值不能是 FFFFH MS51 系列技术参考手册 Feb. 21, 2020 Page 54 of 460 Rev. 1.01 MS51 PCON – 电源控制 寄存器 SFR 地址 PCON 87H, 所有页 复位值 POR: 0001_0000b 其他: 000U _0000b 7 6 5 4 3 2 1 0 SMOD SMOD0 - POF GF1 GF0 PD IDL 读/写 读/写 - 读/写 读/写 读/写 读/写 读/写 位 名称 7 SMOD 描述 串行 0 双波特率使能 当UART0 在模式2或定时器1的溢出用作串口模式1或3的波特率时,设置此位可加倍波特率。表 6.9-1 串口UART0 模式/波特率描述 6 SMOD0 串口 0 帧错误标志访问使能 0 = SCON.7 访问 SM0 位. 1 = SCON.7 访问 FE 位. 4 POF 上电复位标志 当上电复位后该位置1。表示冷复位、上电复位完成。其他任何复位不会影响该位。建议通过软件清 0。 3 GF1 通用标志 1 通用标志可由用户通过软件置位和清0。 GF0 通用标志0 通用标志可由用户通过软件置位和清0。 1 PD 掉电模式 设置该位使MCU进入掉电模式。在此模式下, CPU和外设时钟停止,程序计数器( PC)挂起,此 时系统为最小功耗模式。 CPU从掉电模式下唤醒后,该位自动由硬件清零,且程序继续执行唤醒系 统的中断源对应的中断服务程序ISR。从ISR返回后,设备从让系统进入掉电模式的指令后续指令继 续执行。 注:如果IDL位和PD位同时置位, MCU进入掉电模式。从掉电模式退出后不会进入空闲模式。 0 IDL 空闲模式 设置该位使MCU进入空闲模式。在此模式下, CPU时钟停止,且程序计数器( PC)挂起,但是所 有外设继续工作。 CPU从空闲模式唤醒后,该位自动由硬件清零,且程序继续执行唤醒系统的中断 源对应的中断服务程序ISR。 从ISR返回后,设备从让系统进入空闲模式的指令后续指令继续执行。 Feb. 21, 2020 Page 55 of 460 Rev. 1.01 MS51 系列技术参考手册 2 MS51 TCON – 定时器 0和1控制 寄存器 SFR 地址 复位值 TCON 88H, 所有页, 可位寻址 0000_0000b 7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读/写 读/写 读/写 读/写 位 名称 7 TF1 读 (电平) 读/写(边沿) 读/写 读 (电平) 读/写(边沿) 读/写 描述 定时器 1 溢出标志 在定时器1溢出时该位置1。当程序相应定时器1中断执行相应的中断服务程序时,该位自动清0。软件 It is automatically cleare也可对其写1或0。 6 TR1 定时器 1 启动控制 0 = 定时器1禁止。清该位将终止定时器1并且当前计数值将保存到TH1和TL1中。 1 = 使能定时器 1。 5 TF0 定时器 0 溢出标志 在定时器0溢出时该位置1。当程序响应定时器0中断执行相应的中断服务程序时,该位自动清0。软件 也可对其写1或写0 。 4 TR0 定时器 0启动控制 0 = 定时器 0 禁止。清除该位将停止定时器0并且当前计数值将保存到TH0和TL0中。 MS51 系列技术参考手册 1 = 使能定时器0。 3 IE1 外部中断 1 边沿标志 如果 IT1 = 1 (下降沿触发), 当检测到下降沿时该标志将被硬件置位。该位将保持置1直到软件清零或 在外部中断1服务程序中硬件清零。 如果 IT1 = 0 (低电平触发), 此标志是̅̅̅̅̅̅̅输入信号逻辑电平的反转。软件不可控制。 2 IT1 外部中断 1 类型选择 该位选择̅̅̅̅̅̅̅的中断触发类型。 0 = ̅̅̅̅̅̅̅ 是低电平触发. 1 = ̅̅̅̅̅̅̅ 是下降沿触发. 1 IE0 外部中断 0 边沿标志 如果 IT0 = 1 (下降沿触发), 当检测到下降沿时该标志将被硬件置位。该位将保持置1直到软件清零或 在外部中断0服务程序中硬件清零。 如果 IT0 = 0 (低电平触发), 此标志是̅̅̅̅̅̅̅输入信号逻辑电平的反转。软件不可控。 Feb. 21, 2020 Page 56 of 460 Rev. 1.01 MS51 位 名称 0 IT0 描述 外部中断 0 类型选择 该位选择̅̅̅̅̅̅̅的中断触发类型。 0 = ̅̅̅̅̅̅̅ 是低电平触发 1 = ̅̅̅̅̅̅̅ 是下降沿触发 MS51 系列技术参考手册 Feb. 21, 2020 Page 57 of 460 Rev. 1.01 MS51 TMOD – 定时器 0 和 1 模式 寄存器 SFR 地址 复位值 TMOD 89H, 页0 0000_0000b 7 6 ̅ GATE 读/写 读/写 位 名称 7 GATE 5 4 3 2 M1 M0 GATE 读/写 读/写 读/写 ̅ 读/写 1 0 M1 M0 读/写 读/写 描述 定时器 1 门控制 0 = 不管̅̅̅̅̅̅̅的逻辑电平,TR1 为1时,定时器1时钟运行。 1 = 当 ̅̅̅̅̅̅̅ 为1,TR1为1时,定时器1时钟运行。 6 ̅ 定时器 1 计数器/定时器 选择 0 = 定时器1 随内部时钟而递增 1 = 定时器1 随外部引脚T1 的下降沿递增 5 M1 4 M0 MS51 系列技术参考手册 3 GATE 定时器 1 模式选择 M1 M0 定时器 1 模式 0 0 模式 0: 13位定时器/计数器 0 1 模式 1: 16位定时器/计数器 1 0 模式 2: TH1自动重载的8位定时器/计数器 1 1 模式 3: 定时器1停止 定时器 0 门控制 0 = 不管 ̅̅̅̅̅̅̅ 的逻辑电平,TR0为1时,定时器0的时钟运行。 1 = 当̅̅̅̅̅̅̅ 为1,TR0为1时,定时0的时钟运行。 2 ̅ 定时器 0 计数器/定时器选择 0 = 定时器0 随内部时钟而递增 1 = 定时器0 随外部引脚T0 的下降沿递增 1 M1 0 M0 Feb. 21, 2020 定时器 0 模式选择 M1 M0 定时器 0 模式 0 0 模式 0: 13位定时器/计数器 0 1 模式 1: 16位 定时器/计数器 1 0 模式 2: TH0自动重载的8位定时器/计数器 1 1 模式 3: TL0 作为8位定时器/计数器,TH0 作为8位定时器。 Page 58 of 460 Rev. 1.01 MS51 TL0 – 定时器 0 低字节 寄存器 SFR 地址 复位值 TL0 8AH, 页 0 0000_0000b 7 6 5 4 3 2 1 0 TL0[7:0] 读/写 位 名称 7:0 TL0[7:0] 描述 定时器 0低字节 TL0是定时器0 16位计数器的低字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 59 of 460 Rev. 1.01 MS51 TL1 – 定时器 1 低字节 寄存器 SFR 地址 复位值 TL1 8BH, 页0 0000_0000b 7 6 5 4 3 2 1 0 TL1[7:0] 读/写 位 名称 7:0 TL1[7:0] 描述 定时器 1 低字节 TL1是定时器1 16位计数器的低字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 60 of 460 Rev. 1.01 MS51 TH0 – 定时器 0 高字节 寄存器 SFR 地址 复位值 TH0 8CH, 页0 0000_0000b 7 6 5 4 3 2 1 0 TH0[7:0] 读/写 位 名称 7:0 TH0[7:0] 描述 定时器 0 高字节 TL0 TH0是定时器0 16位计数器的高字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 61 of 460 Rev. 1.01 MS51 TH1 – 定时器 1 高字节 寄存器 SFR 地址 复位值 TH1 8DH, 页0 0000_0000b 7 6 5 4 3 2 1 0 TH1[7:0] 读/写 位 名称 7:0 TH1[7:0] 描述 定时器 1 高字节 TL1TH1是定时器1 16位计数器的高字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 62 of 460 Rev. 1.01 MS51 CKCON – 时钟控制 寄存器 SFR 地址 复位值 CKCON 8EH, 页0 0000_0000b 7 6 5 4 3 2 1 0 - PWMCKS - T1M T0M - CLOEN - - 读/写 - 读/写 读/写 - 读/写 - 位 名称 7 - 6 PWMCKS 保留 PWM 时钟源选择 0 = PWM时钟源选择系统时钟FSYS. 1 = PWM时钟源选择定时器1溢出. 5 - 4 T1M 保留 定时器 1 时钟源选择 0 = 定时器1时钟源选择系统时钟/12。兼容标准8051。 1 = 定时器1时钟源选择系统时钟。 3 T0M 定时器0时钟源选择 0 =定时器0时钟源选择系统时钟/12。兼容标准8051。 1 =定时器0 时钟源选择系统时钟。 CLOEN MS51 系列技术参考手册 1 系统时钟输出使能 0 = 系统时钟输出禁止。 1 = 系统时钟从 CLO 引脚输出。 注意: CLO 由 AUXR5.7设置. 0 Feb. 21, 2020 - 保留 Page 63 of 460 Rev. 1.01 MS51 WKCON – WTK控制寄存器 寄存器 SFR 地址 复位值 WKCON 8FH, 页0 0000_0000b 7 6 5 4 3 - - - WKTF WKTR WKPS[2:0] - - - 读/写 读/写 读/写 位 名称 2 1 0 描述 7:5 - 保留 4 WKTF WKT 溢出标志 WKT 溢出时此位置1,若使能了中断,会产生中断,需软件清0 如果WKT中断和全局中断使能,置位该位会使CPU执行WKT中断服务程序。该位不会被硬件自动 清零,应该通过软件清零。 3 WKTR WKT运行控制 0 = WKT停止. 1 = WKT开始计数 注意:只有在此位为0时,才可以加载 WKT 的值,在此位为1时加载WKT结果将不可预知 2:0 WKPS[2:0] WKT 分频 这些位决定WKT时钟的预分频. 000 = 1/1. MS51 系列技术参考手册 001 = 1/4. 010 = 1/16. 011 = 1/64. 100 = 1/256. 101 = 1/512. 110 = 1/1024. 111 = 1/2048. Feb. 21, 2020 Page 64 of 460 Rev. 1.01 MS51 SFRS – SFR 页选择 寄存器 SFR 地址 复位值 SFRS 91H,所有页 0000_0000b 7 6 5 4 3 2 1 0 - - - - - - SFRPAGE1 SFRPAGE0 - - - - - - 读/写 读/写 位 名称 7:2 - 1:0 描述 保留 SFRPAGE[1:0] SFR 页选择 0 = 指令访问SFR页 0。 1 =指令访问SFR 页 1。 2 =指令访问SFR 页 2。 MS51 系列技术参考手册 Feb. 21, 2020 Page 65 of 460 Rev. 1.01 MS51 CAPCON0 – 输入捕获控制 0 寄存器 SFR 地址 复位值 CAPCON0 92H,页 0 0000_0000b 7 6 5 4 3 2 1 0 - CAPEN2 CAPEN1 CAPEN0 - CAPF2 CAPF1 CAPF0 - 读/写 读/写 读/写 - 读/写 读/写 读/写 位 名称 7 - 6 CAPEN2 描述 保留 输入捕获通道2使能 0 = 输入捕获通道2禁止。 1 = 输入捕获通道2使能。 5 CAPEN1 输入捕获通道1使能 0 = 输入捕获通道1禁止。 1 =输入捕获通道1使能。 4 CAPEN0 输入捕获通道0使能 0 = 输入捕获通道0禁止。 1 = 输入捕获通道0使能。 MS51 系列技术参考手册 3 - 2 CAPF2 保留 输入捕获通道2标志 如果输入捕获通道2探测到边沿触发事件发生,该位由硬件置位,由软件清零。 1 CAPF1 输入捕获通道1标志 如果输入捕获通道1探测到边沿触发事件发生,该位由硬件置位,由软件清零。 0 CAPF0 输入捕获通道0标志 如果输入捕获通道0探测到边沿触发事件发生,该位由硬件置位,由软件清零。 Feb. 21, 2020 Page 66 of 460 Rev. 1.01 MS51 CAPCON1 – 输入捕获控制 1 寄存器 SFR 地址 复位值 CAPCON1 93H, 页 0 0000_0000b 7 6 - - CAP2LS[1:0] CAP1LS[1:0] CAP0LS[1:0] - - 读/写 读/写 读/写 位 名称 7:6 - 5:4 CAP2LS[1:0] 5 4 3 2 1 0 描述 保留 输入捕获通道2电平选择 00 = 下降沿. 01 = 上升沿. 10 = 上升或下降沿. 11 = 保留. 3:2 CAP1LS[1:0] 输入捕获通道1电平选择 00 = 下降沿. 01 = 上升沿. 10 = 上升或下降沿. 11 = 保留. 1:0 CAP0LS[1:0] 输入捕获通道0电平选择 MS51 系列技术参考手册 00 = 下降沿. 01 = 上升沿. 10 = 上升或下降沿. 11 = 保留. Feb. 21, 2020 Page 67 of 460 Rev. 1.01 MS51 CAPCON2 – 输入捕获控制 2 寄存器 SFR 地址 复位值 CAPCON2 94H,页0 0000_0000b 7 6 5 4 3 2 1 0 - ENF2 ENF1 ENF0 - - - - - 读/写 读/写 读/写 - - - - 位 名称 7 - 6 ENF2 描述 保留 输入捕获通道2的噪声滤波器使能 0 = 输入捕获通道2的噪声滤波器禁止。 1 = 输入捕获通道2的噪声滤波器使能。 5 ENF1 输入捕获通道1的噪声滤波器使能 0 = 输入捕获通道1的噪声滤波器禁止。 1 = 输入捕获通道1的噪声滤波器使能。 4 ENF0 输入捕获通道0的噪声滤波器使能 0 = 输入捕获通道0的噪声滤波器禁止。 1 = 输入捕获通道0的噪声滤波器使能。 3:0 - 保留 MS51 系列技术参考手册 Feb. 21, 2020 Page 68 of 460 Rev. 1.01 MS51 CKDIV – 时钟除频器 寄存器 SFR 地址 复位值 CKDIV 95H,页0 0000_0000b 7 6 5 4 3 2 1 0 CKDIV[7:0] 读/写 位 名称 7:0 CKDIV[7:0] 描述 时钟除频器 根据CKDIV值,系统时钟频率FSYS如下式所示. F = FOSC 当CKDIV = 00H 时, SYS 当CKDIV = 01H to FFH时, FSYS = FOSC 2 × CKDIV MS51 系列技术参考手册 Feb. 21, 2020 Page 69 of 460 Rev. 1.01 MS51 CKSWT – 时钟切换 寄存器 SFR 寄存器 复位值 CKSWT 96H,页 0, TA 保护 0011 _0000 b 7 6 5 4 3 HXTST ECKP00ST HIRCST LIRCST ECKP30ST OSC[1:0] - 只读 只读 只读 只读 只读 只写 - 位 名称 7 HXTST 2 1 0 描述 高速外部晶振 4 MHz 至 24 MHz 状态 0 = 高速外部晶振不稳定或禁用 1 = 高速外部晶振已使能且稳定 6 ECKP00ST 外部时钟P00的输入状态 0 = 外部时钟P00输入不稳定或被禁用 1 =外部时钟P00输入已使能且稳定 5 HIRCST 高速内部振荡器状态 0 = 高速内部振荡器不稳定或被禁用 1 =高速内部振荡器已使能且稳定 - - 3 ECKP30ST 保留 外部时钟P30的输入状态 MS51 系列技术参考手册 0 = 外部时钟P30输入不稳定或被禁用 1 =外部时钟P30输入已使能且稳定 2:1 OSC[1:0] 振荡器选择位 该位是用来选择系统时钟源 00 = 内部16MHz振荡器 01 = 外部时钟控制,通过EXTEN[1:0] (CKEN[7:6]) 设置 10 = 内部10kHz振荡器 11 = 保留 注意该位段只写,读回来的值可能与当前时钟源不一致 0 Feb. 21, 2020 - 保留 Page 70 of 460 Rev. 1.01 MS51 CKEN – 时钟使能 寄存器 SFR 地址 复位值 CKEN 97H,页 0,TA 保护 0011_0000 b 7 6 5 4 3 2 1 0 EXTEN[1:0] HIRCEN LIRCEN - - - CKSWTF 读/写 读/写 R/W - - - 只读 位 名称 7:6 EXTEN[1:0] 描述 外部时钟源使能 11 =外部时钟输入通过OSCIN (P30)使能 10 =外部时钟输入通过HXTIN (P00)使能 01 = 外部晶振 4~24 MHz 使能 00 = 禁用外部时钟输入。 P30/P00/P01 作为普通 I/O或其它功能使用 5 HIRCEN 高速内部振荡器16MHz使能 0 = 高速内部振荡器禁用 1 = 高速内部振荡器使能 注意一旦设置IAPEN (CHPCON.0)位开启IAP功能, HIRC将会自动使能,硬件也会设置HIRCEN 和HIRCST位。 IAPEN被清除后, HIRCEN和EHRCST位会恢复为原始值。 4 LIRCEN Low speed internal oscillator 10 kHz enable 0 = The low speed internal oscillator Disabled. Note that when (1) WDT is enabled, (2) WKT is running by the clock source of the internal 10 kHz oscillator ,(3) BOD is enabled, or (4) LVR filter is enabled, a write 0 to LIRCEN will be ignored. LIRCEN is always 1 and the internal 10 kHz oscillator is always enabled. 3:1 - 0 CKSWTF 保留 时钟切换错误标志位 0 =系统时钟源切换成功 1 = 先前用户试图切换系统时钟的时钟源,没有开启或不稳定。如果待切换的时 钟源不稳定,该位将一直保持为1,直到时钟源稳定并切换成功为止。 Feb. 21, 2020 Page 71 of 460 Rev. 1.01 MS51 系列技术参考手册 1 = The low speed internal oscillator Enabled. MS51 SCON – 串口控制 寄存器 SFR 地址 复位值 SCON 98H,所有页,可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 SM0/FE SM1 SM2 REN TB8 RB8 TI RI 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 SM0/FE 6 SM1 描述 串口模式选择 SMOD0 (PCON.6) = 0: 参见 表 6.9-1 串口UART0 模式/波特率描述 SMOD0 (PCON.6) = 1: SM0/FE用作帧错误指示标志(FE),可以被软件清除.。 0 = 帧错误 (FE)没有发生 1 =检测到帧错误 (FE) 发生. 5 SM2 MS51 系列技术参考手册 多机通信模式使能 该位功能取决于串口0模式。 模式 0: 该位选择波特率 FSYS/12 或 FSYS/2. 0 = 时钟运行在 FSYS/12 波特率. 与标志8051兼容。 1 = 时钟运行在 FSYS/2 波特率为更快的串口通信. 模式 1: 该位检查有效停止位. 0 = 无论停止位的逻辑电平,接收总是有效的。 1 = 只有当接收的停止位是逻辑1并且接收的数据匹配“GIVEN”或“广播”地址时,接收才有效。 模式 2 或 3: 为多机通讯 0 = 不管第九位的逻辑电平,接收总是有效的。 1 =只有当接收的第九位是逻辑1并且接收的数据匹配“GIVEN”或“广播”地址时,接收才有效。 4 REN 接收使能 0 = 串口0接收禁止。 1 = 工作模式为1,2,3时,使能接收。工作模式为0时,在条件 REN = 1 和 RI = 0时接收被初始化。 3 TB8 发送的第九位 串口0在模式2,3时,此位是发送的第9位,模式0,1不用此位.. 2 RB8 接收的第九位 比位识别串行端口0模式2或3中的第九接收比特的逻辑电平。在模式1中,RB8是所接收的停止位的逻 辑电平。SM2位逻辑电平1时例外。在模式0中不使用RB8。 1 TI 发送中断标志 模式0下该标志在发送完8位数据后由硬件置位,其它模式下在发送到数据最后一位后由硬件置位。 当串口0中断使能,将执行中断服务程序。该位必须由软件来清除 Feb. 21, 2020 Page 72 of 460 Rev. 1.01 MS51 位 名称 0 RI 描述 接收中断标志 模式0下数据接收帧收到第八位后由硬件置位,模式1,2或3中接收到停止位后由硬件置位。SM2位逻 辑电平1时例外。当串口0中断使能,将执行串口0中断服务程序。该位必须由软件清除. MS51 系列技术参考手册 Feb. 21, 2020 Page 73 of 460 Rev. 1.01 MS51 SBUF – 串口 0 数据缓存 寄存器 SFR 地址 复位值 SBUF 99H,页 0 0000_0000 b 7 6 5 4 3 2 1 0 SBUF[7:0] 位 7:0 名称 SBUF[7:0] 描述 串口0 数据缓存 这个寄存器实际上该地址上有2个独立寄存器. 一个用于接收数据,一个用于发送数据。当数据写入 SBUF,这是个发送寄存器并且移位进行串口发送。当数据从SBUF读出,数据来自接收寄存器。 每次向SBUF写入一字节数据,将启动一次数据传输。 MS51 系列技术参考手册 Feb. 21, 2020 Page 74 of 460 Rev. 1.01 MS51 SBUF_1 – 串口 1 数据缓存 寄存器 SFR 地址 复位值 SBUF_1 9AH,页 0 0000 _0000 b 7 6 5 4 3 2 1 0 SBUF_1[7:0] 读/写 位 7:0 名称 SBUF_1[7:0] 描述 串口1数据缓存 这个寄存器实际上该地址上有2个独立寄存器. 一个用于接收数据,一个用于发送数据。当数据 写入SBUF_1,这是个发送寄存器并且移位进行串口发送。当数据从SBUF_1读出,数据来自接收寄 存器。 每次向SBUF_1写入一字节数据,将启动一次数据传输。 MS51 系列技术参考手册 Feb. 21, 2020 Page 75 of 460 Rev. 1.01 MS51 EIE – 扩展中断使能寄存器 寄存器 SFR 地址 复位值 EIE 9BH, 页 0 0000 _0000 b 7 6 5 4 3 2 1 0 ET2 ESPI EFB EWDT EPWM0 ECAP EPI EI2C 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 ET2 描述 定时器2中断使能 0 = 定时器2中断禁止 1 =定时器2中断使能,当中断产生时TF2 (T2CON.7) 置1 6 ESPI SPI中断使能 0 = SPI 中断禁止 1 = SPI 中断使能. 当中断产生时SPIF (SPSR.7), SPIOVF (SPSR.5), 或MODF (SPSR.4) 置 1 5 EFB 故障刹车中断使能 0 =故障刹车中断禁止. 1 =故障刹车中断使能. 当中断产生时FBF (PWM0FBD.7) 置 1. 4 EWDT 看门狗中断使能 0 = 看门狗中断禁止. MS51 系列技术参考手册 1 = 看门狗中断使能. 当中断产生时WDTF (WDCON.5) 置 1. 3 EPWM0 PWM0中断使能 0 = PWM 中断禁止. 1 = PWM 中断使能. 当中断产生时PWMF (PWM0CON0.5) 置 1 2 ECAP 输入捕获中断使能 0 = 输入捕获中断禁止. 1 = 输入中断使能. 当中断产生时CAPF[2:0] (CAPCON0[2:0]) 置 1. 1 EPI 引脚中断使能 0 = 引脚中断禁止. 1 = 引脚中断使能. 当中断产生时PIF 相关位置 1. 0 EI2C I2C 中断使能 0 = I2C 中断禁止. 1 = I2C 中断使能. 当中断产生时SI (I2CCON.3) 或 I2TOF (I2CTOC.0) 置 1. Feb. 21, 2020 Page 76 of 460 Rev. 1.01 MS51 EIE1 – 扩展中断使能寄存器 1 寄存器 SFR 地址 复位值 EIE1 9CH, 页 0 0000 _0000 b 7 6 5 4 3 2 1 0 - - EPWM3 EPWM2 EPWM1 EWKT ET3 ES_1 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:6 - 5 EPWM3 描述 保留 PWM3 中断使能 0 = PWM3 中断关闭 1 = PWM3中断使能,当中断产生时 PWM3F (PWM3CON0.5) 置1 4 EPWM2 PWM2 中断使能 0 = PWM2 中断关闭 1 = PWM2中断使能,当中断产生时PWM2F (PWM2CON0.5) 置1 3 EPWM1 PWM1 中断使能 0 = PWM1 中断关闭 1 = PWM1中断使能,当中断产生时 PWM1F (PWM1CON0.5) 置1 2 EWKT MS51 系列技术参考手册 WKT中断使能 0 = WKT 中断禁止. 1 = WKT 中断使能. 当中断产生时 WKTF (WKCON.4) 置 1 1 ET3 定时器3中断使能 0 = 定时器 3 中断禁止. 1 = 定时器 3中断使能. 当中断产生时 TF3 (T3CON.4) 置 1 0 ES_1 串口1中断使能 0 = 串口 1 中断禁止. 1 = 串口 1 中断使能. 当中断产生时 TI_1 (S1CON.1) 或 RI_1 (S1CON.0) 置 1 Feb. 21, 2020 Page 77 of 460 Rev. 1.01 MS51 RSR – 复位标志寄存器 寄存器 SFR 地址 复位值 RSR 9DH,页 0 00XX_XXXX b 7 6 5 4 3 2 1 0 - - HardF POF RSTPINF BORF WDTRF SWRF - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:6 - 5 HardF 描述 保留 从 AUXR1.5镜像 写 AUXR1.5=0 或RSR.5=0清除 4 POF 从 PCON.4镜像 写PCON.4=0 或 RSR.4=0清除 3 RSTPINF 从 AUXR1.6镜像 写AUXR1.6=0 或 RSR.3=0清除 2 BORF 从 BODCON0.1镜像 写 BODCON0.1=0 或 RSR.2=0清除 1 WDTRF 从 WDCON.3镜像 MS51 系列技术参考手册 写 WDCON.3=0 或 RSR.1=0清除 0 SWRF 从 AUXR1.7镜像 写 AUXR1.7=0 或 RSR.0=0清除 Feb. 21, 2020 Page 78 of 460 Rev. 1.01 MS51 CHPCON – 芯片控制 寄存器 SFR 地址 CHPCON 9FH,页 0,TA 保护 复位值 软件复位 0000_00U0 b 其他 0000_00C0 b 7 6 5 4 3 2 1 0 SWRST IAPFF - - - - BS IAPEN 只写 读/写 - - - - 读/写 读/写 位 名称 7 SWRST 描述 软件复位 对该位写1,芯片执行软件复位,复位完成后该位自动清零 6 IAPFF IAP 错误标志 满足以下任意条件,硬件将在IAPGO (IAPTRG.0)置位后置位该位 (1) 访问地址越界。 (2) IAPCN 命令无效。 (3) IAP 擦除或者编程更新没有使能的区域。 (4) 当BOIAP (CONFIG2.5) =1,BODEN (BODCON0.7) =1,BORST (BODCON0.2) =0时,在VBOD 电压下进行IAP 擦除和编程工作。 此位必须由软件清除。 - 1 BS 保留 MS51 系列技术参考手册 5:2 启动选择 定义复位后MCU由哪块启动 0 =由APROM启动 1 =由LDROM启动 0 IAPEN IAP 使能 0 = 禁止IAP。 1 =使能 IAP。 当打开IAP功能时,HIRC会被打开用于时序控制。为了降低功耗时停止内部晶振,IAP操作完后才执 行清除IAPEN标志指令。 Feb. 21, 2020 Page 79 of 460 Rev. 1.01 MS51 AUXR1 – 辅助寄存器 1 寄存器 SFR 地址 Reset Value POR: 0000 0000b, 软件复位: 1U00 0000b, A2H ,页0 AUXR1 nRESET 外部复位: U100 0000b, 其他: UUU0 0000b 7 6 5 4 3 2 1 0 SWRF RSTPINF HardF SLOW GF2 UART0PX 0 DPS 读/写 读/写 读/写 读/写 读/写 读/写 只读 读/写 位 名称 7 SWRF 描述 软件复位标志位 当MCU发生软件复位后,该位硬件置1。通过软件清零。 6 RSTPINF 外部复位标志位 通过外部复位引脚复位MCU后,该位将被硬件置1,建议复位发生后通过软件清零 5 HardF 硬件故障复位标志 一旦程序计数器(PC)溢出flash地址空间EHFI (EIE1.4)=0, MCU将复位并且HardF硬件置位。通过 软件清零 注意: 当MCU运行在OCD调试模式下并且OCDEN=0,硬件故障复位将被禁用,仅仅HardF置位 MS51 系列技术参考手册 4 SLOW ADC 低速选择 该位用于选择ADC的低速模式 0 = ADC 高速转换时间是1400ns,转换频率FADC = 714 ksps 1 = ADC 低速转换时间是4750ns,转换频率FADC = 215 ksps, 注1 :当VDD低于2.5V时,采用低速ADC采样可以改善ADC转换性能。 注2: AUXR1.4或 ADCCON3 .0置 1, ADC 进入低速模式。 3 GF2 通用标志 2 可由用户软件置位或清0的通用标志。 2 UART0PX 串口0引脚交换 0 = 默认的RXD 分配到 P0.7引脚, TXD分配到P0.6引脚。 1 = RXD分配到 P0.6引脚 ,TXD 分配到 P0.7引脚。 注:当此位置1或清0时, TXD 和 RXD 引脚立即交换。用户必须注传输或接收数据时不能交换引 脚。否则可能产生不可预知的结果并且没有警告提醒。 1 0 保留 此位读出值一直为0。 Feb. 21, 2020 Page 80 of 460 Rev. 1.01 MS51 位 名称 0 DPS 描述 数据指针选择 0 = 默认的数据指针 0(DPTR)是有效地。 1 = 数据指针1 (DPTR1) 是有效地。 DPS切换激活数据指针后,原来失效数据指针保持原始值不变。 MS51 系列技术参考手册 Feb. 21, 2020 Page 81 of 460 Rev. 1.01 MS51 AUXR2 – 辅助寄存器 2 寄存器 SFR 地址 复位值 AUXR2 A1H,页 2 0000_0000 b 7 6 5 4 3 2 1 0 UART2TXP UART2RXP UART1TXP UART1RXP 读/写 读/写 读/写 读/写 位 名称 7:6 UART2TXP 描述 UART2 TX 引脚选择 00 = 默认保留 01 = UART2 TX 选择 P0.3 10 = UART2 TX 选择 P3.0 11 = 保留 5:4 UART2RXP UART2 RX 管脚选择 00 = 默认保留 01 = UART2 RX 选择 P0.4 10 = UART2 RX 选择 P1.7 11 = 保留 3:2 UART1TXP UART1 TX管脚选择 00 = 默认保留 MS51 系列技术参考手册 01 = UART1 TX 选择 P1.6 10 = UART1 TX 选择 P3.6 11 = UART1 TX 选择 P1.0 1:0 UART1RXP UART1 RX 管脚选择 00 = 默认保留 01 = UART1 RX 选择 P0.2 10 = UART1 RX 选择 P3.7 11 = UART1 RX 选择 P0.0 Feb. 21, 2020 Page 82 of 460 Rev. 1.01 MS51 AUXR3 – 辅助寄存器 3 寄存器 SFR 地址 复位值 AUXR3 A2H,页2 0000_0000 b 7 6 5 4 3 2 1 0 UART4TXP UART4RXP UART3TXP UART3RXP 读/写 读/写 读/写 读/写 位 名称 7:6 UART4TXP 描述 UART4 TX 管脚选择 00 = 默认保留 01 = UART4 TX 选择 P2.3 10 = 保留 11 = 保留 5:4 UART4RXP UART4 RX 引脚选择 00 = 默认保留 01 = UART4 RX 选择 P2.2 10 = 保留 11 = 保留 3:2 UART3TXP UART3 TX 引脚选择 00 = 默认保留 MS51 系列技术参考手册 01 = UART3 TX 选择 P1.2 10 = UART3 TX 选择 P1.5 11 = UART3 TX 选择 P0.5 1:0 UART3RXP UART3 RX 引脚选择 00 = 默认保留 01 = UART3 RX 选择 P1.1 10 = UART3 RX 选择 P2.5 11 = UART3 RX 选择 P3.4 Feb. 21, 2020 Page 83 of 460 Rev. 1.01 MS51 AUXR4 – 辅助寄存器 4 寄存器 SFR 地址 复位值 AUXR4 A3H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 PWM2_CH1P PWM2_CH0P PWM1_CH1P PWM1_CH0P 读/写 读/写 读/写 读/写 位 名称 7:6 PWM2_CH1P 描述 PWM2通道1引脚选择 00 = PWM2_CH1 由 P3.0 引脚输出 01 = PWM2_CH1 由P3.1引脚输出 10 = PWM2_CH1 由P0.0引脚输出 11 = PWM2_CH1 由P0.4引脚输出 5:4 PWM2_CH0P PWM2 通道0引脚选择 00 = 保留,缺省值 01 = PWM2_CH0 由P2.1引脚输出 10 =PWM2_CH0 由P1.0引脚输出 11 =PWM2_CH0 由 P0.5引脚输出 3:2 PWM1_CH1P PWM1通道1引脚选择 00 =保留,缺省值 MS51 系列技术参考手册 01 = PWM1_CH1 引脚选 P2.2引脚输出 10 = PWM1_CH1 由选 P1.4引脚输出 11 = PWM1_CH1 由选 P1.1引脚输出 1:0 PWM1_CH0P PWM1通道0引脚选择 00 =保留,缺省值 01 = PWM1_CH0 引脚选 P2.3引脚输出 10 = PWM1_CH0 由选P1.2引脚输出 11 =保留 Feb. 21, 2020 Page 84 of 460 Rev. 1.01 MS51 AUXR5 – 辅助寄存器 5 寄存器 SFR 地址 复位值 AUXR5 A4H, 页 2 0000_0000 b 7 6 CLOP T0P - PWM3_CH1P PWM3_CH0P 读/写 读/写 - 读/写 读/写 位 名称 7 CLOP 5 4 3 2 1 0 描述 CLK输出引脚选择 0 = 当CLO输出使能时,CLO从P1.1引脚输出 1 = 当CLO输出使能时,CLO 从P3.引脚输出 6 T0P T0引脚选择 0 = T0由P0.5引脚输出 1 = T0由P2.4引脚输出 5:4 - 3:2 PWM3_CH1P 保留 PWM3 通道1引脚选择 00 = 保留,缺省值 01 = PWM3_CH1 由 P3.4 引脚输出 10 = PWM3_CH1 由 P1.5引脚输出 1:0 PWM3_CH0P MS51 系列技术参考手册 11 = PWM3_CH1 由 P0.3 引脚输出 PWM3通道0引脚选择 00 =保留,缺省值 01 = PWM3_CH0由P3.2引脚输出 10 = PWM3_CH0由P0.1引脚输出 11 = 保留 Feb. 21, 2020 Page 85 of 460 Rev. 1.01 MS51 AUXR6 – 辅助寄存器 6 寄存器 AUXR6 SFR 地址 复位值 A5H,页 2 0000_0000 b 7 6 5 4 3 2 1 0 - - - UART4DG UART3DG UART2DG UART1DG UART0DG - - - 读/写 读/写 读/写 读/写 读/写 位 名称 7:5 - 4 UART4DG 描述 保留 UART4 RX 去毛刺控制 1: 去毛刺使能 0: 去毛刺禁止 3 UART3DG UART3 RX去毛刺控制 1: 去毛刺使能 0: 去毛刺禁止 2 UART2DG UART2 RX去毛刺控制 1: 去毛刺使能 0: 去毛刺禁止 1 UART1DG UART1 RX去毛刺控制 MS51 系列技术参考手册 1: 去毛刺使能 0: 去毛刺禁止 UART0DG 0 UART0 RX 去毛刺孔控制 1: 去毛刺使能 0: 去毛刺禁止 Feb. 21, 2020 Page 86 of 460 Rev. 1.01 MS51 AUXR7 – 辅助寄存器 7 寄存器 SFR 地址 复位值 AUXR7 A6H, 页 2 0000_0000 b 7 6 5 - - - - - - 位 名称 7:5 - 4:3 SPI0NSSP 4 3 2 1 0 SPI0NSSP SPIMOSIP SPIMISOP SPICKP 读/写 读/写 读/写 读/写 描述 保留 SPI0_SS 引脚选择 00 = SPI0_SS 选择 P1.5 01 = 保留 10 = SPI0_SS选择P3.5 11 = 保留 2 SPI0MOSIP SPI0_MOSI 引脚选择 0 = SPI0_MOSI 选择 P0.0 1 = SPI0_MOSI 选择 P3.0 1 SPI0MISOP SPI_MISO 引脚选择 0 = SPI_MISO 选择 P0.1 1 = SPI_MISO 选择 P2.5 0 MS51 系列技术参考手册 SPI0CKP SPI_CLK 引脚选择 0 = SPI_CLK 选择 P1.0 1 = SPI_CLK 选择 P1.7 Feb. 21, 2020 Page 87 of 460 Rev. 1.01 MS51 AUXR8 – 辅助寄存器 8 寄存器 SFR 地址 复位值 AUXR8 A7H, 页 2, TA 保护 0000_0000 b 7 6 5 4 3 2 1 CLODIV[3:0] CKTESTOEN[3:0] 读/写 读/写 位 名称 7:4 CLODIV[3:0] 0 描述 时钟输出分频器 根据CLODIV的值,系统输出时钟计算公式如下: 当CLODIV = 00H时, FCLO  FSYS 当CLODIV = 01H 到0FH时, FCLO 3-0 MS51 系列技术参考手册 Feb. 21, 2020 CKTESTOEN[3:0]  FSYS 2  CLODIV 时钟输出CKO的时钟源 CKTESTOEN 功能 [0] HIRC (24 MHz) 输出到CKO 引脚 [1] OSCIN 输出到CKO 引脚 [2] LIRC (10 kHz) 输出到 CKO引脚 [3] HXT (4~24 MHz)输出到CKO引脚 Page 88 of 460 Rev. 1.01 MS51 BODCON0 – 欠压检测控制0 寄存器 SFR 地址 复位值 BODCON0 A3H, 页 0, TA 保护 BOD, UUUU XU1X b POR,CCCC XC0X b 其他,UUUU XUUX b 7 6 [1] BODEN 4 [1] - 读/写 3 2 [2] BOV[1:0] BOF 读/写 - 位 7 5 0 BORST BORF BOS 读/写 读/写 只读 读/写 寄存器 BODEN 1 [1] 描述 欠压检测使能 0 =禁用欠压检测电路 1 =使能欠压检测电路 注意在开启该功能后需要2到3个LIRC时钟BOD才能正常工作 6 5:4 3 - 保留 BOV[1:0] 配置欠压检测电压选择位 11 = VBOD 生效电压2.2V 10 = VBOD 生效电压2.7V 01 = VBOD 生效电压3.7V 00 = VBOD 生效电压4.4V BOF 欠压中断标志 2 BORST 欠压检测复位使能 该位决定在电源电压跌到以VBOD下时是否产生欠压检测复位 0 =禁用欠压检测复位 1 =使能欠压检测复位 1 BORF 欠压复位标志 当MCU发生欠压复位时,该位被硬件值1。建议通过软件清除该位。 0 BOS 欠压状态标志 在BOD电路开启时,该位反应VDD与VBOD比较情况。 BOD电路关闭时保持为0. 0 = VDD电压大于VBOD或是BOD电路关闭 1 = VDD电压小于VBOD 注该位为只读位 注: 1. 所有复位后BODEN、 BOV[1:0]和 BORST初始化的值是直接通过加载CONFIG2位7位6~4和位2决定 2. BOF复位后的值依据CONFIG2的设置和VDD的电平. 请参考表 6.2-1 BOF 复位值 Feb. 21, 2020 Page 89 of 460 Rev. 1.01 MS51 系列技术参考手册 当VDD下降到VBOD以下或VDD上升到VBOD以上时,该标志由硬件设置为逻辑1。如果EBOD(EIE.2)和EA (IE.7) 都置位,将请求欠压检测中断。该位必须由软件清零。 MS51 IAPTRG – IAP触发寄存器 寄存器 SFR 地址 复位值 IAPTRG A4H, 页 0, TA 保护 0000 _0000 b 7 6 5 4 3 2 1 0 - - - - - - - IAPGO - - - - - - - 只写 位 名称 7:1 - 0 IAPGO 描述 保留 IAP 执行 该位设置成1,开始执行IAP。此指令之后,CPU保持程序计数器 (PC) ,IAP硬件管理进程。IAP操 作完成后,程序计数器继续执行下一条指令。IAPGO位将被自动清除并一直保持0。 触发IAP操作前,由于硬件限制,中断(如果启用)应该临时禁止。 MS51 系列技术参考手册 Feb. 21, 2020 Page 90 of 460 Rev. 1.01 MS51 IAPUEN – IAP更新使能 寄存器 SFR 地址 复位值 IAPUEN A5H, 页 0, TA 保护 0000 _0000 b 7 6 5 4 3 2 1 0 - - - - - CFUEN LDUEN APUEN - - - - - 读/写 读/写 读/写 位 名称 7:3 - 2 CFUEN 描述 保留 CONFIG 升级使能 0 = 禁止通过IAP擦除或编程CONFIG。 1 = 允许通过IAP擦除或编程CONFIG。 1 LDUEN LDROM 升级允许使能 0 = 禁止通过IAP擦除或编程LDROM。 1 = 允许禁止通过IAP擦除或编程LDROM 。 0 APUEN APROM 升级允许使能 0 = 禁止通过IAP擦除或编程APROM。 1 = 允许禁止通过IAP擦除或编程APROM。 MS51 系列技术参考手册 Feb. 21, 2020 Page 91 of 460 Rev. 1.01 MS51 IAPAL – IAP字节地位地址低字节 寄存器 IAPAL 7 6 5 SFR 地址 复位值 A6H, 页 0 0000 _0000 b 4 3 2 1 0 IAPA[7:0] 读/写 位 名称 7:0 IAPA[7:0] 描述 IAP 地址地低位地址低字节 IAPAL 包含IAP操作地址的低八位 MS51 系列技术参考手册 Feb. 21, 2020 Page 92 of 460 Rev. 1.01 MS51 IAPAH – IAP地址高字节 Register SFR Address Reset Value IAPAH A7H, Page 0 0000 _0000 b 7 6 5 4 3 2 1 0 IAPA[15:8] 读/写 位 名称 7:0 IAPA[15:8] 描述 IAP 地址高位 IAPAH 包含IAP操作地址的高八位 。 MS51 系列技术参考手册 Feb. 21, 2020 Page 93 of 460 Rev. 1.01 MS51 IE –中断使能寄存器 寄存器 SFR 地址 复位值 IE A8H,所有页,可位寻址 0000 _0000 b 7 6 5 4 3 2 1 0 EA EADC EBOD ES ET1 EX1 ET0 EX0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 EA 描述 使能所有中断 该位全局使能/禁止所有那些单独使能的中断 0 = 禁止所有中断源 1 = 每个中断使能依靠使能单个中断。 如果使能,将会产生相应的单个中断 6 EADC 使能ADC中断 0 = ADC 中断禁止. 1 = ADC 中断使能.当中断产生时ADCF (ADCCON0.7) 置1 5 EBOD 使能欠压中断 0 = 欠压检测中断禁止. 1 = 欠压检测中断使能. 当中断产生时BOF (BODCON0.3) 置 1 4 ES 使能串口0中断 0 = 串口 0 中断禁止. 1 = 串口 0 中断使能. 当中断产生时TI (SCON.1) 或 RI (SCON.0) 置1 MS51 系列技术参考手册 3 ET1 使能定时器1中断 0 = 定时器 1 中断禁止. 1 = 定时器 1 中断使能. 当中断产生时TF1 (TCON.7) 置 1 2 EX1 使能外部中断1 0 = 外部中断1中断禁止. 1 = 外部中断1(̅̅̅̅̅̅̅ 管脚 P1.7)中断使能. 当中断产生时,IE1(TCON.3)置1 1 ET0 使能定时器0中断 0 = 定时器 0 中断禁止. 1 = 定时器 0 中断使能. 当中断产生时 TF0 (TCON.5) 置 1 0 EX0 使能外部中断0 0 = 外部中断0中断禁止. 1 = 外部中断0(̅̅̅̅̅̅̅ 管脚 P3.0)中断使能。当中断产生时,IE0(TCON.1)置1 Feb. 21, 2020 Page 94 of 460 Rev. 1.01 MS51 SADDR – 从机 0 地址 寄存器 SFR 地址 复位值 SADDR A9H,页 0 0000 _0000 b 7 6 5 4 3 2 1 0 SADDR[7:0] 读/写 位 7:0 名称 SADDR[7:0] 描述 从机 0 地址 该字节定义微控器自身的从机地址以用于串口0多机通信 MS51 系列技术参考手册 Feb. 21, 2020 Page 95 of 460 Rev. 1.01 MS51 WDCON – WDT控制 寄存器 SFR 地址 复位值 POR 0000_0111 b AAH, 页 0, TA 保护 WDCON WDT 0000_1UUU b 其他 0000_UUUU b 7 6 5 4 3 WDTR WDCLR WDTF WIDPD WDTRF WDPS[2:0] R/W R/W R/W R/W R/W R/W 位 名称 7 WDTR 2 1 0 描述 WDT 运行 此位仅当 WDTEN[3:0] (CONFIG4[7:4]) 全 1 、 WDT 配置为通用定时器时有效. 0 = WDT 禁止 1 = WDT 使能. WDT开始计数. 6 WDCLR WDT 清0 此位写1用于把 WDT 清0,读写效果不同: 设置该位复位WDT计数到00H。它使计数器到一个已知的状态,防止系统出现不可预知的复位。 写和读WDCLR位意思是不一样的 MS51 系列技术参考手册 写: 0 = 1 = 读: 0 = 1 = 无效. WDT计数器清0. WDT清0完成. WDT 清0未完成. 5 WDTF WDT溢出标志 指示 WDT溢出.需软件清0 4 WIDPD WDT空闲或掉电状态运行使能位 仅WDTEN[3:0] (CONFIG4[7:4])全 1配置为通用定时器晨,此位才有效。 0 = WDT在空闲或掉电状态停止运行 1 = WDT 在空闲或掉电状态保持运行. 3 WDTRF WDT复位标志 此位指示 CPU 被 WDT 复位,建议每次复位后,软件对此位清0 2:0 WDPS[2:0] WDT 分频选择 选择分频系数从 1/1 到 1/256。详见表 6.7-1 WDT 定时时间表 缺省最大分频 注: 1. WDTRF 上电后清0,WDT复位后置1,其它复位不变。 2. WDPS[2:0] 上电后全1,其它复位后不变。 Feb. 21, 2020 Page 96 of 460 Rev. 1.01 MS51 BODCON1 – 欠压检测控制1 寄存器 SFR地址 BODCON1 ABH, 页 0, TA 保护 复位值 POR 0000 0001 b 其他 0000 0UUU b 7 6 5 4 3 - - - - - LPBOD[1:0] BODFLT - - - - - 读/写 读/写 位 名称 7:3 - 2:1 LPBOD[1:0] 2 1 0 描述 保留 低功耗BOD使能 00 = BOD 正常模式. BOD 电路总是开启. 01 = BOD 低功耗模式 1 , 每隔1.6ms周期性开启BOD电路 10 = BOD 低功耗模式 2 , 每隔6.4ms周期性开启BOD电路 11 = BOD 低功耗模式 3 , 每隔25.6ms周期性开启BOD电路 0 BODFLT BOD 滤波器控制 BOD具有一个滤波器,当MCU以HIRC或ECLK作为系统时钟且BOD没有在低功率模式下 (LPBOD[1:0] = [0, 0])工作时,该滤波器采样32个FSYS 时钟用以过滤电源噪声。在其他条件 下,滤波器采样2个LIRC。 BOD滤波器有效地避免电源噪声误触发BOD事件发生。设置该位可以开启或关闭BOD滤波功 能。 0 = BOD 滤波禁止. 1 = BOD 滤波使能. (上电复位默认值.) Feb. 21, 2020 Page 97 of 460 Rev. 1.01 MS51 系列技术参考手册 注:当CPU停在掉电模式时, BOD滤波计数一直是2个LIRC时钟 MS51 IAPFD – IAP 数据寄存器 寄存器 IAPFD 7 6 5 SFR 地址 复位值 AEH, 页 0 0000 _0000 b 4 3 2 1 0 IAPFD[7:0] 读/写 位 名称 7:0 IAPFD[7:0] 描述 IAP 数据 该字节包含将要读出或者写进flash的数据。在编程模式下,用户需要在触发ISPIAP之前将数据写 入IAPFD里;在读/校验模式下,在IAP完成后从APFD里读出数据。 MS51 系列技术参考手册 Feb. 21, 2020 Page 98 of 460 Rev. 1.01 MS51 IAPCN – IAP 控制寄存器 寄存器 SFR 地址 复位值 IAPCN AFH, 0页 0011_0000 b 7 6 5 4 IAPB[1:0] FOEN FCEN FCTRL[3:0] 读/写 读/写 读/写 读/写 位 名称 7:6 IAPB[1:0] 5 FOEN 4 FCEN 3:0 FCTRL[3:0] 3 2 1 0 描述 IAP 控制 此字节是IAP控制命令。详细描述见 表6.3-1 IAP模式及命令 MS51 系列技术参考手册 Feb. 21, 2020 Page 99 of 460 Rev. 1.01 MS51 PnM1 – 端口 n 模式选择1 寄存器 SFR 数据 复位值 P0M1 B1H, 页 0 1111_1111 b P1M1 B3H, 页 0 1111_1111 b P2M1 89H, 页 2 0011_1111 b P3M1 ACH, 页 0 1111_1111 b 7 6 5 4 3 2 1 0 PnM1.7 PnM1.6 PnM1.5 PnM1.4 PnM1.3 PnM1.2 PnM1.1 PnM1.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnM1[7:0] 描述 端口 0 模式选择1 MS51 系列技术参考手册 Feb. 21, 2020 Page 100 of 460 Rev. 1.01 MS51 PnM2 – 端口模式选择2 寄存器 SFR 数据 复位值 P0M2 B2H, 页 0 0000_0000 b P1M2 B4H, 页 0 0000_0000 b P2M2 8AH, 页 2 0000_0000 b P3M2 ADH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 PnM2.7 PnM2.6 PnM2.5 PnM2.4 PnM2.3 PnM2.2 PnM2.1 PnM2.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnM2[7:0] 描述 端口 0 模式选择 2 注: PxM1和PxM2结合使用,用来决定端口上每个引脚的模式。表 6.4-1 I/O 模式配置 每个 I/O引脚都可以单独配置成TTL输入或施密特触发输入。注:访问所有的PxS寄存器都需要将SFR页 切换到页1。 MS51 系列技术参考手册 Feb. 21, 2020 Page 101 of 460 Rev. 1.01 MS51 PnS – Port n 施密特触发输出 寄存器 SFR 数据 复位值 P0S B1H, 页 1 0000_0000 b P1S B3H, 页 1 0000_0000 b P2S 8CH, 页 2 0000_0000 b P3S ACH, 页 1 0000_0000 b 7 6 5 4 3 2 1 0 PnS.7 PnS.6 PnS.5 PnS.4 PnS.3 PnS.2 PnS.1 PnS.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnS[7:0] 描述 Pn施密特触发输入 0 = Pn.x引脚TTL电平输入 1 = Pn.x引脚施密特触发输入 MS51 系列技术参考手册 Feb. 21, 2020 Page 102 of 460 Rev. 1.01 MS51 TOE – 定时器0和1 输出使能 寄存器 SFR 数据 复位值 TOE B5H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - - - T1OE T0OE - - - - - - 读/写 读/写 - - 位 名称 7:4 - 3 T1OE 描述 保留 定时器 1 输出使能 0 = 定时器1输出禁止。 1 = 定时器1输出到T1引脚。 注:只有运行在定时器1模式时,输出才能被使能。 2 T0OE 定时器 0 输出使能 0 = 定时器0输出禁止。 1 = 定时器0输出到T10引脚。 注:只有运行在定时器0模式时,输出才能被使能。 1:0 - 保留 MS51 系列技术参考手册 Feb. 21, 2020 Page 103 of 460 Rev. 1.01 MS51 IPH – 中断优先级高位 [2] 寄存器 SFR地址 复位值 IPH B7H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - PADCH PBODH PSH PT1H PX1H PT0H PX0H - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7 - 6 PADC ADC中断优先级高位 5 PBOD 掉电检测中断优先级高位 4 PSH 串口0中断优先级高位 3 PT1H 定时器1中断优先级高位 2 PX1H 外部中断1中断优先级高位 1 PT0H 定时器 0 中断优先高位 0 PX0H 外部中断0中断优先级高位 保留 MS51 系列技术参考手册 注: IP与IPH结合使用,以确定每个中断源的优先级。见 表 6.2-4 中断优先级设置 Feb. 21, 2020 Page 104 of 460 Rev. 1.01 MS51 PWMnINTC – PWM 中断控制 寄存器 SFR地址 复位值 PWM0INTC B7H, 页 1 0000_0000 b PWM1INTC B6H, 页 2 0000_0000 b PWM2INTC C6H, 页 2 0000_0000 b PWM3INTC D6H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 - - INTTYP1 INTTYP0 - INTSEL2 INTSEL1 INTSEL0 - - 读/写 读/写 - 读/写 读/写 读/写 位 名称 描述 7:6 - 保留 5:4 INTTYP[1:0] PWM 中断类型选择 00 = PWM channel 0/1/2/3/4/5引脚的下沿. 01 = PWM channel 0/1/2/3/4/5 引脚的上沿. 10 = 周期中点. 11 = 周期末. 注意中点和周期末,只有互补模式中心对齐模式 有效。 - 保留 2:0 INTSEL[2:0] PWM 中断通道选择 在PWM0/1/2/3/4/5脚,当PWM已选择中断类型为上升沿或下降沿时,该位段用以选择中断响 应所相对的PWM脚。 000 = PWM_CH0. 001 = PWM_CH1. 010 = PWM_CH2. 011 = PWM_CH3. 100 = PWM_CH4. 101 = PWM_CH5. 其它 = PWM_CH0. Feb. 21, 2020 Page 105 of 460 Rev. 1.01 MS51 系列技术参考手册 3 MS51 IP – 中断优先级 [1] 寄存器 SFR地址 复位值 IP B8H, 所有页, 可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 - PADC PBOD PS PT1 PX1 PT0 PX0 - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7 - 6 PADC ADC中断优先级低位 5 PBOD 欠压检测中断优先级低位 4 PS 串口 0 中断优先级低位 3 PT1 定时器 1中断优先级低位 2 PX1 外部中断 1 中断优先级低位 1 PT0 定时器 0 中断优先级低位 0 PX0 外部中断 0 中断优先级低位 保留 MS51 系列技术参考手册 注: IP和 IPH结合使用来决定中断源的中断优先级。见 表 6.2-4 中断优先级设置。 Feb. 21, 2020 Page 106 of 460 Rev. 1.01 MS51 SADEN – 从机0 地址掩码 寄存器 SFR地址 复位值 SADEN B9H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SADEN[7:0] 读/写 位 7:0 名称 SADEN[7:0] 描述 从机0地址掩码. 该字节为串口0掩码,为存储”Given”地址的”无关(定义为0)”位。无关位可使更多从机得以灵活 运用。 MS51 系列技术参考手册 Feb. 21, 2020 Page 107 of 460 Rev. 1.01 MS51 SADEN_1 – 从机 1 地址掩码 寄存器 SFR地址 复位值 SADEN_1 BAH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SADEN_1[7:0] 读/写 位 名称 7:0 SADEN_1[7:0] 描述 从机1地址掩码. 该字节为串口1掩码为存储”Given”地址的”无关(定义为0)”位。无关位可使更多从机得以灵 活运用. MS51 系列技术参考手册 Feb. 21, 2020 Page 108 of 460 Rev. 1.01 MS51 SADDR_1 – 从机 1 地址 寄存器 SFR地址 复位值 SADDR_1 BBH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SADDR_1[7:0] 读/写 位 名称 7:0 SADDR_1[7:0] 描述 从机1地址 该字节定义微控器自身的从机地址以用于串口1多机通信. MS51 系列技术参考手册 Feb. 21, 2020 Page 109 of 460 Rev. 1.01 MS51 2 I2DAT – I C数据 寄存器 SFR地址 复位值 I2DAT BCH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 I2DAT[7:0] 读/写 位 7:0 名称 I2DAT[7:0] 描述 2 I C数据 I该寄存器存放准备发送的,或接收到的数据。只要SI = 1,此数据就有效。在I2C数据传输过程 中,I2CnDAT读写的结果是不可预测的。 当I2CnDAT移出时,总线上的数据同步移入更新I2CnDAT。I2CnDAT总是显示为从总线上取出的 最后一个字节。所以总线仲载失败时,I2CnDAT原来的值在传输后已经改变。 MS51 系列技术参考手册 Feb. 21, 2020 Page 110 of 460 Rev. 1.01 MS51 2 I2STAT – I C 状态 寄存器 SFR地址 复位值 I2STAT BDH, 页 0 1111 1000 b 7 6 位 名称 7:3 I2STAT[7:3] 5 4 3 2 1 0 I2STAT[7:3] 0 0 0 只读 只读 只读 只读 描述 2 I C 状态码 I2CnSTAT高5位为状态码,共有27种值。I2CnSTAT = F8H时,表示空闲,SI 将保持为0。其它 26种状态,都会让SI置1,且产生中断请求。 2:0 0 保留 I2STAT 的低3位总是0 MS51 系列技术参考手册 Feb. 21, 2020 Page 111 of 460 Rev. 1.01 MS51 2 I2CLK – I C 时钟 寄存器 SFR 地址 复位值 I2CLK BEH, 页 0 0000_1001 b 7 6 5 4 3 2 1 0 I2CLK[7:0] 读/写 位 7:0 名称 I2CLK[7:0] 描述 2 I C 时钟设定 主机模式: 2 该寄存器设定作主机时I C 总线时钟速率。算式如下: FSYS 4 × (I2CLK + 1) . 注如果I2C的外设时钟频率是16MHz,默认状态下,I2C的总线频率为400Kbps。I2CCLK值写入00H 及 01H 无效,实行了限制。 从机模式: 该字节无效,从机自动同步主机时钟,最高400kbps. MS51 系列技术参考手册 Feb. 21, 2020 Page 112 of 460 Rev. 1.01 MS51 2 I2TOC – I C 超时计数器 寄存器 SFR 地址 复位值 I2TOC BFH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - - - - I2TOCEN DIV I2TOF - - - - - 读/写 读/写 读/写 位 名称 7:3 - 2 I2TOCEN 描述 保留 2 I C 超时计数器使能 2 0 = I C超时计数器禁止. 2 1 = I C超时计数器使能. 注意: 使能I2C 超时计数器功能后请使能 I2C 中断 1 DIV 2 I C超时计数器时钟除频 2 0 = I C超时计数器时钟源是 FSYS/1. 2 1 = I C 超时计数器时钟源是FSYS/4. 0 I2TOF 2 I C 超时标志 2 T这个标志当 14-bit I C 超时计数器溢出时由硬件置1,由软件清0 MS51 系列技术参考手册 Feb. 21, 2020 Page 113 of 460 Rev. 1.01 MS51 2 I2CON – I C 控制器 寄存器 SFR 地址 复位值 I2CON C0H, 所有页, 位可寻址 0000_0000 b 7 6 5 4 3 2 1 0 I I2CEN STA STO SI AA - I2CPX R/W 读/写 读/写 读/写 读/写 读/写 - 读/写 位 名称 7 I 描述 I2C0 保持时间延长使能 0 = 禁止I2C DATA 到 I2C0_SCL的 保持时间延长 1 = 使能I2C DATA 到 I2C0_SCL 的保持时间延长, 延长8个系统时钟 6 I2CEN I2C0 保持时间延长使能 0 = 禁止I2C DATA 到 I2C0_SCL的 保持时间延长 1 = 使能I2C DATA 到 I2C0_SCL 的保持时间延长, 延长8个系统时钟 I2C 总线使能 0 = I2C 禁止. 1 = I2C 使能. 使能 I2C之前, SCL和SDA必须配置为输出1 5 STA I2C 总线使能 0 = I2C 总线禁止. MS51 系列技术参考手册 1 = I2C 总线使能. 在使能 I2C之前, I2C0_SCL 和 I2C0_SDA 端口电平需要为高 起始标志START 2 2 当STA置1,如果总线空闲,I C产生START信号,如果总线忙,I C等待停止条件STOP,然后产生 START信号 2 如果总线已经在总机模式且已发送一个或多个字节,此时再设定STA,I C 总线将产生重复开始信号 repeated START 注:STA可在任何时间置1,包括从机模式。但硬件不会在发送START或repeat START信号后自动清 0。用户需软件清除。 Feb. 21, 2020 Page 114 of 460 Rev. 1.01 MS51 位 名称 4 STO 描述 起始标志START 2 2 当STA置1,如果总线空闲,I C产生START信号,如果总线忙,I C等待停止条件STOP,然后产生 START信号 2 如果总线已经在总机模式且已发送一个或多个字节,此时再设定STA,I C 总线将产生重复开始信号 repeated START 注:STA可在任何时间置1,包括从机模式。但硬件不会在发送START或repeat START信号后自动清 0。用户需软件清除。 停止标志STOP 2 I C 总线在主机模式下设定STO为1,将会向总线发送停止信号STOP。一旦总线上停止条件完成, STO由硬件自动清0。 当总线上产生错误状态(I2CnSTAT为 00H) STO 也会置1。这种情况下总线不会发送停止位。 2 如果STA和STO同时置1,且在主机模式下,I C总线在发送STOP后马上发送START。如果在从机模 2 式下,应避免STA及STO同时置1,以避免发出非法I C帧 3 SI 停止标志STOP 2 I C 总线在主机模式下设定STO为1,将会向总线发送停止信号STOP。一旦总线上停止条件完成, STO由硬件自动清0。 当总线上产生错误状态(I2CnSTAT为 00H) STO 也会置1。这种情况下总线不会发送停止位。 2 如果STA和STO同时置1,且在主机模式下,I C总线在发送STOP后马上发送START。如果在从机模 2 式下,应避免STA及STO同时置1,以避免发出非法I C帧 I2C中断标志 2 I C所有26种状态中出现一种,硬件就会置1此位 (F8H 除外) ,此时软件根据读取I2STAT值,来确认 哪步已经执行和决定下一步动作。 SI由软件清0。在SI被清0之前,I2C0_SCL低电平周期延长,传输暂停,该状态对于从机处理接收到 的数据非常有用,可以确保准确处理前一数据再接收下一个数据。 SI位被软件清0后,I2C外设才会继续下一步:SI清除后,总线将继续产生START和repeat START条 件,STOP条件,8位数据,或者其他控制字节或位。因此,在SI软件清除前,软件应该准备好合适的 寄存器设置。 2 AA I2C中断标志 SI位被软件清0后,I2C外设才会继续下一步:SI清除后,总线将继续产生START和repeat START条 件,STOP条件,8位数据,或者其他控制字节或位。因此,在SI软件清除前,软件应该准备好合适的 寄存器设置。 应答响应标志 若AA = 1,当I2C器件是一个接收器或者是个地址匹配的从机时,在I2C0_SCL上的应答时钟脉冲期 间,I2C0_SDA将应答ACK(I2C0_SDA低电平) 若AA = 0,当I2C器件是一个接收器或者是个地址匹配的从机时,在I2C0_SCL上的应答时钟脉冲期 间,I2C0_SDA将应答NACK(I2C0_SDA高电平)。若器件自我清除AA标志位,则会清除其从机地 址或忽略广播呼叫,SI不会置位,中断不予产生。 注:若已被寻址的从机,在从机接收模式下未回复应答位或在从机发送模式下未接收到应答位,该从 机将变为未寻址从机,无法接收数据直到其AA被置1,且重新被主机定址。 特殊情况注意:从机发送模式时,I2CnSTAT若为C8H,从机发送最后一个字节给主机之前,清除 AA,发送完最后一个字节的位后,从机将变成未被定址的从机模式,和主机断开。主机若再从总线 上读数据,将得到FFH。 Feb. 21, 2020 Page 115 of 460 Rev. 1.01 MS51 系列技术参考手册 2 I C所有26种状态中出现一种,硬件就会置1此位 (F8H 除外) ,此时软件根据读取I2STAT值,来确认 哪步已经执行和决定下一步动作。 SI由软件清0。在SI被清0之前,I2C0_SCL低电平周期延长,传输暂停,该状态对于从机处理接收到 的数据非常有用,可以确保准确处理前一数据再接收下一个数据。 MS51 位 名称 0 I2CPX 描述 应答响应标志 若AA = 1,当I2C器件是一个接收器或者是个地址匹配的从机时,在I2C0_SCL上的应答时钟脉冲期 间,I2C0_SDA将应答ACK(I2C0_SDA低电平) 若AA = 0,当I2C器件是一个接收器或者是个地址匹配的从机时,在I2C0_SCL上的应答时钟脉冲期 间,I2C0_SDA将应答NACK(I2C0_SDA高电平)。若器件自我清除AA标志位,则会清除其从机地 址或忽略广播呼叫,SI不会置位,中断不予产生。 注:若已被寻址的从机,在从机接收模式下未回复应答位或在从机发送模式下未接收到应答位,该从 机将变为未寻址从机,无法接收数据直到其AA被置1,且重新被主机定址。 特殊情况注意:从机发送模式时,I2CnSTAT若为C8H,从机发送最后一个字节给主机之前,清除 AA,发送完最后一个字节的位后,从机将变成未被定址的从机模式,和主机断开。主机若再从总线 上读数据,将得到FFH。 I2C 引脚选择 0 = 分配 SCL 是 P1.3 和 SDA 是 P1.4. 1 = 分配 SCL 是 P0.2 和 SDA 是 P1.6. 注意:一旦该位置位或清0,I2C引脚会立刻更换。 MS51 系列技术参考手册 Feb. 21, 2020 Page 116 of 460 Rev. 1.01 MS51 2 I2ADDR – I C 本机从机地址 寄存器 SFR 地址 复位值 I2ADDR C1H, 页 0 0000_0000 b 7 6 位 名称 7:1 I2ADDR[7:1] 5 4 3 2 1 0 I2ADDR[7:1] GC 读/写 读/写 描述 2 I C 本机从机地址 主机模式: 无效 从机模式: 存放7位从机地址。主机需要定址该从机,需通过在START或repeat START之后的第一个字节 值地址信息与此地址相同。如果AA为1,该从机响应主机,成为被定址从机。否则主机呼叫地 址会被忽略。 注:I2CnADDRx [7:1] 不能写为全0,因为0x00为广播呼叫方式寻址专用。. 0 GC 广播呼叫位 主机模式: 无效 从机模式: 0 = 广播呼叫模式忽略,不响应。 1 = 如果AA置1,参与广播呼叫模式,若AA清0,忽略广播呼叫。 MS51 系列技术参考手册 Feb. 21, 2020 Page 117 of 460 Rev. 1.01 MS51 ADCRL – ADC轉換结果低字节 寄存器 SFR 地址 复位值 ADCRL C2H, 页 0 0000_0000 b 7 6 5 4 - - - - ADCR[3:0] - - - - 只读 位 3 名称 2 1 0 描述 7:4 - 保留 3:0 ADCR[3:0] ADC轉換结果低字节 ADC 转换结果低4位存入这个寄存器 MS51 系列技术参考手册 Feb. 21, 2020 Page 118 of 460 Rev. 1.01 MS51 ADCRH – ADC转换结果高字节 寄存器 SFR 地址 复位值 ADCRH C3H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 ADCR[11:4] 只读 位 7:0 名称 ADCR[11:4] 描述 ADC转换 结果高字节 ADC 转换结果的高8位存入这个寄存器. MS51 系列技术参考手册 Feb. 21, 2020 Page 119 of 460 Rev. 1.01 MS51 T3CON – 定时器 3 控制 寄存器 SFR 地址 复位值 T3CON C4H, 页 0 0000_0000 b 7 6 5 4 3 2 1 SMOD_1 SMOD0_1 BRCK TF3 TR3 T3PS[2:0] 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 SMOD_1 串行口1波特率加倍使能. 当串口1在模式2下波特率加倍使能。见表 6.9-2 串口 UART1 模式/波特率描述。 6 SMOD0_1 串口1帧错误访问使能 0 = SCON_1.7 访问SM0_1位 0 描述 1 = SCON_1.7访问FE_1位 5 BRCK 串口0波特率时钟源 当串口0处于1、3模式时,该位选择哪个定时器用作波特率时钟源。 0 = 定时器 1. 1 = 定时器 3. 4 TF3 定时器 3 溢出标志 当定时器3溢出时,该位被置1。当程序执行定时器3中断服务子程序时,它被硬件自动被清0。该位 也可以软件置位或清0。 MS51 系列技术参考手册 3 TR3 定时器 3 运行孔子和控制 0 = 定时器 3停止。 1 = 定时器 3 开始运行。 注:重载寄存器R3H和R3L仅在定时器3停止(TR3为0)的时候才可以被写。如果TR3 为1时写入 RH3或Rl3,结果是不可预知的。 2:0 T3PS[2:0] 定时器 3 预分频 这些位决定定时器3的时钟分频。 000 = 1/1. 001 = 1/2. 010 = 1/4. 011 = 1/8. 100 = 1/16. 101 = 1/32. 110 = 1/64. 111 = 1/128. Feb. 21, 2020 Page 120 of 460 Rev. 1.01 MS51 RL3 – 定时器 3 重载值低字节 寄存器 SFR 地址 复位值 RL3 C5H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 RL3[7:0] 读/写 位 名称 7:0 RL3[7:0] 描述 定时器 3重载值低字节 保持定时器3的重载值低字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 121 of 460 Rev. 1.01 MS51 RH3 – 定时器 3重载值高字节 寄存器 SFR 地址 复位值 RH3 C6H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 RH3[7:0] 读/写 位 7:0 名称 RH3[7:0] 描述 定时器 3 重载值高字节 保持定时器3重载值高字节 MS51 系列技术参考手册 Feb. 21, 2020 Page 122 of 460 Rev. 1.01 MS51 PIOCON1 – PWM 引脚控制器 寄存器 SFR 地址 复位值 PIOCON1 C6H, 页 1 0000_0000 b 7 6 5 4 3 2 1 0 PIO17 - PIO15 - PIO04 PIO05 PIO14 - 读/写 - 读/写 - 读/写 读/写 读/写 - 位 名称 7 PIO17 描述 P1.7/PWM引脚功能选择 0 = P1.7/PWM3_CH0 引脚功能为 GPIO P1.7. 1 = P1.7/PWM3_CH0 引脚功能为 PWM3_CH0输出 6 - 5 PIO15 保留 P1.5/PWM引脚功能选择 0 = P1.5/PWM 引脚功能为 P1.5. 1 = P1.5/PWM 引脚功能为 PWM0_CH5 / PWM3_CH1输出 当 AUXR5[3:2].PWM3CH1P = 11, PIO15 = 1 , P1.5定义为PWM3_CH1. 当 AUXR5[3:2].PWM3CH1P = 00 ,PIO15 = 1, P1.5定义为PWM0_CH5. 4 - 3 PIO04 保留 P0.4/PWM引脚功能选择 MS51 系列技术参考手册 0 = P0.4/PWM 引脚功能为 P0.4. 1 = P0.4/PWM 引脚功能为 PWM0_CH3 / PWM2_CH1输出 当 AUXR4[7:6].PWM2CH1P = 11, PIO04 = 1 , P1.4 定义为 PWM2_CH1. 当 AUXR4[7:6].PWM2CH1P = 00 ,PIO04 = 1, P1.4定义为PWM0_CH3. 2 PIO05 P0.5/PWM pin function select 0 = P0.5/PWM 引脚功能为 P0.5. 1 = P0.5/PWM引脚功能为 PWM0_CH2 / PWM2_CH0输出 (PWM2CH0P=11, 选 PWM2_CH0; 其它选 PWM0_CH32) 1 PIO14 P1.4/PWM 引脚功能选择 0 = P1.4/PWM 引脚功能为 P1.4. 1 = P1.4/PWM 引脚功能为 PWM0_CH1 / PWM1_CH1 输出. (PWM1_CH1P=10, 选 PWM1_CH1; 其它选PWM0_CH1) 0 Feb. 21, 2020 - 保留 Page 123 of 460 Rev. 1.01 MS51 PIOCON2 – PWM引脚控制器 寄存器 SFR 地址 复位值 PIOCON2 B7H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 PIO34 PIO33 PIO32 PIO31 PIO30 PIO23 PIO22 PIO21 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 PIO34 描述 P3.4/PWM3_CH1 引脚功能选择 0 = P3.4/PWM3_CH1引脚功能为P3.4. 1 = P3.4/PWM3_CH1引脚功能为PWM3_CH1 输出。 6 PIO33 P3.3/PWM0_CH1 引脚功能选择 0 = P3.3/PWM0C0 PWM0_CH0引脚功能为P3.3. 1 = P3.3/ PWM0C0 PWM0_CH0引脚功能为PWM0_CH0输出。 5 PIO32 P3.2/PWM3_CH0 引脚功能选择 0 = P3.2/PWM3_CH0引脚功能为P3.2. 1 = P3.2/PWM3_CH0引脚功能为PWM3_CH0输出。 4 PIO31 P3.1/PWM2_CH1引脚功能选择 0 = P3.1/PWM2_CH1 pin functions as 引脚功能为P3.1. 1 = P3.1/PWM2_CH1引脚功能为PWM2_CH1输出。 MS51 系列技术参考手册 3 PIO30 P3.0/PWM2_CH1 引脚功能选择 0 = P3.0/PWM2_CH1pin functions as 引脚功能为 P3.0 1 = P3.0/PWM2_CH1引脚功能为PWM2_CH1输出。 2 PIO23 P23/PWM1_CH0引脚功能选择 0 = P2.3/PWM1_CH0pin functions as 引脚功能为 P2.3. 1 = P2.3/PWM1_CH0引脚功能为PWM1_CH0输出。 1 PIO22 P2.2/PWM1_CH1 引脚功能选择 0 = P2.2/PWM1_CH1 引脚功能为 P2.2. 1 = P2.2/PWM1_CH1引脚功能为 PWM1_CH1输出。 0 PIO21 P2.1/ PWM2_CH0 引脚功能选择 0 = P2.1/ PWM2_CH0 引脚功能为 P2.1. 1 = P2.1/ PWM2_CH0引脚功能为PWM2_CH0输出。 Feb. 21, 2020 Page 124 of 460 Rev. 1.01 MS51 TA – 时钟控制访问保护 寄存器 SFR 地址 复位值 TA C7H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 TA[7:0] 写 位 名称 7:0 TA[7:0] 描述 时钟控制访问保护 TA寄存器控制着对被保护的SFRs的访问权限。当访问被保护位时,用户先对TA寄存器写入AAH,接着 是55H,当写完这两条后,才可以有4个时钟周期的时间对具有时控保护的SFR寄存器写入数据。 . MS51 系列技术参考手册 Feb. 21, 2020 Page 125 of 460 Rev. 1.01 MS51 T2CON – 定时器 2 控制 寄存器 SFR 地址 复位值 T2CON C8H, 所有页, 可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 TF2 - - - - TR2 - ̅̅̅̅̅̅ 读/写 - - - - 读/写 - 位 名称 7 TF2 读/写 描述 定时器 2 溢出标志 当定时器2溢出或发生比较匹配时,该位置1。如果定时器2中断和全局中断被启用,当该位被置1时, CPU将执行定时器2中断服务子程序。该位不能被硬件自动清0,需要软件清0。 6:3 - 2 TR2 保留 定时器 2运行控制 0 = 定时器 2 禁止。清除该位将停止定时器2,当前计数值保存在TH2和TL2里。 1 = 定时器 2 使能。 1 - 保留 0 ̅̅̅̅̅̅ 定时器 2比较模式或自动重载模式选择 该位选择定时器2模式。. 0 = 自动重载模式 MS51 系列技术参考手册 1 = 比较模式 Feb. 21, 2020 Page 126 of 460 Rev. 1.01 MS51 T2MOD – 定时器 2 模式 寄存器 SFR 地址 复位值 T2MOD C9H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 LDEN T2DIV[2:0] CAPCR CMPCR LDTS[1:0] 读/写 读/写 读/写 读/写 读/写 位 名称 7 LDEN 描述 使能自动重载 0 = 禁止重载 RCMP2H 和 RCMP2L 到TH2 和 TL2. 1 = 使能重载 RCMP2H 和 RCMP2L 到 TH2 和 TL2. 6:4 T2DIV[2:0] 定时器 2 时钟分频器 000 = 定时器2 时钟分频器为 1/1. 001 =定时器2时钟分频器为1/4. 010 =定时器2时钟分频器为1/16. 011 =定时器2时钟分频器为1/32. 100 =定时器2时钟分频器为1/64. 101 =定时器2时钟分频器为1/128. 110 =定时器2时钟分频器为1/256. 111 =定时器2时钟分频器为1/512. CAPCR 捕获模式自动清除 此位仅在定时器2自动重载模式下有效。当发生捕获事件时,它使硬件能够在TH2和TL2计数器寄存器 被传输到RCMP2H和RCMP2L之后自动清除它们。 0 = 当发生捕获事件时,定时器 2 继续计数。 1 = 当发生捕获事件时,定时器 2的计数值被自动清除。 2 CMPCR 比较匹配自动清除 该位仅当定时器2在比较功能模式下有效。当比较符合后,硬件将自动清除TH2及TL2计数器值. 0 = 比较符合之后,定时器2计数值按之前值继续计数。 1 = 比较符合之后,定时器2计数值清0。 1:0 LDTS[1:0] 自动重载触发选择 这些位用来选择重载触发事件。 00 = 定时器2溢出时重载 01 = 捕获0事件发生时重载 10 =捕获01事件发生时重载 11 =捕获02事件发生时重载 Feb. 21, 2020 Page 127 of 460 Rev. 1.01 MS51 系列技术参考手册 3 MS51 RCMP2L – 定时器 2 重载/比较值低字节 寄存器 SFR 地址 复位值 RCMP2L CAH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 RCMP2L[7:0] 读/写 位 名称 7:0 RCMP2L[7:0] 描述 定时器 2 重载/比较低字节 当定时器2配置成比较模式时,这些位保存比较值低字节。 当定时器2配置成重载模式时,这些位保存重载值低字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 128 of 460 Rev. 1.01 MS51 RCMP2H – 定时器 2 重载/比较值高字节 寄存器 SFR 地址 复位值 RCMP2H CBH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 RCMP2H[7:0] 读/写 位 名称 7:0 RCMP2H[7:0] 描述 定时器 2重载/比较值高字节 当定时器2配置成比较模式时,这些位保存比较值高字节。 当定时器2配置成重载模式时,这些位保存重载值高字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 129 of 460 Rev. 1.01 MS51 TL2 – 定时器 2 低字节 寄存器 SFR 地址 复位值 TL2 CCH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 TL2[7:0] 读/写 位 名称 7:0 TL2[7:0] 描述 定时器2 低字节 TL2是定时器2 16位计数器的低字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 130 of 460 Rev. 1.01 MS51 TH2 – 定时器 2 高字节 寄存器 SFR 地址 复位值 TH2 CDH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 TH2[7:0] 读/写 位 名称 7:0 TH2[7:0] 描述 定时器 2 高字节 TH2是定时器2 16位计数器的高字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 131 of 460 Rev. 1.01 MS51 ADCMPL – ADC 表值比较值低字节 寄存器 SFR 地址 复位值 ADCMPL CEH, 页 0 0000_0000 b 7 6 5 4 - - - - ADCMP[3:0] - - - - 读/写 位 名称 7:4 - 3:0 ADCMP[3:0] 3 2 1 0 描述 保留 ADC 比较值高低字节 ADC 比较值高低4位字节存入这个寄存器 MS51 系列技术参考手册 Feb. 21, 2020 Page 132 of 460 Rev. 1.01 MS51 ADCMPH – ADC比较值高低字节 寄存器 SFR 地址 复位值 ADCMPH CFH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 ADCMP[11:4] 读/写 位 名称 7:0 ADCMP[11:4] 描述 ADC 比较值高低字节 ADC 比较值高8位低字节存入这个寄存器 MS51 系列技术参考手册 Feb. 21, 2020 Page 133 of 460 Rev. 1.01 MS51 PSW – 程序状态字 寄存器 SFR 地址 复位值 PSW D0H,所有页,可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 CY AC F0 RS1 RS0 OV F1 P 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读 位 名称 7 CY 描述 高位进位标志 进行加法或减法操作时,当前运算需要向高位进位或借位时,CY将置位,否则清零。 在进行MUL 或 DIV运算时,CY始终为0。 CY受DA A指令影响,用来表示是否初始BCD数大于100。 在CJNE指令中,如果第一个无符号数的值小于第二个,则CY置1,否则清0 6 C 辅助进位标志 当前运算导致从半字节的低位序第4位进位或借位,该位置位,否则清0。 5 0 用户标志 0 可由用户置位或清零的通用标志。 4 RS1 3 RS0 寄存器块页选择位 这两位用来选择R0到R7位于四页中的哪一页。 MS51 系列技术参考手册 2 V RS1 RS0 寄存器页 RAM 地址 0 0 0 00H 到 07H 0 1 1 08H 到 0FH 1 0 2 10H 到 17H 1 1 3 18H 到 1FH 溢出标志 OV用于标示发生溢出。对于加法指令 ADD或ADDC指令中,如果位6有进位而位7没进位,或者位7有进 位而位6没有进位,则溢出标志置“1”,反之清“0”。 OV 也用于标示有符号数累加结果,当两个 正数相加,或两个负数相加结果为负数时OV为1。对于减法指令SUBB,当位6发生借位而位7没有,或 者位7发生借位而位6没有借位,则溢出标志置“1”,反之清“0”。 OV也用于标示两个数相减时, 当一个正数加一负数结果为负,或两个负数相减结果为负时。 对于MUL乘法指令,当结果大于255 (00FFH)时,OV置1。反之清0 对于DIV除法指令,通常情况下OV为0。 除非当B设定值为00H,则A和B的返回值为随机值,同时OV 置 1。 1 1 用户标志 1 可由用户软件置位或清零的通用标志。 Feb. 21, 2020 Page 134 of 460 Rev. 1.01 MS51 位 名称 0 P 描述 奇偶标志 当累加结果为奇数时,该标志置1,偶数时清0。其执行奇偶校验。 指令 指令 CY OV AC X[1] X X CLR C 0 ADDC X X X CPL C X SUBB X X X ANL C, bit X MUL 0 X ANL C, /bit X DIV 0 X ORL C, bit X DA A X ORL C, /bit X RRC A X MOV C, bit X RLC A X CJNE X SETB C 1 ADD CY OV AC Note: X 表示修改取决于指令执行结果 表 6.1-3 影响标志位设置的指令 MS51 系列技术参考手册 Feb. 21, 2020 Page 135 of 460 Rev. 1.01 MS51 PWMnPH – 周期值高字节, n = 0,1,2,3 寄存器 SFR 地址 复位值 PWM0PH D1H, 页 0 0000_0000 b PWM1PH A9H, 页 2 0000_0000 b PWM2PH B9H, 页 2 0000_0000 b PWM3PH C9H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 PWM0P[15:8] 读/写 位 名称 7:0 PWM0P[15:8] 描述 PWM 周期值高字节 与PWM0PL共同决定 PWM 的周期值。 MS51 系列技术参考手册 Feb. 21, 2020 Page 136 of 460 Rev. 1.01 MS51 PNP – PWM 反相控制 寄存器 SFR 地址 复位值 PNP D6H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - PNP5 PNP4 PNP3 PNP2 PNP1 PNP0 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 n PNPn 描述 PWMn 反相使能 0 = 直接输出. PWMn 输出按照设定直接输出到PWMn管脚 1 = 反相输出PWMn 输出按照设定反相输出到PWMn管脚 MS51 系列技术参考手册 Feb. 21, 2020 Page 137 of 460 Rev. 1.01 MS51 PWM0FBD – PWM 急停控制 寄存器 SFR 地址 复位值 PWM0FBD D7H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 FBF FBINLS FBD5 FBD4 FBD3 FBD2 FBD1 FBD0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 7 名称 FBF 描述 急停标志 FBINENT 置1时,FB引脚若有符合FBINLS (PWM0FBD.6) 定义的边沿发生时,此位置1。需软件清0。清 0后,置位PWM0RUN (PWM0CON0.7),PWM才会再次工作。 6 FBINLS FB 引脚急停信号输入边沿选择 0 = 下沿. 1 = 上沿. N FBDn PWMx 急停输出信号 0 = PWM0Cx 输出低. 1 = PWM0Cx 输出高 MS51 系列技术参考手册 Feb. 21, 2020 Page 138 of 460 Rev. 1.01 MS51 PWMnCON0 – PWMn 控制 0, n = 1,2,3 寄存器 SFR 地址 复位值 PWM1CON0 B4H, 页 2 0000_0000 b PWM2CON0 C4H, 页 2 0000_0000 b PWM3CON0 D4H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 PWMRUN LOAD PWMF CLRPWM - - - - 读/写 读/写 读/写 读/写 - - - - 位 名称 7 PWMRUN 描述 PWM 工作使能 0 = PWM 停止工作. 1 = PWM 开始工作. 6 LOAD PWM 加载新的周期和占空比值 此位用于把缓存中的周期和占空比新值加载到周期和占空比寄存器,下个周期开始使用新值。 写入缓存的周期和占空比,只有在周期末才会加载,然后硬件清零此位。 写: 0 = 无效。 1 = 本次PWM周期结束后加载周期和占空比的新值。 读: 1 =加载未完成。 5 PWMF PWM 标志 按寄存器PWM0INTC中的 INTSEL[2:0] 和 INTTYP[1:0]的定义,此位置1,需软件清零。 4 CLRPWM 计数器清零 此位置1将对 PWM 16位计数器清零,清零完成后,硬件清零此位. 这特性会使得CLRPWM位写入和读出值不一致,意义也不相同。 写: 0 = 无效. 1 = PWM 16位计数器清零 读: 0 = 清零完成. 1 = 清零尚未完成. 3:0 Feb. 21, 2020 - 保留 Page 139 of 460 Rev. 1.01 MS51 系列技术参考手册 0 = 加载完成。 MS51 PWM0CON0 – PWM0 控制0 (可位寻址) 寄存器 SFR 复制 复位值 PWM0CON0 D8H, 页0 0000_0000 b 7 6 5 4 3 2 1 0 PWM0RUN LOAD PWMF CLRPWM PWM3RUN PWM2RUN PWM1RUN P33FBINEN 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 PWM0RUN 描述 PWM0 使能位 0 = PWM0 停止工作. 1 = PWM0 开始工作. 注意: 仅适于 PWM0CON0。 6 LOAD PWM 周期和占空比加载 此位用于把缓存中的周期和占空比新值加载到周期和占空比寄存器,下个周期开始使用新值。 写入缓存的周期和占空比,只有在周期末才会加载,然后硬件清零此位。 写: 0 = 无效。 1 = 本次PWM周期结束后加载周期和占空比的新值。 读: 0 = 加载完成。 1 =加载未完成。 MS51 系列技术参考手册 5 PWMF PWM 标志 按寄存器PWM0INTC中的 INTSEL[2:0] 和 INTTYP[1:0]的定义,此位置1,需软件清零。 4 CLRPWM 计数器清零 此位置1将对 PWM 16位计数器清零,清零完成后,硬件清零此位. 写: 0 = 无效. 1 = PWM 16位计数器清零 读: 0 = 清零完成. 1 = 清零尚未完成. 3 PWM3RUN PWM3 工作使能 0 = PWM3 停止工作. 1 = PWM3 开始工作. 注意: 仅适于 PWM0CON0。 Feb. 21, 2020 Page 140 of 460 Rev. 1.01 MS51 位 名称 2 PWM2RUN 描述 PWM2 run enable 0 = PWM2停止工作. 1 = PWM2开始工作. 注意: 仅适于 PWM0CON0。 1 PWM1RUN PWM1 run enable 0 = PWM1停止工作. 1 = PWM1开始工作. 注意: 仅适于 PWM0CON0。 0 P33FBINEN P33 紧急停止 0 = 禁止引脚 P33 FB 对PWM0的急停功能 1 = 使能引脚 P33 FB 对PWM0的急停功能,一旦此引脚有符合 FBINLS (FBD.6)定义的跳变发 生,PWM0C0~C5 output 输出寄存器 FBD 的值,PWMRUN (PWM0CON0.7) 将被硬件清 0,PWM停止工作,PWMRUN 再次写1才开始工作。 注意: 仅适于 PWM0CON0。 MS51 系列技术参考手册 Feb. 21, 2020 Page 141 of 460 Rev. 1.01 MS51 PWMnPL – PWM 周期值低字节, n = 0,1,2,3 寄存器 SFR 地址 复位值 PWM0PL D9H, 页 0 0000_0000 b PWM1PL B1H, 页 2 0000_0000 b PWM2PL C1H, 页 2 0000_0000 b PWM3PL D1H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 PWMnP[7:0] 读/写 位 名称 7:0 PWMnP[7:0] 描述 PWM 周期值低字节 与PWM0PH共同决定 PWM 的周期值。 MS51 系列技术参考手册 Feb. 21, 2020 Page 142 of 460 Rev. 1.01 MS51 PWMnCxH – PWMn 通道x 占空比高字节, n = 0,1,2,3; x = 0,1,2,3,4,5 寄存器 SFR 地址 描述 复位值 PWM0C0H D2H, 页 0 PWM0 通道0占空比高字节 0000_0000 b PWM0C1H D3H, 页0 PWM0通道1占空比高字节 0000_0000 b PWM0C2H D4H, 页0 PWM0 通道2占空比高字节 0000_0000 b PWM0C3H D5H, 页0 PWM0 通道3占空比高字节 0000_0000 b PWM0C4H C4H, 页1 PWM0 通道4占空比高字节 0000_0000 b PWM0C5H C5H, 页1 PWM0 通道5占空比高字节 0000_0000 b PWM1_CH0H AAH, 页2 PWM1通道0占空比高字节 0000_0000 b PWM1_CH1H ABH, 页2 PWM1通道1占空比高字节 0000_0000 b PWM2_CH0H BAH, 页2 PWM2 通道0占空比高字节 0000_0000 b PWM2_CH1H BBH, 页2 PWM2 通道1占空比高字节 0000_0000 b PWM3_CH0H CAH, 页2 PWM3 通道0占空比高字节 0000_0000 b PWM3_CH1H CBH, 页2 PWM3 通道1占空比高字节 0000_0000 b 7 6 5 4 3 2 1 0 PWMnCx [15:8] 读/写 7:0 名称 PWMnCx [15:8] MS51 系列技术参考手册 位 描述 PWMnCx 占空比高字节 与 PWMnCxL共同决定占空比值。 Feb. 21, 2020 Page 143 of 460 Rev. 1.01 MS51 PWMnCxL – PWMn通道x 占空比低字节, n = 0,1,2,3; x = 0,1,2,3,4,5 寄存器 SFR 地址 描述 复位值 PWM0C0L DAH, 页 0 PWM0 通道0占空比低字节 0000_0000 b PWM0C1L DBH, 页 0 PWM0 通道1占空比低字节 0000_0000 b PWM0C2L DCH, 页 0 PWM0 通道2占空比低字节 0000_0000 b PWM0C3L DDH, 页 0 PWM0 通道3占空比低字节 0000_0000 b PWM0C4L CCH, 页 1 PWM0 通道4占空比低字节 0000_0000 b PWM0C5L CDH, 页1 PWM0 通道5占空比低字节 0000_0000 b PWM1_CH0L B2H, 页2 PWM0 通道0占空比低字节 0000_0000 b PWM1_CH1L B3H, 页2 PWM0 通道1占空比低字节 0000_0000 b PWM2_CH0L C2H, 页2 PWM0 通道0占空比低字节 0000_0000 b PWM2_CH1L C3H, 页2 PWM0 通道1占空比低字节 0000_0000 b PWM3_CH0L D2H, 页2 PWM0 通道0占空比低字节 0000_0000 b PWM3_CH1L D3H, 页2 PWM0 通道1占空比低字节 0000_0000 b 7 6 5 4 3 2 1 0 PWMnCx [7:0] 读/写 MS51 系列技术参考手册 位 7:0 名称 PWMnCx [7:0] 描述 PWMnCx 占空比低字节 与 PWMnCxH 共同决定PWM的占空比。 Feb. 21, 2020 Page 144 of 460 Rev. 1.01 MS51 PIOCON0 – PWM引脚控制 寄存器 SFR 地址 复位值 PIOCON0 DEH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - PIO03 PIO01 PIO00 PIO10 PIO11 PIO12 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:6 - 5 PIO03 描述 保留 P0.3/PWM 引脚功能选择 0 = P0.3/PWM 引脚功能为 P0.3. 1 = P0.3/PWM 引脚功能为 PWM0_CH5/PWM3_CH1输出. (PWM3_CH1P=11, 选 PWM3_CH1; 其它为 PWM0C5) 4 PIO01 当AUXR5[7:6]. PWM3CH1P = 00, PIO03 = 1, , P0.3定义为PWM0_CH5. 当AUXR5[7:6]. PWM3CH1P =11, PIO03 = 1, , P0.3定义为PWM3_CH1. P0.1/PWM引脚功能选择 0 = P0.1/PWM引脚功能为P0.1 1 = P0.1/PWM引脚功能为PWM0C4/PWM3_CH0输出。 (PWM3_CH0P=10, 选PWM3_CH0; 其它选PWM0C4) PIO00 , P0.1定义为PWM0_CH4. 当AUXR5[5:4] PWM3CH1P =10, PIO01 = 1, , P0.1定义为PWM3_CH0. MS51 系列技术参考手册 3 当AUXR5[5:4]. PWM3CH1P = 00, PIO01 = 1, P0.0/PWM引脚功能选择 0 = P0.0/PWM引脚功能为P0.0. 1 = P0.0/PWM引脚功能为PWM0_CH3/PWM2_CH1输出。 (PWM2_CH1P=10, 选PWM2_CH1; 其它选 PWM0_CH3) 当AUXR4[7:6]. PWM2CH1P = 00, PIO00 = 1, , P0.0定义为PWM0_CH3 当AUXR5[5:4] PWM2CH1P =10, PIO00 = 1, , P0.0定义为PWM2_CH1 2 PIO10 P1.0/PWM引脚功能选择 0 = P1.0/PWM引脚功能为P1.0. 1 = P1.0/PWM引脚功能为PWM0_CH2/PWM2_CH0输出。 (PWM2_CH0P=10, 选PWM2_CH0; 其它选 PWM0_CH2) 當 AUXR4[5:4]. PWM2CH0P = 00, PIO10 = 1, P1.0 定义为 PWM0_CH2. AUXR4[5:4]. PWM2CH0P = 10, PIO10 = 1, P1.0定义为PWM2_CH0. Feb. 21, 2020 Page 145 of 460 Rev. 1.01 MS51 位 名称 1 PIO11 描述 P1.1/PWM引脚功能选择 0 = P1.1/PWM引脚功能为P1.1. 1 = P1.1/PWM引脚功能为PWM0_CH1/PWM1_CH1输出。 (PWM1_CH1P=11, 选PWM1_CH1; 其它选 PWM0_CH1) 當AUXR4[3:2]. PWM1CH1P = 00, PIO11 = 1, P1.1定义为PWM0_CH1. AUXR4[3:2]. PWM1CH1P = 11, PIO11 = 1, P1.1 定义为PWM1_CH1. 0 PIO12 P1.2/PWM引脚功能选择 0 = P1.2/PWM引脚功能为P1.2. 1 = P1.2/PWM引脚功能为PWM0C0/PWM1_CH0 输出。 (PWM1_CH0P=11, 选 PWM1_CH0; 其它选 PWM0_CH1) 當AUXR4[1:0]. PWM1CH0P = 00, PIO12 = 1, P1.2 定义为 PWM0_CH1. AUXR4[1:0]. PWM1CH0P = 10, PIO12 = 1, P1.2定义为PWM1_CH0. MS51 系列技术参考手册 Feb. 21, 2020 Page 146 of 460 Rev. 1.01 MS51 PWMnCON1 – PWM 控制 1 寄存器 SFR 地址 复位值 PWM0CON1 DFH, 页 0 0000_0000 b PWM1CON1 B5H, 页 2 0000_0000 b PWM2CON1 C5H, 页 2 0000_0000 b PWM3CON1 D5H, 页 2 0000_0000 b 7 6 5 4 3 PWMMOD[1:0] GP PWMTYP FBINEN PWMDIV[2:0] 读/写 读/写 读/写 读/写 读/写 寄存器 名称 7:6 PWMMOD[1:0] 2 1 0 描述 PWM 模式选择 00 = 独立模式. 01 = 互补模式. 10 = 同步模式 11 = 保留. 5 GP 组模式使能 组模式使能后前三对 PWM 占空比由 PWM01H PWM01L 决定。 0 = 禁止组模式 1 = 使能组模式. MS51 系列技术参考手册 注意: 仅适用于 PWM0 4 PWMTYP PWM 类型选择 0 = 边沿对齐. 1 =中心对齐. 3 FBINEN FB 急停引脚输入使能 0 = 功能禁止通过FB引脚输入触发PWM输出刹车故障禁止。 1 = 使能急停功能。一旦此引脚出现符合 FBINLS (PWM0FBD.6) 定义的边沿,PWM0 通道 0~5 输出 PWM0FBD 的值。 PWM0RUN (PWM0CON0.7)被硬件清0。PWM0RUN置1后 PWM才再次开始工作。 注意: 仅适用于 PWM0 Feb. 21, 2020 Page 147 of 460 Rev. 1.01 MS51 寄存器 名称 2:0 PWMDIV[2:0] 描述 PWM 时钟预分频系数 000 = 1/1. 001 = 1/2 010 = 1/4. 011 = 1/8. 100 = 1/16. 101 = 1/32. 110 = 1/64. 111 = 1/128. MS51 系列技术参考手册 Feb. 21, 2020 Page 148 of 460 Rev. 1.01 MS51 A 或 ACC – 累加器 SFR 地址 复位值 ACC E0H, 所有页, 可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 7:0 寄存器 名称 ACC[7:0] 描述 累加器 A或ACC是标准的80C51累加器,用于算数运算。 MS51 系列技术参考手册 Feb. 21, 2020 Page 149 of 460 Rev. 1.01 MS51 ADCCON1 – ADC控制 1 寄存器 SFR 地址 复位值 ADCCON1 E1H, 页 0 0000_0000 b 7 6 OCEN STADCPX ADCDIV[1:0] 读/写 读/写 读/写 位 名称 7 OCEN 5 4 3 2 1 0 ETGTYP[1:0] ADCEX ADCEN 读/写 读/写 读/写 描述 ADC 偏移校准使能寄存器 这里使能偏移校准功能 0: ADC 偏移校准使能, ADC 硬件自动校准 1: ADC偏移校准禁止 6 STADCPX 外部触发ADC 触发管脚选择 0 = 选择 STADC 从 P0.4. 1 =选择 STADC 从 P1.3. 注意配置此位后 STADC 管脚立刻改变 5:4 ADCDIV[1:0] ADC ADCAQT 时钟除频 此字段定义采样点采集时钟分频器值 00 =ADC時鐘分頻為 FADCAQT = FSYS/1. 01 = ADC時鐘分頻為 FADCAQT = FSYS/2. MS51 系列技术参考手册 10 = ADC時鐘分頻為 FADCAQT = FSYS/4. 11 = ADC時鐘分頻為 FADCAQT = FSYS/8. 3:2 ETGTYP[1:0] 外部触发模式选择 当 ADCEX (ADCCON1.1) 为1,这里选择何种条件触发ADC转换. 00 = PWM0/2/4或STADC管脚下降沿 01 = PWM0/2/4 或STADC管脚上升沿. 10 = PWM 周期中点 11 = PWM 周期结束. 注意周期中点中断和周期结束中断只在PWM 中心对齐模式有效. 1 ADCEX ADC 转换触发选择 这一位选择触发AD转换的条件. 0 = A/D 转换只由设置 ADCS 位触发 1 = A/D 转换通过设置 ADCS 位或做通过ETGSEL[1:0] 和 ETGTYP[1:0]设置的外部触发源触 发。注意当 ADCS 为 1 (转换正忙), ADC 会忽略后来的触发源直到 ADCS被硬件清除 Feb. 21, 2020 Page 150 of 460 Rev. 1.01 MS51 位 名称 0 ADCEN 描述 ADC 使能 0 = ADC 电路关闭 1 = ADC 电路使能. MS51 系列技术参考手册 Feb. 21, 2020 Page 151 of 460 Rev. 1.01 MS51 ADCCON2 – ADC控制2 寄存器 SFR 地址 复位值 ADCCON2 E2H, 页 0 0000_0000 b 7 6 5 4 ADFBEN ADCMPOP ADCMPEN ADCMPO ADCAQT1[2:0] ADCDLY.8 读/写 读/写 读/写 只读 读/写 读/写 位 名称 7 ADFBEN 3 2 1 0 描述 ADC 转换结果响应宣告故障刹车使能 0 = ADC 响应宣告故障刹车禁止. 1 = ADC 响应宣告故障刹车使能. 当比较结果 ADCMPO 为1触发故障刹车模块。即符合PWM故障 刹车输出值后,硬件将清除 PWMRUN (PWMCON0.7) ,并终止PWM输出。当PWMRUN置 1,PWM重新输出。 6 ADCMPOP ADC 比较器输出极性 0 = 若ADCR[11:0]大于或等于ADCMP[11:0].,ADCMPO 为 1 1 = 若ADCR[11:0]小于ADCMP[11:0],ADCMPO 为 1 5 ADCMPEN ADC 结果比较器使能 0 = ADC 结果比较器禁止. 1 = ADC 结果比较器使能 4 ADCMPO ADC比较器输出值 MS51 系列技术参考手册 该位输出ACMPOP设定比较输出的结果。每次AD转换结束都会更新输出。 3:1 ADCAQT1 ADC采集时间 1 这个3位字段决定ADC AIN0~AIN7和BG采样的捕获时间,遵循下面的等式: ADC 采集时间 = 4 * ADCAQT  6 . FADCAQT 在 ADCDIV (ADCCON2[3:1])定义 FADC 默认及最小捕获时间是6个ADC时钟周期。注意,当ADC正在转换时,这个字段不应该被改变 0 ADCDLY.8 ADC 外部触发延时计数器第8位 见 ADCDLY 寄存器 Feb. 21, 2020 Page 152 of 460 Rev. 1.01 MS51 ADCCON3 – ADC 控制 3 位 寄存器 SFR 地址 复位值 ADCCON3 86H, 页 2 0000_0000 b 7 6 5 4 - - HIE CONT ADCAQT2[2:0] SLOW - - 读/写 读/写 读/写 读/写 名称 - 7:6 5 3 HIE 2 1 0 描述 保留 ADC 一半完成中断使能 0 = 连续模式下,A/D 转换完成一半不会产生ADC中断 1 = 连续模式下,A/D 转换完成一半会产生ADC中断 4 CONT ADC连续采样选择 0 = ADC 单次采样, 一次 A/D 转换完成后会产生ADC中断 1 = ADC 连续采样. 所有A/D 转换完成后会产生ADC中断 3:1 ADCAQT1 ADC 采样时间 1 这个3位字段决定ADC AIN9~AIN15采样的捕获时间,遵循下面的等式: ADC 采集时间 = 4 * ADCAQT  6 . FADCAQT 在 ADCDIV (ADCCON2[3:1])定义 FADC 默认FADCAQT = FSYS (ADCDIV=0), 因為最小取樣時間必須超過370ns, 這意味當Fsys= 24MHz時, ADCAQT應該設定為1. 0 SLOW ADC慢速选择 此位选择 ADC慢速模式 0 = ADC 转换时间是高速 1400ns, FADC = 714 ksps 1 = ADC转换时间是低速 4750ns, FADC = 215 ksps, 注意1 : 慢速 ADC 转换可以提高 ADC的转换质量可以提高的转换质量当VDD低于2.5V时的转换质 量 注意2: AUXR1.4 (SLOW) 或 ADCCON3 .0(SLOW) 设为 1, ADC 进入低速模式. Feb. 21, 2020 Page 153 of 460 Rev. 1.01 MS51 系列技术参考手册 默认及最小捕获时间是6个ADC时钟周期。注意,当ADC正在转换时,这个字段不应该被改变 MS51 ADCDLY – ADC触发延时计数器 寄存器 SFR 地址 复位值 ADCDLY E3H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 ADCDLY[7:0] 读/写 位 7:0 名称 ADCDLY[7:0] 描述 ADC 外部触发启动延迟计数器低位 该8位寄存器与ADCCON2.0组成9位计数器,用于在外部触发启动ADC之前加入一段延迟。延迟 计数结束再开始ADC转换 外部延迟时间 = ADCDLY . FADC 注,该延迟仅当 ADCEX (ADCCON1.1) 置1时有效。如果启用PWM输出触发ADC功能,在PWM 运行过程中不得更改ADCDLY计数值。 MS51 系列技术参考手册 Feb. 21, 2020 Page 154 of 460 Rev. 1.01 MS51 CnL – 捕获通道低字节 , n = 0,1,2 寄存器 SFR 地址 复位值 C0L E4H, 页 0 0000_0000 b C1L E6H, 页 0 0000_0000 b C2L EDH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 CnL[7:0] 读/写 位 名称 7:0 CnL[7:0] 描述 输入捕获通道n,捕获结果低字节 CnL 是输入捕获n 16位捕获结果的低字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 155 of 460 Rev. 1.01 MS51 CnH – 捕获 n 高字节, n = 1,2,3 寄存器 SFR 地址 复位值 C0H E5H, 页 0 0000_0000 b C1H E7H, 页 0 0000_0000 b C2H EEH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 CnH[7:0] 读/写 位 名称 7:0 CnH[7:0] 描述 输入捕获n,捕获结果高字节 CnL 是输入捕获n 16位捕获结果的高字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 156 of 460 Rev. 1.01 MS51 ADCCON0 – ADC控制 0 (可位寻址) 寄存器 SFR 地址 复位值 ADCCON0 E8H, 所有页 0000_0000b 7 6 5 4 3 2 1 0 ADCF ADCS ETGSEL1 ETGSEL0 ADCHS3 ADCHS2 ADCHS1 ADCHS0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 ADCF 描述 ADC标志位 当AD转换完成,该位置1。可读取到当前AD转换结果。该位为1时无法开始新一轮转换,需要 软件清零 6 ADCS A/D 转换软件启动位 该位置1启动AD转换。在AD转换过程中该位保持为1,当转换结束硬件自动清0。这意味着写入 ADCS的值和读出的不一定相符 写: 0 = 无动作. 1 = 开始AD转换 读: 0 = ADC 模块空闲状态 1 = ADC 模块工作中 5:4 ETGSEL[1:0] MS51 系列技术参考手册 外部触发源选择 当 ADCEX (ADCCON1.1) 为1,该位选择外部触发ADC的来源 00 = PWM0. 01 = PWM2. 10 = PWM4. 11 = STADC 脚. Feb. 21, 2020 Page 157 of 460 Rev. 1.01 MS51 位 名称 3:0 ADCHS[3:0] 描述 A/D转换通道选择 该位用于选择连接ADC转换通道。当ADCEN 为 0所有输入不连接到ADC.. 0000 = ADC_CH0 0001 = ADC_CH1. 0010 = ADC_CH2. 0011 = ADC_CH3. 0100 = ADC_CH4. 0101 = ADC_CH5. 0110 = ADC_CH6. 0111 = ADC_CH7. 1000 = VBG (内部带隙电压). 1001 = ADC_CH9. 1010 = ADC_CH10. 1011 = ADC_CH11. 1100 = ADC_CH12. 1101 = ADC_CH13. 1110 = ADC_CH14. 1111 = ADC_CH15. MS51 系列技术参考手册 Feb. 21, 2020 Page 158 of 460 Rev. 1.01 MS51 PICON –引脚中断控制 寄存器 SFR 地址 复位值 PICON E9H, 页 0, 0011 _0100 b 7 6 5 4 3 2 1 0 PIT7 PIT6 PIT5 PIT4 PIT3 PIT2 PIT1 PIT0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 PIT7 描述 引脚中断通道7类型选择 该位选择引脚中断通道7触发类型 0 = 电平触发. 1 = 边沿触发. 6 PIT6 引脚中断通道6类型选择 该位选择引脚中断通道6触发类型 0 = 电平触发. 1 = 边沿触发. 5 PIT5 引脚中断通道5类型选择 该位选择引脚中断通道5触发类型. 0 = 电平触发. 1 = 边沿触发. PIT4 MS51 系列技术参考手册 4 引脚中断通道4类型选择 该位选择引脚中断通道4触发类型 0 = 电平触发. 1 = 边沿触发. 3 PIT3 引脚中断通道3类型选择 该位选择引脚中断通道3触发类型 0 = 电平触发. 1 = 边沿触发. 2 PIT2 引脚中断通道2类型选择 该位选择引脚中断通道2触发类型 0 = 电平触发. 1 = 边沿触发. Feb. 21, 2020 Page 159 of 460 Rev. 1.01 MS51 位 名称 1 PIT1 描述 引脚中断通道1类型选择 该位选择引脚中断通道1触发类型 0 = 电平触发. 1 = 边沿触发. 0 PIT0 引脚中断通道0类型选择 该位选择引脚中断通道0触发类型 0 = 电平触发. 1 = 边沿触发. MS51 系列技术参考手册 Feb. 21, 2020 Page 160 of 460 Rev. 1.01 MS51 PINEN – 引脚中断反相特性使能. 寄存器 SFR 地址 复位值 PINEN EAH, Page 0 0000_0000 b 7 6 5 4 3 2 1 0 PINEN7 PINEN6 PINEN5 PINEN4 PINEN3 PINEN2 PINEN1 PINEN0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 n PINENn 描述 通道n管脚中断反相特性选择使能位 该位用以使能低电平/下降沿触发中断。至于是电平还是边沿,由PICON寄存器的PITn位决定 0 = 低电平/下降沿检测禁止. 1 = 低电平/下降沿检测使能 MS51 系列技术参考手册 Feb. 21, 2020 Page 161 of 460 Rev. 1.01 MS51 PIPEN – 引脚中断正向特性使能. 寄存器 SFR 地址 复位值 PIPEN EBH, Page 0 0000_0000 b 7 6 5 4 3 2 1 0 PIPEN7 PIPEN6 PIPEN5 PIPEN4 PIPEN3 PIPEN2 PIPEN1 PIPEN0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 n PIPENn 描述 管脚中断正相特性选择使能位 该位用以使能高电平/上升沿触发中断。至于是电平还是边沿,由PICON寄存器的PITn位决定。 0 = 高电平/上升沿检测禁止 1 = 高电平/上升沿检测使能 MS51 系列技术参考手册 Feb. 21, 2020 Page 162 of 460 Rev. 1.01 MS51 PIF – 引脚中断标志 寄存器 SFR 地址 复位值 PIF ECH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 PIF7 PIF6 PIF5 PIF4 PIF3 PIF2 PIF1 PIF0 R (电平) R (电平) R (电平) R (电平) R (电平) R (电平) R (电平) R (电平) 读/写 (边沿) 读/写 (边沿) 读/写 (边沿) 读/写 (边沿) 读/写 (边沿) 读/写 (边沿) 读/写 (边沿) 读/写 (边沿) 位 名称 n PIFn 描述 引脚中断通道n标志 如果选择了边沿触发,则如果引脚中断的通道n检测到启用的边沿触发器,则硬件将设置此标志。这 个标志应该用软件清除。 如果选择了电平触发,则此标志为脚中断的通道n上输入信号的逻辑电平的反向。软件无法控制它。 MS51 系列技术参考手册 Feb. 21, 2020 Page 163 of 460 Rev. 1.01 MS51 EIP – 扩展中断优先级 [3] 寄存器 SFR 地址 复位值 EIP EFH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 PT2 PSPI PFB PWDT PPWM PCAP PPI PI2C 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7 PT2 定时器2 中断优先级低位 6 PSPI SPI中断优先级低位 5 PFB 故障刹车中断优先级低位 4 PWDT WDT中断优先级低位 3 PPWM PWM中断优先级低位 2 PCAP 引脚捕获中断优先级低位 1 PPI 引脚中断优先级低位 0 PI2C I C中断优先级低位 2 MS51 系列技术参考手册 注: EIP和 EIPH结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 Feb. 21, 2020 Page 164 of 460 Rev. 1.01 MS51 LDOTRIM – LDO 调整 寄存器 SFR 地址 复位值 LDOTRIM EFH, 页 1 0000_0000 b 7 位 7:5 6 5 4 3 2 uLDOTRIM[2:0] LDOTRIM[4:0] 读/写 读/写 名称 1 0 描述 Uldotrim[2:0] LDO 输出电压调整 此位用于调整LDO输出电压 000 = 最大电压. 001 • • • 110 = 最小电压. 111 = 100. 4:0 LDOTRIM[4:0] 主LDO输出电压调整 此位用于调整主LDO输出电压 0 0000 = 最大输出电压. 0 0001 • MS51 系列技术参考手册 • • • • • 1 1110 = 最小输出电压. 1 1111 = 1 0000. Feb. 21, 2020 Page 165 of 460 Rev. 1.01 MS51 B – B累加器 SFR 地址 复位值 B F0H, 所有页, 可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 7:0 寄存器 名称 B[7:0] 描述 B 累加器 B累加器是标准8051的另一个累加器。主要用在MUL和DIV指令中。 MS51 系列技术参考手册 Feb. 21, 2020 Page 166 of 460 Rev. 1.01 MS51 CAPCON3 –输入捕获控制 3 寄存器 SFR 地址 复位值 CAPCON3 F1H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 CAP13 CAP12 CAP11 CAP10 CAP03 CAP02 CAP01 CAP00 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 [7:4] CAP1[3:0] 描述 输入捕获通道1引脚选择 0000 = P1.2/IC0 0001 = P1.1/IC1 0010 = P1.0/IC2 0011 = P0.0/IC3 0100 = P0.4/IC3 0101 = P0.1/IC4 0110 = P0.3/IC5 0111 = P0.5/IC6 1000 = P1.5/IC7 其他 = P1.2/IC0 [3:0] CAP0[3:0] 输入捕获通道0引脚选择 0000 = P1.2/IC0 0001 = P1.1/IC1 MS51 系列技术参考手册 0010 = P1.0/IC2 0011 = P0.0/IC3 0100 = P0.4/IC3 0101 = P0.1/IC4 0110 = P0.3/IC5 0111 = P0.5/IC6 1000 = P1.5/IC7 其他 = P1.2/IC0 Feb. 21, 2020 Page 167 of 460 Rev. 1.01 MS51 CAPCON4 –输入捕获控制 4 寄存器 SFR 地址 复位值 CAPCON4 F2H, Page 0 0000_0000 b 7 6 5 4 3 2 1 0 - - - - CAP23 CAP22 CAP21 CAP20 - - - - 读/写 读/写 读/写 读/写 位 名称 7:4 - [3:0] CAP2[3:0] 描述 保留 输入捕获通道2引脚选择 0000 = P1.2/IC0 0001 = P1.1/IC1 0010 = P1.0/IC2 0011 = P0.0/IC3 0100 = P0.4/IC3 0101 = P0.1/IC4 0110 = P0.3/IC5 0111 = P0.5/IC6 1000 = P1.5/IC7 其他 = P1.2/IC0 MS51 系列技术参考手册 Feb. 21, 2020 Page 168 of 460 Rev. 1.01 MS51 SPCR – 串行外围控制寄存器 SFR 地址 复位值 SPCR F3H, Page 0 0000_0000 b 7 6 5 4 3 2 1 0 SSOE SPIEN LSBFE MSTR CPOL CPHA SPR1 SPR0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 7 寄存器 名称 SSOE 描述 從機選擇片选输出使能 .该位搭配DISMODF (SPInSR.3) 用于定义̅̅̅管脚,该位仅在MSTR=1和DISMODF=1的条件下有效。 0 = ̅̅̅̅作为普通 I/O. 1 = ̅̅̅̅选择的外部从机设备,当数据传输时自动拉低,当总线进入空闲模式时自动变高 6 SPIEN SPI 使能 0 = 关闭SPI功能. 1 = 打开SPI功能. 5 LSBFE LSB 优先使能 0 = SPI优先传输最高位MSB数据 1 = SPI优先传输最低位LSB数据 4 MSTR 使能主机模式 该位用于切换SPI工作于主机与从机模式. 0 = SPI 配置为从机模式. 3 CPOL MS51 系列技术参考手册 1 = SPI 配置为主机模式. SPI 时钟极性选择 CPOL 位定义,SPI总线在空闲模式时时钟脚的电平状态. 0 = SPI 时钟在空闲模式时低电平. 1 = SPI 时钟在空闲模式时高电平. 2 CPHA SPI 时钟相位选择 CPHA位定义在采样时所用的时钟边沿。. 0 = SPI 在时钟第一个边沿采样数据。 1 = SPI 在时钟第二个边沿采样数据。. Feb. 21, 2020 Page 169 of 460 Rev. 1.01 MS51 位 1:0 名称 SPR[1:0] 描述 SPI 时钟频率选择 这两位设置4级SPI 时钟分频. 下面列出时钟频率 Fsys = 16 MHz SPR1 SPR0 除频 SPI时钟频率 0 0 2 8M bit/s 0 1 4 4M bit/s 1 0 8 2M bit/s 1 1 16 1 M bit/s SPR1 SPR0 除频 SPI 时钟频率 0 0 2 12M bit/s 0 1 4 6M bit/s 1 0 8 3M bit/s 1 1 16 1.5M bit/s Fsys = 24 MHz SPR[1:0] 只在主机模式(MSTR = 1)下有效。从机模式下,时钟自动同步主机通过 SPICLK 管脚发送 来的时钟,最高到FSYS/2 MS51 系列技术参考手册 Feb. 21, 2020 Page 170 of 460 Rev. 1.01 MS51 SPCR2 – 串行外围控制寄存器 2 寄存器 SFR 地址 复位值 SPCR2 F3H, Page 1 0000_0000 b 7 6 5 4 3 2 1 0 - - - - - - SPIS1 SPIS0 - - - - - - 读/写 读/写 位 名称 7:2 - 0 SPIS[1:0] 描述 保留 SPI 临近字节间隔时间选择 SPIS[1:0] 和 CPHA 设置8级SPI 邻近字节接隔时间如下: CPHA 0 0 0 0 1 1 1 1 SPIS1 0 0 1 1 0 0 1 1 SPIS0 0 1 0 1 0 1 0 1 SPI clock 0.5 1.0 1.5 2.0 1.0 1.5 2.0 2.5 SPI clock 0.0 0.5 1.5 2.0 0.0 1.0 2.0 2.5 SPIS[1:0]只在主机模式 (MSTR = 1)时有效 MS51 系列技术参考手册 Feb. 21, 2020 Page 171 of 460 Rev. 1.01 MS51 SPSR – 串行外设状态寄存器 寄存器 SFR 地址 复位值 SPSR F4H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SPIF WCOL SPIOVF MODF DISMODF TXBUF - - 读/写 读/写 读/写 读/写 读/写 只读 - - 位 名称 7 SPIF 描述 SPI传输完成标志 在SPI数据传输完成或接收到的数据移入到SPI读缓冲时,该位通过硬件设置为1. 如果使能 ESPI (EIE .0)和 EA,,SPI中断请求。该位必须由软件清零。如果SPIF置1,禁止向SPInDR写入 6 WCOL 写冲突位 该位表示写冲突事件. 一旦发生写冲突事件,该位被置位,必须通过软件清零。 5 SPIOVF SPI 溢出标志 该位表示溢出事件,一旦发生溢出,该位置位,如果使能ESPI 和 EA, SPI请求中断。该位必须由软 件清零 4 MODF 模式错误中断状态标志 该位表示模式错误事件。 如果 ̅̅̅ 配置成模式错误输入(MSTR=1且DISMODF=0) 和 ̅̅̅ 被外部器件 拉低,,将产生模式错误, MODF将被置1。如果使能 ESPI 和 EA, SPI中断请求。 该位必须由软 件清零 3 DISMODF 禁止模式错误检测 MS51 系列技术参考手册 位结合SSOE (SPInCR.7) 位用于决定̅̅̅̅的特征。DISMODF 仅在主机模式下有效(MSTR = 1) 0 = 使能模式错误检测。̅̅̅̅为模式错误检测的输入脚,不管SSOE设置。 1 = 禁止模式错误检测。̅̅̅̅的依赖SSOE 位配置。 2 TXBUF SPI 写数据缓存状态 此位指示SPI发送缓存状态. 0 = SPI 写数据缓存空 1 = SPI 写数据缓存满. Feb. 21, 2020 Page 172 of 460 Rev. 1.01 MS51 SPDR – 串行外设数据寄存器 寄存器 SFR 地址 复位值 SPDR F5H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SPDR[7:0] 读/写 位 7:0 名称 SPDR[7:0] 描述 串行外设数据 该字节为SPI总线上传输或接收的数据。一个字节的写入实际是写入到移位寄存器内操作。一个字 节的读取,实际上是一个缓冲区读取数据操作。在主机模式,写该寄存器将启动传输并同时接收一 个字节。 MS51 系列技术参考手册 Feb. 21, 2020 Page 173 of 460 Rev. 1.01 MS51 AINDIDS0 – ADC通道数字输入通道关闭 SFR 地址 复位值 AINDIDS0 F6H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 P11DIDS P03DIDS P04DIDS P05DIDS P06DIDS P07DIDS P30DIDS P17DIDS 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 n 寄存器 名称 PnnDIDS 描述 ADC 通道数字通道关闭 0 = 使能 ADC通道的数字通道. 1 =禁止 ADC 通道数字输入, 读ADC 通道一直读到 0. MS51 系列技术参考手册 Feb. 21, 2020 Page 174 of 460 Rev. 1.01 MS51 AINDIDS1 – ADC通道数字输入通道关闭 SFR 地址 复位值 AINDIDS1 99H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 P25DIDS P14DIDS P13DIDS P24DIDS P23DIDS P22DIDS P21DIDS - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 n 寄存器 名称 PnnDIDS 描述 ADC 通道数字通道关闭 0 = 使能 ADC通道的数字通道. 1 =禁止 ADC 通道数字输入, 读ADC 通道一直读到 0. MS51 系列技术参考手册 Feb. 21, 2020 Page 175 of 460 Rev. 1.01 MS51 EIPH – 扩展中断优先级高位 [4] 寄存器 SFR 地址 复位值 EIPH F7H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 PT2H PSPIH PFBH PWDTH PPWMH PCAPH PPIH PI2CH 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7 PT2H 定时器2中断优先级高位 6 PSPIH SPI中断优先级高位 5 PFBH 故障刹车中断优先级高位 4 PWDTH WDT中断优先级高位 3 PPWMH PWM中断优先级高位 2 PCAPH 定时器输入捕获中断优先级高位 1 PPIH 引脚中断优先级高位 0 PI2CH I C中断优先级高位 2 注: EIP与EIPH结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 176 of 460 Rev. 1.01 MS51 SCON_1 – 串口 1 控制 寄存器 SFR 地址 复位值 SCON_1 F8H, 所有页, 可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 SM0_1/FE_1 SM1_1 SM2_1 REN_1 TB8_1 RB8_1 TI_1 RI_1 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 SM0_1/ FE_1 6 SM1_1 描述 串口1模式选择 SMOD0_1 (T3CON.6) = 0: 详见 表 6.9-2 串口 UART1 模式/波特率描述 SMOD0_1 (T3CON.6) = 1: SM0_1/FE_1 用作帧错误状态标志(FE) ,可以被软件清除 0 = 没有发生帧错误 (FE)。 1 = 侦测到帧错误(FE) 5 SM2_1 MS51 系列技术参考手册 串口1多机通信模式使能 该位功能用于串口1模式 模式0: 无作用 模式1: 位检查有效停止位. 0 = 接收总是有效不管停止位的逻辑电平. 1 = 接收仅在接收停止位为逻辑1,同时接收数据与GIVEN或广播地址匹配时有效 模式2 或 3: 对于多机通信. 0 =接收总是有效不管第9位的逻辑电平. 1 =接收仅在第9位为逻辑1和接收数据与GIVEN或广播地址匹配时有效. 4 REN_1 串口1接收使能 0 = 关闭串口1接收功能. 1 = 打开串口1在模式1,2或3模式下的接收功能。 模式0下,打开接收,需满足配置REN_1=1及RI_1=0 3 TB8_1 串口1第9位发送位 串口1在模式2和3中要被发送的第九位数据。在模式0和1中,不支持该功能 2 RB8_1 串口1第9位接收位 串口1在模式2和3中接收到的第九位数据。模式1下,此位是是接收到的停止位逻辑电平。SM2_1 为1时此位无效。模式0下该位无意义 1 TI_1 串口1发送中断标志位 发送中断标志:模式0下该标志在发送完8位数据后由硬件置位,而在其它模式下在发送完帧数据 最后一位后硬件置位。当串口1中断使能,将执行中断服务程序。该位必须由软件来清除。 Feb. 21, 2020 Page 177 of 460 Rev. 1.01 MS51 位 名称 0 RI_1 描述 串口1接收中断标志位 该标志由硬件置位。在模式0中,数据帧接收到第8位;模式1,2或3中,数据帧接收到停止位 (stop bit),当SM2_1=1情况例外。当串口1中断使能,将执行中断服务程序。该位必须由软件来 清除. MS51 系列技术参考手册 Feb. 21, 2020 Page 178 of 460 Rev. 1.01 MS51 PWM0DTEN – PWM 死区使能 寄存器 SFR 地址 复位值 PWM0DTEN F9H, 页 0, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 - - - PWM0DTCNT. 8 - PDT45EN PDT23EN PDT01EN - - - 读/写 - 读/写 读/写 读/写 位 名称 7:5 - 4 描述 保留 PWM0DTCNT.8 PWM0 死区计数器的第 8位 见寄存器 PWM0DTCNT 3 - 2 PDT45EN 保留 PWM0_CH4/ PWM0_CH5 死区使能 此位僅當PWM0_CH4/ PWM0_CH5在互补模式有效。 0 = 无死区 1 = 在 P0G4/P0G5 上沿插入死区时间 1 PDT23EN PWM0_CH2/ PWM0_CH3死区使能 此位僅當PWM0_CH2/ PWM0_CH3在互补模式有效。 MS51 系列技术参考手册 0 =无死区. 1 = 在 P0G2/P0G3上沿插入死区时间. 0 PDT01EN PWM0_CH0/ PWM0_CH1死区使能 此位僅當PWM0_CH0/ PWM0_CH1在互补模式有效。 0 =无死区 1 = 在 P0G0/P0G1上沿插入死区时间 Feb. 21, 2020 Page 179 of 460 Rev. 1.01 MS51 PWM0DTCNT – PWM 死区计数器 寄存器 SFR 地址 复位值 PWM0DTCNT FAH, 页 0, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 PWM0DTCNT[7:0] 读/写 位 7:0 名称 描述 PWM0DTCNT[7:0] PWM0 死区计数器的低字节 此8位与 PWM0DTEN.4组成 PWM0 的9位死区计数器 PWM0DTCNT。仅 PWM0 配置为互补 模式并且 PWM0DTEN 的相关位为1时有效。 PWM0 死区时间 = PDTCNT  1 . FSYS 注意在PWM0计数期间不要改 PWM0DTCNT 的值。 MS51 系列技术参考手册 Feb. 21, 2020 Page 180 of 460 Rev. 1.01 MS51 PWMxMEN – PWMnCx 屏蔽使能, n=0,1,2,3;x=0,1,2,3,4,5 寄存器 SFR 地址 描述 复位值 PWM0MEN FBH, 页 0 PWM0_CHn PWM0Cx 屏蔽使能 0000_0000 b PWM1MEN ADH, 页 2 PWM1_CHn PWM1Cx 屏蔽使能 0000_0000 b PWM2MEN BDH, 页 2 PWM2_CHn PWM2Cx 屏蔽使能 0000_0000 b PWM3MEN CDH, 页 2 PWM3_CHn PWM3Cx 屏蔽使能 0000_0000 b 位 x 7 6 5 4 3 2 1 0 - - PMEN5 PMEN4 PMEN3 PMEN2 PMEN1 PMEN0 - - 读/写 读/写 读/写 读/写 读/写 读/写 名称 PMENx 描述 PWMnCx 屏蔽使能 0 = PWMnCx 信号从PWM发生器输出。 1 = PWMnCx 信号被PMDx屏蔽。 注: PMEN2~5 只能用作 PWM0。 MS51 系列技术参考手册 Feb. 21, 2020 Page 181 of 460 Rev. 1.01 MS51 PWMnMD – PWM屏蔽数据 寄存器 SFR 地址 描述 复位值 PWM0MD FCH, 页 0 PWM0_CHn PWM0Cx 屏蔽数据 0000_0000 b PWM1MD ACH, 页 2 PWM1_CHn PWM1Cx屏蔽数据 0000_0000 b PWM2MD BCH, 页 2 PWM2_CHn PWM2Cx屏蔽数据 0000_0000 b PWM3MD CCH, 页 2 PWM3_CHn PWM3Cx屏蔽数据 0000_0000 b 位 x 7 6 5 4 3 2 1 0 - - PMD5 PMD4 PMD3 PMD2 PMD1 PMD0 - - 读/写 读/写 读/写 读/写 读/写 读/写 名称 PMDx 描述 PWMnCx 屏蔽数据 一旦正确输入PMENx, PWMnCx 输出数据屏蔽。 0 = PWMnCx 信号输出0。 1 = PWMnCx 信号输出 1。 Note: PMD2~5 只能用作 PWM0. MS51 系列技术参考手册 Feb. 21, 2020 Page 182 of 460 Rev. 1.01 MS51 PORDIS – 上电复位禁止 寄存器 SFR 地址 复位值 PORDIS FDH, 页 0, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 PORDIS[7:0] 写 位 名称 7:0 PORDIS[7:0] 描述 上电复位(POR) 禁止 首先写5AH到 PORDIS ,然后在立即写入 A5H,禁止 POR功能。 MS51 系列技术参考手册 Feb. 21, 2020 Page 183 of 460 Rev. 1.01 MS51 EIP1 – 扩展中断优先级 1 寄存器 SFR 地址 复位值 EIP1 FEH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - PPWM3 PPWM2 PPWM1 PWKT PT3 PS_1 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 5 PPWM3 PWM3 中断优先级低位 4 PPWM2 PWM2中断优先级低位 3 PPWM1 PWM1中断优先级低位 2 PWKT 1 PT3 Timer 3中断优先级低位 0 PS_1 串口1中断优先级低位 WKT中断优先级低位 注: EIP1与EIPH1结合使用,以确定每个中断源的优先级。见 表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 184 of 460 Rev. 1.01 MS51 [6] EIPH1 – 扩展中断优先级高位1 寄存器 SFR 地址 复位值 EIPH1 FFH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - PPWM3H PPWM2H PPWM1H PWKTH PT3H PSH_1 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 5 PPWM3H PWM3中断优先级高位 4 PPWM2H PWM2中断优先级高位 3 PPWM1H PWM1中断优先级高位 2 PWKTH 1 PT3H 定时器 3中断优先级高位 0 PSH_1 串口1中断优先级高位 WKT中断优先级高位 注: : EIP1与EIPH1结合使用,以确定每个中断源的优先级。见 表 6.2-4 中断优先级设置 。 MS51 系列技术参考手册 Feb. 21, 2020 Page 185 of 460 Rev. 1.01 MS51 LVRDIS – 低电压检测禁止 寄存器 SFR 地址 复位值 EIPH1 FFH, 页 1, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 LVRDIS[7:0] 写 位 7:0 名称 描述 LVRDIS[7:0] 低电压检测禁止 首先写5AH到LVRDIS,紧接着再写A5H将禁止LVR。 MS51 系列技术参考手册 Feb. 21, 2020 Page 186 of 460 Rev. 1.01 MS51 EIP2 – 扩展中断优先级 2 寄存器 SFR 地址 复位值 EIP2 CEH, Page 2 0000_0000 b 7 6 5 4 3 2 1 0 - - - - - PUART4 PUART3 PUART2 - - - - - 读/写 读/写 读/写 位 名称 描述 2 PUART4 UART4 中断优先级低位 1 PUART3 UART3中断优先级低位 0 PUART2 UART2中断优先级低位 注EIP2与EIPH2结合使用,以确定每个中断源的优先级。见 表 6.2-4 中断优先级设置。 MS51 系列技术参考手册 Feb. 21, 2020 Page 187 of 460 Rev. 1.01 MS51 EIPH2 – 扩展中断优先级高 2 寄存器 SFR 地址 复位值 EIPH2 CFH, Page 2 0000_0000 b 7 6 5 4 3 2 1 0 - - - - - PSC2H PSC1H PSC0H - - - - - 读/写 读/写 读/写 位 名称 描述 2 PSC2H SC2 / UART4 中断优先级高位 1 PSC1H SC1 / UART3中断优先级高位 0 PSC0H SC0 / UART2中断优先级高位 注: : EIP2与EIPH2结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 188 of 460 Rev. 1.01 MS51 PIPSn – 引脚中断控制 寄存器 SFR 地址 复位值 PIPS7 F7H, 页 2 0000_0000 b PIPS6 FFH, 页 2 0000_0000 b PIPS5 FEH, 页 2 0000_0000 b PIPS4 FDH, 页 2 0000_0000 b PIPS3 FCH, 页 2 0000_0000 b PIPS2 FBH, 页 2 0000_0000 b PIPS1 FAH, 页 2 0000_0000 b PIPS0 F9H, 页 2 0000_0000 b 7 6 5 4 3 2 1 - PSEL[2:0] - BSEL[2:0] - 读/写 - 读/写 位 名称 6:4 PSEL[2:0] 0 描述 引脚中断通道端口选择 000 = P0 端口. 001 = P1端口. 010 = P2端口. 011 = P3端口. MS51 系列技术参考手册 100 = 保留. 101 = 保留. 110 = 保留. 111 = 保留. 2:0 BSEL[2:0] 引脚中断通道选择 000 = Pn.0. 001 = Pn.1 010 =.Pn.2 011 = Pn.3. 100 = Pn.4. 101 = Pn.5. 110 = Pn.6. 111 = Pn.7. n 是端口号, 在PSEL[2:0]里选择. Feb. 21, 2020 Page 189 of 460 Rev. 1.01 MS51 SCnCR0 – 智能卡控制寄存器 0 寄存器 SFR 地址 复位值 SC0CR0 F1H, 页 2 0000_0000 b SC1CR0 F3H, 页 2 0000_0000 b SC2CR0 F5H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 NSB T RXBGTEN CONSEL AUTOCEN TXOFF RXOFF SCEN 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 NSB 描述 停止位长度 这一位指定停止位长度. 0 = 停止位长度是 2 ETU. 1= 停止位长度是 1 ETU. 注意: 默认的停止位长度是 2. SC 和 UART 都采用NSB设置停止位长度. 6 T T 模式 0 = T0 (ISO 7816-3 T = 0 模式). 1 = T1 (ISO 7816-3 T = 1 模式). T 模式控制(快保护时间). 块保护时间是在不同传输方向之间的两个连续字符的第一位边缘之间的最 短位长度。该域表示用于块保护时间的计数器。依据 ISO7816-3,在 T=0 的模式下,软件必须填 充该域为 15 (实际的块保护时间=16.5),在 T=1 的模式下,软件必须填充该域位 21 (实际的块 保护时间为 22.5)。 MS51 系列技术参考手册 注意:在 T = 0模式,接收端会产生奇偶校验标志PEF(SC0TSR[4]),如果检测到奇偶检验错误会产生 奇偶校验错误信号给发送端。 在 T = 1 模式, 接收端会产生奇偶校验标志 PEF(SC0TSR[4]), 如果检 测到奇偶检验错误却不会产生奇偶校验错误信号给发送端。 注意: 参见 6.10.5 5 RXBGTEN 接收块保护时间功能使能位 0 = 接收块保护时间功能禁止. 1 = 接收块保护时间功能使能. 4 CONSEL 约定选择 0 = 正向直接约定. 1 = 反向约定. 注意 1:如果 AUTOCEN(SCnCR0[3]) 写 “ ”,此位自动清0 注意 2: 如果 AUTOCEN(SCnCR0[3]) 使能, 硬件决定约定选择,在SCEN (SCnCR0[0]) 为1后自动 改变CONSEL (SCnCR0[4]) 的值 Feb. 21, 2020 Page 190 of 460 Rev. 1.01 MS51 位 名称 3 AUTOCEN 描述 自动约定使能位 0 = 禁止自动约定. 1 = 自动约定使能。当硬件ATR状态时接收到TS ,当 TS是正向直接约定, CONSEL(SCnCR0[4]) 会 自动写 0 ,相反当TS 是反向约定, CONSEL (SCnCR0[4]) 写1. 注意:如果程序使能自动约定功能, 在ATR状态之前设置应该完成,且第一笔数据必须是0x3B或 0x3F. 当硬件接收到第一笔数据到缓存里,硬件会自动决定约定,并改变CONSEL (SCnCR0[4]) 位 2 TXOFF TX 发送禁止位 0 =发送端使能. 1 = 发送端禁止 1 RXOFF RX 接收端禁止位 0 =接收端使能 1 = 接收端禁止 注意:如果AUTOCEN (SCnCR0[3])使能,这一位忽略. 0 SCEN 智能卡引擎使能位 设置此位为1 t使能智能卡操作。如果这一位清0,智能卡会强迫所有传输进入空闲态. 注意: SCEN 必须在写其他智能卡寄存器之前置1,不然ISO 7816-3 会工作不正常 MS51 系列技术参考手册 Feb. 21, 2020 Page 191 of 460 Rev. 1.01 MS51 SCnCR1 – 智能卡控制寄存器 寄存器 SFR 地址 复位值 SC0CR1 F2H, 页 2 0000_0000 b SC1CR1 F4H, 页 2 0000_0000 b SC2CR1 F6H, 页Page 2 0000_0000 b 7 6 OPE PBOFF 读/写 读/写 位 名称 7 OPE 5 4 3 2 1 0 WLS TXDMAEN RXDMAEN CLKKEEP UARTEN 读/写 读/写 读/写 读/写 读/写 描述 奇检验使能位t 0 = 发送偶数个逻辑1或接收到相应的奇偶校验位. 1 =发送奇数个逻辑1或接收到相应的奇偶校验位. 注意: 此位只在 PBOFF 位为 ‘ ’时有效 6 PBOFF 奇偶校验禁止控制 0 = 在最后一位数据和停止位之间插入奇偶校验位或检测奇偶检验位。 1 = 发送时不产生奇偶校验位,接收时不检测奇偶校验位 注意: ISO 7816-3 模式下,这一位要设为 ‘ ’ (默认值) 5:4 WLS 数据位数选择 00 = 数据位数 8 bits. MS51 系列技术参考手册 01 = 数据位数 7 bits. 10 = 数据位数 6 bits. 11 = 数据位数 5 bits. 注意: ISO 7816-3 模式下WLS 要是 ‘ 3 TXDMAEN ’ SC/UART 发送 DMA 使能 这一位使能 SC/UART 发送 PDMA 传输功能, 在SC/UART 开始前发送数据需要在 XRAM 里准备好 0 = SC/UART 发送 DMA禁止 1 = SC/UART 发送 DMA使能 2 RXDMAEN SC/UART 接收 DMA 使能 这一位使能 SC/UART通过 PDMA 接收数据, SC/UART 接收到数据后自动存入 XRAM 0 = SC/UART 接收DMA 禁止 1 = SC/UART 接收 DMA 使能 1 CLKKEEP 智能卡 时钟使能位 0 = 禁止智能卡时钟. 1 = 产生智能卡时钟. Feb. 21, 2020 Page 192 of 460 Rev. 1.01 MS51 位 名称 0 UARTEN 描述 UART 模式使能位 0 = ISO 7816-3 模式. 1 = UART 模式. 注意1:当工作在 UART模式,用户需要设置CONSEL (SCnCR0[4]) = 0 且 AUTOCEN(SCnCR0[3]) = 0. 注意 2:当工作在 ISO 7816-3 模式, 用户需要设置 UARTEN(SCnCR1 [0]) = 0. 注意 3:当 UART 使能后, 硬件会复位FIFO和内部状态机 MS51 系列技术参考手册 Feb. 21, 2020 Page 193 of 460 Rev. 1.01 MS51 SCnDR – 智能卡数据寄存器 寄存器 SFR 地址 复位值 SC0DR D9H, 页 2 0000_0000 b SC1DR E1H, 页 2 0000_0000 b SC2DR E9H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 SCnDR[7:0] 读/写 位 名称 7:0 SCnDR[7:0] 描述 SC / UART 缓存数据 这个字节用来缓存SC / UART 总线的收发数据。写这个寄存器会写到移位寄存器,读这个寄存 器会读到接收缓存的数据。 注意: 如果SCEN(SCnCR0[0])没有使能, SCnDR 不可修改. MS51 系列技术参考手册 Feb. 21, 2020 Page 194 of 460 Rev. 1.01 MS51 SCnEGT – 智能卡额外擴展保护时间寄存器 寄存器 SFR 地址 复位值 SC0EGT DAH, 页 2 0000_0000 b SC1EGT E2H, 页 2 0000_0000 b SC2EGT EAH, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 SCnEGT[7:0] 读/写 位 名称 7:0 SCnEGT[7:0] 描述 智能卡额外擴展保护时间 这里指定额外擴展保护时间的值 注意: 计数器单位时 ETU . MS51 系列技术参考手册 Feb. 21, 2020 Page 195 of 460 Rev. 1.01 MS51 SCnETURD0 –智能卡ETU 除频寄存器 寄存器 SFR 地址 复位值 SC0ETURD0 DBH, Page 2 0111_0011 b SC1ETURD0 E3H, Page 2 0111_0011 b SC2ETURD0 EBH, Page 2 0111_0011 b 7 6 5 4 3 2 1 0 ETURDIV[7:0] 读/写 位 名称 7:0 ETURDIV[7:0] 描述 ETU 除频寄存器的低位 实际的ETU 是 ETURDIV[11:0] + 1. 注 1: ETURDIV[11:0]必须大于 0x004. 注 2: SCnETURD0 必须首先配置,然后是 SCnETUDR2. MS51 系列技术参考手册 Feb. 21, 2020 Page 196 of 460 Rev. 1.01 MS51 SCnETURD1 –智能卡ETU除频寄存器 寄存器 SFR 地址 复位值 SC0ETURD1 DCH, 页 2 0011_0001 b SC1ETURD1 E4H, 页 2 0011_0001 b SC2ETURD1 ECH, 页 2 0011_0001 b 7 6 5 4 3 2 1 - SCDIV[2:0] ETURDIV[11:8] - 读/写 读/写 位 名称 7 - 6:4 SCDIV [2:0] 0 描述 保留 智能卡时钟除频 000 = FSC 是 FSYS/1. 001 = FSC 是 FSYS/2. 010 = FSC 是 FSYS/4. 011 = FSC 是 FSYS/8. (默认.) 100 = FSC 是 FSYS/16. 101 = FSC 是 FSYS/16. 110 = FSC 是 FSYS/16. 111 = FSC 是 FSYS/16. 3:0 ETURDIV [11:8] MS51 系列技术参考手册 注: 依照 ISO/IEC 7816-3 FSC 时钟需要在 1Mhz ~ 5Mhz ETU 除频寄存器的高位 这一位指定除频寄存器的高位. ETU 实际是 ETURDIV[11:0] + 1. 注 1: ETURDIV[11:0] 需要大于 0x004. 注 2: SCnETURD0 需要首先配置, 然后是 SCnETUDR1 . Feb. 21, 2020 Page 197 of 460 Rev. 1.01 MS51 ScnIE –智能卡中断使能控制寄存器 寄存器 SFR 地址 复位值 SC0IE DDH, 页 2 0000_0000 b SC1IE E5H, 页 2 0000_0000 b SC2IE EDH, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 - - - ACERRIEN BGTIEN TERRIEN TBEIEN RDAIEN - - - 读/写 读/写 读/写 读/写 读/写 位 名称 7:4 - 4 ACERRIEN 描述 保留 自动约定错误中断使能位 这里使能自动约定错误中断 0 = 禁止自动约定错误中断 1 = 使能自动约定错误中断 3 BGTIEN 块保护时间中断使能位 这里使能快保护时间中断 0 = 禁止快保护时间中断 1 = 使能块保护时间中断 MS51 系列技术参考手册 2 TERRIEN 传输错误中断使能位 这里使能传输错误中断。传输错误状态在 SC0TSR 寄存器,包含接收暂停错误 BEF(SC0TSR[6]), 帧错误 FEF(SC0TSR[5]), 奇偶校验错误 PEF(SC0TSR[4]), 接收缓存溢出错误 RXOV(SC0TSR[0]) 和发送缓存溢出错误 TXOV(SC0TSR[2]). 0 = 禁止传输错误中断 1 = 使能传输错误中断. 1 TBEIEN 发送缓存為空中断使能位 这里使能发送缓存空中断 0 = 禁止发送缓存空中断 1 = 使能发送缓存空中断 0 RDAIEN 接收数据到达中断使能位 这里使能接收数据中断 0 = 禁止接收数据中断 1 = 使能接收数据中断. Feb. 21, 2020 Page 198 of 460 Rev. 1.01 MS51 ScnIS – 智能卡中断状态寄存器 寄存器 SFR 地址 复位值 SC0IS DEH, 页 2 0000_0010 b SC1IS E6H, 页 2 0000_0010 b SC2IS EEH, 页 2 0000_0010 b 7 6 5 4 3 2 1 0 - - - ACERRIF BGTIF TERRIF TBEIF RDAIF - - - 读/写 读/写 只读 只读 只读 位 名称 7:5 - 4 ACERRIF 描述 保留 自动约定错误中断状态标志(只读) 这里指示自动约定序列错误。如果在ATR状态接收到TS不是0x3B 或 0x3F, 这一位置位. 注意: 此位只读,写0清0 3 BGTIF 块保护时间中断状态标志(只读) 这里指示块保护时间状态标志 注意 1: 这一位当RXBGTEN (SCnCR0[5]) 使能时有效. 注意 2: 此位只读,写0清0. 2 TERRIF 传输错误中断状态标志(只读) 注意: 这一位时 BEF(SC0TSR[6]), FEF(SC0TSR[5]), PEF(SC0TSR[4]), RXOV(SC0TSR[0]) 和 TXOV(SC0TSR[2])的状态标志,所以如果软件想要清除这一位,需要对这些位都写0 1 TBEIF 发送缓存空中断状态标志(只读) 这里用作发送缓存空中断状态标志 注意: 这里用作发送缓存空中断状态标志,如果软件想清除这一位,软件需要向.DAT(SCnDR[7:0]) 缓存写入数据,这一位会自动清0 0 RDAIF 接收数据到达中断状态标志(只读) 这里用作接收数据中断状态标志 注意: 这里是接收数据状态标志。如果软件从SC_DAT 管脚读取数据,此位自动清除 Feb. 21, 2020 Page 199 of 460 Rev. 1.01 MS51 系列技术参考手册 这 里 用 作 传 输 错 误 中 断 标 志 , 传 输 错 误 状 态 在 SC0TSR 寄 存 器 , 包 含 接 收 暂 停 错 误 BEF(SC0TSR[6]), 帧错误 FEF(SC0TSR[5]), 奇偶校验错误 PEF(SC0TSR[4]), 接收缓存溢出错误 RXOV(SC0TSR[0]) 和发送缓存溢出错误 TXOV(SC0TSR[2]). MS51 SCnTSR – 智能卡传输状态寄存器 寄存器 SFR 地址 复位值 SC0TSR DFH, 页 2 0000_1010 b SC1TSR E7H, 页 2 0000_1010 b SC2TSR EFH, 页 2 0000_1010 b 7 6 5 4 3 2 1 0 ACT BEF FEF PEF TXEMPTY TXOV RXEMPTY RXOV 只读 读/写 读/写 读/写 只读 读/写 只读 读/写 位 名称 7 ACT 描述 发送接收忙碌状态标志(只读) 0 = 此位在发送接收完成后自动清0 1 = 当发送接收传输正在进行时此位由硬件置1 6 BEF 接收间断错误状态标志(只读) 此位在输入数据管脚上由超过一个完整的字长时间内保持为空闲态(逻辑0),完整字长时开始位加 数据位,奇偶校验位和停止位. 注意: 此位只读,写0清0. 5 FET 接收帧错误状态标志(只读) 当接收字符没有有效的停止位时此位置1。(在最后一笔数据位或奇偶校验位后检测到逻辑0) 注意: 此位只读,写1清0. MS51 系列技术参考手册 4 PEF 接收奇偶校验错误状态标志(只读) 当接收到的字符没有有效的奇偶校验位时置1 注意: 此位只读,写0清0. 3 TXEMPTY 发送缓存空状态标志(只读) 此位指示发送缓存是否为空 注意: 当发送缓存的数据传输到发送移位寄存器时此位置1,当写数据到DAT(SCnDR[7:0])后清0 (发 送缓存非空). 2 TXOVF 发送溢出错误状态标志(只读) 如果发送缓存已满,再写入数据到DAT(SCnDR[7:0]) 硬件会让此位置1。 注意: 此位只读,写0清0. 1 RXEMPTY 接收缓存空状态标志(只读) 此位指示jies后缓存是否为空 注意: 当接收缓存的数据被CPU读取之后,硬件会把此位置1,当智能卡接收到新的数据后此位清0 Feb. 21, 2020 Page 200 of 460 Rev. 1.01 MS51 位 名称 0 RXOV 描述 接收缓存溢出错误状态标志(只读) 此位当接收缓存溢出时置1。 注意: 此位只读,写0清0 MS51 系列技术参考手册 Feb. 21, 2020 Page 201 of 460 Rev. 1.01 MS51 XTLCON – XLT 时钟控制 (TA 保护) 寄存器 SFR 地址 复位值 XTLCON D7H, 页 2 0111_0111 b 7 6 5 4 3 2 1 0 - HXSG - - - - - 读/写 - - - - 位 名称 7 - 6:4 HXSG 描述 保留 HXT 增益值选择 000 = L0 模式 (最小值) 001 = L1模式 010 = L2模式 011 = L3模式 100 = L4模式 101 = L5模式 110 = L6模式 111 = L7模式(最大值) 3:0 - 保留 MS51 系列技术参考手册 Feb. 21, 2020 Page 202 of 460 Rev. 1.01 MS51 PnDW – 端口 n 下拉电阻控制 寄存器 SFR 地址 复位值 P0DW 9AH, 页 2 0000_0000 b P1DW 9BH, 页 2 0000_0000 b P2DW 9CH, 页 2 0000_0000 b P3DW 9DH, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 PnDW.7 PnDW.6 PnDW.5 PnDW.4 PnDW.3 PnDW.2 PnDW.1 PnDW.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnDW.x 描述 Pn.x 下拉电阻使能 0 = Pn.x 下拉禁止. 1 = Pn.x 下拉使能. MS51 系列技术参考手册 Feb. 21, 2020 Page 203 of 460 Rev. 1.01 MS51 PnUP – 端口 n 上拉电阻控制 寄存器 SFR 地址 复位值 P0UP 92H, 页 2 0000_0000 b P1UP 93H, 页 2 0000_0000 b P2UP 94H, 页 2 0000_0000 b P3UP 95H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 PnUP.7 PnUP.6 PnUP.5 PnUP.4 PnUP.3 PnUP.2 PnUP.1 PnUP.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnUP.x 描述 Pn.x 上拉使能 0 = Pn.x 上拉禁止. 1 = Pn.x 上拉使能. MS51 系列技术参考手册 Feb. 21, 2020 Page 204 of 460 Rev. 1.01 MS51 6.2 系统管理 6.2.1 时钟系统 6.2.1.1 概述 MS51有多种时钟源可供选择,这样在应用中可以使系统性能发挥到最佳,并且功耗降到最低。软件3种 系统时钟源可选择, 包括内部振荡器和XIN引脚的外部时钟在内的。 MS51内嵌2个内部RC振荡器一个10 kHz低速、一个16 MHz或24 MHz高速振荡器,高速误差在出厂时校准到±2%(全温度、全电压范围内 )。 CKDIV除频器可以调整MS51功耗与性能。 FECLK 4~24 MHz Oscillating Circuit XOUT(P01) XIN(P00) 10 FHXT 11 OSCIN(P30) 16/24 MHz Internal [1] Oscillator 10 kHz Internal Oscillator Flash Memory 01 FHIRC EXTEN[1:0] (CKEN[7:6]) 10 01 Clock Filter FOSC Clock FSYS Divider CPU 00 CKDIV OSC[1:0] (CKSWT[2:1]) FLIRC Peripherals Watchdog Timer CLOEN CLO pin (P33 or P11) Self Wake-up Timer [1] Default system clock source after power-on 6.2.1.2 系统时钟源 MS51有3种时钟源: 内部高低速振荡器和外部输入时钟。 每个都可以作为MS51的系统时钟源。开启不 同的时钟源可能会影响到多功能引脚P0.0/ XIN 。 6.2.1.3 内部振荡器 MS51内部有高低速两个RC振荡器,高速16MHz或24MHz(由HIRC24(RCTRIM1.4)位选择),低速10 kHz( LIRC)。它们都可被选作系统时钟。通过设置HIRCEN(CKEN.5)位使能HIRC,设备上电时LIRC 被使能。用户可设置OSC[1:0] (CKSWT [2:1])为[0,0]选择HIRC作为系统时钟,设置OSC[1:0](CKSWT [1:0])为[1,0]选择LIRC作为系统时钟。注意: MS51上电后HIRC和 LIRC都被使能,并且系统默认HIRC 为系统时钟。当系统使用内部振荡器作为时钟源时,Xin自动作为普通I/O P0.0, P0M1和P0M2定义 P0.0的输出模式。 有9位数据可更改HIRC频率,每更改一个位的数值,大约更改HIRC频率大约40kHz,值加1,HIRC频率 变慢40KHz,更改HIRC频率的寄存器如下: Feb. 21, 2020 Page 205 of 460 Rev. 1.01 MS51 系列技术参考手册 图 6.2-1 时钟系统框图 MS51 RCTRIM0 –高速内部振荡器16 MHz 调整值 0 寄存器 SFR地址 复位值 RCTRIM0 84H, 页0, TA保护 0000_0000b 7 6 5 4 3 2 1 0 HIRCTRIM[8:1] 读/写 MS51 系列技术参考手册 Feb. 21, 2020 Page 206 of 460 Rev. 1.01 MS51 RCTRIM1 –高速内部振荡器16 MHz 调整值1 寄存器 SFR地址 复位值 RCTRIM1 85H, All pages,页0, TA 保护 0000_0000b 7 6 5 4 3 2 1 0 - - - HIRC24 - - - HIRCTRIM.0 - - - 读/写 - - - 读/写 注 意 : 由 于 RCTRIM0 和 RCTRIM1 的 默 认 值 是 基 于 16MHz 的 , 如 果 基 于 这 个 值 , 那 么 修 改 HIRC24(RCTIM1.4)使能24MHz的HIRC模式,那么真实的HIRC偏差将超过1%。建议从UID重新加载 24MHz的HIRC值,并检查第4位的值,确认该值是否适合24MHz的应用。 6.2.1.4 外部晶振 /谐振器或时钟输入 外部时钟源有三种—4MHz至24MHz高速晶体/谐振器( HXT),和XIN引脚的外部时钟输入( ECLK) 。用户可以将OSC[21:0]设置为[0,1,x]然後設定EXTEN[1:0] (CKEN[7:6])去选择外部時鐘源ECLK为系统 时钟。通过設定EXTEN[1:0] as [0,1]OSC[21:0]设为[1,10,0],将选择HXT为系统时钟。用戶可以設定 EXTEN [1:0]为[1,1], 將选择ECLK作为系统时钟,选择P3.0作為外部时钟输入源。 或設定EXTEN [1:0] 為[1,0], 選擇 P0.0作為外部时钟输入源。 .当使用HXT作为系统时钟时, XIN和XOUT分别是内部反相放大器的输入和输出,晶体或谐振器应连接在 XIN 和 XOUT引脚之间。 当启用和选择ECLK作为系统时钟源时,系统时钟通过Xin引脚提供, 常見的應用是有源晶振或其他主機 設備提供時脈。请注意,在选择ECLK模式时,用户不应该向XIN馈送任何大于电压2.4V的时钟信号,并 向XOUT管脚提供值为XIN的一半的直流电压。否则,可能会损坏设备。 MS51 系列技术参考手册 Feb. 21, 2020 Page 207 of 460 Rev. 1.01 MS51 XTLCON – XLT 时钟控制 (TA 保护) 寄存器 SFR地址 复位值 XTLCON D7H, 页 2 0111_0111 b 7 6 5 4 3 2 1 0 - HXSG - - - - - 读/写 - - - - 位 名称 7 - 6:4 HXSG 描述 保留 HXT 增益值选择 000 = L0 模式 (最小值) 001 = L1模式 010 = L2模式 011 = L3模式 100 = L4模式 101 = L5模式 110 = L6模式 111 = L7模式(最大值) 3:0 MS51 系列技术参考手册 6.2.1.5 - 保留 系统时钟切换 MS51 可以通过软件设置寄存器CKSWT 和 CKEN切换时钟源。这给应用带来了很大方便。注意,这些 寄存器受TA保护。时钟源可以在外部时钟、内部时钟、内部高速与低速甚至内部高速与低速之间自由的 切换。在切换前,必须确保待使用时钟源已稳定。因此,用户要遵循以下设置步骤:用户需要遵循以下 设置步骤才能成功完成时钟源切换。首先配置CKEN寄存器打开目标时钟源,再查询CKSWT寄存器中 对应的标志位,确定时钟源已稳定,然后写OSC[1:0](CKSWT[2:1])切换到目标时钟源。这些步骤过后 ,将会成功的切换时钟源。若用户关心功耗,可将原时钟源关闭。如不遵守以上步骤,硬件将会采取以 下一些措施来应对这些违规的操作 1. 若用户试图改变CKEN的值来关闭当前时钟源,操作将被忽略。系统时钟保持不变并且CKEN保 持原值。 2. 若用户试图改变OSC[1:0] 的值来切换系统时钟而待切换新时钟源未被打开,则OSC[1:0]值立即 更新,但系统时钟将保持原来的时钟,CKSWTF标志将由硬件设置。 3. 一旦用户将系统时钟源切换到不稳定的时钟,硬件将等待其稳定。在此等待期间,设备将以原 有时钟源继续执行程序,CKSWTF设置为1。目标时钟源稳定后,标志位(见CKSWT[7:3])被置 位,时钟源切换成功后, CKSWTF会被硬件自动清0。 Feb. 21, 2020 Page 208 of 460 Rev. 1.01 MS51 CKSWT – 时钟切换 寄存器 SFR地址 复位值 CKSWT 96H, 页 0, TA 保护 0011_0000 b 7 6 5 4 3 HXTST ECKP00ST HIRCST LIRCST ECKP30ST OSC[1:0] - 只读 只读 只读 只读 只读 只写 - 位 名称 7 HXTST 2 1 0 描述 高速外部晶振 4 MHz 至 24 MHz 状态 0 = 高速外部晶振不稳定或禁用 1 = 高速外部晶振已使能且稳定 6 ECKP00ST 外部时钟P00的输入状态 0 = 外部时钟P00输入不稳定或被禁用 1 =外部时钟P00输入已使能且稳定 5 HIRCST 高速内部振荡器状态 0 = 高速内部振荡器不稳定或被禁用 1 =高速内部振荡器已使能且稳定 - - 3 ECKP30ST 保留 外部时钟P30的输入状态 MS51 系列技术参考手册 0 = 外部时钟P30输入不稳定或被禁用 1 =外部时钟P30输入已使能且稳定 2:1 OSC[1:0] 振荡器选择位 该位是用来选择系统时钟源 00 = 内部16MHz振荡器 01 = 外部时钟控制,通过EXTEN[1:0] (CKEN[7:6]) 设置 10 = 内部10kHz振荡器 11 = 保留 注意该位段只写,读回来的值可能与当前时钟源不一致 Feb. 21, 2020 Page 209 of 460 Rev. 1.01 MS51 CKEN – 时钟使能 寄存器 SFR地址 复位值 CKSWT 97H, 页 0, TA 保护 0011_0000 b 7 6 5 4 3 2 1 0 EXTEN[1:0] HIRCEN LIRCEN - - - CKSWTF 读/写 读/写 读/写 - - - 只读 位 名称 7:6 EXTEN[1:0] 描述 外部时钟源使能 11 =外部时钟输入通过OSCIN (P30)使能 10 =外部时钟输入通过HXTIN (P00)使能 01 = 外部晶振 4~24 MHz 使能 00 = 禁用外部时钟输入。 P30/P00/P01 作为普通 I/O或其它功能使用 5 HIRCEN 高速内部振荡器16MHz使能 0 = 高速内部振荡器禁用 1 = 高速内部振荡器使能 注意一旦设置IAPEN (CHPCON.0)位开启IAP功能, HIRC将会自动使能,硬件也会设置HIRCEN 和HIRCST位。 IAPEN被清除后, HIRCEN和EHRCST位会恢复为原始值。 4 LIRCEN 内部低速振荡器 10kHz 使能 0 = 内部低速振荡器禁用 1 = 内部低速振荡器使能 MS51 系列技术参考手册 注意当启用(1)WDT使能, (2)WKT的时钟源是内部10kHz振荡器才能运行(3)BOD启用,或 (4)LVR滤波器启用时,对LIRCEN写0将被忽略。 LIRCEN总是1,内部10 kHz振荡器总是启用。 3:1 - 0 CKSWTF 保留位 时钟切换错误标志位 0 =系统时钟源切换成功 1 = 先前用户试图切换系统时钟的时钟源,没有开启或不稳定。如果待切换的时 钟源不稳定,该位将一直保持为1,直到时钟源稳定并切换成功为止 6.2.1.6 系统时钟除频 振荡频率(FOSC)通过配置除频寄存器CKDIV,整数倍(最大到1/510)除频后,再供给系统作为系统时钟 (FSYS)。这一特征可以临时让MCU跑在很低的速度下来降低功耗。通过时钟除频,MCU可以通过以较低 的速率执行其正常的程序来保留响应那些可能导致中断的事件(即允许退出空闲模式的事件)之外的事件 的能力。这有可能比空闲模式还要省电。这样,可以避免掉电模式情况下,需要等待振荡器重新起振的 时间。在不中断代码执行情况下,CKDIV的值可以在任何时间被程序改变。 Feb. 21, 2020 Page 210 of 460 Rev. 1.01 MS51 CKDIV – 时钟除频器 寄存器 SFR地址 复位值 CKDIV 95H, 页0 0000_0000b 7 6 5 4 3 2 1 0 CKDIV[7:0] 读/写 位 名称 7:0 CKDIV[7:0] 描述 时钟除频器 根据CKDIV值,系统时钟频率FSYS如下式所示 当 CKDIV = 00H时, FSYS = FOSC 当 CKDIV = 01H 至 FFH时, 6.2.1.7 FSYS = FOSC 2 × CKDIV , 系统时钟输出 MS51提供一个CLO管脚可以输出系统时钟,该频率与FSYS频率相同。通过设置 CLOEN(CKCON.1)位 打开这个功能。在掉电模式下CLO输出会停止,因为系统时钟已被关闭。注意当有干扰问题或是功耗问 题时,用户最好关闭CLO输出。 MS51 系列技术参考手册 Feb. 21, 2020 Page 211 of 460 Rev. 1.01 MS51 CKCON – 时钟控制 寄存器 SFR地址 复位值 CKCON 8EH, 页0 0000_0000b 7 6 5 4 3 2 1 - PWMCKS - T1M T0M - CLOEN - 读/写 - 读/写 读/写 - 读/写 位 名称 1 CLOEN 0 - 描述 系统时钟输出使能 0 = 系统时钟输出禁止 1 = 系统时钟输出使能,从CLO管脚输出 注: CLO管脚取决于AUXR5.7 6.2.2 电源管理 6.2.2.1 概述 MS51有几种工作模式可以帮助用户控制设备功耗,省电模式有兩種模式包括掉电模式和空闲模式, 用以 節省功耗。控制设备功耗,必须处理好每个引脚的模式和状态。每个引脚状态需要外部上、下拉一致, 比如上拉就要输出1,下拉就要输出0。如果引脚是悬浮的,建议用户配置端口为准双向模式。如果P2.0 配置为输入引脚,必须外接上拉或下拉电阻或通过设置P20UP (P2UP.0)内部上拉 PCON – 电源控制 MS51 系列技术参考手册 寄存器 SFR地址 PCON 87H, 所有页 复位值 POR: 0001_0000b 其它: 000U _0000b 7 6 5 4 3 2 1 0 SMOD SMOD0 - POF GF1 GF0 PD IDL 读/写 读/写 - 读/写 读/写 读/写 读/写 读/写 位 名称 1 PD 描述 掉电模式 设置该位使MCU进入掉电模式。在此模式下, CPU和外设时钟停止,程序计数器( PC)挂起,此 时系统为最小功耗模式。 CPU从掉电模式下唤醒后,该位自动由硬件清零,且程序继续执行唤醒系 统的中断源对应的中断服务程序ISR。从ISR返回后,设备从让系统进入掉电模式的指令后续指令继 续执行 注:如果IDL位和PD位同时置位, MCU进入掉电模式。从掉电模式退出后不会进入空闲模式。 Feb. 21, 2020 Page 212 of 460 Rev. 1.01 MS51 位 名称 0 IDL 描述 空闲模式 设置该位使MCU进入空闲模式。在此模式下, CPU时钟停止,且程序计数器( PC)挂起,但是所 有外设继续工作。 CPU从空闲模式唤醒后,该位自动由硬件清零,且程序继续执行唤醒系统的中断 源对应的中断服务程序ISR。 从ISR返回后,设备从让系统进入空闲模式的指令后续指令继续执行 6.2.2.2 空闲模式 空闲模式下通过保持程序计数器使CPU挂起。在空闲模式下没有程序代码的取址指和运行,这迫使CPU 处于待机状态。程序计数器(PC),堆栈指针(SP),程序状态字(PSW),累加器(ACC)和其他寄存器在空 闲模式下保持其值不变。端口引脚保持原有状态,在空闲模式下继续工作。通常空闲模式下的功耗约为 工作状态下的一半。 既然在空闲模式下,外设电路,如定时器和串口仍然工作,则可以通过使能相应中断源来唤醒CPU。用 户能通过向IDL (PCON.0)位写1,使设备进入空闲模式。这条指令是系统进入空闲模式前的最后一条指 令。 有两种方法可以中止空闲模式,方法一、任何使能的中断发生都可以使系统退出空闲模式。中断发生自 动清零IDL位,中止空闲模式,且将执行中断源对应的中断服务程序(ISR),直到执行RETI返指令,退出 中断后继续从让CPU进入空闲模式的指令后续指令执行。 第二种方法是除软件复位外的所有复位,如 果看门狗复位用来中止空闲模式, WIDPD (WDCON.4)需要设置为1,让WDT在空闲模式下继续运行。 6.2.2.3 掉电模式 掉电模式是MS51进入最低功耗状态的工作模式,通过停止系统时钟源保持功耗在“微安” 级。 CPU和 外设,如定时器或UART都待机, Flash 内存也停止,所有动作完全停止,功耗降到最低。可以通过向 PD(PCON.1)写1进入掉电模式。这条指令是系统进入掉电模式前的最后一条指令。在掉电模式下, RAM保存其内容,端口引脚的值也保持掉电模式前的不变。 方法二,可以通过外部中断使MS51从掉电模式唤醒。触发外部中断管脚会重启系统时钟,在振荡器稳 定后,设备执行外部中断对应的中断服务程序( ISR)。 从ISR返回后,设备立即执行使系统进入掉电 模式的指令接下来的指令。 可以将芯片从掉电模式唤醒的中断有:外部中断̅̅̅̅̅̅̅ 和 ̅̅̅̅̅̅̅、引脚中断、 WDT中断、 WTK中断和欠压中断。 6.2.3 电源监控與复位 6.2.3.1 概述 为防止上电和掉电时,程序执行异常, MS51提供2种电源监控功能,上电复位检测,欠压检测。 MS51的复位条件有几中类型。 通过寄存器标志位可以确定复位源。通常,大部分特殊功能寄存器复位 后的值与复位条件无关,但是一些复位源的标志位的状态取决于复位源.有6种方法使芯片进入复位状态 。 他们是上电复位、欠压复位、外部复位、硬件故障复位,、看门狗定时器复位以及软件复位。 6.2.3.2 上电检测(POR)與低電压复位 (LVR) MS51包含内部上电复位(POR)和低電压复位(LVR)。上电检测功能,用于检测电源上升到系统可 以工作的电压。在上电过程中,当VDD低于参考电压门限值,上电复位将保持CPU为复位模式。这种设 计使CPU在VDD 不满足执行读取存储器时,不访问程序存储器空间。如果从程序存储器读取并执行一 Feb. 21, 2020 Page 213 of 460 Rev. 1.01 MS51 系列技术参考手册 MS51有多种方法可以退出掉电模式。方法一,除软件复位外的所有复位。欠压检测复位也能使CPU从 掉电模式唤醒,在系统进入掉电模式之前要确保使能欠压检测。即使为了降低功耗,我们还是建议在掉 电模式下开启低功耗BOD欠压检测功能。当然外部引脚复位或上电复位也可以使CPU退出掉电模式。外 部引脚复位或上电复位后, CPU初始化并从程序开始地址执行程序。 MS51 个不确定的操作码,可能会使CPU甚至是整个系统进入错误状态。VDD 上升到参考门限电压以上,系 统工作,所选的振荡器起振,程序从0000H开始执行。同时,上电检测后, POF (PCON.4) 将置1,标 志为冷复位,上电复位完成。 POF标志可由软件清零。上电后,内部RAM的内容不确定。建议用户初 始化RAM。 建议通过软件清除POF为0,以检测在下一次复位是冷复位还是热复位。如果是由掉电或上电引起的冷 复位,POF 将再次置1。如果是由其他复位源引起的热复位,POF将保持为0。用户可以检测复位标志 位,处理热复位事件。 PCON – 电源控制 寄存器 SFR地址 PCON 87H, 所有页 复位值 POR: 0001_0000b 其它: 000U _0000b 7 6 5 4 3 2 1 0 SMOD SMOD0 LPR POF GF1 GF0 PD IDL 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 4 POF 描述 上电复位标志 当上电后该位置1,用来标志当前是冷复位,上电复位完成。其它任何复位不会影响该位,建议通过 软件清 MS51 系列技术参考手册 Feb. 21, 2020 Page 214 of 460 Rev. 1.01 MS51 PORDIS – 上电复位禁止 寄存器 SFR 地址 复位值 PORDIS FDH, 页 0, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 PORDIS[7:0] 写 位 名称 7:0 PORDIS[7:0] 描述 上电复位(POR) 禁止 首先写5AH到 PORDIS ,然后在立即写入 A5H,禁止 POR功能。 MS51 系列技术参考手册 Feb. 21, 2020 Page 215 of 460 Rev. 1.01 MS51 LVRDIS – 低电压检测禁止 寄存器 SFR 地址 复位值 EIPH1 FFH, 页 1, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 LVRDIS[7:0] 写 位 7:0 名称 描述 LVRDIS[7:0] 低电压检测禁止 首先写5AH到LVRDIS,紧接着再写A5H将禁止LVR。 6.2.3.3 欠压检测 (BOD) 另一个电源监控功能是欠压检测电路,欠压检测电路是用于监测运行期间VDD电平。有4个可编程的欠压 检 测 触 发 电 平 , 以 适 用 于 宽 电 压 应 用 。 4 级 电 平 2.2V、 2.7V、3.7V 、 4.4V , 通 过 CBOV[1:0] (CONFIG2[5:4])选择。当然在上电后也可以通过设置BOV[1:0] (BODCON0[6:4])来改变BOD 电平。当VDD下降到所选择的欠压检测触发电平(VBOD),欠压检测逻辑将复位MCU或请求欠压检测中 断。用户可结合不同应用决定设备是欠压复位还是产生欠压中断。上电后也可以通过软件打开VBOD, 注意 在软件打开BOD后需要等待2到3个LIRC时钟才能正常工作。 MS51 系列技术参考手册 当VDD下 降 到VBOD下 并且 BORST (BODCON0.2) 为 0 时, BOD将 会 请 求 中 断 。此 情 况 下 , BOF(BODCON0.3)将被置1。用户清除该标志后,VDD依然保持在VBOD下, BOF不会被再次置1, BOF仅通知用户电源电压下降发生。当VDD上升到高于VBOD时, BOF将置1,以示电源恢复。BOD电 路提供了一个很有用的状态位BOS (BODCON0.0),可以用来指示当前是欠压还是电源已经恢复。设置 BORST为1将开启欠压复位功能。欠压复位过后, BORF (BODCON0.1)将会被硬件置1,不会被其它 复位重置除上电复位外,该位可以通过软件清除。注意BODCON0所有位的写入都受时效访问TA保护。 MS51支持低功耗BOD模式,在为了节省电流消耗的同时最大的发挥 BOD检测性能。 通过设置 LPBOD[1:0] (BODCON1[2:1]), BOD电路可以周期性的检测电源电压,通常是1.6ms、 6.4ms或 25.6ms。这样可以减少很多功耗,但同时电源电压检测速度将降低。注意在低功率BOD模式下,欠压 检测迟滞特性将会消失。 对于噪声敏感的系统, MS51有一个BOD的滤波器可以避免电源噪声无意识地触发BOD事件。 BOD滤 波器上电默认开启,如果用户想要一个快速反应的BOD系统可以通过清BODFLT (BODCON1.0)为0来 关闭。最小欠压检测脉冲宽度见LPBOD[1:0] (BODCON1) VDD Brownout Detection BOF or - BOD Filter + BOV[1:0] VBOD Voltage Select BOS BODFLT BORF Brown-out Interrupt Brown-out Reset BORST LPBOD[1:0] BODEN 图 6.2-2 欠压检测框图 Feb. 21, 2020 Page 216 of 460 Rev. 1.01 MS51 CONFIG2 7 6 5 4 3 2 1 0 CBODEN CBOV[2:0] BOIAP CBORST - - 读/写 读/写 读/写 读/写 - - 出厂默认值: 1111 1111b 位 7 名称 CBODEN 描述 配置欠压检测使能位 1 = 欠压检测功能打开 0 = 欠压检测功能关闭 5:4 2 CBOV[1:0] CBORST 配置欠压检测电压选择位 11 = VBOD 生效电压2.2V 10 = VBOD 生效电压2.7V 01 = VBOD 生效电压3.7V 00 = VBOD 生效电压4.4V 配置欠压检测复位使能 该位决定在电源电压跌到VBOD以下时是否产生欠压检测复位 1 =使能欠压检测复位 0 =禁用欠压检测复位 CBORST (CONFIG2.2) VDD 电位 BOF 1 1 总是> VBOD 0 1 0 < VBOD 1 1 0 > VBOD 0 0 X X 0 MS51 系列技术参考手册 CBODEN (CONFIG2.7) 表 6.2-1 BOF 复位值 Feb. 21, 2020 Page 217 of 460 Rev. 1.01 MS51 BODCON0 – 欠压检测控制 0 寄存器 复位值 SFR地址 POR,CCCC XC0X b A3H, 页 0, TA 保护 BODCON0 BOD, UUUU XU1X b 其它,UUUU XUUX b 7 6 5 4 3 2 1 0 BODEN[1] BOV[2:0] [1] BOF[2] BORST[1] BORF BOS 读/写 读/写 读/写 读/写 读/写 只读 位 名称 7 BODEN 描述 欠压检测使能 0 =禁用欠压检测电路 1 =使能欠压检测电路 注意在开启该功能后需要2到3个LIRC时钟BOD才能正常工作 6:4 BOV[1:0] 3 BOF 配置欠压检测电压选择位 11 = VBOD 生效电压2.2V 10 = VBOD 生效电压2.7V 01 = VBOD 生效电压3.7V 00 = VBOD 生效电压4.4V 欠压中断标志 当VDD下降到VBOD以下或VDD上升到VBOD以上时,该标志由硬件设置为逻辑1。如果EBOD(EIE.2)和EA (IE.7) 都置位,将请求欠压检测中断。该位必须由软件清零。 MS51 系列技术参考手册 2 BORST 欠压检测复位使能 该位决定在电源电压跌到以VBOD下时是否产生欠压检测复位 0 =禁用欠压检测复位 1 =使能欠压检测复位 1 BORF 欠压复位标志 当MCU发生欠压复位时,该位被硬件值1。建议通过软件清除该位。 0 BOS 欠压状态标志 在BOD电路开启时,该位反应VDD与VBOD比较情况。 BOD电路关闭时保持为0. 0 = VDD电压大于VBOD或是BOD电路关闭 1 = VDD电压小于VBOD 注该位为只读位 注: 1. 所有复位后BODEN、 BOV[1:0]和 BORST初始化的值是直接通过加载CONFIG2位7位6~4和位2决定 2. BOF复位后的值依据CONFIG2的设置和VDD的电平. 请参考表 6.2-1 BOF Feb. 21, 2020 Page 218 of 460 Rev. 1.01 MS51 BODCON1 – 欠压检测控制 1 寄存器 SFR地址 BODCON1 ABH, 页 0, TA 保护 复位值 POR 0000 0001 b 其它 0000 0UUU b 7 6 5 4 3 - - - - - LPBOD[1:0] BODFLT - - - - - 读/写 读/写 位 名称 7:3 - 2:1 LPBOD[1:0] 0 BODFLT 2 1 0 描述 保留 低功耗BOD使能 00 = BOD 正常模式. BOD 电路总是开启. 01 = BOD 低功耗模式 1 , 每隔1.6ms周期性开启BOD电路 10 = BOD 低功耗模式 2 , 每隔6.4ms周期性开启BOD电路 11 = BOD 低功耗模式 3 , 每隔25.6ms周期性开启BOD电路 BOD 滤波器控制 BOD具有一个滤波器,当MCU以HIRC或ECLK作为系统时钟且BOD没有在低功率模式下 (LPBOD[1:0] = [0, 0])工作时,该滤波器采样32个FSYS 时钟用以过滤电源噪声。在其他条件 下,滤波器采样2个LIRC。 注:当CPU停在掉电模式时, BOD滤波计数一直是2个LIRC时钟 BOD滤波器有效地避免电源噪声误触发BOD事件发生。设置该位可以开启或关闭BOD滤波功 能。 0 = BOD 滤波禁止. 1 = BOD 滤波使能. (上电复位默认值.) MS51 系列技术参考手册 Feb. 21, 2020 Page 219 of 460 Rev. 1.01 MS51 BODFLT (BODCON1.1) BOD 工作模式 正常模式 0 系统时钟源 最小欠压检测脉冲宽度 任意时钟源 Typ. 1μs 任意时钟源 16 (1/FLIRC) 任意时钟源 64 (1/FLIRC) 任意时钟源 256 (1/ FLIRC) (LPBOD[1:0] = [0,0]) 低功耗模式 1 (LPBOD[1:0] = [0,1]) 低功耗模式 2 (LPBOD[1:0] = [1,0]) 低功耗模式 3 (LPBOD[1:0] = [1,1]) 正常工作模式: 32 (1/FSYS) 1 HIRC/ECLK 正常模式 空闲模式: 32 (1/FSYS) 掉电模式: 2 (1/FLIRC) (LPBOD[1:0] = [0,0]) 低功耗模式 1 LIRC 2 (1/FLIRC) 任意时钟源 18 (1/FLIRC) 任意时钟源 66 (1/FLIRC) 任意时钟源 258 (1/ FLIRC) (LPBOD[1:0] = [0,1]) 低功耗模式 2 (LPBOD[1:0] = [1,0]) 低功耗模式 3 (LPBOD[1:0] = [1,1]) MS51 系列技术参考手册 表 6.2-2 最小欠压检测脉冲宽度 6.2.3.4 外部复位和硬件故障复位 外部复位引脚nRESET是带施密特触发器的输入引脚。外部̅̅̅̅̅̅引脚保持最少24个系统时钟周期的低电 平,以确保能检测到有效的硬件复位信号,完成一次硬件复位动作。复位电路同步请求内部复位信号, 因此,复位是同步运行,要求时钟在此期间运行来促使外部复位 nRESET 0.7 VDD 200 us 0.2 VDD 32 Fsys Clock nRESET Reset 图 6.2-3 nRESET 复位波形 Feb. 21, 2020 Page 220 of 460 Rev. 1.01 MS51 在复位条件下,只要nRESET引脚电平保持在低就一直处在复位状态直到到变成高, CPU将退出复位状 态,并从地址0000H处开始执行代码。如果CPU在掉电模式下,外部̅̅̅̅̅̅引脚复位时,触发硬件复位的 方法略有不同。因为掉电模式下系统时钟是停止的,复位信号将等待系统时钟恢复。在系统时钟稳定后 , CPU 将进入复位状态。 RSTPINF (AUXR1.6) 为复位标志位,用来标志发生了外部复位。当发生外部复位后,该位硬件置1。除 上电复位或外部复位引脚复位外,该位不会置1,并通过软件清零。 程序计数据器PC溢出flash地址空间,硬件故障将发生。硬件故障复位后辅助寄存器1 HardF(AUXR1.5) 被硬件置位,辅助寄存器1 HardF除了会被上电复位或外部复位更改,不会被任何其他复位更改,这位 能通过软件清零。当MCU运行在OCD调试模式并且OCDEN=0,硬件故障复位被禁用,仅仅HardF标志位 置位。 MS51 系列技术参考手册 Feb. 21, 2020 Page 221 of 460 Rev. 1.01 MS51 AUXR1 – 辅助寄存器 1 寄存器 复位值 SFR地址 POR: 0000 0000b, 软件复位: 1U00 0000b, A2H , 页 0 AUXR1 nRESET 外部复位: U100 0000b, 其它: UUU0 0000b 7 6 5 4 3 2 1 0 SWRF RSTPINF HardF SLOW GF2 UART0PX 0 DPS 读/写 读/写 读/写 读/写 读/写 读/写 只读 读/写 位 名称 6 RSTPINF 描述 外部复位标志位 通过外部复位引脚复位MCU后,该位将被硬件置1,建议复位发生后通过软件清零 5 HardF 硬件故障复位标志 一旦程序计数器(PC)溢出flash地址空间EHFI (EIE1.4)=0, MCU将复位并且HardF硬件置位。通过 软件清零 注意: 当MCU运行在OCD调试模式下并且OCDEN=0,硬件故障复位将被禁用,仅仅HardF置位 6.2.3.5 看门狗复位 MS51 系列技术参考手册 看门狗定时器是一个自由运行的定时器,带可编程溢出时间间隔和专用内部时钟源。用户可以在任何时 候清除看门狗定时器,使它重新开始计数。当选择的溢出时间间隔发生溢出后,软件在一段时间内没有 响应,看门狗定时器将直接复位系统。复位完成后,芯片从地址0000H开始运行。 如果看门狗定时器引起复位,看门狗定时器复位标志WDTRF (WDCON.3)将置位。除上电复位或看门狗 复位外该位保持不变,用户可以通过软件清 WDTRF。 WDCON – 看门狗定时器控制 寄存器 SFR地址 复位值 WDCON AAH, 页 0, TA 保护 WDT 0000_1UUU b POR 0000_0111 b 其它 0000_UUUU b 7 6 5 4 3 WDTR WDCLR WDTF WIDPD WDTRF WDPS[2:0] 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 Feb. 21, 2020 2 1 0 描述 Page 222 of 460 Rev. 1.01 MS51 位 名称 描述 3 WDTRF 看门狗复位标志 WDT 复位标志。当看门狗定时器溢出复位MCU时,该位由硬件置位。通过软件清零 软件复位 6.2.3.6 MS51提供软件复位功能,允许软件复位整个系统类似于外部复位,初使化MCU为复位状态。软件复位 在ISP动作结束后非常有用。例如,如果通过ISP启动代码更新用户代码完成,软件复位能重启CPU立 即执行用户代码。写 1 到 SWRST (CHPCON.7) 触发软件复位。注意, SWRST时效访问控制受TA保 护,执行设置SWRST 位是设备复位之前的最后指令。见下面例程。 发生软件复位SWRF (AUXR1.7) 被硬件置1,用户可通过读取该位,来确定复位发生原因。除上电复位 或软件复位外, SWRF不会被其它复位修改。通过软件清零。 CHPCON – 芯片控制 寄存器 SFR地址 CHPCON 9FH, 所有页, TA 保护 复位值 软件复位 0000_00U0 b 其它 0000_00C0 b 7 6 5 4 3 2 1 0 SWRST IAPFF - - - - BS IAPEN 只写 读/写 - - - - 读/写 读/写 名称 7 SWRST 描述 MS51 系列技术参考手册 位 软件复位 对该位写1,芯片执行软件复位,复位完成后该位自动清零 Feb. 21, 2020 Page 223 of 460 Rev. 1.01 MS51 AUXR1 – 辅助寄存器 1 寄存器 复位值 SFR地址 POR: 0000 0000b, 软件复位: 1U00 0000b, A2H , 页 0 AUXR1 nRESET 外部复位: U100 0000b, 其它: UUU0 0000b 7 6 5 4 3 2 1 0 SWRF RSTPINF HardF SLOW GF2 UART0PX 0 DPS 读/写 读/写 读/写 读/写 读/写 读/写 只读 读/写 位 名称 7 SWRF 描述 软件复位标志位 当MCU发生软件复位后,该位硬件置1。通过软件清零 软件复位例程如下 ANL CLR MOV MOV ORL 6.2.3.7 AUXR0,#01111111b ;software reset flag clear EA TA,#0Aah TA,#55h CHPCON,#10000000b ;software reset 启动选择 MS51 系列技术参考手册 CONFIG0.7 CHPCON.1 CBS BS Power-on reset Low voltage reset Watchdog timer reset Brown-out reset Hard fault reset RST pin reset Load Reset and boot from APROM BS = 0 BS = 1 Reset and boot from LDROM Software reset 图 6.2-4 启动选择框图 MS51提供给用户灵活的启动选择,适合不同的应用。 BS(CHPCON.1)位用于决定复位后,CPU从 APROM 或LDROM 中启动。复位后,如果BS = 0, CPU从APROM 中启动,由0000H开始运行。反之 CPU 从 LDROM 启 动 , 从 0000H 开 始 运 行 。 注 : 所 有 复 位 ( 除 软 件 复 位 ) 后 , BS 加 载 CBS 位 (CONFIG0.7)的相反值。 Feb. 21, 2020 Page 224 of 460 Rev. 1.01 MS51 CONFIG0 7 6 5 4 3 2 1 0 CBS - OCDPWM OCDEN - - LOCK - 读/写 - 读/写 读/写 - - 读/写 - 出厂默认值: 1111 1111b 位 名称 7 CBS 描述 配置启动选择位 该位定义,除软件复位外的所有复位后, MCU选择FLASH区启动。 1 = 除软件复位外的所有复位后, MCU从APROM启动 0 = 除软件复位外的所有复位后, MCU从LDROM启动 MS51 系列技术参考手册 Feb. 21, 2020 Page 225 of 460 Rev. 1.01 MS51 CHPCON – 芯片控制 寄存器 SFR地址 CHPCON 9FH, 所有页, TA 保护 复位值 软件复位 0000_00U0 b 其它 0000_00C0 b 7 6 5 4 3 2 1 0 SWRST IAPFF - - - - BS[1] IAPEN 只写 读/写 - - - - 读/写 读/写 位 名称 1 BS 描述 启动选择 定义复位后MCU由哪块启动 0 =由APROM启动 1 =由LDROM启动 [1] BS位是由复位后(除软件复位外)读取CONFIG0.7 CBS位内容相反的值并写入,软件复位后保持不变。 CPU从所有复位状态释放后,硬件将检查BS位(非CBS)以决定是由APROM还是LDROM启动。 6.2.3.8 复位状态 除上电复位外复位状态不会影响片上RAM。在复位期间, RAM中的数据保留,上电复位后, RAM中内 容不确定。 MS51 系列技术参考手册 复位后,大多数寄存器恢复到默认值,有一些特殊功能寄存器初始值取决于不同复位事件。一旦复位, 程序计数器强制切换至地址0000H。备注:堆栈指针复位至07H, 同时堆栈内的数据可能丢失,即便 RAM内的数据未改变。 复位状态下,所有外设及中断关闭,所有管脚值为FFH,并切换至输入模式。 Feb. 21, 2020 Page 226 of 460 Rev. 1.01 MS51 6.2.4 中断系统 6.2.4.1 概述 中断的目的是让软件处理非常规或异步的事件。MS51有24个中断源,4个中断优先级。每个中断源有独 立的优先级设置位、中断向量和使能位。中断可以全局使能或关闭。中断服务程序(ISR)被分配到预先 指定地址,如表 6.2-3 中断函数首地址表所示。如果中断使能,中断发生时CPU 根据中断源跳到相应地 址,执行此地址处的程序,保持中断服务状态直到执行完中断服务程序ISR。一旦ISR 开始执行,仅能 被更高优先级的中断抢占。 ISR 通过指令RETI返回,该指令强迫CPU回到中断发生前所执行指令的下 一条指令。 中断源 向量地址 向量号 复位 0000H - 外部中断0 0003H 定时器0溢出 向量号 输入捕获中断 0063H 12 0 PWM0 中断 006BH 13 000BH 1 故障刹车中断 0073H 14 外部中断1 0013H 2 串口1中断 007BH 15 定时器1溢出 001BH 3 定时器3溢出 0083H 16 串口0中断 0023H 4 自唤醒定时器中断 008BH 17 定时器2事件 002BH 5 PWM1中断 0093H 18 I C状态/超时中断 0033H 6 PWM2中断 009BH 19 引脚中断 003BH 7 PWM3中断 00A3H 20 掉电检测中断 0043H 8 SC0中断 00ABH 21 SPI 中断 004BH 9 SC1中断 00B3H 22 WDT 中断 0053H 10 SC2中断 00BBH 23 ADC 中断 005BH 11 表 6.2-3 中断函数首地址表 6.2.4.2 中断使能 每个中断源都可独自使能或禁止,这些位在寄存器IE和EIE中。中断全局使能位EA(IE.7),清0将关闭所 有中断,置位启用已单独使能了的中断,清0不管单独的中断源,是否使能了都关闭所有中断。有中断 请求也会被挂起直到EA恢复为1,才去执行该中断。所有中断标志位可以软件置位启动中断。 注意:中断产生时对应中断标志位会置1。大多数中断标志位都是写0清除。 Feb. 21, 2020 Page 227 of 460 Rev. 1.01 MS51 系列技术参考手册 向量地址 2 中断源 MS51 IE – 中断使能寄存器 寄存器 SFR地址 复位值 IE A8H, 所有页, 可位寻址 0000 _0000 b 7 6 5 4 3 2 1 0 EA EADC EBOD ES ET1 EX1 ET0 EX0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 EA 描述 使能所有中断 该位全局使能/禁止所有那些单独使能的中断 0 = 禁止所有中断源 1 = 每个中断使能依靠使能单个中断。 如果使能,将会产生相应的单个中断 MS51 系列技术参考手册 6 EADC 5 EBOD 4 ES 3 ET1 2 EX1 使能ADC中断 0 = ADC 中断禁止. 1 = ADC 中断使能.当中断产生时ADCF (ADCCON0.7) 置1 使能欠压中断 0 = 欠压检测中断禁止. 1 = 欠压检测中断使能. 当中断产生时BOF (BODCON0.3) 置 1 使能串口0中断 0 = 串口 0 中断禁止. 1 = 串口 0 中断使能. 当中断产生时TI (SCON.1) 或 RI (SCON.0) 置1 使能定时器1中断 0 = 定时器 1 中断禁止. 1 = 定时器 1 中断使能. 当中断产生时TF1 (TCON.7) 置 1 使能外部中断1 0 = 外部中断1中断禁止. 1 = 外部中断1(̅̅̅̅̅̅̅ 管脚 P1.7)中断使能. 当中断产生时,IE1(TCON.3)置1 1 ET0 使能定时器0中断 0 = 定时器 0 中断禁止. 1 = 定时器 0 中断使能. 当中断产生时 TF0 (TCON.5) 置 1 0 EX0 使能外部中断0 0 = 外部中断0中断禁止. 1 = 外部中断0(̅̅̅̅̅̅̅ 管脚 P3.0)中断使能。当中断产生时,IE0(TCON.1)置1 Feb. 21, 2020 Page 228 of 460 Rev. 1.01 MS51 EIE – 扩展中断使能寄存器 寄存器 SFR地址 复位值 EIE0 9BH, 页0 0000_0000 b 7 6 5 4 3 2 1 0 ET2 ESPI EFB EWDT EPWM0 ECAP EPI EI2C 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 名称 7 ET2 6 ESPI 5 EFB 4 EWDT 3 EPWM0 2 ECAP 1 EPI 0 EI2C Feb. 21, 2020 描述 定时器2中断使能 0 = 定时器2中断禁止. 1 = 定时器2中断使能.当中断产生时TF2 (T2CON.7) 置 1 SPI中断使能 0 = SPI 中断禁止. 1 = SPI 中断使能. 当中断产生时SPIF (SPSR.7), SPIOVF (SPSR.5), 或MODF (SPSR.4) 置 1 . 故障刹车中断使能 0 = 故障刹车中断禁止. 1 = 故障刹车中断使能. 当中断产生时FBF (PWM0FBD.7) 置 1. 看门狗中断使能 0 = 看门狗中断禁止. 1 = 看门狗中断使能. 当中断产生时WDTF (WDCON.5) 置 1. PWM0中断使能 0 = PWM 中断禁止. 1 = PWM 中断使能. 当中断产生时PWMF (PWM0CON0.5) 置 1. 输入捕获中断使能 0 = 输入捕获中断禁止. 1 = 输入中断使能. 当中断产生时CAPF[2:0] (CAPCON0[2:0]) 置 1. MS51 系列技术参考手册 位 引脚中断使能 0 = 引脚中断禁止. 1 = 引脚中断使能. 当中断产生时PIF 相关位置 1. I2C 中断使能 0 = I2C 中断禁止. 1 = I2C 中断使能. 当中断产生时SI (I2CCON.3) 或 I2TOF (I2CTOC.0) 置 1. Page 229 of 460 Rev. 1.01 MS51 EIE1 – 扩展中断使能寄存器 1 寄存器 SFR地址 复位值 EIE1 9CH, 页0 0000_0000 b 7 6 5 4 3 2 1 0 - - EPWM3 EPWM2 EPWM1 EWKT ET3 ES_1 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 5 EPWM3 描述 PWM3 中断使能 0 = PWM3 中断关闭 1 = PWM3中断使能,当中断产生时 PWM3F (PWM3CON0.5) 置1 4 EPWM2 PWM2 中断使能 0 = PWM2 中断关闭 1 = PWM2中断使能,当中断产生时PWM2F (PWM2CON0.5) 置1 3 EPWM1 PWM1 中断使能 0 = PWM1 中断关闭 1 = PWM1中断使能,当中断产生时 PWM1F (PWM1CON0.5) 置1 2 EWKT WKT中断使能 0 = WKT 中断禁止. 1 = WKT 中断使能. 当中断产生时 WKTF (WKCON.4) 置 1 MS51 系列技术参考手册 1 ET3 定时器3中断使能 0 = 定时器 3 中断禁止. 1 = 定时器 3中断使能. 当中断产生时 TF3 (T3CON.4) 置 1 0 ES_1 串口1中断使能 0 = 串口 1 中断禁止. 1 = 串口 1 中断使能. 当中断产生时 TI_1 (S1CON.1) 或 RI_1 (S1CON.0) 置 1 Feb. 21, 2020 Page 230 of 460 Rev. 1.01 MS51 中断优先级 6.2.4.3 中断有4个优先级:3级最高,0级最低。中断源可以单独设置各自的优先级位来配置其优先级。表 6.2-4 中断优先级设置列举了4种优先级配置。低优先级中断可以被高优先级中断打断,不能被同等优先级、 或更低的优先级打断。 在多个中断时,遵循以下规则: 1. 低优先级中断正在运行时,若一个高优先级中断产生,CPU转去执行高优先级中断,当高优先 级中断执行完RETI后,再回到低优先级中断继续运行。当最低优先级中断执行完RETI后,控制 器把运行权利交回给主程序。 2. 如果一个高优先级中断正在运行,不能被任何其他中断源打断——即使这高优先级中断,在默 认优先级中比正在运行的中断优先级更高,也不能打断运行中的中断 3. 低优先级中断只有在其他中断没有执行的情况下才能被调用。然后同时,低优先级中断不能被 另一个低优先级中断打断,即使这个低优先级中断,在默认优先级中比正在运行的中断优先级 更高,也不能打断运行中的中断 4. 如果两个中断同时发生,优先级高的中断先执行。如果两个中断优先级相同,默认优先级高的 中断先执行,这是符合默认优先级唯一的条件 默认优先级如表 6.2-4 中断优先级设置 CPU从掉电模式中唤醒,请参考章节 6.2.2.3掉电模式 中断优先级控制位 中断优先级 IP / EIP / EIP2 0 0 等级 0 (最低) 0 1 等级 1 1 0 等级 2 1 1 等级 3(最高) 表 6.2-4 中断优先级设置 中断源 向量 地址 中断标志 复位 0000H - 外部中断0 0003H IE0[1] 欠压检测 0043H BOF (BODCON0.3) 看门狗定时器 0053H WDTF (WDCON.5) 定时器 0 000BH 0033h Feb. 21, 2020 默认优先 级 总是使能 最高 EX0 优先级控制位 是否支持掉电 模式唤醒 - Yes 1 PX0, PX0H Yes EBOD 2 PBOD, PBODH Yes EWDT 3 PWDT, PWDTH Yes TF0[2] ET0 4 PT0, PT0H No SI + I2TOF (I2TOC.0) EI2C 5 PI2C, PI2CH No 2 I C 状态/超时 使能位 Page 231 of 460 Rev. 1.01 MS51 系列技术参考手册 IPH / EIPH / EIPH1 MS51 中断源 向量 地址 中断标志 使能位 默认优先 级 优先级控制位 是否支持掉电 模式唤醒 ADC中断 005Bh ADCF EADC 6 PADC, PADCH No 外部中断1 0013H IE1[1] EX1 7 PX1, PX1H Yes 管脚中断 003BH PIF0 to PIF7 (PIF)[3] EPI 8 PPI, PPIH Yes 定时器 1 001BH TF1[2] ET1 9 PT1, PT1H No 串口 0 0023H RI + TI ES 10 PS, PSH No 故障刹车中断 0073h FBF (PWM0FBD.7) EFB 11 PFB, PFBH No 004Bh SPIF (SPSR.7) + ESPI 12 PSPI, PSPIH No ET2 13 PT2, PT2H No ECAP 14 PCAP, PCAPH No EPWM0 15 PPWM, PPWMH No ES_1 16 PS_1, PSH_1 No SPI MODF (SPSR.4) + SPIOVF (SPSR.5) MS51 系列技术参考手册 定时器 2 002BH TF2[2] 定时器输入捕获 0063H CAPF[2:0] (CAPCON0[2:0]) PWM0 中断 006BH PWMF 串口 1 007BH RI_1 + TI_1 定时器 3 0083H TF3[2] (T3CON.4) ET3 17 PT3, PT3H No 自唤醒定时器 008BH WKTF (WKCON.4) EWKT 18 PWKT, PWKTH Yes PWM1中断 0093H PWM1F EPWM1 19 PPWM1, PPWM1H No PWM2中断 009BH PWM2F EPWM2 20 PPWM2, PPWM2H No PWM3中断 00A3H PWM3F EPWM3 21 PPWM3, PPWM3H No SC0中断 00ABH ACERR+BGT+TERR+TBE+ RDA (SC0IS[4:0]) SC0IE 22 PSC0, PSC0H No SC1中断 00B3H ACERR+BGT+TERR+TBE+ RDA (SC1IS[4:0]) SC1IE 23 PSC1, PSC1H No SC2中断 00BBH ACERR+BGT+TERR+TBE+ RDA (SC2IS[4:0]) SC2IE 24 PSC2, PSC2H No 注: 1. 当外部中断引脚设置成边沿触发(ITx = 1),在执行中断服务程序时中断标志位IEx 会被自动清除。当被设置成电平触发时(ITx = 0),IEx会跟随各自引脚反向电平状态变化一致,不能通过软件控制。 2. 在执行中断服务程序时中断标志位TF0, TF1, 或TF3 会被自动清除。相反,执行中断服务程序时TF2不会被自动清除。 3.当引脚中断选择了电平触发,PIFn标志位反应各自通道的状态,软件无法控制。 表 6.2-5 各级中断源特性表 Feb. 21, 2020 Page 232 of 460 Rev. 1.01 MS51 IP – 中断优先级 [1] 寄存器 SFR地址 复位值 IP B8H, 所有页, 可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 - PADC PBOD PS PT1 PX1 PT0 PX0 - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 6 PADC ADC中断优先级低位 5 PBOD BOD检测中断优先级低位 4 PS 串口0中断优先级低位 3 PT1 定时器1中断优先级低位 2 PX1 外部中断1中断优先级低位 1 PT0 定时器0中断优先级低位 0 PX0 外部中断0中断优先级低位 注: IP与IPH结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 233 of 460 Rev. 1.01 MS51 IPH – 中断优先级高位 寄存器 SFR地址 复位值 IPH B7H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - PADCH PBODH PSH PT1H PX1H PT0H PX0H - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 6 PADC ADC中断优先级高位 5 PBOD 掉电检测中断优先级高位 4 PSH 串口0中断优先级高位 3 PT1H 定时器1中断优先级高位 2 PX1H 外部中断1中断优先级高位 1 PT0H 定时器 0 中断优先高位 0 PX0H 外部中断0中断优先级高位 注: IP与IPH结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 234 of 460 Rev. 1.01 MS51 EIP – 扩展中断优先级 寄存器 SFR地址 复位值 EIP EFH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 PT2 PSPI PFB PWDT PPWM PCAP PPI PI2C 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7 PT2 定时器2中断优先级低位 6 PSPI SPI 中断优先级低位 5 PFB 故障刹车中断优先级低位 4 PWDT WDT 中断优先级低位 3 PPWM PWM 中断优先级低位 2 PCAP 引脚捕获中断优先级低位 1 PPI 引脚中断优先级低位 0 PI2C I2C中断优先级低位 Feb. 21, 2020 Page 235 of 460 MS51 系列技术参考手册 注: EIP与EIPH结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 Rev. 1.01 MS51 EIPH – 扩展中断优先级高位 [4] 寄存器 SFR地址 复位值 EIPH F7H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 PT2H PSPIH PFBH PWDTH PPWMH PCAPH PPIH PI2CH 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7 PT2H 定时器2中断优先级高位 6 PSPIH SPI中断优先级高位 5 PFBH 故障刹车中断优先级高位 4 PWDTH WDT中断优先级高位 3 PPWMH PWM中断优先级高位 2 PCAPH 定时器输入捕获中断优先级高位 1 PPIH 引脚中断优先级高位 0 PI2CH I C中断优先级高位 2 MS51 系列技术参考手册 注: EIP与EIPH结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 Feb. 21, 2020 Page 236 of 460 Rev. 1.01 MS51 EIP1 –扩展中断优先级1 寄存器 SFR地址 复位值 EIP1 FEH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - PPWM3 PPWM2 PPWM1 PWKT PT3 PS_1 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 5 PPWM3 PWM3中断优先级低位 4 PPWM2 PWM2中断优先级低位 3 PPWM1 PWM1中断优先级低位 2 PWKT WKT 中断优先级低位 1 PT3 0 PS_1 定时器3 中断优先级低位 串口1 中断优先级低位 注: EIP1与EIPH1结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 237 of 460 Rev. 1.01 MS51 EIPH1 –扩展中断优先级高位1 寄存器 SFR地址 复位值 EIPH1 FFH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 - - PPWM3H PPWM2H PPWM1H PWKTH PT3H PSH_1 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 5 PPWM3H PWM3中断优先级高位 4 PPWM2H PWM2中断优先级高位 3 PPWM1H PWM1中断优先级高位 2 PWKTH WKT 中断优先级高位 1 PT3H 定时器3 中断优先级高位 0 PSH_1 串口1 中断优先级高位 注: EIP1与EIPH1结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 238 of 460 Rev. 1.01 MS51 EIP2 –扩展中断优先级寄存器2 寄存器 SFR地址 复位值 EIP2 CEH, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 - - - - - PSC2 PSC1 PSC0 - - - - - 读/写 读/写 读/写 位 名称 描述 2 PSC2 SC2 / UART4中断优先级低位 1 PSC1 SC1 / UART3中断优先级低位 0 PSC0 SC0 / UART2中断优先级低位 注: EIP2与EIPH2结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 MS51 系列技术参考手册 Feb. 21, 2020 Page 239 of 460 Rev. 1.01 MS51 EIPH2 – 扩展中断优先级高2 寄存器 SFR地址 复位值 EIPH2 CFH, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 - - - - - PUART4H PUART3H PUART2H - - - - - 读/写 读/写 读/写 位 名称 描述 2 PUART4H UART4中断优先级高位 1 PUART3H UART3中断优先级高位 0 PUART2H UART2中断优先级高位 注: EIP2与EIPH2结合使用,以确定每个中断源的优先级。见表 6.2-4 中断优先级设置 6.2.4.4 中断服务 中断标志位在每个系统时钟周期都会被采样,并解析它们的优先级。在同一个周期内,被采样到的中断 和优先级都会被解决。如果满足执行条件将执行LCALL指令到中断代码首地址,目标地址是中断向量地 址。。能产生LCALL条件如下: MS51 系列技术参考手册 1. 没有相同或更高优先级中断服务程序在执行。 2. 当前查询中断标志周期正好是当前执行指令的最后一个周期。 3. 当前指令不是写任何中断使能位或优先级位且也不能是中断返回指令RETI。 如果以上有一个条件不满足,就不产生LCALL指令。在每一个指令周期都会重新检测中断标志。如果一 个中断标志被置位,由于不满足上述条件而没有响应,即使后面满足上述条件,没有立即执行的中断仍 然不会执行LCALL指令。这个中断标志生效,但没有进入中断服务程序,下一个指令周期需要重新检测 中断标志。 处理器响应一个有效的中断,通过执行一个LCALL 指令将程序转移到中断入口地址执行中断服务程序 时,不同中断源的标志可能被硬件清除,也可能不被清除。硬件LCALL与软件LCALL指令相同,执行 LCALL指令时,保存程序计数器PC内容到堆栈,不保存程序状态字PSW,PC的值改为中断首地址继续 执行程序直到RETI指令。在执行RETI指令时,栈顶内容加载到程序计数器PC。中断期间如果堆栈的内 容被修改,处理器不会被通知。注,RET指令与RETI的不同在于,RET不会通知中断控制器中断服务已 经完成,控制器认为中断服务仍在进行,中断不能再产生。 6.2.4.5 中断延迟 每一个中断源的响应时间取决于几个方面,如中断自身特点和指令的执行。在每个时钟周期,每一个中 断标志和优先级都会被检测。如果有一个中断请求满足以上3个条件,硬件将自动产生LCALL指令,执 行该指令需要4个机器周期。这样从中断标志置位,到执行中断服务程序最少需要5个机器周期。 如果三个条件不满足,很长的响应时间是可以预知的。如果高优先级和同等优先级中断正在执行,那么 Feb. 21, 2020 Page 240 of 460 Rev. 1.01 MS51 中断延迟时间很明显取决于正在执行的中断服务程序。最大的响应时间(如果没有其他中断正在执行或 是也没有更高优先级中断产生)是执行RETI指令,然后下一条要执行的指令是最长的6个时钟周期的指 令。从一个中断源被激活(没有检测到),最长的反应时间是16个时钟周期。这些周期包括完成RETI指令 的5个时钟周期、完成最长指令的6个时钟周期、侦测中断1个时钟周期和完成硬件LCALL跳转到中断地 址的4个时钟周期。 因此一个简单的中断系统响应时间,总是大于5个时钟周期并且不超过16个时钟周期。 6.2.4.6 外部中断管脚 外部中断引脚̅̅̅̅̅̅̅和̅̅̅̅̅̅̅可根据IT0 (TCON.0) 和 IT1 (TCON.2)选择边沿触发、还是电平触发。中断标 志位是IE0 (TCON.1) 和 IE1 (TCON.3)。在边沿触发模式下,每个系统时钟采样̅̅̅̅̅̅̅ 和 ̅̅̅̅̅̅̅引脚电平 。如果在一个周期中采样是高电平,下一个周期中为低电平,这个高到低的电平转换将会置位中断标志 IE0或IE1。引脚高电平或低电平至少保持一个系统时钟周期。当中断服务程序被执行时,IE0和IE1会被 硬件自动清除。如果选择电平触发模式,那么必须保持引脚为低电平,直到进入中断服务,在进入中断 服务程序时IE0和IE1不会被硬件清除,IE0和IE1的值与̅̅̅̅̅̅̅ 和 ̅̅̅̅̅̅̅引脚电平相反。当中断服务程序结 束后引脚若依然保持低电平,处理器会再次重头执行中断函数。̅̅̅̅̅̅̅ 和 ̅̅̅̅̅̅̅均支持将芯片从掉电模式 唤醒。 MS51 系列技术参考手册 Feb. 21, 2020 Page 241 of 460 Rev. 1.01 MS51 TCON – 定时器 0 和 1 控制 寄存器 SFR地址 复位值 TCON 88H, 所有页, 可位寻址 0000_0000b 7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读/写 读/写 读/写 读/写 位 名称 3 IE1 只读 (电平) 读/写 (边沿) 读/写 只读 (电平) 读/写 (边沿) 读/写 描述 外部中断 1 边沿标志 如果 IT1 = 1 (下降沿触发), 当检测到下降沿时该标志将被硬件置位。该位将保持置1直到软件清零或 在外部中断1服务程序中硬件清零。 如果 IT1 = 0 (低电平触发), 此标志是̅̅̅̅̅̅̅输入信号逻辑电平的反转。软件不可控制。 2 IT1 外部中断 1 类型选择 该位选择̅̅̅̅̅̅̅的中断触发类型。 0 = ̅̅̅̅̅̅̅ 是低电平触发. 1 = ̅̅̅̅̅̅̅ 是下降沿触发. 1 IE0 外部中断 0 边沿标志 如果 IT0 = 1 (下降沿触发), 当检测到下降沿时该标志将被硬件置位。该位将保持置1直到软件清零或 在外部中断0服务程序中硬件清零。 如果 IT0 = 0 (低电平触发), 此标志是̅̅̅̅̅̅̅输入信号逻辑电平的反转。软件不可控。 MS51 系列技术参考手册 0 IT0 外部中断 0 类型选择 该位选择̅̅̅̅̅̅̅的中断触发类型。 0 = ̅̅̅̅̅̅̅ 是低电平触发 1 = ̅̅̅̅̅̅̅ 是下降沿触发 Feb. 21, 2020 Page 242 of 460 Rev. 1.01 MS51 内存控制器 6.3 在应用编程 (IAP) 6.3.1 与RAM的实时操作不同,修改FLASH数据通常需要很长时间,不像RAM那样可以实时操作。而且擦除、 编程或读取Flash数据需要遵循相当复杂的时序步骤。MS51提供方便了FLASH编程方式,帮助用户通过 IAP,重新编程FLASH内容。IAP就是通过软件实现在线电擦除和编程的方法 。 通过设置IAPEN (CHPCON.0受TA保护) 使能IAP,通过设置IAPUEN里的相应位,使能需要升级的 FLASH区域,将16位地址写入IAPAH和IAPAL, 数据写入 IAPFD, 命令写入 IAPCN。然后置1触发位 IAPGO (IAPTRG.0受TA保护)执行IAP。此时,CPU程序计数器PC值保持不变,内建的IAP充电泵提升 电压和信号时序。擦除和编程实间是内部控制的,与工作电压和频率无关。通常页擦除实间是5ms,字 节编程实间是23.5 μs。IAP动作完成后,程序计数器PC继续运行后面的指令。IAPGO将被自动清零。 IAPFF (CHPCON.6)是IAP错误标志,可以用来检查之前的IAP操作成功与否。通过纯软件的设置,用户 可以方便的对FLASH存储器进行擦除、编程和校验。 6.3.1.1 IAP命令 MS51通过IAP可以操作APROM、LDROM或CONFIG。 IAP操作模式和编程区域是由IAP的控制寄存器 IAPCN决定的。 IAPCN IAPA[15:0] IAP 模式 {IAPAH, IAPAL} IAPFD[7:0] IAPB [1:0] FOEN FCEN FCTRL[3:0] 读公司ID XX[1] 0 0 1011 X DAH 读器件ID XX 0 0 1100 低字节 DID: 0000H 低字节 DID 高字节 DID: 0001H 高字节 DID XX 0 0 0100 0000H 到 000BH 数据读出 APROM 页擦除 00 1 0 0010 地址写入[2] FFH LDROM 页擦除 01 1 0 0010 地址写入[2] FFH APROM 字节编程 00 1 0 0001 地址写入 数据写入 LDROM 字节编程 01 1 0 0001 地址写入 数据写入 APROM 字节读取 00 0 0 0000 地址写入 数据读出 LDROM 字节读取 01 0 0 0000 地址写入 数据读出 擦除所有CONFIG 11 1 0 0010 0000H FFH CONFIG 字节编程 11 1 0 0001 CONFIG0: 0000H 数据写入 CONFIG1: 0001H CONFIG2: 0002H CONFIG4: 0004H CONFIG6: 0005H Feb. 21, 2020 Page 243 of 460 Rev. 1.01 MS51 系列技术参考手册 读96位UID MS51 IAPCN IAPA[15:0] IAP 模式 IAPB [1:0] FOEN FCEN FCTRL[3:0] 11 0 0 0000 CONFIG 字节读取 IAPFD[7:0] {IAPAH, IAPAL} 数据读取 CONFIG0: 0000H CONFIG1: 0001H CONFIG2: 0002H CONFIG4: 0004H CONFIG6: 0005H 注意: 1、 “X”表示无关项 2、每一页大小是128K字节。因此,地址应该是目标页的地址。 表 6.3-1 IAP 模式及命令 6.3.1.2 IAP控制寄存器 IAP相关的寄存器。 CONFIG2 7 6 5 4 3 2 1 0 CBODEN CBOV[2:0] BOIAP CBORST - - 读/写 读/写 读/写 读/写 - - 出厂预设值: 1111 1111b 位 名称 3 BOIAP 描述 IAP掉电影响 MS51 系列技术参考手册 此位决定IAP的擦除和编程是否受掉电状态影响。 此位只有在掉电检测使能的状态下才有效。 1 = 当VDD 低于VBOD 时,影响IAP擦除和编程。 0 = 在任何可工作的VDD 下,IAP都可擦除和编程。 Feb. 21, 2020 Page 244 of 460 Rev. 1.01 MS51 CHPCON – 芯片控制寄存器 寄存器 SFR 地址 CHPCON 9FH,所有页TA保护 复位值 软件复位 0000_00U0 b 其他 0000_00C0 b 7 6 5 4 3 2 1 0 SWRST IAPFF - - - - BS IAPEN 写 读/写 - - - - 读/写 读/写 位 名称 6 IAPFF 描述 IAP 错误标志 满足以下任意条件,硬件将在IAPGO (IAPTRG.0)置位后置位该位 (1) 访问地址越界。 (2) IAPCN 命令无效。 (3) IAP 擦除或者编程更新没有使能的区域。 (4) 当BOIAP (CONFIG2.5) =1,BODEN (BODCON0.7) =1,BORST (BODCON0.2) =0时,在VBOD 电压下进行IAP 擦除和编程工作。 此位必须由软件清除。 0 IAPEN IAP 使能 0 = 禁止IAP。 1 =使能 IAP。 Feb. 21, 2020 Page 245 of 460 Rev. 1.01 MS51 系列技术参考手册 当打开IAP功能时,HIRC会被打开用于时序控制。为了降低功耗时停止内部晶振,IAP操作完后才执 行清除IAPEN标志指令。 MS51 IAPUEN – IAP 更新使能 寄存器 SFR 地址 复位值 IAPUEN A5H, 0页, TA 保护 0000 _0000 b 7 6 5 4 3 2 1 0 - - - SPMEN SPUEN CFUEN LDUEN APUEN - - - 读/写 读/写 读/写 读/写 读/写 位 名称 7:5 - 4 SPMEN 描述 保留 SPROM 存储空间映射使能 0 = CPU 内存地址 0xff80~0xffff 映射到APROM 1 = CPU 内存地址 0xff80~0xffff 映射到 SPROM 3 SPUEN SPROM 升级使能(TA 保护) 0 = 禁止通过IAP擦除或编程SPROM。 1 = 使能通过IAP擦除或编程SPROM。 2 CFUEN CONFIG 升级使能 0 = 禁止通过IAP擦除或编程CONFIG。 1 = 允许通过IAP擦除或编程CONFIG。 1 LDUEN MS51 系列技术参考手册 LDROM 升级允许 0 = 禁止通过IAP擦除或编程LDROM。 1 = 允许禁止通过IAP擦除或编程LDROM 。 0 APUEN APROM 升级允许 0 = 禁止通过IAP擦除或编程APROM。 1 = 允许禁止通过IAP擦除或编程APROM。 Feb. 21, 2020 Page 246 of 460 Rev. 1.01 MS51 IAPCN – IAP 控制寄存器 寄存器 SFR 地址 复位值 IAPCN AFH, 0页 0011_0000 b 位 名称 7:6 IAPB[1:0] 5 FOEN 4 FCEN 3:0 FCTRL[3:0] 描述 IAP 控制 此字节是IAP控制命令。详细描述见 表6.3-1 IAP模式及命令 MS51 系列技术参考手册 Feb. 21, 2020 Page 247 of 460 Rev. 1.01 MS51 IAPAH – IAP 地址 高字节 寄存器 SFR 地址 复位值 IAPAH A7H, 0页 0000 _0000 b 位 名称 7:0 IAPA[15:8] 描述 IAP 地址高位 IAPAH 包含IAP操作地址的高八位 。 MS51 系列技术参考手册 Feb. 21, 2020 Page 248 of 460 Rev. 1.01 MS51 IAPAL – IAP 地址 低字节 寄存器 SFR 地址 复位值 IAPAL A6H, 0页 0000 _0000 b 7 6 5 4 3 2 1 0 IAPA[7:0] 读/写 位 名称 7:0 IAPA[7:0] 描述 IAP 地址低地位 IAPAL 包含IAP操作地址的低八位 MS51 系列技术参考手册 Feb. 21, 2020 Page 249 of 460 Rev. 1.01 MS51 IAPFD – IAP 数据寄存器 寄存器 SFR 地址 复位值 IAPFD AEH, 0页 0000 _0000 b 7 6 5 4 3 2 1 0 IAPFD[7:0] 读/写 位 名称 7:0 IAPFD[7:0] 描述 IAP 数据 该字节包含将要读出或者写进flash的数据。在编程模式下,用户需要在触发ISP之前将数据写入 IAPFD里;在读/校验模式下,在IAP完成后从APFD里读出数据。 MS51 系列技术参考手册 Feb. 21, 2020 Page 250 of 460 Rev. 1.01 MS51 IAPTRG – IAP 触发寄存器 寄存器 SFR 地址 复位值 IAPTRG A4H, 0页, TA 保护 0000 _0000 b 7 6 5 4 3 2 1 0 - - - - - - - IAPGO - - - - - - - 写 位 名称 7:1 - 0 IAPGO 描述 保留 IAP 执行 该位设置成1,开始执行IAP。此指令之后,CPU保持程序计数器 (PC) ,IAP硬件管理进程。IAP操 作完成后,程序计数器继续执行下一条指令。IAPGO位将被自动清除并一直保持0。 触发IAP操作前,由于硬件限制,中断(如果启用)应该临时禁止。 程序流程如下: 6.3.1.3 CLR EA MOV TA,#0AAH MOV TA,#55H ORL IAPTRG,#01H (SETB EA) IAP 用户指南 1. 没有IAP操作时,用户必须清除IAPEN (CHPCON.0)位。 可以防止系统意外触发IAP。此外, IAP需要使用内部HIRC振荡器。如果选择外部时钟源,停止IAP将会停止内部HIRC,可以降低 功耗。注:写IAPEN受TA保护。 2. 当 LOCK 位(CONFIG0.1) 被激活,IAP 读、写或擦除仍然有效。 当进行IAP时,中断 (如果打开)应该被临时关闭,通过清除EA位。 当前代码执行的页不能被擦除或者编程。否者会出现不可预知的程序动作,甚至破坏存储的程序数据。 6.3.1.4 使用Flash存储器作为数据存储器 在一般应用中,有时一些数据需要断电后不丢失。以便读回或更改,比如系统控制中的参数和常量。 MS51支持IAP功能,并且存储在Flash里的字节可以用MOVC指令读取,所以很适合作为非易失数据存 储器。IAP提供的擦除和编程函数,在一个程序里擦除或编程一页中的一个或者多个字节非常容易。IAP 在应用中由微控制器的软件控制。注意:Flash可写入100,000次。 以下参考应用代码: Feb. 21, 2020 Page 251 of 460 Rev. 1.01 MS51 系列技术参考手册 IAP可以方便用户更新Flash内容。不过用户必须遵循一定的规则,以确保IAP正确执行。否者可能引起 不可预知的结果,甚至器件损坏。 此外,下文是对正确执行IAP的一些有用建议。 MS51 汇编例程如下: ;****************************************************************************** ; This code illustrates how to use IAP to make APROM 201h as a byte of ; Data Flash when user code is executed in APROM. ;****************************************************************************** PAGE_ERASE_AP EQU 00100010b BYTE_PROGRAM_AP EQU 00100001b MS51 系列技术参考手册 ORG 0000h MOV MOV ORL TA,#0Aah TA,#55h CHPCON,#00000001b ;CHPCON is TA protected MOV MOV ORL TA,#0Aah TA,#55h IAPUEN,#00000001b ;IAPUEN is TA protected MOV MOV MOV MOV MOV MOV ORL MOV MOV MOV MOV MOV MOV ORL IAPCN,#PAGE_ERASE_AP IAPAH,#02h IAPAL,#00h IAPFD,#0FFh TA,#0Aah TA,#55h IAPTRG,#00000001b IAPCN,#BYTE_PROGRAM_AP IAPAH,#02h IAPAL,#01h IAPFD,#55h TA,#0Aah TA,#55h IAPTRG,#00000001b ;Erase page 200h~27Fh MOV MOV ANL TA,#0Aah TA,#55h IAPUEN,#11111110b ;APUEN = 0, disable APROM update MOV MOV ANL TA,#0Aah TA,#55h CHPCON,#11111110b ;IAPEN = 0, disable IAP mode MOV CLR MOVC MOV DPTR,#201h A A,@A+DPTR P0,A SJMP $ Feb. 21, 2020 ;IAPEN = 1, enable IAP mode ;APUEN = 1, enable APROM update ;IAPTRG is TA protected ;write ‘1’ to IAPGO to trigger IAP process ;Program 201h with 55h ;Read content of address 201h Page 252 of 460 Rev. 1.01 MS51 C语言例程如下: //****************************************************************************** // This code illustrates how to use IAP to make APROM 201h as a byte of // Data Flash when user code is executed in APROM. //****************************************************************************** #define PAGE_ERASE_AP 0x22 #define BYTE_PROGRAM_AP 0x21 /*Data Flash, as part of APROM, is read by MOVC. Data Flash can be defined as 128-element array in “code” area from absolute address 0x0200 */ volatile unsigned char code Data_Flash[128] _at_ 0x0200; Main (void) { TA = 0Xaa; TA = 0x55; CHPCON |= 0x01; //CHPCON is TA protected //IAPEN = 1, enable IAP mode TA = 0Xaa; TA = 0x55; IAPUEN |= 0x01; //IAPUEN is TA protected IAPCN = PAGE_ERASE_AP; IAPAH = 0x02; IAPAL = 0x00; IAPFD = 0Xff; TA = 0Xaa; TA = 0x55; IAPTRG |= 0x01; //Erase page 200h~27Fh //IAPTRG is TA protected //write ‘1’ to IAPGO to trigger IAP process // Program 201h with 55h //write ‘1’ to IAPGO to trigger IAP process TA = 0Xaa; TA = 0x55; IAPUEN &= ~0x01; //IAPUEN is TA protected TA = 0Xaa; TA = 0x55; CHPCON &= ~0x01; //CHPCON is TA protected P0 = Data_Flash[1]; //APUEN = 0, disable APROM update //IAPEN = 0, disable IAP mode //Read content of address 200h+1 while(1); } Feb. 21, 2020 Page 253 of 460 Rev. 1.01 MS51 系列技术参考手册 IAPCN = BYTE_PROGRAM_AP; IAPAH = 0x02; IAPAL = 0x01; IAPFD = 0x55; TA = 0Xaa; TA = 0x55; IAPTRG |= 0x01; //APUEN = 1, enable APROM update MS51 6.3.1.5 在线系统编程 (ISP) Flash存储器支持硬件编程和在应用编程(IAP)。 如果产品在研发过程中或者终端用户的产品需要固件升 级,采用硬件编程模式非常困难且不方便。采用ISP方式就比较简单和方便。且不需要将控制器从板上 拆下来。通过软件可以对设备重新编程。因此,这使得更新应用程序固件的ISP得到广泛的应用。 用户可以开发自己的引导代码放在LDROM里。LDROM最大容量4KB。用户开发的引导代码可以通过并 行烧录器或在电路编程器(ICP)下载到LRROM中。 一般来说,ISP是PC和MCU之间进行通讯。PC通过串口传输新的代码给MCU。然后引导程序接收这些 数据,将这些数据通过IAP命令编程到用户代码区域。芯唐针对MS51提供ISP固件和PC端软件。这样用 户可以很容易ISP通过UART端口升级代码。请访问芯唐8位微控制器网站:芯唐 80C51 微控制器技术 支持。以下是简单的ISP参考代码: 汇编例程代码: ;****************************************************************************** ; This code illustrates how to do APROM and CONFIG IAP from LDROM. ; APROM are re-programmed by the code to output P1 as 55h and P2 as aah. ; The CONFIG2 is also updated to disable BOD reset. ; User needs to configure CONFIG0 = 0x7F, CONFIG1 = 0Xfe, CONFIG2 = 0Xff. ;****************************************************************************** PAGE_ERASE_AP EQU 00100010b BYTE_PROGRAM_AP EQU 00100001b BYTE_READ_AP EQU 00000000b ALL_ERASE_CONFIG EQU 11100010b BYTE_PROGRAM_CONFIG EQU 11100001b BYTE_READ_CONFIG EQU 11000000b MS51 系列技术参考手册 ORG 0000h CLR CALL EA Enable_IAP CALL CALL CALL CALL CALL Enable_AP_Update Erase_AP Program_AP Disable_AP_Update Program_AP_Verify CALL CALL CALL CALL CALL CALL Read_CONFIG Enable_CONFIG_Update Erase_CONFIG Program_CONFIG Disable_CONFIG_Update Program_CONFIG_Verify CALL MOV MOV ANL MOV MOV Disable_IAP TA,#0Aah TA,#55h CHPCON,#11111101b TA,#0Aah TA,#55h Feb. 21, 2020 ;disable all interrupts ;erase AP data ;programming AP data ;verify Programmed AP data ;read back CONFIG2 ;erase CONFIG bytes ;programming CONFIG2 with new data ;verify Programmed CONFIG2 ;TA protection ; ;BS = 0, reset to APROM Page 254 of 460 Rev. 1.01 MS51 ORL CHPCON,#80h SJMP $ ;software reset and reboot from APROM ;******************************************************************** ; IAP Subroutine ;******************************************************************** Enable_IAP: MOV TA,#0Aah ;CHPCON is TA protected MOV TA,#55h ORL CHPCON,#00000001b ;IAPEN = 1, enable IAP mode RET Disable_IAP: MOV TA,#0Aah MOV TA,#55h ANL CHPCON,#11111110b RET Enable_AP_Update: MOV TA,#0Aah MOV TA,#55h ORL IAPUEN,#00000001b RET Disable_AP_Update: MOV TA,#0Aah MOV TA,#55h ANL IAPUEN,#11111110b RET Disable_CONFIG_Update: MOV TA,#0Aah MOV TA,#55h ANL IAPUEN,#11111011b RET Trigger_IAP: MOV TA,#0Aah MOV TA,#55h ORL IAPTRG,#00000001b RET ;IAPUEN is TA protected ;APUEN = 1, enable APROM update ;APUEN = 0, disable APROM update MS51 系列技术参考手册 Enable_CONFIG_Update: MOV TA,#0Aah MOV TA,#55h ORL IAPUEN,#00000100b RET ;IAPEN = 0, disable IAP mode ;CFUEN = 1, enable CONFIG update ;CFUEN = 0, disable CONFIG update ;IAPTRG is TA protected ;write ‘1’ to IAPGO to trigger IAP process ;******************************************************************** ; IAP APROM Function ;******************************************************************** Feb. 21, 2020 Page 255 of 460 Rev. 1.01 MS51 Erase_AP: MOV IAPCN,#PAGE_ERASE_AP MOV IAPFD,#0FFh MOV R0,#00h Erase_AP_Loop: MOV IAPAH,R0 MOV IAPAL,#00h CALL Trigger_IAP MOV IAPAL,#80h CALL Trigger_IAP INC R0 CJNE R0,#44h,Erase_AP_Loop RET Program_AP: MOV IAPCN,#BYTE_PROGRAM_AP MOV IAPAH,#00h MOV IAPAL,#00h MOV DPTR,#AP_code Program_AP_Loop: CLR A MOVC A,@A+DPTR MOV IAPFD,A CALL Trigger_IAP INC DPTR INC IAPAL MOV A,IAPAL CJNE A,#14,Program_AP_Loop RET MS51 系列技术参考手册 Program_AP_Verify: MOV IAPCN,#BYTE_READ_AP MOV IAPAH,#00h MOV IAPAL,#00h MOV DPTR,#AP_code Program_AP_Verify_Loop: CALL Trigger_IAP CLR A MOVC A,@A+DPTR MOV B,A MOV A,IAPFD CJNE A,B,Program_AP_Verify_Error INC DPTR INC IAPAL MOV A,IAPAL CJNE A,#14,Program_AP_Verify_Loop RET Program_AP_Verify_Error: CALL Disable_IAP MOV P0,#00h SJMP $ Feb. 21, 2020 Page 256 of 460 Rev. 1.01 MS51 ;******************************************************************** ; IAP CONFIG Function ;******************************************************************** Erase_CONFIG: MOV IAPCN,#ALL_ERASE_CONFIG MOV IAPAH,#00h MOV IAPAL,#00h MOV IAPFD,#0FFh CALL Trigger_IAP RET Read_CONFIG: MOV IAPCN,#BYTE_READ_CONFIG MOV IAPAH,#00h MOV IAPAL,#02h CALL Trigger_IAP MOV R7,IAPFD RET Program_CONFIG: MOV IAPCN,#BYTE_PROGRAM_CONFIG MOV IAPAH,#00h MOV IAPAL,#02h MOV A,R7 ANL A,#11111011b MOV IAPFD,A MOV R6,A CALL Trigger_IAP RET ;disable BOD reset ;temp data MS51 系列技术参考手册 Program_CONFIG_Verify: MOV IAPCN,#BYTE_READ_CONFIG MOV IAPAH,#00h MOV IAPAL,#02h CALL Trigger_IAP MOV B,R6 MOV A,IAPFD CJNE A,B,Program_CONFIG_Verify_Error RET Program_CONFIG_Verify_Error: CALL Disable_IAP MOV P0,#00h SJMP $ ;******************************************************************** ; APROM code ;******************************************************************** AP_code: DB 75h,0B1h, 00h ;OPCODEs of “MOV P0M1,#0” DB 75h,0Ach, 00h ;OPCODEs of “MOV P3M1,#0” Feb. 21, 2020 Page 257 of 460 Rev. 1.01 MS51 DB DB DB 75h, 90h, 55h 75h,0A0h,0Aah 80h,0Feh ;OPCODEs of “MOV ;OPCODEs of “MOV ;OPCODEs of “SJMP P1,#55h” P2,#0Aah” $” END 6.3.2 在电路编程(ICP) 通过在线电路编程(ICP)编程Flash。如果产品在开发中,或在终端客户的产品需要固件升级,采用硬 件编程模式非常困难且不方便。Flash存储器支持在电路编程(ICP)。不需要将控制器从板上拆下来。 ICP方式同样允许客户在量产电路板上编程设备,在设备装配完成后再编程,这样允许设备编程最新的 固件或定制化固件。 执行 ICP功 能 , 仅需 要 3 个引 脚 ̅̅̅̅̅̅ 、 ICP_DAT 及ICP_CLK 。 ̅̅̅̅̅̅ 用 于进 入 或者 退 出 ICP 模式 , ICP_DAT 为数据输入输出引脚,ICP_CLK 为编程时钟输入引脚。用户必须在电路板上保留 ̅̅̅̅̅̅ 、 ICP_DAT、 ICP_CLK VDD及VSS。 芯唐提供MS51的ICP编程工具Nu_Link,通过新唐ICP编程器,用户可轻松使用ICP。。ICP编程器是芯 唐根据MCU的电气特性专门设计的、高效稳定的编程器。更多细节,请访问芯唐8位微控制器网站:芯 唐 80C51 微控制器技术支持。 6.3.3 片上调试器 (OCD) 6.3.3.1 概述 MS51内嵌片上调试 (OCD) 功能,这为用户提供低成本的调试方法,并且ML51的每一种封装都适用。 OCD具有完整的调试过程控制流程,包括8个硬件断点、单步执行、全速运行、非侵入命令的内存访问 。OCD系统并不占用任何本地内存,也不和偏上外设共享资源。 MS51 系列技术参考手册 当OCDEN (CONFIG0.4)配置为0,LOCK (CONFIG0.1)为1时, OCD才能有效。如果芯片已经加密, OCD就不能工作。OCD系统使用两线串行接口,ICE_DAT和ICE_CLK, 让目标设备和调试控制器建立 通讯。ICE_DAT是输入/输出引脚,调试时用作数据传输,ICE_CLK是输入引脚,调试时传输数据同步 用的时钟。P2.0/nRESET引脚用来控制OCD模式进入和退出。MS51的OCD和ICP功能是共享这3个引 脚。 MS51使用ICE_DAT、ICE_CLK和P2.0/nRESET引脚与OCD系统交互。在设计系统应用OCD时,必须 遵循下面的一些限制条件: 1. P2.0/nRESET配置成外部复位引脚时,不能直接连接到VDD上,并且要连接外部电容。 2. P2.0/nRESET配置成P2.0输入引脚时, 断开所有外部输入源。 3. 所有的外部复位源必须断开。 4. 所有与ICE_DAT和ICE_CLK连接的外围器件都必须断开。 6.3.3.2 OCD的限制条件 由于MS51功能丰富,而引脚有限,一个引脚上可能有多个功能。使用OCD系统时会牺牲掉一些功能。 主要有有如下限制条件: 1. P2.0/nRESET引脚需要配置成OCD模式。因此,不管是P2.0输入还是外部复位源都不能使用。 2. ICE_DAT与 P1.6共享一个引脚。因此,不管是I/O功能还是其他功能都不能使用。 3. ICE_CLK 与P0.2共享一个引脚。因此,不管是I/O功能还是其他功能都不能使用。 4. 当系统处于待机或掉电模式时, 因为部分外设时钟已经停止,所以任何访问都是无效的。读访 Feb. 21, 2020 Page 258 of 460 Rev. 1.01 MS51 问可能返回无用数据,写访问可能失败。 5. 不能关闭HIRC,因为OCD需要这个时钟监视内部工作状态。在调试模式下,关闭HIRC指令将 不起作用。CPU进入掉电模式时HIRC会继续运行。 MS51的OCD系统还有另外一个限制,就是正在运行用户程序时不能执行非侵入命令。非侵入指令允许 用调试器访问MCU存储单元和状态控制寄存器。一个读或写存储器或控制寄存器必须在MCU停止条件 下进行,产生停止条件是在与硬件断点匹配后或者不运行。 MS51 系列技术参考手册 Feb. 21, 2020 Page 259 of 460 Rev. 1.01 MS51 CONFIG0 7 6 5 4 3 2 1 0 CBS - OCDPWM OCDEN - RPD LOCK - 读/写 - 读/写 读/写 - 读/写 读/写 - 出厂默认值: 1111 1111b 位 名字 5 OCDPWM 描述 OCD停止状态下,PWM输出状态。 该位决定当OCD停止CPU时,PWM的输出状态。 1 = PWM 输出三态模式(Tri-state)。 0 = PWM 持续输出. 注:只要当PWM通道对应PIO位设置为10时,这位才有效。 4 OCDEN OCD 使能 1 = 禁止OCD. 0 = 使能OCD 注: 当 MCU运行在OCD调试模式并且OCDEN = 0,硬件故障复位被禁止,仅仅HardF标志被置 位。 6.3.4 96位序列号 出厂前,每颗MS51芯片都会预烧96位唯一序列号。用户只能通过IAP命令读取序列车。详见章节 6.3.1.1IAP命令 . MS51 系列技术参考手册 Feb. 21, 2020 Page 260 of 460 Rev. 1.01 MS51 6.4 6.4.1 通用I/O(GPIO) I/O模式 MS51有30个I/O管脚,其中29个可位寻址的通用I/O, 引脚分成4 组通用输入输出端口 P0 ~ P3,P20只 能输入。每组独立的控制寄存器,读写意义不同:写是写入输出锁存寄存器,读是读的引脚电平。可定 义为准双向 (标准8051结构), 推挽, 仅输入和开漏四种模式,由寄存器 PxM1 和 PxM2 配置,见下图。 复位后为仅输入模式。 PnM1.X[1] PnM2.X[1] 0 0 准双向 0 1 推挽 1 0 输入 1 1 开漏输出 I/O 类型 注 1: n = 0~3, X = 0~7 表 6.4-1 I/O 模式配置 所有引脚都可由寄存器PxS 配置为TTL电平或斯密特输入,施密特触发输入有更好的抗干扰能力。所有 的I/O引脚可通过软件选择位控制,斜率输出能力,由PxSR 配置输出速度:低速或高速,复位缺省为低 速。 例: P0M1 |= 0x40; P0M2 &= 0xBF; // P0.6 配置为仅输入模式 准双向模式,作为8051的传统引脚模式,即可以输入、也可以输出数据。当引脚输出高时,内部上拉 MOS仅能提供小电流,引脚电压可以被外部拉低。当引脚输出低时,下MOS有很强的灌电流能力。引 脚有两个上拉MOS,一个仅能提供小电流的弱上拉MOS,另一个是可以提供大电流的强上拉MOS。 强上拉MOS只在输出数由0变1时,导通两个系统时钟,然后关闭。这样做是为了加快电平上升时间。 GPIO的结构,见下图。 第二种上拉为“强上拉”。这种上拉用于在准双向口引脚上,加速端口电平由逻辑0转为逻辑1的转换速度 。 当这种情况发生时,打开强上拉用两个CPU时钟的时间快速地将端口引脚拉高。 然后就关闭,特弱 上拉继续保持该端口引脚为高, 准双向引脚结构如下所示。 Feb. 21, 2020 Page 261 of 460 Rev. 1.01 MS51 系列技术参考手册 6.4.1.1 准双向模式 MS51 VDD 2-CPU-clock delay P Strong P Very Weak Port Pin N Port Latch Input 图 6.4-1 准双向结构图 6.4.1.2 推挽模式 推挽输出模式与准双向输出模式有相同的下拉结构。当端口锁定为1时,提供持续的强上拉。推挽输出 模式用于需要从端口输出大电流时的应用。 推挽模式的灌电流和拉电流能力都很强,结构见下图。 VDD MS51 系列技术参考手册 P Strong Port Pin Port Latch N Input 图 6.4-2 推挽模式结构图 6.4.1.3 仅输入模式 准双向模式引脚,提供真实的高阻输入路径,虽然可以在输出高时作为输入脚,,但是它需要相对强的 输入源。但是当外部输入为0时,毕竟要消耗电流,而仅输入模式,可以做到无电流消耗,如果是准双 向模式,逻辑0时总是消耗来自VDD 的电流。另外注意,仅输入模式引脚若悬空,会因电压飘呼不定增 加电流消耗,所以仅输入模式的引脚,不能悬空,必须由外部驱动到高、或低电平。 Feb. 21, 2020 Page 262 of 460 Rev. 1.01 MS51 Input Port Pin 图 6.4-3 仅输入模式结构图 6.4.1.4 开漏模式 开漏输出配置关闭所有内部上拉,当端口锁定为逻辑0时,仅打开驱动端口的下拉晶体管。当端口锁存 为逻辑1 时,它就和输入模式一样。通常用于I2C输出线上,开漏引脚需要加一个外部上拉电阻,典型 连一个电阻到VDD。 用户需要注意的是,开漏模式输出逻辑1的时候,应该由外部设备或电阻提供一个 确定的电平。悬浮的引脚在掉电状态下会引起漏电 开漏模式只有下MOS,输出0时,下MOS导通,输出1时,引脚就和输入一样成高阻状态了。这时外部 电路必须让引脚电压为高,否则会增加额外的电流消耗。这种引脚常用于I2C通信。 Port Pin Port Latch N Input 图 6.4-4 开漏模式 6.4.2 引脚中断(PIT) 每个管脚的中断使能和正反向特性通过寄存器 PIPEN 和 PINEN 可以配置每个中断的极性和使能, PICON 配置中断是边沿模式、还是电平模式,寄存器PIF的8位指示是哪个引脚了生了中断,PIF由硬件 置位,只能软件清除。 Feb. 21, 2020 Page 263 of 460 Rev. 1.01 MS51 系列技术参考手册 MS51 每个引脚都可产生中断,用于检测管脚电平状态,如按键或键盘是否按下。但最多配置8个引脚 中断,任何按键按下时通过边沿或电平触发产生一个管脚中断事件。可配置为电平或边沿中断,还可唤 醒空闲或掉电状态的CPU。 MS51 P0 P1 P2 P3 000 001 010 011 (PIPS0[6:4]) P0 P1 P2 P3 000 001 010 011 (PIPS1[6:4]) Px.0 Px.1 Px.2 Px.3 Px.4 Px.5 Px.6 Px.7 Px.0 Px.1 Px.2 Px.3 Px.4 Px.5 Px.6 Px.7 000 001 010 011 100 101 0 PIT0 PIF0 1 PINEN0 110 111 (PIPS0[2:0]) Pin Interrupt Channel 0 PIPEN0 000 001 010 0 011 100 101 PIT1 PIF1 1 PINEN1 110 111 (PIPS1[2:0]) Pin Interrupt Channel 1 PIPEN1 Pin Interrupt P0 P1 P2 P3 000 001 010 011 (PIPS7[6:4]) Px.0 Px.1 Px.2 Px.3 Px.4 Px.5 Px.6 Px.7 000 001 010 011 100 101 110 0 PIT7 PIF7 1 PINEN7 111 (PIPS7[2:0]) Pin Interrupt Channel 7 PIPEN7 图 6.4-5 引脚中断框图 MS51 系列技术参考手册 管脚中断一般用于检测接口设备(键盘板或键盘)的边沿变化。在空闲状态,系统进入掉电模式下,降 到最低功耗等待事件发生,管脚中断能将设备从掉电模式下唤醒。 6.4.3 控制寄存器 MS51有许多I/O控制寄存器提供灵活的各种应用。和I/O端口相关的SFRs可以分类成四组: 输入输出控制, 输出模式控制 输入类型和灌电流控制, 输出速度控制。 6.4.3.1 GPIO输入输出数据控制 这些寄存器是I/O输入输出数据缓存。读获取I/O输入的数据。读引脚电平,或写输出到引脚的电平。可 位寻址。 Feb. 21, 2020 Page 264 of 460 Rev. 1.01 MS51 Pn – 端口 (可位寻址) 寄存器 SFR地址 复位值 P0 80H, 所有页, 可位寻址 1111_1111 b P1 90H, 所有页, 可位寻址 1111_1111 b P2 A0H, 所有页, 可位寻址 0011_1111 b P3 B0H, 所有页, 可位寻址 1111_1111 b 7 6 5 4 3 2 1 0 Pn.7 Pn.6 Pn.5 Pn.4 Pn.3 Pn.2 Pn.1 Pn.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 Pn[7:0] 描述 端口 n n 最多为8. 6.4.3.2 GPIO 模式控制 这些寄存器用于控制GPIO 模式,每个引脚都可单独配置为四种模式之一: 输入,准双向,推挽输出, 开漏输出。 复位缺省为输入模式. I/O 类型 PnM2.X 0 0 准双向 0 1 推挽输出 1 0 输入 1 1 开漏输出 Feb. 21, 2020 Page 265 of 460 MS51 系列技术参考手册 PnM1.X Rev. 1.01 MS51 PnM1 – 模式选择 1 寄存器 SFR地址 复位值 P0M1 B1H, 0页 1111_1111 b P1M1 B3H, 0页 1111_1111 b P2M1 89H, 0页 0011_1111 b P3M1 ACH, 0页 1111_1111 b 7 6 5 4 3 2 1 0 PnM1.7 PnM1.6 PnM1.5 PnM1.4 PnM1.3 PnM1.2 PnM1.1 PnM1.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnM1[7:0] 描述 端口 0 模式选择 1 MS51 系列技术参考手册 Feb. 21, 2020 Page 266 of 460 Rev. 1.01 MS51 PnM2 – 模式选择 2 寄存器 SFR地址 复位值 P0M2 B2H, 0页 0000_0000 b P1M2 B4H, 0页 0000_0000 b P2M2 8AH, 2页 0000_0000 b P3M2 ADH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 PnM2.7 PnM2.6 PnM2.5 PnM2.4 PnM2.3 PnM2.2 PnM2.1 PnM2.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7:0 PnM2[7:0] 端口 0模式选择2 注意: PxM1 和 PxM2 的组合决定了引脚的模式. 详见表 6.4-1 I/O 模式配置. 6.4.3.3 输入类型选择 引脚可单独配置为TTL或斯密特输入,注意:寄存器 PxS 要切换到页1 PnS – 端口 n 斯密特输入使能 SFR地址 复位值 P0S B1H, 1页 0000_0000 b P1S B3H, 1页 0000_0000 b P2S 8CH, 2页 0000_0000 b P3S ACH, 1页 0000_0000 b 7 6 5 4 3 2 1 0 PnS.7 PnS.6 PnS.5 PnS.4 PnS.3 PnS.2 PnS.1 PnS.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnS[7:0] 描述 Pn 斯密特输入使能 0 = Pn.x 是TTL输入电平 1 = Pn.x是斯密特输入电平. Feb. 21, 2020 Page 267 of 460 Rev. 1.01 MS51 系列技术参考手册 寄存器 MS51 6.4.3.4 输出速度控制 MS51可单独控制管脚输出斜率。默认情况下,管脚采用普通斜率模式。当用户切换到高速斜率模式时 ,每个管脚斜率可看到显着变化。注更改PxSR寄存器需要将SFR页切换到页1缺省为低速。 PnSR –引脚速度配置 寄存器 SFR地址 复位值 P0SR B2H, 1页 0000_0000 b P1SR B4H, 1页 0000_0000 b P2SR 8BH, 1页 0000_0000 b P3SR ADH, 1页 0000_0000 b 7 6 5 4 3 2 1 0 PnSR.7 PnSR.6 PnSR.5 PnSR.4 PnSR.3 PnSR.2 PnSR.1 PnSR.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7:0 PnSR[7:0] 描述 Pn 输出速度 0 = Pn.x 低速. 1 = Pn.x 高速 MS51 系列技术参考手册 Feb. 21, 2020 Page 268 of 460 Rev. 1.01 MS51 PICON – 引脚中断类型选择 寄存器 SFR地址 复位值 PICON E9H, 0页, 0011 _0100 b 7 6 5 4 3 2 1 0 PIT7 PIT6 PIT5 PIT4 PIT3 PIT2 PIT1 PIT0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 PIT7 描述 通道7 类型选择. 0 = 电平中断. 1 = 边沿中断 6 PIT6 通道6 类型选择. 0 = 电平中断. 1 = 边沿中断 5 PIT5 通道5 类型选择. 0 = 电平中断. 1 = 边沿中断 4 PIT4 通道4 类型选择. 0 = 电平中断. 1 = 边沿中断 PIT3 MS51 系列技术参考手册 3 通道3 类型选择. 0 = 电平中断. 1 = 边沿中断 2 PIT2 通道2 类型选择. 0 = 电平中断. 1 = 边沿中断 1 PIT1 通道1 类型选择. 0 = 电平中断. 1 = 边沿中断 0 PIT0 通道0 类型选择. 0 = 电平中断. 1 = 边沿中断 Feb. 21, 2020 Page 269 of 460 Rev. 1.01 MS51 PINEN – 负极性中断使能. 寄存器 SFR地址 复位值 PINEN EAH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 PINEN7 PINEN6 PINEN5 PINEN4 PINEN3 PINEN2 PINEN1 PINEN0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 n PINENn 描述 引脚负极性中断使能 电平还是边沿依然由 PICON选择 0 = 低电平/下沿中断禁止. 1 =低电平/下沿中断使能. MS51 系列技术参考手册 Feb. 21, 2020 Page 270 of 460 Rev. 1.01 MS51 PIPEN – 正极性中断使能. 寄存器 SFR地址 复位值 PIPEN EBH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 PIPEN7 PIPEN6 PIPEN5 PIPEN4 PIPEN3 PIPEN2 PIPEN1 PIPEN0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 n PIPENn 描述 引脚正极性中断使能 电平还是边沿依然由 PICON选择 0 = 高电平/上沿中断禁止. 1 = 高电平/上沿中断使能. MS51 系列技术参考手册 Feb. 21, 2020 Page 271 of 460 Rev. 1.01 MS51 PIF – 中断标志位 寄存器 SFR地址 复位值 PIF ECH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 PIF7 PIF6 PIF5 PIF4 PIF3 PIF2 PIF1 PIF0 只读(电平) 只读(电平) 只读(电平) 只读(电平) 只读(电平) 只读(电平) 只读(电平) 只读(电平) 读/写(边沿) 读/写(边沿) 读/写(边沿) 读/写(边沿) 读/写(边沿) 读/写(边沿) 读/写(边沿) 读/写(边沿) 位 名称 n PIFn 描述 引脚中断标志位 若配置为边沿中断,此位由硬件置1,由软件清0。 若配置为电平中断,此位的值与引脚电平相反。软件写无效。 MS51 系列技术参考手册 Feb. 21, 2020 Page 272 of 460 Rev. 1.01 MS51 PIPSn – 中断控制 寄存器 SFR地址 复位值 PIPS7 F7H, 2页 0000_0000 b PIPS6 FFH, 2页 0000_0000 b PIPS5 FEH, 2页 0000_0000 b PIPS4 FDH, 2页 0000_0000 b PIPS3 FCH, 2页 0000_0000 b PIPS2 FBH, 2页 0000_0000 b PIPS1 FAH, 2页 0000_0000 b PIPS0 F9H, 2页 0000_0000 b 7 6 5 4 3 2 1 - PSEL[2:0] - BSEL[2:0] - 读/写 - 读/写 位 名称 6:4 PSEL[2:0] 0 描述 中断GPIO组选择 000 = P0. 001 = P1. 010 = P2. 011 = P3 其它 = 保留 BSEL[2:0] MS51 系列技术参考手册 2:0 引脚中断位选择 000 = Pn.0. 001 = Pn.1 010 =.Pn.2 011 = Pn.3. 100 = Pn.4. 101 = Pn.5. 110 = Pn.6. 111 = Pn.7. n 是组号,由 PSEL[2:0]选择。 Feb. 21, 2020 Page 273 of 460 Rev. 1.01 MS51 6.5 定时器 6.5.1 定时器/計數器0/1 6.5.1.1 概述 定时器/計數器0/1 是两个16位定时计数器,每个都由两个8位的寄存器组成16计数寄存器. 对于定时器/ 计数器0,TH0/1是高位值,TL0/1是低位值,计数模式由 TCON 和 TMOD 可以配置定时器/计数器0和1 的模式。 寄存器TMOD中的位 置定时器1。 ̅配置来选择定时器或计数器功能。TMOD.2配置定时器器/计数器0,TMOD.6 配 将它们设置为定时器后,定时器将对系统时钟周期计数。定时器0通过设置T0M(CKCON.3)位,定时器1 通过设置T1M(CKCON.4)位,来选择定时器时钟是标准的8051计数能力定时模式是对系统时钟或其12 分频或增强型直接是系统时钟。计数,是否分频,定时器0 由T0M (CKCON.3) 配置,定时器1 由T1M (CKCON.4)配置。计数模式是对引脚 T0、T1 的下沿计数,上个系统时钟检测到T0/1是高,下一个时钟 检测到为低,就认为引脚有一个下沿,计数一次。 定时器0/1 可配置为溢出时、引脚T0/1输出电平翻转功能,同一个管脚可以用于T0和T1的输入计数也可 以用于定时器的翻转输出,由寄存器CKCON中的位T0OE 和 T1OE配置。首次使能此功能定时器未溢 出时,引脚输出高。为确保此模式功能, 位应该被清除并且选择系统时钟作为定时器的时钟源 注意,由于定时器的高低字节是分开读写的,若读写高低字节中间,低字节进位高字节值改变,就会出 错,所以,建议模式0和模式1读写前,先清0控制位TR0 (TR1)停止计数。否则, 产生不可预料的结果。 6.5.1.2 模式 0 (13位一次定时模式) 在模式 0, 定时器/计数器是13位的计数器。TH0 (TH1) 是计数的高8位,低5位在TL0 (TL1)的低5位。 TL0 (TL1) 的高3位无效可忽略。TR0 (TR1) =1,并且GATE=0或者 ̅̅̅̅̅̅̅ (̅̅̅̅̅̅̅)=1时,开始计数。Gate 可用于控制定时器测量引脚 ̅̅̅̅̅̅̅ (̅̅̅̅̅̅̅)的脉冲时间。计数到 1FFFH 回 0000H时,TF0 (TF1)会置1, 若使能了中断,会申请中断。 MS51 系列技术参考手册 1/12 T0M (T1M) 0 FSYS 1 C/T 0 1 T0 (T1) pin 0 TL0 (TL1) 4 0 TR0 (TR1) 7 7 TH0 (TH1) TF0 (TF1) Timer Interrupt T0 (T1) pin GATE T0OE (T1OE) INT0 (INT1) pin 图 6.5-1 定时器/計數器 0/1 模式 0 6.5.1.3 模式 1 (16位一次定时模式) 模式 1 除了是16位计数外,其它与模式0相同。模式1计数到FFFFH回0,并置1标志位TF0 (TF1)会置1 ,若使能了中断,会申请中断。 Feb. 21, 2020 Page 274 of 460 Rev. 1.01 MS51 1/12 T0M (T1M) 0 FSYS 1 C/T 0 1 TL0 (TL1) T0 (T1) pin 0 7 0 7 TR0 (TR1) TH0 (TH1) TF0 (TF1) Timer Interrupt T0 (T1) pin GATE T0OE (T1OE) INT0 (INT1) pin 图 6.5-2 定时器/计数器 0/1 模式 1 6.5.1.4 模式 2 (8位自动装载、周期定时模式) 模式2下定时器/计数器为自动重装模式。这种模式,低字节TL0 (TL1) 做为一个8位计数器,高字节TH0 (TH1) 是重装载的周期值,计数寄存器 TL0 (TL1) 溢出后,寄存器TCON中的位 TF0 (TF1) 置 1,并且 TL0 (TL1)被装入TH0 (TH1)的值,继续计数。 这种模式适合作 UART 的波特率产生器。注意:仅定时 器1可做UART的波特率发生器。. 和模式0/1一样,TR0 (TR1) =1,并且GATE=0或者 ̅̅̅̅̅̅̅ (̅̅̅̅̅̅̅)=1时 ,启动计数开始。 1/12 T0M (T1M) 0 FSYS 1 C/T 0 1 T0 (T1) pin TL0 (TL1) 0 7 TF0 (TF1) Timer Interrupt TR0 (TR1) 0 GATE 7 TH0 (TH1) INT0 (INT1) pin 图 6.5-3 定时器/计数器 0/1 模式 2 6.5.1.5 模式 3 (双8位定时模式) 定时器0 和 定时器1的模式3操作方式不同。对定时器/计数器1来说模式3会将其停用;对定时器/ 计数器 0来说,此模式下,TL0 和 TH0 被当做两个独立的8位计数器。TL0 用定时器0 的控制位 ̅, GATE, TR0, ̅̅̅̅̅̅̅, 和 TF0。TL0 还可以由 ̅ (TMOD.2)控制对引脚T0的下沿计数。 TH0 被强制为8位计数并 由TR1 和 TF1控制。当需要额外的8位定时器时可以使用模式3 。当定时器0配置为模式3时,定时器1可 以通过配置其进入或离开模式3的方式来打开或关闭自己。此时定时器1依然可以配置为模式0,1或2工 作,只是灵活性受到了限制,不能再用控制位TF1 和 TR1。可以使用 GATE, ̅̅̅̅̅̅̅ 引脚和 T1M控制, 可以当做串口波特率发生器,或者无需中断的定时器。 Feb. 21, 2020 Page 275 of 460 Rev. 1.01 MS51 系列技术参考手册 T0 (T1) pin T0OE (T1OE) MS51 1/12 T0M 0 FSYS C/T 1 0 1 TL0 T0 pin 0 7 TF0 Timer 0 Interrupt T0 pin T0OE TR0 GATE TH0 INT0 pin 0 TR1 7 TF1 Timer 1 Interrupt T1 pin T1OE 图 6.5-4 定时器/计数器 0 模式 3 6.5.1.6 与定时器有关的引脚控制寄存器 TMOD – 定时器0 模式1 寄存器 SFR地址 复位值 TMOD 89H, 0页 0000_0000b 7 6 ̅ GATE 读/写 读/写 MS51 系列技术参考手册 位 名称 7 GATE 5 4 3 2 M1 M0 GATE 读/写 读/写 读/写 ̅ 读/写 1 0 M1 M0 读/写 读/写 描述 定时器1 门控 0 = 定时器1 在TR1 = 1 时计数,与 ̅̅̅̅̅̅̅ 无关 1 = 定时器1 在TR1 = 1 并且 ̅̅̅̅̅̅̅ = 1时开始计数. 6 ̅ 定时器1 定时或计数选择 0 = 定时器1 对系统时钟计数 1 = 定时器1 对引脚T1的下沿计数. 5 M1 Feb. 21, 2020 定时器1 模式选择 Page 276 of 460 Rev. 1.01 MS51 位 名称 4 M0 3 GATE 描述 模式 M1 M0 0 0 模式0: 13位定时计数模式 0 1 模式1: 16位定时计数模式 1 0 模式2: 8位从 TH1自动重装载 1 1 模式3: 定时器1 停止 定时器0 门控 0 = 定时器0 在TR0 = 1 时计数,与 ̅̅̅̅̅̅̅ 无关 1 = 定时器0 在TR0 = 1 并且 ̅̅̅̅̅̅̅ = 1时开始计数 2 ̅ 定时器0 定时或计数选择 0 = 定时器0 对系统时钟计数 1 = 定时器0 对引脚T0的下沿计数. 1 M1 0 M0 定时器0 模式选择 模式 M1 M0 0 0 模式0: 13位定时计数模式 0 1 模式1: 16位定时计数模式 1 0 模式2: 8位从 TH0自动重装载 1 1 模式3: TL0和TH0做为两个8位定时器用 MS51 系列技术参考手册 Feb. 21, 2020 Page 277 of 460 Rev. 1.01 MS51 TCON – 定时器0/1 控制 寄存器 SFR地址 复位值 TCON 88H, 所有页,可位寻址 0000_0000b 7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 TF1 描述 定时器1 溢出标志 定时器溢出时置1,执行中断函数后硬件清0,可被软件清0或置1 6 TR1 定时器1计数控制 0 = 定时器1 停止计数, TH1 和 TL1保留当前值。 1 = 定时器1 使能计数 5 TF0 定时器0 溢出标志 定时器溢出时置1,执行中断函数后硬件清0,可被软件清0或置1 4 TR0 定时器 0计数控制 0 = 定时器1 停止计数, TH1 和 TL1保留当前值。 1 = 定时器1 使能计数。 3 IE1 INT1中断 标志 MS51 系列技术参考手册 若 IT1 = 1 (下沿中断),引脚有下沿就置1,执行中断函数后由硬件清0,或软件清0. 若 IT1 = 0 (低民电平中断),引脚 ̅̅̅̅̅̅̅ 的反值,软件无法控制 2 IT1 INT1 中断类型配置 0 = ̅̅̅̅̅̅̅ 低电平中断. 1 = ̅̅̅̅̅̅̅ 下沿中断 1 IE0 INT0 中断标志 若 IT0 = 1 (下沿中断),引脚有下沿就置1,执行中断函数后由硬件清0,或软件清0. 若 IT0 = 0 (低民电平中断),引脚 ̅̅̅̅̅̅̅ 的反值,软件无法控制 0 IT0 INT0 中断类型配置 0 = ̅̅̅̅̅̅̅ 低电平中断. 1 = ̅̅̅̅̅̅̅ 下沿中断 Feb. 21, 2020 Page 278 of 460 Rev. 1.01 MS51 TL0 – 定时器0低字节值 寄存器 SFR地址 复位值 TL0 8AH, 0页 0000_0000b 7 6 5 4 3 2 1 0 TL0[7:0] 读/写 位 名称 7:0 TL0[7:0] 描述 定时器0 低字节值 MS51 系列技术参考手册 Feb. 21, 2020 Page 279 of 460 Rev. 1.01 MS51 TH0 – 定时器0 高字节值 寄存器 SFR地址 复位值 TH0 8CH, 0页 0000_0000b 7 6 5 4 3 2 1 0 TH0[7:0] 读/写 位 名称 7:0 TH0[7:0] 描述 定时器0 高字节值 MS51 系列技术参考手册 Feb. 21, 2020 Page 280 of 460 Rev. 1.01 MS51 TL1 – 定时器1低字节值 寄存器 SFR地址 复位值 TL1 8BH, 0页 0000_0000b 7 6 5 4 3 2 1 0 TL1[7:0] 读/写 位 名称 7:0 TL1[7:0] 描述 定时器1低字节值 MS51 系列技术参考手册 Feb. 21, 2020 Page 281 of 460 Rev. 1.01 MS51 TH1 – 定时器1高字节值 寄存器 SFR地址 复位值 TH1 8DH, 0页 0000_0000b 7 6 5 4 3 2 1 0 TH1[7:0] 读/写 位 名称 7:0 TH1[7:0] 描述 定时器1 高字节值 MS51 系列技术参考手册 Feb. 21, 2020 Page 282 of 460 Rev. 1.01 MS51 CKCON – 计数时钟控制 寄存器 SFR地址 复位值 CKCON 8EH, 0页 0000_0000b 7 6 5 4 3 2 1 0 - PWMCKS - T1M T0M T0OE CLOEN - - 读/写 - 读/写 读/写 读/写 读/写 - 位 名称 4 T1M 描述 定时器1 时钟分频选择 0 = 对系统时钟的12分频计数 1 = 对系统时钟计数 3 T0M 定时器0时钟分频选择 0 = 对系统时钟的12分频计数 1 = 对系统时钟计数 2 T0OE 定时器0 输出使能 0 = 禁止引脚T0的输出. 1 = 使能引脚T0的输出,对引脚计数模式无效. 定时器2 和输入捕获 6.5.2.1 概述 定时器2 是高低字节TH2和TL2级联的、有8种分频系数选择的、16位定时器,配备两个比较寄存器 ̅̅̅̅̅̅ (T2CON.0)配置。定时器2 还配 RCMP2H 和 RCMP2L。 定时器2的比较模式和重装载模式由 备 了 三 个 通 道 的 输 入 捕 获 模 块 , 捕 获 时 间 分 别 存 放 于 C0H/C0L , C1H/C1L 和 C2H/C2L 中 。 TR2 (T2CON.2) = 1 使能计数时钟。见下图。 Feb. 21, 2020 Page 283 of 460 Rev. 1.01 MS51 系列技术参考手册 6.5.2 MS51 C0L P1.5/IC7 P0.5/IC6 P0.3/IC5 P0.1/IC4 P0.4/IC3 P0.0/IC3 P1.0/IC2 P1.1/IC1 P1.2/IC0 1000 0111 0110 0101 0100 0011 0010 0001 0000 CAP1 CAP2 CAPF0 CAPF0 [00] CAP0 C0H CAPF1 Noise Filter Input Capture Interrupt [01] CAPF2 ENF0 (CAPCON2.4) [10] or CAPEN0 (CAPCON0.4) CAP0LS[1:0] (CAPCON1[1:0]) Input Capture 0 Module Input Capture 1 Module Input Capture 2 Module Input Capture Flags (CAPF[2:0]) CAPF0 CAPF1 CAPF2 CMPCR (T2MOD.2) Clear Counter Clear Timer 2 CAPCR[1] (T2MOD.3) Clear Timer 2 FSYS Pre-scalar T2DIV[2:0] (T2MOD[6:4]) TL2 TH2 TF2 Timer 2 Interrupt TR2 (T2CON.2) CAPF0 CAPF1 CAPF2 LDTS[1:0] (T2MOD[1:0]) 00 01 10 11 = LDEN[1] (T2MOD.7) RCMP2L RCMP2H Timer 2 Module [1] Once CAPCR and LDEN are both set, an input capture event only clears TH2 and TL2 without reloading RCMP2H and RCMP2L contents. MS51 系列技术参考手册 图 6.5-5 定时器 2 框图 Feb. 21, 2020 Page 284 of 460 Rev. 1.01 MS51 6.5.2.2 自动装载模式 ̅̅̅̅̅̅ =0,定时器2 就配置为自动装载模式,位LDEN置1时,一旦装载事件出现,RCMP2H和 RCMP2L 的 值 就 会 装 载 到 TH2 和 TL2 。 装 载 事 件 可 以 是 定 时 器 2 溢 出 、 或 者 是 由 LDTS[1:0] (T2MOD[1:0])配置的输入捕获事件之一。注意:CAPCR (T2MOD.3) 置1时,输入捕获事件只会清0寄存 器TH2 和 TL2, 不会加载 RCMP2H 和 RCMP2L 。 C0L P1.5/IC7 P0.5/IC6 P0.3/IC5 P0.1/IC4 P0.4/IC3 P0.0/IC3 P1.0/IC2 P1.1/IC1 P1.2/IC0 1000 0111 0110 0101 0100 0011 0010 0001 0000 Noise Filter CAP1 CAPF1 [10] Input Capture Interrupt CAPF2 [01] ENF0 (CAPCON2.4) CAP2 CAPF0 CAPF0 [00] CAP0 C0H or CAPEN0 (CAPCON0.4) CAP0LS[1:0] (CAPCON1[1:0]) Input Capture 0 Module Input Capture 1 Module Input Capture Flags CAPF[2:0] Input Capture 2 Module CAPF0 CAPF1 CAPF2 Clear Timer 2 FSYS Pre-scalar T2DIV[2:0] (T2MOD[6:4]) TL2 TH2 RCMP2L RCMP2H CAPCR[1] (T2MOD.3) TF2 Timer 2 Interrupt TR2 (T2CON.2) CAPF0 CAPF1 CAPF2 LDTS[1:0] (T2MOD[1:0]) 00 01 10 11 LDEN[1] (T2MOD.7) Timer 2 Module [1] Once CAPCR and LDEN are both set, an input capture event only clears TH2 and TL2 without reloading RCMP2H and RCMP2L contents. MS51 系列技术参考手册 图 6.5-6 定时器 2 自动装载和输入捕获框图 Feb. 21, 2020 Page 285 of 460 Rev. 1.01 MS51 6.5.2.3 比较模式 ̅̅̅̅̅̅ .=1 时定 时器 2配 置为 比较 模式, TH2/TL2计 数值 与 RCMP2H/RCMP2L 相同 时, 标志位TF2 (T2CON.7) 将置1 。 CMPCR (T2MOD.2) 置1时,比较匹配事件会清0 定时器 2 。 C0L P1.5/IC7 P0.5/IC6 P0.3/IC5 P0.1/IC4 P0.4/IC3 P0.0/IC3 P1.0/IC2 P1.1/IC1 P1.2/IC0 1000 0111 0110 0101 0100 0011 0010 0001 0000 Noise Filter CAP1 CAPF1 [10] Input Capture Interrupt CAPF2 [01] ENF0 (CAPCON2.4) CAP2 CAPF0 CAPF0 [00] CAP0 C0H or CAPEN0 (CAPCON0.4) CAP0LS[1:0] (CAPCON1[1:0]) Input Capture 0 Module Input Capture 1 Module Input Capture 2 Module CMPCR (T2MOD.2) Clear Timer 2 FSYS Pre-scalar T2DIV[2:0] (T2MOD[6:4]) TL2 TR2 (T2CON.2) TH2 = RCMP2L TF2 Timer 2 Interrupt RCMP2H Timer 2 Module MS51 系列技术参考手册 图 6.5-7 定时器 2 比较模式和捕获模式框图 Feb. 21, 2020 Page 286 of 460 Rev. 1.01 MS51 6.5.2.4 输入捕获模块 三个输入捕获模块(CAP0, CAP1, 和 CAP2)由CAPCON0~2配置。各自独立的噪声滤波电路由 ENF0~2 (CAPCON2[6:4]) 使 能 , 滤 除 短 于 4 个 系 统 时 钟 的 脉 冲 。 每 个 通 道 都 有 独 立 的 边 沿 检 测 电 路 , 由 CAPCON1的相关位配置,可以捕获上沿,下沿,和双沿都捕获。当然,别忘了捕获使能位CAPEN0~2 (CAPCON0[6:4])。 当捕获通道使能,并且发生了配置的边沿事件,定时器2的计数值 TH2/TL2 的当前值,就存入CnH/CnL ,同时置位标志 CAPFn (CAPCON0.n)。 若ECAP (EIE0.2) 和EA 都置1了,就会去执行中断函数,三 个捕获事件共用一个中断函数。哪个通道发生捕获,可查寻 标志位CAPFn,此位要软件清0。 位CAPCR (CAPCON2.3)便于计算脉冲宽度,此位若置1,发生捕获时,TH2/TL2存入CnH/CnL后就清0 ,这样就不必再做减法求脉宽了。 6.5.2.5 定时器2 控制寄存器 T2CON – 定时器2 控制 寄存器 SFR地址 复位值 T2CON C8H, 所有页,可位寻址 0000_0000 b 7 6 5 4 3 2 1 0 TF2 - - - - TR2 - ̅̅̅̅̅̅ 读/写 - - - - 读/写 - 位 名称 7 TF2 读/写 描述 定时器2 溢出标志 5:3 - 2 TR2 保留 定时器 2 运行使能 0 = 禁止定时器 2计数,TH2 和 TL2保留当前值。 1 = 使能 定时器 2. 1 - 保留 0 ̅̅̅̅̅̅ 定时器2比较或自动装载模式选择 0 = 自动装载模式. 1 = 比较模式 Feb. 21, 2020 Page 287 of 460 Rev. 1.01 MS51 系列技术参考手册 定时器 2 溢出或计数到比较值此位置1,若全局中断使能,会去执行中断函数。此位硬件不清0,需由 软件清0 MS51 T2MOD – 定时器2 模式 寄存器 SFR地址 复位值 T2MOD C9H, 0页 0000_0000 b 7 6 5 4 3 2 1 0 LDEN T2DIV[2:0] CAPCR CMPCR LDTS[1:0] 读/写 读/写 读/写 读/写 读/写 位 名称 7 LDEN 描述 自动装载使能 0 = 禁止 RCMP2H/RCMP2L 往TH2/TL2 中装载 1 = 使能 RCMP2H/RCMP2L 往TH2/TL2 中装载 6:4 T2DIV[2:0] 定时器2 预分频系数选择 000 = 1/1. 001 = 1/4. 010 = 1/16. 011 = 1/32. 100 = 1/64. 101 = 1/128. 110 = 1/256. 111 = 1/512. 3 CAPCR 捕获清0使能 MS51 系列技术参考手册 引位仅重装模式有效,发生捕获事件后,计数值 TH2/TL2 装入 RCMP2H/RCMP2L ,同时执行以 下动作 0 =捕获事件发生后 定时器 2 保持计数. 1 =捕获事件发生后定时器 2 清0后开始计数 2 CMPCR 比较清0使能 此位仅比较模式有效 0 = 比较事件发生后 定时器2保持计数 1 =比较事件发生后 定时器 2 清0后开始计数. 1:0 LDTS[1:0] 重装触发选择 00 = 定时器2 溢出就重装. 01 = 输入捕获事件 0 触发重装 10 = 输入捕获事件 1 触发重装. 11 = 输入捕获事件 2 触发重装. Feb. 21, 2020 Page 288 of 460 Rev. 1.01 MS51 RCMP2L– 定时器2 重装/比较低字节 寄存器 SFR地址 复位值 寄存器 SFR地址 复位值 7 6 5 4 3 2 1 0 RCMP2L[7:0] 读/写 位 名称 7:0 RCMP2L[7:0] 描述 定时器2 重装或比较的低字节 定时器2配置为比较模式时,此值是比较值的低字节, 自动装载模式时是重装值的低字节. MS51 系列技术参考手册 Feb. 21, 2020 Page 289 of 460 Rev. 1.01 MS51 RCMP2H – 定时器2重装/比较高字节 寄存器 SFR地址 复位值 RCMP2H CBH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 RCMP2H[7:0] 读/写 位 名称 7:0 RCMP2H[7:0] 描述 定时器2 重装或比较的高字节 定时器2配置为比较模式时,此值是比较值的高字节, 自动装载模式时是重装值的高字节. MS51 系列技术参考手册 Feb. 21, 2020 Page 290 of 460 Rev. 1.01 MS51 TL2 – 定时器2 低字节 寄存器 SFR地址 复位值 TL2 CCH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 TL2[7:0] 读/写 位 名称 7:0 TL2[7:0] 描述 定时器2 低字节 TL2 是定时器16位的低字节 MS51 系列技术参考手册 Feb. 21, 2020 Page 291 of 460 Rev. 1.01 MS51 TH2 – 定时器2 高字节 寄存器 SFR地址 复位值 TH2 CDH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 TH2[7:0] 读/写 位 名称 7:0 TH2[7:0] 描述 定时器2 高字节 TH2 是定时器16位的高字节 注意: TH2 TL2 是分开读写的,为防止读写出错,请在读写前,置位TR2停止计数。 MS51 系列技术参考手册 Feb. 21, 2020 Page 292 of 460 Rev. 1.01 MS51 CAPCON0 – 捕获控制 0 寄存器 SFR地址 复位值 CAPCON0 92H, 0页 0000_0000b 7 6 5 4 3 2 1 0 - CAPEN2 CAPEN1 CAPEN0 - CAPF2 CAPF1 CAPF0 - 读/写 读/写 读/写 - 读/写 读/写 读/写 位 名称 7 - 6 CAPEN2 描述 保留 捕获通道2使能 0 = 禁止捕获通道2. 1 = 使能捕获通道2. 5 CAPEN1 捕获通道1使能 0 = 禁止捕获通道1. 1 = 使能捕获通道1. 4 CAPEN0 捕获通道0使能 0 = 禁止捕获通道0. 1 = 使能捕获通道0 - 2 CAPF2 保留 MS51 系列技术参考手册 3 通道 2 捕获标志 通道2发生捕获事件时,此位置1,需软件清0. 1 CAPF1 通道 1 捕获标志 通道1发生捕获事件时,此位置1,需软件清0 0 CAPF0 通道 0 捕获标志 通道0发生捕获事件时,此位置1,需软件清0 Feb. 21, 2020 Page 293 of 460 Rev. 1.01 MS51 CAPCON1 –捕获控制1 寄存器 SFR地址 复位值 CAPCON1 93H, 0页 0000_0000b 7 6 - - CAP2LS[1:0] CAP1LS[1:0] CAP0LS[1:0] - - 读/写 读/写 读/写 位 名称 7:6 - 5:4 CAP2LS[1:0] 5 4 3 2 1 0 描述 保留 捕获通道2 触发边沿选择 00 = 下沿. 01 = 上沿. 10 = 双沿. 11 =保留. 3:2 CAP1LS[1:0] 捕获通道1 触发边沿选择 00 = 下沿. 01 = 上沿. 10 = 双沿. 11 =保留. MS51 系列技术参考手册 1:0 CAP0LS[1:0] 捕获通道0 触发边沿选择 00 = 下沿. 01 = 上沿. 10 = 双沿. 11 =保留. Feb. 21, 2020 Page 294 of 460 Rev. 1.01 MS51 CAPCON2 –捕获控制2 寄存器 SFR地址 复位值 CAPCON2 94H, 0页 0000_0000b 7 6 5 4 3 2 1 0 - ENF2 ENF1 ENF0 - - - - - 读/写 读/写 读/写 - - - - 位 名称 6 ENF2 描述 通道2的噪声滤波器使能位 0 = 禁止通道2的噪声滤波 1 = 使能通道2的噪声滤波. 5 ENF1 通道1的噪声滤波器使能位 0 = 禁止通道1的噪声滤波 1 = 使能通道1的噪声滤波. 4 ENF0 通道0的噪声滤波器使能位 0 = 禁止通道0的噪声滤波 1 = 使能通道0的噪声滤波.. MS51 系列技术参考手册 Feb. 21, 2020 Page 295 of 460 Rev. 1.01 MS51 CnL –捕获低字节, n = 0,1,2 寄存器 SFR地址 复位值 C0L E4H, 0页 0000_0000 b C1L E6H, 0页 0000_0000 b C2L EDH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 CnL[7:0] 读/写 位 名称 7:0 CnL[7:0] 描述 捕获16位时间值的低字节 MS51 系列技术参考手册 Feb. 21, 2020 Page 296 of 460 Rev. 1.01 MS51 CnH – 捕获高字节, n = 1,2,3 寄存器 SFR地址 复位值 C0H E5H, 0页 0000_0000 b C1H E7H, 0页 0000_0000 b C2H EEH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 CnH[7:0] 读/写 位 名称 7:0 CnH[7:0] 描述 捕获16位时间值的高字节 MS51 系列技术参考手册 Feb. 21, 2020 Page 297 of 460 Rev. 1.01 MS51 CAPCON3 –捕获控制3 寄存器 SFR地址 复位值 CAPCON3 F1H, 0页 0000_0000 b 7 6 5 4 3 2 1 0 CAP13 CAP12 CAP11 CAP10 CAP03 CAP02 CAP01 CAP00 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 [7:4] CAP1[3:0] 描述 捕获通道1引脚选择 0000 = P1.2/IC0 0001 = P1.1/IC1 0010 = P1.0/IC2 0011 = P0.0/IC3 0100 = P0.4/IC3 0101 = P0.1/IC4 0110 = P0.3/IC5 0111 = P0.5/IC6 1000 = P1.5/IC7 其它 = P1.2/IC0 [3:0] CAP0[3:0] 捕获通道0引脚选择 0000 = P1.2/IC0 0001 = P1.1/IC1 MS51 系列技术参考手册 0010 = P1.0/IC2 0011 = P0.0/IC3 0100 = P0.4/IC3 0101 = P0.1/IC4 0110 = P0.3/IC5 0111 = P0.5/IC6 1000 = P1.5/IC7 其它 = P1.2/IC0 Feb. 21, 2020 Page 298 of 460 Rev. 1.01 MS51 CAPCON4 –捕获控制4 寄存器 SFR地址 复位值 CAPCON4 F2H, 0页 0000_0000 b 7 6 5 4 3 2 1 0 - - - - CAP23 CAP22 CAP21 CAP20 - - - - 读/写 读/写 读/写 读/写 位 [3:0] 名称 描述 捕获通道2引脚选择 CAP2[3:0] 0000 = P1.2/IC0 0001 = P1.1/IC1 0010 = P1.0/IC2 0011 = P0.0/IC3 0100 = P0.4/IC3 0101 = P0.1/IC4 0110 = P0.3/IC5 0111 = P0.5/IC6 1000 = P1.5/IC7 其它 = P1.2/IC0 定时器 3 6.5.3.1 概述 定时器3 是一个16位自动装载、上计数的定时器,由T3PS[2:0] (T3CON[2:0]) 配置分频系数,重装载值 RH3 和 RL3 决定了溢出周期,设定好重装载值后,置1位 TR3 (T3CON.3) 开始计数。计到FFFFH再装 载 RH3,RL3,并且置1位 TF3 (T3CON.4) ,如果 ET3 (EIE1.1) 是1允许中断, 将执行中断函数,TF3 在 进入中断函数里被硬件清0. 定时器3 可做 UART波特率发生器。详见 章节6.9.3波特率. FSYS Pre-scalar (1/1~1/128) TR3 (T3CON.3) T3PS[2:0] (T3CON[2:0]) Timer 3 Overflow Internal 16-bit Counter 0 7 0 RL3 TF3 (T3CON.4) Timer 3 Interrupt 7 RH3 图 6.5-8 定时器 3 框图 6.5.3.2 定时器3 的控制寄存器 Feb. 21, 2020 Page 299 of 460 Rev. 1.01 MS51 系列技术参考手册 6.5.3 MS51 T3CON – 定时器3 控制寄存器 寄存器 SFR地址 复位值 T3CON C4H, 0页 0000_0000 b 7 6 5 4 3 SMOD_1 SMOD0_1 BRCK TF3 TR3 T3PS[2:0] 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 4 TF3 2 1 0 描述 定时器3 溢出标志 计数溢出时此位置1,执行中断函数后硬件清0。此位也可由软件清0或置1 3 TR3 定时器3 运行控制 0 = 定时器3 停止状态. 1 = 定时器3 计数状态. 注意: 只能在停止状态(TR3 = 0)写RH3 RL3,否则可能计数进位引起错误。 2:0 T3PS[2:0] 定时器3 预分频配置. 000 = 1/1. 001 = 1/2. 010 = 1/4. 011 = 1/8. 100 = 1/16. 101 = 1/32. MS51 系列技术参考手册 110 = 1/64. 111 = 1/128. Feb. 21, 2020 Page 300 of 460 Rev. 1.01 MS51 RL3 – 定时器3 加载值代字节 寄存器 SFR地址 复位值 RL3 C5H, 0页 0000_0000 b 7 6 5 4 3 2 1 0 RL3[7:0] 读/写 位 名称 7:0 RL3[7:0] 描述 定时器3加载值低字节 就是周期值低字节 MS51 系列技术参考手册 Feb. 21, 2020 Page 301 of 460 Rev. 1.01 MS51 RH3 – 定时器3 加载值高字节 寄存器 SFR地址 复位值 RH3 C6H, 0页 0000_0000 b 7 6 5 4 3 2 1 0 RH3[7:0] 读/写 位 7:0 名称 RH3[7:0] 描述 定时器 3 加载值高字节 就是周期值高字节 MS51 系列技术参考手册 Feb. 21, 2020 Page 302 of 460 Rev. 1.01 MS51 6.6 6.6.1 脉冲宽度调制(PWM) 概述 PWM 应用广泛,可以控制电机,风扇,背光调节或LED亮度调节,低通滤波后还可以当做DAC使用。 PWM0 针对电机控制做了特别设计,三对输出,周期和占空比数值16位可调,控制单相或三相无刷直 流电机、或三相交流电机非常方便。六路 PWM 可配置为独立模式,互补模式,或同步模式,互补模式 死区可调。波形和中断可配置为中心对齐或边沿对齐模式。 PWM1/2/3,可分别配置16位的周期和占空比。这三对都可配置为独立、互补或同步模式,波形和中断 点可配置为中心或边沿对齐模式。 6.6.2 引脚配置 PWM PWM0_CH0 PWM0_CH1 PWM0_CH2 PWM0_CH3 PWM0_CH4 PWM0_CH5 PWM1_CH0 PWM2_CH0 PWM2_CH1 PWM3_CH0 PWM3_CH1 控制寄存器 1 控制寄存器2 寄存器名 位名 值 寄存器名 位名 值 P1.2 PIOCON0 PIO12 1 AUXR4[1:0] PWM1C0P 00 P3.3 PIOCON2 PIO33 1 - - - P1.1 PIOCON0 PIO11 1 AUXR4[3:2] PWM1C1P 00 P1.4 PIOCON1 PIO14 1 AUXR4[3:2] PWM1C1P 00 P0.5 PIOCON1 PIO05 1 AUXR4[5:4] PWM2C0P 00 P1.0 PIOCON0 PIO10 1 - - - P0.4 PIOCON1 PIO04 1 AUXR4[7:6] PWM2C1P 00 P0.0 PIOCON0 PIO00 1 AUXR4[7:6] PWM2C1P 00 P0.1 PIOCON0 PIO01 1 AUXR5[1:0] PWM3C0P 00 P0.3 PIOCON0 PIO03 1 AUXR5[3:2] PWM3C1P 00 P1.5 PIOCON1 PIO15 1 AUXR5[3:2] PWM3C1P 00 P2.3 PIOCON2 PIO23 1 P1.2 PIOCON0 PIO12 1 AUXR4[1:0] PWM1C0P P2.2 PIOCON2 PIO22 1 P1.4 PIOCON1 PIO14 1 P1.1 PIOCON0 PIO11 1 11 P2.1 PIOCON2 PIO21 1 00 P1.0 PIOCON0 PIO10 1 P0.5 PIOCON1 PIO05 1 10 P3.0 PIOCON2 PIO30 1 00 P3.1 PIOCON2 PIO31 1 P0.0 PIOCON0 PIO00 1 P0.4 PIOCON1 PIO04 1 11 P3.2 PIOCON2 PIO32 1 01 P0.1 PIOCON0 PIO01 1 P1.7 PIOCON1 PIO17 1 - P3.4 PIOCON2 PIO34 1 01 P1.5 PIOCON1 PIO15 1 P0.3 PIOCON0 PIO03 1 01 10 01 AUXR4[3:2] AUXR4[5:4] AUXR4[7:6] AUXR5[1:0] AUXR5[3:2] PWM1C1P PWM2C0P PWM2C1P PWM3C0P PWM3C1P 10 01 01 10 10 10 11 表 6.6-1 PWM 引脚定义和使能寄存器表 Feb. 21, 2020 Page 303 of 460 Rev. 1.01 MS51 系列技术参考手册 PWM1_CH1 引脚 MS51 6.6.3 结构框图 (PWM0PH, PWM0PL) PWM0P registers 0-to-1 LOAD (PWM0CON0.6) PWM0P buffer Counter Matching(edgealigned)/ underflow(venter aligned) = PWMRUN (PWM0CON0.7) FSYS Timer 1 overflow 0 1 PWMCKS (CKCON.6) Pre-scalar PWMDIV0[2:0] (PWM0CON1[2:0]) FPWM edge/center 16-bit up/down counter PWMTYP (PWM0CON1.4) clear counter CLRPWM (PWMnCON0.4) PWMF (PWM0CON0.5) Interrupt select/type P0G0 = PWM0 interrupt INTSEL[1:0], INTTYP[1:0] (PWMnCON0[3:0]) PWM0_CH0 PWM0C0 buffer (PWM0CH0H, PWM0CH0L) PWM0C0 Register P0G1 = PWM0_CH1 PWM0C1 buffer (PWM0CH1H, PWM0CH1L) PWM0C1 Register = 0 PWM0_CH2 P0G2 1 PWM0C2 buffer (PWM0CH2H, PWM0CH2L) PWM0 and Fault Brake output control PWM0C2 Register = 0 P0G3 PWM0_CH3 P0G4 PWM0_CH4 P0G5 PWM0_CH5 1 PWM0C3 buffer MS51 系列技术参考手册 (PWM0CH3H, PWM0CH3L) PWM0C3 Register = 0 1 PWM0C4 buffer (PWM0CH4H, PWM0CH4L) PWM0C4 Register = 0 1 PWM0C5 buffer GP [PWM0CON1.5] (PWM0CH5H, PWM0CH5L) PWM0C5 Register Brake event (PWM0_BRAKE) 图 6.6-1 PWM0 框图 Feb. 21, 2020 Page 304 of 460 Rev. 1.01 MS51 (PWMnPH, PWMnPL) PWMnP registers 0-to-1 LOAD (PWMnCON0.6) PWMnP buffer Counter Matching(edgealigned)/ underflow(venter aligned) = PWMRUNn FSYS Timer 1 overflow 0 1 PWMCKS (CKCON.6) Pre-scalar PWMDIV0[2:0] (PWMnCON1[2:0]) FPWM edge/center 16-bit up/down counter clear counter PWMTYP (PWMnCON1.4) CLRPWM (PWMnCON0.4) = PWMF (PWMnCON0.5) Interrupt select/type PnG0 PWMn interrupt INTSEL[1:0], INTTYP[1:0] (PWMnCON0[3:0]) PWMn_CH0 PWMnC0 buffer (PWMnCH0H, PWMnCH0L) PWMn and Fault Brake output control PWMnC0 Register = PnG1 PWMn_CH1 PWMnC1 buffer (PWMnCH1H, PWMnCH1L) PWMnC1 Register Brake event (PWMn_BRAKE) 图 6.6-2 PWM1/2/3 框图 功能描述 6.6.4.1 PWM 发生器 PWM 的时钟可选系统时 钟或 定时器 1 的溢 出频 率,再经 1/1~1/128分 频 。周期由 {PWMnPH, PWMnPL}配置,n=0,1,2,3,每组由一个周期计数器。PWM0 有六个占空比寄存器。 只 有 PWM0 有 方 便 电 机 控 制 的 组 模 式 , 由 GP (PWM0CON1.5) 配 置 。 这 种 模 式 {PWM0C0H, PWM0C0L} 和 {PWM0C1H,PWM0C1L} 就 决 定 了 六 路 的 占 空 比 了 。 这 种 模 式 下 {PWM0C2H, PWM0C2L} 和 {PWM0C4H, PWM0C4L} 的 值 与 {PWM0C0H, PWM0C0L} 相 同 , {PWM0C3H, PWM0C3L} 和 {PWM0C5H, PWM0C5L} 的值与 {PWM0C1H, PWM0C1L}相同。注意,使用 PWM0别 忘了把引脚配置为PWM功能。 PWM0 产生的六路PWM信号被命名为 P0G0, P0G1, P0G2, P0G3, P0G4 和 P0G5。信号的输出电路控 制 PWM 的模式、插入死区,同时做输出消隐控制和紧急停止和极性控制,最后由引脚输出。 PWM1/2/3 各自输出两路PWM信号。输出电路决定 PWM 模式,输出消隐控制和极性控制,然后由引 脚输出。 Feb. 21, 2020 Page 305 of 460 Rev. 1.01 MS51 系列技术参考手册 6.6.4 MS51 PWM0 and Fault Brake output control PWM mode select Dead time insertion Mask output Brake control PWM polarity PMEN0 P0G1 PNP0 P0G0_DT P0G0 0 PWM0C 0/1 mode PMD0 PWM0C 0/1 dead time 1 0 FBD0 0 1 1 PWM0_CH0 P0G1_DT 0 PMD1 1 0 FBD1 0 1 1 PMEN1 PWM0_CH1 PNP1 PMEN2 P0G2_DT P0G2 PNP2 0 PWM0C 2/3 mode P0G3 PMD2 PWM0C 2/3 dead time 0 1 FBD2 0 1 1 PWM0_CH2 P0G3_DT 0 PMD3 0 1 FBD3 PMEN3 0 1 1 PWM0_CH3 PNP3 PMEN4 PNP4 P0G4_DT P0G4 0 PWM0C 4/5 mode PMD4 PWM0C 4/5 dead time 1 0 FBD4 0 1 1 P0G5 PWM0_CH4 P0G5_DT 0 PMD5 1 0 FBD5 0 1 1 PMEN5 PWM0_CH5 PNP5 BRK PWMMOD[1:0] (PWM0CON1[7:6]) MS51 系列技术参考手册 PWM0DTEN, PWM0DTCNT PWM0MEN, PWM0MD FBINEN PWM0FBD (PWM0CON1.3) PWM0PNP Brake event (FB0) 图 6.6-3 PWM0 输出电路框图 初 始 化 PWM 首 先 置 位 CLRPWM (PWMnCON0.4) 清 0 计 数 器 , 以 确 保 上 计 数 准 确 , 然 后 配 置 {PWMnPH, PWMnPL} 和 {PWMnCxH, PWMnCxL} ,然后置位 PWMnRUN 计数开始。PWM引脚开始 输出波形。周期值{PWMnPH, PWMnPL} 和 占空比值{PWMnCxH, PWMnCxL} 有双缓存,写入的数值 ,只有在 LOAD (PWMnCON0.6) 为0时才被更新,以防止输出不完整波形。 Feb. 21, 2020 Page 306 of 460 Rev. 1.01 MS51 PWM1/2/3 output control PWM mode select Mask output PWMnMEN0 PnG0 PWMn_CH0 0 PWMnMD0 1 PWMnC0/1 mode PnG1 PWMn_CH1 0 PWMnMD1 1 PWMnMEN1 PWMnMOD[1:0] (PWMnCON1[7:6]) PWMnMEN, PWMnMD 图 6.6-4 PWM1/2/3 控制框图 注意: 更新周期或占空比,必须等LOAD=0指示更新完成后,否则结果不可预测。 6.6.4.2 PWM 类型 两种类型:边沿对齐和中心对齐,由PWMTYP (PWMnCON1.4)配置。 6.6.4.3 边沿对齐 计数器从 0000H 上计数到 {PWMnPH, PWMnPL} ,然后再回0。当计数值与占空比值 {PWMnCxH, PWMnCxL}相等时,控制信号输出低(输出控制电路之前的信号)。 波形如下 MS51 系列技术参考手册 PWMnP (2nd) PWMnP (1st) 12-bit counter PWMnCH01 (2nd) PWMnCH01 (1st) PWMnCH01 (2nd) duty valid PG01 output Load PWMnCH01 (2nd) Load PWMnP (2nd) PWMnP (2nd) period valid 图 6.6-5 PWM 边沿对齐波形图 输出频率和占空比公式 为: Feb. 21, 2020 Page 307 of 460 Rev. 1.01 MS51 PWM 频率 = FPWM {PWMnPH , PWMnPL}  1 PWM 高电平占空比 = 6.6.4.4 (FPWM 是时钟源经 PWMDIV分频后的频率). {PWMnCHxH , PWMnCHxL} . {PWMnPH , PWMnPL}  1 中心对齐类型 计数器从 0000H 上计数到 {PWMnPH, PWMnPL} 然后再下计数到 0000H,上计数与占空比寄存器 {PWMnCxH, PWMnCxL} 的值相等时,输出低,下计数与占空比寄存器值相等时输出高。波形如下。 PWMP (2nd) PWMP (1st) 12-bit counter PWM01 (2nd) PWM01 (1st) PWM01 (2nd) duty valid PG01 output PWMP (2nd) period valid Load PWM01 (2nd) Load PWMP (2nd) 图 6.6-6 PWM 中心对齐波形 输出频率和占空比公式 为: MS51 系列技术参考手册 PWM 频率 = FPWM 2  {PWMnPH , PWMnPL} PWM 高电平占空比 = 6.6.4.5 (FPWM是时钟源经 PWMDIV分频后的频率). {PWMnCHxH , PWMnCHxL} . {PWMnPH , PWMnPL} 操作模式 PnGx 经模式选择电路,输出不同模式的波形。有独立模式,互补模式和同步模式。 6.6.4.6 独立模式 当PWMMOD[1:0] (PWMnCON1[7:6]) = [0:0]时是独立模式,这是缺省模式,PnGx 各路独立输出波形。 6.6.4.7 带死区的互补模式 PWMMOD[1:0] = [0:1]时,是互补模式,PnG0/2/4 和独立模式一样,输出 PWM 波,PnG1/3/5 输出对 应的互补波形,PnG1/3/5 占空比寄存器 {PWMnH, PWMnL} (n=1/3/5)被忽略。 电机控制应用,互补的波形要插入死区,防止一对半桥的上下功率管在开关切换时瞬间直通。 PWM0的 每一对PWM都有一个9位的下计数器 PWM0DTCNT,在输出从低到高跳变时插入死区时间,P0G0/P0G1 的死区插 Feb. 21, 2020 Page 308 of 460 Rev. 1.01 MS51 入 如 下 图 , P0G2/P0G3 和 P0G4/P0G5 的 死 区 时 间 插 入 与 此 相 同 , 每 一 对 PWM 是 否 插 入 死 区 时 间 可 由 PWM0DTEN [3:0] 单独使能。 注意: PWM0DTCNT 和 PWM0DTEN 是 TA 写保护的,死区控制仅在 PWM0 配置为互补模式时有效。死区的插 入也仅PWM0 这一组才有此功能。 P0G0 P0G1 P0G0_DT P0G1_DT 图 6.6-7 PWM0 互补模式和死区插入 6.6.4.8 同步模式 PWMMOD[1:0] = [1:0]使能同步模式。PnG0/2/4 和独立模式一样,PnG1/3/5 输出波形与 PnG0/2/4 一 样。 6.6.4.9 输出消隐控制 每路PWM 都可以被 消隐掉而输出固定电平,控制BLDC时此功能非常有用。寄存器PWMnMEN决定哪 一路 PWM 信号被消隐。寄存器PWMnMD 决定被消隐的通道输出的电平。PWMnMEN的缺省值是 00H ,即不消隐,都输出PWM波。注意消隐电平可以由PWM0NP 配置为反相输出。 6.6.4.10 紧急停止 注意: 仅 PWM0 这一组有此功能。 0 FB0 De-bounce 1 FBINLS FBINEN Fault Brake event ADC comparator FBF Fault Brake interrupt ADC compare event 图 6.6-8 紧急停止框图 Feb. 21, 2020 Page 309 of 460 Rev. 1.01 MS51 系列技术参考手册 紧急停止常用于保护电机控制终统不被损坏。当FBINEN (PWMnCON1.3)置位并且引脚FB有效时, PWM 固定输出寄存器PWMnFBD 的值。PWM0RUN (PWM0CON0.7) 被硬件清0停止产生PWM信号。 16位 PWM 计数器回到0000H值。急停标志FBF将被置位,如果使能了中断,将会发生中断。即使FBF 标志被软件清0,PWM 引脚仍然输出固定值PWMnFBD。只有重新置位PWM0RUN后PWM才重新开始 工作。引脚FB的信号还可由FBINLS (PWMnFBD.6) 选择有效电平。注意:引脚FB输入的信号必须长于 8个系统时钟周期。因为有8/FSYS 防抖功能。另外ADC 的比较值也可触急停功能。机理与FB 引脚一样 。 MS51 6.6.4.11 极性控制 PWM0 的每一路输出有独立的极性控制位 PNP0~PNP5。可控制波形反相后输出。 注意: 仅 PWM0 这一组有此功能。 PWM 中断 6.6.5 标志位PWMF (PWMnCON0.5) 指示特定点申请了中断,这些点可由 INTSEL[2:0] 和 INTTYP[1:0] (PWMnINTC[2:0] 和 [5:4])选择。注意,中心点和周期结束点中断,只有中心对齐模式才有。PWMF 由 软件清0。 PWMnINTC – PWM 中断控制 寄存器 SFR地址 复位值 PWM0INTC B7H, 1页 0000_0000 b PWM1INTC B6H, 2页 0000_0000 b PWM2INTC C6H, 2页 0000_0000 b PWM3INTC D6H, 2页 0000_0000 b 7 6 5 4 3 2 1 0 - - INTTYP1 INTTYP0 - INTSEL2 INTSEL1 INTSEL0 - - 读/写 读/写 - 读/写 读/写 读/写 位 5:4 名称 INTTYP[1:0] 描述 PWM 中断类型选择 MS51 系列技术参考手册 00 = PWM 通道 0/1/2/3/4/5引脚的下沿. 01 = PWM 通道0/1/2/3/4/5 引脚的上沿. 10 = 周期中点. 11 = 周期末. 注意中点和周期末,只有互补模式有效。 2:0 INTSEL[2:0] PWM 中断通道选择 000 = PWM_CH0. 001 = PWM_CH1. 010 = PWM_CH2. 011 = PWM_CH3. 100 = PWM_CH4. 101 = PWM_CH5. 其它 = PWM_CH0. Feb. 21, 2020 Page 310 of 460 Rev. 1.01 MS51 PWM 中断与 PWM 波形关系如下: Edge-aligned PWM Center-aligned PWM Central point 12-bit PWM counter End point Dead time PWM channel 0/2/4 pin output PWMF (falling edge) (INTTYP[1:0] = [0:0]) Software clear PWMF (rising edge) (INTTYP[1:0] = [0:1]) PWMF (central point) (INTTYP[1:0] = [1:0]) Reserved PWMF (end point) (INTTYP[1:0] = [1:1]) Reserved 图 6.6-9 PWM 中断 FB 急 停 中 断 与 PWM 中 断 不 是 一 个 中 断 向 量 。 当 FB 引 脚 或 ADC 比 较 产 生 急 停 中 断 时 , FBF (PWM0FBD.7) 被置位,如果使能了中断就产生FB急停中断,急停中断的使能位是 EFB0 (EIE0.5),中 断标志 FBF 需软件清0。 MS51 系列技术参考手册 Feb. 21, 2020 Page 311 of 460 Rev. 1.01 MS51 PWM 的控制寄存器 6.6.6 PWM0CON0 – PWM0 控制 0 (可位寻址) 寄存器 SFR地址 复位值 PWM0CON0 D8H, 0页 0000_0000b 7 6 5 4 3 2 1 0 PWM0RUN LOAD PWMF CLRPWM PWM3RUN PWM2RUN PWM1RUN P33FBINEN 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 PWM0RUN 描述 PWM0 使能位 0 = PWM0 停止工作. 1 = PWM0 开始工作. 注意: 仅适于 PWM0CON0。 6 LOAD PWM 周期和占空比加载 此位用于把缓存中的周期和占空比新值加载到周期和占空比寄存器,下个周期开始使用新值。 写入缓存的周期和占空比,只有在周期末才会加载,然后硬件清零此位。 写: 0 = 无效。 1 = 本次PWM周期结束后加载周期和占空比的新值。 读: 0 = 加载完成。 MS51 系列技术参考手册 1 =加载未完成。 5 PWMF PWM 标志 按寄存器PWM0INTC中的 INTSEL[2:0] 和 INTTYP[1:0]的定义,此位置1,需软件清零。 4 CLRPWM 计数器清零 此位置1将对 PWM 16位计数器清零,清零完成后,硬件清零此位. 写: 0 = 无效. 1 = PWM 16位计数器清零 读: 0 = 清零完成. 1 = 清零尚未完成. 3 PWM3RUN PWM3 工作使能 0 = PWM3 停止工作. 1 = PWM3 开始工作. 注意: 仅适于 PWM0CON0。 Feb. 21, 2020 Page 312 of 460 Rev. 1.01 MS51 位 名称 2 PWM2RUN 描述 PWM2工作使能 0 = PWM2停止工作. 1 = PWM2开始工作. 注意: 仅适于 PWM0CON0。 1 PWM1RUN PWM1工作使能 0 = PWM1停止工作. 1 = PWM1开始工作. 注意: 仅适于 PWM0CON0。 0 P33FBINEN P33 紧急停止 0 = 禁止引脚 P33 FB 对PWM0的急停功能 1 = 使能引脚 P33 FB 对PWM0的急停功能,一旦此引脚有符合 FBINLS (FBD.6)定义的跳变发 生,PWM0C0~C5输出寄存器 FBD 的值,PWMRUN (PWM0CON0.7) 将被硬件清0, PWM停止工作,PWMRUN 再次写1才开始工作。 注意: 仅适于 PWM0CON0。 MS51 系列技术参考手册 Feb. 21, 2020 Page 313 of 460 Rev. 1.01 MS51 PWMnCON0 – PWMn 控制 0, n = 1,2,3 寄存器 SFR地址 复位值 PWM1CON0 B4H, 2页 0000_0000 b PWM2CON0 C4H, 2页 0000_0000 b PWM3CON0 D4H, 2页 0000_0000 b 7 6 5 4 3 2 1 0 PWMRUN LOAD PWMF CLRPWM - - - - 读/写 读/写 读/写 读/写 - - - - 位 名称 7 PWMRUN 描述 PWM 工作使能 0 = PWM 停止工作. 1 = PWM 开始工作. 6 LOAD PWM 加载新的周期和占空比值 此位用于把缓存中的周期和占空比新值加载到周期和占空比寄存器,下个周期开始使用新值。 写入缓存的周期和占空比,只有在周期末才会加载,然后硬件清零此位。 写: 0 = 无效。 1 = 本次PWM周期结束后加载周期和占空比的新值。 读: 0 = 加载完成。 MS51 系列技术参考手册 1 =加载未完成。 5 PWMF PWM 标志 按寄存器PWM0INTC中的 INTSEL[2:0] 和 INTTYP[1:0]的定义,此位置1,需软件清零。 4 CLRPWM 计数器清零 此位置1将对 PWM 16位计数器清零,清零完成后,硬件清零此位. 写: 0 = 无效. 1 = PWM 16位计数器清零 读: 0 = 清零完成. 1 = 清零尚未完成. Feb. 21, 2020 Page 314 of 460 Rev. 1.01 MS51 PWMnCON1 – PWM 控制 1 寄存器 SFR地址 复位值 PWM0CON1 DFH, 0页 0000_0000 b PWM1CON1 B5H, 2页 0000_0000 b PWM2CON1 C5H, 2页 0000_0000 b PWM3CON1 D5H, 2页 0000_0000 b 7 6 5 4 3 PWMMOD[1:0] GP PWMTYP FBINEN PWMDIV[2:0] 读/写 读/写 读/写 读/写 读/写 位 名称 7:6 PWMMOD[1:0] 2 1 0 描述 PWM 模式选择 00 = 独立模式. 01 = 互补模式. 10 = 同步模式 11 = 保留. 5 GP 组模式使能 组模式使能后前三对 PWM 占空比由 PWM01H PWM01L 决定。 0 = 禁止组模式 1 = 使能组模式. 4 PWMTYP PWM 类型选择 0 = 边沿对齐. 1 =中心对齐. 3 FBINEN FB 急停引脚输入使能 0 = 功能禁止 1 = 使能急停功能。一旦此引脚出现符合 FBINLS (PWM0FBD.6) 定义的边沿,PWM0 通道 0~5 输出 PWM0FBD 的值。 PWM0RUN (PWM0CON0.7)被硬件清0。PWM0RUN置1后 PWM才再次开始工作。 注意: 仅适用于 PWM0 Feb. 21, 2020 Page 315 of 460 Rev. 1.01 MS51 系列技术参考手册 注意: 仅适用于 PWM0 MS51 位 名称 2:0 PWMDIV[2:0] 描述 PWM 时钟预分频系数 000 = 1/1. 001 = 1/2 010 = 1/4. 011 = 1/8. 100 = 1/16. 101 = 1/32. 110 = 1/64. 111 = 1/128. MS51 系列技术参考手册 Feb. 21, 2020 Page 316 of 460 Rev. 1.01 MS51 CKCON – 时钟控制 寄存器 SFR地址 复位值 CKCON 8EH, 0页 0000_0000b 7 6 5 4 3 2 1 0 - PWMCKS - T1M T0M T0OE CLOEN - - 读/写 - 读/写 读/写 读/写 读/写 - 位 名称 6 PWMCKS 描述 PWM 时钟源选择 0 = 选系统时钟 FSYS. 1 = 选 定时器 1的溢出频率。 MS51 系列技术参考手册 Feb. 21, 2020 Page 317 of 460 Rev. 1.01 MS51 PWMnPL – PWM 周期值低字节, n = 0,1,2,3 寄存器 SFR地址 复位值 PWM0PL D9H, 0页 0000_0000 b PWM1PL B1H, 2页 0000_0000 b PWM2PL C1H, 2页 0000_0000 b PWM3PL D1H, 2页 0000_0000 b 7 6 5 4 3 2 1 0 PWM0P[7:0] 读/写 位 名称 7:0 PWMnP[7:0] 描述 PWMn 周期值低字节 与 PWMnPH 共同决定PWM的周期值。 MS51 系列技术参考手册 Feb. 21, 2020 Page 318 of 460 Rev. 1.01 MS51 PWMnPH – PWM 周期值高字节, n = 0,1,2,3 寄存器 SFR地址 复位值 PWM0PH D1H, 0页 0000_0000 b PWM1PH A9H, 2页 0000_0000 b PWM2PH B9H, 2页 0000_0000 b PWM3PH C9H, 2页 0000_0000 b 7 6 5 4 3 2 1 0 PWM0P[15:8] 读/写 位 名称 7:0 PWM0P[15:8] 描述 PWM 周期值高字节 与PWM0PL共同决定 PWM 的周期值。 MS51 系列技术参考手册 Feb. 21, 2020 Page 319 of 460 Rev. 1.01 MS51 PWMnCxH – PWMn 通道x 占空比高字节, n = 0,1,2,3; x = 0,1,2,3,4,5 位 名称 描述 复位值 PWM0C0H D2H, 0页 PWM0 通道0占空比高字节 0000_0000 b PWM0C1H D3H, 0页 PWM0通道1占空比高字节 0000_0000 b PWM0C2H D4H, 0页 PWM0 通道2占空比高字节 0000_0000 b PWM0C3H D5H, 0页 PWM0 通道3占空比高字节 0000_0000 b PWM0C4H C4H, 1页 PWM0 通道4占空比高字节 0000_0000 b PWM0C5H C5H, 1页 PWM0 通道5占空比高字节 0000_0000 b PWM1_CH0H AAH, 2页 PWM1通道0占空比高字节 0000_0000 b PWM1_CH1H ABH, 2页 PWM1通道1占空比高字节 0000_0000 b PWM2_CH0H BAH, 2页 PWM2 通道0占空比高字节 0000_0000 b PWM2_CH1H BBH, 2页 PWM2 通道1占空比高字节 0000_0000 b PWM3_CH0H CAH, 2页 PWM3 通道0占空比高字节 0000_0000 b PWM3_CH1H CBH, 2页 PWM3 通道1占空比高字节 0000_0000 b 7 6 5 4 3 2 1 0 PWMnCx [15:8] 读/写 MS51 系列技术参考手册 位 7:0 名称 PWMnCx [15:8] 描述 PWMnCx 占空比高字节 与 PWMnCxL共同决定占空比值. Feb. 21, 2020 Page 320 of 460 Rev. 1.01 MS51 PWMnCxL – PWMn 通道x 占空比低字节, n = 0,1,2,3; x = 0,1,2,3,4,5 位 名称 描述 复位值 PWM0C0L DAH, 0页 PWM0 通道0占空比低字节 0000_0000 b PWM0C1L DBH, 0页 PWM0 通道1占空比低字节 0000_0000 b PWM0C2L DCH, 0页 PWM0 通道2占空比低字节 0000_0000 b PWM0C3L DDH, 0页 PWM0 通道3占空比低字节 0000_0000 b PWM0C4L CCH, 1页 PWM0 通道4占空比低字节 0000_0000 b PWM0C5L CDH, 1页 PWM0 通道5占空比低字节 0000_0000 b PWM1_CH0L B2H, 2页 PWM0 通道0占空比低字节 0000_0000 b PWM1_CH1L B3H, 2页 PWM0 通道1占空比低字节 0000_0000 b PWM2_CH0L C2H, 2页 PWM0 通道0占空比低字节 0000_0000 b PWM2_CH1L C3H, 2页 PWM0 通道1占空比低字节 0000_0000 b PWM3_CH0L D2H, 2页 PWM0 通道0占空比低字节 0000_0000 b PWM3_CH1L D3H, 2页 PWM0 通道1占空比低字节 0000_0000 b 7 6 5 4 3 2 1 0 PWMnCx [7:0] R/W 7:0 名称 PWMnCx [7:0] MS51 系列技术参考手册 位 描述 PWMnCx 占空比低字节 与 PWMnCxH 共同决定PWM的占空比。 Feb. 21, 2020 Page 321 of 460 Rev. 1.01 MS51 PWM0DTEN – PWM 死区使能 寄存器 SFR地址 复位值 PWM0DTEN F9H, 0页, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 - - - PWM0DTCNT 8 - PDT45EN PDT23EN PDT01EN - - - 读/写 - 读/写 读/写 读/写 位 名称 4 PDTCNT8 描述 PWM0 死区计数器的第 8位 见寄存器 PWM0DTCNT 2 PDT45EN PWM0C4/5 死区使能 仅互补模式有效。 0 = 无死区 1 = 在 P0G4/P0G5 上沿插入死区时间 1 PDT23EN PWM0_CH2/3死区使能 仅互补模式有效。 0 =无死区. 1 = 在 P0G2/P0G3上沿插入死区时间. 0 PDT01EN PWM0C0/1死区使能 MS51 系列技术参考手册 仅互补模式有效。 0 =无死区 1 = 在 P0G0/P0G1上沿插入死区时间 Feb. 21, 2020 Page 322 of 460 Rev. 1.01 MS51 PWM0DTCNT – PWM 死区计数器 寄存器 SFR地址 复位值 PWM0DTCNT FAH, 0页, TA 保护 0000_0000 b 7 6 5 4 3 2 1 0 PWM0DTCNT[7:0] 读/写 位 7:0 名称 PWM0DTCNT[7:0] 描述 PWM0 死区计数器的低字节 此8位与 PWM0DTEN.4组成 PWM0 的9位死区计数器 PWM0DTCNT。仅 PWM0 配置为互补 模式并且 PWM0DTEN 的相关位为1时有效。 PWM0 死区时间 = PDTCNT  1 . FSYS 注意在PWM0计数期间不要改 PWM0DTCNT 的值。 MS51 系列技术参考手册 Feb. 21, 2020 Page 323 of 460 Rev. 1.01 MS51 PWMxMEN – PWMnCx 消隐使能, n=0,1,2,3;x=0,1,2,3,4,5 寄存器 SFR地址 描述 复位值 PWM0MEN FBH, 0页 PWM0Cx 消隐使能 0000_0000 b PWM1MEN ADH, 2页 PWM1Cx 消隐使能 0000_0000 b PWM2MEN BDH, 2页 PWM2Cx 消隐使能 0000_0000 b PWM3MEN CDH, 2页 PWM3Cx 消隐使能 0000_0000 b 位 x 7 6 5 4 3 2 1 0 - - PMEN5 PMEN4 PMEN3 PMEN2 PMEN1 PMEN0 - - 读/写 读/写 读/写 读/写 读/写 读/写 名称 PMENx 描述 PWMnCx消隐使能 0 = PWMnCx 输出 PWM 波 1 = PWMnCx 输出 PMDx. 注意: PMEN2~5 仅适于PWM0. MS51 系列技术参考手册 Feb. 21, 2020 Page 324 of 460 Rev. 1.01 MS51 PWMnMD –PWMnCx 消隐数据 寄存器 SFR地址 描述 复位值 PWM0MD FCH, 0页 PWM0Cx 消隐数据 0000_0000 b PWM1MD ACH, 2页 PWM1Cx 消隐数据 0000_0000 b PWM2MD BCH, 2页 PWM2Cx 消隐数据 0000_0000 b PWM3MD CCH, 2页 PWM3Cx 消隐数据 0000_0000 b 位 x 7 6 5 4 3 2 1 0 - - PMD5 PMD4 PMD3 PMD2 PMD1 PMD0 - - 读/写 读/写 读/写 读/写 读/写 读/写 名称 PMDx 描述 PWMnCx 消隐数据 一旦对应的PMENx置1,PWMnCx 将输出消隐数据。 0 = PWMnCx 输出 0. 1 = PWMnCx 输出 1. 注意: PMD2~5 仅适于 PWM0. MS51 系列技术参考手册 Feb. 21, 2020 Page 325 of 460 Rev. 1.01 MS51 PWM0CON1 – PWM 控制 1 寄存器 SFR地址 复位值 PWM0CON1 DFH, 0页 0000_0000 b 7 6 5 4 3 PWMMOD[1:0] GP PWMTYP FBINEN PWMDIV[2:0] 读/写 读/写 读/写 读/写 读/写 位 名称 3 FBINEN 2 1 0 描述 FB 急停引脚输入使能 0 = 禁止FB引脚的急停功能。 1 = 使能FB引脚的急停功能。引脚FB一旦出现符合FBINLS (PWM0FBD.6)定义的信号边沿 时,PWM0 通道 0~5输出寄存器PWM0FBD的值, PWM6/7保持。 PWM0RUN (PWM0CON0.7) 被硬件清0, PWM0RUN 被软件写1后,PWM功能恢复 MS51 系列技术参考手册 Feb. 21, 2020 Page 326 of 460 Rev. 1.01 MS51 PWM0FBD – PWM 急停控制 寄存器 SFR地址 复位值 PWM0FBD D7H, 0页 0000_0000 b 7 6 5 4 3 2 1 0 FBF FBINLS FBD5 FBD4 FBD3 FBD2 FBD1 FBD0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 FBF 描述 故障急停标志 FBINENT 置1时,FB引脚若有符合FBINLS (PWM0FBD.6) 定义的边沿发生时,此位置1。需软件清 0 。清0后,置位PWM0RUN (PWM0CON0.7),PWM才会再次工作。 6 FBINLS FB 引脚急停信号输入边沿选择 0 = 下沿. 1 = 上沿. 5:0 FBDx PWMx 急停输出信号 0 = PWM0Cx 输出低. 1 = PWM0Cx 输出高 MS51 系列技术参考手册 Feb. 21, 2020 Page 327 of 460 Rev. 1.01 MS51 PNP – PWM 反相控制 寄存器 SFR地址 复位值 PNP D6H, 0页 0000_0000 b 7 6 5 4 3 2 1 0 - - PNP5 PNP4 PNP3 PNP2 PNP1 PNP0 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 5:0 PNPn 描述 PWMn 反相使能 0 = 直接输出. 1 = 反相输出 MS51 系列技术参考手册 Feb. 21, 2020 Page 328 of 460 Rev. 1.01 MS51 PIOCON0 – PWM引脚选择 寄存器 SFR地址 复位值 PIOCON0 DEH, 0页 0000_0000 b 7 6 5 4 3 2 1 0 - - PIO05 PIO04 PIO03 PIO02 PIO01 PIO00 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 5 PIO05 描述 P0.3/PWM 引脚功能选择 0 = P0.3/PWM 引脚功能为 P0.3. 1 = P0.3/PWM 引脚功能为 PWM0C5/PWM3_CH1输出. (PWM3_CH1P=11, 选 PWM3_CH1; 其它为 PWM0C5) 4 PIO04 P0.1/PWM引脚功能选择 0 = P0.1/PWM引脚功能为P0.1 1 = P0.1/PWM引脚功能为PWM0C4/PWM3_CH0输出。 (PWM3_CH0P=10, 选PWM3_CH0; 其它选PWM0C4) 3 PIO03 P0.0/PWM引脚功能选择 0 = P0.0/PWM引脚功能为P0.0. 1 = P0.0/PWM引脚功能为PWM0_CH3/PWM2_CH1输出。 (PWM2_CH1P=10, 选PWM2_CH1; 其它选 PWM0_CH3) PIO02 MS51 系列技术参考手册 2 P1.0/PWM引脚功能选择 0 = P1.0/PWM引脚功能为P1.0. 1 = P1.0/PWM引脚功能为PWM0_CH2/PWM2_CH0输出。 (PWM2_CH0P=10, 选PWM2_CH0; 其它选 PWM0_CH2) 1 PIO01 P1.1/PWM引脚功能选择 0 = P1.1/PWM引脚功能为P1.1. 1 = P1.1/PWM引脚功能为PWM0_CH1/PWM1_CH1输出。 (PWM1_CH1P=11, 选PWM1_CH1; 其它选 PWM0_CH1) 0 PIO00 P1.2/PWM引脚功能选择 0 = P1.2/PWM引脚功能为P1.2. 1 = P1.2/PWM引脚功能为PWM0C0/PWM1_CH0 输出。 (PWM1_CH0P=11, 选 PWM1_CH0; 其它选 PWM0_CH1) Feb. 21, 2020 Page 329 of 460 Rev. 1.01 MS51 PIOCON1 – PWM引脚选择 寄存器 SFR地址 复位值 PIOCON1 C6H, 1页 0000_0000 b 7 6 5 4 3 2 1 0 PIO17 - PIO15 - PIO04 PIO05 PIO14 - 读/写 - 读/写 - 读/写 读/写 读/写 - 位 名称 7 PIO17 描述 P1.7/PWM引脚功能选择 0 = P1.7/PWM3_CH0 引脚功能为 GPIO P1.7. 1 = P1.7/PWM3_CH0 引脚功能为 PWM3_CH0输出 5 PIO15 P1.5/PWM引脚功能选择 0 = P1.5/PWM 引脚功能为 P1.5. 1 = P1.5/PWM 引脚功能为 PWM0_CH5 / PWM3_CH1输出 当 AUXR5[3:2].PWM3CH1P = 11, PIO15 = 1 , P1.5定义为PWM3_CH1. 当 AUXR5[3:2].PWM3CH1P = 00 ,PIO15 = 1, P1.5定义为PWM0_CH5. 3 PIO04 P0.4/PWM引脚功能选择 0 = P0.4/PWM 引脚功能为 P0.4. 1 = P0.4/PWM 引脚功能为 PWM0_CH3 / PWM2_CH1输出 当 AUXR4[7:6].PWM2CH1P = 11, PIO04 = 1 , P1.4 定义为 PWM2_CH1. MS51 系列技术参考手册 当 AUXR4[7:6].PWM2CH1P = 00 ,PIO04 = 1, P1.4定义为PWM0_CH5. 2 PIO05 P0.5/PWM 引脚功能选择 0 = P0.5/PWM 引脚功能为 P0.5. 1 = P0.5/PWM引脚功能为 PWM0_CH2 / PWM2_CH0输出 (PWM2CH0P=11, 选 PWM2_CH0; 其它选 PWM0_CH3) 1 PIO14 P1.4/PWM 引脚功能选择 0 = P1.4/PWM 引脚功能为 P1.4. 1 = P1.4/PWM 引脚功能为 PWM0_CH1 / PWM1_CH1 输出. (PWM1_CH1P=10, 选 PWM1_CH1; 其它选PWM0_CH1) Feb. 21, 2020 Page 330 of 460 Rev. 1.01 MS51 PIOCON2 – PWM 引脚选择 寄存器 SFR地址 复位值 PIOCON2 B7H, 2页 0000_0000 b 7 6 5 4 3 2 1 0 PIO34 PIO33 PIO32 PIO31 PIO30 PIO23 PIO22 PIO21 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 PIO34 描述 P3.4/PWM3_CH1 引脚功能选择 0 = P3.4/PWM3_CH1引脚功能为P3.4. 1 = P3.4/PWM3_CH1引脚功能为PWM3_CH1 输出。 6 PIO33 P3.3/PWM0_CH1 引脚功能选择 0 = P3.3/PWM0C0引脚功能为P3.3. 1 = P3.3/PWM0C0引脚功能为PWM0_CH1输出。 5 PIO32 P3.2/PWM3_CH0 引脚功能选择 0 = P3.2/PWM3_CH0引脚功能为P3.2. 1 = P3.2/PWM3_CH0引脚功能为PWM3_CH0输出。 4 PIO31 P3.1/PWM2_CH1引脚功能选择 0 = P3.1/PWM2_CH1 引脚功能为P3.1. 3 PIO30 MS51 系列技术参考手册 1 = P3.1/PWM2_CH1引脚功能为PWM2_CH1输出。 P3.0/PWM2_CH1 引脚功能选择 0 = P3.0/PWM2_CH1 引脚功能为P3.0 1 = P3.0/PWM2_CH1引脚功能为PWM2_CH1输出。 2 PIO23 P23/PWM1_CH0引脚功能选择 0 = P2.3/PWM1_CH0 引脚功能为P2.3. 1 = P2.3/PWM1_CH0引脚功能为PWM1_CH0输出。 1 PIO22 P2.2/PWM1_CH1 引脚功能选择 0 = P2.2/PWM1_CH1 引脚功能为 P2.2. 1 = P2.2/PWM1_CH1引脚功能为 PWM1_CH1输出。 Feb. 21, 2020 Page 331 of 460 Rev. 1.01 MS51 AUXR4 –辅助寄存器4 寄存器 SFR地址 复位值 AUXR4 A3H, 2页 0000_0000 b 7 6 5 4 3 2 1 0 PWM2_CH1P PWM2_CH0P PWM1_CH1P PWM1_CH0P 读/写 读/写 读/写 读/写 位 名称 7:6 PWM2_CH1P 描述 PWM2通道1引脚选择 00 = PWM2_CH1 由 P3.0 引脚输出 01 = 选 P3.1 10 = 选 P0.0 11 = 选 P0.4 5:4 PWM2_CH0P PWM2 通道0引脚选择 00 = 保留,缺省值 01 = 选 P2.1 10 = 选 P1.0 11 = 选 P0.5 3:2 PWM1_CH1P PWM1通道1引脚选择 00 =保留,缺省值 MS51 系列技术参考手册 01 = PWM1_CH1 引脚选 P2.2 10 = 选 P1.4 11 = 选 P1.1 1:0 PWM1_CH0P PWM1通道0引脚选择 00 =保留,缺省值 01 = PWM1_CH0 引脚选 P2.3 10 = 选 P1.2 11 =保留 Feb. 21, 2020 Page 332 of 460 Rev. 1.01 MS51 AUXR5 – 辅助寄存器 5 寄存器 SFR地址 复位值 AUXR5 A4H, 2页 0000_0000 b 7 6 CLOP T0P - PWM3_CH1P PWM3_CH0P 读/写 读/写 - 读/写 读/写 位 名称 3:2 PWM3_CH1P 5 4 3 2 1 0 描述 PWM3 通道1引脚选择 00 = 保留,缺省值 01 = PWM3_CH1 由 P3.4 引脚输出 10 = PWM3_CH1 由 P1.5引脚输出 11 = PWM3_CH1 由 P0.3 引脚输出 1:0 PWM3_CH0P PWM3通道0引脚选择 00 =保留,缺省值 01 = P3.2 10 = P0.1 11 = 保留 MS51 系列技术参考手册 Feb. 21, 2020 Page 333 of 460 Rev. 1.01 MS51 看门狗(WDT) 6.7 概述 6.7.1 WDT可配置为溢出后复位芯片,所以对于干扰较强的应用,代码一旦跑飞,WDT可以复位芯片,恢复 系 统到 正 常 运 行状 态 。WDT 也可 配置 为 在 空 闲或 掉 电模 式 下 运 行的 通 用 定 时 器, WDTEN[3:0] (CONFIG4[7:4]) 可配置 WDT 为通用定时器,还是复位芯片的功能。 WDT的定时时间为 1 × 64 , 此FLIRC 是内部 10 kHz时钟。下表是不同定时时间 FLIRC × clock dividerscalar 的配置 WDT 溢出时间[1] WDPS.2 WDPS.1 WDPS.0 分频系数 0 0 0 1/1 6.40 ms 0 0 1 1/4 25.60 ms 0 1 0 1/8 51.20 ms 0 1 1 1/16 102.40 ms 1 0 0 1/32 204.80 ms 1 0 1 1/64 409.60 ms 1 1 0 1/128 819.20 ms 1 1 1 1/256 1.638 s 注意: LIRC 误差较大,此为时间期望值. MS51 系列技术参考手册 表 6.7-1 WDT 定时时间表 由于 WDT 定时的最大值有限,从空闲或掉电中唤醒 MS51 可使用唤醒定时器 WKT。 WDT的配置见 章节 0 LJMP START ORG LJMP 0053H WDT_ISR ORG 0000H ORG 0100H ;******************************************************************** ;WDT interrupt service routine ;******************************************************************** WDT_ISR: CLR EA MOV TA,#0AAH MOV TA,#55H ANL WDCON,#11011111B ;clear WDT interrupt flag SETB EA RETI Feb. 21, 2020 Page 334 of 460 Rev. 1.01 MS51 ;******************************************************************** ;Start here ;******************************************************************** START: MOV TA,#0AAH MOV TA,#55H ORL WDCON,#00010111B ;choose interval length and enable WDT ;running during Power-down SETB EWDT ;enable WDT interrupt SETB EA MOV TA,#0AAH MOV TA,#55H ORL WDCON,#10000000B ; WDT run ;******************************************************************** ;Enter Power-down mode ;******************************************************************** LOOP: ORL PCON,#02H LJMP LOOP WDT控制寄存器 6.7.2 WDT 溢出复位功能 WDTEN[3:0] (CONFIG4[7:4]) 非 FH 时,WDT 配置为溢出复位功能。若WDTEN[3:0]的值不是 5H,则 空闲或掉电状态下,保持计数。注意配置为复位功能时, 写 WDTR 和 WIDPD 无效。 10 kHz Internal Oscillator FLIRC Pre-scalar (1/1~1/256) WDT counter (6-bit) overflow 512-clock Delay WDT Reset clear WDCLR WDTF WDT Interrupt 图 6.7-1 WDT 配置为复位功能 芯片上电开始执行代码后,WDT连续计数。计数时间由 WDPS[2:0] (WDCON[2:0])配置。计数期满会置 位中断标志 WDTF (WDCON.5),若中断使能位 EWDT (EIE0.4) 和全局中断使能位 EA 都置1了,就去 执行 WDT 中断代码,同时512个10KHz时钟后复位芯片,所以若不想不复位,就必须在512个时钟内, 通过对 WDCLR 写1清零 WDT计数器。WDCLR 位会自动清0。WDT复位芯片后,标志位 WDTRF (WDCON.3) 会置1,WDT复位标志 WDTRF 除上电复位会被清除外,其它复位不会修改此位的值,当 然此位可被软件清0。注意,代码中必须安排时间写 WDCON 。 WDT主要用于系统监测,在干扰比较强的场和,强干扰可能导致代码跑飞 ,这时WDT就可以让芯片复 位,避免系统崩溃,造成更大故障。如果不想WDT 复位芯片,代码中要有“喂狗”代码: 写WDCLR 让 WDT清 0 重新计数。当代码跑飞时,执行不到喂狗代码, WDT 计数期满,就会复位芯片。 6.7.3 WDT 通用定时器功能 当 WDTEN[3:0] (CONFIG4[7:4]) 为 FH,WDT 就是一个通用定时器,软件可读写 WDTR 和 WIDPD 。 Feb. 21, 2020 Page 335 of 460 Rev. 1.01 MS51 系列技术参考手册 clear WDPS[2:0] WDTRF MS51 10 kHz Internal Oscillator Pre-scalar (1/1~1/256) WDT counter (6-bit) overflow WDTF WDT Interrupt clear IDL (PCON.0) PD (PCON.1) WIDPD FLIRC WDPS[2:0] WDCLR WDTR 图 6.7-2 WDT 做定时器的框图 WDTR的值写0/1,决定WDT 停止/开始计数。计数期满标志 WDTF 硬件置1,用于软件查寻。若 EWDT (EIE0.4) 和全局中断 EA 被使能,将去执行中断代码。 WDTF 由软件清0。 WDT可在CPU空闲或掉电状态下,以很低的功耗对10KHz保持计数,计数期满可将CPU唤醒。这对降 低功耗非常有效。示例代码如下: ORG LJMP 0000H START ORG LJMP 0053H WDT_ISR MS51 系列技术参考手册 ORG 0100H ;******************************************************************** ;WDT interrupt service routine ;******************************************************************** WDT_ISR: CLR EA MOV TA,#0AAH MOV TA,#55H ANL WDCON,#11011111B ;clear WDT interrupt flag SETB EA RETI ;******************************************************************** ;Start here ;******************************************************************** START: MOV TA,#0AAH MOV TA,#55H ORL WDCON,#00010111B ;choose interval length and enable WDT ;running during Power-down SETB EWDT ;enable WDT interrupt SETB EA MOV TA,#0AAH MOV TA,#55H ORL WDCON,#10000000B ; WDT run ;******************************************************************** ;Enter Power-down mode ;******************************************************************** LOOP: Feb. 21, 2020 Page 336 of 460 Rev. 1.01 MS51 ORL LJMP 6.7.4 PCON,#02H LOOP WDT控制寄存器 CONFIG4 7 6 5 4 3 2 1 0 WDTEN[3:0] - - - - 读/写 - - - - 缺省值: 1111 1111b 位 名称 7:4 WDTEN[3:0] 描述 WDT使能 配置 WDT 功能. 1111 = WDT 关闭. WDT 配置为通用定时器. 0101 = WDT 配置为空闲或掉电时不工作的看门狗. 其它 = WDT配置为空闲或掉电时保持工作的看门狗. WDT对 10 kHz分频,定时时间可选,溢出后可把芯处从空闲或掉电状态唤醒到正常工作,若使能了中 断,还可产生中断。如果配置为溢出时复位芯片,芯片就会复位,除非软件不停的喂狗。 MS51 系列技术参考手册 Feb. 21, 2020 Page 337 of 460 Rev. 1.01 MS51 WDCON – WDT 控制 寄存器 SFR地址 复位值 WDCON AAH, 0页, TA 保护 WDT 0000_1UUU b POR 0000_0111 b 其它 0000_UUUU b 7 6 5 4 3 WDTR WDCLR WDTF WIDPD WDTRF WDPS[2:0] 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 WDTR 2 1 0 描述 WDT 运行 此位仅当 WDTEN[3:0] (CONFIG4[7:4]) 全 1 、 WDT 配置为通用定时器时有效. 0 = WDT 禁止 1 = WDT 使能. WDT开始计数. WDT 清0 此位写1用于把 WDT 清0,读写效果不同: 写: 0 = 无效. 1 = WDT计数器清0. 读: 0 = WDT清0完成. 1 = WDT 清0未完成. MS51 系列技术参考手册 6 WDCLR 5 WDTF WDT溢出标志 指示 WDT溢出.需软件清0 4 WIDPD WDT空闲或掉电状态运行使能位 仅WDTEN[3:0] (CONFIG4[7:4])全 1配置为通用定时器晨,此位才有效。 0 = WDT在空闲或掉电状态停止运行 1 = WDT 在空闲或掉电状态保持运行. 3 WDTRF WDT复位标志 此位指示 CPU 被 WDT 复位,建议每次复位后,软件对此位清0 2:0 WDPS[2:0] WDT 分频选择 选择分频系数从 1/1 到 1/256。详见 表 6.7-1. 缺省最大分频 注意: 1. WDTRF 上电后清0,WDT复位后置1,其它复位不变。 2. WDPS[2:0] 上电后全1,其它复位后不变 Feb. 21, 2020 Page 338 of 460 Rev. 1.01 MS51 唤醒定时器(WKT) 6.8 概述 6.8.1 WKT以片内10KHz为计数时钟,在空闲或掉电状态下仍能保持计数,可周期性地唤醒CPU。注意系统 时钟必须大于WKT时钟的两倍。使能WKT不会自动使能时钟,别忘了配置并使能WKT的时钟。若想 WKT在空闲或掉电状态保持计数,也要让其时钟源在空闲或掉电时保持工作。 WKT是一个自动重载、16位、上计数定时器,有一个分频系数在1/1~1/2048 之间的预分频器。分频系 数由 WKPS[2:0] (WKCON[2:0])配置。位WKTR (WKCON.3)可启动或停止计数,计数到0xFFFF后,硬 件从RWK中装载初值到计数器,并置位EWKT (EIE1.2),若使能了中断,会产生中断。 10 kHz Internal Oscillator FLIRC Pre-scalar (1/1~1/2048) Internal 16-bit Counter WKT Overflow WKPS[2:0] (WKCON[2:0]) 0 WKTR (WKCON.3) WKTF (WKCON.4) WKT Interrupt 15 RWK 图 6.8-1 唤醒定时器框图 6.8.2 WKT控制寄存器 WKCON – 控制寄存器 寄存器 SFR地址 复位值 WKCON 8FH, 0页 0000_0000b 6 5 4 3 - - - WKTF WKTR WKPS[2:0] - - - 读/写 读/写 读/写 位 名称 7:5 - 4 WKTF 2 1 0 描述 保留 WKT 溢出标志 WKT 溢出时此位置1,若使能了中断,会产生中断,需软件清0 3 WKTR WKT运行控制 0 = WKT停止. 1 = WKT开始计数 注意:只有在此位为0时,才可以加载 WKT 的值,在此位为1时加载WKT结果将不可预知 Feb. 21, 2020 Page 339 of 460 Rev. 1.01 MS51 系列技术参考手册 7 MS51 位 名称 2:0 WKPS[2:0] 描述 WKT 分频 000 = 1/1. 001 = 1/4. 010 = 1/16. 011 = 1/64. 100 = 1/256. 101 = 1/512. 110 = 1/1024. 111 = 1/2048. MS51 系列技术参考手册 Feb. 21, 2020 Page 340 of 460 Rev. 1.01 MS51 RWKL – 加载值低字节 寄存器 SFR地址 复位值 RWKL 86H, 0页 0000 0000b 7 6 5 4 3 2 1 0 RWK[7:0] 读/写 位 名称 7:0 RWK[7:0] 描述 WKT低字节 加载WKT时16位数值的低字节。 注意:若不分频,加载值不能是 FFFFH MS51 系列技术参考手册 Feb. 21, 2020 Page 341 of 460 Rev. 1.01 MS51 RWKH – 加载值高字节 寄存器 SFR地址 复位值 RWKH 97H, 2页 0000 0000b 7 6 5 4 3 2 1 0 RWK[15:8] 读/写 位 名称 7:0 RWK[15:8] 描述 WKT 高字节 加载WKT时16位数值的高字节。 注意:若不分频,加载值不能是 FFFFH MS51 系列技术参考手册 Feb. 21, 2020 Page 342 of 460 Rev. 1.01 MS51 6.9 6.9.1 串口 (UART0 和 UART1) 概述 MS51包含两个具备增强了自动地址识别和帧错误检测功能的全双工串口。由于两个串口的控制位是一样 的。一般来说,在以下内容中,没有对串口1介绍,只对串口0介绍。 每个串口都有一种同步工作模式,模式0和三种全双工异步模式(通用异步接收器和发送器), 模式1, 2, 3。这意味着可以连续收发。串口带有接收缓存,意味着接收的前一个数据未被读取时,串口就能接收 第二个数据。接收和发送都是对SBUF进行操作访问。写入SBUF数据将直接传到发送寄存器,而读取SBUF 是访问一个具有独立物理地址的接收寄存器。串口共有4种操作模式,任何一种模式,任何操作SBUF的 指令都将开始一次传输。 6.9.2 操作模式 6.9.2.1 模式 0 模式0是与外部设备进行同步通信的方式。在该模式下,串行数据由RXD脚进行收发,而TXD 脚用于产 生移位时钟。每帧接收或发送8位数据。模式 0 提供半双工的通讯方式,它通过RXD收发数据。波特率 设置为FSYS/12(SM2 (SCON.5)为0) 或FSYS/2(SM2 为 1)。注意无论发送或接收数据,串行时钟将一 直由MCU产生。因此模式0下,连接在串口上的任何外设都以MCU为主机。图 6.9-1 串口模式 0 时序 图显示串口模式0传输时序图。. 如图所示,双向RXD引脚进行数据收发,TXD引脚用来输出移位时钟。串行通讯时,用移位时钟一位位 接收/发送数据。数据移入移出由最低位开始,波特率等于TXD的移位时钟频率。 向SBUF写入数据将会开始发送。控制模块将产生移位时钟和启动数据传输,直至8位数据传输完成。然 后传输标志位TI (SCON.1) 置 1,表示 1 个字节数据传输完成。 当REN(SCON.4)=1且RI(SCON.0)=0 时串口开始接收数据。该条件告诉串口控制器有数据要移位进入 。这个过程将持续到8位数据接收完毕,然后接收标志RI置1。用户可以清零RI,以触发接收下一字节数 据。 6.9.2.2 模式 1 模式1为异步全双工的工作方式。异步通讯模式通常用于和PC,调制解调器和其它类似接口间通讯。模 式1下,10位数据通过TXD发送,通过RXD接收。10位数据组成如下:起始位(逻辑0),8位数据(最 Feb. 21, 2020 Page 343 of 460 Rev. 1.01 MS51 系列技术参考手册 图 6.9-1 串口模式 0 时序图 MS51 低位在前),停止位(逻辑1)。波特率由定时器1决定,SMOD(PCON.7)置1使波特率加倍。图 6.9-2 串口模式 1 时序图为串口模式1发送和接收的时序图。 图 6.9-2 串口模式 1 时序图 向SBUF写入数据开始传输,数据通过TXD引脚发送。首先是开始位,随后是8位数据位,最后是停止位 。停止位出现后,TI(SCON.1)将置1,表示一个字节传输完成。波特率发生器决定位传输速度。 当波特率发生器激活且REN(SCON.4) =1时,系统可以随时开始接收操作,当RXD脚上侦测到1到0的跳 变时,数据将开始被采样并根据波特率的时钟频率接收,停止位必须符合一定的条件,接收到数据才能 装载到SBUF: 1. RI (SCON.0) = 0, 2. SM2 (SCON.5) = 0,或当SM2 = 1且接收数据匹配“Given”或“广播地址”地址时停止位STOP=1 。(详见 章节6.9.5多机通信” 和 章节6.9.6自动地址识别.) MS51 系列技术参考手册 如果上述条件满足,接收到的数据将加载到SBUF里,RB8(SCON.2)为停止位,RI将被置。如果条 件不满足,RI保持为0,没有数据加载。完成接收过程后,串口控制器将等待RXD脚上出现另一个1-0传 输以开始新的数据接收。 6.9.2.3 模式 2 模式2为全双工异步通信, 与模式1不同的是,模式2是11位收发。数据由起始位(逻辑0),8位数据( 最低位在前),第9位数据(TB8或RB8)和停止位(逻辑1)组成。第9位做奇偶校验位或多机通信时用来 区分数据和地址。波特率是系统时钟频率的1/32 或1/64,由 SMOD位(PCON.7)来配置。图 6.9-3 串口 模式2 和 3 时序图指示串口模式2的传输时序。 Feb. 21, 2020 Page 344 of 460 Rev. 1.01 MS51 图 6.9-3 串口模式 2 和 3 时序图 向SBUF写入数据开始传输,数据发送在TXD引脚上。首先是开始位,然后是8位数据和TB8(SCON.3 ),最后是停止位,停止位发送后,TI将置位标志传输完成。 当REN=1时,串口可进行接收操作。RXD上的下降沿表示接收过程开始,数据根据所配置波特率进行 采样和接收。停止位必须符合一定的条件,接收到数据才能装载到SBUF: 1. RI (SCON.0) = 0, th 2. SM2(SCON.5) = 0, 或9 位 = 1同时 SM2 = 1且接收数据匹配“Given”或“广播地址”地址时。(详 见(详见 章节6.9.5多机通信” 和 章节6.9.6自动地址识别.) 如果上述条件满足,则第9位数据进入RB8(SCON.2),8位数据进入SBUF,且RI置位。否则数据将不会 装载,且RI保持为0。完成接收过程后,串口控制器等待RXD脚上的另一个1-0跳变以开始新的数据接收 模式 3 除波特率外模式 3与模式 2相同。模式3采用定时器1的溢出率作为波特率时钟。图 6.9-3 串口模式2 和 3 时序图模式3的传输时序,与模式2没有不同。 Feb. 21, 2020 Page 345 of 460 Rev. 1.01 MS51 系列技术参考手册 6.9.2.4 MS51 6.9.3 波特率 串口不同模式的波特率时钟源和速度是完全不同的。表 6.9-1 串口UART0 模式/波特率描述列出了所有 选项。 用户可以根据系统配置来计算。 在模式1或模式3,串口0的波特率时钟源可通过BRCK (T3CON.5)选择定时器1或定时器3。对于串口1, 定时器3是唯一的时钟源。 当采用定时器1作为波特率发生器时,需要关闭定时器1中断。定时器1可配置为计数器或定时器,在三 种工作模式下都可以。典型应用中,会配置为定时器工作在自动重装载模式(模式2)。如果采用定时 器3作为波特率发生器,同样也需要关闭定时器3中断。 下面为所有UART模式和波特率公式: 模式 帧位数 0 8 SM0 / SM1 SM2 (SCON[7:6]) (SCON[5]) SMOD (PCON[7]) FSYS 除以 12 0 00 波特率 FSYS 除以 2 1 0 Time1 T1M CKCON[4] = 0 1 FSYS  32 12  256 - TH1 Time1 T1M CKCON[4] = 1 1 FSYS  32 256 - TH1 Timer 3 1 10 01 MS51 系列技术参考手册 Time1 T1M CKCON[4] = 0 1 FSYS  16 12  256 - TH1 Time1 T1M CKCON[4] = 1 1 FSYS  16 256 - TH1 Timer 3 3 11 11 10 11 1 FSYS  16 Pre - scale  65536 - (256 RH3 RL3) 0 FSYS 除以 64 1 FSYS 除以 32  - - 0 Time 1[1] T1M CKCON[4] = 0 1 FSYS  32 12 256-TH1 Time 1 [1] T1M CKCON[4] = 1 1 FSYS  32  256-TH1 Timer 3 Feb. 21, 2020  - 1 2 1 FSYS  32 Pre- scale 65536 - (256 RH 3  RL 3) Page 346 of 460 FSYS 1  32 Pre - scale65536 - (256 RH3RL3)  Rev. 1.01 MS51 模式 帧位数 SM0 / SM1 SM2 (SCON[7:6]) (SCON[5]) SMOD (PCON[7]) 1 波特率 Time1 [1] TM1 CKCON[3] = 0 1 FSYS  16 12 256-TH1 Time1[1] TM1 CKCON[3] = 1 1 FSYS  16  256-TH1 Timer 3 1 FSYS  16 Pre- scale 65536 - (256  RH 3  RL 3)  注意: 定时器1应配置为定时器在自动重载模式(模式2) 表 6.9-1 串口 UART0 模式/波特率描述 模式 帧位数 SM0_1 / SM1_1 (S1CON[7:6]) SMOD_1 (T3CON[7]) 0 8 00 - 1 2 11 11 FSYS 除以 12 0 Timer 3 1 FSYS  32 Pre-scale 65536-(256RH3RL3) 1 Timer 3 1 FSYS  16 Pre-scale 65536-(256RH3RL3) 01 0 FSYS 除以 64 1 FSYS 除以 32 10 0 Timer 3 1 FSYS  32 Pre-scale 65536-(256RH3RL3) 1 Timer 3 1 FSYS  16 Pre-scale 65536-(256RH3RL3) 11 表 6.9-2 串口 UART1 模式/波特率描述 例程:我们列出通用 UART 设置模式1初始化步骤如下: Feb. 21, 2020 Page 347 of 460 Rev. 1.01 MS51 系列技术参考手册 3 10 波特率 MS51 串口 0 (UART0) 用定时器1作为波特率发生器:公式为 1 FSYS  16  256-TH1 SCON = 0x50; //UART0 Mode1,REN=1,TI=1 TMOD |= 0x20; //Timer1 set to Mode2 auto reload mode (must) PCON |= 0x80; //UART0 Double Rate Enable CKCON |= 0x10; //Timer 1 as clock source T3CON &= 0xDF; //Timer1 as UART0 clock source TH1 = value; TR1=1; 串口 0 (UART0) 用定时器3作为波特率发生器:公式为 1 FSYS  16 Pre-scale 65536-(256RH3RL3) SCON = 0x50; //UART0 Mode1,REN=1,TI=1 PCON |= 0x80; //UART0 Double Rate Enable T3CON &= 0xF8; //(Prescale=1) T3CON |= 0x20; //UART0 baud rate clock source = Timer3 RH3 = value high byte RL3 = value low byte T3CON|= 0x08; //Trigger Timer3 串口 1 (UART1) 用定时器3作为波特率发生器:公式为 1 FSYS  16 Pre-scale 65536-(256RH3RL3) SCON_1 = 0x52; //UART1 Mode1,REN_1=1,TI_1=1 T3CON = 0xF8; //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), MS51 系列技术参考手册 RH3 = value high byte RL3 = value low byte T3CON|= 0x08; 下面列出一些通用波特率值根据不同Fsys和精度值: Fsys 值 波特率 4800 24 MHz Feb. 21, 2020 TH1 值 (Hex) RH3,RL3 值(Hex) 波特率精度 FEC8 0.160256% 64 (SMOD=0) 9600 64 FF64 0.160256% 19200 B2 FFB2 0.160256% 38400 D9 FFD9 0.160256% 57600 E6 FFE6 0.160256% 115200 F3 FFF3 0.160256% 150000 F6 FFF6 0.000000% 166666 F7 FFF7 0.000400% Page 348 of 460 Rev. 1.01 MS51 Fsys 值 16 MHz TH1 值 (Hex) RH3,RL3 值(Hex) 波特率精度 187500 F8 FFF8 0.000000% 214285 F9 FFF9 0.000333% 250000 FA FFFA 0.000000% 300000 FB FFFB 0.000000% 375000 FC FFFC 0.000000% 500000 FD FFFD 0.000000% 750000 FE FFFE 0.000000% 1500000 FF FFFF 0.000000% 4800 30 FF30 0.160256% 9600 98 FF98 0.160256% 19200 CC FFCC 0.160256% 38400 E6 FFE6 0.160256% 57600 EF FFEF 2.124183% 115200 F7 FFF7 -3.549383% 200000 FB FFFB 0.000000% 250000 FC FFFC 0.000000% 333333 FD FFFD 0.000100% 500000 FE FFFE 0.000000% 1000000 FF FFFF 0.000000% 帧错误检测 帧错误检测用于异步模式 (模式 1、2 和 3)。由于总线噪音或争夺,导致没有检测到有效的停止位时, 将发生帧错误。串口可以检测帧错误,并通过软件提示出错。 FE为帧错误标志,位于SCON第7位,这个位正常被用作为SM0 。当SMOD0 (PCON.6)置1时,帧错误 检测功能打开,它作为FE标志。SM0和FE其实是相互独立的标志位。 当帧错误发生时,FE标志由硬件置位。如果必要,FE可在串口中断程序中检测。注意在对FE标志位进 行读写时,同时SMOD0必须为1。如果FE被置位,那么接下来即使接收到的正确数据帧也不会将其清 除。对该位的清除必须由软件来完成。 6.9.5 多机通信 MS51串口支持多机通讯,可让一个主机向多从机系统中一个从机发送多帧序列信息。在同一串行线上 使用该功能过程中不需要中断其它从机设备工作 。该功能只能在模式2或模式3下进行。用户设置 SM2(SCON.5)为1打开这个功能,以便当一个数据帧接收后,当第9位为1时,串口中断将产生(模式2 下,第9位为停止位)。当SM2为1时,如果第9位为0,不会发生中断。在该情况下,第9位能简单的把 从机地址和数据分开。 当主机需要向多个从机中的一个发送数据时,首先需要发送目标从机的地址。注意地址字节与数据字节 是不同的:在地址字节中第9位为1,而数据字节中第9位为0。地址字节会触发所有从机,而每台从机检 查接收到的地址是否与自身匹配。地址匹配的从机,清除SM2,准备接收数据;未被寻址到的从机的 Feb. 21, 2020 Page 349 of 460 Rev. 1.01 MS51 系列技术参考手册 6.9.4 波特率 MS51 SM2 必须保持,从而系统会持续工作,同时忽略接收数据。 配置多机通信步骤如下: 1. 设置所有设备(主机与从机)为串口模式2或3; 2. 所有从机的 SM2 位置为1; 3. 主机传输协议: 第一个字节:地址,目标从机地址(第9位 = 1) 下一个字节:数据, (第9位 = 0)。 4. 当目标从机接收到第一个字节, 因为第9位数据为1所有从机将中断。目标从机比较自身地址并 且清SM2 位等待接收后面的数据。其它从机则继续正常运行。 5. 接收到所有数据后,置SM2为1, 等待下一地址。 6. SM2 在模式0下无效。若SM2 置 1,模式1可用于检测有效的停止位。模式1接收,如果SM2 是 1,将不会产生中断除非有效停止位已经接收。 6.9.6 自动地址识别 自动地址识别功能提高了多机通讯功能,允许UART通过硬件比较,在接收的比特流中,来识别特别的 地址信息。该功能可以节省软件识别地址而所占用的程序空间,仅当串口识别到自身地址时,接收器置 位RI位并请求中断。当多机通信功能使能时(SM2置位),自动地址识别功能也被使能。 如果需要,用户可以在模式1下使能自动地址识别功能。在这种配置下,停止位取代第九位的数据位。 仅当接收命令的帧地址与器件地址匹配和有效的停止位时,RI置位。 MS51 系列技术参考手册 使用自动地址识别功能,允许一个主机通过从机地址或”Given”地址选择性与一个或几个从机通信。所有 从机可以通过“广播”地址联系。有两个特殊功能寄存器用于定义从机地址 SADDR和从机地址掩码 SADEN。SADEN 用于定义SADDR的哪些位被用,哪些位不必关心。SADEN掩码可以与SADDR以“ 逻辑与”的方式以创建每个从机的“Given” 地址。使用 “Given”地址允许多从机被识别同时排除其它从机 。 下列范例用以说明该功能的灵活应用: 例子 1,从机 0: SADDR = 11000000b SADEN = 11111101b Given = 110000X0b 例子 2,从机 1: SADDR = 11000000b SADEN = 11111110b Given = 1100000Xb 在上面的例子中SADDR是相同的,SADEN的数据用于区分两个从机。从机0第0位为” ”而忽略第1位, 从机1第1位为” ”而忽略第0位。当从机1第1位为0时,11000010B是从机0唯一的地址。当第0位为1, Feb. 21, 2020 Page 350 of 460 Rev. 1.01 MS51 排除从机0时,11000001b是从机1唯一的地址。当第0位 =0(从机0)和第1位= 0(从机1)时,两个从 机可以通过同一个地址同时被选中。因此,使用广播地址(Boadcast address) 11000000b就可以同时定 址。 更复杂应用可用于排除从机0之后,选择从机1或2: 例子 1,从机 0: SADDR = 11000000b SADEN = 11111001b Given = 11000XX0b 例子 2,从机 1: SADDR = 11100000b SADEN = 11111010b Given = 11100X0Xb 例子 3, 从机 2: SADDR = 11000000b SADEN = 11111100b Given = 110000XXb 每个从机的“广播”地址的计算是通过逻辑或SADDR和SADEN。结果中的零位被视为“无关”位。例如: SADDR = 01010110b SADEN = 11111100b Broadcast = 1111111Xb 使用“无关”位可在广播模式下,提供更灵活的应用。不过在大部分应用条件下,广播地址全部使用 FFH。 复位后,SADDR和SADEN初始化为00H。对于所有“无关”地址产生一个“Given”地址,以及一个“广播” 地址对应所有XXXXXXXXb地址(所有“无关”位)。这样有效地禁止了自动寻址模式,允许微控制器保 持标准串口模式而不使用这个功能。 6.9.7 串口控制寄存器 Feb. 21, 2020 Page 351 of 460 Rev. 1.01 MS51 系列技术参考手册 在上面的例子中,3个从机的区别在于地址的低3位。从机0需要第0位 = 0,它的唯一地址是11100110b 。从机1需要第1位= 0,它的唯一地址是11100101b。从机2需要第2位= 0,它的唯一地址是11100011b 。要只选择从机0和1,可使用地址11100100b,因为从机2需要第2位=1来排除从机2。 MS51 SCON – 串口控制 寄存器 SFR 地址 复位值 SCON 98H, 所有页, 位操作 0000_0000 b 7 6 5 4 3 2 1 0 SM0/FE SM1 SM2 REN TB8 RB8 TI RI 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 SM0/FE 6 SM1 描述 串口模式选择 SMOD0 (PCON.6) = 0: 参见 表 6.9-1 串口UART0 模式/波特率描述 SMOD0 (PCON.6) = 1: SM0/FE用作帧错误指示标志(FE),可以被软件清除.。 0 = 帧错误 (FE)没有发生 1 =检测到帧错误 (FE) 发生. 5 SM2 MS51 系列技术参考手册 多机通信模式使能 该位功能取决于串口0模式。 模式 0: 该位选择波特率 FSYS/12 或 FSYS/2. 0 = 时钟运行在 FSYS/12 波特率. 与标志8051兼容。 1 = 时钟运行在 FSYS/2 波特率为更快的串口通信. 模式 1: 该位检查有效停止位. 0 = 无论停止位的逻辑电平,接收总是有效的。 1 = 只有当接收的停止位是逻辑1并且接收的数据匹配“G VE ”或“广播”地址时,接收才有效。 模式 2 或 3: 为多机通讯 0 = 不管第九位的逻辑电平,接收总是有效的。 1 =只有当接收的第九位是逻辑1并且接收的数据匹配“G VE ”或“广播”地址时,接收才有效。 4 REN 接收使能 0 = 串口0接收禁止。 1 = 工作模式为1,2,3时,使能接收。工作模式为0时,在条件 REN = 1 和 RI = 0时接收被初始化。 3 TB8 发送的第九位 串口0在模式2,3时,此位是发送的第9位,模式0,1不用此位.. 2 RB8 接收的第九位 比位识别串行端口0模式2或3中的第九接收比特的逻辑电平。在模式1中,RB8是所接收的停止位的 逻辑电平。SM2位逻辑电平1时例外。在模式0中不使用RB8。 1 TI 发送中断标志 模式0下该标志在发送完8位数据后由硬件置位,其它模式下在发送到数据最后一位后由硬件置位。 当串口0中断使能,将执行中断服务程序。该位必须由软件来清除 Feb. 21, 2020 Page 352 of 460 Rev. 1.01 MS51 位 名称 0 RI 描述 接收中断标志 模式0下数据接收帧收到第八位后由硬件置位,模式1,2或3中接收到停止位后由硬件置位。SM2位 逻辑电平1时例外。当串口0中断使能,将执行串口0中断服务程序。该位必须由软件清除. MS51 系列技术参考手册 Feb. 21, 2020 Page 353 of 460 Rev. 1.01 MS51 SCON_1 – 串口 1 控制 寄存器 SFR 地址 复位值 SCON_1 F8H, 所有页, 位寻址 0000_0000 b 7 6 5 4 3 2 1 0 SM0_1/FE_1 SM1_1 SM2_1 REN_1 TB8_1 RB8_1 TI_1 RI_1 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 描述 7 SM0_1/FE_1 6 SM1_1 串口1模式选择 SMOD0_1 (T3CON.6) = 0: 详见 表 6.9-2 串口 UART1 模式/波特率描述 SMOD0_1 (T3CON.6) = 1: SM0_1/FE_1 用作帧错误状态标志(FE) ,可以被软件清除 0 = 没有发生帧错误 (FE)。 1 = 侦测到帧错误(FE) 5 SM2_1 MS51 系列技术参考手册 串口1多机通信模式使能 该位功能用于串口1模式 模式0: 无作用 模式1: 位检查有效停止位. 0 = 接收总是有效不管停止位的逻辑电平. 1 = 接收仅在接收停止位为逻辑1,同时接收数据与GIVEN或广播地址匹配时有效 模式2 或 3: 对于多机通信. 0 =接收总是有效不管第9位的逻辑电平. 1 =接收仅在第9位为逻辑1和接收数据与GIVEN或广播地址匹配时有效. 4 REN_1 串口1接收使能 0 = 关闭串口1接收功能. 1 = 打开串口1在模式1,2或3模式下的接收功能。 模式0下,打开接收,需满足配置REN_1=1及RI_1=0 3 TB8_1 串口1第9位发送位 串口1在模式2和3中要被发送的第九位数据。在模式0和1中,不支持该功能 2 RB8_1 串口1第9位接收位 串口1在模式2和3中接收到的第九位数据。模式1下,此位是是接收到的停止位逻辑电平。SM2_1 为1时此位无效。模式0下该位无意义 1 TI_1 串口1发送中断标志位 发送中断标志:模式0下该标志在发送完8位数据后由硬件置位,而在其它模式下在发送完帧数据 最后一位后硬件置位。当串口1中断使能,将执行中断服务程序。该位必须由软件来清除。 Feb. 21, 2020 Page 354 of 460 Rev. 1.01 MS51 位 名称 0 描述 RI_1 串口1接收中断标志位 该标志由硬件置位。在模式0中,数据帧接收到第8位;模式1,2或3中,数据帧接收到停止位 (stop bit),当SM2_1=1情况例外。当串口1中断使能,将执行中断服务程序。该位必须由软件来 清除. MS51 系列技术参考手册 Feb. 21, 2020 Page 355 of 460 Rev. 1.01 MS51 PCON – 电源控制 寄存器 SFR 地址 PCON 87H,所有页 复位值 POR: 0001_0000b 其它: 000U _0000b 7 6 5 4 3 2 1 0 SMOD SMOD0 LPR POF GF1 GF0 PD IDL 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 SMOD 描述 串口0波特率加倍使能. 串口0工作在模式2,或在模式1或3时,串口0用定时器1溢出作为波特率时钟源时,设置此位波特率 加倍 6 SMOD0 串口0帧错误标志访问使能 0 =SCON.7 访问SM0位 1 = SCON.7访问FE位 MS51 系列技术参考手册 Feb. 21, 2020 Page 356 of 460 Rev. 1.01 MS51 T3CON – 定时器 3 控制 寄存器 SFR 地址 复位值 T3CON C4H, 页 0 0000_0000 b 7 6 5 4 3 SMOD_1 SMOD0_1 BRCK TF3 TR3 T3PS[2:0] 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 7 SMOD_1 串行口1波特率加倍使能. 当串口1在模式2下波特率加倍使能. 6 SMOD0_1 串口1帧错误访问使能 0 =SCON_1.7 访问SM0_1位 2 1 0 描述 1 = SCON_1.7访问FE_1位 SBUF – 串口 0 数据缓存 寄存器 SFR 地址 复位值 SBUF 99H, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SBUF[7:0] 读/写 名称 7:0 SBUF[7:0] 描述 串口0 数据缓存 这个寄存器实际上该地址上有2个独立寄存器. 一个用于接收数据,一个用于发送数据。当数据写入 SBUF,这是个发送寄存器并且移位进行串口发送。当数据从SBUF读出,数据来自接收寄存器。 每次向SBUF写入一字节数据,将启动一次数据传输。 Feb. 21, 2020 Page 357 of 460 Rev. 1.01 MS51 系列技术参考手册 位 MS51 SBUF_1 –串口 1 数据缓存 寄存器 SFR地址 复位值 SBUF_1 9AH, 页 0 0000 _0000 b 7 6 5 4 3 2 1 0 SBUF_1[7:0] 读/写 位 名称 7:0 SBUF_1[7:0] 描述 串口1数据缓存 这个寄存器实际上该地址上有2个独立寄存器. 一个用于接收数据,一个用于发送数据。当数据写 入SBUF_1,这是个发送寄存器并且移位进行串口发送。当数据从SBUF_1读出,数据来自接收 寄存器。 每次向SBUF_1写入一字节数据,将启动一次数据传输。 MS51 系列技术参考手册 Feb. 21, 2020 Page 358 of 460 Rev. 1.01 MS51 IE – 中断使能 寄存器 SFR 地址 复位值 IE A8H, 所有页, 位寻址 0000 _0000 b 7 6 5 4 3 2 1 0 EA EADC EBOD ES ET1 EX1 ET0 EX0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 4 ES 描述 使能串口 0 中断 0 = 串口 0 中断禁止. 1 =使能来自 TI (SCON.1) 或 RI (SCON.0) 的中断 MS51 系列技术参考手册 Feb. 21, 2020 Page 359 of 460 Rev. 1.01 MS51 EIE1 – 扩展中断使能 1 寄存器 SFR 地址 复位值 EIE1 9CH, 页 0 0000 _0000 b 7 6 5 4 3 2 1 0 - - EPWM3 EPWM2 EPWM1 EWKT ET3 ES_1 - - 读/写 读/写 读/写 读/写 读/写 读/写 位 名称 0 ES1 描述 使能串口 1 中断 0 = 禁止串口 1 中断. 1 = 使能来自 TI_1 (S1CON.1) 或 RI_1 (S1CON.0) 为1.时的中断 MS51 系列技术参考手册 Feb. 21, 2020 Page 360 of 460 Rev. 1.01 MS51 SADDR –从机 0 地址 寄存器 SFR 地址 复位值 SADDR A9H, 页 0 0000 _0000 b 7 6 5 4 3 2 1 0 SADDR[7:0] 读/写 位 名称 7:0 SADDR[7:0] 描述 从机 0 地址 该字节定义微控器自身的从机地址以用于串口0多机通信 MS51 系列技术参考手册 Feb. 21, 2020 Page 361 of 460 Rev. 1.01 MS51 SADEN – 从机 0 地址掩码 寄存器 SFR 地址 复位值 SADEN B9H, 页0 0000_0000 b 7 6 5 4 3 2 1 0 SADEN[7:0] 读/写 位 名称 7:0 SADEN[7:0] 描述 从机0地址掩码. 该字节为串口0掩码,为存储”Given”地址的”无关(定义为0)”位。无关位可使更多从机得以灵活 运用。 MS51 系列技术参考手册 Feb. 21, 2020 Page 362 of 460 Rev. 1.01 MS51 SADDR_1 – 从机 1 地址 寄存器 SFR 地址 复位值 SADDR_1 BBH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SADDR_1[7:0] 读/写 位 名称 7:0 SADDR_1[7:0] 描述 从机1地址 该字节定义微控器自身的从机地址以用于串口1多机通信. MS51 系列技术参考手册 Feb. 21, 2020 Page 363 of 460 Rev. 1.01 MS51 SADEN_1 – 从机 1 地址掩码 寄存器 SFR 地址 复位值 SADEN_1 BAH, 页 0 0000_0000 b 7 6 5 4 3 2 1 0 SADEN_1[7:0] 读/写 位 名称 7:0 SADEN_1[7:0] 描述 从机1地址掩码. 该字节为串口1掩码为存储”Given”地址的”无关(定义为0)”位。无关位可使更多从机得以灵 活运用. MS51 系列技术参考手册 Feb. 21, 2020 Page 364 of 460 Rev. 1.01 MS51 AUXR1 – 辅助寄存器 1 寄存器 复位值 SFR地址 POR: 0000 0000b, 软件复位: 1U00 0000b, A2H , 页 0 AUXR1 nRESET 管脚: U100 0000b, 其它: UUU0 0000b 7 6 5 4 3 2 1 0 SWRF RSTPINF HardF SLOW GF2 UART0PX 0 DPS 读/写 读/写 读/写 读/写 读/写 读/写 只读 读/写 位 2 名称 UART0PX 描述 串口0 管脚切换 0 = 默认RXD 在 P0.7且TXD 在P0.6 1 =切换到RXD在 P0.6 且TXD在 P0.7. 注意 TXD 和 RXD 在设置此位后会立刻切换。请注意不要再收发数据的过程中切换,不然会导致 不可预知的情形或告警。 MS51 系列技术参考手册 Feb. 21, 2020 Page 365 of 460 Rev. 1.01 MS51 AUXR2 – 辅助寄存器 2 寄存器 SFR 地址 复位值 AUXR2 A1H, 页 2 0000_0000 b 7 6 5 4 3 2 1 0 UART2TXP UART2RXP UART1TXP UART1RXP 读/写 读/写 读/写 读/写 位 名称 3:2 UART1TXP 描述 UART1 TX管脚选择 00 = 默认保留 01 = UART1 TX 选择 P1.6 10 = UART1 TX 选择 P3.6 11 = UART1 TX 选择 P1.0 1:0 UART1RXP UART1 RX 管脚选择 00 = 默认保留 01 = UART1 RX 选择 P0.2 10 = UART1 RX 选择 P3.7 11 = UART1 RX 选择 P0.0 MS51 系列技术参考手册 Feb. 21, 2020 Page 366 of 460 Rev. 1.01 MS51 ISO 7816-3 接口 (SC0~2 和 UART2 ~ 4) 6.10 概述 6.10.1 MS51提供基于 ISO/IEC 7816-3 标准异步协议的提ISO 7816-3 接口控制器 (SC 控制器)。程序可以控制 GPIO作为智能卡复位功能或做卡片检测功能。同时也可以模拟高精度波特率通信串口功能。 Internal Data Bus RX_IN RX_FIFO Control and Status Registers TX_FIFO RX Shift Register TX/RX Control Unit TX Shift Register Baud Rate Generator ETU Clock Generator TX_OUT 图 6.10-1 智能卡 控制器框图 兼容 ISO-7816-3 T=0,T=1  可编程的发送时钟频率  可编程的块保护时间选择  支持自动反向功能  支持 UART 模式 – 全双工异步通信 – 支持每个通道的可编程的波特率发生器 – 通过设置SCnEGT,可编程的发送数据延时时间 (最后一个停止位从 TX-FIFO 离开到释 放的时间)。 – 可编程的偶,奇或者无校验位的生成和检测 – 可编程的停止位,1 位或 2 位的停止位生成 下面列出ISO 7816-3 多功能管脚定义 URAT 管脚 SC 管脚 UART2_TXD SC0_CLK SFR 定义 管脚名称 SFR 字节名称 SFR 位名称 AUXR2[7:6] UART2TXP P0.3 01 P3.0 10 P0.4 UART2_RXD SC0_DAT 01 AUXR2[5:4] P1.7 Feb. 21, 2020 值 Page 367 of 460 UART2RXP 10 Rev. 1.01 MS51 系列技术参考手册  MS51 URAT 管脚 SC 管脚 SFR 定义 管脚名称 SFR 字节名称 SFR 位名称 P1.2 UART3_TXD UART3_RXD SC1_CLK SC1_DAT P1.5 值 01 AUXR3[3:2] UART3TXP 10 P0.5 11 P1.1 01 P2.5 AUXR3[1:0] UART3RXP P3.4 10 11 UART4_TXD SC2_CLK P2.3 AUXR3[7:6] UART4TXP 01 UART4_RXD SC2_DAT P2.2 AUXR3[5:4] UART4RXP 01 表 6.10-1 智能卡或 UART 管脚定义以及使能控制寄存器 6.10.2 操作模式 6.10.2.1 ISO 7816-3 模式 ISO 7816-3 接口可以由软件控制产生硬件激活,热复位和释放序列。后面会对硬件激活,热复位和释 放序列作详细说明。 智能卡接口连接 智能卡接口连接如图 6.10-2 智能卡接口连接 1. SCn_CLK/UARTn_TXD:智能卡接口时钟 (MCU输出) 2. SCn_DAT/UARTn_RXD:智能卡数据 (双向管脚l) 3. SCn_RST:智能卡复位脚 (MCU输出, 软件指定GPIO) MS51 系列技术参考手册 4. SCn_PWR:智能卡电源控制脚 (MCU输出, 软件件指定 GPIO) 5. *: SCn_PWR 是用来控制 ISO 7816-3电源的开关,请不要将SCn_PWR作为ISO 7816-3的供 电管脚。 6. SCn_CD: 智能卡插入检测管脚 (MCU输入, 检测卡片插入) Feb. 21, 2020 Page 368 of 460 Rev. 1.01 MS51 MCU SC PORT I/O PORT Smart Card SC_CLK SC_CLK SC_DAT SC_DAT SC_RST SC_RST SC_PWR SC Power Control Circuit SC_PWR Card Detect Mechanism SC_CD 图 6.10-2 智能卡接口连接 激活和冷复位 激活和冷复位的流程见图 6.10-3 智能卡激活和冷复位流程 1. 软件设置SCn_RST为低 2. 在T1和SCn_DAT为高(接收模式)之前设置SCn_PWR为高 3. T1之后设置CLKKEEP (SCCR2[1]) 为 ‘ ’使能SCn_CLK时钟 4. T2后释放SCn_RST为高 5. ISO 7816-3主机控制器在T3时读卡片ATR MS51 系列技术参考手册 SC_PWR SC_CLK SC_RST SC_DAT Undefined T1 ATR T2 T3 Suggestion timing (Unit SC Clock) Time Comment T1 T2 T1 SC_PWR to SC_CLK Start 83.5 491 T2 SC_CLK Start to SC_RST Assert 133 537 T3 SC_RST Start to ATR Appear 165 569 165 42060 400
MS51PC0AE 价格&库存

很抱歉,暂时无法提供与“MS51PC0AE”相匹配的价格&库存,您可以联系我们找货

免费人工找货
MS51PC0AE
    •  国内价格
    • 1+1.46510

    库存:0

    MS51PC0AE
      •  国内价格
      • 2500+3.81851

      库存:0

      MS51PC0AE
        •  国内价格
        • 2500+3.81851

        库存:0

        MS51PC0AE
        •  国内价格
        • 1+3.19300

        库存:0