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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
PMS134-SS24

PMS134-SS24

  • 厂商:

    PADAUK(应广)

  • 封装:

    SSOP24

  • 描述:

    PMS134-SS24

  • 数据手册
  • 价格&库存
PMS134-SS24 数据手册
PMS133/ PMS134 8bit OTP 带 12bit ADC 单片机 数据手册 Version 0.02– Sep. 30, 2017 Copyright  2017 by PADAUK Technology Co., Ltd., all rights reserved 10F-2, No. 1, Sec. 2, Dong-Da Road, Hsin-Chu 300, Taiwan, R.O.C. TEL: 886-3-532-7598  www.padauk.com.tw PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 重要声明 应广科技保留权利在任何时候变更或终止产品,建议客户在使用或下单前与应广科技或代理商 联系以取得最新、最正确的产品信息。 应广科技不担保本产品适用于保障生命安全或紧急安全的应用,应广科技不为此类应用产品承 担任何责任。关键应用产品包括,但不仅限于,可能涉及的潜在风险的死亡,人身伤害,火灾或严 重财产损失。 应广科技不承担任何责任来自于因客户的产品设计所造成的任何损失。在应广科技所保障的规 格范围内,客户应设计和验证他们的产品。为了尽量减少风险,客户设计产品时,应保留适当的产 品工作范围安全保障。 PMS133/PMS134 不适用 AC 阻容降压,强纹波或高 EFT 要求的产品应用。 提供本文档的中文简体版是为了便于了解,请勿忽视文中英文的部份,因为其中提供有关产品性能以及产品使用的有 用信息,应广科技暨代理商对于文中可能存在的差错不承担任何责任,建议参考本文件英文版。 Copyright 2017, PADAUK Technology Co. Ltd Page 2 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 目 录 1. 功能. ....................................................................................................................................... 9 1.1. 特性 ........................................................................................................................................ 9 1.2. 系统特性 ................................................................................................................................. 9 1.3. CPU 特性 ............................................................................................................................... 9 1.4. 封装信息 ............................................................................................................................... 10 2. 系统概述和方框图 ................................................................................................................. 11 3. 引脚功能说明 ........................................................................................................................ 12 4. 器件电器特性 ........................................................................................................................ 21 4.1. 直流交流电气特性 ................................................................................................................. 21 4.2. 绝对最大值范围 ..................................................................................................................... 22 4.3. ILRC 频率与 VDD 关系曲线图 ............................................................................................... 23 4.4. IHRC 频率与 VDD 关系曲线图............................................................................................... 23 4.5. ILRC 频率与温度关系曲线图 ................................................................................................. 24 4.6. IHRC 频率与温度关系曲线图(校准到 16MHz) ................................................................... 24 4.7. 工作电流 vs. VDD 与系统时钟 = ILRC/n 关系曲线图 ............................................................. 25 4.8. 工作电流 vs. VDD 与系统时钟 = IHRC/n 关系曲线图 ........................................................... 25 4.9. 工作电流 vs. VDD 与系统时钟 = 4MHz EOSC / n 关系曲线图 ............................................... 26 4.10. 工作电流 vs. VDD 与系统时钟 = 32KHz EOSC / n 关系曲线图(保留) ............................... 26 4.11. 工作电流 vs.VDD 与系统时钟 = 1MHz EOSC / n 关系曲线图 ................................................ 27 4.12. IO 引脚输出的驱动电流(IOH)与灌电流(IOL)曲线图 ................................................................... 27 4.13. IO 引脚输入高/低阀值电压(VIH/VIL)曲线图 .............................................................................. 29 4.14. IO 引脚上拉阻抗曲线图 ......................................................................................................... 30 4.15. 掉电电流(IPD) /省电电流 (IPS).vs VDD 关系曲线图 ................................................................. 30 4.16. 开机时序图 ............................................................................................................................ 31 5. 功能概述 ............................................................................................................................... 32 5.1. OTP 程序存储器 .................................................................................................................... 32 5.2. 启动程序 ............................................................................................................................... 32 5.3. 数据存储器 -- SRAM............................................................................................................. 33 5.4. 振荡器和时钟 ........................................................................................................................ 33 5.4.1. 内部高频 RC 振荡器和内部低频 RC 振荡器 ............................................................... 33 5.4.2. 芯片校准 .................................................................................................................... 33 5.4.3. IHRC 频率校准和系统时钟 ......................................................................................... 34 5.4.4. 外部晶体振荡器 ......................................................................................................... 35 5.4.5. 系统时钟和 LVR 基准位 ............................................................................................. 37 Copyright 2017, PADAUK Technology Co. Ltd Page 3 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.4.6. 系统时钟切换 ............................................................................................................. 37 5.5. 比较器 ................................................................................................................................... 39 5.5.1. 内部参考电压 (Vinternal R) ............................................................................................. 40 5.5.2. 使用比较器 ................................................................................................................ 42 5.5.3. 使用比较器和 band-gap 1.20V ................................................................................... 42 5.6. VDD/2 LCD 偏置电压产生器.................................................................................................. 43 5.7. 16 位计数器(Timer16) ........................................................................................................... 44 5.8. 8 位 PWM 计数器(Timer2/Timer3) ......................................................................................... 46 5.8.1. 使用 Timer2 产生周期波形 ......................................................................................... 47 5.8.2. 使用 Timer2 产生 8 位 PWM 波形 .............................................................................. 49 5.8.3. 使用 Timer2 产生 6 位 PWM 波形 .............................................................................. 50 5.9. 11 位 PWM 计数器 ................................................................................................................ 51 5.9.1. PWM 波形................................................................................................................. 51 5.9.2. 硬件时序框图 ............................................................................................................. 52 5.9.3. 11 位 PWM 生成器计算公式....................................................................................... 53 5.10. 看门狗计数器 ........................................................................................................................ 53 5.11. 中断 ...................................................................................................................................... 54 5.12. 省电与掉电 ............................................................................................................................ 56 5.12.1. 省电模式(“stopexe”) ................................................................................................... 56 5.12.2. 掉电模式(“stopsys”) ................................................................................................... 57 5.12.3. 唤醒 ........................................................................................................................... 57 5.13. IO 引脚 ................................................................................................................................. 58 5.14. 复位和 LVR ........................................................................................................................... 59 5.14.1. 复位 ........................................................................................................................... 59 5.14.2. LVR 复位 .................................................................................................................. 59 5.15. 模拟-数字转换器(ADC) 模块 ................................................................................................. 60 5.15.1. AD 转换的输入要求 ................................................................................................... 61 5.15.2. 选择参考高电压 ......................................................................................................... 62 5.15.3. ADC 时钟选择............................................................................................................ 62 5.15.4. 配置模拟引脚 ............................................................................................................. 62 5.15.5. 使用 ADC................................................................................................................... 62 5.16. 乘法器 ................................................................................................................................... 63 6. IO 寄存器 ............................................................................................................................. 64 6.1. ACC 状态标志寄存器(flag), IO 地址 = 0x00 .......................................................................... 64 6.2. 堆栈指针寄存器(sp), IO 地址 = 0x02 ..................................................................................... 64 6.3. 时钟模式寄存器(clkmd), IO 地址 = 0x03 ............................................................................... 64 6.4. 中断允许寄存器(inten), IO 地址 = 0x04 ................................................................................. 65 Copyright 2017, PADAUK Technology Co. Ltd Page 4 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.5. 中断请求寄存器(intrq), IO 地址 = 0x05 ................................................................................... 65 6.6. Timer16 控制寄存器(t16m), IO 地址 = 0x06 .......................................................................... 66 6.7. 乘法器运算对象寄存器(mulop), IO 地址 = 0x08...................................................................... 66 6.8. 乘法器结果高字节寄存器(mulrh), IO 地址 = 0x09 ................................................................... 66 6.9. 外部晶体振荡器控制寄存器 (eoscr), IO 地址= 0x0a................................................................ 66 6.10. 中断边缘选择寄存器(integs), IO 地址 = 0x0c .......................................................................... 67 6.11. 端口 A 数字输入使能寄存器(padier), IO 地址 = 0x0d .............................................................. 67 6.12. 端口 B 数字输入使能寄存器(pbdier), IO 地址 = 0x0e .............................................................. 67 6.13. 端口 C 数字输入使能寄存器(pcdier), IO 地址 = 0x0f ............................................................... 67 6.14. 端口 A 数据寄存器(pa), IO 地址 = 0x10 .................................................................................. 67 6.15. 端口 A 控制寄存器(pac), IO 地址 = 0x11................................................................................. 68 6.16. 端口 A 上拉控制寄存器(paph), IO 地址 = 0x12 ....................................................................... 68 6.17. 端口 B 数据寄存器(pb), IO 地址 = 0x13 .................................................................................. 68 6.18. 端口 B 控制寄存器(pbc), IO 地址 = 0x14................................................................................. 68 6.19. 端口 B 上拉控制寄存器(pbph), IO 地址 = 0x15 ....................................................................... 68 6.20. 端口 C 数据寄存器(pc), IO 地址 = 0x16 .................................................................................. 68 6.21. 端口 C 控制寄存器(pbc), IO 地址 = 0x17 ................................................................................ 68 6.22. 端口 C 上拉控制寄存器(pcph), IO 地址 = 0x18 ....................................................................... 68 6.23. ADC 控制寄存器(adcc), IO 地址 = 0x20 .................................................................................. 69 6.24. ADC 模式寄存器(adcm), IO 地址 = 0x21 ................................................................................. 69 6.25. ADC 调节控制寄存器(adcrgc), IO 地址 = 0x24 ........................................................................ 70 6.26. ADC 数据高位寄存器(adcrh), IO 地址 = 0x22 .......................................................................... 70 6.27. ADC 数据低位寄存器(adcrl), IO 地址 = 0x23 ........................................................................... 70 6.28. 杂项寄存器(misc), IO 地址 = 0x26 .......................................................................................... 70 6.29. 比较器控制寄存器(gpcc), IO 地址 = 0x2b ............................................................................... 71 6.30. 比较器选择寄存器(gpcs), IO 地址 = 0x2c................................................................................ 71 6.31. Timer2 控制寄存器(tm2c), IO 地址 = 0x30 ............................................................................... 72 6.32. Timer2 计数寄存器(tm2ct), IO 地址 = 0x31 .............................................................................. 72 6.33. Timer2 分频寄存器(tm2s), IO 地址 = 0x32 ............................................................................... 72 6.34. Timer2 上限寄存器(tm2b), IO 地址 = 0x33 .............................................................................. 73 6.35. Timer3 控制寄存器(tm3c), IO 地址 = 0x34 ............................................................................... 73 6.36. Timer3 计数寄存器(tm3ct), IO 地址 = 0x35 ............................................................................. 73 6.37. Timer3 分频寄存器(tm3s), IO 地址 = 0x36 .............................................................................. 73 6.38. Timer3 上限寄存器(tm3b), IO 地址 = 0x37.............................................................................. 74 6.39. PWMG0 控制寄存器(pwmg0c), IO 地址 = 0x40 ....................................................................... 74 6.40. PWMG0 分频 Register (pwmg0s), IO 地址 = 0x41 .................................................................. 74 6.41. PWMG0 占空比高位寄存器(pwmg0dth), IO 地址 = 0x42 ......................................................... 74 6.42. PWMG0 Duty Value Low Register (pwmg0dtl), IO address = 0x43 .......................................... 75 Copyright 2017, PADAUK Technology Co. Ltd Page 5 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.43. PWMG0 计数上限高位寄存器(pwmg0cubh), IO 地址 = 0x44 ................................................... 75 6.44. PWMG0 计数上限低位寄存器(pwmg0cubl), IO 地址 = 0x45 .................................................... 75 6.45. PWMG1 控制寄存器(pwmg1c), IO 地址 = 0x46 ...................................................................... 75 6.46. PWMG1 分频 Register(pwmg1s), IO 地址 = 0x47 ................................................................... 76 6.47. PWMG1 占空比高位寄存器(pwmg1dth), IO 地址 = 0x48 ......................................................... 76 6.48. PWMG1 占空比低位寄存器(pwmg1dtl), IO 地址 = 0x49 .......................................................... 76 6.49. PWMG1 计数上限高位寄存器(pwmg1cubh), IO 地址 = 0x4a ................................................... 76 6.50. PWMG1 计数上限低位寄存器(pwmg1cubl), IO 地址 = 0x04b .................................................. 76 6.51. PWMG2 控制寄存器(pwmg2c), IO 地址 = 0x4C ...................................................................... 77 6.53. PWMG2 占空比高位寄存器(pwmg2dth), IO 地址 = 0x4E ......................................................... 77 6.54. PWMG2 占空比低位寄存器(pwmg2dtl), IO 地址 = 0x4F .......................................................... 77 6.55. PWMG2 计数上限高位寄存器(pwmg2cubh), IO 地址 = 0x50 ................................................... 78 6.56. PWMG2 计数上限低位寄存器(pwmg2cubl), IO 地址 = 0x51 .................................................... 78 7. 指令 …………………………………………………………………………………………………..79 7.1. 数据传输类指令 ..................................................................................................................... 80 7.2. 算数运算类指令 ..................................................................................................................... 82 7.3. 移位运算类指令 ..................................................................................................................... 84 7.4. 逻辑运算类指令 ..................................................................................................................... 85 7.5. 位运算类指令 ........................................................................................................................ 87 7.6. 条件运算类指令 ..................................................................................................................... 88 7.7. 系统控制类指令 ..................................................................................................................... 90 7.8. 指令执行周期综述 ................................................................................................................. 91 7.9. 指令影响标志综述 ................................................................................................................. 92 8. 代码选项(Code Options) ..................................................................................................... 93 9. 特别注意事项 ........................................................................................................................ 95 9.1. 警告 ...................................................................................................................................... 95 9.2. 使用 IC ................................................................................................................................. 95 9.2.1. IO 引脚的使用和设定 ................................................................................................. 95 9.2.2. 中断 ........................................................................................................................... 95 9.2.3. 系统时间选择 ............................................................................................................. 96 9.2.4. 看门狗 ....................................................................................................................... 96 9.2.5. TIMER 溢出 .............................................................................................................. 96 9.2.6. IHRC ......................................................................................................................... 96 9.2.7. LVR ........................................................................................................................... 97 9.2.8. 指令 ........................................................................................................................... 97 9.2.9. BIT 定义..................................................................................................................... 97 Copyright 2017, PADAUK Technology Co. Ltd Page 6 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 9.2.10. 烧录方法 .................................................................................................................... 97 9.2.11. 烧录兼容性 ................................................................................................................ 97 9.3 使用 ICE ............................................................................................................................... 98 Copyright 2017, PADAUK Technology Co. Ltd Page 7 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 修订历史: 修订 日期 0.01 2017/09/11 描述 初版 1. 修改第 1.2 节系统特性 2. 修改第 2 章系统概述和方框图 3. 修改第 3 章引脚功能说明 4. 修改第 4.1 节 直流交流电气特性 5. 修改第 5.1 节 OTP 程序存储器 6. 修改第 5.4.3 节 IHRC 频率校准和系统时钟 7. 修改第 5.4.4 节 外部晶体振荡器 8. 修改第 5.5.2 节 使用比较器 9. 增加第 5.6 节 VDD/2 LCD 偏置电压产生器 10. 增加图 9 使用 VDD/2 LCD 偏置电压产生器 11. 修改第 5.7 节 16 位计数器 12. 修改第 5.8.2 节 使用 Timer2 产生 8 位 PWM 波形 13. 修改第 5.9 节 11 位 PWM 计数器 14. 修改第 5.12.1 节 省电模式(“stopexe”) 15. 修改图 18 IO 引脚缓冲区硬件图 16. 修改图 19 ADC 模块框图 17. 修改第 5.15.4 节 配置模拟引脚 18. 修改第 5.15.5 节 使用 ADC 19. 修改第 6.3 节 时钟模式寄存器 20. 修改第 6.4 节 中断允许寄存器 0.02 2017/09/30 21. 修改第 6.5 节 中断请求寄存器 22. 修改第 6.10 节中断边缘选择寄存器 23. 修改第 6.11 节 端口 A 数字输入使能寄存器 24. 修改第 6.12 节 端口 B 数字输入使能寄存器 25. 修改第 6.13 节 端口 C 数字输入使能寄存器 26. 修改第 6.23 节 ADC 控制寄存器 27. 修改第 6.25 节 ADC 调节控制寄存器 28. 修改第 6.28 节 杂项寄存器 29. 删除第 6.29 节 MISC2 寄存器 30. 修改第 6.33 节 Timer2 分频寄存器 31. 修改第 6.33 节 Timer2 分频寄存器 32. 修改第 6.37 节 Timer3 分频寄存器 33. 修改第 6.39 节 PWMG0 控制寄存器 34. 修改第 6.45 节 PWMG1 控制寄存器 35. 修改第 6.51 节 PWMG2 控制寄存器 36. 修改第 8 章 代码选项 37. 修改第 9.2.1 节 IO 引脚的使用和设定 38. 修改第 9.2.2 节 中断 39. 修改第 9.2.7 节 LVR 40. 修改第 9.2.9 节 RAM 定义 41. 修改第 9.3 节 使用 ICE Copyright 2017, PADAUK Technology Co. Ltd Page 8 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 1. 功能 1.1. 特性  通用 OTP 系列  请勿使用于 AC 阻容降压供电,强电源纹波,或高 EFT 要求之应用  工作温度范围:-20°C ~ 70°C 1.2. 系统特性 系列 程序存储器 数据存储器 (byte) 最大 IO 数量 最大 ADC 通道数量 PMS133 3KW 256 18 13 PMS134 4KW 256 22 13  一个硬件 16 位计数器  两个 8 位硬件 PWM 生成器  三个 11 位硬件 PWM 生成器(PWMG0,PWMG1 & PWMG2)  一个硬件比较器  Band-gap 电路提供 1.2V 参考电压  最多 13 通道 12 位 ADC  ADC 参考高电压:外部输入,内部 VDD,Band-gap 1.20V,4V,3V 及 2V  一组 1T 8x8 硬件乘法器  最多 22 个 IO 引脚并带有上拉电阻  提供三种不同的 IO 驱动能力以满足不同的应用需求 1. PB4,PB7 驱动/灌电流= 30mA/35mA (Strong) and 13mA/17mA (Normal) 2. 其他 IO(除 PA5 外) 驱动/灌电流 = 10mA/(13 or 20) mA 3. PA5 灌电流 = 10mA  每个 IO 引脚都可设定唤醒功能  内置 1/2 VDD LCD 偏置电压产生器,可支持最大 4×10 点的 LCD 屏  时钟源:IHRC,ILRC 及 EOSC(XTAL)  对所有带有唤醒功能的 IO,都支持两种可选择的唤醒速度:正常唤醒和快速唤醒  8 段 LVR 复位电压设定:4.0V,3.5V,3.0V,2.75V,2.5V,2.2V,2.0V,1.8V  两组 Code Option 可选的外部中断引脚 1.3. CPU 特性  8bit 高性能 RISC CPU  提供 87 个有效指令  大部分都是 1T(单周期)指令  可程序设定的堆栈指针和堆栈深度  数据和指令都是直接和间接寻址模式  所有的数据存储器都可以当作指针  独立的 IO 地址和存储器地址 注意:“保留”指留作后用。 Copyright 2017, PADAUK Technology Co. Ltd Page 9 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 1.4. 封装信息  PMS134 系列  PMS134-U06: SOT23-6 (60mil)  PMS134-S08: SOP8 (150mil)  PMS134-M10: MSOP10 (118mil)  PMS134-S14: SOP14 (150mil)  PMS134-S16A: SOP16A (150mil)  PMS134-S16B: SOP16B (150mil)  PMS134-S20: SOP20 (300mil)  PMS134-H20: HTSOP20 (150mil)  PMS134-S24: SOP24 (300mil)  PMS134-Y24: SSOP24 (150mil)  PMS134-4N10: DFN3*3-10P (0.5pitch)  PMS134-2J16A: QFN4*4-16P (0.65pitch)  PMS134-1J16A: QFN3*3-16P (0.5pitch)  PMS134-2J24: QFN4*4-24P (0.5pitch)  PMS133 系列  PMS133-U06: SOT23-6 (60mil)  PMS133-S08: SOP8 (150mil)  PMS133-M10: MSOP10 (118mil)  PMS133-S14: SOP14 (150mil)  PMS133-S16A: SOP16A (150mil)  PMS133-S16B: SOP16B (150mil)  PMS133-S20: SOP20 (300mil)  PMS133-H20: HTSOP20 (150mil)  PMS133-4N10: DFN3*3-10P (0.5pitch)  PMS133-2J16A: QFN4*4-16P (0.65pitch)  PMS133-1J16A: QFN3*3-16P (0.5pitch) Copyright 2017, PADAUK Technology Co. Ltd Page 10 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 2. 系统概述和方框图 PMS133/PMS134 系列是一款带 12bit ADC,以 OTP 为程序基础的 CMOS 8-bit 微处理器。它运用 RISC 的架构 并且所有的指令架构的执行周期都是一个指令周期,只有少部分指令需要两个指令周期。 内部最多达 3KW/4KW OTP 程序存储器以及 256 字节数据存储器,还有多达 13 通道 12 位分辨率的 ADC,其中 一个通道是带有多个内部参考电压可供选择。PMS133/PMS134 同时提供 6 个硬件计数器:一个 16 位的硬件计 数器,两个 8 位 PWM 计数器,和三个 11 位 PWM 计数器。另外,PMS133/PMS134 还提供一个硬件比较器和驱 动 LCD 的 1/2 VDD 偏置电压。 Copyright 2017, PADAUK Technology Co. Ltd Page 11 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 3. 引脚功能说明 Copyright 2017, PADAUK Technology Co. Ltd Page 12 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 Copyright 2017, PADAUK Technology Co. Ltd Page 13 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 Copyright 2017, PADAUK Technology Co. Ltd Page 14 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 Copyright 2017, PADAUK Technology Co. Ltd Page 15 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 Copyright 2017, PADAUK Technology Co. Ltd Page 16 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 引脚名称 引脚类型 描述 此引脚可以用作: (1) 端口 A 位 7。并可编程设定为输入或输出,弱上拉电阻模式。 PA7 / IO X1 / ST / INT0C CMOS (2) 当使用外部晶振时,作为 Xin(X1)引脚。 (3) INT0C。作为外部中断端口 0。通过寄存器可以设置上升沿和下降沿响应中断服务 请求。 当用做晶体振荡器的功能时,为减少漏电流,请用 padier.7 关闭其数字输入功能。这个 引脚可以设定在睡眠中唤醒系统的功能,但是当 padier.7 为”0”时,唤醒功能是被关闭 的。 此引脚可以用作: PA6 / X2 IO ST / CMOS (1) 端口 A 位 6,并可编程设定为输入或输出,弱上拉电阻模式。 (2) 当使用外部晶振时,作为 Xout(X2)引脚。 当用做晶体振荡器的功能时,为减少漏电流,请用 padier.6 关闭其数字输入功能.这个 引脚可以设定在睡眠中唤醒系统的功能,但是当 padier.6 为”0”时,唤醒功能是被关闭 的。 此引脚可以用作: PA5 / PRSTB / IO (OD) ST / CMOS (1) 端口 A 位 5,此引脚可以设定为输入或开漏输出(open drain)模式。 (2) 硬件复位。 请注意此引脚没有上拉或下拉电阻。这个引脚可以设定在睡眠中唤醒系统的功能;但是, 当 padier.5 为”0”时,唤醒功能是被关闭的。另外,当此引脚设定成输入时,对于需要 高抗干扰能力的系统,请串接 33Ω 电阻。 此引脚可以用作: (1) 端口 A 位 4,此引脚可以设定为输入,或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 9 。 PA4 / AD9 / COM3 / CIN+ / CIN1- / INT1A / IO ST / CMOS / Analog (3) COM3 口,提供 1/2 VDD 驱动 LCD 显示。 (4) 比较器的正输入源。 (5) 比较器的负输入源 1。 (6) INT1A。它可以用作外部中断源 1。通过寄存器可以设置上升沿和下降沿响应中断 服务请求。 (7) 11 位 PWM 生成器 PWMG1 的输出端。 PG1PWM 当用做模拟输入功能时,为减少漏电流,请用 padier.4 关闭其数字输入功能。这个引脚 可以设定在睡眠中唤醒系统的功能;但是,当 padier.4 为”0”时,唤醒功能是被关闭的。 此引脚可以用作: (1) 端口 A 位 3,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 8。 PA3 / AD8 / COM4 / CIN0- / INT1B / TM2PWM / PG2PWM IO ST / CMOS / Analog (3) COM4 口,提供 1/2 VDD 驱动 LCD 显示。 (4) 比较器 0 的负输入。 (5) 外部中断源 1B。它可以用作外部中断源 1。通过寄存器可以设置上升沿和下降沿响 应中断服务请求。 (6) Timer2 的 PWM 输出端。 (7) 11 位 PWM 生成器 PWMG2 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 padier.3 关闭其数字输入功能. 这个引脚 可以设定在睡眠中唤醒系统的功能;但是,当 padier.3 为”0”时,唤醒功能是被关闭的。 Copyright 2017, PADAUK Technology Co. Ltd Page 17 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 引脚名称 引脚类型 描述 此引脚可以用作: (1) 端口 A 位 2,并可编程设定为输入或输出,弱上拉电阻模式。 PA2/ INT0B IO ST / CMOS (2) INT0B。它可以用作外部中断源 0。通过寄存器可以设置上升沿和下降沿响应中断 服务请求。 当用做模拟输入功能时,为减少漏电流,请用 padier.2 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当 padier.2 为”0”时,唤醒功能是被 关闭的。 IO PA1 ST / CMOS 此引脚可以用作: 端口 A 位 1,并可编程设定为输入或输出,弱上拉电阻模式。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当 padier.1 为”0”时,唤醒功能是 被关闭的。 此引脚可以用作: (1) 端口 A 位 0,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 10。 PA0 / AD10 / IO COM2 / ST / CO / CMOS / INT0 / Analog PG0PWM (3) COM2 口,提供 1/2 VDD 驱动 LCD 显示。 (4) 比较器的输出。 (5) INT0。它可以用作外部中断源 0。通过寄存器可以设置上升沿和下降沿响应中断服 务请求。 (6) 11 位 PWM 生成器 PWMG0 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 padier.0 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当 padier.0 为”0”时,唤醒功能是 被关闭的。 此引脚可以用作: (1) 端口 B 位 7,并可编程设定为输入或输出,弱上拉电阻模式。 PB7 / AD7 / CIN5- / TM3PWM / PG1PWM IO ST / CMOS / Analog (2) ADC 模拟输入通道 7。 (3) 比较器的负输入源 5。 (4) Timer3 的 PWM 输出端。 (5) 11 位 PWM 生成器 PWMG1 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 pbdier.7 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当 pbdier.7 为”0”时,唤醒功能是 被关闭的。 此引脚可以用作: (1) 端口 B 位 6,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 6。 PB6 / AD6 / COM4 / CIN4- / INT1C / TM3PWM / PG1PWM IO ST / CMOS / Analog (3) COM4 口,提供 1/2 VDD 驱动 LCD 显示。 (4) 比较器的负输入源 4。 (5) INT1C。它可以用作外部中断源 1。通过寄存器可以设置上升沿和下降沿响应中断 服务请求。 (6) Timer3 的 PWM 输出端。 (7) 11 位 PWM 生成器 PWMG1 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 pbdier.6 关闭其数字输入功能。这个引脚 可以设定在睡眠中唤醒系统的功能;但是,当 pbdier.6 为”0”时,唤醒功能是被关闭的。 Copyright 2017, PADAUK Technology Co. Ltd Page 18 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 引脚名称 引脚类型 描述 此引脚可以用作: (1) 端口 B 位 5,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 5。 PB5 / AD5 / COM3 / INT0A / TM3PWM / PG0PWM IO ST / CMOS / Analog (3) COM3 口,提供 1/2 VDD 驱动 LCD 显示。 (4) INT0A。它可以用作外部中断源 0。通过寄存器可以设置上升沿和下降沿响应中断 服务请求。 (4) Timer3 的 PWM 输出端。 (5) 11 位 PWM 生成器 PWMG0 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 pbdier.5 关闭其数字输入功能。这个引 脚可以设定在睡眠中唤醒系统的功能;但是,当 pbdier.5 为”0”时,唤醒功能是被关闭 的。 此引脚可以用作: (1) 端口 B 位 4,并可编程设定为输入或输出,弱上拉电阻模式。 PB4 / IO (2) ADC 模拟输入通道 4。 AD4 / ST / (3) Timer2 的 PWM 输出。 TM2PWM / CMOS / (4) 11 位 PWM 生成器 PWMG0 的输出端。 PG0PWM Analog 当用做模拟输入功能时,为减少漏电流,请用 pbdier.4 关闭其数字输入功能。这个引 脚可以设定在睡眠中唤醒系统的功能;但是,当 pbdier.4 为”0”时,唤醒功能是被关闭 的。 此引脚可以用作: PB3 / AD3 / PG2PWM IO ST / CMOS / Analog (1) 端口 B 位 3,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 3。 (3) 11 位 PWM 生成器 PWMG2 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 pbdier.3 关闭其数字输入功能。这个引 脚可以设定在睡眠中唤醒系统的功能;但是,当 pbdier.3 为”0”时,唤醒功能是被关闭 的。 此引脚可以用作: (1) 端口 B 位 2,并可编程设定为输入或输出,弱上拉电阻模式。 PB2 / AD2 / COM2 / TM2PWM / PG2PWM IO ST / CMOS / Analog (2) ADC 模拟输入通道 2。 (3) COM2 口,提供 1/2 VDD 驱动 LCD 显示。 (4) Timer2 的 PWM 输出。 (5) 11 位 PWM 生成器 PWMG2 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 pbdier.2 关闭其数字输入功能。这个引 脚可以设定在睡眠中唤醒系统的功能;但是,当 pbdier.2 为”0”时,唤醒功能是被关闭 的。 此引脚可以用作: (1) 端口 B 位 1,并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 模拟输入通道 1。 PB1 / IO AD1 / ST / COM1 / CMOS / (4) ADC 的外部参考高电压。 Vref Analog 此引脚可用做端口 B 位 1,并可编程设定为输入或输出,弱上拉电阻模式。这个引脚 (3) COM1 口,提供 1/2 VDD 驱动 LCD 显示。 可以设定在睡眠中唤醒系统的功能;但是,当寄存器 pbdier 位 1 为”0”时,唤醒功能是 被关闭的。 Copyright 2017, PADAUK Technology Co. Ltd Page 19 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 引脚名称 引脚类型 描述 此引脚可以用作: (1) 端口 B 位 0,并可编程设定为输入或输出,弱上拉电阻模式。 PB0 / IO AD0 / ST / COM1 / CMOS / INT1 Analog (2) ADC 的模拟输入通道 0。 (3) COM1 口,提供 1/2 VDD 驱动 LCD 显示。 (4) INT1。它可以用作外部中断源 1。通过寄存器可以设置上升沿和下降沿响应中断服 务请求。 当用做模拟输入功能时,为减少漏电流,请用 pbdier.0 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当 pbdier.0 为”0”时,唤醒功能是 被关闭的。 IO PC5 ST / CMOS IO PC4 ST / CMOS PC3 / PG1PWM IO ST / CMOS 此引脚可以用作: 端口 C 位 5。并可编程设定为输入或输出,弱上拉电阻模式。 pcdier.5 可以设为“0” 禁用睡眠中唤醒系统的功能。 此引脚可以用作: 端口 C 位 4。并可编程设定为输入或输出,弱上拉电阻模式。 pcdier.4 可以设为“0” 禁用睡眠中唤醒系统的功能。 此引脚可以用作: (1) 端口 C 位 3。并可编程设定为输入或输出,弱上拉电阻模式。 (2) 11 位 PWM 生成器 PWMG1 的输出端。 pcdier.3 可以设为“0” 禁用睡眠中唤醒系统的功能。 此引脚可以用作: PC2 / AD12 / PG0PWM IO ST / CMOS / Analog (1) 端口 C 位 2。并可编程设定为输入或输出,弱上拉电阻模式。 (2) ADC 的模拟输入通道 12。 (3) 11 位 PWM 生成器 PWMG0 的输出端。 当用做模拟输入功能时,为减少漏电流,请用 pcdier.2 关闭其数字输入功能。 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当 pcdier.2 为”0”时,唤醒功能是 被关闭的。 此引脚可以用作: IO (4) 端口 C 位 1。并可编程设定为输入或输出,弱上拉电阻模式。 (5) ADC 的模拟输入通道 11。 PC1 / ST / AD11 CMOS / 当用做模拟输入功能时,为减少漏电流,请用 pcdier.1 关闭其数字输入功能。 Analog 这个引脚可以设定在睡眠中唤醒系统的功能;但是,当 pcdier.1 为”0”时,唤醒功能是 被关闭的。 PC0 / PG2PWM IO ST / CMOS 此引脚可以用作: (1) 端口 C 位 0。并可编程设定为输入或输出,弱上拉电阻模式。 (2) 11 位 PWM 生成器 PWMG2 的输出端。 pcdier.0 可以设为“0” 禁用睡眠中唤醒系统的功能。 VDD VDD 正电源 GND GND 地 注意 : IO:输入/输出;ST:施密特触发器输入;Analog:模拟输入引脚;CMOS:CMOS 电压基准位 Copyright 2017, PADAUK Technology Co. Ltd Page 20 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 4. 器件电器特性 4.1. 直流交流电气特性 o o 下列所有数据除特别列明外,皆于 Ta = -20 C ~ 75 C, VDD=5.0V, fSYS=2MHz 之条件下获得。 符号 VDD LVR% fSYS VPOR IOP IPD IPS 描述 工作电压 LVR 公差 系统时钟 (CLK)* = IHRC/2 IHRC/4 IHRC/8 ILRC 最小值 典型值 最大值 单位 2.2* 5.0 5.5 V -5 5 % 0 0 0 8M 4M 2M Hz 上电复位电压 工作电流 掉电模式下电流 (使用 stopsys 命令) 省电模式下电流 (使用 stopexe 命令) VIL 输入低电压 VIH 输入高电压 o 条件(Ta=25 C) * 受限于 LVR 公差 63K VDD ≧ 3.5V VDD≧ 2.5V VDD ≧ 2.2V VDD = 5.0V 2.0* * 受限于 LVR 公差 0.75 40 0.2 0.1 mA uA uA uA 2.5 uA 0 0.1 VDD 0 0.2 VDD 0.8 VDD VDD 0.7 VDD VDD V V fSYS=IHRC/16=1MIPS@5.0V fSYS=ILRC=67KHz@3.3V fSYS= 0Hz, VDD =5.0V fSYS= 0Hz, VDD =3.3V VDD =5.0V; fSYS= ILRC 只启用 ILRC 模块 PA5 其他 IO 口 PA5 其他 IO 口 IO 输出灌电流 IOL PB4, PB7 (Normal) 17 PB4, PB7 (Strong) 35 PA0-4, PB2, PB5-6 20 PA5-7, PB0-1, PB3, PC0-5 13 mA VDD=5.0V, VOL=0.5V mA VDD=5.0V, VOH=4.5V IO 输出驱动电流 IOH VIN IINJ (PIN) PB4, PB7 (Normal) 13 PB4, PB7 (Strong) 30 PA5 0 Other IOs 10 输入电压 -0.3 引脚输入电流 VDD +0.3 V 1 mA 100 RPH 上拉电阻 VDD =5.0V KΩ 200 450 VBG fILRC tINT Band-gap 参考电压 校准后 ILRC 频率 * 中断脉冲宽度 Copyright 2017, PADAUK Technology Co. Ltd 1.20* 1.255* 15.76* 16* 16.24* 15.20* 16* 16.80* Page 21 of 98 VDD =3.3V VDD =2.2V 1.145* 30 VDD +0.3≧VIN≧ -0.3 V VDD =2.2V ~ 5.5V o o -20 C “缓存器介绍” -> CLKMD” 。 例 1: 系统时钟从 ILRC 切换到 IHRC/2 … // CLKMD = 0x34; // CLKMD.2 = 0; // 系统时钟是 ILRC 切换到 IHRC/2,ILRC 不能在这里禁用 ILRC 可以在这里禁用 … Copyright 2017, PADAUK Technology Co. Ltd Page 37 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 例 2: 系统时钟从 ILRC 切换到 EOSC … // CLKMD = 0xA6; // CLKMD.2 = 0; // 系统时钟是 ILRC 切换到 IHRC,ILRC 不能在这里禁用 ILRC 可以在这里禁用 … 例 3: 系统时钟从 IHRC/2 切换到 ILRC … // CLKMD = 0xF4; // CLKMD.4 = 0; // 系统时钟是 IHRC/2 切换到 ILRC,IHRC 不能在这里禁用 IHRC 可以在这里禁用 … 例 4: 系统时钟从 IHRC/2 切换到 EOSC … // CLKMD = 0XB0; // CLKMD.4 = 0; // 系统时钟是 IHRC/2 切换到 EOSC,IHRC 不能在这里禁用 IHRC 可以在这里禁用 … 例 5: 系统时钟从 IHRC/2 切换到 IHRC/4 … CLKMD // = 0X14; // 系统时钟是 IHRC/2, ILRC 在这里是启用的 切换到 IHRC/4 … 例 6: 如果同时切换系统时钟关闭原来的振荡器,系统会当机 … CLKMD // = 0x30; // 系统时钟是 ILRC 不能从 ILRC 切换到 IHRC/2 同时关闭 ILRC 振荡器 … Copyright 2017, PADAUK Technology Co. Ltd Page 38 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.5. 比较器 PMS133/PMS134 内置一个硬件比较器,如图.4 所示比较器硬件原理框图。它可以比较两个引脚之间的信 号或者与内部参考电压 Vinternal R 或者与内置 band-gap(1.2v)做比较。两个信号进行比较,一个是正输入,另一 个是负输入。比较器的负输入可以是 PA3,PA4,内置 band-gap(1.2v),PB6,PB7,或者内部参考电压 Vinternal R,并由寄存器 gpcc 的[3:1]位来选择。比较器的正输入 可以是 PA4 或者 Vinternal R,并由 gpcc 寄存器的位 0 来选 择。 比较器的输出结果可以选择直接输出到 PA0,或者通过 Timer2 计数器时钟模块(TM2_CLK)采样,另外,信 号是否反极性也是可选的,比较器输出结果可以用产生中断信号或者通过 gpcc 寄存器的方式读取。 图.4: 比较器硬件原理框图 Copyright 2017, PADAUK Technology Co. Ltd Page 39 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.5.1. 内部参考电压 (Vinternal R) 内部参考电压 Vinternal R 由一连串电阻所组成,可以产生不同层次的参考电压, gpcs 寄存器的位 4 和位 5 是用来选择 Vinternal R 的最高和最低值,位[3:0]用于选择所要的电压水平,这电压水平是由 Vinternal R 的最高和 最低值均分 16 等份,由位[3:0]选择出来。图.5~图.8 显示四个条件下有不同的参考电压 Vinternal R。内部参考 电压 Vinternal R 可以通过 gpcs 寄存器来设置,范围从(1/32)*VDD 到 (3/4)*VDD。 Case 1 : gpcs.5=0 & gpcs.4=0 16 stages VDD 8R 8R 8R gpcs.5=1 R R R R gpcs.5=0 gpcs.4=0 gpcs.4=1 MUX gpcs[3:0] V internal R = (3/4) VDD ~ (1/4) VDD + (1/32) VDD @ gpcs[3:0] = 1111 ~ gpcs[3:0] = 0000 1 V internal R = 4 (n+1) * VDD + 32 * VDD, n = gpcs[3:0] in decimal 图.5: Vinternal R 硬件接法(gpcs.5=0 & gpcs.4=0) Case 2 : gpcs.5=0 & gpcs.4= 1 16 stages VDD 8R 8R gpcs.5=1 8R R R R R gpcs.5=0 gpcs.4=0 gpcs.4=1 MUX gpcs[3:0] V internal R = (2/3) VDD ~ (1/24) VDD @ gpcs[3:0] = 1111 ~ gpcs[3:0] = 0000 V internal R = (n+1) 24 * VDD, n = gpcs[3:0] in decimal 图.6: Vinternal R 硬件接法(gpcs.5=0 & gpcs.4=1) Copyright 2017, PADAUK Technology Co. Ltd Page 40 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 Case 3 : gpcs.5= 1 & gpcs.4= 0 16 stages VDD 8R 8R 8R gpcs.5=1 R R R R gpcs.5=0 gpcs.4=0 gpcs.4=1 MUX gpcs[3:0] V internal R = (3/5) VDD ~ (1/5) VDD + (1/40) VDD @ gpcs[3:0] = 1111 ~ gpcs[3:0] = 0000 1 V internal R = 5 (n+1) * VDD + 40 * VDD, n = gpcs[3:0] in decimal 图.7: Vinternal R 硬件接法(gpcs.5=1 & gpcs.4=0) Case 4 : gpcs.5=1 & gpcs.4=1 VDD 8R 16 stages 8R gpcs.5=1 8R R R R R gpcs.5=0 gpcs.4=0 gpcs.4=1 MUX gpcs[3:0] V internal R = (1/2) VDD ~ (1/32) VDD @ gpcs[3:0] = 1111 ~ gpcs[3:0] = 0000 V internal R = (n+1) * VDD, n = gpcs[3:0] in decimal 32 图.8: Vinternal R 硬件接法(gpcs.5=1 & gpcs.4=1) Copyright 2017, PADAUK Technology Co. Ltd Page 41 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.5.2. 使用比较器 例 I: 选择 PA3 为负输入和 Vinternal R 的电压为(18/32)*VDD 作为正输入, 比较器的结果将输出到 PA0。Vinternal R 选择图 10 的配置方式,gpcs [3:0] = 4b’1001 (n=9)以得到 Vinternal R = (1/4)*VDD + [(9+1)/32]*VDD = (18/32)*VDD。 gpcs = 0b1_0_00_1001; // 输出到 PA0, Vinternal R = VDD*(18/32) gpcc = 0b1_0_0_0_000_0; // 启用比较器, 负输入: PA3, 正输入: Vinternal R padier = 0bxxxx_0_xxx; //禁用 PA3 数字输入防止漏电 例 2: 选择 Vinternal R 为负输入,Vinternal R 的电压为(14/32)*VDD voltage level,选择 PA4 为正输入,比较器的 结果将反极性并输出到 PA0。Vinternal R 选择图 11 的配置方式,gpcs [3:0] = 4b’1101 (n=13)以得到 Vinternal R = [(13+1)/32]*VDD = (14/32)*VDD。 gpcs = 0b1_1_1_1_1101; // Vinternal R = VDD*(14/32) gpcc = 0b1_0_0_1_011_1; // 反极性输出, 负输入:Vinternal R, 正输入: PA4 padier = 0bxxx_0_xxxx; //禁用 PA4 数字输入防止漏电 5.5.3. 使用比较器和 band-gap 1.20V 内部 Band-gap 参考电压生成器可以提供 1.20V,它可以测量外部电源电压水平。该 Band-gap 参考电 压可以选做负输入去和正输入 Vinternal R 比较。Vinternal R 的电源是 VDD,利用调整 Vinternal R 电压水平和 Band-gap 参考电压比较,就可以知道 VDD 的电压。如果 N(gpcs[3:0]十进制)是让 Vinternal R 最接近 1.20V,那么 VDD 的电压就可以透过下列公式计算: 对于 Case 1 而言:VDD = [ 32 / (N+9) ] * 1.20 volt; 对于 Case 2 而言:VDD = [ 24 / (N+1) ] * 1.20 volt; 对于 Case 3 而言:VDD = [ 40 / (N+9) ] * 1.20 volt; 对于 Case 4 而言:VDD = [ 32 / (N+1) ] * 1.20 volt; 更多的讯息以及参考程序,请参考 IDE 软件。 Copyright 2017, PADAUK Technology Co. Ltd Page 42 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.6. VDD/2 LCD 偏置电压产生器 LCD 功能可以透过寄存器 misc.4 和代码选项 LCD2 启动与设置。有二组引脚可做为 LCD COM 的端口, 每一组各有 4 支引脚。通过代码选项 LCD2 选择 PB0_A034,PB0、PA0、PA4 和 PA3 这四支引脚可以输出 VDD/2,以做为驱动液晶显示器时 COM 的功能。而通过代码选项 LCD2 选择 PB1256,PB1、PB2、PB5 和 PB6 将做为 COM 的端口。 如果使用者想要输出 VDD、VDD/2 和 GND 三个电位,只要设置 misc.4=1 启动功能,然后输出高电位 (VDD)、设置为输入(VDD/2)和输出低电位(GND)即可产生三种相对应的电位,图 9 显示了如何使用此功能。 VDD VDD/2 GND 引脚设为输出高电位 引脚设为输入 引脚设为输出低电位 图.9: 使用 VDD/2 LCD 偏置电压产生器 Copyright 2017, PADAUK Technology Co. Ltd Page 43 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.7. 16 位计数器(Timer16) PMS133/PMS134 内置一个 16 位硬件计数器(Timer16),计数器时钟可来自于系统时钟(CLK),外部晶体 振荡器时钟(EOSC),内部高频振荡时钟(IHRC),内部低频振荡时钟(ILRC),PA4 和 PA0,一个多任务器用来 选择时钟输出的时钟来源。在送到 16 位计数器之前,1 个可软件编程的预分频器提供÷1、÷4、÷16、÷64 选择, 让计数范围更大。 16 位计数器只能向上计数,计数器初始值可以使用 stt16 指令来设定,而计数器的数值也可以利用 ldt16 指 令存储到 SRAM 数据存储器。可软件编程的选择器用于选择 Timer16 的中断条件,当计数器溢出时,Timer16 可以触发中断。Timer16 模块框图如图.10 所示。中断源是来自 16 位计数器的位 8 到位 15,中断类型可以上升 沿触发或下降沿触发,定义在寄存器 integs.5(IO 地址是 0x0C)。 stt16 command t16m[7:5] DATA Memory t16m[4:3] ldt16 command CLK IHRC EOSC ILRC PA0↓ PA4 M U X Prescalar ÷ 1, 4, 16, 64 16-bit up counter Bit[15:0] Bit[15:8] Data Bus M U X or To set interrupt request flag t16m[2:0] integs.4 图.10: Timer16 模块框图 当使用 Timer16 时,Timer16 的语法定义在.inc 文件中。有三个参数来定义 Timer16 的使用。第一个参数是 用来定义 Timer16 的时钟源,第二个参数是用来定义预分频器,最后一个参数是定义中断源。详细如下: T16M IO_RW 0x06 st $ 7~5: STOP, SYSCLK, X, PA4_F, IHRC, EOSC, ILRC, PA0_F // 1 par. $ 4~3: /1, /4, /16, /64 // 2 par. $ 2~0: BIT8, BIT9, BIT10, BIT11, BIT12, BIT13, BIT14, BIT15 // 3 par. Copyright 2017, PADAUK Technology Co. Ltd nd Page 44 of 98 rd PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 使用者可以依照系统的要求来定义 T16M 参数,例子如下,更多例子请参考 IDE 软件“帮助 使用手册 IC 介绍  缓存器介绍  T16M”。 $ T16M SYSCLK, /64, BIT15; // 选择(SYSCLK/64)当 Timer16 时钟源,每 2^16 个时钟周期产生一次 INTRQ.2=1 // 系统时钟 System Clock = IHRC / 2 = 8 MHz // SYSCLK/64 = 8 MHz/64 = 125kHz,约每 524 mS 产生一次 INTRQ.2=1 $ T16M EOSC, /1, BIT13; // 选择(EOSC/1)当 Timer16 时钟源, 每 2^14 个时钟周期产生一次 INTRQ.2=1 // EOSC=32768 Hz,32768 Hz/(2^14) = 2Hz,每 0.5S 产生一次 INTRQ.2=1 $ T16M PA0_F, /1, BIT8; // 选择 PA0 当 Timer16 时钟源,每 2^9 个时钟周期产生一次 INTRQ.2=1 // 每接收 512 个 PA0 时钟周期产生一次 INTRQ.2=1 $ T16M STOP; // 停止 Timer16 计数 假如 Timer16 是不受干扰自由运行,中断发生的频率可以用下列式子描述: FINTRQ_T16M = Fclock source ÷ P ÷ 2n+1 其中,F 是 Timer16 的时钟源频率; P 是 t16m [4:3]的选项(比如 1, 4, 16, 64); N 是中断要求选择的位,例如: 选择位 10,那么 n=10。 Copyright 2017, PADAUK Technology Co. Ltd Page 45 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.8. 8 位 PWM 计数器(Timer2/Timer3) PMS133/PMS134 内置 2 个 8 位硬件 PWM 计数器(Timer2/Timer3)。 以下描述只以 Timer2 为例, 因为 Timer3 和 Timer2 结构是一样的。图 11 为 Timer2 硬件框图,计数器的时钟源可以来自系统时钟(CLK) ,内部高频 RC 振荡器时钟(IHRC),内部低频 RC 振荡器时钟(ILRC),外部晶体振荡器(EOSC),PA0,PB0,PA4 和比较器。寄 存器 tm2c 的位[7:4]用来选择 Timer2 的时钟。如果 IHRC 作为 Timer2 的时钟源,当仿真器停住时,IHRC 时钟仍 然会送到 Timer2,所以 Timer2 仍然会计数。 根据 tm2c 寄存器位[3:2]的设定,Timer2 的输出可以是 PB2,PA3 或 PB4 引脚。利用软件编程寄存器 tm2s 位[6:5],时钟预分频模块提供÷1,÷4,÷16 和÷64 的选择,另外,利用 软件编程寄存器 tm2s 位[4:0],时钟分频器的模块提供了÷1~÷31 的功能。在结合预分频器以及分频器,Timer2 时钟(TM2_CLK)频率可以广泛和灵活,以提供不同产品应用。 8 位 PWM 定时器只能执行 8 位上升计数操作,经由寄存器 tm2ct,定时器的值可以设置或读取。当 8 位定 时器计数值达到上限寄存器设定的范围时,定时器将自动清除为零,上限寄存器用来定义定时器产生波形的周期 或 PWM 占空比。8 位 PWM 定时器有两个工作模式:周期模式和 PWM 模式;周期模式用于输出固定周期波形 或中断事件;PWM 模式是用来产生 PWM 输出波形,PWM 分辨率可以为 6 位或 8 位。图 12 显示出 Timer2 周 期模式和 PWM 模式的时序图。 图.11: Timer2 硬件框图 Timer3 的输出可以是 PB5,PB6 或 PB7。 Copyright 2017, PADAUK Technology Co. Ltd Page 46 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 Time out and Interrupt request Time out and Interrupt request Time out and Interrupt request Counter Counter Counter 0xFF 0xFF 0x3F bound bound Event Trigger bound Time Output-pin Time Event Trigger Output-pin Time Output-pin Time Time Mode 1 – 8-bit PWM Mode Mode 0 – Period Mode Event Trigger Time Mode 1 – 6-bit PWM Mode 图.12: Timer2 周期模式和 PWM 模式的时序图(tm2c.1=1) 5.8.1. 使用 Timer2 产生周期波形 如果选择周期模式的输出,输出波形的占空比总是 50%,其输出频率与寄存器设定,可以概括如下: 输出频率 = Y ÷ [2 × (K+1) × S1 × (S2+1) ] Y = tm2c[7:4] : Timer2 所选择的时钟源频率 K = tm2b[7:0] : 上限寄存器设定的值(十进制) S1 = tm2s[6:5] : 预分频器设定值 (1,4,16,64) S2 = tm2s[4:0] : 分频器值(十进制,1 ~ 31) 例 1: tm2c = 0b0001_1000, Y=8MHz tm2b = 0b0111_1111, K=127 tm2s = 0b0000_00000, S1=1, S2=0  输出频率= 8MHz ÷ [ 2 × (127+1) × 1 × (0+1) ] = 31.25kHz 例 2: tm2c = 0b0001_1000, Y=8MHz tm2b = 0b0111_1111, K=127 tm2s[7:0] = 0b0111_11111, S1=64 , S2 = 31  输出频率= 8MHz ÷ ( 2 × (127+1) × 64 × (31+1) ) =15.25Hz Copyright 2017, PADAUK Technology Co. Ltd Page 47 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 例 3: tm2c = 0b0001_1000, Y=8MHz tm2b = 0b0000_1111, K=15 tm2s = 0b0000_00000, S1=1, S2=0  输出频率= 8MHz ÷ ( 2 × (15+1) × 1 × (0+1) ) = 250kHz 例 4: tm2c = 0b0001_1000, Y=8MHz tm2b = 0b0000_0001, K=1 tm2s = 0b0000_00000, S1=1, S2=0  输出频率 = 8MHz ÷ ( 2 × (1+1) × 1 × (0+1) ) =2MHz 使用 Timer2 定时器从 PA3 引脚产生周期波形的示例程序如下所示: Void CPU (void) { . ADJUST_IC SYSCLK=IHRC/2, IHRC=16MHz, VDD=5V … tm2ct = 0x0; tm2b = 0x7f; tm2s = 0b0_00_00001; // 8-bit PWM, pre-scalar = 1, scalar = 2 tm2c = 0b0001_10_0_0; // 系统时钟,输出=PA3,周期模式 while(1) { nop; } } Copyright 2017, PADAUK Technology Co. Ltd Page 48 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.8.2. 使用 Timer2 产生 8 位 PWM 波形 如果选择 8 位 PWM 的模式,应设立 tm2c [1] = 1,tm2s [7] = 0,输出波形的频率和占空比可以概括如下: 输出频率 = Y ÷ [256 × S1 × (S2+1) ] 输出占空比 = ( K+1 ) ÷ 256 Y = tm2c[7:4] : Timer2 所选择的时钟源频率 K = tm2b[7:0] : 上限寄存器设定的值(十进制) S1= tm2s[6:5] : 预分频器设定值 (1, 4, 16, 64) S2 = tm2s[4:0] : 分频器值(十进制,1 ~ 31) 例 1: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b0111_1111, K=127 tm2s = 0b0000_00000, S1=1, S2=0  输出频率 = 8MHz ÷ ( 256 × 1 × (0+1) ) = 31.25kHz  输出占空比 = [(127+1) ÷ 256] × 100% = 50% 例 2: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b0111_1111, K=127 tm2s = 0b0111_11111, S1=64, S2=31  输出频率 = 8MHz ÷ ( 256 × 64 × (31+1) ) = 15.25Hz  输出占空比 = [(127+1) ÷ 256] × 100% = 50% 例 3: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b1111_1111, K=255 tm2s = 0b0000_00000, S1=1, S2=0  PWM 输出是高电平  输出占空比 = [(255+1) ÷ 256] × 100% = 100% 例 4: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b0000_1001, K = 9 tm2s = 0b0000_00000, S1=1, S2=0  输出频率 = 8MHz ÷ ( 256 × 1 × (0+1) ) = 31.25kHz  输出占空比 = [(9+1) ÷ 256] × 100% = 3.9% Copyright 2017, PADAUK Technology Co. Ltd Page 49 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 使用 Timer2 定时器从 PA3 产生 PWM 波形的示例程序如下所示: void FPPA0 (void) { .ADJUST_IC SYSCLK=IHRC/2, IHRC=16MHz, VDD=5V tm2ct = 0x0; tm2b = 0x7f; tm2s = 0b0_00_00001; // 8-bit PWM, 预分频 = 1, 分频 = 2 tm2c = 0b0001_10_1_0; // 系统时钟, 输出=PA3, PWM 模式 while(1) { nop; } } 5.8.3. 使用 Timer2 产生 6 位 PWM 波形 如果选择 6 位 PWM 的模式,应设立 tm2c [1] = 1,tm2s [7] = 1,输出波形的频率和占空比可以概括如下: 输出频率 = Y ÷ [64 × S1 × (S2+1) ] 输出占空比 = [( K+1 ) ÷ 64] × 100% tm2c[7:4] = Y : Timer2 所选择的时钟源频率 tm2b[7:0] = K : 上限寄存器设定的值(十进制) tm2s[6:5] = S1 : 预分频器设定值 (1, 4, 16, 64) tm2s[4:0] = S2 : 分频器值(十进制,1 ~ 31) 用户可以通过用 TMx_Bit 这个 code option,选择 7 位 PWM 模式替代原来的 6 位 PWM 模式。这时在上述 方程式中的计算因子将从原来的 64 变成 128。 例 1: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b0001_1111, K=31 tm2s = 0b1000_00000, S1=1, S2=0  输出频率 = 8MHz ÷ ( 64 × 1 × (0+1) ) = 125kHz  输出占空比 = [(31+1) ÷ 64] × 100% = 50% 例 2: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b0001_1111, K=31 tm2s = 0b1111_11111, S1=64, S2=31  输出频率= 8MHz ÷ ( 64 × 64 × (31+1) ) = 61.03 Hz  输出占空比 = [(31+1) ÷ 64] × 100% = 50% Copyright 2017, PADAUK Technology Co. Ltd Page 50 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 例 3: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b0011_1111, K=63 tm2s = 0b1000_00000, S1=1, S2=0  PWM 输出是高电平  输出占空比 = [(63+1) ÷ 64] × 100% = 100% 例 4: tm2c = 0b0001_1010, Y=8MHz tm2b = 0b0000_0000, K=0 tm2s = 0b1000_00000, S1=1, S2=0  输出频率= 8MHz ÷ ( 64 × 1 × (0+1) ) = 125kHz  输出占空比 = [(0+1) ÷ 64] × 100% =1.5% 5.9. 11 位 PWM 计数器 PMS133/PMS134 内置一路 11 位计数器同时提供三个硬件 PWM 生成器(PWMG0, PWMG1 & PWMG2) 。 以下只描述 PWMG0 的应用,因为 PWMG1 & PWMG2 的用法和 PWMG0 相同。 各路输出端口如下:  PWMG0 – PA0, PB4, PB5, PC2  PWMG1 – PA4, PB6, PB7, PC3  PWMG2 – PA3, PB2, PB3, PC0 5.9.1. PWM 波形 PWM 波形(图 13)有一个时基(TPeriod =时间周期)和一个周期里输出高的时间(占空比) 。PWM 的频率取 决于时基(fPWM = 1/TPeriod)。 图.13: PWM 输出波形 Copyright 2017, PADAUK Technology Co. Ltd Page 51 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.9.2. 硬件时序框图 PMS133/PMS134 内置一个 11 位硬件 PWM 生成器,图.14 所示是硬件框图。时钟源可以是 IHRC 或者系统 时钟,输出引脚可以通过 pwmc 寄存器来选择。PWM 的周期由 PWM 上限高和低寄存器决定,PWM 的占空比 由 PWM 占空比高和低寄存器决定。用户也可以通过用 GPC_PWM option code,令比较器可控制 PWM 波形的输 出。 图. 14: 11 位 PWM 生成器硬件框图 图.15: 11 位 PWM 生成器输出时序图 Copyright 2017, PADAUK Technology Co. Ltd Page 52 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.9.3. 11 位 PWM 生成器计算公式 如果 11 位 PWM 生成器选择的时钟源是 IHRC,PWM 的频率和占空比可由下公式得出: PWM 输出频率 = FIHRC ÷ [P × K × CB ] PWM 输出占空比(实时) = (1/FIHRC) * [ DB ÷ CB] 这里, pwmgxs[6:5] = P;预分频 pwmgxs[4:0] = K;分频 Duty_Bound[10:0] = {pwmgxdth[7:0],pwmgxdtl[7:5]} = DB;占空比 Counter_Bound[10:0] = {pwmgxcubh[7:0], pwmgxcubl[7:5]} = CB;计数器上限 5.10. 看门狗计数器 看门狗是一个计数器(WDT),其时钟源来自内部低频振荡器(ILRC),可以通过上电复位和 wdreset 指令随时 清零看门狗计数,利用 misc 寄存器的选择,可以设定四种不同的看门狗超时时间,它是:  当 misc[1:0]=00(默认)时:8k ILRC 时钟周期  当 misc[1:0]=01 时:16k ILRC 时钟周期  当 misc[1:0]=10 时:64k ILRC 时钟周期  当 misc[1:0]=11 时:256k ILRC 时钟周期 ILRC 的频率有可能因为工厂制造的变化,电源电压和工作温度而漂移很多,使用者必须预留安全操作范围。 由于在系统重启或者唤醒之后,看门狗计数周期会比预计要短,为防止看门狗计数溢出导致复位,建议在系统重 启或唤醒之后使用立即 wdreset 指令清零看门狗计数。 当看门狗超时溢出时,PMS133/PMS134 将复位并重新运行程序。看门狗时序图如图.16 所示。 VDD WD Time Out tSBP Program Execution Watch Dog Time Out Sequence 图.16: 看门狗超时溢出时序图 Copyright 2017, PADAUK Technology Co. Ltd Page 53 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.11. 中断 PMS133/PMS134 有 8 个中断源:  外部中断源 PA0/PB5/PA2/PA7  外部中断源 PB0/PA4/PB6/PA3  ADC 中断  Timer16 中断  GPC 中断  PWMG0 中断  Timer2 中断  Timer3 中断 每个中断请求源都有自己的中断控制位来启用或禁用。中断功能的硬件框图如图.16 所示。所有的中断请求 标志位是由硬件置位并且并通过软件写寄存器 intrq 清零。中断请求标志设置点可以是上升沿或下降沿或两者兼 而有之,这取决于对寄存器 integs 的设置。所有的中断请求源最后都需由 engint 指令控制(启用全局中断)使 中断运行,以及使用 disgint 指令(禁用全局中断)停用它。 中断堆栈是共享数据存储器,其地址由堆栈寄存器 sp 指定。由于程序计数器是 16 位宽度,堆栈寄存器 sp 位 0 应保持 0。此外,用户可以使用 pushaf 指令存储 ACC 和标志寄存器的值到堆栈,以及使用 popaf 指令将 值从堆栈恢复到 ACC 和标志寄存器中。由于堆栈是共享数据存储器,使用者应仔细使用,通过软件编程调整栈 点在存储器的位置,每个堆栈指针的深度可以完全由用户指定,以实现最大的系统弹性。 图.17: 中断控制器硬件框图 Copyright 2017, PADAUK Technology Co. Ltd Page 54 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 一旦发生中断,其具体工作流程将是:  程序计数器将自动存储到 sp 寄存器指定的堆栈存储器。  新的 sp 将被更新为 sp+2。  全局中断将被自动禁用。  将从地址 0x010 获取下一条指令。 在中断服务程序中,可以通过读寄存器 intrq 知道中断发生源。 中断服务程序完成后,发出 reti 指令返回既有的程序,其具体工作流程将是:  从 sp 寄存器指定的堆栈存储器自动恢复程序计数器。  新的 sp 将被更新为 sp-2。  全局中断将自动启用。 下一条指令将是中断前原来的指令。 使用者必须预留足够的堆栈存储器以存中断向量,一级中断需要两个字节,两级中断需要 4 个字节。下面的 示例程序演示了如何处理中断,请注意,处理中断和 pushaf 是需要四个字节堆栈存储器。 void FPPA0 (void) { ... $ INTEN INTRQ = PA0; // INTEN =1; 当 PA0 准位改变,产生中断请求 0; // 清除 INTRQ // 启用全局中断 ENGINT ... // 禁用全局中断 DISGINT ... } void Interrupt (void) // 中断程序 { PUSHAF If // 存储 ALU 和 FLAG 寄存器 // PA0 的中断程序 (INTRQ.0) { INTRQ.0 = 0; ... } ... POPAF // 回复 ALU 和 FLAG 寄存器 } Copyright 2017, PADAUK Technology Co. Ltd Page 55 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.12. 省电与掉电 PMS133/PMS134 有三个由硬件定义的操作模式,分别为:正常工作模式,电源省电模式和掉电模式。正常 工作模式是所有功能都正常运行的状态,省电模式(stopexe)是在降低工作电流而且 CPU 保持在随时可以继续工 作的状态,掉电模式(stopsys)是用来深度的节省电力。因此,省电模式适合在偶尔需要唤醒的系统工作,掉电 模式是在非常低消耗功率且很少需要唤醒的系统中使用。表 5 显示省电模式(stopexe)和掉电模式(stopsys)之间 在振荡器模块的差异,没改变就是维持原状态。 STOPSYS STOPEXE STOPSYS 和 STOPEXE 模式下在振荡器的差异 IHRC ILRC EOSC 停止 停止 停止 没改变 没改变 没改变 表 5: 省电模式和掉电模式在振荡器模块的差异 5.12.1. 省电模式(“stopexe”) 使用 stopexe 指令进入省电模式,只有系统时钟被禁用,其余所有的振荡器模块都仍继续工作。所以只有 CPU 是停止执行指令,然而,对 Timer16 计数器而言,如果它的时钟源不是系统时钟,那 Timer16 仍然会保持 计数。stopexe 的省电模式下,唤醒源可以是 IO 的切换,或者 Timer16 计数到设定值时(假如 Timer16 的时钟 源是 IHRC 或者 ILRC)。假如系统唤醒是因输入引脚切换,那可以视为系统继续正常运行。省电模式的详细信 息如下所示:  HRC,ILRC 和 EOSC 振荡器模块:没改变,如果被启用,则仍然保持运行状态。  系统时钟:禁用,因此 CPU 停止运行。  OTP 存储器关闭。   Timer16:如果选择系统时钟或相应的振荡器模块被禁止,停止计数,否则,仍然保持计数。 唤醒源:IO 唤醒或者 Timer16。 以下例子是利用 Timer16 来唤醒系统因 stopexe 的省电模式: $ T16M $ INTEGS … WORD STT16 stopexe; … ILRC, /1, BIT8 BIT_R, xxx; count = count; // Timer16 设置 //默认值即为 BITx 0 ->1 触发 0; Timer16 的初始值为 0,在 Timer16 计数了 256 个 ILRC 时钟后,系统将被唤醒。 Copyright 2017, PADAUK Technology Co. Ltd Page 56 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.12.2. 掉电模式(“stopsys”) 掉电模式是深度省电的状态,所有的振荡器模块都会被关闭。通过使用“stopsys” 指令,芯片会直接进入 掉电模式。下面显示发出 stopsys 命令后,PMS133/PMS134 内部详细的状态:  所有的振荡器模块被关闭。  OTP 存储器被关闭。  SRAM 和寄存器内容保持不变。  唤醒源:任何 IO 切换。 如果 PA 或 PB 是输入模式,并由 padier 寄存器设置为模拟输入,那该引脚是不能被用来唤醒系统。 输入引脚的唤醒可以被视为正常运行的延续,为了降低功耗,进入掉电模式之前,所有的 I/O 引脚应仔细 检查,避免悬空而漏电。断电参考示例程序如下所示: CLKMD = 0xF4; // CLKMD.4 = 0; // 系统时钟从 IHRC 变为 ILRC,关闭看门狗时钟 IHRC 禁用 … while (1) { // 进入断电模式 假如发生唤醒而且检查 OK, 就返回正常工作 否则,停留在断电模式。 // 系统时钟从 ILRC 变为 IHRC/2 STOPSYS; // if // (…) break; } CLKMD = 0x34; 5.12.3. 唤醒 进入掉电或省电模式后,PMS133/PMS134 可以通过切换 IO 引脚恢复正常工作;而 Timer16 中断的唤醒 只适用于省电模式。表 6 显示 stopsys 掉电模式和 stopexe 省电模式在唤醒源的差异。 掉电模式(stopsys)和省电模式(stopexe)在唤醒源的差异 IO 引脚切换 T16 中断 STOPSYS 是 否 STOPEXE 是 是 表 6: 掉电模式和省电模式在唤醒源的差异 当使用 IO 引脚来唤醒 PMS133/PMS134, padier 寄存器应对每一个相应的引脚正确设置“使能唤醒功能”。 从 唤醒事件发生后开始计数,正常的唤醒时间大约是 3000 个 ILRC 时钟周期,另外,PMS133/PMS134 提供 快速唤醒功能,透过 misc 寄存器选择快速唤醒大约 45 个 ILRC 时钟周期。 Copyright 2017, PADAUK Technology Co. Ltd Page 57 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 模式 唤醒模式 STOPEXE 省电模式 快速唤醒 STOPSYS 掉电模式 STOPEXE 省电模式 正常唤醒 STOPSYS 掉电模式 切换 IO 引脚的唤醒时间(tWUP) 45 * TILRC, 这里的 TILRC 是指 ILRC 时钟周期 3000* TILRC, 这里的 TILRC 是指 ILRC 时钟周期 请注意:当使用快速开机模式时,不管寄存器 misc.5 是否选择了唤醒模式,都会强制使用快速唤醒模式。 如果选择正常开机模式,即由寄存器 misc.5 来选择唤醒模式。 5.13. IO 引脚 除了 PA5,PMS133/PMS134 所有 IO 引脚都可以设定成输入或输出,透过数据寄存器 (pa, pb, pc),控制 寄存器 (pac, pbc, pcc)和弱上拉电阻 (paph, pbph, pcph)设定,每一 IO 引脚都可以独立配置成不同的功能; 所有这些引脚设置有施密特触发输入缓冲器和 CMOS 输出驱动电位水平。当这些引脚为输出低电位时,弱上拉 电阻会自动关闭。如果要读取端口上的电位状态,一定要先设置成输入模式;在输出模式下,读取到的数据是数 据寄存器的值。表 7 为端口 PA0 位的设定配置表。图.18 显示了 IO 缓冲区硬件图。 pa.0 X X 0 1 1 描述 pac.0 paph.0 0 0 1 1 1 0 1 X 0 1 输入,没有弱上拉电阻 输入,有弱上拉电阻 输出低电位,没有弱上拉电阻(弱上拉电阻自动关闭) 输出高电位,没有弱上拉电阻 输出高电位,有弱上拉电阻 表 7: PA0 设定配置表 图.18: IO 引脚缓冲区硬件图 Copyright 2017, PADAUK Technology Co. Ltd Page 58 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 用户可使用 code option PB4_PB7_Drive 来控制 PB4 及 PB7 的驱动及灌电流能力。 除了 PA5 外,所有的 IO 引脚具有相同的结构;PA5 的输出只能是漏极开路模式(没有 Q1)。 对于被选 择 为 模 拟 功 能 的 引 脚 , 必 须 在 寄 存 器 padier / pbdier / pcdier 相 应 位 设 置 为 低 , 以 防 止 漏 电 流 。 当 PMS133/PMS134 在掉电或省电模式,每一个引脚都可以切换其状态来唤醒系统。对于需用来唤醒系统的引脚, 必须设置为输入模式以及寄存器 pxdier 相应的 bit 为高。 同样的原因,当 PA0 用作外部中断引脚时,padier.0 应设置为高,诸如其他外部中断引脚 PB0,PA4,PB5,PB6,PA2,PA3 及 PA7 都是同样的用法。 5.14. 复位和 LVR 5.14.1. 复位 引起 PMS133/PMS134 复位的原因很多,一旦复位发生,PMS133/PMS134 的所有寄存器将被设置为默认 值,系统会重新启动,程序计数器会跳跃地址 0x0。当发生上电复位或 LVR 复位,数据存储器的值是在不确定 的状态,然而,若是复位是因为 PRSTB 引脚或 WDT 超时溢位,数据存储器的值将被保留。 5.14.2. LVR 复位 程序编译时,用户可以选择 8 个不同级别的 LVR ~ 4.0V,3.5V,3.0V,2.75V,2.5V,2.2V,2.0V 和 1.8V。 通常情况下,使用者在选择 LVR 复位水平时,必须结合单片机工作频率和电源电压,以便让单片机稳定工作。 Copyright 2017, PADAUK Technology Co. Ltd Page 59 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 5.15.模拟-数字转换器(ADC) 模块 图.19: ADC 模块框图 当使用 ADC 模块时有 7 个寄存器需要配置,它们是:  ADC 控制寄存器(adcc)  ADC 调节控制寄存器(adcrgc)  ADC 模式寄存器(adcm)  ADC 数据高位/低位寄存器(adcrh,adcrl)  端口 A/B 数字输入启用寄存器(padier,pbdier) Copyright 2017, PADAUK Technology Co. Ltd Page 60 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 如下是使用 ADC 的步骤: (1) 通过寄存器 adcrgc 配置参考高电压 (2) 通过 adcm 寄存器配置 AD 转换时钟信号 (3) 通过 padier,pbdier 寄存器配置模拟输入引脚 (4) 通过 adcc 寄存器选择 ADC 输入通道 (5) 通过 adcc 寄存器启用 ADC 模块 (6) 启用 ADC 模块之后,延迟一段时间 条件 1:使用内部参考高电压如 2V,3V,4V 或者输入通道是 band-gap 时,并且当 200 个 AD 时钟仍小于 1ms 时,所需的延迟时间必须超过 1ms;如果 200 个 AD 时钟已经超过 1ms,那么延迟时间只需要 200 个 AD 时钟即可。 条件 2:没有使用任何内部参考电压如 2V,3V,4V,band-gap 时,延迟时间仅需 200 个 AD 时钟。 (7) 执行 AD 转换并检查 ADC 转换数据是否已经完成 addc.6 设置 1 开启 AD 转换并且检测 addc.6 是否是‘1’。 (8) 从 ADC 寄存器读取转换结果: 先读取 adcrh 寄存器的值然后再读取 adcrl 寄存器的值。 应用时,如果是关掉 ADC 模块后再重新启用 ADC 的情况下,在进行 ADC 转换之前请重新执行如上步骤 6, 确保 ADC 模块已经准备好。 5.15.1. AD 转换的输入要求 为了满足 AD 转换的精度要求,电容的保持电荷(CHOLD)必须完全充电到参考高电压的水平和放电到参考低 电压的水平。模拟输入电路模型如图.20 所示,信号驱动源阻抗(Rs)和内部采样开关阻抗(Rss)会直接影响到 电容 CHOLD 充电所需求的时间。内部采样开关的阻抗可能会因 ADC 充电电压而产生变化;信号驱动源阻抗会影响模 拟输入信号的精度。使用者必须确保在采样前,被测信号的稳定,因此,信号驱动源阻抗的最大值与被测信号的 频率高度相关。建议,在输入频率为 500khz 下,模拟信号源的最大阻抗值不要超过 10KΩ。 VDD Rs Sampling Switch VT = 0.6V ANx RIC _ < 1k SS Rss CHOLD VA CPIN 5 pF VT = 0.6V = DAC capacitance = 5.1 pF I leakage ± 50 nA VSS Legend CPIN VT I leakage RIC SS CHOLD = input capacitance = threshold voltage = leakage current at the pin due to various junctions = interconnect resistance = sampling switch = sample/hold capacitance (from DAC) 图.20: 模拟输入模型 Copyright 2017, PADAUK Technology Co. Ltd Page 61 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 在使用 AD 转换之前,必须确认所选的模拟输入信号的采集时间应符合要求,ADCLK 的选择必须满足最短 信号采集时间。 5.15.2. 选择参考高电压 ADC 参考高电压能够通过寄存器 adcrgc 的位[7:5]来选择,并且它的选择有 VDD,4V,3V,2V,1.20V band-gap 参考电压或者来自 PB1 外部引脚。 5.15.3. ADC 时钟选择 ADC 模块的时钟(ADCLK)能够通过 adcm 寄存器来选择,ADCLK 从 CLK÷1 到 CLK÷128 一共有 8 个选项 可被选择(CLK 是系统时钟)。由于信号采集时间 TACQ ADCLK 的一个时钟周期, 所以 ADCLK 必须满足这已要 求,建议 ADC 时钟周期是 2us。 5.15.4. 配置模拟引脚 有 14 模拟信号可以被 AD 转换选择:13 来自外部引脚的模拟输入信号和一个 band-gap 参考电压或者 0.25*VDD。Bang-gap 有 4 级电压可供选择,分别是:1.2V,2V,3V 和 4V。以外部引脚而言,12 个模拟信号 与 Port A[0],Port A[3],Port A[4]和 Port B[7:0]共享引脚。为了避免漏电,这些引脚在使用时定义为模拟输入 并应禁用数字输入功能(设置 padier / pbdier / pcder 寄存器的相应位为 0) 。 ADC 的测量信号属于小信号,为避免测量信号在测量期间被干扰,被选定的引脚应:(1) 设为输入模式, (2) 关闭弱上拉电阻,(3) 通过端口 A/B/C 寄存器(padier / pbdier / pcdier)设置模拟输入并关闭数字输入。 5.15.5. 使用 ADC 下面的示例演示使用 PB0〜PB3 来当 ADC 输入引脚。 首先,定义所选择的引脚: PBC PBPH PBDIER = = = 0B_XXXX_0000; 0B_XXXX_0000; 0B_XXXX_0000; // // // PB0 ~ PB3 作为输入 PB0 ~ PB3 没有弱上拉电阻 PB0 ~ PB3 禁用数字输入 // // // 设置 PB3 作为 ADC 输入 设置 PB2 作为 ADC 输入 设置 PB0 作为 ADC 输入 // // 建议 /16 @系统时钟=8MHz 建议 /8 @系统时钟=4MHz 下一步,设定 ADCC 寄存器,示例如下: $ $ $ ADCC Enable, PB3; ADCC Enable, PB2; ADCC Enable, PB0; 下一步,设定 ADCM 寄存器,示例如下: $ $ ADCM 12BIT, /16; ADCM 12BIT, /8; 下一步,延迟 400us,示例如下: // 系统时钟=8MHz // 系统时钟=4MHz .Delay 8*400; .Delay 4*400; Copyright 2017, PADAUK Technology Co. Ltd Page 62 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 接着,开始 ADC 转换: AD_START = 1; while(!AD_DONE) NULL; // // 开始 ADC 转换 等待 ADC 转换结果 // 两字节结果: 放在 ADCRH 和 ADCRL 最后,当 AD_DONE 高电位时读取 ADC 结果: WORD Data$1 Data$0 // Data = = = Data; ADCRH ADCRL; Data >> 4; ADC 也可以利用下面方法禁用: $ ADCC Disable; 或 ADCC = 0; 5.16. 乘法器 芯片内置一 8x8 乘法器以加强硬件的运算功能。这个乘法运算方式是 8x8 的无符号运算并且在一个时钟周 期内完成运算。在下达指令之前,乘数与被乘数都要放在 ACC 累加器和 mulop(0x08)寄存器上,在下达 mul 指令之后,运算结果的高位字节会放在寄存器 mulrh(0x09)上,运算结果的低位字节会放在 ACC 累加器上。乘 法器的硬件框图如图.21 所示。 8-bit 8-bit ACC mulop (0x08) mulrh Bit[15~8] ACC Bit[7~0] 图.21: 硬件乘法器框图 Copyright 2017, PADAUK Technology Co. Ltd Page 63 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6. IO 寄存器 6.1. ACC 状态标志寄存器(flag), IO 地址 = 0x00 位 初始值 读/写 7-4 - - 3 0 读/写 2 0 读/写 1 0 读/写 0 0 读/写 描述 保留。 OV(溢出标志)。溢出时置 1。 AC(辅助进位标志)。两个条件下,此位设置为 1:(1)是进行低半字节加法运算产生进 位,(2)减法运算时,低半字节向高半字节借位。 C(进位标志)。有两个条件下,此位设置为 1:(1)加法运算产生进位,(2)减法运算有 借位。进位标志还受带进位标志的 shift 指令影响。 Z(零)。此位将被设置为 1,当算术或逻辑运算的结果是 0;否则将被清零。 6.2. 堆栈指针寄存器(sp), IO 地址 = 0x02 位 初始值 读/写 7-0 - 读/写 描述 堆栈指针寄存器。读出当前堆栈指针,或写入以改变堆栈指针。请注意 0 位必须维持为 0 因程序计数器是 16 位。 6.3. 时钟模式寄存器(clkmd), IO 地址 = 0x03 位 初始值 读/写 描述 系统时钟(CLK)选择: 类型 0, clkmd[3]=0 7-5 111 读/写 类型 1, clkmd[3]=1 000:IHRC÷4 000:IHRC÷16 001:IHRC÷2 001:IHRC÷8 010:IHRC 010:ILRC÷16(仿真器不支持) 011:EOSC÷4 011:IHRC÷32 100:EOSC÷2 100:IHRC÷64 101:EOSC 101:EOSC÷8 110:ILRC÷4 111:ILRC(默认值) 11x:保留 4 1 读/写 内部高频 RC 振荡器功能。 0/1:禁用/启用 3 0 读/写 2 1 读/写 1 1 读/写 看门狗功能。 0/1:禁用/启用 0 0 读/写 引脚 PA5/PRSTB 功能。 0 / 1:PA5 / PRSTB 时钟类型选择。这个位是用来选择位 7~位 5 的时钟类型。 0 / 1:类型 0 /类型 1 内部低频 RC 振荡器功能。0/1:禁用/启用 当内部低频 RC 振荡器功能禁用时,看门狗功能同时被关闭。 Copyright 2017, PADAUK Technology Co. Ltd Page 64 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.4. 中断允许寄存器(inten), IO 地址 = 0x04 位 初始值 读/写 描述 7 0 读/写 启用从 Timer3 的溢出中断。0/1:禁用/启用 6 0 读/写 启用从 Timer2 的溢出中断。0/1:禁用/启用 5 0 读/写 启用从 PWMG0 的溢出中断。0/1:禁用/启用 4 0 读/写 启用从比较器的溢出中断。0/1:禁用/启用 3 0 读/写 启用从 ADC 的溢出中断。0/1:禁用/启用 2 0 读/写 启用从 Timer16 的溢出中断。0/1:禁用/启用 1 0 读/写 启用从 PB0/PA4/PA3/PA6 的溢出中断。0/1:禁用/启用 0 0 读/写 启用从 PA0/PB5/PA2/PA7 的溢出中断。0/1:禁用/启用 6.5. 中断请求寄存器(intrq), IO 地址 = 0x05 位 初始值 读/写 描述 7 - 读/写 Timer3 的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 6 - 读/写 Timer2 的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 5 - 读/写 PWMG0 的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 4 - 读/写 比较器的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 3 - 读/写 ADC 的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 2 - 读/写 Timer16 的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 1 - 读/写 PB0/PA4/PA3/PB6 的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 0 - 读/写 PA0/PB5/PA2/PA7 的中断请求,此位是由硬件置位并由软件清零。 0/1:不要求/请求。 Copyright 2017, PADAUK Technology Co. Ltd Page 65 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.6. Timer16 控制寄存器(t16m), IO 地址 = 0x06 位 初始值 7-5 000 4-3 00 2-0 000 读/写 描述 Timer16 时钟选择: 000:禁用 001:CLK(系统时钟) 010:保留 读/写 011:PA4 下降沿(从外部引脚) 100:IHRC 101:EOSC 110:ILRC 111:PA0 下降沿(从外部引脚)) Timer16 时钟分频: 00:÷1 读/写 01:÷4 10:÷16 11:÷64 中断源选择。当所选择的状态位变化时,中断事件发生。 0:bit 8 of Timer16 1:bit 9 of Timer16 2:bit 10 of Timer16 读/写 3:bit 11 of Timer16 4:bit 12 of Timer16 5:bit 13 of Timer16 6:bit 14 of Timer16 7:bit 15 of Timer16 6.7. 乘法器运算对象寄存器(mulop), IO 地址 = 0x08 位 7-0 初始值 - 读/写 读/写 描述 硬件乘法运算的运算对象 6.8. 乘法器结果高字节寄存器(mulrh), IO 地址 = 0x09 位 7-0 初始值 - 读/写 只读 描述 乘法运算的高字节结果(只读) 6.9. 外部晶体振荡器控制寄存器 (eoscr), IO 地址= 0x0a 位 初始值 读/写 7 0 只写 6-5 00 只写 4-1 - - 0 0 只写 描述 使能外部晶体振荡器。0 / 1:禁用/使能。 晶体振荡器的选择。 00:保留 01:保留 10:中驱动电流。适用于中等频率晶体,例如:1MHz 11:高驱动电流。适用于较高频率晶体,例如:4MHz 保留。请设为 0。 将 Band-gap 和 LVR 硬件模块断电。 0 / 1:正常/ 断电。 Copyright 2017, PADAUK Technology Co. Ltd Page 66 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.10. 中断边缘选择寄存器(integs), IO 地址 = 0x0c 位 初始值 读/写 7-5 - - 描述 保留。 Timer16 中断边缘选择: 4 0 只读 0:上升缘请求中断。 1:下降缘请求中断。 PB0/PA4/PA3/PB6 中断边缘选择: 00:上升缘和下降缘都请求中断。 3-2 00 只读 01:上升缘请求中断。 10:下降缘请求中断。 11:保留。 PA0/PB5/PA2/PA7 中断边缘选择: 00:上升缘和下降缘都请求中断。 1-0 00 只读 01:上升缘请求中断。 10:下降缘请求中断。 11:保留。 6.11. 端口 A 数字输入使能寄存器(padier), IO 地址 = 0x0d 位 初始值 读/写 描述 使能端口 A 数字输入,该对应位作为 AD 输入时,设为 0 可以防止耗电。同时,如果该对应 7-0 0xFF 只写 位设为 0,则不能用来唤醒系统。 0 / 1:禁用/ 启用 6.12. 端口 B 数字输入使能寄存器(pbdier), IO 地址 = 0x0e 位 初始值 读/写 描述 使能端口 B 数字输入,该对应位作为 AD 输入时,设为 0 可以防止耗电。同时,如果该对应 7-0 0xFF 只写 位设为 0,则不能用来唤醒系统。 0 / 1:禁用/ 启用 6.13. 端口 C 数字输入使能寄存器(pcdier), IO 地址 = 0x0f 位 初始值 读/写 7-0 0xFF 只写 描述 使能端口 C 数字输入,该对应位作为 AD 输入时,设为 0 可以防止耗电。同时,如果该对应 位设为 0,则不能用来唤醒系统。 0 / 1:禁用/ 启用 注意:详细 PCDIER 设定请参考 9.3。 6.14. 端口 A 数据寄存器(pa), IO 地址 = 0x10 位 初始值 读/写 7-0 0x00 读/写 描述 数据寄存器的端口 A。 Copyright 2017, PADAUK Technology Co. Ltd Page 67 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.15. 端口 A 控制寄存器(pac), IO 地址 = 0x11 位 初始值 读/写 描述 端口 A 控制寄存器。这些寄存器是用来定义端口 A 每个相应的引脚的输入模式或输出模式。 7-0 0x00 读/写 0/1:输入/输出。 请注意:PA5 可设为输入或输出低, 当 PA5 设为输出高时,为 OC/OD 输出。 6.16. 端口 A 上拉控制寄存器(paph), IO 地址 = 0x12 位 初始值 读/写 描述 端口 A 上拉控制寄存器。这些寄存器是用来控制上拉高端口 A 每个相应的引脚。 7-0 0x00 读/写 0/1:禁用/启用 请注意:端口 A 位 5(PA5)没有上拉电阻。 6.17. 端口 B 数据寄存器(pb), IO 地址 = 0x13 位 初始值 读/写 7-0 0x00 读/写 描述 数据寄存器的端口 B。 6.18. 端口 B 控制寄存器(pbc), IO 地址 = 0x14 位 初始值 读/写 7-0 0x00 读/写 描述 端口 B 控制寄存器。这些寄存器是用来定义端口 B 每个相应的引脚的输入模式或输出模式。 0/1:输入/输出。 6.19. 端口 B 上拉控制寄存器(pbph), IO 地址 = 0x15 位 初始值 读/写 7-0 0x00 读/写 描述 端口 B 上拉控制寄存器。这些寄存器是用来控制上拉高端口 B 每个相应的引脚。 0/1:禁用/启用。 6.20. 端口 C 数据寄存器(pc), IO 地址 = 0x16 位 初始值 读/写 7-0 0x00 读/写 描述 数据寄存器的端口 C。 6.21. 端口 C 控制寄存器(pbc), IO 地址 = 0x17 位 初始值 读/写 7-0 0x00 读/写 描述 端口 C 控制寄存器。这些寄存器是用来定义端口 C 每个相应的引脚的输入模式或输出模式。 0/1:输入/输出。 6.22. 端口 C 上拉控制寄存器(pcph), IO 地址 = 0x18 位 初始值 7-0 0x00 读/写 描述 端口 C 上拉控制寄存器。这些寄存器是用来控制上拉高端口 C 每个相应的引脚。 读/写 0/1:禁用/启用。 Copyright 2017, PADAUK Technology Co. Ltd Page 68 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.23. ADC 控制寄存器(adcc), IO 地址 = 0x20 位 初始值 读/写 7 0 读/写 6 0 读/写 5-2 0000 读/写 0-1 - - 描述 Enable ADC function。0/1:禁用/启用。 ADC 转换进程控制位: 写入 ”1” 可开始 AD 转换。 读到 “1” 表明 ADC 已经准备好,或已转换完成。 通道选择。以下 4 位用来选择 AD 转换的输入信号: 0000:PB0/AD0, 0001:PB1/AD1, 0010:PB2/AD2, 0011:PB3/AD3, 0100:PB4/AD4, 0101:PB5/AD5, 0110:PB6/AD6, 0111:PB7/AD7, 1000:PA3/AD8, 1001:PA4/AD9, 1010:PA0/AD10, 1011:PC1/AD11(仿真器在此位置为 PA1) 1100:PC2/AD12(仿真器在此位置为 PC1) 1111:(通道 F)Band-gap 参考电压或者 0.25*VDD 其他:保留。 保留(写 0)。 6.24. ADC 模式寄存器(adcm), IO 地址 = 0x21 位 7-4 初始值 - 读/写 - 3-1 000 只写 0 - - 描述 保留(写 0)。 ADC 时钟源选择: 000:CLK(系统时钟)÷ 001:CLK(系统时钟)÷ 010:CLK(系统时钟)÷ 011:CLK(系统时钟)÷ 100:CLK(系统时钟)÷ 101:CLK(系统时钟)÷ 110:CLK(系统时钟)÷ 111:CLK(系统时钟)÷ 1, 2, 4, 8, 16, 32, 64, 128。 保留。 Copyright 2017, PADAUK Technology Co. Ltd Page 69 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.25. ADC 调节控制寄存器(adcrgc), IO 地址 = 0x24 位 初始值 读/写 7-5 000 只写 4 0 只写 3-2 00 只写 1-0 - - 描述 以下 3 位用来选择 ADC 输入信号的参考电压: 000:VDD, 001:2V, 010:3V, 011:4V, 100:PB1, 101:Band-gap 1.20v 参考电压, 其他:保留。 ADC 通道 F 选择器: 0:Band-gap 参考电压, 1:0.25*VDD(电压偏移±0.01*VDD)。 ADC 通道 F 的 Band-gap 参考电压选择:(仿真器固定只有 1.2V) 00:1.2V 01:2V 10:3V 11:4V 保留(写 0)。 6.26. ADC 数据高位寄存器(adcrh), IO 地址 = 0x22 位 7-0 初始值 - 读/写 只读 描述 这 8 个只读位是 ADC 转换结果的位[11:4] ,寄存器的位 7 是 ADC 转换结果的最高位。 6.27. ADC 数据低位寄存器(adcrl), IO 地址 = 0x23 位 7-4 3-0 初始值 - 读/写 只读 - 描述 这 4 个只读位是 ADC 转换结果的位 [3:0]。 保留。 6.28. 杂项寄存器(misc), IO 地址 = 0x26 位 7-6 初始值 - 读/写 - 5 0 W 4 0 W 2 0 只写 1-0 00 只写 3 描述 保留。请设为 0。 快唤醒功能。快速唤醒功能 EOSC 模式下不支持。 0:正常唤醒。 唤醒时间是 3000 个 ILRC 时钟(不适用快速开机)。 1:快速唤醒。 唤醒时间为 45 个 ILRC 时钟+ 振荡稳定时间。 如果从 STOPEXE 唤醒,振荡稳定时间为 0 如果从 STOPSYS 唤醒,振荡稳定时间为 IHRC 或者 ILRC 的上电振荡稳定时间。 使能 VDD/2 bias 电压生成器 0 / 1:禁用/ 启用(ICE 仿真时无法动态切换) 保留。 禁用 LVR 功能: 0 / 1:启用 / 禁用 看门狗时钟超时时间设定: 00:8k ILRC 时钟周期 01:16k ILRC 时钟周期 10:64k ILRC 时钟周期 11:256k ILRC 时钟周期 Copyright 2017, PADAUK Technology Co. Ltd Page 70 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.29. 比较器控制寄存器(gpcc), IO 地址 = 0x2b 位 初始值 读/写 7 0 读/写 6 - 只读 5 0 读/写 4 0 读/写 3-1 000 读/写 0 0 读/写 描述 启用比较器。 0 / 1:禁用/启用。 当此位被设置为启用,请同时设置相应的模拟输入引脚是数字禁用,以防止漏电。 比较器结果。 0:正输入 < 负输入 1:正输入 > 负输入 选择比较器的结果是否由 TM2_CLK 采样输出。 0:比较器的结果没有 TM2_CLK 采样输出 1:比较器的结果是由 TM2_CLK 采样输出 选择比较器输出的结果是否反极性。 0:比较器输出的结果没有反极性 1:比较器输出的结果是反极性 选择比较器负输入的来源。 000:PA3 001:PA4 010:内部 1.20 V band-gap 参考电压 011:Vinternal R 100:PB6(不适用 EV5) 101:PB7(不适用 EV5) 11X:保留 选择比较器正输入的来源。 0:Vinternal R 1:PA4 6.30. 比较器选择寄存器(gpcs), IO 地址 = 0x2c 位 初始值 读/写 描述 比较器输出启用(到 PA0)。 0 / 1:禁用/启用。 保留。 7 0 只写 6 0 - 5 0 只写 选择比较器参考电压 Vinternal R 最高的范围。 4 0 只写 选择比较器参考电压 Vinternal R 最低的范围。 3-0 0000 只写 选择比较器参考电压 Vinternal R。 0000(最低)~ 1111(最高) Copyright 2017, PADAUK Technology Co. Ltd Page 71 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.31. Timer2 控制寄存器(tm2c), IO 地址 = 0x30 位 初始值 读/写 7-4 0000 读/写 3-2 00 读/写 1 0 读/写 0 0 读/写 描述 Timer2 时钟源选择: 0000:禁用 0001:CLK(系统时钟) 0010:IHRC 或 IHRC*2(由 code option TMx_ source 决定) 0011:EOSC 0100:ILRC 0101:比较器输出(仿真器不支持) 011x:保留 1000:PA0(上升沿) 1001:~PA0(下降沿) 1010:PB0(上升沿) 1011:~PB0(下降沿) 1100:PA4(上升沿) 1101:~PA4(下降沿) 注意:在 ICE 模式且 IHRC 被选为 Timer2 定时器时钟,当 ICE 停下时,发送到定时器的时 钟是不停止,定时器仍然继续计数。 Timer2 输出选择: 00:禁用 01:PB2 10:PA3 11:PB4 Timer2 模式选择: 0 / 1:定周期模式 / PWM 模式。 启用 Timer2 反极性输出: 0 / 1:禁用/启用。 6.32. Timer2 计数寄存器(tm2ct), IO 地址 = 0x31 位 初始值 读/写 7-0 0x00 读/写 描述 Timer2 定时器位[7:0]。 6.33. Timer2 分频寄存器(tm2s), IO 地址 = 0x32 位 初始值 读/写 描述 PWM 分辨率选择: 7 0 只写 0:8 位 1:6 位或 7 位(由 code option TMx_Bit 决定) Timer2 时钟预分频器: 00:÷ 1 6-5 00 只写 01:÷ 4 10:÷ 16 11:÷ 64 4-0 00000 只写 Timer2 时钟分频器。 Copyright 2017, PADAUK Technology Co. Ltd Page 72 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.34. Timer2 上限寄存器(tm2b), IO 地址 = 0x33 位 初始值 读/写 7-0 0x00 只写 描述 Timer2 上限寄存器。 6.35. Timer3 控制寄存器(tm3c), IO 地址 = 0x34 位 初始值 读/写 7-4 0000 读/写 3-2 00 读/写 1 0 读/写 描述 Timer3 时钟选择。 0000:disable 0001:CLK(系统时钟) 0010:IHRC 或 IHRC*2 (由 code option TMx_ source 决定) 0011:EOSC 0100:ILRC 0101:比较器输出 011x:保留 1000:PA0(上升沿) 1001:~PA0(下降沿) 1010:PB0(上升沿) 1011:~PB0(下降沿) 1100:PA4(上升沿) 1101:~PA4(下降沿) 注意:在 ICE 模式且 IHRC 被选为 Timer3 定时器时钟,当 ICE 停下时,发送到定时器的时钟 是不停止,定时器仍然继续计数。 Timer3 输出选择。 00:禁用 01:PB5 10:PB6 11:PB7 Timer3 模式选择。 0:周期模式 1:PWM 模式 6.36. Timer3 计数寄存器(tm3ct), IO 地址 = 0x35 位 初始值 读/写 7-0 0x00 读/写 描述 Timer3 定时器位[7:0]。 6.37. Timer3 分频寄存器(tm3s), IO 地址 = 0x36 位 初始值 读/写 描述 PWM 分辨率选择。 7 0 只写 0:8 位 1:6 位或 7 位(由 code option TMx_Bit 决定) Timer3 时钟预分频器。 00:÷ 1 6-5 00 只写 01:÷ 4 10:÷ 16 11:÷ 64 4-0 00000 只写 Timer3 时钟分频器。 Copyright 2017, PADAUK Technology Co. Ltd Page 73 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.38. Timer3 上限寄存器(tm3b), IO 地址 = 0x37 位 初始值 读/写 7-0 0x00 只写 描述 Timer3 上限寄存器。 6.39. PWMG0 控制寄存器(pwmg0c), IO 地址 = 0x40 位 初始值 读/写 描述 7 0 读/写 启用 PWMG0: 0/1:禁用/启用。 6 - 只读 PWMG0 生成器输出状态。 5 0 只写 选择 PWMG0 的输出的结果是否反极性: 0/1:禁用/启用。 4 0 读/写 PWMG0 计数器清零。 写“1”清零 PWMG0 计数,清零 PWMG0 计数后,这个位会自动归 0。 选择 PWMG0 输出: 000:不输出 001:PB5 3-1 0 读/写 010:PC2 011:PA0 100:PB4 其它:保留 0 0 读/写 PWMG0 时钟源。 0:CLK 1:IHRC 或 IHRC*2(由 Code option PWM_source 决定) 6.40. PWMG0 分频 Register (pwmg0s), IO 地址 = 0x41 位 初始值 读/写 描述 7 0 读/写 PWMG0 中断模式。 0:当计数为 0 产生中断 1:当计数为设定的占空比时产生中断 6-5 0 读/写 PWMG0 预分频。 00:÷1 01:÷4 10:÷16 11:÷64 4-0 0 读/写 PWMG0 时钟分频。 6.41. PWMG0 占空比高位寄存器(pwmg0dth), IO 地址 = 0x42 位 初始值 读/写 7-0 - 只写 描述 PWMG0 占空比值位[10:3]。 Copyright 2017, PADAUK Technology Co. Ltd Page 74 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.42. PWMG0 Duty Value Low Register (pwmg0dtl), IO address = 0x43 位 初始值 读/写 7-5 - 只写 4-0 - - 描述 PWMG0 占空比值位[2:0]。 保留。 注意:PWMG0 占空比低位寄存器的值必须写在 PWMG0 占空比高位寄存器之前。 6.43. PWMG0 计数上限高位寄存器(pwmg0cubh), IO 地址 = 0x44 位 初始值 读/写 7-0 - 只写 描述 PWMG0 上限寄存器 位[10:3]。 6.44. PWMG0 计数上限低位寄存器(pwmg0cubl), IO 地址 = 0x45 位 初始值 读/写 7-5 - 只写 4-0 - - 描述 PWMG0 上限寄存器 位[2:0]。 保留。 6.45. PWMG1 控制寄存器(pwmg1c), IO 地址 = 0x46 位 初始值 读/写 描述 7 0 读/写 启用 PWMG1: 0/1:禁用/启用。 6 - 只读 PWMG1 生成器输出状态。 5 0 读/写 选择 PWMG1 的输出的结果是否反极性: 0/1:禁用/启用。 4 0 读/写 PWMG1 计数器清零。 写“1”清零 PWMG1 计数,清零 PWMG1 计数后,这个位会自动归 0。 选择 PWMG1 输出: 000:不输出 001:PB6 3-1 0 读/写 010:PC3 011:PA4 100:PB7 其他:保留 0 0 读/写 PWMG1 时钟源。 0:CLK 1:IHRC 或 IHRC*2(由 Code option PWM_source 决定) Copyright 2017, PADAUK Technology Co. Ltd Page 75 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.46. PWMG1 分频 Register(pwmg1s), IO 地址 = 0x47 位 初始值 读/写 描述 7 0 只写 PWMG1 中断模式。 0:当计数为设定的占空比时产生中断 1:当计数为 0 产生中断 6-5 0 只写 PWMG1 预分频。 00 : ÷1 01 : ÷4 10 : ÷16 11 : ÷64 4-0 0 只写 PWMG1 时钟分频。 6.47. PWMG1 占空比高位寄存器(pwmg1dth), IO 地址 = 0x48 位 初始值 读/写 7-0 - 只写 描述 PWMG1 占空比值位[10:3]。 6.48. PWMG1 占空比低位寄存器(pwmg1dtl), IO 地址 = 0x49 位 初始值 读/写 7-5 - 只写 4-0 - - 描述 PWMG1 占空比值位[2:0]。 保留。 注意:PWMG1 占空比低位寄存器的值必须写在 PWMG1 占空比高位寄存器之前。 6.49. PWMG1 计数上限高位寄存器(pwmg1cubh), IO 地址 = 0x4a 位 初始值 读/写 7-0 8’h00 只写 描述 PWMG0 上限寄存器 位[10:3]。 6.50. PWMG1 计数上限低位寄存器(pwmg1cubl), IO 地址 = 0x04b 位 初始值 读/写 7-5 000 只写 4-0 - - 描述 PWMG1 上限寄存器位[2:0]。 保留。 Copyright 2017, PADAUK Technology Co. Ltd Page 76 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.51. PWMG2 控制寄存器(pwmg2c), IO 地址 = 0x4C 位 初始值 读/写 7 0 读/写 启用 PWMG2: 0/1:禁用/启用。 6 - 只读 PWMG2 生成器输出状态。 5 0 只写 选择 PWMG2 的输出的结果是否反极性: 0/1:禁用/启用。 4 0 读/写 PWMG2 计数器清零。写“1”清零 PWMG2 计数,清零 PWMG2 计数后,这个位会自动归 0。 选择 PWMG2 输出: 000:不输出 001:PB3 010:PC0 011:PA3 100:PB2 其他:保留 3-1 0 读/写 0 0 读/写 描述 PWMG2 时钟源。 0:CLK,1:IHRC 或 IHRC*2(由 Code option PWM_source 决定) 6.52. PWMG2 分频 Register (pwmg2s), IO 地址 = 0x4D 位 初始值 读/写 7 0 只写 6-5 0 只写 4-0 0 只写 描述 PWMG2 中断模式。 0:当计数为设定的占空比时产生中断 1:当计数为 0 产生中断 PWMG2 预分频。 00:÷1 01:÷4 10:÷16 11:÷64 PWMG2 时钟分频。 6.53. PWMG2 占空比高位寄存器(pwmg2dth), IO 地址 = 0x4E 位 初始值 读/写 7-0 8’h00 只写 描述 PWMG2 占空比值位[10:3]。 6.54. PWMG2 占空比低位寄存器(pwmg2dtl), IO 地址 = 0x4F 位 初始值 读/写 7-5 000 只写 4-0 - - 描述 PWMG2 占空比值位[2:0]。 保留。 注意:PWMG2 占空比低位寄存器的值必须写在 PWMG2 占空比高位寄存器之前。 Copyright 2017, PADAUK Technology Co. Ltd Page 77 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 6.55. PWMG2 计数上限高位寄存器(pwmg2cubh), IO 地址 = 0x50 位 初始值 读/写 7-0 8’h00 只写 描述 PWMG0 上限寄存器 位[10:3]。 6.56. PWMG2 计数上限低位寄存器(pwmg2cubl), IO 地址 = 0x51 位 初始值 读/写 7-5 000 只写 4-0 - - 描述 PWMG2 上限寄存器位[2:0]。 保留。 Copyright 2017, PADAUK Technology Co. Ltd Page 78 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 7. 指令 符号 ACC a sp flag 描述 累加器(Accumulator 的缩写) 累加器(Accumulator 在程序里的代表符号) 堆栈指针 ACC 标志寄存器 I 立即数据 & 逻辑与 | 逻辑或 ← 移动 ^ 异或 + 加 - 减 -〜 按位取反(逻辑补数,1 补数) 〒 负数(2 补码) OV 溢出(2 补数系统的运算结果超出范围) Z 零(如果零运算单元操作的结果是 0,这位设置为 1) C 进位(Carry) AC 辅助进位标志(Auxiliary Carry) pc0 CPU 的程序计数器 M.n 只允许寻址在地址 0~0x3F (0~63) 的位置 Copyright 2017, PADAUK Technology Co. Ltd Page 79 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 7.1. 数据传输类指令 mov a, I mov M, a mov a, M mov mov ldt16 stt16 a, IO IO, a word word 移动即时数据到累加器 例如:mov a, 0x0f; 结果:a ← 0fh; 受影响标志位: Z: 『不变』, C: 『不变』, AC:『不变』, OV: 『不变』 移动数据由累加器到存储器 例如:mov MEM, a; 结果:MEM ← a 受影响标志位: Z: 『不变』, C: 『不变』, AC:『不变』, OV: 『不变』 移动数据由存储器到累加器 例如:mov a, MEM; 结果:a ← MEM; 当 MEM 为零时,标志位 Z 会被置位。 受影响标志位:Z: 『受影响』 , C:『不变』 , AC: 『不变』, OV: 『不变』 移动数据由 IO 到累加器 例如:mov a, pa ; 结果:a ← pa; 当 pa 为零时,标志位 Z 会被置位。 受影响标志位: Z: 『受影响』 , C: 『不变』, AC:『不变』 , 移动数据由累加器到 IO 例如:mov pb, a; 结果:pb ← a 受影响标志位:Z: 『不变』, C: 『不变』, 将 Timer16 的 16 位计算值复制到 RAM。 例如:ldt16 word; 结果:word ← 16-bit timer 受影响标志位: Z: 『不变』, C: 『不变』, AC:『不变』, AC:『不变』, OV:『不变』 OV: 『不变』 OV: 『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------word T16val ; // 定义一个 RAM word … clear lb@T16val ; // 清零 T16val (LSB) clear hb@T16val ; // 清零 T16val (MSB) stt16 T16val ; // 设定 Timer16 的起始值为 0 … set1 t16m.5 ; // 启用 Timer16 … set0 t16m.5 ; // 禁用 Timer16 ldt16 T16val ; // 将 Timer16 的 16 位计算值复制到 RAM T16val …. -----------------------------------------------------------------------------------------------------------------------将放在 word 的 16 位 RAM 复制到 Timer16。 例如:stt16 word; 结果:16-bit timer ← word 受影响标志位: Z: 『不变』, Copyright 2017, PADAUK Technology Co. Ltd C: 『不变』, Page 80 of 98 AC:『不变』, OV: 『不变』 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 应用范例: -----------------------------------------------------------------------------------------------------------------------word T16val ; // 定义一个 RAM word … mov a, 0x34 ; mov lb@T16val, a ; // 将 0x34 搬到 T16val (LSB) mov a, 0x12 ; mov hb@T16val, a ; // 将 0x12 搬到 T16val (MSB) stt16 T16val ; // Timer16 初始化 0x1234 … ---------------------------------------------------------------------------------------------------------------------idxm a, index 使用索引作为 RAM 的地址并将 RAM 的数据读取并载入到累加器。它需要 2T 时间执行这一指令。 例如:idxm a, index; 结果:a ← [index], index 是用 word 定义。 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 应用范例: ------------------------------------------------------------------------------------------------------------------------ word RAMIndex ; // 定义一个 RAM 指针 … mov a, 0x5B ; // 指定指针地址 (LSB) mov lb@RAMIndex, a ; // 将指针存到 RAM (LSB) mov a, 0x00 ; // 指定指针地址为 0x00 (MSB),在 PMS154 要为 0 mov hb@RAMIndex, a ; // 将指针存到 RAM (MSB) … idxm a, RAMIndex ; // 将 RAM 地址为 0x5B 的数据读取并载入累加器 -----------------------------------------------------------------------------------------------------------------------Idxm index, a 使用索引作为 RAM 的地址并将累加器的数据读取并载入到 RAM。它需要 2T 时间执行这一指令。 例如:idxm index, a; 结果:[index] ← a; index 是以 word 定义。 受影响的标志位:Z:『不变』 , C:『不变』 , AC: 『不变』, OV: 『不变』 应用范例: -------------------------------------------------------------------------------------------------------------------------word RAMIndex ; // 定义一个 RAM 指针 … mov a, 0x5B ; // 指定指针地址 (LSB) mov lb@RAMIndex, a ; // 将指针存到 RAM (LSB) mov a, 0x00 ; //指定指针地址为 0x00 (MSB),在 PMS154 要为 0 mov hb@RAMIndex, a ; // 将指针存到 RAM (MSB) … mov a, 0Xa5 ; idxm RAMIndex, a ; // 将累加器数据读取并载入地址为 0x5B 的 RAM -----------------------------------------------------------------------------------------------------------------------xch M 累加器与 RAM 之间交换数据 例如:xch MEM ; 结果:MEM ← a , a ← MEM 受影响的标志位: Z: 『不变』 , Copyright 2017, PADAUK Technology Co. Ltd C: 『不变』, Page 81 of 98 AC:『不变』 , OV:『不变』 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 将累加器和算术逻辑状态寄存器的数据存到堆栈指针指定的堆栈存储器 例如:pushaf; 结果:[sp] ← {flag, ACC}; sp ← sp + 2; 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------.romadr 0x10 ; // 中断服务程序入口地址 pushaf ; // 将累加器和算术逻辑状态寄存器的资料存到堆栈存储器 … // 中断服务程序 … // 中断服务程序 popaf ; // 将堆栈存储器的资料回存到累加器和算术逻辑状态寄存器 reti ; -----------------------------------------------------------------------------------------------------------------------将堆栈指针指定的堆栈存储器的数据回传到累加器和算术逻辑状态寄存器 例如:popaf; 结果:sp ← sp - 2; {Flag, ACC} ← [sp]; 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 pushaf popaf 7.2. 算数运算类指令 add add add addc addc addc a, I a, M M, a a, M M, a a 将立即数据与累加器相加,然后把结果放入累加器 例如:add a, 0x0f; 结果:a ← a + 0fh 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 将 RAM 与累加器相加,然后把结果放入累加器 例如:add a, MEM; 结果:a ← a + MEM 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 将 RAM 与累加器相加,然后把结果放入 RAM 例如:add MEM, a; 结果:MEM ← a + MEM 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 将 RAM、累加器以及进位相加,然后把结果放入累加器 例如:addc a, MEM; 结果:a ← a + MEM + C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, 将 RAM、累加器以及进位相加,然后把结果放入 RAM 例如:addc MEM, a; 结果:MEM ← a + MEM + C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, 将累加器与进位相加,然后把结果放入累加器 例如:addc a; 结果:a ← a + C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , Copyright 2017, PADAUK Technology Co. Ltd Page 82 of 98 AC:『受影响』, OV:『受影响』 OV:『受影响』 OV:『受影响』 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 addc M nadd a, M nadd M, a sub a, I sub a, M sub M, a subc a, M subc M, a subc a 将 RAM 与进位相加,然后把结果放入 RAM 例如:addc MEM; 结果:MEM ← MEM + C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 将累加器的负逻辑(2补码)与RAM相加,然后把结果放入累加器 例如:nadd a, MEM; 结果:a ← 〒a + MEM 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 将RAM的负逻辑(2补码)与累加器相加,然后把结果放入RAM 例如:nadd MEM, a; 结果:MEM ← 〒MEM + a 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 累加器减 RAM,然后把结果放入累加器 例如:sub a, MEM; 结果:a ← a - MEM ( a + [2’s complement of M] ) 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 RAM 减累加器,然后把结果放入 RAM 例如:sub MEM, a; 结果:MEM ← MEM - a ( MEM + [2’s complement of a] ) 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 累加器减 RAM,再减进位,然后把结果放入累加器 例如:subc a, MEM; 结果:a ← a – MEM - C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 RAM 减累加器,再减进位,然后把结果放入 RAM 例如:subc MEM, a ; 结果:MEM ← MEM – a - C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 累加器减进位,然后把结果放入累加器 例如:subc a; 结果:a ← a - C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 RAM 减进位,然后把结果放入 RAM 例如:subc subc inc M M MEM; 结果:MEM ← MEM - C 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, 累加器减 RAM,然后把结果放入累加器 例如:sub a, MEM; 结果:a ← a - MEM ( a + [2’s complement of M] ) 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, RAM 加 1 例如:inc MEM; 结果:MEM ← MEM + 1 受影响的标志位: Z: 『受影响』, Copyright 2017, PADAUK Technology Co. Ltd C: 『受影响』 , Page 83 of 98 AC:『受影响』, OV:『受影响』 OV:『受影响』 OV:『受影响』 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 dec M RAM 减 1 例如:dec MEM; 结果:MEM ← MEM - 1 受影响的标志位: Z: 『受影响』, clear M C: 『受影响』 , AC:『受影响』, OV:『受影响』 清除 RAM 为 0 例如:clear MEM; 结果:MEM ← 0 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 AC:『不变』 , OV:『不变』 加法运算, 8x8 无符号加法执行指令 mul 例如:mul ; 结果:{MulRH,ACC} ← ACC * MulOp 受影响的标志位: Z: 『不变』 , C: 『不变』, 应用范例: --------------------------------------------------------------------------------------------------------------------… mov a, 0x5a ; mov mulop, a ; mov a, 0xa5 ; mul // 0x5A * 0xA5 = 3A02 (mulrh + ACC) mov ram0, a ; // LSB, ram0=0x02 mov a, mulrh ; // MSB, ACC=0X3A … --------------------------------------------------------------------------------------------------------------------- 7.3. 移位运算类指令 sr a 累加器的位右移,位 7 移入值为 0 例如:sr a; 结果:a (0,b7,b6,b5,b4,b3,b2,b1) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 src a 累加器的位右移,位 7 移入进位标志位 例如:src a; 结果:a (c,b7,b6,b5,b4,b3,b2,b1) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 sr M RAM 的位右移,位 7 移入值为 0 例如:sr MEM; 结果:MEM(0,b7,b6,b5,b4,b3,b2,b1) ← MEM(b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 src M RAM 的位右移,位 7 移入进位标志位 例如:src MEM; 结果:MEM(c,b7,b6,b5,b4,b3,b2,b1) ← MEM (b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM(b0) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 Copyright 2017, PADAUK Technology Co. Ltd Page 84 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 sl a 累加器的位左移,位 0 移入值为 0 例如:sl a; 结果:a (b6,b5,b4,b3,b2,b1,b0,0) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a (b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 slc a 累加器的位左移,位 0 移入进位标志位 例如:slc a; 结果:a (b6,b5,b4,b3,b2,b1,b0,c) ← a (b7,b6,b5,b4,b3,b2,b1,b0), C ← a(b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 sl M RAM 的位左移,位 0 移入值为 0 例如:sl MEM ; 结果:MEM (b6,b5,b4,b3,b2,b1,b0,0) ← MEM (b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM(b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 slc M RAM 的位左移,位 0 移入进位标志位 例如:slc MEM ; 结果:MEM (b6,b5,b4,b3,b2,b1,b0,C) ← MEM (b7,b6,b5,b4,b3,b2,b1,b0), C ← MEM (b7) 受影响的标志位: Z: 『不变』 , C: 『受影响』 , AC: 『不变』 , OV:『不变』 swap a 累加器的高 4 位与低 4 位互换 例如:swap a; 结果:a (b3,b2,b1,b0,b7,b6,b5,b4) ← a (b7,b6,b5,b4,b3,b2,b1,b0) 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 7.4. 逻辑运算类指令 and a, I 累加器和立即数据执行逻辑 AND,然后把结果保存到累加器 例如:and a, 0x0f ; 结果:a ← a & 0fh 受影响的标志位: Z: 『受影响』, and a, M C: 『不变』 , AC: 『不变』 , OV:『不变』 a, 0x0f ; 结果: a ← a | 0fh 受影响的标志位: Z: 『受影响』, a, M OV:『不变』 累加器和立即数据执行逻辑 OR,然后把结果保存到累加器 例如: or or AC: 『不变』 , MEM, a ; 结果:MEM ← a & MEM 受影响的标志位: Z: 『受影响』, a, I C: 『不变』 , 累加器和 RAM 执行逻辑 AND,然后把结果保存到 RAM 例如:and or OV:『不变』 a, RAM10 ; 结果:a ← a & RAM10 受影响的标志位: Z: 『受影响』, M, a AC: 『不变』 , 累加器和 RAM 执行逻辑 AND,然后把结果保存到累加器 例如:and and C: 『不变』 , C: 『不变』 , AC: 『不变』 , OV:『不变』 累加器和 RAM 执行逻辑 OR,然后把结果保存到累加器 例如:or a, MEM ; 结果:a ← a | MEM 受影响的标志位: Z: 『受影响』, Copyright 2017, PADAUK Technology Co. Ltd C: 『不变』 , Page 85 of 98 AC: 『不变』 , OV:『不变』 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 or M, a 累加器和 RAM 执行逻辑 OR,然后把结果保存到 RAM 例如: or MEM, a ; 结果: MEM ← a | MEM 受影响的标志位: Z: 『受影响』, xor a, I IO, a AC: 『不变』 , OV:『不变』 累加器和立即数据执行逻辑 XOR,然后把结果保存到累加器 例如:xor xor C: 『不变』 , a, 0x0f ; 结果: a ← a ^ 0fh 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , 累加器和 IO 寄存器执行逻辑 XOR,然把结果存到 IO 寄存器 例如:xor OV:『不变』 pa, a ; 结果:pa ← a ^ pa ; // pa 是 port A 资料寄存器 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , xor a, M 累加器和 RAM 执行逻辑 XOR,然后把结果保存到累加器 例如:xor a, MEM ; 结果:a ← a ^ RAM10 受影响的标志位: Z: 『受影响』, xor M, a AC: 『不变』 , OV:『不变』 MEM, a ; 结果: MEM ← a ^ MEM 受影响的标志位: Z: 『受影响』, a C: 『不变』 , 累加器和 RAM 执行逻辑 XOR,然后把结果保存到 RAM 例如: xor not OV:『不变』 C: 『不变』 , AC: 『不变』 , OV:『不变』 AC: 『不变』 , OV:『不变』 累加器执行 1 补码运算,结果放在累加器 例如:not a; 结果:a ← 〜a 受影响的标志位: Z: 『受影响』, C: 『不变』 , 应用范例: -----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; // ACC=0X38 not a; // ACC=0XC7 -----------------------------------------------------------------------------------------------------------------------not M RAM 执行 1 补码运算,结果放在 RAM 例如:not MEM ; 结果:MEM ← 〜MEM 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; mov mem, a ; // mem = 0x38 not mem ; // mem = 0xC7 -----------------------------------------------------------------------------------------------------------------------neg a 累加器执行 2 补码运算,结果放在累加器 例如:neg a; 结果:a ←a 的 2 补码 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , OV:『不变』 应用范例: Copyright 2017, PADAUK Technology Co. Ltd Page 86 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 -----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; // ACC=0X38 neg a; // ACC=0XC8 -----------------------------------------------------------------------------------------------------------------------neg M RAM 执行 2 补码运算,结果放在 RAM 例如:neg MEM; 结果:MEM ← MEM 的 2 补码 受影响的标志位: Z: 『受影响』, C: 『不变』 , AC: 『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------mov a, 0x38 ; mov mem, a ; // mem = 0x38 not mem ; // mem = 0xC8 --------------------------------------------------------------------------------------------------- --------------------comp a, M 比较累加器和 RAM 的内容 例如:comp a, MEM; 结果:等效于( a - MEM ),并改变标志位 Flag。 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 应用范例: ------------------------------------------------------------------------------------------------------- ----------------mov a, 0x38 ; mov mem, a ; comp a, mem ; mov a, 0x42 ; mov mem, a ; mov a, 0x38 ; comp a, mem ; // Z 标志被设为 1 // C 标志被设为 1 -----------------------------------------------------------------------------------------------------------------------comp M, a 比较累加器和 RAM 的内容 例如:comp MEM, a; 结果:等效于( MEM - a ),并改变标志位 Flag。 受影响的标志位: Z: 『受影响』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 7.5. 位运算类指令 set0 IO.n IO 口的位 N 拉低电位 例如: set0 pa.5 ; 结果: PA5=0 受影响的标志位: Z: 『不变』 , set1 IO.n C: 『不变』, AC:『不变』 , OV:『不变』 C: 『不变』, AC:『不变』 , OV:『不变』 IO 口的位 N 拉高电位 例如:set1 pb.5 ; 结果: PB5=1 受影响的标志位: Z: 『不变』 , Copyright 2017, PADAUK Technology Co. Ltd Page 87 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 swapc IO.n IO 口的位 N 与进位 C 交换 受影响的标志位: 『不变』Z 『受影响』C 『不变』AC 『不变』OV 应用范例 1(连续输出) : ... set1 pac.0 ; // 设置 PA.0 作为输出 ... set0 flag.1 ; swapc pa.0 ; set1 flag.1 ; swapc pa.0 ; // C=0 // 送 C 给 PA.0 (位操作), PA.0=0 // C=1 // 送 C 给 PA.0 (位操作), PA.0=1 ... 应用范例 2(连续输入): ... set0 pac.0 ; // 设置 PA.0 作为输入 ... swapc pa.0 ; // 读 PA.0 的值给 C(位操作) src a; // 把 C 移位给 ACC 的位 7 swapc pa.0 ; // 读 PA.0 的值给 C(位操作) src a; // 把新进 C 移位给 ACC 的位 7,上一个 PA.0 的值给 ACC 的位 6 ... -----------------------------------------------------------------------------------------------------------------------set0 M.n RAM 的位 N 设为 0 例如:set0 MEM.5 ; 结果: MEM 位 5 为 0 受影响的标志位: Z: 『不变』 , set1 M.n C: 『不变』, AC:『不变』 , OV:『不变』 C: 『不变』, AC:『不变』 , OV:『不变』 RAM 的位 N 设为 1 例如: set1 MEM.5 ; 结果: MEM 位 5 为 1 受影响的标志位: Z: 『不变』 , 7.6. 条件运算类指令 ceqsn a, I 比较累加器与立即数据,如果是相同的,即跳过下一指令。标志位的改变与 (a ← a - I)相同 例如: ceqsn a, 0x55 ; inc MEM ; goto error ; 结果: 假如 a=0x55, then “goto error”; 否则, “inc MEM”. 受影响的标志位: Z: 『受影响』, ceqsn a, M C: 『受影响』 , AC:『受影响』, OV:『受影响』 比较累加器与 RAM,如果是相同的,即跳过下一指令。标志位改变与 (a ← a - M)相同 例如:ceqsn a, MEM; 结果:假如 a=MEM,跳过下一个指令 受影响的标志位: Z: 『受影响』, Copyright 2017, PADAUK Technology Co. Ltd C: 『受影响』 , Page 88 of 98 AC:『受影响』, OV:『受影响』 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 cneqsn a, M 比较累加器和 RAM 的值,如果不相等就跳到下一条指令。标志改变与(a ← a - M)相同 例如:cneqsn a, MEM; 结果:如果 a≠MEM, 跳到下一条指令 受影响的标志位: Z: 『受影响』, cneqsn a, I C: 『受影响』 , AC:『受影响』, OV:『受影响』 比较累加器和立即数的值,如果不相等就跳到下一条指令。标志改变与(a ← a - I) 例如: cneqsn a,0x55 ; inc MEM ; goto error ; 结果:如果 a≠0x55, 然后 “goto error”; 否则, “inc MEM”. 受影响的标志位: Z: 『受影响』, t0sn IO.n C: 『受影响』 , AC:『受影响』, OV:『受影响』 如果 IO 的指定位是 0,跳过下一个指令。 例如:t0sn pa.5; 结果:如果 PA5 是 0,跳过下一个指令。 受影响的标志位: Z: 『不变』 , t1sn IO.n C: 『不变』, AC:『不变』 , OV:『不变』 AC:『不变』 , OV:『不变』 AC:『不变』 , OV:『不变』 AC:『不变』 , OV:『不变』 如果 IO 的指定位是 1,跳过下一个指令。 例如:t1sn pa.5 ; 结果:如果 PA5 是 1,跳过下一个指令。 受影响的标志位: Z: 『不变』 , t0sn M.n C: 『不变』, 如果 RAM 的指定位是 0,跳过下一个指令。 例如:t0sn MEM.5 ; 结果:如果 MEM 的位 5 是 0,跳过下一个指令。 受影响的标志位: Z: 『不变』 , t1sn M.n C: 『不变』, 如果 RAM 的指定位是 1,跳过下一个指令。 例如:t1sn MEM.5 ; 结果:如果 MEM 的位 5 是 1,跳过下一个指令。 受影响的标志位: Z: 『不变』 , izsn a 累加器加 1,若累加器新值是 0,跳过下一个指令。 例如:izsn a; 结果:a a + 1,若 a=0,跳过下一个指令。 ← 受影响的标志位: Z: 『受影响』, dzsn a 结果:a ← 结果:MEM AC:『受影响』, OV:『受影响』 a – 1,若 a=0,跳过下一个指令。 C: 『受影响』 , MEM; ← MEM + 1,若 MEM=0,跳过下一个指令。 受影响的标志位: Z: 『受影响』, M OV:『受影响』 RAM 加 1,若 RAM 新值是 0,跳过下一个指令。 例如:izsn dzsn AC:『受影响』, a; 受影响的标志位: Z: 『受影响』, M C: 『受影响』 , 累加器减 1,若累加器新值是 0,跳过下一个指令。 例如:dzsn izsn C: 『不变』, C: 『受影响』 , AC:『受影响』, OV:『受影响』 RAM 减 1,若 RAM 新值是 0,跳过下一个指令。 例如:dzsn 结果:MEM MEM; ← MEM - 1,若 MEM=0,跳过下一个指令。 受影响的标志位: Z: 『受影响』, Copyright 2017, PADAUK Technology Co. Ltd C: 『受影响』 , Page 89 of 98 AC:『受影响』, OV:『受影响』 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 7.7. 系统控制类指令 call label goto label ret I ret reti nop pcadd a 函数调用,地址可以是全部空间的任一地址 例如: call function1; 结果: [sp] ← pc + 1 pc ← function1 sp ← sp + 2 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 转到指定的地址,地址可以是全部空间的任一地址 例如: goto error; 结果: 跳到 error 并继续执行程序 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 将立即数据复制到累加器,然后返回 例如: ret 0x55; 结果: A ← 55h ret ; 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 从函数调用中返回原程序 例如: ret; 结果: sp ← sp - 2 pc ← [sp] 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 从中断服务程序返回到原程序。在这指令执行之后,全部中断将自动启用 例如: reti; 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 没任何动作 例如: nop; 结果: 没任何改变 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 目前的程序计数器加累加器是下一个程序计数器 例如: pcadd a; 结果: pc ← pc + a 受影响的标志位: Z: 『不变』 , C: 『不变』, AC:『不变』 , OV:『不变』 应用范例: -----------------------------------------------------------------------------------------------------------------------… mov a, 0x02 ; pcadd a; // PC 10Ω 电阻。  应尽量避免使用 PA5 作为输入。 9.2.2. 中断 (1) 当使用中断功能的一般步骤如下: 步骤 1:设定 INTEN 寄存器,开启需要的中断的控制位 步骤 2:清除 INTRQ 寄存器 步骤 3:主程序中,使用 ENGINT 指令允许 CPU 的中断功能 步骤 4:等待中断。中断发生后,跳入中断子程序 步骤 5:当中断子程序执行完毕,返回主程序 * 在主程序中,可使用 DISGINT 指令关闭所有中断 * 跳入中断子程序处理时,可使用 PUSHAF 指令来保存 ALU 和 FLAG 寄存器数据,并在 RETI 之前,使用 PUSHAF 指令复原,步骤如下: void Interrupt (void) Copyright 2017, PADAUK Technology Co. Ltd //中断发生后,跳入中断子程序 Page 95 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 //自动进入 DISGINT 的状态,CPU 不会再接受中断 { PUSHAF; … POPAF; //系统自动填入 RETI,直到执行 RETI 完毕才自动恢复到 ENGINT 的状态 } (2) INTEN,INTRQ 没有初始值,所以要使用中断前,一定要根据需要设定数值。 (3) 外部 IO 脚中断源有两组,每组由 code option Interrupt Src0 和 Interrupt Src1 来决定实际对应的唯一中断接 脚;选中的 IO 接脚,需遵守 inten/ intrq/ integs 寄存器的规范。 9.2.3. 系统时间选择 利用 CLKMD 寄存器可切换系统时钟源。请注意,不可在切换系统时钟源的同时把原时钟源关闭。例如: 从 A 时钟源切换到 B 时钟源时,应该先用 CLKMD 寄存器切换系统时钟源,然后再通过 CLKMD 寄存器关闭 A 时钟振荡源。  例子:系统时钟从 ILRC 切换到 IHRC/2 CLKMD = CLKMD.2 =  0x36; 0; // 切到 IHRC,但 ILRC 不要禁用 // 此时才可关闭 ILRC 错误:ILRC 切换到 IHRC,同时关闭 ILRC CLKMD = 0x50; // MCU 会死机 9.2.4. 看门狗 当 ILRC 关闭时,看门狗也会失效。 9.2.5. TIMER 溢出 当设定 T16M 计数器 BIT8 为 1 时产生中断,则第一次中断是在计数到 0x100 时发生(BIT8 从 0 到 1), 第二次中断在计数到 0x300 时发生(BIT8 从 0 到 1)。因此,设定 BIT8 是计数 512 次才中断。请注意,如果 在中断中重新给 T16M 计数器赋值,则下一次中断也将在 BIT8 从 0 变 1 时发生。 9.2.6. IHRC (1) 当 IC 在烧录器烧录时,会校准 IHRC 频率。 (2) 由于 EMC 的特性或者在 IC 封装或 COB 时,会不同程度影响 IHRC 频率。如果频率校准在 IC 封塑之前已 经完成,那么实际的 IHRC 频率会在 IC 封塑之后有可能出现偏差或者超出规格指标。通常情况下该频率会 稍稍变慢。 (3) 通常在 COB 封胶或 QTP 时会发生如上描述的情况,应广科技不负任何责任。 (4) 用户可以根据使用经验来做频率补偿,例如,用户可以在使用时调高 IHRC 频率约 0.5%~1%,以便得到比 IC 封塑之后更好的 IHRC 频率。 Copyright 2017, PADAUK Technology Co. Ltd Page 96 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 9.2.7. LVR 用户可以通过寄存器 MISC.2 位设置为 “1” 来禁用 LVR。此时,VDD 电压必须要确保高于 IC 的最低工作电 压,否则 IC 不能工作。 9.2.8. 指令 (1) PMS133/PMS134 支持 87 个指令。 (2) PMS133/PMS134 的指令周期如下表所示: 指令 条件 GOTO, call, pcadd, ret, reti 指令周期 2T ceqsn, cneqsn, t0sn, t1sn, dzsn, izsn 条件满足 2T 条件不满足 1T idxm 2T Others 1T 9.2.9. BIT 定义 位寻址只能定义在 RAM 区地址的 0x00 to 0x7F。 9.2.10. 烧录方法 请使用 PDK5S-P-002 或以上进行烧录,并把烧录器背后的 jumper 放在 CN39 (P201CS/CD16A)的位置。 9.2.11. 烧录兼容性 PMS133 与 PMS134 是单向兼容的。PMS133 程序可写进 PMS134 的实体 IC 中,反之却不行。 Copyright 2017, PADAUK Technology Co. Ltd Page 97 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017 PMS133/PMS134 8bit OTP 带 12bit ADC 单片机 9.3 使用 ICE PDK5S-I-S01/2 支持 PMS133/PMS134 MCU 的仿真,以下是使用 PDK5S-I-S01/2 仿真 PMS133/PMS134 (1) 的注意事项:  PDK5S-I-S01/2 仿真时,不支持指令 NMOV/SWAP/NADD/COMP 的 RAM 运算。  PDK5S-I-S01/2 仿真时,不支持 SYSCLK=ILRC/16。  PDK5S-I-S01/2 仿真时,不支持 misc.4 动态设定(只能固定为 0 或 1) 。  PDK5S-I-S01/2 仿真时,不支持 Tm2.gpcrs/Tm3.gpcrs 功能。  PDK5S-I-S01/2 无法仿真 ADCRGC[3:2]的 ADC 通道 F 的 Band-gap 参考电压,并固定只有 1.2V。  PDK5S-I-S01/2 仿真时,ADCC 寄存器的 PC2 和 PC1 设定位置与 IC 不同。  快速唤醒时间在仿真时有差异:PDK5S-I-S01/2: 128 系统时钟周期,PMS133/PMS134: 45 ILRC。  PDK5S-I-S01/2 仿真时,看门狗溢出时间也有差异: WDT 周期设置 PDK5S-I-S01/2 PMS133/PMS134 misc[1:0]=00 2048 * TILRC 8192 * TILRC misc[1:0]=01 4096 * TILRC 16384 * TILRC misc[1:0]=10 16384 * TILRC 65536 * TILRC misc[1:0]=11 256 * TILRC 262144 * TILRC  PDK5S-I-S01/2 仿真时,不支持 GPC_PWM,TMx_source,PWM_Source,TMx_bit 等 code option。  PDK5S-I-S01/2 仿真时,RAM 只有 240 字节的数据存储器。  PDK5S-I-S01/2 仿真时,ROM 只有 0xF00 个程序存储器。  PDK5S-I-S01/2 仿真时,PCDIER 的设置与实际芯片不同。PDK5S-I-S01/2 的 PCDIER[0]用于设置 PC0~PC3 为数字输入,PCDIER[1] 用于设置 PC4~PC7 的数字输入。建议在使用 PDK5S-I-S01/2 做 PMS133/PMS134 的仿真时,不要去设置 PCDIER。 Copyright 2017, PADAUK Technology Co. Ltd Page 98 of 98 PDK-DS-PMS133/134-CN_V002–Sep. 30, 2017
PMS134-SS24 价格&库存

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

免费人工找货