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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
CMS89FT628

CMS89FT628

  • 厂商:

    CMSEMICON(中微)

  • 封装:

    -

  • 描述:

    CMS89FT628

  • 数据手册
  • 价格&库存
CMS89FT628 数据手册
Cmsemicon CMS89FT6xx CMS89FT6xx 用户手册 增强型闪存 8 位 CMOS 单片机 V1.7 请注意以下有关CMS知识产权政策 *中微半导体公司已申请了专利,享有绝对的合法权益。与中微半导体公司MCU或其他产品有关的专利权并未 被同意授权使用,任何经由不当手段侵害中微半导体公司专利权的公司、组织或个人,中微半导体公司将采取 一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨中微半导体公司因侵权行为所受的损失、或侵权者 所得的不法利益。 *中微的名称和标识都是中微半导体公司的注册商标。 *中微半导体公司保留对规格书中产品在可靠性、功能和设计方面的改进作进一步说明的权利。然而中微半导 体公司对于规格内容的使用不负责任。文中提到的应用其目的仅仅是用来做说明,中微半导体公司不保证和不 表示这些应用没有更深入的修改就能适用,也不推荐它的产品使用在会由于故障或其它原因可能会对人身造成 危害的地方。中微半导体公司产品不授权适用于救生、维生器件或系统中作为关键器件。中微半导体公司拥有 不事先通知而修改产品的权利,对于最新的信息,请参考我们的网站http://www.mcu.com.cn www.mcu.com.cn -1- V1.7 Cmsemicon CMS89FT6xx 目录 CMS89FT6XX .............................................................................................................................. 1 1. 产品概述 ................................................................................................................................ 1 1.1 功能特性 ........................................................................................................................................................................ 1 1.2 系统结构框图 ................................................................................................................................................................. 2 1.3 管脚分布 ........................................................................................................................................................................ 3 1.3.1 CMS89FT623 引脚图 .................................................................................................................................................3 1.3.2 CMS89FT6231 引脚图 ...............................................................................................................................................4 1.3.3 CMS89FT626 引脚图 .................................................................................................................................................5 1.3.4 CMS89FT627 引脚图 .................................................................................................................................................6 1.3.5 CMS89FT628 引脚图 .................................................................................................................................................7 1.4 系统配置寄存器 ............................................................................................................................................................. 8 1.5 在线串行编程 ................................................................................................................................................................. 9 2. 中央处理器(CPU) ............................................................................................................ 10 2.1 内存 ............................................................................................................................................................................. 10 2.1.1 程序内存 ...................................................................................................................................................................10 2.1.2 数据存储器 ...............................................................................................................................................................15 2.2 寻址方式 ...................................................................................................................................................................... 20 2.2.1 直接寻址 ...................................................................................................................................................................20 2.2.2 立即寻址 ...................................................................................................................................................................20 2.2.3 间接寻址 ...................................................................................................................................................................20 2.3 堆栈 ............................................................................................................................................................................. 21 2.4 工作寄存器(ACC).................................................................................................................................................... 22 2.4.1 概述 ..........................................................................................................................................................................22 2.4.2 ACC 应用 .................................................................................................................................................................22 2.5 程序状态寄存器(STATUS) ...................................................................................................................................... 23 2.6 预分频器(OPTION_REG) ....................................................................................................................................... 25 2.7 程序计数器(PC) ...................................................................................................................................................... 27 2.8 看门狗计数器(WDT) ............................................................................................................................................... 28 2.8.1 WDT 周期 .................................................................................................................................................................28 2.8.2 看门狗定时器控制寄存器 WDTCON .........................................................................................................................28 3. 系统时钟 .............................................................................................................................. 29 3.1 概述 ............................................................................................................................................................................. 29 3.2 系统振荡器 .................................................................................................................................................................. 30 3.2.1 内部 RC 振荡 ............................................................................................................................................................30 3.3 起振时间 ...................................................................................................................................................................... 30 3.4 振荡器控制寄存器........................................................................................................................................................ 31 4. 复位 ..................................................................................................................................... 32 www.mcu.com.cn -2- V1.7 Cmsemicon CMS89FT6xx 4.1 上电复位 ...................................................................................................................................................................... 32 4.2 掉电复位 ...................................................................................................................................................................... 33 4.2.1 概述 ..........................................................................................................................................................................33 4.2.2 掉电复位的改进办法 .................................................................................................................................................34 4.3 看门狗复位 .................................................................................................................................................................. 34 5. 休眠模式 .............................................................................................................................. 35 5.1 进入休眠模式 ............................................................................................................................................................... 35 5.2 从休眠状态唤醒 ........................................................................................................................................................... 35 5.3 使用中断唤醒 ............................................................................................................................................................... 35 5.4 休眠模式应用举例........................................................................................................................................................ 36 5.5 休眠模式唤醒时间........................................................................................................................................................ 36 6. I/O 端口 ................................................................................................................................ 37 6.1 I/O 口结构图 ................................................................................................................................................................ 38 6.2 PORTA ........................................................................................................................................................................ 39 6.2.1 PORTA 数据及方向控制 ...........................................................................................................................................39 6.2.2 PORTA 上拉电阻 ......................................................................................................................................................40 6.3 PORTB ........................................................................................................................................................................ 41 6.3.1 PORTB 数据及方向 ..................................................................................................................................................41 6.3.2 PORTB 上拉电阻......................................................................................................................................................42 6.4 PORTC ........................................................................................................................................................................ 43 6.4.1 PORTC 数据及方向 ..................................................................................................................................................43 6.4.2 PORTC 上拉电阻 .....................................................................................................................................................44 6.5 PORTD ........................................................................................................................................................................ 45 6.5.1 PORTD 数据及方向 ..................................................................................................................................................45 6.5.2 PORTD 上拉电阻 .....................................................................................................................................................46 6.6 I/O 使用 ....................................................................................................................................................................... 47 6.6.1 写 I/O 口 ...................................................................................................................................................................47 6.6.2 读 I/O 口 ...................................................................................................................................................................47 6.7 I/O 口使用注意事项 ..................................................................................................................................................... 48 7. 中断 ..................................................................................................................................... 49 7.1 中断概述 ...................................................................................................................................................................... 49 7.2 中断控制寄存器 ........................................................................................................................................................... 50 7.2.1 中断控制寄存器 ........................................................................................................................................................50 7.2.2 外设中断允许寄存器 .................................................................................................................................................51 7.2.3 外设中断请求寄存器 .................................................................................................................................................52 7.3 中断现场的保护方法 .................................................................................................................................................... 54 7.4 中断的优先级,及多中断嵌套 ...................................................................................................................................... 54 8. 定时计数器 TIMER0 ............................................................................................................. 55 8.1 定时计数器 TIMER0 概述 ............................................................................................................................................ 55 www.mcu.com.cn -3- V1.7 Cmsemicon 8.2 CMS89FT6xx TIMER0 的工作原理 .................................................................................................................................................... 56 8.2.1 8 位定时器模式 ........................................................................................................................................................56 8.2.2 8 位计数器模式.........................................................................................................................................................56 8.2.3 软件可编程预分频器 .................................................................................................................................................56 8.2.4 在 TIMER0 和 WDT 模块间切换预分频器 .................................................................................................................57 8.2.5 TIMER0 中断 ............................................................................................................................................................57 8.3 与 TIMER0 相关寄存器 ................................................................................................................................................ 58 9. 定时计数器 TIMER2 ............................................................................................................. 59 9.1 TIMER2 概述 ............................................................................................................................................................... 59 9.2 TIMER2 的工作原理 .................................................................................................................................................... 60 9.3 TIMER2 相关的寄存器 ................................................................................................................................................. 61 10. 模数转换(ADC) ............................................................................................................... 62 10.1 ADC 概述..................................................................................................................................................................... 62 10.2 ADC 配置..................................................................................................................................................................... 63 10.2.1 端口配置 ...................................................................................................................................................................63 10.2.2 通道选择 ...................................................................................................................................................................63 10.2.3 ADC 参考电压 ..........................................................................................................................................................63 10.2.4 转换时钟 ...................................................................................................................................................................63 10.2.5 ADC 中断 .................................................................................................................................................................64 10.2.6 结果格式化 ...............................................................................................................................................................64 10.3 ADC 工作原理 ............................................................................................................................................................. 65 10.3.1 启动转换 ...................................................................................................................................................................65 10.3.2 完成转换 ...................................................................................................................................................................65 10.3.3 终止转换 ...................................................................................................................................................................65 10.3.4 ADC 在休眠模式下的工作原理 .................................................................................................................................65 10.3.5 A/D 转换步骤 ............................................................................................................................................................66 10.4 ADC 相关寄存器 .......................................................................................................................................................... 67 11. 主控同步串行端口(MSSP)模块 ....................................................................................... 70 11.1 主控 SSP(MSSP)模块概述 .......................................................................................................................................... 70 11.2 SPI 模式 ...................................................................................................................................................................... 70 11.2.2 SPI 相关寄存器 ........................................................................................................................................................71 11.2.3 SPI 工作原理 ............................................................................................................................................................73 11.2.4 使能 SPI I/O .............................................................................................................................................................74 11.2.5 主控模式 ...................................................................................................................................................................74 11.2.6 从动模式 ...................................................................................................................................................................75 11.2.7 从动选择同步............................................................................................................................................................76 11.2.8 休眠操作 ...................................................................................................................................................................78 11.2.9 复位的影响 ...............................................................................................................................................................78 11.3 2 I C 模块 ....................................................................................................................................................................... 79 www.mcu.com.cn -4- V1.7 Cmsemicon CMS89FT6xx 11.3.1 相关寄存器说明 ........................................................................................................................................................80 11.3.2 主控模式 ...................................................................................................................................................................83 2 11.3.3 I C 主控模式支持 ......................................................................................................................................................84 11.3.4 波特率发生器............................................................................................................................................................86 2 11.3.5 I C 主控模式发送 ......................................................................................................................................................87 2 11.3.6 I C 主控模式接收 ......................................................................................................................................................88 2 11.3.7 I C 主控模式启动条件时序 .......................................................................................................................................90 2 11.3.8 I C 主控模式重复启动条件时序 ................................................................................................................................91 11.3.9 应答序列时序............................................................................................................................................................92 11.3.10 停止条件序列............................................................................................................................................................93 11.3.11 时钟仲裁 ...................................................................................................................................................................94 11.3.12 多主机模式 ...............................................................................................................................................................94 11.3.13 多主机通信、总线冲突与总线仲裁 ...........................................................................................................................95 11.3.14 从动模式 ...................................................................................................................................................................95 11.3.15 SSP 屏蔽寄存器 .......................................................................................................................................................98 11.3.16 休眠模式下的操作 ....................................................................................................................................................98 11.3.17 复位的影响 ...............................................................................................................................................................98 12. LCD/LED 驱动模块 .............................................................................................................. 99 12.1 LCD/LED 功能使能 ...................................................................................................................................................... 99 12.2 LCD/LED 功能管脚设置 ............................................................................................................................................... 99 12.3 LCD/LED 功能 COM 口设置 ...................................................................................................................................... 100 12.4 LCD/LED 功能的 SEG 口设置 ................................................................................................................................... 100 12.5 LCD/LED 功能的数据设置 ......................................................................................................................................... 101 12.6 LCD/LED 相关寄存器 ................................................................................................................................................ 102 13. 程序 EEPROM 控制 ........................................................................................................... 106 13.1 程序 EEPROM 概述................................................................................................................................................... 106 13.2 相关寄存器 ................................................................................................................................................................ 107 13.2.1 EEADR 寄存器 .......................................................................................................................................................107 13.2.2 EECON1 和 EECON2 寄存器.................................................................................................................................107 13.3 读程序 EEPROM ....................................................................................................................................................... 109 13.4 写程序 EEPROM ........................................................................................................................................................ 110 13.5 EPROM 操作注意事项 ................................................................................................................................................ 111 13.5.1 写校验 .................................................................................................................................................................... 111 13.5.2 避免误写的保护 ...................................................................................................................................................... 111 14. 触摸按键功能 ..................................................................................................................... 112 14.1 触摸按键结构 .............................................................................................................................................................. 112 14.2 触摸按键寄存器描述 ................................................................................................................................................... 112 14.3 触摸按键操作 .............................................................................................................................................................. 118 14.4 触摸按键中断 ............................................................................................................................................................. 120 www.mcu.com.cn -5- V1.7 Cmsemicon CMS89FT6xx 15. 电气参数 ............................................................................................................................ 121 15.1 DC 特性 ..................................................................................................................................................................... 121 15.2 AC 特性 ..................................................................................................................................................................... 121 15.3 内部 RC 振荡特性 ...................................................................................................................................................... 122 15.3.1 内部 RC 振荡电压特性 ...........................................................................................................................................122 15.3.2 内部 RC 振荡温度特性 ...........................................................................................................................................122 16. 指令 ................................................................................................................................... 123 16.1 指令一览表 ................................................................................................................................................................ 123 16.2 指令说明 .................................................................................................................................................................... 125 17. 封装 ................................................................................................................................... 141 17.1 SOP 16 ...................................................................................................................................................................... 141 17.2 SOP 20 ...................................................................................................................................................................... 143 17.3 SOP24 ....................................................................................................................................................................... 144 17.4 SKY24 ....................................................................................................................................................................... 145 17.5 SOP28 ....................................................................................................................................................................... 146 18. 版本修订说明 ..................................................................................................................... 147 www.mcu.com.cn -6- V1.7 Cmsemicon CMS89FT6xx 1. 产品概述 1.1 功能特性 ◆ ◆ 工作电压范围:3.0V~5.5V @ 8MHz 2.5V~5.5V @ 4MHz 工作温度范围:-40℃~85℃ ◆ 内存 Flash:4K×16 通用 RAM:344×8 8 级堆栈缓存器 ◆ ◆ 简洁实用的指令系统(68 条指令) ◆ 一种振荡方式 内部 RC 振荡:设计频率 8MHz 指令周期(单指令或双指令) ◆ 高精度 12 位 ADC ◆ 内置 WDT 定时器 ◆ 内置低压侦测电路 ◆ MSSP 通信模块(SPI/I2C) ◆ ◆ 定时器 8 位定时器 TIMER0,TIMER2 ◆ 中断源 2 个定时中断 其它外设中断 内置 32×16 程序 EEPROM ◆ 内置触摸按键模块 ◆ 查表功能 ◆ 内置 LED/LCD 驱动模块 型号说明: PRODUCT Flash RAM PRO EE LED LCD I/O ADC Touch PACKAGE CMS89FT623 4K×16 344×8 32×16 ---- ---- 14 12Bit×2 6 SOP16 CMS89FT6231 4K×16 344×8 32×16 ---- ---- 14 12Bit×3 8 SOP16 CMS89FT626 4K×16 344×8 32×16 7×3 15×3 18 12Bit×4 8 SOP20 CMS89FT627 4K×16 344×8 32×16 7×7 15×7 22 12Bit×8 8 SKY24/SOP24 CMS89FT628 4K×16 344×8 32×16 11×7 19×7 26 12Bit×8 12 SOP28 www.mcu.com.cn -1- V1.7 Cmsemicon 1.2 CMS89FT6xx 系统结构框图 4096×16 Program Memory 344×8 Data Memory PC AD Converter Stack1 TIMER0 .. Addr Mux TIMER2 Stack8 Fsr Reg Instruction Reg TOUCH KEY I/O PORT MSSP Instruction Decode and Control ACC Mux Device Reset Timer EEPROM LED/LCD Power-on Reset ALU Timing Generation Watch Dog Timer OSC VDD,GND www.mcu.com.cn -2- V1.7 Cmsemicon 1.3 CMS89FT6xx 管脚分布 1.3.1 CMS89FT623 引脚图 KEY1/RB0 1 16 RA0/SDI/SDA/ICSPDAT KEY2/RB1 2 15 RA1/SDO KEY3/RB2 3 14 RA2/SCK/SCL/ICSPCLK KEY4/RB3 4 13 RA3/SS KEY5/RB4 5 12 RA4/INT KEY6/RB5 6 11 RA7/T0CKI GND 7 10 RD1/AN1 VDD 8 9 RD0/AN0 CMS89FT623 CMS89FT623 引脚说明: 管脚名称 IO 类型 管脚说明 VDD,GND P 电源电压输入脚,接地脚 RA0-RA4,RA7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RB0-RB5 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RD0,RD1 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 ICSPCLK/ICSPDAT I 编程时钟输入脚 AN0,AN1 I 12 位 ADC 输入脚 KEY1-KEY6 O 触摸按键输入脚 SCK I/O SPI 时钟 SDI I SPI 数据输入 SDO O SPI 数据输出 SS I SPI 从动选择 SCL I/O I C 时钟 SDA I/O I C 数据输入/输出 INT I 外部中断输入脚 T0CKI I TIMER0 外部时钟输入脚 www.mcu.com.cn 2 2 -3- V1.7 Cmsemicon CMS89FT6xx 1.3.2 CMS89FT6231 引脚图 KEY1/RB0 1 16 RA0/ICSPDAT KEY2/RB1 2 15 RA2/ICSPCLK KEY3/RB2 3 14 RA7/T0CKI KEY4/RB3 4 13 RD6/AN6 KEY5/RB4 5 12 RD5/AN5 KEY6/RB5 6 11 RD0/AN0 KEY7/RB6 7 10 VDD KEY8/RB7 8 9 GND CMS89FT6231 CMS89FT6231 引脚说明: 管脚名称 IO 类型 管脚说明 VDD, GND P 电源电压输入脚,接地脚 RA0, RA2, RA7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RB0-RB7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RD0, RD5, RD6 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 ICSPCLK/ICSPDAT I 编程时钟输入脚 AN0, AN5, AN6 I 12 位 ADC 输入脚 KEY1-KEY8 O 触摸按键输入脚 www.mcu.com.cn -4- V1.7 Cmsemicon CMS89FT6xx 1.3.3 CMS89FT626 引脚图 SEG11/KEY1/RB0 1 20 RA0/SDI/SDA/ICSPDAT/SEG0 SEG12/KEY2/RB1 2 19 RA1/SDO/SEG1 SEG13/KEY3/RB2 3 18 RA2/SCK/SCL/ICSPCLK/SEG2 SEG14/KEY4/RB3 4 17 RA3/SS/SEG3 SEG15/KEY5/RB4 5 16 RA4/INT/SEG4 SEG16/KEY6/RB5 6 15 RA7/T0CKI/SEG5 SEG17/KEY7/RB6 7 14 RD7/AN7/SEG6 SEG18/KEY8/RB7 8 13 RD6/AN6/COM6 GND 9 12 RD1/AN1/COM1 VDD 10 11 RD0/AN0/COM0 CMS89FT626 CMS89FT626 引脚说明: 管脚名称 IO 类型 管脚说明 VDD,GND P 电源电压输入脚,接地脚 RA0-RA4,RA7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RB0-RB7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RD0,RD1,RD6,RD7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 ICSPCLK/ICSPDAT I 编程时钟输入脚 AN0,AN1,AN6,AN7 I 12 位 ADC 输入脚 KEY1-KEY8 O 触摸按键输入脚 COM0,COM1,COM6 O LED/LCD COM 口 SEG0-SEG6 O LED/LCD SEG 口 SEG11-SEG18 O LCD SEG 口 SCK I/O SPI 时钟 SDI I SPI 数据输入 SDO O SPI 数据输出 SS I SPI 从动选择 SCL I/O I C 时钟 SDA I/O I C 数据输入/输出 INT I 外部中断输入脚 T0CKI I TIMER0 外部时钟输入脚 www.mcu.com.cn 2 2 -5- V1.7 Cmsemicon CMS89FT6xx 1.3.4 CMS89FT627 引脚图 SEG11/KEY1/RB0 1 24 RA0/SDI/SDA/ICSPDAT/SEG0 SEG12/KEY2/RB1 2 23 RA1/SDO/SEG1 SEG13/KEY3/RB2 3 22 RA2/SCK/SCL/ICSPCLK/SEG2 SEG14/KEY4/RB3 4 21 RA3/SS/SEG3 SEG15/KEY5/RB4 5 20 RA4/INT/SEG4 SEG16/KEY6/RB5 6 19 RA7/T0CKI/SEG5 SEG17/KEY7/RB6 7 18 RD7/AN7/SEG6 SEG18/KEY8/RB7 8 17 RD6/AN6/COM6 GND 9 16 RD5/AN5/COM5 VDD 10 15 RD4/AN4/COM4 COM0/AN0/RD0 11 14 RD3/AN3/COM3 COM1/AN1/RD1 12 13 RD2/AN2/COM2 CMS89FT627 CMS89FT627 引脚说明: 管脚名称 IO 类型 管脚说明 VDD,GND P 电源电压输入脚,接地脚 RA0-RA4,RA7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RB0-RB7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RD0-RD7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 ICSPCLK/ICSPDAT I 编程时钟输入脚 AN2-AN7 I 12 位 ADC 输入脚 KEY1-KEY8 O 触摸按键输入脚 COM0-COM6 O LED/LCD COM 口 SEG0-SEG6 O LED/LCD SEG 口 SEG11-SEG18 O LCD SEG 口 SCK I/O SPI 时钟 SDI I SPI 数据输入 SDO O SPI 数据输出 SS I SPI 从动选择 SCL I/O I C 时钟 SDA I/O I C 数据输入/输出 INT I 外部中断输入脚 T0CKI I TIMER0 外部时钟输入脚 www.mcu.com.cn 2 2 -6- V1.7 Cmsemicon CMS89FT6xx 1.3.5 CMS89FT628 引脚图 SEG11/KEY1/RB0 1 28 RA0/SDI/SDA/ICSPDAT/SEG0 SEG12/KEY2/RB1 2 27 RA1/SDO/SEG1 SEG13/KEY3/RB2 3 26 RA2/SCK/SCL/ICSPCLK/SEG2 SEG14/KEY4/RB3 4 25 RA3/SS/SEG3 SEG15/KEY5/RB4 5 24 RA4/INT/SEG4 SEG16/KEY6/RB5 6 23 RA7/T0CKI/SEG5 SEG17/KEY7/RB6 7 22 RD7/AN7/SEG6 SEG18/KEY8/RB7 8 21 RD6/AN6/COM6 SEG7/KEY9/RC0 9 20 RD5/AN5/COM5 SEG8/KEY10/RC1 10 19 RD4/AN4/COM4 SEG9/KEY11/RC2 11 18 RD3/AN3/COM3 SEG10/KEY12/RC3 12 17 RD2/AN2/COM2 GND 13 16 RD1/AN1/COM1 VDD 14 15 RD0/AN0/COM0 CMS89FT628 CMS89FT628 引脚说明: 管脚名称 IO 类型 管脚说明 VDD,GND P 电源电压输入脚,接地脚 RA0-RA4,RA7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RB0-RB7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RC0-RC3 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 RD0-RD7 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能 ICSPCLK/ICSPDAT I 编程时钟输入脚 AN0-AN7 I 12 位 ADC 输入脚 KEY1-KEY12 O 触摸按键输入脚 COM0-COM6 O LED/LCD COM 口 SEG0-SEG10 O LED/LCD SEG 口 SEG11-SEG18 O LCD SEG 口 SCK I/O SPI 时钟 SDI I SPI 数据输入 SDO O SPI 数据输出 SS I SPI 从动选择 SCL I/O I C 时钟 SDA I/O I C 数据输入/输出 INT I 外部中断输入脚 T0CKI I TIMER0 外部时钟输入脚 www.mcu.com.cn 2 2 -7- V1.7 Cmsemicon 1.4 CMS89FT6xx 系统配置寄存器 系统配置寄存器(CONFIG)是 MCU 初始条件的 FLASH 选项。它只能被 CMS 烧写器烧写,用户不能通 过程序访问及操作。它包含了以下内容: 1. 2. 3. 4. WDT(看门狗选择) ◆ ENABLE 打开看门狗定时器 ◆ 关闭看门狗定时器 DISABLE PROTECT(加密) ◆ DISABLE Flash 代码不加密 ◆ ENABLE Flash 代码加密,加密后烧写/仿真器读出来的值将不确定 EE_PROTECT(加密) ◆ DISABLE 程序 EEPROM 代码不加密 ◆ ENABLE 程序 EEPROM 代码加密,加密后烧写/仿真器读出来的值将不确定 LVR_SEL(低压侦测电压选择) ◆ 2.5V ◆ 3.0V www.mcu.com.cn -8- V1.7 Cmsemicon 1.5 CMS89FT6xx 在线串行编程 可在最终应用电路中对单片机进行串行编程。编程可以简单地通过以下 4 根线完成:  电源线  接地线  数据线  时钟线 这使用户可使用未编程的器件制造电路板,而仅在产品交付前才对单片机进行编程。从而可以将最新版本 的固件或者定制固件烧写到单片机中。 至正常连接(如接VDD、GND或者驱动LED、三极管等) R1 R2 仿真器/烧录器信号 CMS MCU VDD VDD GND GND DAT ICSPDAT CLK ICSPCLK 图 1-1:典型的在线串行编程连接方式 上图中,R1、R2 为电气隔离器件,常以电阻代替,其阻值如下:R1≥4.7K、R2≥4.7K。 www.mcu.com.cn -9- V1.7 Cmsemicon CMS89FT6xx 2. 中央处理器(CPU) 2.1 内存 2.1.1 程序内存 FLASH:4K 0000H 复位向量 程序开始,跳转至用户程序 中断向量 中断入口,用户中断程序 0001H 0002H 0003H 0004H ... 用户程序区 ... ... 0FFDH 0FFEH 0FFFH 2.1.1.1 跳转至复位向量0000H 程序结束 复位向量(0000H) 单片机具有一个字长的系统复位向量(0000H) 。具有以下三种复位方式:  上电复位  看门狗复位  低压复位(LVR) 发生上述任一种复位后, 程序将从 0000H 处重新开始执行, 系统寄存器也都将恢复为默认值。根据 STATUS 寄存器中的 PD 和 TO 标志位的内容可以判断系统复位方式。下面一段程序演示了如何定义 FLASH 中的复位 向量。 例:定义复位向量 ORG JP ORG 0000H START 0010H ;系统复位向量 ;用户程序起始 START: … … END www.mcu.com.cn ;用户程序 ;程序结束 -10- V1.7 Cmsemicon 2.1.1.2 CMS89FT6xx 中断向量 中断向量地址为 0004H。一旦有中断响应,程序计数器 PC 的当前值就会存入堆栈缓存器并跳转到 0004H 开始执行中断服务程序。所有中断都会进入 0004H 这个中断向量,具体执行哪个中断将由用户根据中断请求 标志位寄存器的位决定。下面的示例程序说明了如何编写中断服务程序。 例:定义中断向量,中断程序放在用户程序之后 ORG JP ORG 0000H START 0004H ;系统复位向量 CALL … … PUSH ;保存 ACC 跟 STATUS ;用户中断程序 CALL RETI POP ;返回 ACC 跟 STATUS ;中断返回 ;用户程序起始 INT_START: INT_BACK: START: … … ;用户程序 END ;程序结束 注:由于单片机并未提供专门的出栈、压栈指令,故用户需自己保护中断现场。 例:中断入口保护现场 PUSH: LD ACC_BAK,A ;保存 ACC 至自定义寄存器 ACC_BAK SWAPA STATUS ;状态寄存器 STATUS 高低半字节互换 LD STATUS_BAK,A ;保存至自定义寄存器 STATUS_BAK SWAPA STATUS_BAK ;将保存至 STATUS_BAK 的数据高低半字节互换给 ACC LD STATUS,A ;将 ACC 的值给状态寄存器 STATUS SWAPR ACC_BAK ;将保存至 ACC_BAK 的数据高低半字节互换 SWAPA ACC_BAK ;将保存至 ACC_BAK 的数据高低半字节互换给 ACC 例:中断出口恢复现场 POP: www.mcu.com.cn -11- V1.7 Cmsemicon 2.1.1.3 CMS89FT6xx 查表 芯片具有查表功能,FLASH 空间的任何地址都可做为查表使用。 相关指令: 相关指令:  TABLE [R] 把表格内容的低字节送给寄存器 R,高字节送到寄存器 TABLE_DATAH。  TABLEA 把表格内容的低字节送给累加器 ACC,高字节送到寄存器 TABLE_DATAH。 相关寄存器:  TABLE_SPH(110H) 可读写寄存器,用来指明表格高 4 位地址。  TABLE_SPL(111H) 可读写寄存器,用来指明表格低 8 位地址。  TABLE_DATAH(112H) 只读寄存器,存放表格高字节内容。 注:在查表之前要先把表格地址写入 TABLE_SPH 和 TABLE_SPL 中。如果主程序和中断服务程序都 用到查表指令,主程序中的 TABLE_SPH 的值可能会因为中断中执行的查表指令而发生变化,产 生错误。也就是说要避免在主程序和中断服务程序中都使用查表指令。但如果必须这样做的话, 我们可以在查表指令前先将中断禁止,在查表结束后再开放中断,以避免发生错误。 提供表格高 4 位地址给 TABLE_SPH 提供表格低 8 位地址给 TABLE_SPL 表格 12 位地址(TABLE_SPH+TABLE_SPL) 调表格指令(TABLEA 或 TABLE [R]) 高 8 位数据给 TABLE_DATAH 低 8 位数据给 ACC(TABLEA)或 R(TABLE [R]) : 图2-1:表格调用的流程图 www.mcu.com.cn -12- V1.7 Cmsemicon CMS89FT6xx 下面例子给出了如何在程序中调用表格。 … ;上接用户程序 ;表格低位地址 LDIA 02H LD TABLE_SPL,A LDIA 06H LD TABLE_SPH,A TABLE R01 ;表格指令,将表格低 8 位(56H)给自定义寄存器 R01 LD A,TABLE_DATAH ;将查表结果的高 8 位(34H)给累加器 ACC LD R02,A ;将 ACC 值(34H)给自定义寄存器 R02 ;表格高位地址 … www.mcu.com.cn ;用户程序 ORG 0600H ;表格起始地址 DW 1234H ;0600H 地址表格内容 DW 2345H ;0601H 地址表格内容 DW 3456H ;0602H 地址表格内容 DW 0000H ;0603H 地址表格内容 -13- V1.7 Cmsemicon 2.1.1.4 CMS89FT6xx 跳转表 跳转表能够实现多地址跳转功能。由于 PCL 和 ACC 的值相加即可得到新的 PCL,因此,可以通过对 PCL 加上不同的 ACC 值来实现多地址跳转。ACC 值若为 n,PCL+ACC 即表示当前地址加 n,执行完当前指令后 PCL 值还会自加 1,可参考以下范例。如果 PCL+ACC 后发生溢出,PC 不会自动进位,故编写程序时应注意。 这样,用户就可以通过修改 ACC 的值轻松实现多地址的跳转。 PCLATH 为 PC 高位缓冲寄存器,对 PCL 操作时,必须先对 PCLATH 进行赋值。 例:正确的多地址跳转程序示例 FLASH 地址 LDIA 01H LD PCLATH,A ;必须对 PCLATH 进行赋值 … 0110H: ADDR PCL 0111H: JP LOOP1 ;ACC+PCL ;ACC=0,跳转至 LOOP1 0112H: JP LOOP2 ;ACC=1,跳转至 LOOP2 0113H: JP LOOP3 ;ACC=2,跳转至 LOOP3 0114H: JP LOOP4 ;ACC=3,跳转至 LOOP4 0115H: JP LOOP5 ;ACC=4,跳转至 LOOP5 0116H: JP LOOP6 ;ACC=5,跳转至 LOOP6 例:错误的多地址跳转程序示例 FLASH 地址 CLR PCLATH … 00FCH: ADDR PCL 00FDH: JP LOOP1 ;ACC+PCL ;ACC=0,跳转至 LOOP1 00FEH: JP LOOP2 ;ACC=1,跳转至 LOOP2 00FFH: JP LOOP3 ;ACC=2,跳转至 LOOP3 0100H: JP LOOP4 ;ACC=3,跳转至 0000H 地址 0101H: JP LOOP5 ;ACC=4,跳转至 0001H 地址 0102H: JP LOOP6 ;ACC=5,跳转至 0002H 地址 注:由于 PCL 溢出不会自动向高位进位,故在利用 PCL 作多地址跳转时,需要注意该段程序一定不 能放在 FLASH 空间的分页处。 www.mcu.com.cn -14- V1.7 Cmsemicon CMS89FT6xx 2.1.2 数据存储器 CMS89FT6xx 数据存储器列表 地址 地址 地址 地址 INDF 00h INDF 80h INDF 100h INDF 180h TMR0 01h OPTION_REG 81h TMR0 101h OPTION_REG 181h PCL 02h PCL 82h PCL 102h PCL 182h STATUS 03h STATUS 83h STATUS 103h STATUS 183h FSR 04h FSR 84h FSR 104h FSR 184h PORTA 05h TRISA 85h WDTCON 105h ---- 185h PORTB 06h TRISB 86h PORTB 106h TRISB 186h PORTC 07h TRISC 87h WPUB 107h ---- 187h PORTD 08h TRISD 88h WPUA 108h ---- 188h WPUC 09h WPUD 89h ---- 109h ---- 189h PCLATH 0Ah PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah INTCON 0Bh INTCON 8Bh INTCON 10Bh INTCON 18Bh PIR1 0Ch PIE1 8Ch EEDATA 10Ch EECON1 18Ch PIR2 0Dh PIE2 8Dh EEADR 10Dh EECON2 18Dh ---- 0Eh ---- 8Eh EEDATH 10Eh TKM216DL 18Eh ---- 0Fh OSCCON 8Fh ---- 10Fh TKM216DH 18Fh ---- 10h OSCTUNE 90h TABLE_SPH 110h TKM2ROL 190h TMR2 11h SSPCON2 91h TABLE_SPL 111h TKM2ROH 191h T2CON 12h PR2 92h TABLE_DATAH 112h TKM2C1 192h TKM016DL 13h SSPADD 93h TK16DL 113h TKM2C0 193h TKM016DH 14h SSPSTAT 94h TK16DH 114h ---- 194h TKM0ROL 15h SSPCON 95h TKTMR 115h ---- 195h TKM0ROH 16h SSPBUF 96h TKC0 116h ---- 196h TKM0C1 17h ---- 97h TKC1 117h ---- 197h TKM0C0 18h TKM116DL 98h LCDCON0 118h ---- 19h TKM116DH 99h LCDCON1 119h 199h ---- 1Ah TKM1ROL 9Ah LCDADD 11Ah 19Ah ---- 1Bh TKM1ROH 9Bh LCDDATA 11Bh 19Bh ---- 1Ch TKM1C1 9Ch SEGEN2 11Ch 19Ch ---- 1Dh TKM1C0 9Dh SEGEN1 11Dh 19Dh ADRESH 1Eh ADRESL 9Eh SEGEN0 11Eh ADCON0 1Fh ADCON1 9Fh COMEN 11Fh 20h A0h 通用寄存器 80 字节 198h 通用寄存器 88 字节 19Eh 19Fh 120h 1A0h 16Fh 1EFh 通用寄存器 88 字节 通用寄存器 96 字节 6Fh 70h -7Fh BANK0 www.mcu.com.cn EFh 快速存储区 70h-7Fh F0h -FFh BANK1 快速存储区 70h-7Fh BANK2 -15- 170h -17Fh 快速存储区 70h-7Fh 1F0h -1FFh BANK3 V1.7 Cmsemicon CMS89FT6xx 数据存储器由 344×8 位组成,分为两个功能区间:特殊功能寄存器和通用数据存储器。数据存储器单元 大多数是可读/写的,但有些只读的。特殊功能寄存器地址为从 00H-1FH,80-9FH,100-117H,180-197H。 CMS89FT6xx 特殊功能寄存器汇总 Bank0 地址 名称 00h INDF 寻址该单元会使用FSR 的内容寻址数据存储器(不是物理寄存器) xxxx xxxx 01h TMR0 TIMER0数据寄存器 xxxxxxxx 02h PCL 程序计数器低字节 03h STATUS 04h FSR 05h PORTA RA7 06h PORTB RB7 07h PORTC ---- ---- 08h PORTD RD7 RD6 09h WPUC ---- ---- ---- 0Ah PCLATH ---- --- ---- ---- 0Bh INTCON GIE PEIE T0IE INTE ---- 0Ch PIR1 ---- ADIF TKIF ---- 0Dh PIR2 ---- ---- ---- EEIF 11h TMR2 12h T2CON 13h TKM016DL 触摸按键模块0 16位计数器低字节内容 0000 0000 14h TKM016DH 触摸按键模块0 16位计数器高字节内容 0000 0000 15h TKM0ROL 触摸按键模块0 内建电容低8位选择 0000 0000 16h TKM0ROH 触摸按键模块0 内建电容高2位选择 ------00 17h TKM0C1 M0TSS ---- M0ROEN M0KOEN M0K4IO M0K3IO M0K2IO M0K1IO 0-00 0000 18h TKM0C0 M0MXS1 M0MXS0 M0DFEN M0FILEN M0SOFC M0SOF2 M0SOF1 M0SOF0 0000 0000 1Eh ADRESH 1Fh ADCON0 www.mcu.com.cn Bit7 IRP Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 0000 0000 RP1 RP0 TO PD Z DC C ---- ---- RA4 RA3 RA2 RA1 RA0 xxxx xxxx RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx ---- ---- RC3 RC2 RC1 RC0 ---- xxxx RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx ---- WPUC3 WPUC2 WPUC1 WPUC0 ---- 0000 T0IF INTF ---- 0000 -00- ---- BCLIF TMR2IF ---- -00--00- ---- ---- ---- SSPIF ---0---0 间接数据存储器地址指针 TOUTPS3 程序计数器高4位的写缓冲器 ---- 0000 0000 0000 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 A/D结果寄存器的高字节 ADCS1 ADCS0 0001 1xxx xxxx xxxx TIMER2模块寄存器 ---- 复位值 -000 0000 xxxx xxxx CHS3 CHS2 -16- CHS1 CHS0 GO/ DONE ADON 0000 0000 V1.7 Cmsemicon CMS89FT6xx CMS89FT6xx 特殊功能寄存器汇总 Bank1 地址 名称 80h INDF 81h OPTION_REG 82h PCL 83h STATUS 84h FSR 85h TRISA TRISA7 86h TRISB 87h TRISC 88h TRISD TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 89h WPUD WPUD7 WPUD6 WPUD5 WPUD4 WPUD3 WPUD2 8Ah PCLATH ---- ---- ---- ---- 8Bh INTCON GIE PEIE T0IE INTE ---- T0IF INTF ---- 0000 -00- 8Ch PIE1 ---- ADIE TKIE ---- ---- BCLIE TMR2IE ---- -00--00- 8Dh PIE2 ---- ---- ---- EEIE ---- ---- ---- SSPIE ---0---0 8Fh OSCCON ---- IRCF2 IRCF1 IRCF0 ---- ---- ---- SCS -110 ---0 90h OSCTUNE ---- ---- ---- TUN4 TUN3 TUN2 TUN1 TUN0 ---0 0000 91H SSPCON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN 0000 0000 92h PR2 TIMER2周期寄存器 93H SSPADD 同步串行端口(I 93H SSPMSK MSK7 MSK6 MSK5 MSK4 MSK3 MSK2 MSK1 MSK0 1111 1111 94H SSPSTAT SMP CKE D/A P S R/W UA BF 0000 0000 95h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 96h SSPBUF 同步串行端口接收缓冲器/ 发送寄存器 xxxx xxxx 98h TKM116DL 触摸按键模块1 16位计数器低字节内容 0000 0000 99h TKM116DH 触摸按键模块1 16位计数器高字节内容 0000 0000 9Ah TKM1ROL 触摸按键模块1 内建电容低8位选择 0000 0000 9Bh TKM1ROH 触摸按键模块1 内建电容高2位选择 ------00 9Ch TKM1C1 M1TSS ---- M1ROEN M1KOEN M1K4IO M1K3IO M1K2IO M1K1IO 0-00 0000 9Dh TKM1C0 M1MXS1 M1MXS0 M1DFEN M1FILEN M1SOFC M1SOF2 M1SOF1 M1SOF0 0000 0000 9Eh ADRESL 9Fh ADCON1 www.mcu.com.cn Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PS2 PS1 PS0 寻址该地址单元会使用FSR的内容寻址数据存储器(不是物理寄存器) ---- INTEDG T0CS T0SE PSA xxxx xxxx 程序计数器(PC)的低字节 IRP RP1 复位值 -111 1111 0000 0000 RP0 TO PD Z DC C ---- ---- TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1--1 1111 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 ---- ---- ---- ---- TRISC3 TRISC2 TRISC1 TRISC0 ---- 1111 TRISD1 TRISD0 1111 1111 WPUD1 WPUD0 0000 0000 间接数据存储器地址指针 2 xxxx xxxx 程序计数器高4位的写缓冲器 ---- 0000 1111 1111 C模式)地址寄存器 0000 0000 A/D结果寄存器的低字节 ADFM ---- 0001 1xxx xxxx xxxx ---- ---- -17- ---- ---- ---- ---- 0--- ---- V1.7 Cmsemicon CMS89FT6xx CMS89FT6xx 特殊功能寄存器汇总 Bank2 地址 名称 100h INDF 寻址该地址单元会使用FSR的内容寻址数据存储器(不是物理寄存器) xxxx xxxx 101h TMR0 TIMER0模块寄存器 xxxx xxxx 102h PCL 程序计数器(PC)的低字节 0000 0000 103h STATUS 104h FSR 105h WDTCON 106h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 107h WPUB WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 0000 0000 108h WPUA WPUA7 ---- ---- WPUA4 WPUA3 WPUA2 WPUA1 WPUA0 0--0 0000 10Ah PCLATH ---- ---- --- --- 10Bh INTCON GIE PEIE T0IE INTE INTF ---- 10CH EEDATA EEDAT7 EEDAT6 EEDAT5 EEDAT4 EEDAT3 EEDAT2 EEDAT1 EEDAT0 xxxxxxxx 10DH EEADR ---- ---- ---- EEADR4 EEADR3 EEADR2 EEADR1 EEADR0 ---0 0000 10EH EEDATH EEDATH7 EEDATH6 EEDATH5 EEDATH4 EEDATH3 EEDATH2 EEDATH1 EEDATH0 110h TABLE_SPH 表格高位指针 ---- xxxx 111h TABLE_SPL 表格低位指针 xxxx xxxx 112h TABLE_DATAH 表格高位数据 xxxx xxxx 113h TK16DL 触摸按键模块16位计数器低字节内容 0000 0000 114h TK16DH 触摸按键模块16位计数器高字节内容 0000 0000 115h TKTMR 触摸按键8位定时/计数器寄存器 116h TKC0 ---- TKRCOV TKST TKCFOV TK16OV TSCS TK16S1 TK16S0 -000 0000 117h TKC1 ---- ---- ---- ---- ---- ---- TKFS1 TKFS0 ---- --11 118h LCDCON0 LCDEN LEDEN COMSEL[1:0] LCDCLK[3:0] 00000000 119h LCDCON1 VADJEN ---- SEGOUT[1:0] VLCD[3:0] 00000000 11Ah LCDADD LCDCS B2RES 11Bh LCDDATA LCDDATA[7:0] 11Ch SEGEN2 SEGDRI[3:0] 11Dh SEGEN1 SEG15EN SEG14N SEG13EN 11Eh SEGEN0 SEG7EN SEG6EN SEG5EN 11Fh COMEN COM7EN COM6EN COM5EN www.mcu.com.cn Bit7 IRP Bit6 RP1 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 RP0 TO PD Z DC C ---- ---- ---- ---- ---- SWDTEN 间接数据存储器地址指针 ---- 复位值 0001 1xxx xxxx xxxx ---- 程序计数器高4位的写缓冲器 ---- T0IF ---- ---0 ---- 0000 0000 -00- 0000 0000 0000 0000 COMEL[2] LCDADD[4:0] 00000000 00000000 ---- SEG18EN SEG17EN SEG16EN 0000-000 SEG12EN SEG11EN SEG10EN SEG9EN SEG8EN 00000000 SEG4EN SEG3EN SEG2EN SEG1EN SEG0EN 00000000 COM4EN COM3EN COM2EN COM1EN COM0EN 00000000 -18- V1.7 Cmsemicon CMS89FT6xx CMS89FT6xx 特殊功能寄存器汇总 Bank3 地址 名称 180h INDF 181h OPTION_REG 182h PCL 183h STATUS 184h FSR 186h TRISB 18Ah PCLATH ---- ---- ---- ---- 18Bh INTCON GIE PEIE T01E INTE ---- 18Ch EECON1 EEPGD ---- ---- ---- WRERR 18Dh EECON2 EEPROM控制寄存器2(不是物理寄存器) ---- ---- 18EH TKM216DL 触摸按键模块2 16位计数器低字节内容 0000 0000 18FH TKM216DH 触摸按键模块2 16位计数器高字节内容 0000 0000 190h TKM2ROL 触摸按键模块2 内建电容低8位选择 0000 0000 191h TKM2ROH 触摸按键模块2 内建电容高2位选择 0000 0000 192h TKM2C1 M2TSS ---- M2ROEN M2KOEN M2K4IO M2K3IO M2K2IO M2K1IO 0-00 0000 193h TKM2C0 M2MXS1 M2MXS0 M2DFEN M2FILEN M2SOFC M2SOF2 M2SOF1 M2SOF0 0000 0000 www.mcu.com.cn Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PS2 PS1 PS0 寻址该地址单元会使用FSR的内容寻址数据存储器(不是物理寄存器) ---- INTEDG T0CS T0SE PSA xxxx xxxx 程序计(PC)的低字节 IRP RP1 TRISB6 -111 1111 0000 0000 RP0 TO PD Z DC C TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 T01F INTF ---- 0000 -00- WREN WR RD 0--- x000 间接数据存储器地址指针 TRISB7 复位值 0001 1xxx xxxx xxxx -19- 程序计数器高4位的写缓冲器 1111 1111 ---- 0000 V1.7 Cmsemicon 2.2 CMS89FT6xx 寻址方式 2.2.1 直接寻址 通过工作寄存器(ACC)来对 RAM 进行操作。 例:ACC 的值送给 30H 寄存器 LD 30H,A 例:30H 寄存器的值送给 ACC LD A,30H 2.2.2 立即寻址 把立即数传给工作寄存器(ACC) 例:立即数 12H 送给 ACC LDIA 12H 2.2.3 间接寻址 数据存储器能被直接或间接寻址。通过 INDF 寄存器可间接寻址,INDF 不是物理寄存器。当对 INDF 进行 存取时,它会根据 FSR 寄存器内的值(低 8 位)和 STATUS 寄存器的 IRP 位(第 9 位)作为地址,并指向该 地址的寄存器,因此在设置了 FSR 寄存器和 STATUS 寄存器的 IRP 位后,就可把 INDF 寄存器当作目的寄存 器来存取。间接读取 INDF(FSR=0)将产生 00H。间接写入 INDF 寄存器,将导致一个空操作。以下例子说 明了程序中间接寻址的用法。 例:FSR 及 INDF 的应用 LDIA 30H LD FSR,A ;间接寻址指针指向 30H CLRB STATUS,IRP ;指针第 9 位清零 CLR INDF ;清零 INDF 实际是清零 FSR 指向的 30H 地址 RAM 例:间接寻址清 RAM(20H-7FH)举例: LDIA 1FH LD FSR,A CLRB STATUS,IRP INCR FSR ;地址加 1,初始地址为 30H CLR INDF ;清零 FSR 所指向的地址 LDIA 7FH SUBA FSR SNZB STATUS,C JP LOOP ;间接寻址指针指向 1FH LOOP: www.mcu.com.cn ;一直清零至 FSR 地址为 7FH -20- V1.7 Cmsemicon 2.3 CMS89FT6xx 堆栈 芯片的堆栈缓存器共 8 层,堆栈缓存器既不是数据存储器的一部分,也不是程序内存的一部分,且既不能 被读出,也不能被写入。对它的操作通过堆栈指针(SP)来实现,堆栈指针(SP)也不能读出或写入,当系 统复位后堆栈指针会指向堆栈顶部。当发生子程序调用及中断时的程序计数器(PC)值被压入堆栈缓存器,当 从中断或子程序返回时将数值返回给程序计数器(PC) ,下图说明其工作原理。 RET CALL SP7 RETI 中断 SP6 SP5 SP4 SP-1 SP+1 SP3 SP2 SP1 SP0 堆栈缓存器的使用将遵循一个原则“先进后出”。 注:堆栈缓存器只有 8 层,如果堆栈已满,并且发生不可屏蔽的中断,那么只有中断标志位会被记录下来, 而中断响应则会被抑制,直到堆栈指针发生递减,中断才会被响应,这个功能可以防止中断使堆栈溢 出,同样如果堆栈已满,并且发生子程序调用,那么堆栈将会发生溢出,首先进入堆栈的内容将会丢 失,只有最后 8 个返回地址被保留,故用户在写程序时应注意此点,以免发生程序走飞。 www.mcu.com.cn -21- V1.7 Cmsemicon 2.4 CMS89FT6xx 工作寄存器(ACC) 2.4.1 概述 ALU 是 8Bit 宽的算术逻辑单元,MCU 所有的数学、逻辑运算均通过它来完成。它可以对数据进行加、减、 移位及逻辑运算;ALU 也控制状态位(STATUS 状态寄存器中),用来表示运算结果的状态。 ACC 寄存器是一个 8Bit 的寄存器,ALU 的运算结果可以存放在此,它并不属于数据存储器的一部分而是 位于 CPU 中供 ALU 在运算中使用,因此不能被寻址,只能通过所提供的指令来使用。 2.4.2 ACC 应用 例:用 ACC 做数据传送 LD A,R01 ;将寄存器 R01 的值赋给 ACC LD R02,A ;将 ACC 的值赋给寄存器 R02 例:用 ACC 做立即寻址目标操作数 LDIA 30H ANDIA 30H XORIA 30H ;给 ACC 赋值 30H ;将当前 ACC 的值跟立即数 30H 进行“与”操作, ;结果放入 ACC ;将当前 ACC 的值跟立即数 30H 进行“异或”操作, ;结果放入 ACC 例:用 ACC 做双操作数指令的第一操作数 HSUBA R01 ;ACC-R01,结果放入 ACC HSUBR R01 ;ACC-R01,结果放入 R01 例:用 ACC 做双操作数指令的第二操作数 www.mcu.com.cn SUBA R01 ;R01-ACC,结果放入 ACC SUBR R01 ; R01-ACC,结果放入 R01 -22- V1.7 Cmsemicon CMS89FT6xx 程序状态寄存器(STATUS) 2.5 STATUS 寄存器如寄存器下表所示,包含:  ALU 的算术状态;  复位状态;  数据存储器(GPR 和 SFR)的存储区选择位。 与其他寄存器一样,STATUS 寄存器可以是任何指令的目标寄存器。如果一条影响 Z、DC 或 C 位的指令 以 STATUS 寄存器作为目标寄存器,则不能写这 3 个状态位。这些位根据器件逻辑被置 1 或清零。而且也不能 写 TO 和 PD 位。因此将 STATUS 作为目标寄存器的指令可能无法得到预期的结果。 例如,CLR STATUS 会清零高 3 位,并将 Z 位置 1。这样 STATUS 的值将为 000u u1uu(其中 u =不变) 。 因此,建议仅使用 CLRB、SETB、SWAPA、SWAPR 指令来改变 STATUS 寄存器,因为这些指令不会影响任 何状态位。 程序状态寄存器 STATUS(03H) 03H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 STATUS IRP RP1 RP0 TO PD Z DC C 读写 R/W R/W R/W R/W R/W R/W R/W R/W 复位值 0 0 0 1 1 X X X Bit7 Bit6~Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 www.mcu.com.cn IRP: 1= 0= RP[1:0]: 00: 01: 10: 11: TO: 1= 0= PD: 1= 0= Z: 1= 0= DC: 1= 0= C: 1= 0= 寄存器存储区选择位(用于间接寻址); Bank 2和Bank 3(100h-1FFh); Bank 0和Bank 1(00h-FFh)。 存储区选择位; 选择Bank 0; 选择Bank 1; 选择Bank 2; 选择Bank 3。 超时位; 上电或执行了CLRWDT指令或STOP指令; 发生了WDT超时。 掉电位; 上电或执行了CLRWDT指令指令或STOP指令; 执行了STOP指令。 结果为零位; 算术或逻辑运算的结果为零; 算术或逻辑运算的结果不为零。 半进位/借位位; 发生了结果的低4位向高位进位; 结果的低4位没有向高位进位。 进位/借位位; 结果的最高位发生了进位或没有发生借位; 结果的最高位没有发生进位或发生了借位。 -23- V1.7 Cmsemicon CMS89FT6xx TO 和 PD 标志位可反映出芯片复位的原因,下面列出影响 TO、PD 的事件及各种复位后 TO、PD 的状态。 事件 TO PD TO PD 复位原因 电源上电 1 1 0 0 WDT 溢出唤醒休眠 MCU WDT 溢出 0 X 0 1 WDT 溢出非休眠态 STOP 指令 1 0 1 1 电源上电 CLRWDT 指令 1 1 休眠 1 0 复位后 TO/PD 的状态 影响 PD、TO 的事件表 www.mcu.com.cn -24- V1.7 Cmsemicon CMS89FT6xx 预分频器(OPTION_REG) 2.6 OPTION_REG 寄存器是可读写的寄存器,包括各种控制位用于配置:  TIMER0/WDT 预分频器;  TIMER0。 预分频器 OPTION_REG(81H) 81H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OPTION_REG ---- INTEDG T0CS T0SE PSA PS2 PS1 PS0 读写 ---- R/W R/W R/W R/W R/W R/W R/W 复位值 ---- 1 1 1 1 1 1 1 Bit7 Bit6 未用。 INTEDG: 1= 0= Bit5 T0CS: 0: 1: TMR0 时钟源选择位。 内部指令周期时钟(FSYS /4) 。 T0CKI 引脚上的跳变沿。 Bit4 T0SE: 0: 1: TIMER0 时钟源边沿选择位。 在 T0CKI 引脚信号从低电平跳变到高电平时递增。 在 T0CKI 引脚信号从高电平跳变到低电平时递增。 Bit3 PSA: 0: 1: Bit2~Bit0 PS2~PS0: 触发中断的边沿选择位。 INT 引脚上升沿触发中断。 INT 引脚下降沿触发中断。 预分频器分配位。 预分频器分配给 TIMER0 模块。 预分频器分配给 WDT。 预分配参数配置位。 PS2 PS1 PS0 TMR0 分频比 WDT 分频比 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 预分频寄存器实际上是一个 8 位的计数器,用于监视寄存器 WDT 时,是作为一个后分频器;用于定时器/ 计数器时, 作为一个预分频器, 通常统称作预分频器。 在片内只有一个物理的分频器, 只能用于 WDT 或 TIMER0, 两者不能同时使用。也就是说,若用于 TIMER0,WDT 就不能使用预分频器,反之亦然。 当用于 WDT 时,CLRWDT 指令将同时对预分频器和 WDT 定时器清零。 当用于 TIMER0 时,有关写入 TIMER0 的所有指令(如:CLR TMR0,SETB TMR0,1 等)都会对预分频 器清零。 www.mcu.com.cn -25- V1.7 Cmsemicon CMS89FT6xx 由 TIMER0 还是 WDT 使用预分频器,完全由软件控制,可以动态改变。为了避免出现不该有的芯片复位, 当从 TIMER0 换为 WDT 使用时,应该执行以下指令。 CLR ;TMR0 清零 TMR0 ;WDT 清零 CLRWDT LDIA B’00xx1111’ ;必要步骤,必须执行 LD OPTION_REG,A ;必要步骤,必须执行 LDIA B’00xx1xxx’ ;设置新的预分频器 LD OPTION_REG,A 将预分频器从分配给 WDT 切换为分配给 TIMER0 模块,应该执行以下指令。 ;WDT 清零 CLRWDT LDIA B’00xx0xxx’ LD OPTION_REG,A ;设置新的预分频器 注: 要使 TIMER0 获取 1:1 的预分频比配置,可通过将选项寄存器的 PSA 位置 1 将预分频器分配给 WDT。 www.mcu.com.cn -26- V1.7 Cmsemicon 2.7 CMS89FT6xx 程序计数器(PC) 程序计数器(PC)控制程序内存 FLASH 中的指令执行顺序,它可以寻址整个 FLASH 的范围,取得指令 码后,程序计数器(PC)会自动加一,指向下一个指令码的地址。但如果执行跳转、条件跳转、向 PCL 赋值、 子程序调用、初始化复位、中断、中断返回、子程序返回等操作时,PC 会加载与指令相关的地址而不是下一 条指令的地址。 当遇到条件跳转指令且符合跳转条件时,当前指令执行过程中读取的下一条指令将会被丢弃,且会插入一 个空指令操作周期,随后才能取得正确的指令。反之,就会顺序执行下一条指令。 程序计数器(PC)是 12Bit 宽度,低 8 位通过 PCL(02H)寄存器用户可以访问,高 4 位用户不能访问。 可容纳 4K×16Bit 程序地址。对 PCL 赋值将会产生一个短跳转动作,跳转范围为当前页的 256 个地址。 注:当程序员在利用 PCL 作短跳转时,要先对 PC 高位缓冲寄存器 PCLATH 进行赋值。 下面给出几种特殊情况的 PC 值 复位时 PC=0000; 中断时 PC=0004(原来的 PC+1 会被自动压入堆栈); CALL 时 PC=程序指定地址(原来的 PC+1 会被自动压入堆栈); RET、RETI、RET i 时 PC=堆栈出来的值; 操作 PCL 时 PC[11:8]不变,PC[7:0]=用户指定的值; JP 时 PC=程序指定的值; 其它指令 PC=PC+1; www.mcu.com.cn -27- V1.7 Cmsemicon CMS89FT6xx 看门狗计数器(WDT) 2.8 看门狗定时器(Watch Dog TIMER)是一个片内自振式的 RC 振荡定时器,无需任何外围组件,即使芯片 的主时钟停止工作,WDT 也能保持计时。WDT 计时溢出将产生复位。 2.8.1 WDT 周期 WDT 与 TIMER0 共用 8 位预分频器。在所有复位后,WDT 溢出周期 18ms,假如你需要改变的 WDT 周 期,可以设置 OPTION_REG 寄存器。WDT 的溢出周期将受到环境温度,电源电压等参数影响。 “CLRWDT”和“STOP”指令将清除 WDT 定时器以及预分频器里的计数值(当预分频器分配给 WDT 时) 。WDT 一般用来防止系统失控,或者可以说是用来防止单片机程序失控。在正常情况下,WDT 应该在其 溢出前被“CLRWDT”指令清零,以防止产生复位。如果程序由于某种干扰而失控,那么不能在 WDT 溢出前 执行“CLRWDT”指令,就会使 WDT 溢出而产生复位。使系统重启而不至于失去控制。若是 WDT 溢出产生 的复位,则状态寄存器(STATUS)的“TO”位会被清零,用户可根据此位来判断复位是否是 WDT 溢出所造 成的。 注: 1. 若使用 WDT 功能,一定要在程序的某些地方放置“CLRWDT”指令,以保证在 WDT 溢出前能被清 零。否则会使芯片不停的复位,造成系统无法正常工作。 2. 不能在中断程序中对 WDT 进行清零,否则无法侦测到主程序“跑飞”的情况。 3. 程序中应在主程序中有一次清 WDT 的操作,尽量不要在多个分支中清零 WDT,这种架构能最大限 度发挥看门狗计数器的保护功能。 4. 看门狗计数器不同芯片的溢出时间有一定差异,所以设置清 WDT 时间时,应与 WDT 的溢出时间有 较大的冗余,以避免出现不必要的 WDT 复位。 2.8.2 看门狗定时器控制寄存器 WDTCON 看门狗定时器控制寄存器 WDTCON(105H) 105H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 WDTCON --- --- --- --- --- --- --- SWDTEN R/W --- --- --- --- --- --- --- R/W 复位值 --- --- --- --- --- --- --- 0 Bit7~Bit1 Bit0 未用。 SWDTEN: 1= 0= 软件使能或禁止看门狗定时器位 使能 WDT 禁止 WDT(复位值) 注:如果 CONFIG 中 WDT 配置位=1,则 WDT 始终被使能,而与 SWDTEN 控制位的状态无关。如果 CONFIG 中 WDT 配置位= 0,则可以使用 SWDTEN 控制位使能或禁止 WDT。 www.mcu.com.cn -28- V1.7 Cmsemicon CMS89FT6xx 3. 系统时钟 3.1 概述 时钟信号由内部振荡产生,在片内产生 4 个非重叠正交时钟信号,分别称作 Q1、Q2、Q3、Q4。在 IC 内 部每个 Q1 使程序计数器(PC)增量加一,Q4 从程序存储单元中取出该指令,并将其锁存在指令寄存器中。 在下一个 Q1 到 Q4 之间对取出的指令进行译码和执行,也就是说 4 个时钟周期才会执行一条指令。下图表示 时钟与指令周期执行时序图。 一个指令周期含有 4 个 Q 周期,指令的执行和获取是采用流水线结构,取指占用一个指令周期,而译码和 执行占用另一个指令周期,但是由于流水线结构,从宏观上看,每条指令的有效执行时间是一个指令周期。如 果一条指令引起程序计数器地址发生改变(例如 JP)那么预取的指令操作码就无效,就需要两个指令周期来完 成该条指令,这就是对 PC 操作指令都占用两个时钟周期的原因。 Q1 Q3 Q2 Q4 Q1 Q2 Q3 Q4 Q1 Q3 Q2 Q4 CLK Q1 Q2 Q3 Q4 PC PC+1 PC+2 取址 PC 执行指令 PC-1 取址 PC+1 执行指令 PC 取址 PC+2 执行指令 PC+1 图 3-1:时钟与指令周期时序图 下面列出振荡频率与指令速度的关系 www.mcu.com.cn 频率 双指令周期 单指令周期 1MHz 8μs 4μs 2MHz 4μs 2μs 4MHz 2μs 1μs 8MHz 1μs 500ns -29- V1.7 Cmsemicon 3.2 CMS89FT6xx 系统振荡器 芯片有 1 种振荡方式,内部 RC 振荡。 3.2.1 内部 RC 振荡 芯片的振荡方式为内部 RC 振荡,其振荡频率为 8M 可通过 OSCCON 寄存器设置芯片工作频率。 3.3 起振时间 起振时间(Reset Time)是指从芯片复位到芯片振荡稳定这段时间,其设计值为 18ms。 注:无论芯片是电源上电复位,还是其它原因引起的复位,都会存在这个起振时间。 www.mcu.com.cn -30- V1.7 Cmsemicon 3.4 CMS89FT6xx 振荡器控制寄存器 振荡器控制(OSCCON)寄存器控制系统时钟和频率选择,振荡器调节寄存器 OSCTUNE 可以用软件调 节内部振荡频率。 振荡器控制寄存器 OSCCON(8FH) 8FH Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OSCCON --- IRCF2 IRCF1 IRCF0 --- --- --- --- R/W --- R/W R/W R/W --- --- --- --- 复位值 --- 1 1 0 --- --- --- --- Bit7 未用,读为 0。 Bit6~Bit4 IRCF: 内部振荡器分频选择位。 111= FSYS = FOSC /1 110= FSYS = FOSC /2(默认) 101= FSYS = FOSC /4 100= FSYS = FOSC /8 011= FSYS = FOSC /16 010= FSYS = FOSC /32 001= FSYS = FOSC /64 000= FSYS = 32kHz(LFINTOSC)。 未用。 Bit3~Bit0 振荡器调节寄存器 OSCTUNE(90H) 90H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 OSCTUNE --- --- --- TUN4 TUN3 TUN2 TUN1 TUN0 R/W --- --- --- R/W R/W R/W R/W R/W 复位值 --- --- --- 0 0 0 0 0 Bit7~Bit5 禁用,读为 0。 Bit4~Bit0 TUN: 01111= 频率调节位。 最高频率。 01110= . . . 00001= 00000= 振荡器模块以厂家校准后的频率运行。 11111= . . . 10000= www.mcu.com.cn 最低频率。 -31- V1.7 Cmsemicon CMS89FT6xx 4. 复位 芯片可用如下 3 种复位方式:  上电复位;  低电压复位;  正常工作下的看门狗溢出复位。 上述任意一种复位发生时,所有的系统寄存器将恢复默认状态,程序停止运行,同时程序计数器 PC 清零, 复位结束后程序从复位向量 0000H 开始运行。STATUS 的 TO 和 PD 标志位能够给出系统复位状态的信息, (详 见 STATUS 的说明) ,用户可根据 PD 和 TO 的状态,控制程序运行路径。 任何一种复位情况都需要一定的响应时间,系统提供完善的复位流程以保证复位动作的顺利进行。 4.1 上电复位 上电复位与 LVR 操作密切相关。系统上电的过程呈逐渐上升的曲线形式,需要一定时间才能达到正常电平 值。下面给出上电复位的正常时序: - 上电:系统检测到电源电压上升并等待其稳定; - 系统初始化:所有的系统寄存器被置为初始值; - 振荡器开始工作:振荡器开始提供系统时钟; - 执行程序:上电结束,程序开始运行。 www.mcu.com.cn -32- V1.7 Cmsemicon CMS89FT6xx 掉电复位 4.2 4.2.1 概述 掉电复位针对外部因素引起的系统电压跌落情形(例如,干扰或外部负载的变化) 。 VDD 系统正常工作区域 V1 V2 V3 LVR检测电压 系统工作出错区域 图4-1:掉电复位示意图 上图是一个典型的掉电复位示意图。图中,VDD 受到严重的干扰,电压值降的非常低。虚线以上区域系统 正常工作,在虚线以下的区域内,系统进入未知的工作状态,这个区域称作死区。当 VDD 跌至 V1 时,系统仍 处于正常状态;当 VDD 跌至 V2 和 V3 时,系统进入死区,则容易导致出错。 以下情况系统可能进入死区:  DC 运用中: - DC 运用中一般都采用电池供电,当电池电压过低或单片机驱动负载时,系统电压可能跌落并进 入死区。这时,电源不会进一步下降到 LVD 检测电压,因此系统维持在死区。  AC 运用中: - 系统采用 AC 供电时,DC 电压值受 AC 电源中的噪声影响。当外部负载过高,如驱动马达时,负 载动作产生的干扰也影响到 DC 电源。VDD 若由于受到干扰而跌落至最低工作电压以下时,则系 统将有可能进入不稳定工作状态。 - 在 AC 运用中,系统上、下电时间都较长。其中,上电时序保护使得系统正常上电,但下电过程 却和 DC 运用中情形类似,AC 电源关断后,VDD 电压在缓慢下降的过程中易进入死区。 如上图所示,系统正常工作电压区域一般高于系统复位电压,同时复位电压由低电压检测(LVR)电平决 定。当系统执行速度提高时,系统最低工作电压也相应提高,但由于系统复位电压是固定的,因此在系统最低 工作电压与系统复位电压之间就会出现一个电压区域,系统不能正常工作,也不会复位,这个区域即为死区。 www.mcu.com.cn -33- V1.7 Cmsemicon CMS89FT6xx 4.2.2 掉电复位的改进办法 如何改进系统掉电复位性能,以下给出几点建议:  选择较高的 LVR 电压,有助于复位更可靠;  开启看门狗定时器;  降低系统的工作频率;  增大电压下降斜率。 开启 MCU 的低压侦测功能 芯片内部集成了低压侦测(LVR)功能,当系统电压跌至低于 LVR 电压时,LVR 被触发,系统复位。 看门狗定时器 看门狗定时器用于保证程序正常运行,当系统进入工作死区或者程序运行出错时,看门狗定时器会溢出, 系统复位。 降低系统的工作速度 系统工作频率越快,系统最低工作电压越高。从而增大了工作死区的范围,降低系统工作速度就可以降低 最低工作电压,从而有效的减小系统工作在死区电压的机率。 增大电压下降斜率 此方法可用于系统工作在 AC 供电的环境,一般 AC 供电系统,系统电压在掉电过程中下降很缓慢,这就 会造成芯片较长时间工作在死区电压,此时若系统重新上电,芯片工作状态可能出错,建议在芯片电源与地线 间加一个放电电阻,以便让 MCU 快速通过死区,进入复位区,避免芯片上电出错可能性。 4.3 看门狗复位 看门狗复位是系统的一种保护设置。在正常状态下,由程序将看门狗定时器清零。若出错,系统处于未知 状态,看门狗定时器溢出,此时系统复位。看门狗复位后,系统重启进入正常状态。 看门狗复位的时序如下: - 看门狗定时器状态:系统检测看门狗定时器是否溢出,若溢出,则系统复位; - 初始化:所有的系统寄存器被置为默认状态; - 振荡器开始工作:振荡器开始提供系统时钟; - 程序:复位结束,程序开始运行。 关于看门狗定时器的应用问题请参看 2.8WDT 应用章节。 www.mcu.com.cn -34- V1.7 Cmsemicon CMS89FT6xx 5. 休眠模式 5.1 进入休眠模式 执行 STOP 指令可进入休眠模式。如果 WDT 使能,那么:  WDT 将被清零并继续运行。  STATUS 寄存器中的 PD 位被清零。  TO 位被置 1。  关闭振荡器驱动器。  I/O 端口保持执行 STOP 指令之前的状态(驱动为高电平、低电平或高阻态) 。 在休眠模式下,为了尽量降低电流消耗,所有 I/O 引脚都应该保持为 VDD 或 GND,没有外部电路从 I/O 引脚消耗电流。为了避免输入引脚悬空而引入开关电流,应在外部将高阻输入的 I/O 引脚拉为高电平或低电平。 为了将电流消耗降至最低,还应考虑芯片内部上拉电阻的影响。 5.2 从休眠状态唤醒 可以通过下列任一事件将器件从休眠状态唤醒: 1. 看门狗定时器唤醒(WDT 强制使能) ; 2. 外设中断。 STATUS 寄存器中的 TO 和 PD 位用于确定器件复位的原因。PD 位在上电时被置 1,而在执行 STOP 指 令时被清零。TO 位在发生 WDT 唤醒时被清零。 当执行 STOP 指令时,下一条指令(PC + 1) 被预先取出。如果希望通过中断事件唤醒器件,则必须将相 应的中断允许位置 1(允许) 。唤醒与 GIE 位的状态无关。如果 GIE 位被清零(禁止),器件将继续执行 STOP 指令之后的指令。如果 GIE 位被置 1(允许) ,器件执行 STOP 指令之后的指令,然后跳转到中断地址(0004h) 处执行代码。如果不想执行 STOP 指令之后的指令,用户应该在 STOP 指令后面放置一条 NOP 指令。器件从 休眠状态唤醒时,WDT 都将被清零,而与唤醒的原因无关。 5.3 使用中断唤醒 当禁止全局中断(GIE 被清零)时,并且有任一中断源将其中断允许位和中断标志位置 1,将会发生下列 事件之一: - 如果在执行 STOP 指令之前产生了中断,那么 STOP 指令将被作为一条 NOP 指令执行。因此,WDT 及其预分频器和后分频器(如果使能)将不会被清零,并且 TO 位将不会被置 1,同时 PD 也不会被 清零。 - 如果在执行 STOP 指令期间或之后产生了中断,那么器件将被立即从休眠模式唤醒。STOP 指令将在 唤醒之前执行完毕。因此, WDT 及其预分频器和后分频器(如果使能)将被清零,并且 TO 位将被 置 1,同时 PD 也将被清零。即使在执行 STOP 指令之前检查到标志位为 0,它也可能在 STOP 指令 执行完毕之前被置 1。要确定是否执行了 STOP 指令,可以测试 PD 位。如果 PD 位置 1,则说明 STOP 指令被作为一条 NOP 指令执行了。在执行 STOP 指令之前,必须先执行一条 CLRWDT 指令,来确 保将 WDT 清零。 www.mcu.com.cn -35- V1.7 Cmsemicon 5.4 CMS89FT6xx 休眠模式应用举例 系统在进入休眠模式之前,若用户需要获得较小的休眠电流,请先确认所有 I/O 的状态,若用户方案中存 在悬空的 I/O 口,把所有悬空口都设置为输出口,确保每一个 I/O 都有一个固定的状态,以避免 I/O 为输入状 态时,口线电平处于不定态而增大休眠电流;关断 AD 等其它外设模块;根据实际方案的功能需求可禁止 WDT 功能来减小休眠电流。 例:进入休眠的处理程序 SLEEP_MODE: CLR INTCON LDIA B’00000000’ LD TRISA,A LD TRISB,A LD TRISC,A LD TRISD,A ;关断中断使能 ;所有 I/O 设置为输出口 … 5.5 ;关闭其它功能 LDIA 0A5H LD SP_FLAG,A ;置休眠状态记忆寄存器(用户自定义) CLRWDT ;清零 WDT STOP ;执行 STOP 指令 休眠模式唤醒时间 当 MCU 从休眠态被唤醒时,需要等待一个振荡稳定时间(ResetTime) ,这个时间标称值为 18ms。 www.mcu.com.cn -36- V1.7 Cmsemicon CMS89FT6xx 6. I/O 端口 芯片有四个 I/O 端口:PORTA、PORTB、PORTC、PORTD(最多 26 个 I/O) 。可读写端口数据寄存器可 直接存取这些端口。 端口 位 管脚描述 I/O 0 施密特触发输入,推挽式输出,编程数据输入/输出 I/O 1 施密特触发输入,推挽式输出 I/O 2 施密特触发输入,推挽式输出,编程时钟输入 I/O 3 施密特触发输入,推挽式输出 I/O 4 施密特触发输入,推挽式输出 I/O 7 施密特触发输入,推挽式输出 I/O 0 施密特触发输入,推挽式输出,触摸按键口 I/O 1 施密特触发输入,推挽式输出,触摸按键口 I/O 2 施密特触发输入,推挽式输出,触摸按键口 I/O 3 施密特触发输入,推挽式输出,触摸按键口 I/O 4 施密特触发输入,推挽式输出,触摸按键口 I/O 5 施密特触发输入,推挽式输出,触摸按键口 I/O 6 施密特触发输入,推挽式输出,触摸按键口 I/O 7 施密特触发输入,推挽式输出,触摸按键口 I/O 0 施密特触发输入,推挽式输出,触摸按键口 I/O 1 施密特触发输入,推挽式输出,触摸按键口 I/O 2 施密特触发输入,推挽式输出,触摸按键口 I/O 3 施密特触发输入,推挽式输出,触摸按键口 I/O 0 施密特触发输入,推挽式输出,AN0 I/O 1 施密特触发输入,推挽式输出,AN1 I/O 2 施密特触发输入,推挽式输出,AN2 I/O 3 施密特触发输入,推挽式输出,AN3 I/O 4 施密特触发输入,推挽式输出,AN4 I/O 5 施密特触发输入,推挽式输出,AN5 I/O 6 施密特触发输入,推挽式输出,AN6 I/O 7 施密特触发输入,推挽式输出,AN7 I/O PROTA PORTB PORTC PORTD 表 6-1:端口配置总概 www.mcu.com.cn -37- V1.7 Cmsemicon 6.1 数据总线 写 WPUA CMS89FT6xx I/O 口结构图 D 数据总线 Q VDD 弱上拉 CK Q 写 WPUB Q CK Q VDD 弱上拉 读 WPUB 读 WPUA D D Q VDD 写 PORTA D 写 PORTB CK Q Q VDD CK Q I/O引脚 I/O引脚 D D 写 TRIS A Q VSS 写 TRISB CK Q Q VSS CK Q 读 TRISB 读 TRISA 读 PORTB 读 PORTA 到触摸按键模块 PORTA PORTB/PORTC 图 6-1:I/O 结构图 www.mcu.com.cn -38- V1.7 Cmsemicon 6.2 CMS89FT6xx PORTA 6.2.1 PORTA 数据及方向控制 PORTA 是 6Bit 宽的双向端口。它所对应的数据方向寄存器是 TRISA。将 TRISA 的一个位置 1(=1)可以 将相应的引脚配置为输入。清零 TRISA 的一个位(=0)可将相应的 PORTA 引脚配置为输出。 读 PORTA 寄存器读的是引脚的状态而写该寄存器将会写入端口锁存器。所有写操作都是读-修改-写操 作。因此,写一个端口就意味着先读该端口的引脚电平,修改读到的值,然后再将改好的值写入端口数据锁存 器。即使在 PORTA 引脚用作模拟输入时,TRISA 寄存器仍然控制 PORTA 引脚的方向。当将 PORTA 引脚用 作模拟输入时,用户必须确保 TRISA 寄存器中的位保持为置 1 状态。配置为模拟输入的 I/O 引脚总是读为 0。 与 PORTA 口相关寄存器有 PORTA、TRISA、WPUA 等。 PORTA 数据寄存器 PORTA(05H) 05H Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 PORTA RA7 --- --- RA4 RA3 RA2 RA1 RA0 R/W R/W --- --- R/W R/W R/W R/W R/W 复位值 X --- --- X X X X X Bit7 PORTA PORTA I/O 引脚位; 1= 端口引脚电平>VIH; 0= 端口引脚电平VIH; 0= 端口引脚电平VIH; 0= 端口引脚电平VIH; 0= 端口引脚电平VIH; 0= 端口引脚电平
CMS89FT628 价格&库存

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

免费人工找货