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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
TM56M1531-MTP-14

TM56M1531-MTP-14

  • 厂商:

    TENX(十速)

  • 封装:

    SOP-8

  • 描述:

    其他存储器

  • 数据手册
  • 价格&库存
TM56M1531-MTP-14 数据手册
TM56M1511 TM56M1531 规格书 版本0.90 tenx reserves the right to change or discontinue the manual and online documentation to this product herein to improve reliability, function or design without further notice. tenx does not assume any liability arising out of the application or use of any product or circuit described herein; neither does it convey any license under its patent rights nor the rights of others. tenx products are not designed, intended, or authorized for use in life support appliances, devices, or systems. If Buyer purchases or uses hitenx products for any such unintended or unauthorized application, Buyer shall indemnify and hold hitenx and its officers, employees, subsidiaries, affiliates and distributors harmless against all claims, cost, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use even if such claim alleges that hitenx was negligent regarding the design or manufacture of the part. TM56M1511/31 数据手册 修改记录 版次 0.90 DS-TM56M1511_31_S 日期 Mar, 2023 描述 新颁 2 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 目录 修改记录 ........................................................................................................................................ 2 目录 ................................................................................................................................................ 3 比较表 ............................................................................................................................................ 5 特性 ................................................................................................................................................ 6 系统框图 ........................................................................................................................................ 9 引脚分配图 .................................................................................................................................. 10 引脚描述 ...................................................................................................................................... 11 引脚摘要 ...................................................................................................................................... 12 功能描述 ...................................................................................................................................... 13 1. CPU 核心 ................................................................................................................................. 13 1.1 程序 ROM (PROM) ............................................................................................................. 13 1.1.1 复位向量 (000H) ....................................................................................................... 13 1.1.2 中断向量(004H) ........................................................................................................ 13 1.2 系统配置寄存器(SYSCFG) ................................................................................................ 14 1.3 RAM 寻址模式 .................................................................................................................... 15 1.4 编程计数器(PC)和堆栈 ................................................................................................. 18 1.4.1 ALU 和工作(W)寄存器 ............................................................................................ 21 1.4.2 状态寄存器 (03H/83H/103H/183H) ......................................................................... 21 2. 复位 .......................................................................................................................................... 23 2.1 上电复位 (POR) .................................................................................................................. 23 2.2 低电压复位(LVR) ............................................................................................................... 23 2.3 外部引脚复位 (XRST) ........................................................................................................ 24 2.4 看门狗定时器复位 (WDTR) .............................................................................................. 24 3. 时钟电路和工作模式 .............................................................................................................. 26 3.1 系统时钟 .............................................................................................................................. 26 3.2 双系统时钟模式转换 .......................................................................................................... 28 3.3 系统时钟振荡器 .................................................................................................................. 31 4. 中断 .......................................................................................................................................... 32 5. I/O 端口 ................................................................................................................................... 36 5.1 PA0-PA4, PA7 ..................................................................................................................... 36 6. 外围功能模块 .......................................................................................................................... 40 6.1 唤醒定时器(WKT) ............................................................................................................. 40 6.2 Timer0 .................................................................................................................................. 42 DS-TM56M1511_31_S 3 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6.3 Timer1 .................................................................................................................................. 47 6.4 PWM: 16 bits PWM ............................................................................................................. 50 6.5 触摸键 (仅限 M1531 ) ......................................................................................................... 54 6.5.1 STK ............................................................................................................................ 54 6.5.2 CTK ........................................................................................................................... 58 6.6 循环冗余检查 (CRC) .......................................................................................................... 61 存储器功能图 .............................................................................................................................. 62 指令集 .......................................................................................................................................... 68 电气特性 ...................................................................................................................................... 82 1. 2. 3. 4. 5. 6. 最大绝对额定值 ................................................................................................................ 82 直流特性 ............................................................................................................................ 82 时钟时序 ............................................................................................................................ 83 复位时间特性 .................................................................................................................... 83 LVR 和 LVD 电路特性 ..................................................................................................... 84 电气特性曲线图 ................................................................................................................ 85 封装信息 ...................................................................................................................................... 88 DS-TM56M1511_31_S 4 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 比较表 EV8239B TM56P8336 TM56M1531 EV board – EV8239B EV8239B Touch Key TK转换结束, CTKCKO继续运行 TK转换结束,CTKCKO 停止运行并保持1 TK转换结束,CTKCKO 停止运行并保持1 DS-TM56M1511_31_S 5 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 特性 1. ROM:  2K x 16 位 MTP (可多次编程的 ROM) 2. RAM: 256 x 8 位 3. 堆栈: 8 级 4. 系统时钟类型选择:  内部 RC 快时钟: 16 MHz (FIRC)  内部 RC 慢时钟: (SIRC, 80 KHz @4V) 5. 系统时钟预分频器:  系统时钟可以 1/2/4/8 分频选项 6. 省电工作模式  快速模式: 慢时钟使能,CPU 在快速时钟状态下运行  慢时钟模式: 快时钟可以关闭或使能,CPU 在慢时钟状态下运行  空闲模式:快速时钟和 CPU 停止,慢时钟继续运行  停止模式:所有的时钟停止 7. 2 个独立定时器  Timer0 - 8 位计时器除以 1~256 预分频选项,具有自动重新加载/计数器/中断/停止功能  Timer1 - 8 位计时器除以 1~256 预分频选项,具有自动重新加载/中断/停止功能 8. 中断  三个外部中断引脚 - 1 个引脚为下降沿唤醒触发并中断 - 2 个引脚为上升或下降沿唤醒触发并中断  Timer0 / Timer1 / WKT 中断  PWM 中断  触摸键中断  LVD 中断 DS-TM56M1511_31_S 6 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 9. 唤醒定时器 (WKT)  由内置 RC 振荡器提供时钟,具有 4 个可调节的中断时间 - 12 ms / 25 ms / 50 ms / 100 ms @ 4V 10. 看门狗定时器 (WDT)  由内置 RC 振荡器计时,具有 4 个可调的复位时间 - 100 ms / 200 ms / 800 ms / 1600 ms @ 4V  在停止模式下可以关闭 / 使能看门狗定时器 11. 5 个 16-位 PWM(共享期间)  PWM0, PWM1, PWM2, PWM4, PWM5  5 个单独的工作占空比可调,共享的周期可调  PWM 时钟源:系统时钟(Fsys)、FIRC(16 MHz)或 FIRC*2(32MHz) 12. 触摸键(仅限 M1531 )  两种不同的架构: CTK 和 STK  4 个带有数据计数器的通道触摸键  1 个针对 CTK 的外部 CLD  1 个内部参考电容器 13. 复位源  上电复位  看门狗复位  低电压复位 外部引脚复位 14. 低电压复位 (LVR) / 低电压检测 (LVD)  16-级低电压复位: 2.05V ~ 4.15V, 可以选择被关闭  15 级低电压检测: 2.20V ~ 4.15V, 可以选择被关闭 15. 工作电压 Fsys= 16 MHz,1.9V~5.5V @LVR 禁用@25C。建议 LVR 2.05V @-40C~105C 注意:通电的 VCC 必须超过 POR 和所选的 LVR 电平以上,请参考“电气特性图”,以避免进入 ROM 死区。 16. 工作温度范围: -40°C ~ 105°C 17. 表读取指令:16 位 ROM 数据查找表 18. 集成的 16 位循环冗余检查(CRC)功能 19. 指令集:39 条指令 DS-TM56M1511_31_S 7 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 20. I/O 端口:  最多 6 个可编程 I/输出引脚 - - 开漏输出 - - CMOS 推挽输出 - - 施密特触发器输入,带上拉/下拉电阻选项 - - 所有 I/O 具备高灌电流 - - 1/2 V CC (1/2 偏压) 输出 21. 编程连接支持 5 线(ICP)或 8 线程序 22. 封装类型:  8-pin SOP (150 mil)  6-pin SOT23-6 23. 片上调试/ICE 接口 EV board: EV8239B DS-TM56M1511_31_S 8 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 系统框图 PWM0~2 PWM4~5 TK1,TK2 TK4,TK5 CLD Clock Gen. FIRC/SIRC 2K MTP 256B ROM SRAM PWM 8-bit RISC core Touch Key (M1531 only) Interrupt INT0~INT2 Port A PA0~PA4 PA7 WKT Timer0 WDT Timer1 Reset nRESET LVR VSS VCC TM56M1511/31 Block Diagram DS-TM56M1511_31_S 9 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 引脚分配图 TM0CKI/PWM4/PA2 INT0/PWM2/PA3 INT2/nRESET/VPP/PA7 VSS 1 2 3 4 PWM0/PA4 1 VSS 2 INT1/PWM1/PA1 3 TK4/TM0CKI/PWM4/PA2 CLD/INT0/PWM2/PA3 INT2/nRESET/VPP/PA7 VSS 1 2 3 4 TK2/PWM0/PA4 1 VSS 2 TK1/INT1/PWM1/PA1 3 DS-TM56M1511_31_S TM56M1511 SOP-8 TM56M1511 SOT23-6 TM56M1531 SOP-8 TM56M1531 SOT23-6 10 8 7 6 5 PA1/PWM1/INT1 PA0/PWM5 VCC PA4/PWM0 6 PA7/VPP/nRESET/INT2 5 VCC 4 PA0/PWM5 8 7 6 5 PA1/PWM1/INT1/TK1 PA0/PWM5/TK5 VCC PA4/PWM0/TK2 6 PA7/VPP/nRESET/INT2 5 VCC 4 PA0/PWM5/TK5 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 引脚描述 名称 输入/输出 引脚描述 PA0~PA4, PA7 I/O nRESET I VCC, VSS VPP P P INT0–INT2 TM0CKI I I 外部中断输入 计数器模式下的计数器 0 的输入 PWM0~2,PWM4~5 O 16 位 PWM 输出 触摸键输入 可位编程 I/O 端口,为施密特触发器输入,CMOS 推拉输出,开漏极 输出或 1/2VCC 输出。上拉/下拉电阻可通过软件分配 外部低电平有效复位 电源电压输入引脚和接地 程序高压输入 TK1,TK2,TK4,TK5 I 外部触摸键充电电容连接引脚 CLD I/O 编程引脚: 正常模式:VCC / VSS / VPP / PA0 / PA1 / PA2 / PA3 / PA4 ICP 模式:VCC / VSS / VPP / PA0 / PA1 -当使用 ICP(在线编程)模式时,PCB 需要除去 PA0、PA1 的所有部件 DS-TM56M1511_31_S 11 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 引脚摘要 SOP8-A I/O 3 PA7/VPP/nRESET/INT2 I/O 4 VSS 5 PA4/PWM0/TK2 6 VCC 7 PA0/PWM5/TK5 I/O 8 PA1/PWM1/INT1/TK1 I/O MISC PA3/PWM2/INT0/CLD TK (M1531 Only) 2 PWM I/O P.P PA2/PWM4/TM0CKI/TK4 输出 O.D 引脚名称     TM0CKI                     Ext. Interrupt 类型 TM56M1511/31 输 入 1 Symbol:P.P. O.D. 替代功能 GPIO nRESET P I/O P  = COM Push-Pull 输出 = Open Drain 输出 DS-TM56M1511_31_S 12 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 功能描述 1. CPU 核心 1.1 程序 ROM (PROM) 该器件的 MTP(多次可编程)ROM 为 2K 字,带有一个额外的信息区域来存储 SYSCFG 。只要 SYSCFG 的 PROT(CFGWH[15])位不设置 1,就可以写入 ROM。 PROM 000h 复位向量 004h 005h 中断向量 用户ROM代码 7FFh 1.1.1 复位向量 (000H) 重置后,系统将在地址 000h 处重新启动程序计数器(PC),所有寄存器都将恢复到默认值。 1.1.2 中断向量(004H) 当中断发生时,程序计数器(PC)将被推到堆栈上,并跳转到地址 004h。 DS-TM56M1511_31_S 13 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 1.2 系统配置寄存器(SYSCFG) 系统配置寄存器 (SYSCFG) 位于 MTP ROM 信息区域;它包含一个 16 位寄存器 (CFGWH)。 SYSCFG 决定了 CPU 初始状态的选项。用户可以通过 SYSCFG 寄存器选择 LVR 工作模式和芯片 工作模式。CFGWH 的第 15 位是代码保护选择位。如果该位为 1,则当用户读取 PROM 时, PROM 中的数据将受到保护。 位 15~0 默认值 1111_1111_1111_1111 位 描述 PROT: 代码保护选择 15 14 13-12 0 关闭 使能 1 Tenx 保留 0 1 WDTE: WDT 复位使能 10 使能关闭 在快速/慢速模式下使能,在空闲/停止模式下关闭 11 始终启用 0X LVR: 低电压复位模式 CFGWH 11-8 0000 Low Voltage Reset 2.05V 0001 Low Voltage Reset 2.20V 0010 Low Voltage Reset 2.30V 0011 Low Voltage Reset 2.45V 0100 Low Voltage Reset 2.60V 0101 Low Voltage Reset 2.75V 0110 Low Voltage Reset 2.90V 0111 Low Voltage Reset 3.00V 1000 Low Voltage Reset 3.15V 1001 Low Voltage Reset 3.30V 1010 Low Voltage Reset 3.45V 1011 Low Voltage Reset 3.60V 1100 Low Voltage Reset 3.70V 1101 Low Voltage Reset 3.85V 1110 Low Voltage Reset 4.00V 1111 Low Voltage Reset 4.15V XRSTE: 外部引脚 (PA7) 复位使能 7 6-0 DS-TM56M1511_31_S 0 关闭 (PA7 作为 I/O 引脚) 1 使能 Tenx 保留 14 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 1.3 RAM 寻址模式 CPU 中有一个数据存储器分为四个部分 BANK。每个 BANK 最多可扩展到 7Fh (128 字节)。每个 BANK 的下部位置保留用于特殊功能寄存器 (SFR)。SFR 上方是通用寄存器,实现为静态 RAM。 所有已实现的 BANK 都包含特殊功能寄存器。BANK 的一些常用特殊功能寄存器可能会在另一 个 BANK 中进行镜像,以减少代码并加快访问速度。 位 RP1 和 RP0(状态[6:5])是 BANK 选择位。 [RP1, RP0] 00 01 10 11 BANK 0 1 2 3 该页面可以直接或间接寻址。对 INDF 寄存器进行写值为间接寻址,INDF 寄存器不是实质寄存 器,任何使用 INDF 寄存器的指令实际上都为访问文件选择寄存器 FSR 指向的寄存器。间接读取 INDF 寄存器本身 (FSR =“ 0”)将读为 00h,间接写入 INDF 寄存器将导致空操作(可能会影响 状态位)。通过将 8 位 FSR 寄存器和 IRP 位 (STATUS [7]) 连接起来,可以获得有效的 9 位地址。 请参考下图。 Indirect Addressing Direct Addressing RP1 RP0 Bank select 6 from OPCODE IRP 0 Bank select Location select 00 00h Data memory Bank0 7 01 80h 10 100h Bank1 Bank2 FSR register 0 Location select 11 180h Bank3 (Reserved) 7Fh FFh 17Fh 1FFh 直接 / 间接寻址 在 F/W 代码的开头保持 RP0=RP1=0 并使用新的指令集。 使用新指令的好处是用户可以忽略寄存器的 BANK 区位置,并且可以节省代码大小。新指令与 旧指令几乎相同。通过将指令集中的 ”F” 替换为 ”X”,可以轻松使用新指令,而无需切换 BANK。 DS-TM56M1511_31_S 15 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 例如: BCF DECF INCFSZ MOVWF RLF SWAPF 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 6Fh 70h 【BANK0】 00~7Fh INDF TM0 PCL STATUS FSR PAD PCLATH INTIE INTIF INTIE1 INTIF1 CLKCTL TM0RLD TM0CTL TM1 TM1RLD TM1CTL LVCTL TKDL TKDH TKTMRL TKMFS TKCTL TKCTL2 TM0IE CNT, 1 RAM25, 0 PAMODL RAMA0, 0 ADCTL, 0 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh 9Fh A0h 【BANK1】 80h~FFh INDF OPTION PCL STATUS FSR PAMOD10 PAMOD32 PAMOD54 PAMOD76 PWMCTL PCLATH INTIE OPTION2 PWMPRDH PWMPRDL PWM0DH PWM0DL PWM1DH PWM1DL PWM2DH PWM2DL PWM4DH PWM4DL PWM5DH PWM5DL       BCX DECX INCXSZ MOVWX RLX SWAPX 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h TM0IE CNT, 1 RAM25, 0 PAMODL RAMA0, 0 ADCTL, 0 【BANK2】 100h~17Fh INDF TM0 PCL STATUS FSR LVRPD PCLATH INTIE PCH BGTRIM IRCF 180h 181h 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 191h 192h 193h 194h 195h 196h 197h 198h 199h 19Ah 19Bh 19Ch 19Dh 19Eh 19Fh 1A0h 【BANK3】 180h~1FFh INDF OPTION PCL STATUS FSR DPL DPH CRCDL CRCDH CRCIN PCLATH INTIE TABR RAM Bank0 area RAM Bank1 area RAM Bank2 area RAM Bank3 area (80 Bytes) (80 Bytes) (80 Bytes) (80 Bytes) common area 16 Bytes 7Fh DS-TM56M1511_31_S EFh F0h 16Fh 170h accesses 70h~7Fh FFh 17Fh 16 accesses 70h~7Fh 1EFh 1F0h accesses 70h~7Fh 1FFh Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 ◇范例: 通过使用直接寻址来读 / 写寄存器 (RP0=RP1=0) 12H 91H 10FH 185H 20H A0H ;SFR 在Bank0 ;SFR 在Bank1 ;SFR 在Bank2 ;SFR 在Bank3 ;RAM 在Bank0 ;RAM 在Bank1 TM1 OPTION2 IRCF DPL RAM20 RAMA0 equ equ equ equ equ equ MOVXW MOVXW MOVXW MOVXW TM1 OPTION2 IRCF DPL ; 读取TM1 (Bank0) 至W ; 读取OPTION2 (Bank1) 至W ; 读取IRCF (Bank2) 至W ; 读取DPL (Bank3) 至W MOVLW MOVWX MOVWX 16H RAM20 RAMA0 ; W = 16h 写入到RAM[0x20] ; W = 16h 写入到 RAM[0xA0] MOVLW MOVWX 37H LVRPD ; LVRPD = W = 37h,强制关闭 LVR/POR MOVXW MOVXW CLKCTL IRCF ; 读取SFR CLKCTL (0Fh) 至W ; 读取SFR IRCF (10Fh) 至W MOVLW MOVWX MOVWX 0BH CLKCTL IRCF ; CLKCTL (0Fh) = W = 0Bh ; IRCF (10Fh) = W = 0Bh ◇范例: 通过使用间接寻址来读 / 写寄存器 (RP0=RP1=0) BSX MOVLW MOVWX MOVXW IRP 0FH FSR INDF ; IRP = 1 => Bank2/3 ; W = 0Fh ; FSR = W = 0Fh ; read SFR IRCF (10Fh) to W BSX MOVLW MOVWX MOVLW MOVWX IRP 0FH FSR 0BH INDF ; IRP = 1 => Bank2/3 ; W = 0Fh ; FSR = W =0Fh ; W = 0Bh ; IRCF (10Fh) = W = 0Bh BCX MOVLW MOVWX MOVXW IRP 0FH FSR INDF ; IRP=0 =>Bank0/1 ; W = 0Fh ; FSR = W = 0Fh ; read SFR CLKCTL (0Fh) to W BCX MOVLW MOVWX MOVLW MOVWX IRP 0FH FSR 0BH INDF ; IRP = 0 => Bank0/1 ; W = 0Fh ; FSR = W =0Fh ; W = 0Bh ; CLKCTL (0Fh) = W = 0Bh DS-TM56M1511_31_S 17 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 1.4 编程计数器(PC)和堆栈 该程序计数器为 11 位的编程计数器,能够寻址一个 2K x 16 的 MTP ROM。当执行一个程序指令 时,PC 将包含下一个要执行的程序指令的地址。除以下情况外,PC 值通常会增加 1。初始设置 复位向量(000h)和中断向量(004h)用于 PC 初始化和中断。对于 CALL/GOTO 指令,PC 从指 令字加载下 11 位地址。对于 RET/RETI/RETLW 指令,PC 从顶级堆栈中检索其内容。 与 RAM 寻 址 模 式 ( 请 参 考 1.3) 类 似 , 芯 片 提 供 了 新 的 指 令 集 LCALL/LGOTO 来 替 换 CALL/GOTO 指令集。 编程计数器(PC[7:0])的低字节数据可以由 PCL 寄存器(002h/082h/102h/182h)进行读写。编 程计数器(PC[11:8])的高字节数据只能通过 PCH 寄存器(10Ch)读取。当执行以 PCL 寄存器 为目标的任何指令时,内部标志 PCH_S 用于选择 PCH 的源。将 0x1C 写入 PCH 寄存器可以设置 PCH_S,将其他值写入 PCH 寄存器将清除 PCH_S。重置后,PCH_S 将被清除。 当 PCH_S 被清除为“0”时,同时执行任何以 PCL 寄存器为目标的指令,都会导致 PCH 被 PCLATH(00 Ah/08Ah/10Ah/18Ah)寄存器的内容所取代。这允许通过将所需的高字节写入 PCLATH 寄存器来更改程序计数器的整个内容。当低字节被写入 PCL 寄存器时,程序计数器的 所有内容将变为 PCLATH 寄存器中包含的值和那些被写入 PCL 寄存器的值。 当 PCH_S 设置为“1”时,执行以 PCL 寄存器为目标的任何指令,低字节将被写入 PCL 寄存器, 并且不会改变 PCH。当使用任何以 PCL 寄存器为目标的指令时,建议将 PCH_S 设置为“1”, 但 C 语言不支持此函数。 Instruction with PCL as Destination PCH PCL 11 4 11 10 8 PCH 0 12 { Opcode[14], Opcode[10:0] } ALU 4 7 8 PCH_S (10Ch) 0 PC 0 7 8 1 LGOTO, LCALL; keep PCLATH=0 4 PCLATH[3:0] 7 0 3 PCLATH 002h PCL R/W Reset Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PCL R/W 0 0 0 0 0 0 0 0 Bit 5 Bit 4 Bit 3 - Bit 2 Bit 1 PCLATH Bit 0 002h.7~0 PCL: 程序计数器数据位 7~0 00Ah PCLATH Bit 7 DS-TM56M1511_31_S Bit 6 GPR 18 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 R/W Reset R/W 0 0 0 - Bit 3 0 0 R/W 0 0 Bit 2 Bit 1 Bit 0 0 0 00Ah.2~0 PCLATH: 针对程序计数器的高字节的写缓冲区 10Ch PCH R/W Reset 10Ch.7~0 Bit 7 Bit 6 Bit 5 Bit 4 PCH W 0 0 R/W 0 0 0 0 PCH (W): 当执行以 PCL 作为目标的指令时,编程计数器高字节源选择 写 0x1C 来设置 PCH_S = 1: PCH 保持原始值 写其他的东西来清除 PCH_S = 0: PCH 是来自 PCLATH 的 10Ch.3~0 PCH (R): 编程计数器数据位 11~8 堆栈为 11 位宽度,8 阶深度。LCALL 指令和硬件中断将按顺序推送堆栈,当执行 RET/RETI/ RETLW 指令时按顺序弹堆栈。对于表查该器件提供了功能强大的表读取指令 TABRL 及 TABRH 通过设置 DPTR = {DPH, DPL} 寄存器将 16 位 ROM 数据返回到 W 寄存器。通过将 C 语言设置为 TABR (18Ch),它还提供了另一种将 16 位 ROM 数据读入 W 寄存器的方法。 例如:查找位于“ TABLE1”和“ TABLE2”的 PROM 数据。 ORG ; 复位向量 000h LGOTO START MOVLW MOVWX MOVLW MOVWX 00h INDEX 1Ch PCH ; 设置查找表的地址 ; 写入1Ch到PCH以设置PCH_S标志 MOVXW LCALL … INCX … LGOTO … INDEX TABLE1 ; 将索引值移到W寄存器 ; 查找数据 INDEX, 1 ; 增加下一个地址的索引地址 LOOP ; 转到LOOP标签 START: LOOP: MOVLW (TABLE2 >>8) & 0xff MOVWX DPH MOVLW (TABLE2) & 0xff MOVWX DPL ; Table Read by instructions TABRL / TABRH TABRL TABRH … ; Table Read by SFR TABR MOVLW 01h MOVWX TABR MOVXW TABR MOVLW 02h MOVWX TABR DS-TM56M1511_31_S ; DPH寄存器(F186h.3~0) ; DPL寄存器(F185h.7~0) ; 将PROM低字节数据读取到W(W = 86h) ; 将PROM高字节数据读取到W(W = 19h) ; TABR = 01h =指令TABRL ; 将PROM低字节数据读取到TABR(TABR = 86h) ; 读取TABR到W(W = 86) ; TABR = 02h =指令TABRH ;将PROM高字节数据读取到TABR(TABR = 19 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 19h) ORG TABLE1: MOVXW … X00h TABR ;读取TABR到W(W = 19) ADDWX RETLW RETLW RETLW … PCL, 1 55h 56h 58h ; 将W与PCL相加,然后将结果返回到PCL中。 .DT .DT … 0x1986 0x3719 ; 16-bit ROM data ; W=55h when return ; W=56h when return ; W=58h when return TABLE2: 注: 芯片将 256 个 ROM 地址定义为一页,因此 ROM 有 16 页,000h~0FFh,100h~1FFh,...,F00h~FFFh。 换句话说,PC 可以被定义为页面。查找表必须位于同一个页面上,以避免获取错误的数据。因此,例如, 在 X00h (X = 1, 2, 3, ... , E, F) 启动一个查找表时,查找表最多有 255 个数据。如果查找表中的数据较少, 则不需要将起始地址设置为 X00h,而只需要确认所有查找表数据都位于同一个页面上 。 18Ch TABR R/W Reset Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 TABR R/W 0 0 0 0 18Ch.7~0 TABR 写 01h =指令 TABRL 1. TABR 写 02h =指令 TABRH 2. 步骤 1 后或步骤 2 读取 TABR 以获得主 ROM 表的读取值 步骤 1 后读取 TABR 得到 EEPROM 值(当 EEPEN=E2h 时) 表读取的 ASM:指令 TABRL / TABRH 或寄存器 TABR 表读取为 C:使用寄存器 TABR DS-TM56M1511_31_S 20 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 1.4.1 ALU 和工作(W)寄存器 该 ALU 是 8 位宽的,能够进行加法、减法、移位和逻辑操作。在两个操作数指令中,通常有一 个操作数是 W 寄存器,它是一个用于 ALU 操作的 8 位不可寻址寄存器。另一个操作数或者是文 件寄存器,或者是直接常数。在单个操作数指令中,操作数是 W 寄存器或文件寄存器。根据所 执行的指令,ALU 可能会影响状态寄存器中的携带(C)、数字携带(DC)和零(Z)标志的值。C 和 DC 标志分别作为减法借位和数字借位。 Note: 借位状态和借位值相反 半借位状态和半借位值相反 1.4.2 状态寄存器 (03H/83H/103H/183H) 此寄存器包含 ALU 的算术状态和重置状态。状态寄存器可以是任何指令的目的地,就像任何其 他寄存器一样。如果状态寄存器是影响 Z、DC 或 C 位的指令的目的地,那么对这三个位的写入 将被禁用。根据设备逻辑设置或清除这些位。因此,建议只使用 BCX、BSX 和 MOVWX 指令来 更改状态寄存器,因为这些指令不会影响这些位。 Bit 7 0 R/W STATUS Reset Value R/W Bit 7 6:5 4 3 2 1 Bit 6 0 R/W Bit 5 0 R/W Bit 4 0 R Bit 3 0 R Bit 2 0 R/W Bit 1 0 R/W Bit 0 0 R/W 描述 IRP: 寄存器位于 Bank 的 选择位 (用于间接寻址) 0 = Bank 0,1 (00h - FFh) 1 = Bank 2,3 (100h - 1FFh) RP1:RP0: 寄存器位于 Bank 的选择位 (用于直接寻址) 00 = Bank 0 (00h - 7Fh) 01 = Bank 1 (80h - FFh) 10 = Bank 2 (100h - 17Fh) 11 = Bank 3 (180h - 1FFh) 每个 bank 为 128 字节 TO: 超时标志 0:上电复位,LVR 复位或 CLRWDT / SLEEP 指令后 1: WDT 超时 PD: 掉电标志 0:上电复位,LVR 复位或 CLRWDT 指令后 1:执行 SLEEP 指令后 Z::零标志 0:逻辑运算的结果不为零 1:逻辑运算的结果为零 DC:十进制进位标志或/借位标志 ADD 指令 SUB 指令 0:没进位 0:低字节有借位 1:低字节有进位 1: 没借位 C:进位标志或/借位标志 0 ADD 指令 SUB 指令 0: MSB 有借位 1: 没借位 0:没进位 1:MSB 有进位 DS-TM56M1511_31_S 21 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 ◇范例:将立即数据写入状态寄存器 STATUS 寄存器 MOVLW MOVWX 00H STATUS ; 清除STATUS寄存器 ◇ 范例:位寻址置位和清除 STATUS 寄存器 BSX BCX STATUS, 0 STATUS, 0 ; 设置C=1 ; 清除C=0 ◇ 范例: 通过 BTXSS 指令确定 C 标志 BTXSS GOTO GOTO DS-TM56M1511_31_S STATUS, 0 LABEL_1 LABEL_2 ; 检查进位标志 ; 如果C=0,跳转到label_1 ; 如果C=1,跳转到label_2 22 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 2. 复位 该器件可以通过四种方式进行复位。 - 上电复位 (POR) - 低电压复位 (LVR) - 外部引脚复位 (XRST) - 看门狗复位 (WDTR) 复位可能由上电复位(POR)、外部引脚复位(XRST)、看门狗定时器复位(WDTR)或低电 压复位(LVR)引起。CFGWH 控制复位功能。复置后,SFR 恢复到其默认值,程序计数器(PC) 被清除,系统从复置向量 000H 开始运行。状态寄存器(状态)的 TO 标志指示系统看门狗计时 器重位状态。 2.1 上电复位 (POR) 在上电重置后,所有系统和外围控制寄存器将设置为默认硬件重置值。 2.2 低电压复位(LVR) 低电压复位的功能是在电源电压低于阈值水平时进行静态复位。可以选择 16 个阈值级别。LVR 的操作模式由 CFGWH 寄存器定义。请参见下面的 LVR 表。用户还必须考虑工作频率的最低工 作电压。 CFGWH.11~8 LVR 阈值 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 低压复位 2.05V 低压复位 2.20V 低压复位 2.30V 低压复位 2.45V 低压复位 2.60V 低压复位 2.75V 低压复位 2.90V 低压复位 3.00V 低压复位 3.15V 低压复位 3.30V 低压复位 3.45V 低压复位 3.60V 低压复位 3.70V 低压复位 3.85V 低压复位 4.00V 低压复位 4.15V 不同的 FSYS 有不同的最低工作电压,参考直流特性的工作电压,如果电流系统电压低于最小工 作电压,选择低于 LVR,则系统可能进入死区并发生错误。 DS-TM56M1511_31_S 23 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 2.3 外部引脚复位 (XRST) 外部引脚复位可以通过 CFGWH 寄存器禁止或使能。 它至少需要保持 2 个 SIRC 时钟周期才能被 芯片看到。 XRST 还将所有控制寄存器恢复为其默认复位值。 TO / PD 标志不受这些复位的影响。 外部复位引脚为低电平有效。 复位引脚为高电平时,系统正在运行。 复位引脚接收低电压,系 统复位。 外部复位可以在上电期间使系统复位,良好的外部复位电路可以保护系统以避免在异常 电源条件下工作。 VCC 1uF VSS 0.1uF nRESET MCU 0.1uF 2.4 看门狗定时器复位 (WDTR) 可以通过 CFGWH 寄存器禁用或启用 WDT 重置。设置 WDTPSC(81h.3~2),以定义 WDT 复位 发生的时间范围。WDT 复位计数器可以通过设备复位或 CLRWDT 指令进行清除。WDT 重置还 可以将所有控制寄存器设置为其默认值。 WDT 在不同模式下的行为如下表所示。 模式 Normal Mode 空闲/停止模式 (睡眠) CFGWH[13:12] 看门狗 定时 器 WDTE[1] WDTE[0] 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 停止 停止 运行 运行 停止 停止 停止 运行 看门狗清除由 CLRWDT 指令控制。 ◇ 例子:通过 CLRWDT 指令清除看门狗计时器 MAIN: … CLRWDT … LGOTO ; 执行程序。 ; 执行CLRWDT指令。 MAIN ◇ 例子: Setup WDT 时间 MOVLW DS-TM56M1511_31_S 00000111b 24 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 MOVWX … 03h STATUS R/W Reset 03h.4 81h OPTION R/W Reset 81h.3~2 Bit 7 IRP R/W 0 设置WDT 时间输出=200 ms @4V OPTION Bit 6 RP1 R/W 0 Bit 5 RP0 R/W 0 Bit 4 TO R 0 Bit 3 PD R 0 Bit 2 Z R/W 0 Bit 1 DC R/W 0 Bit 0 C R/W 0 TO: WDT 超时标志 0: 重新开机后,或CLRWDT /睡眠 指令后 1: 发生WDT超时 Bit 7 Bit 6 Bit 5 HWAUTO INT0EDG INT1EDG R/W R/W R/W 0 0 0 Bit 4 - WDTPSC: WDT 周期 00: 100 ms 01: 200 ms 10: 800 ms 11: 1600 ms DS-TM56M1511_31_S 25 Bit 3 Bit 2 WDTPSC R/W 1 1 Bit 1 Bit 0 WKTPSC R/W R/W 1 1 @VCC=4V Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 3. 时钟电路和工作模式 3.1 系统时钟 该设备采用双时钟系统进行设计。时钟源有两种,SIRC(慢速内部 RC)时钟和 FIRC(快速内部 RC)时钟。每个时钟源都可以作为一个系统时钟(Fsys)应用于 CPU 核心。 当用户发出睡眠命令时,系统将进入空闲模式或停止模式。当系统根本不使用 SIRC 振荡器时, 这是目前最省电的方式,我们称之为停止模式。请参见下图。 SIRC oscillator WKTCLK WKTIE (0Bh.3) WDTE.1 (CFGWH.13) WDTCLK WDTE.0 (CFGWH.12) WDTEN SLEEP Instruction SLEEP Instructon SLEEP Instructon 0 SLOWSTP (0Fh.4) Divide 1/2/4/8 2 FIRC oscillator 1 FIRCEN CPUPSC (0Fh.1~0) PWMCKS.1 (91h.5) FASTSTP (0Fh.3) Fsys CPUCKS (0Fh.2) SLEEP Instruction Fsys Fsys FIRC FIRCx2 00 01 10 11 PWMCLK 2 PWMCKS (91h.5~4) Clock Scheme Block Diagram DS-TM56M1511_31_S 26 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 CPU 重置后,设备以 90 KHz SIRC 的慢速模式运行。用户应选择合适的时钟频率。较高的 VCC 值允许芯片在较高的系统时钟频率下运行。 CLKCTL(0Fh)SFR 控制系统时钟的运行。硬件将自动防止此寄存器的不规范设置。建议用户 逐位地编写这个 SFR,并且不要同时设置 FASTSTP=1 和 CPUCKS=1。 FIRC(内部 RC 快时钟)的频率可以通过 IRCF (10Fh) 进行调整。当 IRCF=00h 时,频率最低。 当 IRCF=7Fh 时,频率最高。因为每个 IC 可能具有不同的 IRCF 默认值,所以我们可以在上电后 以确保上电复位后 FIRC=16MHz 的频率。 快速模式: 在这种模式下,将使用 FIRC 或 FXT 作为 CPU 时钟 (Fsys) 来执行程序。Timer0,Timer1 块由快 时钟驱动。PWM0 块可以通过设置 PWMCKS (91h.5~4)选择 Fsys、FIRC (16 MHz) 或 FIRC*2 (32 MHz) 来驱动。 慢速模式: 开机或复位后,系统时钟(Fsys)默认情况下使用慢时钟,用户可以停止快速时钟(通过 FASTSTP=1,节省电)或运行(通过 FASTSTP=0)。除了 PWM 模块可以选择其他时钟源外, 所有外围模块的定时器源(定时器 0、定时器 1 等)的时钟源。此时将使用慢速时钟。 空闲/停止模式: 在用户执行休眠指令后,设备将关闭系统时钟。如果 SIRC 振荡器仍在运行,则称为空闲模式, 如果 SIRC 振荡器停止,则称为停止模式。 SIRC 振荡器用于以下项目: 1. WKT (controlled by WKTIE) 2. WDT (controlled by WDTE) 3. 系统时钟 (Fsys) 当上述项目全部停止,而慢速=1 时,SIRC 振荡器将停止,此时该设备是最节能的,称为停止模 式。 DS-TM56M1511_31_S 27 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 3.2 双系统时钟模式转换 该器件运行在以下四种模式之一:快速模式,慢速模式,空闲模式和停止模式。 SLOWSTP = 1 WKTIE = 0 WDTE=0~2 CPUCKS = 1 FASTSTP = 0 (SLOWSTP=1 & WKTIE=0) & SLEEP )& =0 E I KT W P EE L S 1& P= T S W up O ke L a S ( W RESET STOP Wakeup CPUCKS = 1 FASTSTP = 0 CPUCKS = 0 FAST SLOW ( SL OW ST P= 0| W W ak KT eu p IE =1 ) & (SLOWSTP=0 | WKTIE=1) & SLEEP SL EE P IDLE Wakeup SLOWSTP = 0 or WKTIE = 1 or WDTE=3 CPUCKS = 0 FASTSTP = 0/1 Note: - SLEEP denotes SLEEP instruction - Wakeup denotes wake-up events, include INT2~0, Pin wake up and WKT interrupt. - SLOWSTP (0Fh.4), FASTSTP (0Fh.3), CPUCKS (0Fh.2), WKTIE (0Bh.3) - CPU will not enter STOP mode if WDTE (CFGWH.13~12) = 3 CPU 工作框图 CPU 模式和 时钟菜单: FIRC 震荡 SIRC 震荡 Fsys/ TM0/TM1 WKT WDT 唤醒事件 FAST 运行 运行 运行 运行 运行 - SLOW Set by FASTSTP 运行 运行 运行 运行 - IDLE 停止 运行 停止 STOP 停止 停止 停止 Set by WKTIE 停止 Set by WDTE 停止 模式 DS-TM56M1511_31_S 28 WKT/IO IO Rev 0.90, 2023/03/01 TM56M1511/31 数据手册  快速模式切换至慢速模式 当 FAST 模式切换到慢速模式时,建议按顺序执行以下步骤: (1) 切换到慢时钟 (CPUCKS=0) (2) 停止快速时钟(FASTSTP=1) ◇ 示例:将快速模式切换到慢速模式 BCX BSX CPUCKS FASTSTP ; Fsys=慢时钟 ; 停止快时钟  慢速模式切换到快速模式 SLOW 模式可启用 CPUCKS=0。当 SLOW 模式切换到 FAST 模式时,建议按顺序执行以下步骤: (1) 使能 Fast-clock (FASTSTP=0) (2) 切换到快时钟 (CPUCKS=1) ◇ 示例:将慢速模式切换到 FAST 模式(快速时钟停止) BCX NOP BSX FASTSTP ; 启用快速时钟 CPUCKS ; Fsys=快速时钟  IDLE/STOP 模式设置 IDLE 模式可以按顺序设置进行配置: (1) 启用 WKT (WKTIE=1) (2) 执行睡眠指令 空闲模式可以被外部中断、引脚唤醒或 WKT 中断唤醒。 ◇ 示例:将 FAST/SLOW 模式切换到空闲模式 BSX SLEEP DS-TM56M1511_31_S WKTIE ; 启用WKT计数 ;进入IDLE模式 29 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册  停止模式设置 停止模式可以通过以下设置按顺序进行配置: (1) 停止慢时钟 (SLOWSTP=1) (2) 停止 WKT (WKTIE=0) (3) 执行睡眠指令 停止模式只能通过外部引脚中断来唤醒. 备注:当 WDTE=11b 时,CPU 无法进入停止模式 ◇ 示例:将快速/慢速模式切换到停止模式 BSX BCX SLEEP 0Bh INTIE R/W Reset 0Bh.3 0Fh CLKCTL R/W Reset 0Fh.4 0Fh.3 0Fh.2 0Fh.1~0 Bit 7 - SLOWSTP WKTIE Bit 6 - Bit 5 TM1IE R/W 0 ; 在执行睡眠指令后禁用慢时钟 ;禁用WKT计数 ; 进入停止模式. Bit 4 TM0IE R/W 0 Bit 3 WKTIE R/W 0 Bit 2 INT2IE R/W 0 Bit 1 INT1IE R/W 0 Bit 0 INT0IE R/W 0 WKTIE: 唤醒计时器中断启用和唤醒计时器启用 0: 关闭 1: 使能够 Bit 7 – – – Bit 6 – – – Bit 5 – – – Bit 4 Bit 3 SLOWSTP FASTSTP R/W R/W 0 1 Bit 2 CPUCKS R/W 0 Bit 1 Bit 0 CPUPSC R/W 1 1 SLOWSTP: 在 SLEEP 指令后停止慢时钟 0: 慢时钟在 SLEEP 指令后持续运行 1: 慢时钟在 SLEEP 指令后停止运行 FASTSTP: 停止快时钟 0: 快时钟运行 1: 快时钟停止 CPUCKS: 系统时钟源选择 0: 慢时钟 1: 快时钟 CPUPSC: 系统时钟源预分频器。系统时钟源 00: 除以 8 01: 除以 4 10: 除以 2 11: 除以 1 DS-TM56M1511_31_S 30 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 3.3 系统时钟振荡器 在内部快速 RC (FIRC) 模式下,片上振荡器产生 16 MHz 的系统时钟。由于电源噪声会降低内部 时钟振荡器的性能,因此将电源旁路电容器 1 uF 和 0.1 uF 放置在靠近 VCC/VSS 引脚,可以提高 时钟和整个系统的稳定性。 VCC 0.1uF 1uF VSS Internal RC Mode DS-TM56M1511_31_S 31 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 4. 中断 TM56M1511 有 1 级、1 个向量和 9 个中断源。每个中断源都有它自己的使能控制位。无论其使能 控制位是 0 还是 1,中断事件都将设置其各自的挂起标志。 如果相应的中断启用位(INTIE。5~0,INTIE1.2~0)已经设置好,它将触发 CPU 来服务中断。CPU 在当前执行的指令周期结束时接受中断。同时,向 CPU 插入“LCALL 004“指令,并设置 i-flag 以防止递归中断嵌套。 i-flag 在执行 “RETI” 指令之后被清除。也就是说,在中断服务未完成之前,主程序中至少有一 条指令被执行。中断事件是电平触发的。F/W 在服务中断程序时必须清除中断事件寄存器。 Interrupt Source Interrupt Pending i-Flag Interrupt Vector Interrupt Enable DS-TM56M1511_31_S 32 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 范例:使用上升沿触发来设置 INT1 (PA1) 中断请求 ORG LGOTO 000h START ; 复位向量 ; 跳转到用户程序地址 ORG LGOTO 004h INT ; 所有中断的向量 ; 如果INT1(PA1)输入出现上升沿 ORG 005h MOVLW MOVWX 0000xxxxb PAMOD10 START: ; 选择INT引脚模式作为模式0 ; 开漏输出低电平或上拉输入 MOVLW MOVWX xxxxxx1xb PAD MOVLW MOVWX xx1xxxxxb OPTION ; 将INT1中断触发设置为上升沿 MOVLW MOVWX 11111101b INTIF ; 清除INT1中断请求标志 MOVLW MOVWX 00000010b INTIE ; 使能INT1中断 … LGOTO MAIN MOVWX 20h ; 将W数据存储到FRAM 20H MOVXW MOVWX STATUS 21h ; 获取STATUS数据 ; 将STATUS数据存储到FRAM 21H BTXSC LCALL INT1IF INT1_SUBROUTINE ; 检测INT1IF位 ; 如果 INT1IF = 1,跳转到 INT1 子程序 ; 释放INT1,变为施密特触发器 ; 输入带上拉电阻 MAIN: INT: … MOVXW MOVWX MOVXW RETI ; INT1中断服务程序 21h STATUS ; 清除INT1中断请求标志 20h ; 从中断返回 INT1_SUBROUTINE: … DS-TM56M1511_31_S 33 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 MOVLW MOVWX RET 0Bh INTIE R/W Reset 0Bh.5 0Bh.4 0Bh.3 0Bh.2 0Bh.1 0Bh.0 0Ch INTIF R/W Reset 0Ch.5 0Ch.4 0Ch.3 0Ch.2 0Ch.1 0Ch.0 Bit 7 - 11111101b INTIF Bit 6 - Bit 5 TM1IE R/W 0 ; 清除 INT1 中断请求标志 Bit 4 TM0IE R/W 0 Bit 3 WKTIE R/W 0 Bit 2 INT2IE R/W 0 Bit 1 INT1IE R/W 0 Bit 0 INT0IE R/W 0 TM1IE: Timer1 中断使能 0: 关闭 1: 使能 TM0IE: Timer0 中断使能 0: 关闭 1: 使能 WKTIE: WKT中断使能 0: 关闭 1: 使能 INT2IE: INT2 中断使能 0: 关闭 1: 使能 INT1IE: INT1 中断使能 0: 关闭 1: 使能 INT0IE: INT0 中断使能 0: 关闭 1: 使能 Bit 7 - Bit 6 - Bit 5 TM1IF R/W 0 Bit 4 TM0IF R/W 0 Bit 3 WKTIF R/W 0 Bit 2 INT2IF R/W 0 Bit 1 INT1IF R/W 0 Bit 0 INT0IF R/W 0 TM1IF: Timer1中断事件挂起标志 Timer1溢出时由H/W置位,对此位写0将清除该标志 TM0IF: Timer0中断事件挂起标志 当Timer0溢出时由H/W置位,对此位写0将清除该标志 WKTIF: WKT中断事件挂起标志 当WKT超时时由H/W置位,对此位写0将清除该标志 INT2IF: INT2引脚下降沿中断挂起标志 INT2引脚发生下降沿时由H/W置位,对此位写0将清除该标志 INT1IF: INT1引脚下降沿/上升沿中断挂起标志 当INT1引脚发生下降/上升沿时由H/W置位,对此位写0将清除该标志 INT0IF: INT0引脚下降沿/上升沿中断事件挂起标志 当INT0引脚发生下降/上升沿时由H/W置位,对此位写0将清除该标志 DS-TM56M1511_31_S 34 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 0Dh INTIE1 R/W Reset 0Dh.2 0Dh.1 0Dh.0 0Eh INTIF1 R/W Reset 0Eh.2 0Eh.1 0Eh.0 Bit 7 – – – Bit 6 – – – Bit 5 – – – Bit 4 – – – Bit 3 – – – Bit 2 TKIE R/W 0 Bit 1 PWMIE R/W 0 Bit 0 LVDIE R/W 0 Bit 4 – – – Bit 3 – – – Bit 2 TKIF R/W 0 Bit 1 PWMIF R/W 0 Bit 0 LVDIF R/W 0 TKIE:允许按键中断 0:关闭 1:启用 PWMIE: PWM0~5中断启用 0:关闭 1:启用 LVDIE:使能LVD中断 0:关闭 1:启用 Bit 7 – – – Bit 6 – – – Bit 5 – – – TKIF:触键中断事件挂起标志 此位由H/W设置,在触摸键转换结束后,将0写入此位将清除此标志 PWMIF: PWM中断事件等待标志 该位在PWM周期计数器翻转后由H/W设置,将0写入该位将清除该标志 LVDIF: LVD中断事件等待标志 该位在LVDO=1后由H/W设置,将0写入该位将清除该标志 DS-TM56M1511_31_S 35 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 5. I/O 端口 5.1 PA0-PA4, PA7 每个 IO 引脚都有 4 位作为模式设置。模式设置包括以下功能:开漏输出、CMOS 输出、上拉电 阻、下拉电阻、引脚改变唤醒、PWMO 等。 这些引脚可以在不同的模式下操作。 PA7 不提供下拉电阻、1/2 偏置、PWMO 和 CTKCKO 等功能,所以 PA7 的 PIN 模式设置请不要 选择 xx11b 或 x100b。 PAMOD 0000b 0001b 0010b 0011b 0100b 0101b 0110b 0111b 1000b 1001b 1010b 1011b 1100b 1101b 1110b 1111b Pin Function 引脚状态 0 开漏 低驱动 - - - - 1 输入 上拉 Y - Y - 低驱动 - - - - 高组 - - Y - 低驱动 - - - - 高驱动 - - - - 0 1 0 1 开漏 CMOS 输出 上拉电阻 下拉电阻 数字输 引脚改变 入 唤醒 PAD X Tenx 保留 高组 - - - - 0 开漏 低驱动 - - - - 1 Input 下拉 - Y Y - 低驱动 - - - - 高组 - - Y - 低驱动 - - - - 高驱动 - - - - 0 1 0 1 开漏 CMOS 输出 X PWMO的CMOS输出 - - - - - 0 Open Drain 低驱动 - - - - 1 Input 上拉 Y - Y Y 低驱动 - - - - 高组 - - Y Y 低驱动 - - - - 高驱动 - - - - 0 1 0 1 开漏 CMOS 输出 X PWMO的CMOS输出 - - - - - 0 开漏 低驱动 - - - - 1 Input 0 1 0 1 X 开漏 CMOS 输出 模拟输出 1/2偏压(1/2 下拉 - Y Y Y 低驱动 高组 低驱动 高驱动 - - Y - Y - - - - - - VCC) 通用 I/O Pin 功能表 DS-TM56M1511_31_S 36 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 PAMOD 引脚名称 0111b (数字输出) PWM5O PWM1O PWM4O PWM2O PWM0O PA0 PA1 PA2 PA3 PA4 PA7 1011b (数字输出) CTKCKO CTKCKO CTKCKO CTKCKO 1111b (模拟输出) 1/2 bias 1/2 bias 1/2 bias 1/2 bias 1/2 bias xx10b & PADx=1 TK5 (CTK) TK1 (CTK) TK4 (CTK) xx10b & PADx=0 TK5 (STK) TK1 (STK) TK4 (STK) xx10b & PADx=0 CLD TK2 (CTK) TK2 (STK) Read/write Pull up Output control Pin Push-pull, Open-drain or disabled Pull down Write Output data registers 引脚表的特殊功能 Alternate function output Digital input Read Analog input 一般引脚结构(不包括 PA7) DS-TM56M1511_31_S 37 Rev 0.90, 2023/03/01 Read/write Pull up Write Output data registers TM56M1511/31 数据手册 Output control Push-pull, Open-drain or disabled Pin Alternate function output Digital input Read PA7 引脚结构 DS-TM56M1511_31_S 38 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 85h PAMOD10 R/W Reset Bit 7 86h PAMOD32 R/W Reset Bit 7 87h PAMOD54 R/W Reset Bit 7 88h PAMOD76 R/W Reset Bit 7 88h.7~4 87h.3~0 86h.7~4 86h.3~0 85h.7~4 85h.3~0 05h PAD R/W Reset 05h.7~0 0 0 0 0 Bit 6 Bit 5 PA1MOD R/W 0 0 Bit 4 Bit 3 Bit 2 Bit 1 PA0MOD R/W 0 0 Bit 0 1 0 Bit 6 Bit 5 PA3MOD R/W 0 0 Bit 4 Bit 3 Bit 2 Bit 1 PA2MOD R/W 0 0 Bit 0 1 0 Bit 6 Bit 5 PA5MOD R/W 0 0 Bit 4 Bit 3 Bit 2 Bit 1 PA4MOD R/W 0 0 Bit 0 1 0 Bit 6 Bit 5 PA7MOD R/W 0 0 Bit 4 Bit 3 Bit 2 Bit 1 PA6MOD R/W 0 0 Bit 0 0 0 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 1 1 1 1 PA7MOD ~ PA0MOD: PA7, PA4~PA0 引脚模式控制 0000: 开漏或数字输入带上拉 0001:开漏 0010: 推挽输出 0011: 模拟输入 0100: 开漏下拉 0101: 开漏 0110: 推挽 0111: 外设功能输出 1000: 开漏或数字输入带上拉和引脚改变唤醒 1001: 开漏或数字输入和引脚改变唤醒 1010: CMOS 推挽输出 1011: CTKCKO 输出 1100: 开漏或数字输入带下拉和引脚改变唤醒 1101: 开漏或数字输入和引脚改变唤醒 1110: 推挽 1111:1/2 分压 Bit 7 Bit 6 Bit 5 Bit 4 PAD R/W 1 1 1 1 PAD: PA7, PA4~PA0 数据 DS-TM56M1511_31_S 39 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6. 外围功能模块 6.1 唤醒定时器(WKT) WKT 是一个间隔计时器,间隔长度可以通过 WKTPSC(81h.1~0)进行调整,WKT 中断标志 (WKTIF)。WKT 定时器由 WKTIE=0 清除/停止。由于 WKT 具有功耗,所以 WKTIE=0 是进入停 止模式需要配置。 WKTIE (0bh.3) CLR SIRC WKT Timer WKTIF (0ch.3) 2 WKTPSC (81h.1~0) WKT Interrupt WKTIE (0bh.3) WKT 框图 ◇ 示例:设置 WKT 周期和中断功能 MOVLW MOVWX MOVLW MOVWX BSX DS-TM56M1511_31_S 00000110b OPTION 11110111b INTIF WKTIE ; 选择WKT周期=50 ms @4V ; 通过使用字节操作来清除WKT中断标志 ; 不要使用位操作“BCX WKTIF”来清除 ; 启用WKT中断功能 40 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 0Ch INTIF R/W Reset 0Ch.3 0Bh INTIE R/W Reset 0Bh.3 81h OPTION R/W Reset 81h.1~0 Bit 7 - Bit 6 - Bit 5 TM1IF R/W 0 Bit 4 TM0IF R/W 0 Bit 3 WKTIF R/W 0 Bit 2 INT2IF R/W 0 Bit 1 INT1IF R/W 0 Bit 0 INT0IF R/W 0 Bit 3 WKTIE R/W 0 Bit 2 INT2IE R/W 0 Bit 1 INT1IE R/W 0 Bit 0 INT0IE R/W 0 WKTIF: WKT中断事件挂起标志 WKT 超时时由H/W置位,对此位写0将清除该标志 Bit 7 - Bit 6 - Bit 5 TM1IE R/W 0 Bit 4 TM0IE R/W 0 WKTIE: WKT中断使能 0: 关闭 1: 使能 Bit 7 Bit 6 Bit 5 HWAUTO INT0EDG INT1EDG R/W R/W R/W 0 0 0 Bit 4 - WKTPSC: WKT 周期 00: 12 ms 01: 25 ms 10: 50 ms 11: 100 ms DS-TM56M1511_31_S 41 Bit 3 Bit 2 WDTPSC R/W R/W 1 1 Bit 1 Bit 0 WKTPSC R/W R/W 1 1 @ VCC=4V Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6.2 Timer0 TM0 (01h.7~0) 是一个 8 位宽的寄存器。和其他任何寄存器一样可以读取或写入。此外,Timer0 会周期性地增加自身并自动翻转一个新的“偏移值”(TM0RLD),同时它会根据预先调整的时钟 源进行翻转,该时钟源可以是 Fsys/2 或 TM0CKI (PA2) 上升/下降输入。Timer0 的增加速率由 “Timer0 预分频” (TM0PSC) 寄存器决定。当 Timer0 的计数翻转时,它总是产生 TM0IF (0Ch.4)。 如果 TM0IE (0Bh.4) 置位,它会产生 Timer0 中断。如果 TM0STP (11h.6) 位置位,Timer0 可以停 止计数。 DATA BUS 8 8 8-bit Timer0 Reload (TM0RLD 10h) Instruction Cycle (Fsys/2) TIMER MODE 8 0 Prescaler TM0CKI (PA2) 1 COUNTER MODE TM0EDG (11h.5) TM0CKS (11h.4) 8-bit TIMER0 (TM0 01h) EN 4 TM0STP TM0PSC (11h.6) (11h.3~0) TM0IF (0Ch.4) Timer0 Interrupt TM0IE (0Bh.4) Timer0 框图 DS-TM56M1511_31_S 42 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 下面的时序图描述了计时器 0 在纯计时器模式下工作。 当写入计时器 0 预调节器(TM0PSC)时,内部 8 位预调节器将被清除为 0,以便在第一次计时 器 0 计数时计数周期正确。TM0CLK 是在 TM0CLK 结束时导致计时器 0 增加 1 的内部信号。 TM0WR 也是内部信号,表示计时器 0 直接由指令写入,同时清除内部 8 位预压器。当计时器 0 从 FFh 计算到 TM0RLD 时,TM0IF(计时器 0 中断标志)将设置为 1,如果设置了 TM0IE(计时 器 0 中断启用),则生成中断。 Fsys Instruction Cycle Write TM0PSC TM0PSC [3:0] (11h.3~0) 3 PRESCALER 7 1 8 9 0 1 2 3 4 0 1 2 TM0CLK Write TM0RLD Write 0x57 to TM0RLD TM0RLD [7:0] (10h.7~0) 00 57 Write TM0 TM0 [7:0] (01h.7~0) TM0IF (0Ch.4) Write 0xFF to TIMER0 k-2 k-1 k k+1 FF 57 计时器 0 以计时器模式工作 (TM0CKS=0) DS-TM56M1511_31_S 43 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 TM0 中断时间值方程如下: ◇ 示例:设置计时器 0 在计时器模式下工作,如果 Fsys = 8 MHz ; 设置计时器0时钟源和分频器 MOVLW MOVWX 00000101b TM0CTL ; TM0CKS = 0,计时器0时钟源为指令周期(Fsys/2) ; TM0PSC = 0101b,除以32 ; 设置定时器0重新加载数据 MOVLW MOVWX 80h TM0RLD ; 设置计时器0,重新加载数据= 128 TM0STP TM0 ; 定时器0停止计数 ; 清除定时器0内容 11101111b INTIF TM0IE TM0STP ; 清除计时器0请求中断标志 ; 启用Timer0中断功能 ; 启用计时器0计数 ; 设置定时器0 BSX CLRX ; 启用计时器0和中断功能 MOVLW MOVWX BSX BCX 定时器 0 中断频率 = 定时器 0 时钟频率 / (256-TM1RLD) = (Fsys / 2 / TM0PSC) / (256-TM0RLD) = (128 KHz) / (256-128) = 1 KHz DS-TM56M1511_31_S 44 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 下图描述了 Timer0 在计数器模式下的工作。 如果 TM0CKS=1,则 Timer0 计数器的源时钟来自 TM0CKI 引脚。TM0CKI 信号通过指令周期 (Fsys/2) 进行同步,这意味着 TM0CKI 的高/低持续时间必须长于一个指令周期时间 (Fsys/2),以 确保同步器正确检测到每个 TM0CKI 的变化。 Fsys Instruction cycle > Instruction cycle TM0CKI pin > Instruction cycle narrow width, invalid rising edge > Instruction cycle TM0PSC [3:0] narrow width, invalid rising edge 0 TM0CLK TM0 [7:0] K K+2 K+1 K+3 计时器 0 在 TM0CKI(TM0EDG=0)、TM0CKS=1 的计数器模式下工作 ◇示例:设置 TM0 在计数器模式下工作,从 TM0CKI 针(PA2) ; Setup Timer0 clock source and divider MOVLW 00110000B MOVWX TM0CTL ; Setup Timer0 BSX CLRX TM0STP TM0 ; Enable Timer0 and read Timer0 counter BCX TM0STP … BSX TM0STP MOVXW TM0 DS-TM56M1511_31_S ; TM0EDG = 1,计数边为下降沿 ; TM0CKS = 1, 计时器0时钟为TM0CKI ; TM0PSC = 0000b,除以1 ; 定时器0停止计数 ; 清除定时器0内容 ; 启用计时器0计数 ; 定时器0停止计数 ; 定时器0停止计数 45 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 01h TM0 R/W Reset 01h.7~0 0Bh INTIE R/W Reset 0Bh.4 0Ch INTIF R/W Reset 0Ch.4 10h TM0RLD R/W Reset 10h 11h TM0CTL R/W Reset 11h.6 11h.5 11h.4 11h.3~0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TM0 R/W 0 0 0 0 0 0 0 0 Bit 5 TM1IE R/W 0 Bit 4 TM0IE R/W 0 Bit 3 WKTIE R/W 0 Bit 2 INT2IE R/W 0 Bit 1 INT1IE R/W 0 Bit 0 INT0IE R/W 0 Bit 5 TM1IF R/W 0 Bit 4 TM0IF R/W 0 Bit 3 WKTIF R/W 0 Bit 2 INT2IF R/W 0 Bit 1 INT1IF R/W 0 Bit 0 INT0IF R/W 0 Bit 2 Bit 1 Bit 0 0 0 0 TM0: Timer0内容 Bit 7 - Bit 6 - TM0IE: Timer0中断使能 0: 关闭 1: 使能 Bit 7 - Bit 6 - TM0IF: Timer0中断事件挂起标志 当Timer0溢出时由H/W置位,对此位写0将清除该标志 Bit 7 Bit 6 Bit 5 0 0 0 Bit 4 Bit 3 TM0RLD R/W 0 0 TM0RLD: Timer0重载数据 Bit 7 – – – Bit 6 TM0STP R/W 0 Bit 5 TM0EDG R/W 0 Bit 4 TM0CKS R/W 0 Bit 3 0 Bit 2 Bit 1 TM0PSC R/W 0 0 Bit 0 0 TM0STP: Timer0计数器停止 0:释放1:停止计数 TM0EDG: TM0CKI 引脚的 Timer0 预分频器计数沿 0: 上升沿 1: 下降沿 TM0CKS: Timer0 预分频器时钟源 0:Fsys/2 1: TM0CKI引脚(PA2 引脚) TM0PSC:Timer0 预分频器。 Timer0 时钟源(Fsys/2 或 TM0CKI)除以 0000: 1 0011: 8 0110: 64 0001: 2 0100: 16 0111: 128 0010: 4 0101: 32 1xxx: 256 DS-TM56M1511_31_S 46 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6.3 Timer1 TM1 (12h.7~0) 是一个 8 位宽的寄存器。和任何其他寄存器一样可以读取或写入。此外,Timer1 会 定 期 自 行 递 增 , 并 根 据 预 分 频 的 指 令 时 钟 (Fsys/2) 在 翻 转 时 自 动 重 载 新 的 “ 偏 移 值 ” (TM1RLD)。Timer1 的增加速率由 TM1PSC 寄存器选择。如果 TM1IE 位置 1,它将产生 Timer1 中断。如果 TM1STP 位置 1,可以停止 Timer1 的计数。 DATA BUS 8 8 8-bit Timer1 Reload (TM1RLD 13h) 8 8-bit TIMER1 (TM1 12h) EN Prescaler Instruction Cycle (Fsys/2) TM1IF (0Ch.5) Timer1 Interrupt 4 TM1STP TM1PSC (14h.6) (14h.3~0) TM1IE (0Bh.5) Timer1 框图 Fsys Instruction Cycle Write TM1PSC 3 TM1PSC[3:0] PRESCALER 7 1 8 9 0 1 2 3 4 0 1 2 TM1CLK Write TM1RLD Write 0x28 to TM0RLD TM1RLD[7:0] 00 28 Write TM1 TM1[7:0] Write 0xFF to TIMER1 k-2 k-1 k k+1 FF 28 TM1IF Timer1 定时器图 DS-TM56M1511_31_S 47 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 FF TIMER1 [7:0] K 00 TM1RLD [7:0] K TM1IF Soltware Clear Timer1 重新加载图 TM1 中断时间值方程如下: ◇ 示例:设置计时器 1 在计时器模式下工作,如果 Fsys = 8 MHz ; 设置计时器:1个时钟源和分频器 MOVLW MOVWX 00000101b TM1CTL ; 计时器1时钟源为指令周期(Fsys/2) ; TM1PSC = 0101b, 除以32 ; 设置定时器1重新加载数据 MOVLW MOVWX FFh TM0RLD ; 设置计时器1,重新加载数据= 255 BSX CLRX TM1STP TM1 ; 定时器1停止计数 ; 清除定时器1内容 11011111b INTIF TM1IE TM1STP ; 清除计时器1请求中断标志 ; 启用Timer1中断功能 ; 启用计时器1计数 ; 设置时间1 ; 启用定时器1和中断功能 MOVLW MOVWX BSX BCX 定时器 1 中断频率 = 定时器 1 时钟频率 / (256-TM1RLD) = (Fsys / 2 / TM0PSC) / (256-TM0RLD) = (128 KHz) / (256-128) = 1 KHz DS-TM56M1511_31_S 48 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 0Bh INTIE R/W Reset 0Bh.5 0Ch INTIF R/W Reset 0Ch.5 12h TM1 R/W Reset 12h 13h TM1RLD R/W Reset 13h.7~0 14h TM1CTL R/W Reset 14h.3~6 14h.3~0 Bit 7 - Bit 6 - Bit 5 TM1IE R/W 0 Bit 4 TM0IE R/W 0 Bit 3 WKTIE R/W 0 Bit 2 INT2IE R/W 0 Bit 1 INT1IE R/W 0 Bit 0 INT0IE R/W 0 Bit 5 TM1IF R/W 0 Bit 4 TM0IF R/W 0 Bit 3 WKTIF R/W 0 Bit 2 INT2IF R/W 0 Bit 1 INT1IF R/W 0 Bit 0 INT0IF R/W 0 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 Bit 2 Bit 1 Bit 0 0 0 0 TM1IE: Timer1中断使能 0: 关闭 1: 使能 Bit 7 - Bit 6 - TM1IF: Timer1中断事件挂起标志 当Timer1 溢出时由H/W置位,对此位写0将清除该标志 Bit 7 Bit 6 Bit 5 Bit 4 TM1 R/W 0 0 0 0 TM1: Timer1内容 Bit 7 Bit 6 Bit 5 0 0 0 Bit 4 Bit 3 TM1RLD R/W 0 0 TM1RLD: Timer1翻转时重新加载偏移值 Bit 7 – – – Bit 6 TM1STP R/W 0 Bit 5 – – – Bit 4 – – – Bit 3 0 Bit 2 Bit 1 TM1PSC R/W 0 0 Bit 0 0 TM1STP: Timer1 计数器停止 0: 计数器运行 1: 计数器停止 TM1PSC: Timer1 预分频器。 Timer1 时钟源 (Fsys/2) 除以 0000: 1 0011: 8 0110: 64 0001: 2 0100: 16 0111: 128 0010: 4 0101: 32 1xxx: 256 DS-TM56M1511_31_S 49 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6.4 PWM: 16 bits PWM 在这个芯片中有五个 pwm。所有的 PWM 都有独立的 16 位占空比控制寄存器,并共享一组 16 位 周期寄存器。PWM 可以在 PWM 时钟的基础上产生具有 65536 占空比分辨率的变化频率波形。 PWM 时钟可以选择 FIRC*2、FIRC 或 FSYS 作为其时钟源。 16 位 PWMPRD、PWM0D 寄存器都具有低字节和高字节结构。高字节可以直接访问,但低字节 只能通过内部的 8 位缓冲区访问,必须以特定的方式对这些寄存器对进行读取或写。需要注意的 一点是,8 位缓冲区及其相关低字节的数据传输只有在执行相应高字节的写或读操作时才会发生。 简单地说,先写低字节,然后写高字节;先读高字节,然后读低字节。 如果清除了 PWMEN,则将清除并停止 PWM0~5,否则 PWM0~5 将继续运行。PWM0 的结构如 下所示。PWM0 的占空比可以通过写入 PWM0DH 和 PWM0DL 来更改。当 16 位基计数器与 16 位 PWM0 占空比寄存器 {PWM0DH,PWM0DL} 匹配时,PWM0 输出信号将重置到低电平。 PWM0 周期可以通过将周期值写入 PWMPRDH 和 PWMPRDL 寄存器来设置。在写入 PWM0DH 或 PWMPRDH 寄存器后,H/W 将立即更新 PWM 周期。PWM0~5 共享一个中断标志,并在该期 间结束时生成一个中断标志。 DATA BUS 8 8 8 8 8 TEMP (8-bit) PWMPRDH PWMPRDL (92h.7~0) (93h.7~0) PWM0DH (94h.7~0) Current PWM PERIOD 16 8 8 8 PWM0DL (95h.7~0) Current PWM DUTY 16 2.3V@25℃) DS-TM56M1511_31_S 51 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 92h PWMPRDH R/W Reset 92h.7~0 93h PWMPRDL R/W Reset 93h.7~0 94h PWM0DH R/W Reset 94h.7~0 95h PWM0DL R/W Reset 95h.7~0 96h PWM1DH R/W Reset 96h.7~0 97h PWM1DL R/W Reset 97h.7~0 Bit 7 Bit 6 Bit 5 1 1 1 Bit 4 Bit 3 PWMPRDH R/W 1 1 Bit 2 Bit 1 Bit 0 1 1 1 Bit 4 Bit 3 PWMPRDL R/W 1 1 Bit 2 Bit 1 Bit 0 1 1 1 Bit 4 Bit 3 PWM0DH R/W 0 0 Bit 2 Bit 1 Bit 0 0 0 0 Bit 4 Bit 3 PWM0DL R/W 0 0 Bit 2 Bit 1 Bit 0 0 0 0 Bit 4 Bit 3 PWM1DH R/W 0 0 Bit 2 Bit 1 Bit 0 0 0 0 Bit 4 Bit 3 PWM1DL R/W 0 0 Bit 2 Bit 1 Bit 0 0 0 0 PWMPRDH: PWM 周期高字节 写顺序:PWMPRDL 然后 PWMPRDH 读顺序:PWMPRDH 然后 PWMPRDL Bit 7 Bit 6 Bit 5 1 1 1 PWMPRDL: PWM 周期低字节 写顺序:PWMPRDL 然后 PWMPRDH 读顺序:PWMPRDH 然后 PWMPRDL Bit 7 Bit 6 Bit 5 1 0 0 PWM0DH: PWM0 占空高字节 写顺序:PWMxDL 先 PWMxDH 读顺序:PWMxDH 后 PWMxDL Bit 7 Bit 6 Bit 5 0 0 0 PWM0DL:PWM0 占空低字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL Bit 7 Bit 6 Bit 5 1 0 0 PWM1DH: PWM1 占空高字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL Bit 7 Bit 6 Bit 5 0 0 0 PWM1DL: PWM1 占空低字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL DS-TM56M1511_31_S 52 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 98h PWM2DH R/W Reset 98h.7~0 99h PWM2DL R/W Reset 99h.7~0 9Ch PWM4DH R/W Reset 9Ch.7~0 9Dh PWM4DL R/W Reset 9Dh.7~0 9Eh PWM5DH R/W Reset 9Eh.7~0 9Fh PWM5DL R/W Reset 9Fh.7~0 Bit 7 Bit 6 Bit 5 R/W 1 R/W 0 R/W 0 Bit 4 Bit 3 PWM2DH R/W R/W 0 0 Bit 2 Bit 1 Bit 0 R/W 0 R/W 0 R/W 0 Bit 4 Bit 3 PWM2DL R/W R/W 0 0 Bit 2 Bit 1 Bit 0 R/W 0 R/W 0 R/W 0 Bit 4 Bit 3 PWM4DH R/W R/W 0 0 Bit 2 Bit 1 Bit 0 R/W 0 R/W 0 R/W 0 Bit 4 Bit 3 PWM4DL R/W R/W 0 0 Bit 2 Bit 1 Bit 0 R/W 0 R/W 0 R/W 0 Bit 4 Bit 3 PWM5DH R/W R/W 0 0 Bit 2 Bit 1 Bit 0 R/W 0 R/W 0 R/W 0 Bit 4 Bit 3 PWM5DL R/W R/W 0 0 Bit 2 Bit 1 Bit 0 R/W 0 R/W 0 R/W 0 PWM2DH: PWM2 占空高字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL Bit 7 Bit 6 Bit 5 R/W 0 R/W 0 R/W 0 PWM2DL: PWM2 占空低字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL Bit 7 Bit 6 Bit 5 R/W 1 R/W 0 R/W 0 PWM4DH: PWM4 占空高字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL Bit 7 Bit 6 Bit 5 R/W 0 R/W 0 R/W 0 PWM4DL: PWM4 占空低字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL Bit 7 Bit 6 Bit 5 R/W 1 R/W 0 R/W 0 PWM5DH: PWM5 占空高字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL Bit 7 Bit 6 Bit 5 R/W 0 R/W 0 R/W 0 PWM5DL: PWM5 占空低字节 写顺序:PWMxDL 然后 PWMxDH 读顺序:PWMxDH 然后 PWMxDL DS-TM56M1511_31_S 53 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6.5 触摸键 (仅限 M1531 ) 该设备支持 4 个通道的触摸按键检测。触摸键提供了两种简单、简单可靠的方法来实现手指触摸 检测。一个结构是 STK,另一个结构是 CTK。在大多数应用程序中,它不需要任何在 STK 模式 下的外部组件。即使在 CTK 模式下,它也只需要一个外部电容组件(CLD)。 TK 扫描期间的针脚状态由硬件自动切换,而 TK 空闲期间的针脚状态需要由用户设置。强烈建 议按下表所示的方式设置引脚。详情请参见第 5 节。 通过这些引脚设置,可以减少 TK 键的相互影响,并可以加速外部电容 CLD 的放电速度。 引脚模式设置 Pin Name PA0 PA1 PA2 PA3 PA4 PA7 PAMOD=1011b (数字输出) CTKCKO CTKCKO CTKCKO PAMOD=xx10b & PAD=1 TK5 (CTK) TK1 (CTK) TK4 (CTK) PAMOD=xx10b & PAD=0 TK5 (STK) TK1 (STK) TK4 (STK) PAMOD=xx10b & PAD=0 CLD CTKCKO TK2 (CTK) TK2 (STK) 6.5.1 STK 设置 STKPD=0,您可以选择放松振动结构,触摸按钮。在 STK 模式下,有两个振荡器:参考时 钟(RCK)和触摸时钟(TCK)。它们分别连接到参考计数器和数据计数器。RCK 的频率可以 通过设置 STKREFC 来调整,参考计数器用于控制转换时间。所需的 RCK 振荡周期数(0 到 4096)可以通过设置从触摸键转换开始到结束的 TKTMR 来确定。转换结束后,用户可以从数据 计数器获得 TKDATA(TKDH,TKDL)。TKDATA 会受到手指触摸的影响。 当手指触摸减慢 TCK 时,TKDATA 的值小于没有手指触摸的值。根据 TKDATA 的不同,用户 可以检查它是否被触摸过。另一方面,设置 STKFSEL 可以调整 TK 系统的整体频率(包括 TCK 和 RCK)。STKREFC 只控制 RCK 的频率。设置 TKFJMP=1 时,系统将自动随机改变 TCK 频率。 在触摸按键单元内有一个内置的参考电容器来模拟按键的行为。设置 TKCHS= 7 或 15 时,系统 将切换到内置的参考电容器,并开始触摸按钮进行转换,得到这个参考电容器的 TKDATA。因 为内部电容从来不受水或手机的影响,所以它对比较环境背景噪声很有用。触摸键时钟频率可以 通过内部硬件通过设置 TKFJMP=1 来自动调整,这可以有效地提高触摸键的高干扰特性。 DS-TM56M1511_31_S 54 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 STKPD = 0 (STK mode) (1Dh.7) TKIF (0Eh.2) TKCHS (1Fh.3~0) STKPD (1Dh.7) Data Counter 4 TKEOC (1Fh.5) 12 TK1 Touch Clock (TCK) TK2 TK4 (0Dh.2) TKIE Touch Key OSC TK5 Reference Clock (RCK) TK7 STKPD (1Dh.7) 2 3 Internal Reference TKFJMP (1Eh.7) Capacitor HSENSE (1Eh.3) JMPVAL (1Eh.6~4) TKDH (1Bh.3~0) TKDL (1Ah.7~0) Reference Counter TKSOC (1Fh.6) STKREFC (1Eh.1~0) 12 {TKTMRH, TKTMRL} (1Dh.3~0), (1Ch.7~0) STKFSEL (1Eh.2) TK end of conversion Interrupt 开始扫描时,用户先设置 STKPD=0,再设置 TKSOC 为 1,开始触摸按键转换。 TKEOC = 0 表 示转换正在进行中。 TKEOC = 1 表示转换完成,触摸按键计数结果存入 12 位 TK 数据计数器 TKDH 和 TKDL。 TKSOC 位可以在转换结束时 TKEOC=1 后自动清零。 首次使能触摸按键功能时(STKPD = 0),TKIF 将被激活,用户应在 STKPD = 0 后清除 TKIF。 例: BCX MOVLW MOVWX STKPD 09H TKCTL MOVLW MOVWX MOVLW MOVWX MOVLW MOVWX MOVLW MOVWX MOVLW IORWX BSX 04H TKMFS 00H TKTMRL A1H TKCTL2 11111011B INTIF1 00000100B INTIE1 TKSOC DS-TM56M1511_31_S ; STKPD=0 (设置STK) ; HSENSE=1, STKREFC=1 ; ; TKTMR=400h ; TKTMR=400h ; 设置TK1 ; 清除TKIF ; 设置TKIE 55 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 01Ah TKDL R/W Reset 1Ah.7 01Bh TKDH R/W Reset 1Bh.7 01Ch TKTMRL R/W Reset 1Ch.7 01Dh TKMFS R/W Reset 1Dh.7 1Dh.3~0 01Eh TKCTL R/W Reset 1Eh.7 1Eh.6~4 1Eh.3 1Eh.2 1Eh.1~0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 1 Bit 4 – – – Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 Bit 2 Bit 1 Bit 0 1 1 1 TKDL R 1 1 1 TKDL: 触控键计数器数据 7~0 Bit 7 – – – Bit 6 – – – Bit 5 – – – TKDH R 1 TKDH: 触控键计数器数据11~8 Bit 7 Bit 6 Bit 5 1 1 1 Bit 4 Bit 3 TKTMRL R/W 1 1 TKTMR: STK扫描长度调整位7~0。 12位TKTMR: 000:最短 FFF:最长 Bit 7 STKPD R/W 1 Bit 6 – – – Bit 5 – – – Bit 4 – – – Bit 3 0 Bit 2 Bit 1 TKTMRH R/W 0 0 Bit 0 0 STKPD: STK断电 0: 已启用STK和CTK已禁用 1: STK禁用 TKTMRH: STK扫描长度调整位11~8。 12位TKTMR: 000:最短 FFF:最长 Bit 7 TKFJMP R/W 0 Bit 6 0 Bit 5 JMPVAL R/W 0 Bit 4 0 Bit 3 HSENSE R/W 0 Bit 2 STKFSEL R/W 0 Bit 1 Bit 0 STKREFC R/W 0 0 TKFJMP: 触摸按键时钟频率自动更改选择 0: 禁用,由SFR JMPVAL决定 1: 启用,触摸键时钟频率自动更改 JMPVAL: 触摸键时钟频率选择(仅在TKFJMP=0中可用) HSENSE: STK通道灵敏度选择 0: 正常振荡型 1: 高灵敏度 STKFSEL: STK时钟(RCK/TCK)频率选择。 0: STK时钟频率最慢 1: STK时钟频率最快 STKREFC: STK参考时钟(RCK)电容器选择。 0: 最小值(转换时间最短) 3: 最大值(转换时间最长) DS-TM56M1511_31_S 56 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 01Fh TKCTL2 R/W Reset 1Fh.6 1Fh.5 1Fh.3~0 Bit 7 CTKPD R/W 1 Bit 6 TKSOC R/W 0 Bit 5 TKEOC R 1 Bit 4 – – – Bit 3 1 Bit 2 Bit 1 TKCHS R/W 1 1 Bit 0 1 TKSOC: 触摸键开始转换,转换结束时硬件清除 0: 关闭 1: 启用,触摸键开始转换 TKEOC: 触摸按键结束时的转换 TKCHS: 触摸键通道选择 x000: 预留 x100: TK4 x001: TK1 x101: TK5 x010: TK2 x110: 预留 x011: 预留 x111: 内部参考电容 DS-TM56M1511_31_S 57 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6.5.2 CTK 设置 STKPD=1 和 CTKPD=0 时,用户可选择外部电容式结构触摸按钮。在 CTK 模式下,一个外 部电容器需要连接到 CLD 引脚。要开始扫描,用户需要分配 CTKPD=0,然后设置 TKSOC 位以 开始触摸键转换。当转换结束时,可以自动清除 TKSOC 位。TKEOC=为 0,表示转换正在进行 中。TKEOC=1 表示转换结束,触摸键的计数值存储在 12 位 TK 数据计数(TKDH 和 TKDL)中。 在 TKEOC=1 之后,用户必须等待 50μ s 进行下一次转换。如果转换后的值超出了周期范围,则 减少/增加 CTKREFC 可以减少/增加 TK 数据计数,以适应系统电路板的条件。 在触摸按键单元内有一个内置的参考电容器来模拟按键的行为。设置 TKCHS= 7 或 15 时,系统 将切换到内置的参考电容器,并开始触摸按钮进行转换,得到这个参考电容器的 TKDATA。因 为内部电容从来不受水或手机的影响,所以它对比较环境背景噪声很有用。触摸键时钟频率可以 通过内部硬件通过设置 TKFJMP=1 来自动调整,这可以有效地提高触摸键的高干扰特性。 STKPD = 1 & CTKPD = 0 (CTK mode) (1Dh.7) (1Fh.7) CTKPD (1Fh.7) TKCHS (1Fh.3~0) 3 CLD Touch Key Clock TK1 TK2 TK4 TKIF (0Eh.2) Touch Key OSC TK5 TK7 CTKPD (1Fh.7) TKSOC (1Fh.6) Data Counter TKEOC (1Fh.5) 12 TKDH (1Bh.3~0) TKDL (1Ah.7~0) TKIE (0Dh.2) 3 3 Internal Reference TKFJMP CTKREFC (1Eh.7) Capacitor (1Eh.2~0) JMPVAL (1Eh.6~4) Touch Key end of conversion Interrupt DS-TM56M1511_31_S 58 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 例: 触摸键通道选择参考 TK,并选择加速 CLD 放电模式. MOVLW MOVWX BCX 00101011b PAMOD32 PAD,3 ; PA3 (CLD) = 输出低, PA2 (TK4) = CTKCKO ; PA3 加速CLD放电的设置 ; 设置PA3 输出低 MOVLW MOVWX 10000101b TKCTL ; 为CTK时钟自动更改 MOVLW MOVWX BSX 00001111b TKCTL2 TKSOC ; CTK 触摸键操作 ; 触摸键通道,选择参考TK ; 触摸键启动转换 (需要延迟5us) LCALL WAIT_TK BTXSS LGOTO RET TKEOC WAIT_TK ; CTK conversion time select 5 WAIT_TK: DS-TM56M1511_31_S ; 等待TK转换完成 59 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 01Ah TKDL R/W Reset 1Ah.7 01Bh TKDH R/W Reset 1Bh.7 01Eh TKCTL R/W Reset 1Eh.7 1Eh.6~4 1Eh.2~0 01Fh TKCTL2 R/W Reset 1Fh.7 1Fh.6 1Fh.5 1Fh.3~0 Bit 7 Bit 6 Bit 5 1 1 1 Bit 4 Bit 3 TKDL R 1 1 Bit 2 Bit 1 Bit 0 1 1 1 Bit 2 Bit 1 Bit 0 TKDL: 触摸键计数器数据7~0 Bit 7 – – – Bit 6 – – – Bit 5 – – – Bit 4 – – – Bit 3 1 1 1 1 Bit 4 Bit 3 HSENSE R/W 0 Bit 2 Bit 1 CTKREFC R/W 0 Bit 0 TKDH R TKDH: 触摸键计数器数据 11~8 Bit 7 TKFJMP R/W 0 Bit 6 0 Bit 5 JMPVAL R/W 0 0 0 0 TKFJMP: 触摸按键时钟频率自动更改选择 0: 禁用,由SFR JMPVAL决定 1: 启用,触摸键时钟频率自动更改 JMPVAL: 触摸键时钟频率选择(仅在TKFJMP=0中可用) CTKREFC: CTK转换时间。 0: 最短 7: 最长 Bit 7 CTKPD R/W 1 Bit 6 TKSOC R/W 0 Bit 5 TKEOC R 1 Bit 4 – – – Bit 3 1 Bit 2 Bit 1 TKCHS R/W 1 1 Bit 0 1 CTKPD: CTK电源下降 0: 如果启用STKPD=1 1: CTK禁用。 TKSOC: 触摸键开始转换,转换结束时硬件清除 0: 关闭 1: 启用,触摸键开始转换 TKEOC: 触摸按键结束时的转换 TKCHS: 触摸键通道选择 x000: 预留 x100: TK4 x001: TK1 x101: TK5 x010: TK2 x110: 预留 x011: 预留 x111:内部参考电容 DS-TM56M1511_31_S 60 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6.6 循环冗余检查 (CRC) 该芯片支持集成的 16 位循环冗余校验功能。循环冗余校验 (CRC) 计算单元是一种错误检测技术 测试算法,用于验证数据传输或存储数据的正确性。CRC 计算将 8 位数据流或数据块作为输入, 并生成 16 位输出余数。数据流由相同的生成多项式计算。 CRCIN (189h.7~0) 8 16 CRC-16 Unit 16 CRCDL (187h.7~0) CRCDH (188h.7~0) CRC16 框图 CRC 生成器基于 CRC-16-IBM 多项式提供 16 位 CRC 结果计算。在此 CRC 生成器中,只有一个 多项式可用于数值计算。它不支持基于任何其他多项式的 16 位 CRC 计算。对 CRCIN 寄存器的 每次写操作都会创建存储在 CRCDH 和 CRCDL 寄存器中的先前 CRC 值的组合。计算将需要一个 MCU 指令周期。 CRC-16-IBM (Modbus) 多项式表示 多项式表示: 187h CRCDL R/W Reset Bit 7 Bit 6 Bit 5 1 1 1 Bit 4 Bit 3 CRCDL R/W 1 1 Bit 2 Bit 1 Bit 0 1 1 1 Bit 4 Bit 3 CRCDH R/W 1 1 Bit 2 Bit 1 Bit 0 1 1 1 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 – – – – 187h.7~0 CRCDL: 16 位 CRC 校验数据位 7~0 188h CRCDH R/W Reset Bit 7 Bit 6 Bit 5 1 1 1 188h.7~0 CRCDH: 16 位 CRC 校验数据位 15~8 189h CRCIN W Reset Bit 7 Bit 6 Bit 5 CRCIN W – – – – 189h.7~0 CRCIN: CRC 数据输入,写入此寄存器以开始 CRC 计算 DS-TM56M1511_31_S 61 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 存储器功能图 名称 地址 读/写 复位 INDF (00h/80h/100h/180h) INDF 00.7~0 R/W - TM0 (01h/101h) TM0 01.7~0 R/W 0 描述 相关功能: RAM W/R 不是实质寄存器,寻址 INDF 实际上指向其地址为 FSR 寄存器中的 寄存值 相关功能: Timer0 Timer0 计数数据 相关功能: PROGRAM COUNT PCL (02h/82h/102h/182h) PCL 02.7~0 R/W 0 STATUS (03h/83h/103h/183h) IRP 03.7 R/W 程序计数器数据位 7~0 相关功能: STATUS 0 RP1 RP0 03.6 03.5 R/W R/W 0 0 寄存器 Bank 选择位 (用于间接寻址) 寄存器 Bank 选择位 1 用于直接寻址 TO PD 03.4 03.3 R R 0 0 WDT 超时标志,通过 PWRST,‘SLEEP’ 或 ‘CLRWDT’ 指令清除 掉电标志,通过指令 ‘SLEEP’ 设置,通过指令 ‘CLRWDT’ 清除 Z DC 03.2 03.1 R/W R/W 0 0 零标志 十进制进位标志 C 03.0 R/W 0 FSR (04h/84h/104h/184h) FSR 04.7~0 R/W 进位标志 相关功能: RAM W/R - 文件选择寄存器,间接地址模式指针 R - 相关功能: 端口 A 端口 A 引脚或 “数据寄存器” 状态 W FF PAD (05h) PAD 05.7~0 寄存器 Bank 选择位 0 用于直接寻址 PCLATH (0Ah/8Ah/10Ah/18Ah) GPR 0A.7~5 R/W 0 端口 A 输出数据寄存器 相关功能:PROGRAM COUNT 通用寄存器 PCLATH 针对程序计数器的高字节的写缓冲区 0A.2~0 R/W 0 INTIE (0Bh/8Bh/10Bh/18Bh) 相关功能: 中断使能 Timer1 中断使能 0: 关闭 1: 使能 Timer0 中断使能 0: 关闭 1: 使能 唤醒定时器中断使能和唤醒定时器使能 0: 关闭 1: 使能 INT2 引脚 (PA7 或 PB5) 中断使能 0: 关闭 1: 使能 INT1 引脚 (PA1 或 PB1) 中断使能 0: 关闭 1: 使能 INT0 引脚 (PA3 或 PB2) 中断使能 0: 关闭 1: 使能 相关功能: 中断标志 TM1IE 0B.5 R/W 0 TM0IE 0B.4 R/W 0 WKTIE 0B.3 R/W 0 INT2IE 0B.2 R/W 0 INT1IE 0B.1 R/W 0 INT0IE 0B.0 R/W 0 TM1IF 0C.5 R W 0 Timer1 中断事件挂起标志,当 Timer1 溢出时由 H/W 置位 写 0: 清除该标志;写 1: 无动作 TM0IF 0C.4 R W 0 Timer0 中断事件挂起标志,当 Timer0 溢出时由 H/W 置位 写 0: 清除该标志;写 1: 无动作 WKTIF 0C.3 R - W 0 WKT 中断事件挂起标志,当 WKT 超时时由 H/W 置位 写 0: 清除该标志;写 1: 无动作 INTIF (0Ch) DS-TM56M1511_31_S 62 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 INT2IF INT1IF INT0IF 0C.2 0C.1 0C.0 R - W 0 R - W 0 R - W 0 INTIE1 (0Dh) TKIE 0D.2 R/W 0 PWMIE 0D.1 R/W 0 LVDIE 0D.0 INTIF1 (0Eh) R/W 0 R W R 0 - W R W 0 0 TKIF 0E.2 PWMIF 0E.1 LVDIF 0E.0 INT2 (PA7 或 PB5) 中断事件挂起标志,当 INT2 引脚发生下降沿时 由 H/W 置位 写 0: 清除该标志;写 1: 无动作 INT1 (PA1 或 PB1) 中断事件挂起标志,当 INT1 引脚发生下降沿/上 升沿时由 H/W 置位 写 0: 清除该标志;写 1: 无动作 INT0 (PA3 或 PB2) 中断事件挂起标志,当 INT0 引脚发生下降沿/上 升沿时由 H/W 置位 写 0: 清除该标志;写 1: 无动作 相关功能:中断使能组 1 TK 中断启用, 0 =禁用 1 =启用 PWM 中断使能 0:禁用 1:启用 LVD 中断启用 0: 禁用 1:启用 相关功能: 中断标志 触摸键中断标志 写入 0:清除此标志;写入 1:无操作 PWM 中断标志 写入 0:清除此标志;写入 1:无操作 LVD 中断标志 SLOWSTP 0F.4 R/W 0 FASTSTP CPUCKS 0F.3 0F.2 R/W R/W 1 0 CPUPSC 0F.1~0 R/W 11 TM0RLD (10h) TM0RLD 10.7~0 TM0CTL (11h) R/W 0 TM0STP 11.6 R/W 0 TM0EDG 11.5 R/W 0 TM0CKS 11.4 R/W 0 TM0PSC 11.3~0 R/W 0 TM1 (12h) TM1 12.7~0 R/W 0 写入 0:清除此标志;写入 1:无操作 相关功能:系统时钟(Fsys) 在停止模式下的慢时钟停止控制。 0: 慢时运行 1:慢时停止 快时钟停止控制 0: 快时运行 1:快时停止 选择快速时钟 0: Fsys=慢时钟 1:Fsys=快时钟 Fsys 预分频器, 00: div 8 01: div 4 10: div 2 11: div 1 相关功能:TM0 定时器 0 重新加载数据 相关功能:TM0 停止计时器 0 0: 定时器 0 运行 1: 定时器 0 停止 TM0CKI(PA2) 0: 上升沿 1:下降沿 定时器 0 预分频器时钟源 0: Fsys/2 1: TM0CKI (PA2) Timer0 预分频器。 Timer0 时钟源(Fsys/2 或 TMCKI)除以 0000: 1 0011: 8 0110: 64 0001: 2 0100: 16 0111: 128 0010: 4 0101: 32 1xxx: 256 相关功能: Timer1 Timer1 内容 0 相关功能: Timer1 Timer1 重新加载数据 CLKCTL (0Fh) TM1RLD (13h) TM1RLD 13.7~0 R/W TM1CTL (14h) TM1STP 14.6 R/W 0 TM1PSC 14.3~0 R/W 0 DS-TM56M1511_31_S 相关功能: Timer1 停止计时器 1 0: 定时器 1 运行 1: 定时器 1 停止 Timer1 预分频器. Timer1 时钟源(Fsys/2)除以 63 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 0000: 1 0011: 8 0001: 2 0100: 16 0010: 4 0101: 32 相关功能: LVD/LVR LVCTL (16h) 0110: 64 0111: 128 1xxx: 256 LVDF 16.7 R 0 低压检测标志,由 H/W 和 VCC≦LVD 设置 LVDHYS 16.6 R/W 0 LVRSAV LVDSAV 16.5 16.4 R/W R/W 1 1 LVD 滞后。 0: 禁用 1:启用 POR/LVR 自动关机 LVDS 16.3~0 R/W 00 TKDL (1Ah) TKDL 1A.7~0 R - TKDH (1Bh) TKDH 1B.3~0 触摸键计数器数据 7~0 相关功能: STK/CTK R - 1C.7~0 R/W FF STKPD 1D.7 R/W 1 TKTMRH 1D.3~0 R/W 0 TKFJMP 1E.7 R/W 0 JMPVAL HSENSE 1E.6~4 1E.3 R/W R/W 0 0 触摸键计数器数据 11~8 相关功能: STK STK 扫描长度调整位 7~0。 12 位 TKTMR: 000:最短,FFF:最长 相关功能: STK STK 断电 0: STK 启用和 CTK 禁用。 1: STK 禁用 STK 扫描长度调整位 11~8。 12 位 TKTMR: 000:最短,FFF:最长 相关功能: STK/CTK 触摸按键时钟频率自动更改选择 0: 禁用,时钟频率由 SFR JMPVAL 决定 1: 使能够 触摸按键时钟频率的选择。(仅可在 TKFJMP=0 中使用) STKFSEL 1E.2 R/W 0 STKREFC 1E,1~0 R/W 0 CTKREFC 1E,2~0 R/W 0 TKTMRL(1Ch) TKTMRL TKMFS (1Dh) TKCTL (1Eh) TKCTL2 (1Fh) CTKPD 1F.7 R/W 1 TKSOC TKEOC 1F.6 1F.5 R/W R 0 1 TKCHS 1F.3~0 R/W F User Data Memory 用户数据存储器 RAM 20~6F R/W RAM 70~7F R/W - DS-TM56M1511_31_S LVD 在关机/空闲模式下自动关机 LVD 设置 0000: 关闭 0100 : 2.60V 1000: 3.15V 0001: 2.20V 0101: 2.75V 1001: 3.30V 0010: 2.30V 0110: 2.90V 1010: 3.45V 0011: 2.45V 0111: 3.00V 1011: 3.60V 相关功能: STK/CTK 1100: 3.70V 1101: 3.85V 1110: 4.00V 1111: 4.15V STK 通道灵敏度选择 0: 正常振荡型 1: 高灵敏度 STK 时钟(RCK/TCK)频率选择 0: STK 时钟频率最慢 1: STK 时钟频率最快 STK 参考时钟(RCK)电容器选择 0:最小(转换时间最短) 3:最大(转换时间最长) CTK 转换时间。 0: 最小 7:最长 相关功能: STK/CTK CTK 断电。 0:CTK 使能 (if STKPD=1) 1:CTK 停用 触摸键开始转换,转换结束时清除 触摸按键的转换结束 触摸键通道选择。 x000: reserved x100: TK4 x001: TK1 x101: TK5 x010: TK2 x110: 保留 x011: 保留 x111: 内部参考电容 RAM Bank0 区域(80 Bytes) RAM common 区域(16 Bytes) 64 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 OPTION (81h/181h) HWAUTO 81.7 R/W 0 INT0EDG 81.6 R/W 0 INT1EDG 81.5 R/W 0 WDTPSC 81.3~2 R/W 11 WKTPSC 81.1~0 R/W 11 PAMOD10 (85h) PA1MOD 85.7~4 PA0MOD 85.3~0 PAMOD32 (86h) PA3MOD 86.7~4 PA2MOD 86.3~0 R/W 0001 R/W 0001 R/W 0001 R/W 0001 PA4MOD 87.3~0 R/W 0001 PAMOD76 (88h) PA7MOD 88.7~4 88.3~0 R/W 0000 R/W 0001 R/W 0 91.5~4 R/W 00 PWMPRDH (92h) PWMPRDH 92.7~0 R/W FF PWM1DH (96h) PWM1DH 96.7~0 PWM 时钟使能 0:禁用 1:启用 相关功能:PWM0 PWM 时钟源选择 0x: Fsys 10: FIRC (16MHz) 11: FIRC*2 (32MHz) (VCC>2.3V@25℃) 相关功能:PWM PWM 周期 MSB 数据 相关功能:PWM R/W FF PWM 周期 LSB 数据 相关功能:PWM0 R/W 80 PWM0 周期 MSB 周期 相关功能:PWM0 R/W 00 PWM0 周期 LSB 周期 相关功能:PWM1 R/W 80 PWM1 周期 MSB 周期 PWM1DL (97h) PWM1DL 97.7~0 R/W 00 PWM2DH (98h) PWM2DH 98.7~0 R/W 80 PWM2DL (99h) PWM2DL 99.7~0 R/W 00 DS-TM56M1511_31_S PA7 I/O 模式控制 相关功能:PWM0 OPTION2 (91h) PWMPRDL (93h) PWMPRDL 93.7~0 PWM0DH (94h) PWM0DH 94.7~0 PWM0DL (95h) PWM0DL 95.7~0 PA4 I/O 模式控制 相关功能:Port A PWMCTL (89h) PWMCKS PA3~PA2 I/O 模式控制 相关功能: Port A R/W 0001 89.7 PA1~PA0 I/O 模式控制 相关功能: Port A PAMOD54 (87h) 87.7~4 PWMEN 相关功能: STATUS/INT0/INT1/WDT/WKT 输入中断向量, 硬件保存/恢复 WREG 和状态,PD 0:禁用 1:启用 INT0 引脚边缘中断事件 0: 下降边缘触发 1: 上升边缘触发 INT1 引脚边缘中断事件 0: 下降边缘触发 1: 上升边缘触发 WDT 周期选择: 00: 100mS 01: 200mS 10: 800mS 11: 1600mS @4V WKT 周期选择: 00: 12mS 01: 25mS 10: 50mS 11: 100mS @4V 相关功能: Port A 相关功能:PWM1 PWM1 周期 LSB 周期 相关功能:PWM2 PWM2 周期 MSB 周期 相关功能:PWM2 PWM2 Duty LSB 周期 65 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 PWM4DH (9Ch) PWM4DH 9C.7~0 PWM4DL (9Dh) PWM4DL 9D.7~0 PWM5DH (9Eh) PWM5DH 9E.7~0 PWM5DL (9Fh) PWM5DL 9F.7~0 User Data Memory RAM A0~EF LVRPD (109h) 相关功能:PWM4 R/W R/W R/W 80 PWM4 周期 MSB 周期 00 相关功能:PWM4 PWM4 周期 LSB 数据 80 相关功能:PWM5 PWM5 周期 MSB 数据 相关功能:PWM5 R/W 00 R/W - LVRPD 109.7~0 W 0 PORPDF 109.1 R 0 LVRPDF 109.0 R 0 PCH 10C.7~0 W 0 PCH 10C.2~0 R - PCH (10Ch) BGTRIM (10Eh) BGTRIM 10E.4~0 IRCF (10Fh) IRCF 10F.6~0 RAM bank1 区域(80 字节) 相关功能: LVR/POR 寫入 37h: 強制關閉 LVR, 強制關閉 POR 寫入 38h: 強制關閉 LVR,使能 POR 寫入 39h: 強制關閉 POR ,使能 LVR 寫入其他任意值: 使能 LVR,使能 POR POR 强制断电标志 0: POR 启用 1: POR 强制断电 LVR 强制断电标志 0: LVR 启用 1: LVR 强制断电 相关功能: PCH 当执行以 PCL 作为目标的指令时,编程计数器高字节源选择 写 0x1C 来设置 PCH_S = 1: PCH 保持原始值 写其他的东西来清除 PCH_S = 0: PCH 是来自 PCLATH 的 程序计数器数据位 10~8 相关功能: Bandgap R/W CFG VBG 电压调整 相关功能: Internal RC R/W CFG FIRC 頻率调整 User Data Memory 用户数据存储器 RAM 120~16F R/W - DS-TM56M1511_31_S PWM5 周期 LSB 数据 RAM Bank2 区域(80 Bytes) 66 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 相关功能:表读取 DPL (185h) DPL 185.7~0 R/W 00 DPH (186h) DPH 表读低地址,数据 ROM 指针(DPTR)低字节 相关功能:表读取 186.3~0 R/W 00 表读高地址,数据 ROM 指针(DPTR)高字节 CRCDL (187h) CRCDL 187.7~0 CRCDH (188h) CRCDH 188.7~0 CRCIN (189h) CRCIN 189.7~0 TABR (18Ch) TABR 相关功能: CRC16 R/W FF CRC16 数据 7~0 相关功能:CRC16 R/W FF CRC16 数据 15~8 相关功能: CRC16 W 18C.7~0 R/W 0 0 CRC 输入 相关功能: Table Read 1. TABR 写 01h =操作码 TABRL 2. TABR 写 02h =操作码 TABRH 3. 读取 TABR 以获得主 ROM 表的读取值 表读取的 ASM:使用 TABRL / TABRH 指令或寄存器 TABR 表读取为 C:使用寄存器 TABR DS-TM56M1511_31_S 67 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 指令集 每条指令是一个 16 位字,分为一个操作码(用于指定指令类型)和一个或多个操作数(用于进 一步指定该指令的操作)。下表中将指令分为面向字节,面向位和面向立即数的操作列表。 对于面向字节的指令,“ f”代表地址指示符,“ d”代表目标指示符。地址指示符用于指定指令将使 用程序存储器中的哪个地址。目标指示符指定将操作结果放置在何处。如果“ d”为“ 0”,则结果 存入 W 寄存器。如果“ d”为“ 1”,则结果放置在指令指定的地址中。 对于面向位的指令,“ b”代表位字段指示符,它选择受操作影响的位数,而“ f”代表地址指示符。 对于立即数运算,“ k”代表立即数或常量值。 简记符号 f b k d W Z C DC PC TOS GIE [] () . B A ← DS-TM56M1511_31_S 描述 文件寄存器地址 位地址 立即数.常量数字或标签 目标选择字段,0:工作寄存器,1:文件寄存器 工作寄存器 零标志 进位标志或/借位标志 十进制进位标志或十进制/借位标志 程序计数器 顶层堆栈 总中断使能标志 (i-Flag) 选择字段 内容 位域 之前 之后 分配方向 68 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 助记符 操作码 f, d f, d f, d f, d f, d f, d f,d f f f, d f, d f, d f, d f f, d f f 00 f f 00 f f 00 0000 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 f f 00 0111 0101 0001 0001 1001 0011 1011 1010 1111 0100 1000 1000 0000 1101 1100 0010 1110 1000 0110 BCX BSX BTXSC BTXSS f, b f, b f, b f, b f f 11 f f 11 f f 11 f f 11 00bb 01bb 10bb 11bb ADDLW ANDLW LCALL CLRWDT LGOTO IORLW MOVLW NOP RET RETI RETLW SLEEP SUBLW TABRH TABRL XORLW k k k 0001 0001 k k 10 0001 k k 10 0001 0001 0000 0000 0000 0001 0001 0001 0000 0000 0001 1100 1011 0k k k 111 0 1k k k 1010 1001 0000 0000 0000 1000 1110 1111 0000 0000 1101 ADDWX ANDWX CLRX CLRW COMX DECX DECXSZ INCX INCXSZ IORWX MOVX MOVXW MOVWX RLX RRX SUBWX SWAPX TSTX XORWX f, d f, d f k k k k k k DS-TM56M1511_31_S 周期 影响标志 面向字节的文件寄存器指令 1 C, DC, Z df f f f f f f 1 Z df f f f f f f 1 Z 1f f f f f f f 1 Z 0100 00 00 1 Z df f f ff f f 1 Z df f f f f f f d f f f f f f f 1 or 2 1 Z df f f f f f f d f f f f f f f 1 or 2 1 Z df f f f f f f 1 Z df f f f f f f 1 Z 0f f f f f f f 1 1f f f f f f f 1 C df f f f f f f 1 C df f f f f f f 1 C, DC, Z df f f f f f f 1 df f f f f f f 1 Z 1f f f f f f f 1 Z df f f f f f f 面向位的文件寄存器指令 1 bf f f f f f f 1 bf f f f f f f b f f f f f f f 1 or 2 b f f f f f f f 1 or 2 立即数和控制指令 1 C, DC, Z kkkk kkkk 1 Z kkkk kkkk 2 kkkk kkkk 1 TO, PD 0000 01 00 2 kkkk kkkk 1 Z kkkk kkkk 1 k k k k k k kK 1 0000 00 00 2 0100 00 00 2 0110 00 00 2 kkkk kkkk 1 TO, PD 0000 00 11 1 C, DC, Z kkkk kkkk 2 0101 10 00 2 0101 00 00 1 Z kkkk kkkk 69 描述 W 和 "f" 相加 W 和 "f" 相与 清除"f" 清除 W "f"取反 “ f”减 1 "f"减 1,如果为零则跳过 "f"加 1 "f"加 1, 如果为零则跳过 W 和 “f” 相或 移 "f" 将 "f"移至 W 将 W 移至 "f" “f”带进位位左移 “f”带进位位右移 "f"减 W "f"的高低半字节互换 检测"f" 是否为 0 W 和 "f"相异或 "f"的"b"位清零 "f"的"b"位置位 "f"的"b"位为 0 则跳过 "f"的"b"位为 1 则跳过 立即数 "k" 和 W 相加 立即数 "k" 和 W 相与 调用子程序 "k" 清除看门狗定时器 跳转至分支"k" 立即数"k" 和 W 相或 将立即数 "k" 移至 W 空操作指令 从子程序返回 从中断返回 带立即数返回,返回值在 W 中 进入睡眠模式,时钟振荡停止 立即数"k"减去 W 查找 ROM 高数据到 W 查找 ROM 低数据到 W 立即数"k" 和 W 相异或 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 ADDLW W 和 立即数 "k" 相加 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 ADDLW k k : 00h ~ FFh (W) ← (W) + k C, DC, Z 0001 1100 kkkk kkkk 将 W 寄存器的内容和 8 位立即数 'k' 相加,将结果放入W寄存器中。 1 ADDLW 0x15 B : W =0x10 A : W =0x25 ADDWX W 和 "f" 相加 语法 操作数 运作方式 影响的状态位 操作码 描述 ADDWX f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (W) + (f) C, DC, Z ff00 0111 dfff ffff 将W寄存器的内容和寄存器 'f' 相加。 如果d为0,则结果放在W寄存器中。 如果 'd' 为1,结果放回寄存器 'f'。 1 ADDWX FSR, 0 B : W =0x17, FSR =0xC2 A : W =0xD9, FSR =0xC2 周期 范例 ANDLW W 和 立即数 "k" 逻辑与 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 ANDLW k k : 00h ~ FFh (W) ← (W) AND k Z 0001 1011 kkkk kkkk W 寄存器的内容与 8 位立即数 'k' 相与。 结果放在 W 寄存器中。 1 ANDLW 0x5F B : W =0xA3 A : W =0x03 ANDWX W 和 "f" 逻辑与 语法 操作数 运作方式 影响的状态位 操作码 描述 ANDWX f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (W) AND (f) Z ff00 0101 dfff ffff W 寄存器的内容和寄存器 'f' 相与。 如果 'd' 为 0,则结果放在 W 寄存器 中。 如果 'd' 为 1,结果放回寄存器 'f'。 1 ANDWX FSR, 1 B : W =0x17, FSR =0xC2 A : W =0x17, FSR =0x02 周期 范例 DS-TM56M1511_31_S 70 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 BCX "f" 的 "b" 位清零 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 BCX f [,b] f : 000h ~ 1FFh, b : 0 ~ 7 (f.b) ← 0 ff11 00bb bfff ffff 寄存器 'f' 中的 'b' 位被清零。 1 BCX FLAG_REG, 7 BSX "f" 的 "b" 位置位 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 BSX f [,b] f : 000h ~ 1FFh, b : 0 ~ 7 (f.b) ← 1 ff11 01bb bfff ffff 寄存器 'f' 中的 'b' 位被置位。 1 BSX FLAG_REG, 7 BTXSC 检测 "f" 的 "b" 位,为 0 则跳过 语法 操作数 运作方式 影响的状态位 操作码 描述 BTXSC f [,b] f : 000h ~ 1FFh, b : 0 ~ 7 如果(f.b)= 0 则跳过下一条指令 ff11 10bb bfff ffff 如果寄存器 'f' 中的位 'b' 为 1,则执行下一条指令。 如果寄存器 'f' 中的位 'b' 为 0,则下一条指令放弃执行,而是执行一条 NOP,使其成为 2 周期指 令。 1 or 2 LABEL1 BTXSC FLAG, 1 B : PC =LABEL1 TRUE GOTO SUB1 A : 如果 FLAG.1 =0, PC =FALSE FALSE ... 如果 FLAG.1 =1, PC =TRUE 周期 范例 B : FLAG_REG =0xC7 A : FLAG_REG =0x47 B : FLAG_REG =0x0A A : FLAG_REG =0x8A BTXSS 检测 "f" 的 "b" 位,为 1 则跳过 语法 操作数 运作方式 影响的状态位 操作码 描述 BTXSS f [,b] f : 000h ~ 1FFh, b : 0 ~ 7 如果(f.b)= 1 则跳过下一条指令。 ff11 11bb bfff ffff 如果寄存器 'f' 中的位 'b' 为 0,则执行下一条指令。 如果寄存器 'f' 中的位 'b' 为 1,则下一条指令放弃执行,而是执行一条 NOP 指令,使其成为 2 周期 指令。 1 or 2 LABEL1 BTXSS FLAG, 1 B : PC =LABEL1 TRUE GOTO SUB1 A : 如果 FLAG.1 =0, PC =TRUE FALSE ... 如果 FLAG.1 =1, PC =FALSE 周期 范例 DS-TM56M1511_31_S 71 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 CLRX 清除 "f" 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 CLRX f f : 000h ~ 1FFh (f) ← 00h, Z ← 1 Z ff00 0001 1fff ffff 清除寄存器 'f' 的内容,并将 Z 位置 1。 1 CLRX FLAG_REG B : FLAG_REG =0x5A A : FLAG_REG =0x00, Z =1 CLRW 清除 W 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 CLRW (W) ← 00h, Z ← 1 Z 0000 0001 0100 0000 清除 W 寄存器,并将 Z 位置 1。 1 CLRW B : W =0x5A A : W =0x00, Z =1 CLRWDT 清除看门狗定时器 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 CLRWDT WDT Timer ← 00h TO, PD 0001 1110 0000 0100 CLRWDT 指令清除看门狗定时器。 1 CLRWDT B : WDT 计数器 =? A : WDT 计数器 =0x00 COMX "f" 取反 语法 操作数 运作方式 COMX f [,d] f : 000h ~ 1FFh, d : 0, 1 影响的状态位 操作码 描述 周期 范例 DS-TM56M1511_31_S _ (目标) ← (f) Z ff00 1001 dfff ffff 寄存器 'f' 的内容被取反。 如果 'd' 为 0,结果放在 W 中。如果 'd' 为 1,结 果放回寄存器 'f' 中。 1 COMX REG1, 0 B : REG1 =0x13 A : REG1 =0x13, W =0xEC 72 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 DECX "f" 递减 语法 操作数 运作方式 影响的状态位 操作码 描述 DECX f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (f) - 1 Z ff00 0011 dfff ffff 寄存器 'f' 的内容递减。 如果 'd' 为 0,则结果放在 W 寄存器中。 如果 'd' 为 1,结果放回寄存器 'f'。 1 DECX CNT, 1 B : CNT =0x01, Z =0 A : CNT =0x00, Z =1 周期 范例 DECXSZ "f" 递减,如果为 0 则跳过 语法 操作数 运作方式 影响的状态位 操作码 描述 DECXSZ f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (f) - 1, 如果结果为 0,则跳过下一条指令 ff00 1011 dfff ffff 寄存器 'f' 的内容递减。 如果 'd' 为 0,结果放入 W 寄存器。 如果 'd' 为 1, 结果放回寄存器 'f'。 如果结果为 1,则执行下一条指令。 如果结果为 0, 则改为执行 NOP,使其成为 2 周期指令。 1或2 LABEL1 DECXSZ CNT, 1 B : PC =LABEL1 GOTO LOOP A : CNT =CNT – 1 CONTINUE 如果 CNT =0, PC =CONTINUE 如果 CNT ≠0, PC =LABEL1 + 1 周期 范例 INCX "f" 递增 语法 操作数 运作方式 影响的状态位 操作码 描述 INCX f [,d] f : 000h ~ 1FFh (目标) ← (f) + 1 Z ff00 1010 dfff ffff 寄存器 'f' 的内容递增。 如果 'd' 为 0,结果放入 W 寄存器。 如果 'd' 为 1, 结果放回寄存器 'f'。 1 INCX CNT, 1 B : CNT =0xFF, Z =0 A : CNT =0x00, Z =1 周期 范例 DS-TM56M1511_31_S 73 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 INCXSZ “f” 递增,如果为 0 则跳过 语法 操作数 运作方式 影响的状态位 操作码 描述 INCXSZ f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (f) + 1, 如果结果为 0,则跳过下一条指令 ff00 1111 dfff ffff 寄存器 'f' 的内容递增。如果 'd' 为 0,结果放入 W 寄存器。如果 'd' 为 1,结 果放回寄存器 'f'。如果结果为 1,则执行下一条指令。 如果结果为 0,则改 为执行 NOP,使其成为 2 周期指令。 1 or 2 LABEL1 INCXSZ CNT, 1 B : PC =LABEL1 GOTO LOOP A : CNT =CNT + 1 CONTINUE 如果 CNT =0, PC =CONTINUE 如果 CNT ≠0, PC =LABEL1 + 1 周期 范例 IORLW W 和立即数 “ k” 逻辑或 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 IORLW k k : 00h ~ FFh (W) ← (W) OR k Z 0001 1010 kkkk kkkk W 寄存器的内容与 8 位立即数 'k' 进行或运算。 结果放在 W 寄存器中。 1 IORLW 0x35 B : W =0x9A A : W =0xBF, Z =0 IORWX W 和立即数 “ f” 逻辑或 语法 操作数 运作方式 影响的状态位 操作码 描述 IORWF f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (W) OR k Z ff00 0100 dfff ffff W 寄存器与寄存器 'f' 进行或运算。 如果 'd' 为 0,结果放入 W 寄存器。 如 果 'd' 为 1,结果放回寄存器 'f'。 1 IORWX RESULT, 0 B : RESULT =0x13, W =0x91 A : RESULT =0x13, W =0x93, Z =0 周期 范例 DS-TM56M1511_31_S 74 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 LCALL 调用子程序 “k” 语法 操作数 运作方式 影响的状态位 操作码 描述 LCALL k k : 0000h ~ 1FFFh Operation: TOS ← (PC) + 1, PC.12~0 ← k kk10 0kkk kkkk kkkk LCALL 子例程。首先,返回地址 (PC+1) 被推送到堆栈上。13 位直接地址 加载到 PC 位 。LCALL 是一个两周期指令。 2 LABEL1 LCALL SUB1 B : PC =LABEL1 A : PC =SUB1, TOS =LABEL1 + 1 周期 范例 LGOTO 无条件转移 语法 操作数 运作方式 影响的状态位 操作码 描述 LGOTO k k : 0000h ~ 1FFFh PC.12~0 ← k kk10 1kkk kkkk kkkk LGOTO 是一个无条件的分支。13 位立即值加载到 PC 位 。LGOTO 是一个两周期指令。 2 LABEL1 LGOTO SUB1 B : PC =LABEL1 A : PC =SUB1 周期 范例 MOVX 移 "f" 语法 操作数 运作方式 影响的状态位 操作码 描述 MOVX f [,d] f : 000h ~ 1FFh (目标) ← (f) Z ff00 1000 dfff ffff 寄存器 'f' 的内容根据 d 的状态移至目标。 如果 d=0,则目标为 W 寄存器。 如果 d=1,则目标是文件寄存器 f 本身。 d=1 对测试文件寄存器很有用,因 为状态标志 Z 受到影响。 1 MOVX FSR,0 B : FSR =0xC2, W =? A : FSR =0xC2, W =0xC2 周期 范例 MOVXW 将 "f" 移至 W 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 MOVXW f f : 000h ~ 1FFh (W) ← (f) Z ff00 1000 0fff ffff 寄存器 'f' 的内容移至 W 寄存器。 1 MOVXW FSR B : FSR =0xC2, W =? A : FSR =0xC2, W =0xC2 DS-TM56M1511_31_S 75 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 MOVLW 将立即数移至 W 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 MOVLW k k : 00h ~ FFh (W) ← k 0001 1001 kkkk kkkk 八位立即数 'k' 被加载到 W 寄存器中。无关位将为 0。 1 MOVLW 0x5A B : W =? A : W =0x5A MOVWX 将 W 移至 "f" 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 MOVWX f f : 000h ~ 1FFh (f) ← (W) ff00 0000 1fff ffff 将数据从 W 寄存器移至寄存器 'f'。 1 MOVWX REG1 B : REG1 =0xFF, W =0x4F A : REG1 =0x4F, W =0x4F NOP 空操作 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 NOP 空操作 0000 0000 0000 0000 空操作 1 NOP RET 从子程序返回 语法 操作数 运作方式 影响的状态位 操作码 描述 RET PC ← TOS 0000 0000 0100 0000 从子程序返回。堆栈被弹出,并且堆栈的顶部(TOS)被装入程序计数器。 这是两个周期的指令。 2 RET A : PC =TOS 周期 范例 DS-TM56M1511_31_S - 76 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 RETI 从中断返回 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 RETI PC ← TOS, GIE ← 1 0000 0000 0110 0000 从中断返回。弹出堆栈,并将堆栈顶层(TOS)加载到 PC 中。中断使能。 这是两个周期的指令。 2 RETI A : PC =TOS, GIE =1 RETLW W 带立即数返回 语法 操作数 运作方式 影响的状态位 操作码 描述 RETLW k k : 00h ~ FFh PC ← TOS, (W) ← k 0001 1000 kkkk kkkk W 寄存器加载了八位立即数 'k'。程序计数器从堆栈的顶层(返回地址)加 载。这是两个周期的指令。 2 LCALL TABLE B : W =0x07 : A : W =k8 的值 TABLE ADDWX PCL, 1 RETLW k1 RETLW k2 : RETLW kn 周期 范例 RLX "f" 通过进位向左移 语法 操作数 运作方式 RLX f [,d] f : 000h ~ 1FFh, d : 0, 1 影响的状态位 操作码 描述 C ff00 1101 dfff ffff 寄存器 'f' 的内容通过进位标志向左移动一位。如果 'd' 为 0,结果放入 W 寄 存器。如果 'd' 为 1,结果放回寄存器 'f'。 1 RLX REG1, 0 B : REG1 =1110 0110, C =0 A : REG1 =1110 0110 W =1100 1100, C =1 周期 范例 DS-TM56M1511_31_S C Register f 77 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 RRX "f" 通过进位向右移 语法 操作数 运作方式 RRX f [,d] f : 000h ~ 1FFh, d : 0, 1 影响的状态位 操作码 描述 C ff00 1100 dfff ffff 寄存器 'f' 的内容通过进位标志向右移动一位。如果 'd' 为 0,结果放入 W 寄 存器。如果 'd' 为 1,结果放回寄存器 'f'。 1 RRX REG1, 0 B : REG1 =1110 0110, C =0 A : REG1 =1110 0110 W =0111 0011, C =0 周期 范例 C Register f SLEEP 进入睡眠模式,时钟振荡停止 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 SLEEP TO, PD 001 1110 0000 0011 进入睡眠模式,时钟振荡停止。 1 SLEEP - SUBLW 立即数减去 W 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 SUBLW k k : 00h ~ FFh (W) ←k - (W) C, DC, Z 0001 1111 kkkk kkkk 立即数 'k'减 W 寄存器。结果放在 W 寄存器中。 1 SUBLW 0x15 B : W =0x25 A : W =0xF0 DS-TM56M1511_31_S 78 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 SUBWX "f" 减去 W 语法 操作数 运作方式 影响的状态位 操作码 描述 SUBWX f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (f) – (W) C, DC, Z ff00 0010 dfff ffff 从寄存器 'f' 中减去 W 寄存器(2 的补码方法)。如果 'd' 为 0,则结果放在 W 寄存器中。如果 'd' 为 1,结果放回寄存器 'f'。 1 SUBWX REG1, 1 B : REG1 =0x03, W =0x02, C =?, Z =? A : REG1 =0x01, W =0x02, C =1, Z =0 周期 范例 SUBWX REG1, 1 B : REG1 =0x02, W =0x02, C =?, Z =? A : REG1 =0x00, W =0x02, C =1, Z =1 SUBWX REG1, 1 B : REG1 =0x01, W =0x02, C =?, Z =? A : REG1 =0xFF, W =0x02, C =0, Z =0 SWAPX "f" 互换半字节 语法 操作数 运作方式 影响的状态位 操作码 描述 SWAPX f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标,7~4) ← (f.3~0), (目标.3~0) ← (f.7~4) ff00 1110 dfff ffff 寄存器 'f' 的高低半字节互换。如果 'd' 为 0,结果放入 W 寄存器。如果 'd' 为 1,结果放入寄存器 'f'。 1 SWAPX REG1, 0 B : REG1 =0xA5 A : REG1 =0xA5, W =0x5A 周期 范例 TABRH 将 DPTR 高字节返回给 W 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 TABRH (W) ← ROM[DPTR] 高字节内容, 其中 DPTR = {DPH [max:8], DPL[7:0]} 0000 0000 0101 1000 W 寄存器加载 ROM[DPTR] 的高字节。这是两个周期的指令。 2 MOVLW (TAB1&0xFF) MOVWX DPL ;DPL 为寄存器 MOVLW (TBA1>>8)&0xFF MOVWX DPH ;DPH 为寄存器 TABRL TABRH ;W =0x89 ;W =0x37 ORG 0234H TAB1: DT DS-TM56M1511_31_S 0x3789, 0x2277 79 ;16 位 ROM 数据 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 TABRL 将 DPTR 低字节返回给 W 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 TABRL (W) ← ROM[DPTR] 低字节内容, 其中 DPTR = {DPH[max:8], DPL[7:0]} 0000 0000 0101 0000 W 寄存器加载 ROM[DPTR] 的低字节。这是两个周期的指令。 2 MOVLW (TAB1&0xFF) MOVWX DPL ;DPL 为寄存器 MOVLW (TBA1>>8)&0xFF MOVWX DPH ;DPH 为寄存器 TABRL TABRH ;W =0x89 ;W =0x37 ORG 0234H TAB1: DT 0x3789, 0x2277 ;16 位 ROM 数据 TSTX 检测 "f" 是否为 0 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 TSTX f f : 000h ~ 1FFh 如果(f)为 0,则设置 Z 标志 Z ff00 1000 1fff ffff 如果寄存器 'f' 的内容为 0,则零标志设置为 1。 1 TSTX REG1 B : REG1 =0, Z =? A : REG1 =0, Z =1 XORLW W 和立即数异或 语法 操作数 运作方式 影响的状态位 操作码 描述 周期 范例 XORLW k k : 00h ~ FFh (W) ← (W) XOR k Z 0001 1101 kkkk kkkk W 寄存器的内容与 8 位立即数 'k' 进行异或。结果放在 W 寄存器中。 1 XORLW 0xAF B : W =0xB5 A : W =0x1A DS-TM56M1511_31_S 80 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 XORWX W 和 "f"异或 语法 操作数 运作方式 影响的状态位 操作码 描述 XORWX f [,d] f : 000h ~ 1FFh, d : 0, 1 (目标) ← (W) XOR (f) Z ff00 0110 dfff ffff W 寄存器与寄存器 'f' 的内容异或。如果 'd' 为 0,则结果放在 W 寄存器 中。如果 'd' 为 1,结果放回寄存器 'f'。 1 XORWX REG1, 1 B : REG1 =0xAF, W =0xB5 A : REG1 =0x1A, W =0xB5 周期 范例 DS-TM56M1511_31_S 81 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 电气特性 1. 最大绝对额定值 (TA =25°C) 参数 电源电压 输入电压 输出电压 每个引脚的高电位输出电流 所有引脚的高电位输出电流 每个引脚的低电位输出电流 所有引脚的低电位输出电流 最大工作电压 工作温度 储存温度 范围 VSS -0.3 to VSS +5.5 VSS -0.3 to VCC +0.3 VSS -0.3 to VCC +0.3 -25 -80 +30 +150 5.5 -40 to +105 -65 to +150 单位 V mA V C 2. 直流特性 (TA =25°C, VCC =5.0V, unless otherwise specified) 参数 符号 工作电压 Vcc 输入高电压 VIH 所有输入 输入低电压 VIL I/O 端口 拉电流 I/O 端口 灌电流 输入漏电流 (引脚为高) 输入漏电流 (引脚为低) DS-TM56M1511_31_S IOH 条件 Fsys = 16Mhz Fsys = 8Mhz 最小 1.9 1.4 典型 – – 最大 5.5 5.5 单位 V V VCC = 3~5V 0.6Vcc – Vcc V 所有输入 VCC = 3~5V Vss – 0.2Vcc V 所有 I/O 引脚 (除去 PA7) VCC = 5V,VOH = 4.5V VCC = 3V,VOH = 2.7V VCC = 5V,VOH = 4.5V VCC = 3V,VOH = 2.7V VCC = 5V,VOL = 0.5V VCC = 3V,VOL = 0.3V VCC = 5V,VOL = 0.5V VCC = 3V,VOL = 0.3V – – – – – – – – TBD TBD TBD TBD TBD TBD TBD TBD – – – – – – – – PA7 IOL 所有 I/O 引脚 (除去 PA7) PA7 mA mA IILH 所有输入 VIN = VCC – – 1 uA IILL 所有输入 VIN = 0V – – –1 uA 82 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 参数 符号 条件 最小 典型 最大 – 6.4 – 单位 FAST mode FIRC 16 MHz VCC = 5V FAST mode FIRC 8 MHz VCC = 5V FAST mode FIRC 4 MHz VCC = 5V – 3.2 – VCC = 3V – 1.9 – SLOW mode SIRC/1 FIRC STOP VCC = 5V – 1.7 – VCC = 3V – 1.3 – IDLE mode LVRSAV = 0 LVDSAV=0 IDLE mode LVRSAV = 1 LVDSAV=1 STOP mode LVRSAV = 1 LVDSAV=1 VCC = 5V – 96 – VCC = 3V – 60 – VCC = 5V – 20 VCC = 3V – 6 VCC = 5V – 0.1 VCC = 3V – 0.1 VIN = 0 V Ports A VCC = 5V – TBD – VCC = 3V – TBD – VIN = 0 V PA7 VCC = 5V – TBD – VCC = 3V – TBD – 参数 条件 典型 16 16 16 16 16 单位 FIRC 频率(*) 最小 -5% -3% -2% -1% -0.5% 最大 -20°C ~ 85°C, VCC = 3.0 ~ 5.0V -20°C ~ 85°C, VCC = 4.0 V 0°C ~ 70°C, VCC = 4.0 V 25°C, VCC = 3.0 ~ 5.0 V 25°C, VCC =4.0 V +1.5% +1.5% +1.5% +1% +0.5% MHz 工作电流 (空载) 上拉电阻 ICC VCC = 3V 3.7 – VCC = 3V RUP 3.8 – 2.3 mA uA uA uA KΩ 3. 时钟时序 (*) FIRC frequency can be divided by 1/2/4/8. 4. 复位时间特性 (TA = 25C) 参数 条件 复位输入低脉宽 Input VCC = 5 V ±10 % 最小 – 典型 30 最大 – 单位 s WDT 时间 VCC = 4 V, WDTPSC = 11 – 1600 – ms WKT 时间 VCC = 4 V, WKTPSC = 11 – 100 – ms CPU 启动时间 VCC = 4 V – 25 – ms DS-TM56M1511_31_S 83 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 5. LVR 和 LVD 电路特性 (TA = 25°C) 参数 符号 条件 LVR 参考电压 VLVR TA=25C LVR 迟滞电压 低电压检测时间 VHYS_LVR TLVR TA=25C TA=25C LVD 参考电压 VLVD TA=25C LVD 迟滞电压 VHYS_LVD 低电压检测时间 TLVD DS-TM56M1511_31_S LVDHYS=0 LVDHYS=1, LVDth=2.20V LVDHYS=1, LVDth=3.15V LVDHYS=1, LVDth=4.15V TA=25C 84 最小 – – – – – – – – – – – – – – – – – 100 – – – – – – – – – – – – – – – – – 100 典型 2.05 2.20 2.30 2.45 2.60 2.75 2.90 3.00 3.15 3.30 3.45 3.60 3.70 3.85 4.00 4.15 0 – 2.20 2.30 2.45 2.60 2.75 2.90 3.00 3.15 3.30 3.45 3.60 3.70 3.85 4.00 4.15 0 30 50 70 – 最大 – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – 单位 V mV s V mV – – s Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 6. 电气特性曲线图 FIRC Freq vs VCC 17.00 16.50 Freq (MHz) -40℃ -20℃ 16.00 0℃ 25℃ 15.50 50℃ 15.00 70℃ 85℃ 14.50 105℃ 125℃ 14.00 2.0V 2.5V 3.0V 3.5V 4.0V 4.5V VCC(V) 5.0V 5.5V 6.0V FIRC Freq vs Temperature 17.00 16.50 Freq (MHz) 2.0V 2.5V 16.00 3.0V 3.5V 15.50 4.0V 15.00 4.5V 5.0V 14.50 5.5V 6.0V 14.00 -40℃ DS-TM56M1511_31_S -20℃ 0℃ 25℃ 50℃ 70℃ Temperature (℃) 85 85℃ 105℃ 125℃ Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 SIRC Freq vs VCC 120.0 100.0 -40℃ -20℃ Freq (KHz) 80.0 0℃ 25℃ 60.0 50℃ 40.0 70℃ 85℃ 20.0 105℃ 125℃ 0.0 2.2V 3.0V 4.0V VCC (V) 5.0V 6.0V SIRC Freq vs Temperature 120.0 Freq (KHz) 100.0 80.0 2.2V 3.0V 60.0 4.0V 40.0 5.0V 6.0V 20.0 0.0 -40℃ -20℃ DS-TM56M1511_31_S 0℃ 25℃ 50℃ 70℃ Temperature(℃) 86 85℃ 105℃ 125℃ Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 Min Operating Voltage 2.40 2.20 VCC (V) 2.00 1.80 FIRC16MHz 1.60 FIRC8MHz 1.40 POR LVR2.05V 1.20 1.00 0.80 -40℃ -20℃ 0℃ DS-TM56M1511_31_S 25℃ 50℃ 70℃ 85℃ 105℃ 125℃ Temperature(℃) 87 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 封装信息 请注意,此处提供的包装信息仅供参考。 由于此信息经常更新,因此用户可以联系销售人员以咨 询最新的包装信息和库存。 订购信息: DS-TM56M1511_31_S Ordering number Package TM56M1511-MTP Wafer / Dice blank chip TM56M1511-COD Wafer / Dice with code TM56M1511-MTP-14 SOP 8 pin (150mil) TM56M1511-MTP-A8 SOT23-6 Ordering number Package TM56M1531-MTP Wafer / Dice blank chip TM56M1531-COD Wafer / Dice with code TM56M1531-MTP-14 SOP 8 pin (150mil) TM56M1531-MTP-A8 SOT23-6 88 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 SOP-8 ( 150mil ) 封装尺寸 DS-TM56M1511_31_S 89 Rev 0.90, 2023/03/01 TM56M1511/31 数据手册 SOT23-6 封装尺寸 DS-TM56M1511_31_S 90 Rev 0.90, 2023/03/01
TM56M1531-MTP-14 价格&库存

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

免费人工找货