首页资源分类嵌入式处理器其它 > HT66Fxx 芯片数据手册

HT66Fxx 芯片数据手册

已有 445125个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:HT66芯片数据手册

    分    享:

    文档简介

    HT66Fxx 芯片数据手册

    文档预览

    内置 EEPROM 增强 A/D 型 FLASH 单片机 HT66F20 HT66F30/HT66FU30 HT66F40/HT66FU40 HT66F50/HT66FU50 HT66F60/HT66FU60 版本 : V.1.60 日期 : 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 目录 特性 .................................................................................................................................1 CPU 特性 ............................................................................................................................... 1 周边特性 ................................................................................................................................ 2 概述 .................................................................................................................................3 选型表 .............................................................................................................................3 方框图 .............................................................................................................................4 引脚图 .............................................................................................................................5 引脚说明 .........................................................................................................................9 极限参数 .......................................................................................................................15 直流电气特性 ...............................................................................................................16 交流电气特性 ...............................................................................................................18 ADC 特性......................................................................................................................19 比较器电气特性 ...........................................................................................................20 上电复位特性 ...............................................................................................................20 系统结构 .......................................................................................................................21 时序和流水线结构 .............................................................................................................. 21 程序计数器 .......................................................................................................................... 22 堆栈 ...................................................................................................................................... 23 算术逻辑单元 – ALU .......................................................................................................... 23 Flash 程序存储器 .........................................................................................................24 结构 ...................................................................................................................................... 24 特殊向量 .............................................................................................................................. 24 查表 ...................................................................................................................................... 25 查表范例 .............................................................................................................................. 25 在线编程 .............................................................................................................................. 26 数据存储器 ...................................................................................................................27 结构 ...................................................................................................................................... 27 特殊功能寄存器 ...........................................................................................................31 间接寻址寄存器 – IAR0,IAR1 ........................................................................................ 31 间接寻址指针 – MP0,MP1............................................................................................... 31 存储区指针 – BP ................................................................................................................. 32 累加器 – ACC ...................................................................................................................... 33 程序计数器低字节寄存器 – PCL....................................................................................... 33 表格寄存器 – TBLP,TBHP,TBLH................................................................................ 33 状态寄存器 – STATUS........................................................................................................ 34 Rev.1.60 II 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 EEPROM 数据寄存器.................................................................................................36 EEPROM 数据寄存器结构 ................................................................................................. 36 EEPROM 寄存器 ................................................................................................................. 36 从 EEPROM 中读取数据 .................................................................................................... 39 写数据到 EEPROM ............................................................................................................. 39 写保护 .................................................................................................................................. 39 EEPROM 中断 ..................................................................................................................... 39 编程注意事项 ...................................................................................................................... 40 振荡器 ...........................................................................................................................41 振荡器概述 .......................................................................................................................... 41 系统时钟配置 ...................................................................................................................... 41 外部晶体 / 陶瓷振荡器 – HXT........................................................................................... 42 外部 RC 振荡器 – ERC ....................................................................................................... 43 内部 RC 振荡器 – HIRC ..................................................................................................... 43 外部 32.768kHz 晶体振荡器 – LXT................................................................................... 44 LXT 振荡器低功耗功能 ..................................................................................................... 45 内部 32kHz 振荡器 – LIRC ................................................................................................ 45 辅助振荡器 .......................................................................................................................... 45 工作模式和系统时钟 ...................................................................................................46 系统时钟 .............................................................................................................................. 46 系统工作模式 ...................................................................................................................... 48 控制寄存器 .......................................................................................................................... 49 快速唤醒 .............................................................................................................................. 50 工作模式切换和唤醒 .......................................................................................................... 51 正常模式切换到低速模式 .................................................................................................. 52 低速模式切换到正常模式 .................................................................................................. 52 进入休眠模式 0 ................................................................................................................... 52 进入休眠模式 1 ................................................................................................................... 52 进入空闲模式 0 ................................................................................................................... 53 进入空闲模式 1 ................................................................................................................... 53 静态电流的注意事项 .......................................................................................................... 55 唤醒 ...................................................................................................................................... 55 编程注意事项 ...................................................................................................................... 55 看门狗定时器 ...............................................................................................................56 看门狗定时器时钟源 .......................................................................................................... 56 看门狗定时器控制寄存器 .................................................................................................. 56 看门狗定时器操作 .............................................................................................................. 57 复位和初始化 ...............................................................................................................58 复位功能 .............................................................................................................................. 58 复位初始状态 ...................................................................................................................... 60 Rev. 1.60 III 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 输入 / 输出端口 ............................................................................................................73 上拉电阻 .............................................................................................................................. 76 PA 口唤醒 ............................................................................................................................ 78 输入 / 输出端口控制寄存器 ............................................................................................... 78 引脚重置功能 ...................................................................................................................... 81 引脚重置寄存器 .................................................................................................................. 81 输入 / 输出引脚结构 ........................................................................................................... 88 编程注意事项 ..................................................................................................................... 89 定时器模块 – TM .........................................................................................................89 简介 ...................................................................................................................................... 89 TM 操作 .............................................................................................................................. 90 TM 时钟源 .......................................................................................................................... 90 TM 中断 .............................................................................................................................. 90 TM 外部引脚 ....................................................................................................................... 91 TM 输入 / 输出引脚控制寄存器 ........................................................................................ 91 编程注意事项 .................................................................................................................... 101 简易型 – TM ...............................................................................................................102 简易型 TM 操作 ............................................................................................................... 103 简易型 TM 寄存器介绍 ................................................................................................... 103 简易型 TM 工作模式 ....................................................................................................... 107 比较匹配输出模式 ........................................................................................................... 107 PWM 输出模式 ................................................................................................................. 110 标准型 TM – STM ..................................................................................................... 113 标准型 TM 操作 ................................................................................................................ 113 标准型 TM 工作模式 ....................................................................................................... 121 比较匹配输出模式 ........................................................................................................... 121 定时 / 计数器模式 ............................................................................................................ 124 PWM 输出模式 ................................................................................................................. 124 单脉冲模式 ........................................................................................................................ 128 捕捉输入模式 .................................................................................................................... 129 增强型 TM – ETM.....................................................................................................131 增强型 TM 寄存器介绍 ................................................................................................... 132 增强型 TM 工作模式 ....................................................................................................... 138 比较匹配输出模式 ........................................................................................................... 139 定时 / 计数器模式 ............................................................................................................ 144 PWM 输出模式 ................................................................................................................. 144 单脉冲输出模式 ................................................................................................................ 150 捕捉输入模式 .................................................................................................................... 152 Rev.1.60 IV 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 A/D 转换器..................................................................................................................155 A/D 简介 ............................................................................................................................ 155 A/D 转换寄存器介绍 ........................................................................................................ 155 A/D 转换器数据寄存器 – ADRL,ADRH ...................................................................... 156 A/D 转换控制寄存器 – ADCR0,ADCR1,ACERL,ACERH.................................... 156 A/D 操作 ............................................................................................................................ 161 A/D 输入引脚 .................................................................................................................... 162 A/D 转换步骤 .................................................................................................................... 162 编程注意事项 .................................................................................................................... 163 A/D 转换功能 .................................................................................................................... 163 A/D 转换应用范例 ............................................................................................................ 164 比较器 .........................................................................................................................166 比较器操作 ........................................................................................................................ 166 比较器寄存器 .................................................................................................................... 166 比较器中断 ........................................................................................................................ 169 编程注意事项 .................................................................................................................... 169 串行接口模块 – SIM..................................................................................................169 SPI 接口 ............................................................................................................................. 169 SPI 接口操作 ..................................................................................................................... 169 SPI 寄存器 ......................................................................................................................... 171 SPI 通信 ............................................................................................................................. 174 I2C 接口 .............................................................................................................................. 176 I2C 接口操作 ...................................................................................................................... 176 I2C 寄存器 .......................................................................................................................... 177 I2C 总线通信 ...................................................................................................................... 181 I2C 总线起始信号 .............................................................................................................. 181 从机地址 ............................................................................................................................ 182 I2C 总线读 / 写信号........................................................................................................... 182 I2C 总线从机地址确认信号 .............................................................................................. 182 I2C 总线数据和确认信号 .................................................................................................. 182 外围时钟输出 .............................................................................................................184 外围时钟操作 .................................................................................................................... 184 中断 .............................................................................................................................185 中断寄存器 ........................................................................................................................ 185 中断操作 ............................................................................................................................ 199 外部中断 ............................................................................................................................ 203 比较器中断 ........................................................................................................................ 203 多功能中断 ........................................................................................................................ 203 A/D 转换器中断 ................................................................................................................ 203 时基中断 ............................................................................................................................ 204 串行接口模块中断 ............................................................................................................ 205 外部设备中断 .................................................................................................................... 205 EEPROM 中断 ................................................................................................................... 205 Rev. 1.60 V 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 LVD 中断 ........................................................................................................................... 205 TM 中断 ............................................................................................................................. 205 中断唤醒功能 .................................................................................................................... 206 编程注意事项 .................................................................................................................... 206 暂停模式和唤醒 .........................................................................................................207 进入空闲或休眠模式 ........................................................................................................ 207 静态电流的注意事项 ........................................................................................................ 207 唤醒 .................................................................................................................................... 207 低电压检测 – LVD .....................................................................................................208 LVD 寄存器 ....................................................................................................................... 208 LVD 操作 ........................................................................................................................... 209 带 SCOM 功能的 LCD ..............................................................................................210 LCD 操作 ........................................................................................................................... 210 LCD 偏压控制 ................................................................................................................... 211 配置选项 .....................................................................................................................213 应用电路 .....................................................................................................................214 UART 模块串行接口 .................................................................................................215 UART 模块特性................................................................................................................. 215 UART 模块概述................................................................................................................. 215 UART 模块方框图............................................................................................................. 215 引脚图 ................................................................................................................................ 216 UART 模块引脚说明......................................................................................................... 218 UART 模块直流电气特性................................................................................................. 218 UART 模块交流电气特性................................................................................................. 219 UART 模块功能描述......................................................................................................... 219 UART 模块内部信号......................................................................................................... 219 UART 模块 SPI 接口......................................................................................................... 220 UART 模块外部引脚接口................................................................................................. 221 UART 数据传输方案......................................................................................................... 221 UART 命令......................................................................................................................... 221 UART 状态和控制寄存器................................................................................................. 222 波特率发生器 .................................................................................................................... 226 UART 模块的设置与控制................................................................................................. 228 接收错误处理 .................................................................................................................... 231 UART 模块中断结构......................................................................................................... 232 UART 模块暂停和唤醒..................................................................................................... 233 UART 功能的使用............................................................................................................. 234 UART 模块应用电路......................................................................................................... 235 Rev.1.60 VI 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 指令集 .........................................................................................................................236 简介 .................................................................................................................................... 236 指令周期 ............................................................................................................................ 236 数据的传送 ........................................................................................................................ 236 算术运算 ............................................................................................................................ 236 逻辑和移位运算 ................................................................................................................ 236 分支和控制转换 ................................................................................................................ 237 位运算 ................................................................................................................................ 237 查表运算 ............................................................................................................................ 237 其它运算 ............................................................................................................................ 237 指令集概要 .................................................................................................................238 惯例 .................................................................................................................................... 238 指令定义 .....................................................................................................................241 封装信息 .....................................................................................................................253 16-pin DIP (300mil) 外形尺寸 .......................................................................................... 253 16-pin NSOP (150mil) 外形尺寸....................................................................................... 256 16-pin SSOP (150mil) 外形尺寸 ....................................................................................... 257 20-pin DIP (300mil) 外形尺寸 .......................................................................................... 258 20-pin SOP (300mil) 外形尺寸.......................................................................................... 260 20-pin SSOP (150mil) 外形尺寸 ....................................................................................... 261 24-pin SKDIP (300mil) 外形尺寸 ..................................................................................... 262 24-pin SOP (300mil) 外形尺寸.......................................................................................... 265 24-pin SSOP (150mil) 外形尺寸 ....................................................................................... 266 28-pin SKDIP (300mil) 外形尺寸 ..................................................................................... 267 28-pin SOP (300mil) 外形尺寸.......................................................................................... 268 28-pin SSOP (150mil) 外形尺寸 ....................................................................................... 269 SAW 型 32-pin (5mm×5mm) QFN 外形尺寸................................................................... 270 SAW 型 40-pin (6mm×6mm) QFN 外形尺寸................................................................... 271 44-pin LQFP (10mm×10mm) (FP 3.2mm) 外形尺寸........................................................ 272 48-pin SSOP (300mil) 外形尺寸 ....................................................................................... 273 SAW 型 48-pin (7mm×7mm) QFN 外形尺寸................................................................... 274 48-pin LQFP (7mm×7mm) 外形尺寸................................................................................ 275 52-pin QFP (14mm×14mm) 外形尺寸 .............................................................................. 276 卷轴尺寸 ............................................................................................................................ 277 运输带尺寸 ........................................................................................................................ 279 运输带尺寸 ........................................................................................................................ 284 Rev. 1.60 VII 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 特性 CPU 特性 ● 工作电压: fSYS=8MHz:2.2V~5.5V fSYS=12MHz:2.7V~5.5V fSYS=20MHz:4.5V~5.5V ● VDD=5V,系统时钟为 20MHz 时,指令周期为 0.2μs ● 提供暂停和唤醒功能,以降低功耗 ● 五种振荡模式: 外部晶振 – HXT 外部 32.768kHz 晶振 – LXT 外部 RC – ERC 内部 RC – HIRC 内部 32kHz RC – LIRC ● 多种工作模式:正常、低速、空闲和休眠 ● 内部集成 4MHz,8MHz 和 12MHz 振荡器,无需外接元件 ● 所有指令都可在 1 或 2 个指令周期内完成 ● 查表指令 ● 63 条指令 ● 多达 12 层堆栈 ● 位操作指令 Rev.1.60 1 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 周边特性 ● Flash 程序存储:1K×14~12K×16 ● RAM 数据存储:64×8~576×8 ● EEPROM 存储器:32×8~256×8 ● 看门狗定时器功能 ● 多达 50 个双向 I/O 口 ● 4 个软件控制 SCOM 口 1/2 bias LCD 驱动 ● 多个引脚与外部中断口共用 ● 多个定时器模块用于时间测量、捕捉输入、比较匹配输出、PWM 输出及单脉 冲输出 ● 串行接口模块 – SIM,用于 SPI 或 I2C 通信 ● 双比较器功能 ● 双时基功能,可提供固定时间的中断信号 ● 多通道 12 位分辨精度的 A/D 转换器 ● 低电压复位功能 ● 低电压检测功能 ● 可选外设 – UART 模块,可用于全双工异步通信 ● 多种封装类型 ● Flash 程序存储器烧录可达 100,000 次 ● Flash 程序存储器数据可保存 10 年以上 ● EEPROM 数据存储器烧录可达 1,000,000 次 ● EEPROM 数据存储器数据可保存 10 年以上 Rev. 1.60 2 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 概述 HT66FXX 系列单片机是一款 A/D 型具有 8 位高性能精简指令集的 Flash 单片机。 该系列单片机具有一系列功能和特性,其 Flash 存储器可多次编程的特性给用 户提供了极大的方便。存储器方面,还包含了一个 RAM 数据存储器和一个可 用于存储序号、校准数据等非易失性数据的 EEPROM 存储器。 在模拟特性方面,这款单片机包含一个多通道 12 位 A/D 转换器和双比较器功 能。还带有多个使用灵活的定时器模块,可提供定时功能、脉冲产生功能及 PWM 产生功能。内建完整的 SPI 和 I2C 功能,为设计者提供了一个易与外部硬 件通信的接口。内部看门狗定时器、低电压复位和低电压检测等内部保护特性, 外加优秀的抗干扰和 ESD 保护性能,确保单片机在恶劣的电磁干扰环境下可靠 地运行。 这款单片机提供了丰富的 HXT、LXT、ERC、HIRC 和 LIRC 振荡器功能选项, 且内建完整的系统振荡器,无需外围元器件。其在不同工作模式之间动态切换 的能力,为用户提供了一个优化单片机操作和减少功耗的手段。 HT66FUx0 系列单片机内含 UART 模块,它可以支持诸如单片机之间的数据通 信网络,低成本 PC 和外部设备间的数据连接,便携式和电池供电设备间的通 信等。 外加时基功能、I/O 使用灵活等其它特性,使这款单片机可以广泛应用于各种 产品中,例如电子测量仪器、环境监控、手持式测量工具、家庭应用、电子控 制工具、马达控制等方面。 选型表 对此系列的芯片而言,大多数的特性参数都是一样的。主要差异在于程序存储 器的容量,I/O 数量,TM 特性,堆栈层数和封装类型。下表列出了各单片机的 主要特性。 型号 外部 VDD ROM RAM EEPROM I/O 中断 A/D 接口 TM 模块 (SPI/I2C) UART 堆栈 封装形式 HT66F20* 2.2V~ 5.5V 1K×14 64×8 32×8 18 2 12-bit×8 10-bit CTM×1 10-bit STM×1 √ — 4 16DIP/NSOP/SSOP 20DIP/SOP/SSOP HT66F30 2.2V~ 5.5V 2K×14 96×8 64×8 22 2 12-bit×8 10-bit CTM×1 10-bit ETM×1 √ HT66FU30 14 16DIP/NSOP/SSOP — 20DIP/SOP/SSOP 4 24SKDIP/SOP/SSOP √ 24SKDIP/SOP HT66F40 2.2V~ 5.5V 4K×15 192×8 128×8 42 2 10-bit CTM×1 12-bit×8 10-bit ETM×1 16-bit STM×1 √ HT66FU40 34 24/28SKDIP/SOP/SSOP — 44LQFP, 32/40QFN 8 48SSOP/QFN √ 40QFN, 44LQFP, 48SSOP/QFN HT66F50 2.2V~ 5.5V 8K×16 384×8 256×8 42 2 10-bit CTM×2 12-bit×8 10-bit ETM×1 16-bit STM×1 √ HT66FU50 34 28SKDIP/SOP/SSOP — 44LQFP, 40QFN 8 48SSOP/QFN √ 44LQFP, 48QFN HT66F60 2.2V~ 5.5V 12K×16 576×8 HT66FU60 256×8 50 42 10-bit CTM×2 4 12-bit×12 10-bit ETM×1 16-bit STM×1 √ — 52QFP, 40QFN, 44LQFP 48SSOP/LQFP/QFN 12 √ 52QFP, 40QFN, 44LQFP 48LQFP/QFN 注:对于有不止一种封装形式的芯片,选型表针对较大的封装的情况。 HT66FU30、HT66FU40、HT66FU50 和 HT66FU60 中含有 UART 模块,所有相 关 UART 模块的详细信息请参考其相关章节。 Rev.1.60 3 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 方框图 F la s h /E E P R O M P r o g r a m m in g C ir c u itr y ( IS P ) F la s h P ro g ra m M e m o ry EEPRO M D a ta M e m o ry Low V o lta g e D e te c t W a tc h d o g T im e r Low V o lta g e R eset 8 - b it R IS C M CU C o re S ta c k R eset C ir c u it In te rru p t C o n tr o lle r E R C /H X T O s c illa to r T B 0 /T B 1 RAM D a ta M e m o ry H IR C O s c illa to r L IR C /L X T O s c illa to r 1 2 - B it A /D C o n v e rte r C o m p a ra to rs I/O UART S IM TM 0 TM 1 TM n Rev. 1.60 4 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 引脚图 P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD&AVDD 7 P B 0 /R E S 8 1 6 P A 1 /T P 1 _ 0 /A N 1 1 5 P A 2 /T C K 0 /C 0 + /A N 2 1 4 P A 3 /IN T 0 /C 0 -/A N 3 1 3 P A 4 /IN T 1 /T C K 1 /A N 4 1 2 P A 5 /C 1 X /S D O /A N 5 1 1 P A 6 /S D I/S D A /A N 6 1 0 P A 7 /S C K /S C L /A N 7 9 P B 5 /S C S /V R E F H T66F20 1 6 D IP -A /N S O P -A /S S O P -A P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD&AVDD 7 P B 0 /R E S 8 P C 1 /S C O M 1 9 P C 0 /T P 1 _ 1 /S C O M 0 1 0 2 0 P A 1 /T P 1 _ 0 /A N 1 1 9 P A 2 /T C K 0 /C 0 + /A N 2 1 8 P A 3 /IN T 0 /C 0 -/A N 3 1 7 P A 4 /IN T 1 /T C K 1 /A N 4 1 6 P A 5 /C 1 X /S D O /A N 5 1 5 P A 6 /S D I/S D A /A N 6 1 4 P A 7 /S C K /S C L /A N 7 1 3 P B 5 /S C S /V R E F 1 2 P C 2 /P C K /C 1 + /S C O M 2 1 1 P C 3 /P IN T /C 1 -/S C O M 3 H T66F20 2 0 D IP -A /S O P -A /S S O P -A P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD&AVDD 7 P B 0 /R E S 8 1 6 P A 1 /T P 1 A /A N 1 1 5 P A 2 /T C K 0 /C 0 + /A N 2 1 4 P A 3 /IN T 0 /C 0 -/A N 3 1 3 P A 4 /IN T 1 /T C K 1 /A N 4 1 2 P A 5 /C 1 X /S D O /A N 5 1 1 P A 6 /S D I/S D A /A N 6 1 0 P A 7 /S C K /S C L /A N 7 9 P B 5 /S C S /V R E F H T66F30 1 6 D IP -A /N S O P -A /S S O P -A P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD&AVDD 7 P B 0 /R E S 8 P C 1 /T P 1 B _ 1 /[S D O ]/S C O M 1 9 P C 0 /T P 1 B _ 0 /[S D I/S D A ]/S C O M 0 1 0 2 0 P A 1 /T P 1 A /A N 1 1 9 P A 2 /T C K 0 /C 0 + /A N 2 1 8 P A 3 /IN T 0 /C 0 -/A N 3 1 7 P A 4 /IN T 1 /T C K 1 /A N 4 1 6 P A 5 /C 1 X /S D O /A N 5 1 5 P A 6 /S D I/S D A /A N 6 1 4 P A 7 /S C K /S C L /A N 7 1 3 P B 5 /S C S /V R E F 1 2 P C 2 /P C K /C 1 + 1 1 P C 3 /P IN T /C 1 - H T66F30 2 0 D IP -A /S O P -A /S S O P -A P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD&AVDD 7 P B 0 /R E S 8 P C 1 /T P 1 B _ 1 /[S D O ]/S C O M 1 9 P C 0 /T P 1 B _ 0 /[S D I/S D A ]/S C O M 0 1 0 P C 7 /[S C K /S C L ]/S C O M 3 1 1 P C 6 /[S C S ]/S C O M 2 1 2 2 4 P A 1 /T P 1 A /A N 1 2 3 P A 2 /T C K 0 /C 0 + /A N 2 2 2 P A 3 /IN T 0 /C 0 -/A N 3 2 1 P A 4 /IN T 1 /T C K 1 /A N 4 2 0 P A 5 /C 1 X /S D O /A N 5 1 9 P A 6 /S D I/S D A /A N 6 1 8 P A 7 /S C K /S C L /A N 7 1 7 P B 5 /S C S /V R E F 1 6 P C 2 /P C K /C 1 + 1 5 P C 3 /P IN T /C 1 1 4 P C 4 /[P IN T ] 1 3 P C 5 /T P 0 _ 1 /[P C K ] H T66F30 2 4 S K D IP -A /S O P -A /S S O P -A P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD&AVDD 7 P B 0 /R E S 8 P C 1 /T P 1 B _ 1 /S C O M 1 9 P C 0 /T P 1 B _ 0 /S C O M 0 1 0 P C 7 /[T P 1 A ]/S C O M 3 1 1 P C 6 /[T P 0 _ 0 ]/S C O M 2 1 2 P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 2 4 P A 1 /T P 1 A /A N 1 P B 4 /X T 2 3 2 3 P A 2 /T C K 0 /C 0 + /A N 2 P B 3 /X T 1 4 2 2 P A 3 /IN T 0 /C 0 -/A N 3 P B 2 /O S C 2 5 2 1 P A 4 /IN T 1 /T C K 1 /A N 4 P B 1 /O S C 1 6 2 0 P A 5 /C 1 X /S D O /A N 5 VDD&AVDD 7 1 9 P A 6 /S D I/S D A /A N 6 P B 0 /R E S 8 1 8 P A 7 /S C K /S C L /A N 7 P C 1 /T P 1 B _ 1 /S C O M 1 9 1 7 P B 5 /S C S /V R E F P C 0 /T P 1 B _ 0 /S C O M 0 1 0 1 6 P C 2 /T C K 2 /P C K /C 1 + P C 7 /[T P 1 A ]/S C O M 3 1 1 1 5 P C 3 /P IN T /T P 2 _ 0 /C 1 - P C 6 /[T P 0 _ 0 ]/S C O M 2 1 2 1 4 P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 P D 3 /[T C K 1 ]/[S D O ] 1 3 1 3 P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P D 2 /[T C K 0 ]/[S D I/S D A ] 1 4 2 8 P A 1 /T P 1 A /A N 1 2 7 P A 2 /T C K 0 /C 0 + /A N 2 2 6 P A 3 /IN T 0 /C 0 -/A N 3 2 5 P A 4 /IN T 1 /T C K 1 /A N 4 2 4 P A 5 /C 1 X /S D O /A N 5 2 3 P A 6 /S D I/S D A /A N 6 2 2 P A 7 /S C K /S C L /A N 7 2 1 P B 5 /S C S /V R E F 2 0 P C 2 /T C K 2 /P C K /C 1 + 1 9 P C 3 /P IN T /T P 2 _ 0 /C 1 1 8 P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 1 7 P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] 1 6 P D 0 /[T C K 2 ]/[S C S ] 1 5 P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] H T66F40 2 4 S K D IP -A /S O P -A /S S O P -A H T66F40 2 8 S K D IP -A /S O P -A /S S O P -A 注:1、括号内的引脚为可编程改变位置的引脚。 2、若共用脚同时有多种输出,“/”号右侧的引脚名具有更高的优先级。 3、VDD&AVDD 指的是 VDD 和 AVDD 为同一个引脚。 Rev.1.60 5 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/[S C S ] P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] P E 7 /[IN T 1 ] 32 31 30 29 28 27 26 25 1 24 2 23 3 22 4 H T66F40 21 5 3 2 Q F N -A 20 6 19 7 18 8 17 9 10 11 12 13 14 15 16 P D 0 /[T C K 2 ]/[S C S ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 2 /[T C K 0 ]/[S D I/S D A ] P D 3 /[T C K 1 ]/[S D O ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] 40 39 38 37 36 35 34 33 32 31 1 30 2 29 3 28 4 27 5 H T66F40 26 6 4 0 Q F N -A 25 7 24 8 23 9 22 10 21 11 12 13 14 1516 17 18 19 20 P D 2 /[T C K 0 ]/[S D I/S D A ] P D 3 /[T C K 1 ]/[S D O ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] PE5 P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P F 0 /[C 0 X ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P D 2 /[T C K 0 ]/[S D I/S D A ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/[S C S ] P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] P E 7 /[IN T 1 ] P E 6 /[IN T 0 ] VSS&AVSS P B 4 /X T 2 P B 3 /X T 1 P B 2 /O S C 2 P B 1 /O S C 1 VDD&AVDD P B 0 /R E S PE5 P E 4 /[T P 1 B _ 2 ] P C 1 /T P 1 B _ 1 /S C O M 1 P C 0 /T P 1 B _ 0 /S C O M 0 NC P C 7 /[T P 1 A ]/S C O M 3 P C 6 /[T P 0 _ 0 ]/S C O M 2 PE3 PE2 PE1 PE0 P D 5 /[T P 0 _ 1 ] 1 48 2 47 3 46 4 45 5 44 6 43 7 42 8 41 9 40 10 39 11 38 12 37 13 36 14 35 15 34 16 33 17 32 18 31 19 30 20 29 21 28 22 27 23 26 24 25 H T66F40 4 8 S S O P -A P A 1 /T P 1 A /A N 1 P A 2 /T C K 0 /C 0 + /A N 2 P A 3 /IN T 0 /C 0 -/A N 3 P A 4 /IN T 1 /T C K 1 /A N 4 P A 5 /C 1 X /S D O /A N 5 P A 6 /S D I/S D A /A N 6 P A 7 /S C K /S C L /A N 7 P B 5 /S C S /V R E F P B 6 /[S D O ] P B 7 /[S D I/S D A ] P D 6 /[S C K /S C L ] P D 7 /[S C S ] P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 NC NC NC P C 2 /T C K 2 /P C K /C 1 + P C 3 /P IN T /T P 2 _ 0 /C 1 P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P D 0 /[T C K 2 ]/[S C S ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 2 /[T C K 0 ]/[S D I/S D A ] P D 3 /[T C K 1 ]/[S D O ] P D 4 /[T P 2 _ 1 ] P E 4 /[T P 1 B _ 2 ] PE5 P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] 44 43 42 41 40 39 38 37 36 35 34 1 33 2 32 3 31 4 30 5 6 7 H T66F40 4 4 L Q F P -A 29 28 27 8 26 9 25 10 24 11 12 13 14 15 16 17 18 19 20 21 2 22 3 P D 3 /[T C K 1 ]/[S D O ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 PE3 P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P D 2 /[T C K 0 ]/[S D I/S D A ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/[S C S ] NC P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] NC P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 NC P F 1 /[C 1 X ] 1 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 3 9 3 8 3 73 6 2 35 3 34 4 33 5 32 6 H T66F40 31 7 4 8 Q F N -A 30 8 29 9 28 10 27 11 26 12 25 13 14 15 16 17 18 19 20 21 22 23 24 P D 3 /[T C K 1 ]/[S D O ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 PE3 P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 NC P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] PE5 P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P F 0 /[C 0 X ] 注:1、括号内的引脚为可编程改变位置的引脚。 2、若共用脚同时有多种输出,“/”号右侧的引脚名具有更高的优先级。 3、VDD&AVDD 指的是 VDD 和 AVDD 为同一个引脚。 Rev. 1.60 6 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /[IN T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD 7 P B 0 /R E S 8 P C 1 /T P 1 B _ 1 /S C O M 1 9 P C 0 /T P 1 B _ 0 /S C O M 0 1 0 P C 7 /[T P 1 A ]/S C O M 3 1 1 P C 6 /[T P 0 _ 0 ]/S C O M 2 1 2 P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ] 1 3 P D 2 /[T C K 0 ]/[S D I/S D A ] 1 4 2 8 P A 1 /T P 1 A /A N 1 2 7 P A 2 /T C K 0 /C 0 + /A N 2 2 6 P A 3 /IN T 0 /C 0 -/A N 3 2 5 P A 4 /IN T 1 /T C K 1 /A N 4 2 4 P A 5 /C 1 X /S D O /A N 5 2 3 P A 6 /S D I/S D A /A N 6 2 2 P A 7 /S C K /S C L /A N 7 2 1 P B 5 /S C S /V R E F 2 0 P C 2 /T C K 2 /P C K /C 1 + 1 9 P C 3 /P IN T /T P 2 _ 0 /C 1 1 8 P C 4 /[IN T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 1 7 P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] 1 6 P D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] 1 5 P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] H T66F50 2 8 S K D IP -A /S O P -A /S S O P -A P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] 40 39 38 37 36 35 34 33 32 31 1 30 2 29 3 28 4 27 5 H T66F50 26 6 4 0 Q F N -A 25 7 24 8 23 9 22 10 21 11 12 13 14 1516 17 18 19 20 P D 2 /[T C K 0 ]/[S D I/S D A ] P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P F 0 /[C 0 X ] P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] P E 7 /[IN T 1 ] P E 6 /[IN T 0 ] VSS&AVSS P B 4 /X T 2 P B 3 /X T 1 P B 2 /O S C 2 P B 1 /O S C 1 VDD&AVDD P B 0 /R E S P E 5 /[T P 3 _ 0 ] P E 4 /[T P 1 B _ 2 ] P C 1 /T P 1 B _ 1 /S C O M 1 P C 0 /T P 1 B _ 0 /S C O M 0 NC P C 7 /[T P 1 A ]/S C O M 3 P C 6 /[T P 0 _ 0 ]/S C O M 2 P E 3 /[T P 3 _ 1 ] PE2 PE1 PE0 P D 5 /[T P 0 _ 1 ] 1 48 2 47 3 46 4 45 5 44 6 43 7 42 8 41 9 40 10 39 11 38 12 37 13 36 14 35 15 34 16 33 17 32 18 31 19 30 20 29 21 28 22 27 23 26 24 25 H T66F50 4 8 S S O P -A P A 1 /T P 1 A /A N 1 P A 2 /T C K 0 /C 0 + /A N 2 P A 3 /IN T 0 /C 0 -/A N 3 P A 4 /IN T 1 /T C K 1 /A N 4 P A 5 /C 1 X /S D O /A N 5 P A 6 /S D I/S D A /A N 6 P A 7 /S C K /S C L /A N 7 P B 5 /S C S /V R E F P B 6 /[S D O ] P B 7 /[S D I/S D A ] P D 6 /[S C K /S C L ] P D 7 /[S C S ] P C 4 /[IN T 0 ]/[P IN T ]/T P 2 _ 1 NC NC NC P C 2 /T C K 2 /P C K /C 1 + P C 3 /P IN T /T P 2 _ 0 /C 1 P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P D 0 /[T C K 2 ]/[S C S ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 2 /[T C K 0 ]/[S D I/S D A ] P D 3 /[T C K 1 ]/[S D O ] P D 4 /[T P 2 _ 1 ] P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P D 2 /[T C K 0 ]/[S D I/S D A ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /[IN T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] 44 43 42 41 40 39 38 37 36 35 34 1 33 2 32 3 31 4 30 5 6 7 H T66F50 4 4 L Q F P -A 29 28 27 8 26 9 25 10 24 11 12 13 14 15 16 17 18 19 20 21 2 22 3 P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P D 2 /[T C K 0 ]/[S D I/S D A ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] NC P C 5 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /[IN T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] NC P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 NC P F 1 /[C 1 X ] 1 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 3 9 3 8 3 73 6 2 35 3 34 4 33 5 32 6 H T66F50 31 7 4 8 Q F N -A 30 8 29 9 28 10 27 11 26 12 25 13 14 15 16 17 18 19 20 21 22 23 24 P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 NC P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P F 0 /[C 0 X ] 注:1、括号内的引脚为可编程改变位置的引脚。 2、若共用脚同时有多种输出,“/”号右侧的引脚名具有更高的优先级。 3、VDD&AVDD 指的是 VDD 和 AVDD 为同一个引脚。 Rev.1.60 7 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 P D 2 /[T C K 0 ]/[S D I/S D A ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] P C 5 /IN T 3 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /IN T 2 /[IN T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] P C 5 /IN T 3 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P C 4 /IN T 2 /[IN T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ]/A N 1 1 40 39 38 37 36 35 34 33 32 31 1 30 2 29 3 28 4 27 5 H T66F60 26 6 4 0 Q F N -A 25 7 24 8 23 9 22 10 21 11 12 13 14 1516 17 18 19 20 P D 2 /[T C K 0 ]/[S D I/S D A ] P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ]/[S C K /S C L ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ]/A N 1 1 P F 0 /[C 0 X ]/A N 1 0 44 43 42 41 40 39 38 37 36 35 34 1 33 2 32 3 31 4 30 5 6 7 H T66F60 4 4 L Q F P -A 29 28 27 8 26 9 25 10 24 11 23 12 13 14 15 16 17 18 19 20 21 22 P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ]/[S C K /S C L ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P E 0 /[IN T 0 ] P E 1 /[IN T 1 ] P E 2 /[IN T 2 ] P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P P P V P P P P V P P E E B D B B B B S E E 4 5 0 D 1 2 3 4 S 6 7 /[T P 1 B _ 2 ] /[T P 3 _ 0 ] /R E S &AVDD /O S C 1 /O S C 2 /X T 1 /X T 2 &AVSS /[IN T 0 ]/A N /[IN T 1 ]/A N P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ]/A N 8 P E 7 /[IN T 1 ]/A N 9 P F 0 /[C 0 X ]/A N 1 0 P 8 9 C P P D 1 /[T P 5 /IN T 3 /[IN T C 4 /IN T 2 /[IN P D 2 /[T C K 0 ]/[S D I/S D A ] P 2 _ 0 ]/[S D O ]/[S C K /S C L ] D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] NC 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] NC NC P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] PF2 P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ]/A N 1 1 P F 0 /[C 0 X ]/A N 1 0 P E 7 /[IN T 1 ]/A N 9 P E 6 /[IN T 0 ]/A N 8 VSS&AVSS P B 4 /X T 2 P B 3 /X T 1 P B 2 /O S C 2 1 48 2 47 3 46 4 45 5 44 6 43 7 42 8 41 9 40 10 39 11 38 12 37 13 36 14 35 15 34 16 33 17 32 18 31 19 30 20 29 21 28 22 27 23 26 24 25 H T66F60 4 8 S S O P -A P C 2 /T C K 2 /P C K /C 1 + P C 3 /P IN T /T P 2 _ 0 /C 1 P C 4 /IN T 2 /[IN T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 5 /IN T 3 /[IN T 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] P D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] P D 1 /[T P 2 _ 0 ]/[S D O ]/[S C K /S C L ] P D 2 /[T C K 0 ]/[S D I/S D A ] P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ]/[S C K /S C L ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P E 0 /[IN T 0 ] P E 1 /[IN T 1 ] P E 2 /[IN T 2 ] P E 3 /[T P 3 _ 1 ] P G 1 /[C 1 X ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 /[C 0 X ]/A N 1 0 /[IN T 1 ]/A N 9 /[IN T 0 ]/A N 8 &AVSS /X T 2 /X T 1 /O S C 2 4 5 0 D 1 2 3 4 S 6 7 0 E E B D B B B B S E E F P P P V P P P P V P P P 5 C C P /O S C 1 P /R E S &AVDD NC P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 NC P F 1 /[C 1 X ]/A N 1 1 1 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 3 9 3 8 3 73 6 2 35 3 34 4 33 5 32 6 H T66F60 31 7 4 8 L Q F P -A /Q F N -A 30 8 29 9 28 10 27 11 26 12 25 13 14 15 16 17 18 19 20 21 22 23 24 P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ]/[S C K /S C L ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P E 0 /[IN T 0 ] P E 1 /[IN T 1 ] P E 2 /[IN T 2 ] P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 NC P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 /[T P 3 _ 0 ] /[T P 1 B _ 2 ] P D 1 /[T P /IN T 3 /[IN T 4 /IN T 2 /[IN P D 2 /[T C K 0 ]/[S D I/S D A ] P 2 _ 0 ]/[S D O ]/[S C K /S C L ] D 0 /[T C K 2 ]/T P 3 _ 1 /[S C S ] 1 ]/T P 0 _ 1 /T P 1 B _ 2 /[P C K ] T 0 ]/[P IN T ]/T C K 3 /T P 2 _ 1 P C 3 /P IN T /T P 2 _ 0 /C 1 P C 2 /T C K 2 /P C K /C 1 + P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] PF5 PF4 PF3 PF2 P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ]/A N 1 1 P F 0 /[C 0 X ]/A N 1 0 1 5 2 5 1 5 0 4 9 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 03 9 2 38 3 37 4 36 5 35 6 7 8 H T66F60 5 2 Q F P -A 34 33 32 9 31 10 30 11 29 12 28 13 27 1415 1617 1819 20 2122 232425 26 P D 3 /[T C K 1 ]/T P 3 _ 0 /[S D O ]/[S C K /S C L ] P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P E 0 /[IN T 0 ] P E 1 /[IN T 1 ] P E 2 /[IN T 2 ] P E 3 /[T P 3 _ 1 ] PF6 PF7 P G 0 /[C 0 X ] P G 1 /[C 1 X ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ]/A N 8 P E 7 /[IN T 1 ]/A N 9 注:1、括号内的引脚为可编程改变位置的引脚。 2、若共用脚同时有多种输出,“/”号右侧的引脚名具有更高的优先级。 3、VDD&AVDD 指的是 VDD 和 AVDD 为同一个引脚。 Rev. 1.60 8 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 引脚说明 除了电源引脚外,该系列单片机的所有引脚都以它们的端口名称进行标注,例 如 PA.0、PA.1 等,用于描述这些引脚的数字输入 / 输出功能。然而,这些引脚 也与其它功能共用,如模数转换器,串行接口引脚等。每个引脚的功能如下表 所述,而引脚配置的详细内容见规格书其它章节。 HT66F20 引脚名称 功能 PA0~PA7 端口 A PB0~PB5 PC0~PC3 AN0~AN7 VREF C0-, C1C0+, C1+ C0X, C1X TCK0, TCK1 TP0_0 TP1_0, TP1_1 INT0, INT1 PINT PCK SDI SDO SCS SCK SCL SDA SCOM0~SCOM3 OSC1 OSC2 XT1 XT2 RES VDD AVDD VSS AVSS 端口 B 端口 C ADC 输入 ADC 参考输入 比较器 0,1 输入 比较器 0,1 输入 比较器 0,1 输出 TM0,TM1 输入 TM0 输入 / 输出 TM1 输入 / 输出 外部中断 0,1 外围中断 外围时钟输出 SPI 数据输入 SPI 数据输出 SPI 从机选择 SPI 串行时钟 I2C 时钟 I2C 数据 SCOM0~SCOM3 HXT/ERC 脚 HXT 脚 LXT 脚 LXT 脚 复位输入 电源电压 * ADC 电源电压 * 地 ** ADC 地 ** OP PAWU PAPU PBPU PCPU ACERL ADCR1 CP0C CP1C — TMPC0 TMPC0 — — — — — — — — — SCOMC CO CO CO CO CO — — — — I/T ST ST ST AN AN AN AN — ST ST ST ST ST — ST — ST ST ST ST — HXT — LXT — ST PWR PWR PWR PWR O/T 共用引脚映射 CMOS — CMOS — CMOS — — PA0~PA7 — PB5 — PA3,PC3 — PA2,PC2 CMOS PA0,PA5 — PA2,PA4 CMOS PA0 CMOS PA1,PC0 — PA3,PA4 — PC3 CMOS PC2 — PA6 CMOS PA5 CMOS PB5 CMOS PA7 NMOS PA7 NMOS PA6 SCOM PC0,PC1,PC2,PC3 — PB1 HXT PB2 — PB3 LXT PB4 — PB0 — — — — — — — — 注:I/T:输入类型; O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源; CO:配置选项; CMOS:CMOS 输出; SCOM:软件控制的 LCD COM; HXT:高速晶体振荡器 ; ST:斯密特触发输入 NMOS:NMOS 输出 AN:模拟输入脚 LXT:低速晶体振荡器 Rev.1.60 9 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 *:VDD 是单片机电源电压,而 AVDD 是 ADC 电源电压。AVDD 与 VDD 在内部是同一个引脚。 **:VSS 是单片机地引脚,而 AVSS 是 ADC 地引脚。AVSS 与 VSS 在内部是同一个引脚。 此引脚功能表是针对大封装芯片而言的,对于小封装的芯片可能不具有上述引脚和功能。 HT66F30 引脚名称 功能 PA0~PA7 端口 A PB0~PB5 PC0~PC7 AN0~AN7 VREF C0-, C1C0+, C1+ C0X, C1X TCK0, TCK1 TP0_0, TP0_1 TP1A TP1B_0, TP1B_1 INT0, INT1 PINT PCK SDI SDO SCS SCK SCL SDA SCOM0~SCOM3 OSC1 OSC2 XT1 XT2 RES VDD AVDD VSS AVSS 端口 B 端口 C ADC 输入 ADC 参考输入 比较器 0,1 输入 比较器 0,1 输入 比较器 0,1 输出 TM0,TM1 输入 TM0 输入 / 输出 TM1 输入 / 输出 TM1 输入 / 输出 外部中断 0,1 外围中断 外围时钟输出 SPI 数据输入 SPI 数据输出 SPI 从机选择 SPI 串行时钟 I2C 时钟 I2C 数据 SCOM0~SCOM3 HXT/ERC 脚 HXT 脚 LXT 脚 LXT 脚 复位输入 电源电压 * ADC 电源电压 * 地 ** ADC 地 ** OP PAWU PAPU PBPU PCPU ACERL ADCR1 CP0C CP1C — TMPC0 TMPC0 TMPC0 — PRM0 PRM0 PRM0 PRM0 PRM0 PRM0 PRM0 PRM0 SCOMC CO CO CO CO CO — — — — I/T ST ST ST AN AN AN AN — ST ST ST ST ST ST — ST — ST ST ST ST — HXT — LXT — ST PWR PWR PWR PWR O/T 共用引脚映射 CMOS — CMOS — CMOS — — PA0~PA7 — PB5 — PA3,PC3 — PA2,PC2 CMOS PA0,PA5 — PA2,PA4 CMOS PA0,PC5 CMOS PA1 CMOS PC0,PC1 — PA3,PA4 — PC3 或 PC4 CMOS PC2 或 PC5 — PA6 或 PC0 CMOS PA5 或 PC1 CMOS PB5 或 PC6 CMOS PA7 或 PC7 NMOS PA7 或 PC7 NMOS PA6 或 PC0 SCOM PC0,PC1,PC6,PC7 — PB1 HXT PB2 — PB3 LXT PB4 — PB0 — — — — — — — — 注:I/T:输入类型; O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源; CO:配置选项; CMOS:CMOS 输出; SCOM:软件控制的 LCD COM; HXT:高速晶体振荡器 ; ST:斯密特触发输入 NMOS:NMOS 输出 AN:模拟输入脚 LXT:低速晶体振荡器 Rev. 1.60 10 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 *:VDD 是单片机电源电压,而 AVDD 是 ADC 电源电压。AVDD 与 VDD 在内部是同一个引脚。 **:VSS 是单片机地引脚,而 AVSS 是 ADC 地引脚。AVSS 与 VSS 在内部是同一个引脚。 此引脚功能表是针对大封装芯片而言的,对于小封装的芯片可能不具有上述引脚和功能。 HT66F40 引脚名称 功能 OP I/T O/T 共用引脚映射 PA0~PA7 端口 A PAWU PAPU ST CMOS — PB0~PB7 端口 B PBPU ST CMOS — PC0~PC7 端口 C PCPU ST CMOS — PD0~PD7 端口 D PDPU ST CMOS — PE0~PE7 端口 E PEPU ST CMOS — PF0~PF1 端口 F PFPU ST CMOS — AN0~AN7 ADC 输入 ACERL AN — PA0~PA7 VREF ADC 参考输入 ADCR1 AN — PB5 C0-, C1- 比较器 0,1 输入 CP0C CP1C AN — PA3,PC3 C0+, C1+ 比较器 0,1 输入 CP0C CP1C AN — PA2,PC2 C0X, C1X CP0C 比较器 0,1 输出 CP1C PRM0 — CMOS PA0,PA5 或 PF0,PF1 TCK0~TCK2 TM0~TM2 输入 PRM1 ST — PA2, PA4, PC2 或 PD2, PD3, PD0 TP0_0, TP0_1 TM0 输入 / 输出 TMPC0 PRM2 ST CMOS PA0,PC5 或 PC6,PD5 TP1A TM1 输入 / 输出 TMPC0 PRM2 ST CMOS PA1 或 PC7 TP1B_0~TP1B_2 TM1 输入 / 输出 TMPC0 PRM2 ST CMOS PC0,PC1,PC5 或 -,-,PE4 TP2_0, TP2_1 TM2 输入 / 输出 TMPC1 PRM2 ST CMOS PC3,PC4 或 PD1,PD4 INT0, INT1 外部中断 0,1 PRM1 ST — PA3, PA4 或 PC4, PC5 或 PE6, PE7 PINT 外围中断 PRM0 ST — PC3 或 PC4 PCK 外围时钟输出 PRM0 — CMOS PC2 或 PC5 SDI SPI 数据输入 PRM0 ST — PA6 或 PD2 或 PB7 SDO SPI 数据输出 PRM0 — CMOS PA5 或 PD3 或 PB6 SCS SPI 从机选择 PRM0 ST CMOS PB5 或 PD0 或 PD7 SCK SPI 串行时钟 PRM0 ST CMOS PA7 或 PD1 或 PD6 SCL SDA I2C 时钟 I2C 数据 PRM0 ST NMOS PA7 或 PD1 或 PD6 PRM0 ST NMOS PA6 或 PD2 或 PB7 SCOM0~SCOM3 SCOM0~SCOM3 SCOMC — SCOM PC0,PC1,PC6,PC7 OSC1 HXT/ERC 脚 CO HXT — PB1 OSC2 HXT 脚 CO — HXT PB2 XT1 LXT 脚 CO LXT — PB3 XT2 LXT 脚 CO — LXT PB4 Rev.1.60 11 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 引脚名称 RES VDD AVDD VSS AVSS 功能 OP I/T O/T 复位输入 CO ST — PB0 电源电压 * — PWR — ADC 电源电压 * — PWR — 地 ** — PWR — ADC 地 ** — PWR — 共用引脚映射 — — — — 注:I/T:输入类型; O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源; CO:配置选项; ST:斯密特触发输入 CMOS:CMOS 输出; NMOS:NMOS 输出 SCOM:软件控制的 LCD COM; AN:模拟输入脚 HXT:高速晶体振荡器 ; LXT:低速晶体振荡器 *:VDD 是单片机电源电压,而 AVDD 是 ADC 电源电压。AVDD 与 VDD 在内部是同一个引脚。 **:VSS 是单片机地引脚,而 AVSS 是 ADC 地引脚。AVSS 与 VSS 在内部是同一个引脚。 此引脚功能表是针对大封装芯片而言的,对于小封装的芯片可能不具有上述引脚和功能。 HT66F50 引脚名称 功能 OP I/T O/T 共用引脚映射 PA0~PA7 端口 A PAWU PAPU ST CMOS — PB0~PB7 端口 B PBPU ST CMOS — PC0~PC7 端口 C PCPU ST CMOS — PD0~PD7 端口 D PDPU ST CMOS — PE0~PE7 端口 E PEPU ST CMOS — PF0~PF1 端口 F PFPU ST CMOS — AN0~AN7 ADC 输入 ACERL AN — PA0~PA7 VREF ADC 参考输入 ADCR1 AN — PB5 C0-, C1- 比较器 0,1 输入 CP0C CP1C AN — PA3,PC3 C0+, C1+ 比较器 0,1 输入 CP0C CP1C AN — PA2,PC2 C0X, C1X CP0C 比较器 0,1 输出 CP1C PRM0 — CMOS PA0,PA5 或 PF0,PF1 TCK0~TCK3 TM0~TM3 输入 PRM1 ST — PA2,PA4,PC2,PC4 或 PD2, PD3,PD0,- TP0_0, TP0_1 TM0 输入 / 输出 TMPC0 PRM2 ST CMOS PA0,PC5 或 PC6,PD5 TP1A TM1 输入 / 输出 TMPC0 PRM2 ST CMOS PA1 或 PC7 TP1B_0~TP1B_2 TM1 输入 / 输出 TMPC0 PRM2 ST CMOS PC0,PC1,PC5 或 -,-,PE4 TP2_0, TP2_1 TM2 输入 / 输出 TMPC1 PRM2 ST CMOS PC3,PC4 或 PD1,PD4 Rev. 1.60 12 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 引脚名称 功能 OP I/T O/T 共用引脚映射 TP3_0, TP3_1 TM3 输入 / 输出 TMPC1 PRM2 ST CMOS PD3,PD0 或 PE5,PE3 INT0, INT1 外部中断 0,1 PRM1 ST — PA3, PA4 或 PC4, PC5 或 PE6, PE7 PINT 外围中断 PRM0 ST — PC3 或 PC4 PCK 外围时钟输出 PRM0 — CMOS PC2 或 PC5 SDI SPI 数据输入 PRM0 ST — PA6 或 PD2 或 PB7 SDO SPI 数据输出 PRM0 — CMOS PA5 或 PD3 或 PB6 SCS SPI 从机选择 PRM0 ST CMOS PB5 或 PD0 或 PD7 SCK SPI 串行时钟 PRM0 ST CMOS PA7 或 PD1 或 PD6 SCL I2C 时钟 PRM0 ST NMOS PA7 或 PD1 或 PD6 SDA I2C 数据 PRM0 ST NMOS PA6 或 PD2 或 PB7 SCOM0~SCOM3 SCOM0~SCOM3 SCOMC — SCOM PC0,PC1,PC6,PC7 OSC1 HXT/ERC 脚 CO HXT — PB1 OSC2 HXT 脚 CO — HXT PB2 XT1 LXT 脚 CO LXT — PB3 XT2 LXT 脚 CO — LXT PB4 RES 复位输入 CO ST — PB0 VDD 电源电压 * — PWR — — AVDD ADC 电源电压 * — PWR — — VSS 地 ** — PWR — — AVSS ADC 地 ** — PWR — — 注:I/T:输入类型; O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源; CO:配置选项; ST:斯密特触发输入 CMOS:CMOS 输出; NMOS:NMOS 输出 SCOM:软件控制的 LCD COM; AN:模拟输入脚 HXT:高速晶体振荡器 ; LXT:低速晶体振荡器 *:VDD 是单片机电源电压,而 AVDD 是 ADC 电源电压。AVDD 与 VDD 在内部是同一个引脚。 **:VSS 是单片机地引脚,而 AVSS 是 ADC 地引脚。AVSS 与 VSS 在内部是同一个引脚。 此引脚功能表是针对大封装芯片而言的,对于小封装的芯片可能不具有上述引脚和功能。 Rev.1.60 13 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 HT66F60 引脚名称 功能 PA0~PA7 端口 A PB0~PB7 PC0~PC7 PD0~PD7 PE0~PE7 PF0~PF7 PG0~PG1 端口 B 端口 C 端口 D 端口 E 端口 F 端口 G AN0~AN11 ADC 输入 VREF ADC 参考输入 C0-, C1- 比较器 0,1 输入 C0+,C1+ 比较器 0,1 输入 C0X, C1X 比较器 0,1 输出 OP PAWU PAPU PBPU PCPU PDPU PEPU PFPU PGPU ACERL ACERH ADCR1 CP0C CP1C CP0C CP1C CP0C CP1C PRM0 TCK0~TCK3 TM0~TM3 输入 PRM1 TP0_0, TP0_1 TM0 输入 / 输出 TP1A TM1 输入 / 输出 TP1B_0~TP1B_2 TM1 输入 / 输出 TP2_0, TP2_1 TM2 输入 / 输出 TP3_0, TP3_1 TM3 输入 / 输出 TMPC0 PRM2 TMPC0 PRM2 TMPC0 PRM2 TMPC1 PRM2 TMPC1 PRM2 INT0~INT3 外部中断 0~3 PRM1 PINT 外围中断 PCK 外围时钟输出 SDI SPI 数据输入 SDO SPI 数据输出 SCS SPI 从机选择 SCK SPI 串行时钟 SCL I2C 时钟 SDA I2C 数据 SCOM0~SCOM3 SCOM0~S5COM3 PRM0 PRM0 PRM0 PRM0 PRM0 PRM0 PRM0 PRM0 SCOMC I/T O/T 共用引脚映射 ST CMOS — ST CMOS — ST CMOS — ST CMOS — ST CMOS — ST CMOS — ST CMOS — AN — PA0~PA7, PE6, PE7, PF0, PF1 AN — PB5 AN — PA3,PC3 AN — PA2,PC2 — CMOS PA0,PA5 或 PF0,PF1 或 PG0,PG1 ST — PA2,PA4,PC2,PC4 或 PD2,PD3,PD0,- ST CMOS PA0,PC5 或 PC6,PD5 ST CMOS PA1 或 PC7 ST CMOS PC0,PC1,PC5 或 -,-,PE4 ST CMOS PC3,PC4 或 PD1,PD4 ST CMOS PD3,PD0 或 PE5,PE3 PA3,PA4,PC4,PC5 或 ST — PC4,PC5,PE2,- 或 PE0,PE1,-,- 或 PE6,PE7,-,- ST — PC3 或 PC4 — CMOS PC2 或 PC5 ST — PA6 或 PD2 或 PB7 — CMOS PA5 或 PD3 或 PB6 或 PD1 ST CMOS PB5 或 PD0 或 PD7 ST CMOS PA7 或 PD1 或 PD6 或 PD3 ST NMOS PA7 或 PD1 或 PD6 或 PD3 ST NMOS PA6 或 PD2 或 PB7 — SCOM PC0,PC1,PC6,PC7 Rev. 1.60 14 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 引脚名称 OSC1 OSC2 XT1 XT2 RES VDD AVDD VSS AVSS 功能 HXT/ERC 脚 HXT 脚 LXT 脚 LXT 脚 复位输入 电源电压 * ADC 电源电压 * 地 ** ADC 地 ** OP I/T O/T 共用引脚映射 CO HXT — PB1 CO — HXT PB2 CO LXT — PB3 CO — LXT PB4 CO ST — PB0 — PWR — — — PWR — — — PWR — — — PWR — — 注:I/T:输入类型; O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源; CO:配置选项; ST:斯密特触发输入 CMOS:CMOS 输出; NMOS:NMOS 输出 SCOM:软件控制的 LCD COM; AN:模拟输入脚 HXT:高速晶体振荡器 ; LXT:低速晶体振荡器 *:VDD 是单片机电源电压,而 AVDD 是 ADC 电源电压。AVDD 与 VDD 在内部是同一个引脚。 **:VSS 是单片机地引脚,而 AVSS 是 ADC 地引脚。AVSS 与 VSS 在内部是同一个引脚。 此引脚功能表是针对大封装芯片而言的,对于小封装的芯片可能不具有上述引脚和功能。 极限参数 电源供应电压 .................................................................................VSS-0.3V~VSS+6.0V 端口输入电压 ................................................................................VSS-0.3V~VDD+0.3V 储存温度 ....................................................................................................-50˚C~125˚C 工作温度 ......................................................................................................-40˚C~85˚C IOL 总电流.............................................................................................................. 80mA IOH 总电流 ............................................................................................................ -80mA 总功耗 ................................................................................................................ 500mW 注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在 上述标示范围外的工作状态,而且若长期在标示范围外的条件下工作,可能影响芯片的 可靠性。 Rev.1.60 15 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 直流电气特性 Ta=25˚C 符号 参数 测试条件 VDD 条件 最小 典型 最大 单位 工作电压 VDD (HXT, ERC, HIRC) fSYS=8MHz — fSYS=12MHz fSYS=20MHz 2.2 — 5.5 V 2.7 — 5.5 V 4.5 — 5.5 V 3V 无负载,fSYS=fH=4MHz, 5V ADC off,WDT 使能 — 0.7 1.1 mA — 1.8 2.7 mA IDD1 工作电流 , 正常模式 , 3V 无负载,fSYS=fH=8MHz, fSYS=fH (HXT, ERC, HIRC) 5V ADC off,WDT 使能 — 1.6 2.4 mA — 3.3 5.0 mA 3V 无负载,fSYS=fH=12MHz, 5V ADC off,WDT 使能 — 2.2 3.3 mA — 5.0 7.5 mA IDD2 工作电流 , 正常模式 , fSYS=fH (HXT) 5V 无负载,fSYS=fH=20MHz, ADC off,WDT 使能 — 6.0 9.0 mA IDD3 工作电流 , 低速模式 , fSYS=fL (LXT, LIRC) 3V 无负载,fSYS=fL , 5V ADC off,WDT 使能 — 10 20 μA — 30 50 μA IIDLE0 IDLE0 模式静态电流 (LXT 或 LIRC on) 3V 无负载,ADC off, 5V WDT 使能 — 1.5 3.0 μA — 3.0 6.0 μA IIDLE1 IDLE1 模式静态电流 (HXT, ERC, HIRC) 3V 无负载 , ADC off, — 0.55 0.83 mA 5V WDT 使能 , fSYS=12MHz on — 1.30 2.00 mA ISLEEP0 SLEEP0 模式静态电流 (LXT 或 LIRC off) 3V 无负载,ADC off, 5V WDT 除能 —— —— 1 μA 2 μA ISLEEP1 SLEEP1 模式静态电流 (LXT 或 LIRC on) 3V 无负载,ADC off, 5V WDT 使能 — 1.5 3.0 μA — 2.5 5.0 μA VIL1 输入 / 输出口或除 RES 脚以外的低电平输入电压 — — 0 — 0.3VDD V VIH1 输入 / 输出口或除 RES 脚以外的高电平输入电压 — — 0.7VDD — VDD V VIL2 低电平输入电压 (RES) — — 0 — 0.4VDD V VIH2 高电平输入电压 (RES) — — 0.9VDD — VDD V LVR 使能,选择 2.10V -5% 2.1 +5% V VLVR 低电压复位电压 LVR 使能,选择 2.55V — LVR 使能,选择 3.15V -5% 2.55 +5% V -5% 3.15 +5% V LVR 使能,选择 4.20V -5% 4.20 +5% V LVDEN=1,VLVD=2.0V -5% 2.00 +5% V LVDEN=1,VLVD=2.2V -5% 2.20 +5% V LVDEN=1,VLVD=2.4V -5% 2.40 +5% V VLVD 低电压检测电压 — LVDEN=1,VLVD=2.7V LVDEN=1,VLVD=3.0V -5% 2.70 +5% V -5% 3.00 +5% V LVDEN=1,VLVD=3.3V -5% 3.30 +5% V LVDEN=1,VLVD=3.6V -5% 3.60 +5% V LVDEN=1,VLVD=4.4V -5% 4.4 +5% V Rev. 1.60 16 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 符号 参数 测试条件 VDD 条件 LVR 使能,LVDEN=0 ILV 使用 LVR 和 LVD 的额外 功耗 — LVR 除能,LVDEN=1 LVR 使能,LVDEN=1 3V IOL=9mA VOL 输入 / 输出口输出低电平 5V IOL=20mA 3V IOH=-3.2mA VOH 输入 / 输出口输出高电平 5V IOH=-7.4mA 3V RPH 输入 / 输出口上拉电阻 — 5V SCOMC,ISEL[1:0]=00 ISCOM SCOM 工作电流 SCOMC,ISEL[1:0]=01 5V SCOMC,ISEL[1:0]=10 SCOMC,ISEL[1:0]=11 VSCOM 用于 LCD COM 的 VDD/2 电压 5V 无负载 V125 1.25V 参考电压 — — I125 使用 1.25V 参考电压的额 外功耗 — — 最小 典型 最大 单位 — 60 90 μA — 75 115 μA — 90 135 μA — — 0.3 V — — 0.5 V 2.7 — — V 4.5 — — V 20 60 100 kΩ 10 30 50 kΩ 17.5 25.0 32.5 μA 35 50 65 μA 70 100 130 μA 140 200 260 μA 0.475 0.500 0.525 VDD -3% 1.25 +3% V — 200 300 μA Rev.1.60 17 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 交流电气特性 符号 参数 fCPU 工作时钟 fSYS 系统时钟 (HXT) fHIRC 系统时钟 (HIRC) fERC 系统时钟 (ERC) fLXT 系统时钟 (LXT) fLIRC 系统时钟 (LIRC) fTIMER 定时器输入频率 tRES 外部复位低电平脉宽 tINT 中断脉宽 tLVR 低压复位时间 tLVD 低压中断时间 测试条件 VDD 条件 最小 2.2V~5.5V DC — 2.7V~5.5V DC 4.5V~5.5V DC 2.2V~5.5V 0.4 — 2.7V~5.5V 0.4 4.5V~5.5V 0.4 3V/5V Ta=25˚C -2% 3V/5V Ta=25˚C -2% 5V Ta=25˚C -2% 3V/5V Ta=0~70˚C -5% 3V/5V Ta=0~70˚C -4% 5V Ta=0~70˚C -5% 2.2V~3.6V Ta=0~70˚C -7% 3.0V~5.5V Ta=0~70˚C -5% 2.2V~3.6V Ta=0~70˚C -6% 3.0V~5.5V Ta=0~70˚C -4% 3.0V~5.5V Ta=0~70˚C -6% 2.2V~3.6V Ta=-40˚C~85˚C -12% 3.0V~5.5V Ta=-40˚C~85˚C -10% 2.2V~3.6V Ta=-40˚C~85˚C -15% 3.0V~5.5V Ta=-40˚C~85˚C -8% 3.0V~5.5V Ta=-40˚C~85˚C -12% 5V Ta=25˚C, R=120kΩ* -2% 5V Ta=0˚C~70˚C, R=120kΩ* -5% 5V Ta=-40˚C~85˚C, R=120kΩ* -7% 3.0V~5.5V Ta=-40˚C~85˚C, R=120kΩ* -9% 2.2V~5.5V Ta=-40˚C~85˚C, R=120kΩ* -15% — — — 5V Ta=25˚C -10% 2.2V~5.5V Ta=-40˚C~85˚C -50% — — — — — 1 — — 1 — — 120 — — 20 典型 — — — — — — 4 8 12 4 8 12 4 4 8 8 12 4 4 8 8 12 8 8 8 8 8 32.768 32 32 — — — 240 45 Ta=25˚C 最大 单位 8 MHz 12 MHz 20 MHz 8 MHz 12 MHz 20 MHz +2% MHz +2% MHz +2% MHz +5% MHz +4% MHz +3% MHz +7% MHz +9% MHz +4% MHz +9% MHz +7% MHz +8% MHz +9% MHz +4% MHz +9% MHz +7% MHz +2% MHz +6% MHz +9% MHz +10% MHz +10% MHz — kHz +10% kHz +60% kHz 1 fSYS — μs — tSYS 480 μs 90 μs Rev. 1.60 18 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 符号 参数 tLVDS LVDO 稳定的时间 tBGS VBG 打开稳定时间 tEERD EEPROM 读周期 tEEWR EEPROM 写周期 系统启动时间 tSST ( 从 HALT 中唤醒 ) 测试条件 VDD 条件 — — — — — — — — fSYS=HXT 或 LXT — fSYS=ERC 或 HIRC fSYS=LIRC 最小 典型 最大 单位 15 — — μs 200 — — μs — 45 90 μs — 2 4 ms — 1024 — — 15~16 — tSYS — 1~2 — 注:1、tSYS=1/fSYS 2、*:表示电阻的公差会影响外部 RC 的频率,建议使用精密度较高的电阻。 3、为了保证 HIRC 振荡器的频率精度,VDD 与 VSS 间连接一个 0.1μF 的去耦电容,并尽可能接近 芯片。 ADC 特性 符号 参数 测试条件 VDD 条件 AVDD ADC 工作电压 — — VADI AD 输入电压 — — VREF ADC 参考电压 — — DNL A/D 非线性微分误差 5V tAD=1.0μs INL A/D 非线性积分误差 5V tAD=1.0μs IADC 打开 A/D 增加的功耗 3V 无负载,tAD=0.5μs 5V 无负载,tAD=0.5μs tADCK A/D 时钟周期 — — tADC A/D 转换时间 ( 包括 A/D 采样和保持时间 ) — 12-bit ADC tSH A/D 采样时间 — — Ta=25˚C 最小值 典型值 最大值 单位 2.7 — 5.5 V 0 — VREF V 2 — AVDD V — ±1 ±2 LSB — ±2 ±4 LSB — 0.90 1.35 mA — 1.20 1.80 mA 0.5 — 10 μs — 16 — tADCK — 4 — tADCK Rev.1.60 19 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 比较器电气特性 符号 参数 VDD VCMP 比较器工作电压 — 3V ICMP 比较器工作电流 5V VCMPOS 比较器输入失调电压 — VHYS 迟滞宽度 — VCM 比较器共模电压范围 — AOL 比较器开环增益 — tPD 比较器响应时间 — 测试条件 条件 — — — — — — — 100mV 偏置(注) 最小 典型 2.2 — — 37 — 130 -10 — 20 40 VSS — 60 80 — 370 Ta=25˚C 最大 单位 5.5 V 56 μA 200 μA 10 mV 60 mV VDD-1.4V V — dB 560 ns 注:测量方式为:当一只输入脚的输入电压为 VCM=(VDD-1.4)/2 时,另一只输入脚的输入电压从 VSS 到 (VCM+100mV) 或从 VDD 到 (VCM-100mV) 转变。 上电复位特性 符号 参数 VPOR RRVDD tPOR 上电复位电压 上电复位电压速率 VDD 保持为 VPOR 的最小时间 V DD 测试条件 VDD 条件 — — — — — — 最小 — 0.035 1 典型 — — — Ta=25˚C 最大 单位 100 mV — V/ms — ms tP O R R R VDD V POR T im e Rev. 1.60 20 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 系统结构 内部系统结构是盛群单片机具有良好性能的主要因素。由于采用 RISC 结构, 此系列单片机具有高运算速度和高性能的特点。通过流水线的方式,指令的取 得和执行同时进行,此举使得除了跳转和调用指令外,其它指令都能在一个指 令周期内完成。8 位 ALU 参与指令集中所有的运算,它可完成算术运算、逻辑 运算、移位、递增、递减和分支等功能,而内部的数据路径则是以通过累加器 和 ALU 的方式加以简化。有些寄存器在数据存储器中被实现,且可以直接或间 接寻址。简单的寄存器寻址方式和结构特性,确保了在提供具有最大可靠度和 灵活性的 I/O 和 A/D 控制系统时,仅需要少数的外部器件。使得这些单片机适 用于低成本和批量生产的控制应用。 时序和流水线结构 主 系 统 时 钟 由 HXT,LXT,HIRC,LIRC 或 ERC 振 荡 器 提 供, 它 被 细 分 为 T1~T4 四个内部产生的非重叠时序。在 T1 时间,程序计数器自动加一并抓取 一条新的指令。剩下的时间 T2~T4 完成译码和执行功能,因此,一个 T1~T4 时 钟周期构成一个指令周期。虽然指令的抓取和执行发生在连续的指令周期,但 单片机流水线结构会保证指令在一个指令周期内被有效执行。除非程序计数器 的内容被改变,如子程序的调用或跳转,在这种情况下指令将需要多一个指令 周期的时间去执行。 fS Y S ( S y s te m C lo c k ) P h a s e C lo c k T 1 P h a s e C lo c k T 2 P h a s e C lo c k T 3 P h a s e C lo c k T 4 P ro g ra m C o u n te r PC PC +1 PC +2 P ip e lin in g F e tc h In s t. (P C ) E x e c u te In s t. (P C -1 ) F e tc h In s t. (P C + 1 ) E x e c u te In s t. (P C ) F e tc h In s t. (P C + 2 ) E x e c u te In s t. (P C + 1 ) 系统时序和流水线 如果指令牵涉到分支,例如跳转或调用等指令,则需要两个指令周期才能完成 指令执行。需要一个额外周期的原因是程序先用一个周期取出实际要跳转或调 用的地址,再用另一个周期去实际执行分支动作,因此用户需要特别考虑额外 周期的问题,尤其是在执行时间要求较严格的时候。 1 M O V A ,[1 2 H ] 2 C A LL D E LA Y 3 C P L [1 2 H ] 4 : 5 : 6 D E LA Y : N O P F e tc h In s t. 1 E x e c u te In s t. 1 F e tc h In s t. 2 E x e c u te In s t. 2 F e tc h In s t. 3 F lu s h P ip e lin e F e tc h In s t. 6 E x e c u te In s t. 6 F e tc h In s t. 7 指令捕捉 Rev.1.60 21 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 程序计数器 在程序执行期间,程序计数器用来指向下一个要执行的指令地址。除了 “JMP” 和“CALL”指令需要跳转到一个非连续的程序存储器地址之外,它会在每条 指令执行完成以后自动加一。选择不同型号的单片机,程序寄存器的宽度会因 程序存储器的容量的不同而不同。只有较低的 8 位,即所谓的程序计数器低字 节寄存器 PCL,可以被用户直接读写。 当执行的指令要求跳转到不连续的地址时,如跳转指令、子程序调用、中断或 复位等,单片机通过加载所需要的位址到程序寄存器来控制程序,对于条件跳 转指令,一旦条件符合,在当前指令执行时取得的下一条指令将会被舍弃,而 由一个空指令周期来取代。 单片机型号 HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 程序计数器 程序计数器高字节 PCL 寄存器 PC9,PC8 PC10~PC8 PC11~PC8 PCL7~PCL0 PC12~PC8 PC13~PC8 程序计数器 程序计数器的低字节,即程序计数器的低字节寄存器 PCL,可以通过程序控制, 且它是可以读取和写入的寄存器。通过直接写入数据到这个寄存器,一个程序 短跳转可直接执行,然而只有低字节的操作是有效的,跳转被限制在存储器的 当前页中,即 256 个存储器地址范围内,当这样一个程序跳转要执行时,会插 入一个空指令周期。PCL 的使用可能引起程序跳转,因此需要额外的指令周期。 Rev. 1.60 22 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 堆栈 堆栈是一个特殊的存储空间,用来存储程序计数器中的内容。各单片机有不同 的堆栈层数,堆栈既不是数据部分也不是程序空间部分,而且它既不是可读取 也不是可写入的。当前层由堆栈指针 (SP) 加以指示,同样也是不可读写的。在 子程序调用或中断响应服务时,程序计数器的内容被压入到堆栈中。当子程序 或中断响应结束时,返回指令 (RET 或 RETI) 使程序计数器从堆栈中重新得到 它以前的值。当一个芯片复位后,堆栈指针将指向堆栈顶部。 P ro g ra m C o u n te r T o p o f S ta c k S ta c k P o in te r S ta c k L e v e l 1 S ta c k L e v e l 2 S ta c k L e v e l 3 P ro g ra m M e m o ry B o tto m o f S ta c k S ta c k L e v e l N 如果堆栈已满,且有非屏蔽的中断发生,中断请求标志会被置位,但中断响应 将被禁止。当堆栈指针减少 ( 执行 RET 或 RETI),中断将被响应。这个特性提 供程序设计者简单的方法来预防堆栈溢出。然而即使堆栈已满,CALL 指令仍 然可以被执行,而造成堆栈溢出。使用时应避免堆栈溢出的情况发生,因为这 可能导致不可预期的程序分支指令执行错误。 若堆栈溢出,则首个存入堆栈的程序计数器数据将会丢失。 单片机型号 HT66F20/HT66F30 HT66F40/HT66F50 HT66F60 堆栈层数 4 8 12 算术逻辑单元 – ALU 算术逻辑单元是单片机中很重要的部分,执行指令集中的算术和逻辑运算。 ALU 连接到单片机的数据总线,在接收相关的指令码后执行需要的算术与逻辑 操作,并将结果存储在指定的寄存器,当 ALU 计算或操作时,可能导致进位、 借位或其它状态的改变,而相关的状态寄存器会因此更新内容以显示这些改变, ALU 所提供的功能如下: ● 算术运算:ADD,ADDM,ADC,ADCM,SUB,SUBM,SBC,SBCM, DAA ● 逻辑运算:AND,OR,XOR,ANDM,ORM,XORM,CPL,CPLA ● 移位运算:RRA,RR,RRCA,RRC,RLA,RL,RLCA,RLC ● 递增和递减:INCA,INC,DECA,DEC ● 分支判断:JMP,SZ,SZA,SNZ,SIZ,SDZ,SIZA,SDZA,CALL, RET,RETI Rev.1.60 23 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Flash 程序存储器 程序存储器用来存放用户代码即储存程序。程序存储器为 FLASH 类型意味着 可以多次重复编程,方便用户使用同一芯片进行程序的修改。使用适当的单片 机编程工具,此系列所有单片机提供用户灵活便利的调试方法和项目开发规划 及更新。 结构 程序存储器的容量为 1K×14 位到 12K×16 位,程序存储器用程序计数器来寻址, 其中也包含数据、表格和中断入口。数据表格可以设定在程序存储器的任何地 址,由表格指针来寻址。 单片机型号 HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 容量 1K×14 2K×14 4K×15 8K×16 12K×16 Banks 0 0 0 0 0,1 HT66F60 程序存储器分为两个 Bank,Bank 0 和 Bank 1。通过 BP 寄存器的第 5 位选择所需要的 Bank。 特殊向量 程序存储器内部某些地址保留用做诸如复位和中断入口等特殊用途。地址 000H 是芯片复位后的程序起始地址。在芯片复位之后,程序将跳到这个地址并开始 执行。 0000H 0004H 002C H 0 6$$.  R eset In te rru p t V e c to r 0 6$$.! R eset In te rru p t V e c to r 0 6$$." R eset In te rru p t V e c to r 0 6$$.# R eset In te rru p t V e c to r 03FFH 1 4 b its 07FFH 1 4 b its 003C H 0 6$$.$ R eset In te rru p t V e c to r B ank 0 0FFFH 1 5 b its 1FFFH 1 6 b its 1FFFH 1 6 b its 程序存储器结构 2000H 2FFFH B ank 1 Rev. 1.60 24 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 查表 程序存储器中的任何地址都可以定义成一个表格,以便储存固定的数据。使用 表格时,表格指针必须先行设定,其方式是将表格的地址放在表格指针寄存器 TBLP 和 TBHP 中。这些寄存器定义表格总的地址。 在设定完表格指针后,表格数据可以使用“TABRD [m]”或“TABRDL [m]” 指令分别从程序存储器查表读取。当这些指令执行时,程序存储器中表格数据 低字节,将被传送到使用者所指定的数据存储器 [m],程序存储器中表格数据 的高字节,则被传送到 TBLH 特殊寄存器,而高字节中未使用的位将被读取为 “0”。 下图是查表中寻址 / 数据流程: Lastpage or T B H P R e g is te r T B L P R e g is te r A d d re s s P ro g ra m M e m o ry D a ta 1 4 ~ 1 6 b its R e g is te r T B L H H ig h B y te U s e r S e le c te d R e g is te r L o w B y te 查表范例 以下范例说明表格指针和表格数据如何被定义和执行。这个例子使用的表格数 据用 ORG 伪指令储存在存储器中。HT66F30 中 ORG 指令的值“700H”指向的 地址是 2K 程序存储器中最后一页的起始地址。表格指针的初始值设为 06H, 这可保证从数据表格读取的第一笔数据位于程序存储器地址 706H,即最后一 页起始地址后的第六个地址。值得注意的是,假如“TABRD [m]”指令被使 用,则表格指针指向当前页。在这个例子中,表格数据的高字节等于零,而当 “TABRD [m]”指令被执行时,此值将会自动的被传送到 TBLH 寄存器。 表格读取程序举例 tempreg1 db ? ; temporary register #1 tempreg2 db ? ; temporary register #2 : : mov a,06h ; initialise low table pointer - note that this address mov tblp,a ; is referenced mov a,07h ; initialise high table pointer tbhp,a : : tabrd tempreg1 ; transfers value in table referenced by table pointer ; data at program memory address “706H” transferred to ; tempreg1 and TBLH dec tblp ; reduce value of table pointer by one tabrd tempreg2 ; transfers value in table referenced by table pointer ; data at program memory address “705H” transferred to ; tempreg2 and TBLH in this example the data “1AH” is ; transferred to tempreg1 and data “0FH” to register ; tempreg2 : : org 700h ; sets initial address of program memory dc 00Ah, 00Bh, 00Ch, 00Dh, 00Eh, 00Fh, 01Ah, 01Bh : : Rev.1.60 25 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 TBLH 寄存器为只读寄存器,不能重新储存,若主程序和中断服务程序都使用 表格读取指令,应该注意它的保护。使用表格读取指令,中断服务程序可能会 改变 TBLH 的值,若随后在主程序中再次使用这个值,则会发生错误,因此建 议避免同时使用表格读取指令。然而在某些情况下,如果同时使用表格读取指 令是不可避免的,则在执行任何主程序的表格读取指令前,中断应该先除能, 另外要注意的是所有与表格相关的指令,都需要两个指令周期去完成操作。 在线编程 Flash 型程序存储器提供用户便利地对同一芯片进行程序的更新和修改。另外, HOLTEK 单片机提供 5 线接口的在线编程方式。用户可将进行过编程或未经过 编程的单片机芯片连同电路板一起制成,最后阶段进行程序的更新和程序的烧 写,在无需去除或重新插入芯片的情况下方便地保持程序为最新版。 MCU 在线编程引脚名称 功能 PA0 串行数据输入 / 输出 PA2 串行时钟 RES 复位 VDD 电源 VSS 地 芯片内部程序存储器和 EEPROM 存储器都可以通过 5 线的接口在线进行编程。 其中 PA0 用于数据串行下载或上传、PA2 用于串行时钟、两条用于提供电源, 另外一条用于复位。芯片在线烧写的详细使用说明超出此文档的描述范围,将 由专门的参考文献提供。 在编程过程中,编程器会将 RES 脚一直拉低以除能单片机工作,并控制 PA0 和 PA2 脚进行数据和时钟编程,用户必须确保这两个引脚没有连接至其它输出脚。 W r ite r C o n n e c to r S ig n a ls M C U P r o g r a m m in g P in s W r ite r _ V D D VDD RES D ATA RES D ATA C LK C LK W r ite r _ V S S VSS *** T o o th e r C ir c u it 注:* 可能为电阻或电容。若为电阻则其值必须大于 1kΩ,若为电容则其必须小于 1nF。 在线编程引脚 MCU 引脚 RES PB0 DATA PA0 CLK PA2 在线编程和 MCU 引脚 Rev. 1.60 26 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 数据存储器 数据存储器是内容可更改的 8 位 RAM 内部存储器,用来储存临时数据。 结构 数据存储器分为两个区,第一部分是特殊功能数据存储器。这些寄存器有固定 的地址且与单片机的正确操作密切相关。大多特殊功能寄存器都可在程序控制 下直接读取和写入,但有些被加以保护而不对用户开放。 第二部分数据存储器是做一般用途使用,都可在程序控制下进行读取和写入。 总的数据存储器被分为几个区,由所选的单片机决定的。大部分特殊功能数 据寄存器均可在所有 Bank 被访问,处于“40H”地址的 EEC 寄存器却只能在 Bank 1 中被访问到。切换不同区域可通过设置区域指针 (BP) 实现。所有单片机 的数据存储器的起始地址都是“00H”。 单片机型号 HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 容量 64×8 96×8 192×8 384×8 576×8 Banks 0: 60H~7FH 1: 60H~7FH 0: 60H~7FH 1: 60H~7FH 2: 60H~7FH 0: 80H~FFH 1: 80H~BFH 0: 80H~FFH 1: 80H~FFH 2: 80H~FFH 0: 80H~FFH 1: 80H~FFH 2: 80H~FFH 3: 80H~FFH 4: 80H~BFH Rev.1.60 27 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 B ank 0,1 00H IA R 0 01H M P0 02H IA R 1 03H M P1 04H BP 05H ACC 06H PCL 07H TB LP 08H TB LH 09H TBH P 0A H STATU S 0B H SM O D 0C H LV D C 0D H IN T E G 0E H W D TC 0FH TBC 10H IN T C 0 11H IN T C 1 12H IN T C 2 13H U nused 14H M F I0 15H M F I1 16H M F I2 17H U nused 18H PAW U 19H PAPU 1A H PA 1B H PAC 1C H PBPU 1D H PB 1E H PBC 1FH PCPU 20H PC 21H PCC 22H U nused 23H U nused 24H U nused 25H U nused 26H U nused 27H U nused 28H U nused 29H U nused 2A H U nused 2B H U nused 2C H U nused 2D H U nused 2E H ADRL 2FH ADRH B ank 0 B ank 1 30H ADCR0 31H ADCR1 32H ACERL 33H U nused 34H C P 0C 35H C P 1C 36H S IM C 0 37H S IM C 1 38H S IM D 39H S IM A /S IM C 2 3A H TM 0C 0 3B H TM 0C 1 3C H TM 0D L 3D H TM 0D H 3E H TM 0A L 3FH TM 0A H 40H U nused EEC 41H EEA 42H EED 43H TM PC 0 44H U nused 45H U nused 46H U nused 47H U nused 48H TM 1C 0 49H TM 1C 1 4A H U nused 4B H TM 1D L 4C H TM 1D H 4D H TM 1A L 4E H TM 1A H 4FH U nused 50H U nused 51H U nused 52H U nused 53H U nused 54H U nused 55H U nused 56H U nused 57H U nused 58H U nused 59H U nused 5A H U nused 5B H U nused 5C H U nused 5D H U nused 5E H SCO M C 5FH U nused HT66F20 特殊功能数据存储器结构 B ank 0,1,2 00H IA R 0 01H M P0 02H IA R 1 03H M P1 04H BP 05H ACC 06H PCL 07H TB LP 08H TB LH 09H TBH P 0A H STATU S 0B H SM O D 0C H LV D C 0D H IN T E G 0E H W D TC 0FH TBC 10H IN T C 0 11H IN T C 1 12H IN T C 2 13H U nused 14H M F I0 15H M F I1 16H M F I2 17H U nused 18H PAW U 19H PAPU 1A H PA 1B H PAC 1C H PBPU 1D H PB 1E H PBC 1FH PCPU 20H PC 21H PCC 22H U nused 23H U nused 24H U nused 25H U nused 26H U nused 27H U nused 28H U nused 29H U nused 2A H U nused 2B H U nused 2C H U nused 2D H U nused 2E H ADRL 2FH ADRH B ank 0,2 B ank 1 30H ADCR0 31H ADCR1 32H ACERL 33H U nused 34H C P 0C 35H C P 1C 36H S IM C 0 37H S IM C 1 38H S IM D 39H S IM A /S IM C 2 3A H TM 0C 0 3B H TM 0C 1 3C H TM 0D L 3D H TM 0D H 3E H TM 0A L 3FH TM 0A H 40H U nused EEC 41H EEA 42H EED 43H TM PC 0 44H U nused 45H PRM 0 46H U nused 47H U nused 48H TM 1C 0 49H TM 1C 1 4A H TM 1C 2 4B H TM 1D L 4C H TM 1D H 4D H TM 1A L 4E H TM 1A H 4FH TM 1B L 50H TM 1B H 51H U nused 52H U nused 53H U nused 54H U nused 55H U nused 56H U nused 57H U nused 58H U nused 59H U nused 5A H U nused 5B H U nused 5C H U nused 5D H U nused 5E H SCO M C 5FH U nused HT66F30 特殊功能数据存储器结构 Rev. 1.60 28 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 B ank 0,1 00H IA R 0 01H M P0 02H IA R 1 03H M P1 04H BP 05H ACC 06H PCL 07H TB LP 08H TB LH 09H TBH P 0A H STATU S 0B H SM O D 0C H LV D C 0D H IN T E G 0E H W D TC 0FH TBC 10H IN T C 0 11H IN T C 1 12H IN T C 2 13H U nused 14H M F I0 15H M F I1 16H M F I2 17H U nused 18H PAW U 19H PAPU 1A H PA 1B H PAC 1C H PBPU 1D H PB 1E H PBC 1FH PCPU 20H PC 21H PCC 22H PDPU 23H PD 24H PDC 25H PEPU 26H PE 27H PEC 28H PFPU 29H PF 2A H PFC 2B H U nused 2C H U nused 2D H U nused 2E H ADRL 2FH ADRH 30H ADCR0 31H ADCR1 32H ACERL 33H U nused 34H C P 0C 35H C P 1C 36H S IM C 0 37H S IM C 1 38H S IM D 39H S IM A /S IM C 2 3A H TM 0C 0 3B H TM 0C 1 3C H TM 0D L 3D H TM 0D H 3E H TM 0A L 3FH TM 0A H B ank 0 B ank 1 40H U nused EEC 41H EEA 42H EED 43H TM PC 0 44H TM PC 1 45H PRM 0 46H PRM 1 47H PRM 2 48H TM 1C 0 49H TM 1C 1 4A H TM 1C 2 4B H TM 1D L 4C H TM 1D H 4D H TM 1A L 4E H TM 1A H 4FH TM 1B L 50H TM 1B H 51H TM 2C 0 52H TM 2C 1 53H TM 2D L 54H TM 2D H 55H TM 2A L 56H TM 2A H 57H TM 2R P 58H U nused 59H U nused 5A H U nused 5B H U nused 5C H U nused 5D H U nused 5E H SCO M C 5FH U nused 60H U nused 61H U nused 62H U nused 63H U nused 64H U nused 65H U nused 66H U nused 67H U nused 68H U nused 69H U nused 6A H U nused 6B H U nused 6C H U nused 6D H U nused 6E H U nused 6FH U nused 70H U nused 71H U nused 72H U nused 73H U nused 74H U nused 75H U nused 76H U nused 77H U nused 78H U nused 79H U nused 7A H U nused 7B H U nused 7C H U nused 7D H U nused 7E H U nused 7FH U nused HT66F40 特殊功能数据存储器结构 B ank 0,1,2 00H IA R 0 01H M P0 02H IA R 1 03H M P1 04H BP 05H ACC 06H PCL 07H TB LP 08H TB LH 09H TBH P 0A H STATU S 0B H SM O D 0C H LV D C 0D H IN T E G 0E H W D TC 0FH TBC 10H IN T C 0 11H IN T C 1 12H IN T C 2 13H U nused 14H M F I0 15H M F I1 16H M F I2 17H M F I3 18H PAW U 19H PAPU 1A H PA 1B H PAC 1C H PBPU 1D H PB 1E H PBC 1FH PCPU 20H PC 21H PCC 22H PDPU 23H PD 24H PDC 25H PEPU 26H PE 27H PEC 28H PFPU 29H PF 2A H PFC 2B H U nused 2C H U nused 2D H U nused 2E H ADRL 2FH ADRH 30H ADCR0 31H ADCR1 32H ACERL 33H U nused 34H C P 0C 35H C P 1C 36H S IM C 0 37H S IM C 1 38H S IM D 39H S IM A /S IM C 2 3A H TM 0C 0 3B H TM 0C 1 3C H TM 0D L 3D H TM 0D H 3E H TM 0A L 3FH TM 0A H B ank 0,2 B ank 1 40H U nused EEC 41H EEA 42H EED 43H TM PC 0 44H TM PC 1 45H PRM 0 46H PRM 1 47H PRM 2 48H TM 1C 0 49H TM 1C 1 4A H TM 1C 2 4B H TM 1D L 4C H TM 1D H 4D H TM 1A L 4E H TM 1A H 4FH TM 1B L 50H TM 1B H 51H TM 2C 0 52H TM 2C 1 53H TM 2D L 54H TM 2D H 55H TM 2A L 56H TM 2A H 57H TM 2R P 58H TM 3C 0 59H TM 3C 1 5A H TM 3D L 5B H TM 3D H 5C H TM 3A L 5D H TM 3A H 5E H SCO M C 5FH U nused 60H U nused 61H U nused 62H U nused 63H U nused 64H U nused 65H U nused 66H U nused 67H U nused 68H U nused 69H U nused 6A H U nused 6B H U nused 6C H U nused 6D H U nused 6E H U nused 6FH U nused 70H U nused 71H U nused 72H U nused 73H U nused 74H U nused 75H U nused 76H U nused 77H U nused 78H U nused 79H U nused 7A H U nused 7B H U nused 7C H U nused 7D H U nused 7E H U nused 7FH U nused HT66F50 特殊功能数据存储器结构 Rev.1.60 29 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 B ank 0,1,2,3,4 00H IA R 0 01H M P0 02H IA R 1 03H M P1 04H BP 05H ACC 06H PCL 07H TB LP 08H TB LH 09H TBH P 0A H STATU S 0B H SM O D 0C H LV D C 0D H IN T E G 0E H W D TC 0FH TBC 10H IN T C 0 11H IN T C 1 12H IN T C 2 13H IN T C 3 14H M F I0 15H M F I1 16H M F I2 17H M F I3 18H PAW U 19H PAPU 1A H PA 1B H PAC 1C H PBPU 1D H PB 1E H PBC 1FH PCPU 20H PC 21H PCC 22H PDPU 23H PD 24H PDC 25H PEPU 26H PE 27H PEC 28H PFPU 29H PF 2A H PFC 2B H PG PU 2C H PG 2D H PG C 2E H ADRL 2FH ADRH 30H ADCR0 31H ADCR1 32H ACERL 33H ACERH 34H C P 0C 35H C P 1C 36H S IM C 0 37H S IM C 1 38H S IM D 39H S IM A /S IM C 2 3A H TM 0C 0 3B H TM 0C 1 3C H TM 0D L 3D H TM 0D H 3E H TM 0A L 3FH TM 0A H B ank 40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4A H 4B H 4C H 4D H 4E H 4FH 50H 51H 52H 53H 54H 55H 56H 57H 58H 59H 5A H 5B H 5C H 5D H 5E H 5FH 60H 61H 62H 63H 64H 65H 66H 67H 68H 69H 6A H 6B H 6C H 6D H 6E H 6FH 70H 71H 72H 73H 74H 75H 76H 77H 78H 79H 7A H 7B H 7C H 7D H 7E H 7FH 0,2,3,4 B ank 1 U nused EEC EEA EED TM PC 0 TM PC 1 PRM 0 PRM 1 PRM 2 TM 1C 0 TM 1C 1 TM 1C 2 TM 1D L TM 1D H TM 1A L TM 1A H TM 1B L TM 1B H TM 2C 0 TM 2C 1 TM 2D L TM 2D H TM 2A L TM 2A H TM 2R P TM 3C 0 TM 3C 1 TM 3D L TM 3D H TM 3A L TM 3A H SCO M C U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused U nused HT66F60 特殊功能数据存储器结构 Rev. 1.60 30 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 特殊功能寄存器 大部分特殊功能寄存器的细节将在相关功能章节描述,但有几个寄存器需在此 章节单独描述。 间接寻址寄存器 – IAR0,IAR1 间接寻址寄存器 IAR0 和 IAR1 的地址虽位于数据存储区,但其并没有实际的物 理地址。间接寻址的方法准许使用间接寻址指针做数据操作,以取代定义实际 存储器地址的直接存储器寻址方法。在间接寻址寄存器(IAR0 和 IAR1)上的 任何动作,将对间接寻址指针 (MP0 和 MP1) 所指定的存储器地址产生对应的读 / 写操作。它们总是成对出现,IAR0 和 MP0 可以访问 Bank 0,而 IAR1 和 MP1 可以访问 Bank 0 和 Bank 1。因为这些间接寻址寄存器不是实际存在的,直接读 取将返回“00H”的结果,而直接写入此寄存器则不做任何操作。 间接寻址指针 – MP0,MP1 该系列单片机提供两个间接寻址指针,即 MP0 和 MP1。由于这些指针在数据 存储器中能像普通的寄存器一般被操作,因此提供了一个寻址和数据追踪的有 效方法。当对间接寻址寄存器进行任何操作时,单片机指向的实际地址是由间 接寻址指针所指定的地址。MP0,IAR0 用于访问 Bank 0,而 MP1 和 IAR1 可 通过 BP 寄存器访问所有的 Bank。Bank 0 仅可使用直接寻址,其它所有 Bank 都可使用 MP1 和 IAR1 进行间接寻址。注意,对于 HT66F20 和 HT66F30,间 接寻址指针的第 7 位没有作用,必须注意当读取间接寻址指针时,第 7 位将返 回“1”。 以下例子说明如何清除一个具有 4 RAM 地址的区块,它们已事先定义成地址 adres1 到 adres4。 间接寻址程序举例 data .section ´data´ adres1 db ? adres2 db ? adres3 db ? adres4 db ? block db ? code .section at 0 ´code´ org 00h start: mov a,04h mov block,a mov a,offset adres1 mov mp0,a loop: clr IAR0 inc mp0 sdz block jmp loop continue: ; setup size of block ; Accumulator loaded with first RAM address ; setup memory pointer with first RAM address ; clear the data at address defined by mp0 ; increment memory pointer ; check if last memory location has been cleared 在上面的例子中有一点值得注意,即并没有确定 RAM 地址。 Rev.1.60 31 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 存储区指针 – BP 数据存储器被分为几个部分,具体数目由所选择的单片机型号决定。可以通过 设置存储区指针(Bank Pointer)值来访问不同的程序和数据存储区。BP 指针 的第 5 位用于选择程序存储区 0 或 1,第 0~2 位用于选择数据存储区 0~4。 复位后,数据存储器会初始化到 Bank 0,但是在暂停模式下的 WDT 溢出复位, 不会改变通用数据存储器的存储区号。应该注意的是特殊功能数据存储器不受 存储区的影响,也就是说,不论是在哪一个存储区,都能对特殊功能寄存器进 行读写操作。数据存储器的直接寻址总是访问 Bank 0,不影响存储区指针的值。 要访问 Bank 0 之外的存储区,则必须要使用间接寻址方式。 由于程序存储器和数据存储器共享同一个 BP 寄存器,编程时务必注意。 位 单片机型号 7 6 5 4 3 2 1 0 HT66F20 — HT66F40 — — — — — — DMBP0 HT66F30 — HT66F50 HT66F60 — — — — — — DMBP1 DMBP0 — PMBP0 — — DMBP2 DMBP1 DMBP0 存储区指针 BP 寄存器 ● HT66F20/HT66F40 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~1 Bit 0 未使用,读为“0” DMBP0:数据存储区选择位 0:Bank 0 1:Bank 1 ● HT66F30/HT66F50 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1~0 未使用,读为“0” DMBP1,DMBP0:数据存储区选择位 00:Bank 0 01:Bank 1 10:Bank 2 11:未定义 2 1 0 — — DMBP0 — — R/W — — 0 2 1 0 — DMBP1 DMBP0 — R/W R/W — 0 0 Rev. 1.60 32 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F60 Bit 7 6 5 43 2 Name — — PMBP0 — — DMBP2 R/W — — R/W —— R/W POR — — 0 —— 0 Bit 7~6 Bit 5 Bit 4~3 Bit 2~0 未使用,读为“0” PMBP0:程序存储区选择位 0:Bank 0,程序存储器地址 0000H~1FFFH 1:Bank 1,程序存储器地址 2000H~2FFFH 未使用,读为“0” DMBP2~DMBP0:数据存储区选择位 000:Bank 0 001:Bank 1 010:Bank 2 011:Bank 3 100:Bank 4 101~111:未定义 1 DMBP1 R/W 0 0 DMBP0 R/W 0 累加器 – ACC 对任何单片机来说,累加器是相当重要的,且与 ALU 所完成的运算有密切关 系,所有 ALU 得到的运算结果都会暂时存在 ACC 累加器里。若没有累加器, ALU 必须在每次进行如加法、减法和移位的运算时,将结果写入到数据存储器, 这样会造成程序编写和时间的负担。另外数据传送也常常牵涉到累加器的临时 储存功能,例如在使用者定义的一个寄存器和另一个寄存器之间传送数据时, 由于两寄存器之间不能直接传送数据,因此必须通过累加器来传送数据。 程序计数器低字节寄存器 – PCL 为了提供额外的程序控制功能,程序计数器低字节设置在数据存储器的特殊功 能区域内,程序员可对此寄存器进行操作,很容易的直接跳转到其它程序地址。 直接给 PCL 寄存器赋值将导致程序直接跳转到程序存储器的某一地址,然而由 于寄存器只有 8 位长度,因此只允许在本页的程序存储器范围内进行跳转,而 当使用这种运算时,要注意会插入一个空指令周期。 表格寄存器 – TBLP,TBHP,TBLH 这三个特殊功能寄存器对存储在程序存储器中的表格进行操作。TBLP 和 TBHP 为表格指针,指向表格数据存储的地址。它们的值必须在任何表格读取指令执 行前加以设定,由于它们的值可以被如“INC”或“DEC”的指令所改变,这 就提供了一种简单的方法对表格数据进行读取。表格读取数据指令执行之后, 表格数据高字节存储在 TBLH 中。其中要注意的是,表格数据低字节会被传送 到使用者指定的地址。 Rev.1.60 33 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 状态寄存器 – STATUS 这 8 位的状态寄存器由零标志位 (Z)、进位标志位 (C)、辅助进位标志位 (AC)、 溢出标志位 (OV)、暂停标志位 (PDF) 和看门狗定时器溢出标志位 (TO) 组成。 这些算术 / 逻辑操作和系统运行标志位是用来记录单片机的运行状态。 除了 PDF 和 TO 标志外,状态寄存器中的位像其它大部分寄存器一样可以被改 变。任何数据写入到状态寄存器将不会改变 TO 或 PDF 标志位。另外,执行不 同的指令后,与状态寄存器有关的运算可能会得到不同的结果。TO 标志位只会 受系统上电、看门狗溢出或执行“CLR WDT”或“HALT”指令影响。PDF 标 志位只会受执行“HALT”或“CLR WDT”指令或系统上电影响。 Z、OV、AC 和 C 标志位通常反映最近运算的状态。 ● C:当加法运算的结果产生进位,或减法运算的结果没有产生借位时,则 C 被置位,否则 C 被清零,同时 C 也会被带进位的移位指令所影响。 ● AC:当低半字节加法运算的结果产生进位,或高半字节减法运算的结果没有 产生借位时,AC 被置位,否则 AC 被清零。 ● Z: 当算术或逻辑运算结果是零时,Z 被置位,否则 Z 被清零。 ● OV:当运算结果高两位的进位状态异或结果为 1 时,OV 被置位,否则 OV 被清零。 ● PDF:系统上电或执行“CLR WDT”指令会清零 PDF,而执行“HALT”指 令则会置位 PDF。 ● TO:系统上电或执行“CLR WDT”或“HALT”指令会清零 TO,而当 WDT 溢出则会置位 TO。 另外,当进入一个中断程序或执行子程序调用时,状态寄存器不会自动压入到 堆栈保存。假如状态寄存器的内容是重要的且子程序可能改变状态寄存器的话, 则需谨慎的去做正确的储存。 Rev. 1.60 34 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 STATUS 寄存器 Bit Name R/W POR Bit 7~6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 7 6 5 4 3 2 1 0 — — TO PDF OV Z AC C — — R R R/W R/W R/W R/W — — 0 0 × × × × “×”为未知 未使用,读为“0” TO:看门狗溢出标志位 0:系统上电或执行“CLR WDT”或“HALT”指令后 1:看门狗溢出发生 PDF:暂停标志位 0:系统上电或执行“CLR WDT”指令后 1:执行“HALT”指令 OV:溢出标志位 0:无溢出 1:运算结果高两位的进位状态异或结果为 1 Z:零标志位 0:算术或逻辑运算结果不为 0 1:算术或逻辑运算结果为 0 AC:辅助进位标志位 0:无辅助进位 1:在加法运算中低四位产生了向高四位进位,或减法运算中低四位不发生从 高四位借位 C:进位标志位 0:无进位 1:如果在加法运算中结果产生了进位,或在减法运算中结果不发生借位 C 也受循环移位指令的影响。 Rev.1.60 35 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 EEPROM 数据寄存器 此 系 列 所 有 单 片 机 的 一 个 特 性 是 内 建 EEPROM 数 据 存 储 器。“Electrically Erasable Programmable Read Only Memory”为电可擦可编程只读存储器,由于 其非易失的存储结构,即使在电源掉电的情况下存储器内的数据仍然保存完 好。这种存储区扩展了 ROM 空间,对设计者来说增加了许多新的应用机会。 EEPROM 可以用来存储产品编号、校准值、用户特定数据、系统配置参数或其 它产品信息等。EEPROM 的数据读取和写入过程也会变的更简单。 EEPROM 数据寄存器结构 EEPROM 数据寄存器容量为 32×8~256×8,根据所选单片机型号而定。由于映 射方式与程序存储器和数据存储器不同,因此不能像其它类型的存储器一样寻 址。使用 Bank 0 中的一个地址和数据寄存器以及 Bank 1 中的一个控制寄存器, 可以实现对 EEPROM 的单字节读写操作。 单片机型号 HT66F20 HT66F30 HT66F40 HT66F50/HT66F60 容量 32×8 64×8 128×8 256×8 地址 00H~1FH 00H~3FH 00H~7FH 00H~FFH EEPROM 寄存器 有三个寄存器控制内部 EEPROM 数据存储器总的操作。地址寄存器 EEA、数 据寄存器 EED 及控制寄存器 EEC。EEA 和 EED 位于 Bank 0 中,它们能像其它 特殊功能寄存器一样直接被访问。EEC 位于 Bank 1 中,不能被直接访问,仅能 通过 MP1 和 IAR1 进行间接读取或写入。由于 EEC 控制寄存器位于 Bank 1 中 的“40H”,在 EEC 寄存器上的任何操作被执行前,MP1 必须先设为“40H”, BP 被设为“01H”。 EEPROM 寄存器列表 ● HT66F20 Bit Name 7 6 5 4 3 2 1 0 EEA — — — D4 D3 D2 D1 D0 EED D7 D6 D5 D4 D3 D2 D1 D0 EEC — — — — WREN WR RDEN RD ● HT66F30 Bit Name 7 6 5 4 3 2 1 0 EEA — — D5 D4 D3 D2 D1 D0 EED D7 D6 D5 D4 D3 D2 D1 D0 EEC — — — — WREN WR RDEN RD Rev. 1.60 36 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F40 Bit Name 7 6 5 4 3 2 1 0 EEA — D6 D5 D4 D3 D2 D1 D0 EED D7 D6 D5 D4 D3 D2 D1 D0 EEC — — — — WREN WR RDEN RD ● HT66F50/HT66F60 Bit Name 7 6 5 4 3 2 1 0 EEA D7 D6 D5 D4 D3 D2 D1 D0 EED D7 D6 D5 D4 D3 D2 D1 D0 EEC — — — — WREN WR RDEN RD EEA 寄存器 ● HT66F20 Bit 7 6 5 4 Name — — — D4 R/W — — — R/W POR — — — × Bit 7~5 Bit 4~0 未定义,读为“0” 数据 EEPROM 地址 数据 EEPROM 地址 Bit 4~Bit 0 ● HT66F30 Bit 7 Name — R/W — POR — 6 5 4 — D5 D4 — R/W R/W — × × Bit 7~6 Bit 5~0 未定义,读为“0” 数据 EEPROM 地址 数据 EEPROM 地址 Bit 5~Bit 0 3 D3 R/W × 3 D3 R/W × 2 D2 R/W × 2 D2 R/W × 1 0 D1 D0 R/W R/W × × “×”为未知 1 0 D1 D0 R/W R/W × × “×”为未知 Rev.1.60 37 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F40 Bit 7 6 5 4 3 2 1 0 Name — D6 D5 D4 D3 D2 D1 D0 R/W — R/W R/W R/W R/W R/W R/W R/W POR — × × × × × × × “×”为未知 Bit 7 Bit 6~0 未定义,读为“0” 数据 EEPROM 地址 数据 EEPROM 地址 Bit 6~Bit 0 ● HT66F50/HT66F60 Bit 7 6 5 4 Name D7 D6 D5 D4 R/W R/W R/W R/W R/W POR × × × × Bit 7~0 数据 EEPROM 地址 数据 EEPROM 地址 Bit 7~Bit 0 3 D3 R/W × 2 D2 R/W × 1 0 D1 D0 R/W R/W × × “×”为未知 EEC 寄存器 Bit 7 6 5 4 3 2 1 0 Name — — — — WREN WR RDEN RD R/W — — — — R/W R/W R/W R/W POR — — — — 0 0 0 0 Bit 7~4 未定义,读为“0” Bit 3 WREN:数据 EEPROM 写使能位 0:除能 1:使能 此位为数据 EEPROM 写使能位,向数据 EEPROM 写操作之前需将此位置高。 将此位清零时,则禁止向数据 EEPROM 写操作。 Bit 2 WR:EEPROM 写控制位 0:写周期结束 1:写周期有效 此位为数据 EEPROM 写控制位,由应用程序将此位置高将激活写周期。写周期 结束后,硬件自动将此位清零。当 WREN 未先置高时,此位置高无效。 Bit 1 RDEN:数据 EEPROM 读使能位 0:除能 1:使能 此位为数据 EEPROM 读使能位,向数据 EEPROM 读操作之前需将此位置高。 将此位清零时,则禁止 向数据 EEPROM 读操作。 Bit 0 RD:EEPROM 读控制位 0:读周期结束 1:读周期有效 此位为数据 EEPROM 读控制位,由应用程序将此位置高将激活读周期。读周期 结束后,硬件自动将此位清零。当 RDEN 未首先置高时,此位置高无效。 注:在同一条指令中 WREN、WR、RDEN 和 RD 不能同时置为“1”。WR 和 RD 不能同时 置为“1”。 Rev. 1.60 38 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 从 EEPROM 中读取数据 从 EEPROM 中读取数据,EEC 寄存器中的读使能位 RDEN 先置为高以使能读 功能,EEPROM 中读取数据的地址要先放入 EEA 寄存器中。若 EEC 寄存器中 的 RD 位被置高,一个读周期将开始。若 RD 位已置为高而 RDEN 位还未被设 置则不能开始读操作。若读周期结束,RD 位将自动清除为“0”,数据可以从 EED 寄存器中读取。数据在其它读或写操作执行前将一直保留在 EED 寄存器 中。应用程序将轮询 RD 位以确定数据可以有效地被读取。 写数据到 EEPROM 写数据至 EEPROM,EEC 寄存器中的写使能位 WREN 先置为高以使能写功能。 EEPROM 中写入数据的地址要先放入 EEA 寄存器中,写入的数据需存入 EED 寄存器中。若 EEC 寄存器中 WR 位被置为高,一个内部写周期将开始。若 WR 位已置为高而 WREN 位还未被设置则不能开始写操作。由于控制 EEPROM 写 周期是一个内部时钟,与单片机的系统时钟异步,所以数据写入 EEPROM 的时 间将有所延迟。可通过轮询 EEC 寄存器中的 WR 位或判断 EEPROM 中断以侦 测写周期是否完成。若写周期完成,WR 位将自动清除为“0”,通知用户数据 已写入 EEPROM。因此,应用程序将轮询 WR 位以确定写周期是否结束。 写保护 防止误写入的写保护有以下几种。单片机上电后控制寄存器中的写使能位将被 清除以杜绝任何写入操作。上电后 BP 将重置为“0”,这意味着数据存储区 Bank 0 被选中。由于 EEPROM 控制寄存器位于 Bank 1 中,这增加了对写操作 的保护措施。在正常程序操作中确保控制寄存器中的写使能位被清除将能防止 不正确的写操作。 EEPROM 中断 EEPROM 写或读周期结束后将产生 EEPROM 写或读中断,需先通过设置相关 中断寄存器的 DEE 位使能 EEPROM 中断。由于 EEPROM 中断包含在多功能中 断中,相应的多功能中断使能位需被设置。当 EEPROM 写周期结束,DEF 请 求标志位及其相关多功能中断请求标志位将被置位。若 EEPROM 和多功能中断 使能且堆栈未满的情况下将跳转到相应的多功能中断向量中执行。当中断被响 应,只有多功能中断标志位将自动复位,而 EEPROM 中断标志将通过应用程序 手动复位。更多细节将在中断章节讲述。 Rev.1.60 39 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 编程注意事项 必须注意的是数据不会无意写入 EEPROM。在没有写动作时写使能位被正常清 零可以增强保护功能。BP 指针也可以正常清零以阻止进入 EEPROM 控制寄存 器存在的 Bank 1。尽管没有必要,写一个简单的读回程序以检查新写入的数据 是否正确还是应该考虑的。 程序举例 从 EEPROM 中读取数据—轮询法 MOV A, EEPROM_ADRES MOV EEA, A MOV A, 040H MOV MP1, A MOV A, 01H MOV BP, A SET IAR1.1 SET IAR1.0 BACK: SZ IAR1.0 JMP BACK CLR IAR1 CLR BP MOV A, EEDATA MOV READ_DATA, A ; user defined address ; setup memory pointer MP1 ; MP1 points to EEC register ; setup Bank Pointer ; set RDEN bit, enable read operations ; start Read Cycle - set RD bit ; check for read cycle end ; disable EEPROM read/write ; move read data to register 写数据到 EEPROM—轮询法 MOV A, EEPROM_ADRES MOV EEA, A MOV A, EEPROM_DATA MOV EED, A MOV A, 040H MOV MP1, A MOV A, 01H MOV BP, A SET IAR1.3 SET IAR1.2 BACK: SZ IAR1.2 JMP BACK CLR IAR1 CLR BP ; user defined address ; user defined data ; setup memory pointer MP1 ; MP1 points to EEC register ; setup Bank Pointer ; set WREN bit, enable write operations ; start Write Cycle - set WR bit ; check for write cycle end ; disable EEPROM read/write Rev. 1.60 40 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 振荡器 不同的振荡器选择可以让使用者在不同的应用需求中实现更大范围的功能。振 荡器的灵活性使得在速度和功耗方面可以达到最优化。振荡器选择是通过配置 选项和寄存器共同完成的。 振荡器概述 振荡器除了作为系统时钟源,还作为看门狗定时器和时基功能的时钟源。外部 振荡器需要一些外围器件,而集成的两个内部振荡器不需要任何外围器件。它 们提供的高速和低速系统振荡器具有较宽的频率范围。所有振荡器选择通过配 置选项选择。较高频率的振荡器提供更高的性能,但要求有更高的功率,反之 亦然。动态切换快慢系统时钟的能力使单片机具有灵活而优化的性能 / 功耗比, 此特性对功耗敏感的应用领域尤为重要。 类型 外部晶振 外部 RC 内部高速 RC 外部低速晶振 内部低速 RC 名称 HXT ERC HIRC LXT LIRC 频率 400kHz~20MHz 8MHz 4,8 或 12MHz 32.768kHz 32kHz 振荡器类型 引脚 OSC1/OSC2 OSC1 — XT1/XT2 — 系统时钟配置 此系列的单片机有五个系统振荡器,包括三个高速振荡器和两个低速振荡器。 高速振荡器有外部晶体 / 陶瓷振荡器,外部 RC 振荡器和内部 4MHz,8MHz 或 12MHz RC 振荡器。两个低速振荡器包括外部 32.768kHz 振荡器和内部 32kHz 振荡器。使用高速或低速振荡器作为系统时钟的选择是通过设置 SMOD 寄存器 中的 HLCLK 位及 CKS2~CKS0 位决定的,系统时钟可动态选择。高速或低速 振荡器的实际时钟源经由配置选项选择。低速或高速系统时钟频率由 SMOD 寄 存器的 HLCLK 位及 CKS2~CKS0 位决定的。请注意,两个振荡器必须做出选择, 即一个高速和一个低速振荡器。 Rev.1.60 41 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 H ig h S p e e d O s c illa tio n HXT ERC fH 6 - s ta g e P r e s c a le r fH /2 H IR C fH /4 H ig h S p e e d O s c illa tio n fH /8 C o n fig u r a tio n O p tio n fH /1 6 Low S peed O s c illa tio n fH /3 2 fH /6 4 L IR C fL fS Y S LX T L o w S p e e d O s c illa tio n C o n fig u r a tio n O p tio n H LC LK , C K S 2 ~ C K S 0 b its fS U B 系统时钟配置 F a s t W a k e -u p fro m S L E E P M o d e o r ID L E M o d e C o n tr o l ( fo r H X T o n ly ) 外部晶体 / 陶瓷振荡器 – HXT 外部高频晶体 / 陶瓷振荡器可通过配置选项选择。对于晶体振荡器,只要简单 地将晶体连接至 OSC1 和 OSC2,则会产生振荡所需的相移及反馈,而不需其 它外部器件。为保证某些低频率的晶体振荡和陶瓷谐振器的振荡频率更精准, 建议连接两个小容量电容 C1 和 C2 到 VSS,具体数值与客户选择的晶体 / 陶瓷 晶振有关。 C1 O SC1 In te r n a l O s c illa to r C ir c u it Rp Rf C2 O SC2 Tc i o r c i u n i t t e s r n a l N o te : 1 . R p is n o r m a lly n o t r e q u ir e d . C 1 a n d C 2 a r e r e q u ir e d . 2 . A lth o u g h n o t s h o w n O S C 1 /O S C 2 p in s h a v e a p a r a s itic c a p a c ita n c e o f a r o u n d 7 p F . 晶体 / 陶瓷振荡器 – HXT Rev. 1.60 42 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 晶体振荡器 C1 和 C2 值 晶体频率 C1 C2 12MHz 0pF 0pF 8 MHz 0pF 0pF 4 MHz 0pF 0pF 1 MHz 100pF 100pF 注:C1 和 C2 数值仅作参考用 晶体振荡器电容推荐值 外部 RC 振荡器 – ERC ERC 振荡器只需要在 OSC1 和 VDD 之间连接一个阻值约在 56kΩ 到 2.4MΩ 之 间的电阻,OSC1 与 VSS 之间连接一个电容。系统频率由外部所接电阻的大 小决定,外部电容并不会影响振荡器的频率值,在这里只起到稳定的作用。 芯片在制造时进行调整且内部含有频率补偿电路,使得振荡频率因 VDD、温度 以及芯片制成工艺不同的影响减至最低程度。这里,提供一个电阻 / 频率的参 考:使用外部 120K 电阻连接到 5V 电源电压,在 25˚C 下,振荡器的频率为 8MHz,容差 2%。外部 RC 振荡器仅使用 OSC1 引脚,OSC1 与 PB1 引脚共用, 此时 PB2 引脚可以作为普通的 I/O 口使用。 V DD R OSC O SC1 20pF 外部 RC 振荡器 – ERC 内部 RC 振荡器 – HIRC 内部 RC 振荡器是一个集成的系统振荡器,不需其它外部器件。内部 RC 振荡 器具有三种固定的频率:4MHz,8MHz,12MHz。芯片在制造时进行调整且内 部含有频率补偿电路,使得振荡频率因 VDD、温度以及芯片制成工艺不同的影 响减至最低程度。在电源电压为 3.3V 或 5V 及温度为 25˚C 的条件下,4MHz, 8MHz,12MHz 这三个固定频率的容差为 2%。如果选择了该内部时钟,无需额 外的引脚;PB1 和 PB2 可以作为通用 I/O 口使用。 Rev.1.60 43 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 外部 32.768kHz 晶体振荡器 – LXT 外部 32.768kHz 晶体振荡器是一个低频振荡器,经由配置选项选择。时钟频率 固定为 32.768kHz,此时 XT1 和 XT2 间引脚必须连接 32.768kHz 的晶体振荡器。 需要外部电阻和电容连接到 32768Hz 晶振以帮助起振。对于那些要求精确频率 的场合中,可能需要这些元件来对由制程产生的误差提供频率补偿。在系统上 电期间,LXT 振荡器启动需要一定的延时。 当系统进入空闲 / 休眠模式,系统时钟关闭以降低功耗。然而在某些应用,比 如空闲 / 休眠模式下要保持内部定时器功能,必须提供额外的时钟,且与系统 时钟无关。 然而,对于一些晶体,为了保证系统频率的启动与精度要求,需要外接两个小 容量电容 C1 和 C2,具体数值与客户选择的晶体规格有关。外部并联的反馈电 阻 RP,是必需的。 一些配置选项决定是否 XT1/XT2 脚是用于 LXT 还是作为普通 I/O 口使用。 ● 若 LXT 振荡器未被用于任何时钟源,XT1/XT2 脚能被用作一般 I/O 口使用。 ● 若 LXT 振荡器被用于一些时钟源,32.768kHz 晶体应被连接至 XT1/XT2 脚。 C1 3 2 .7 6 8 kH z C2 XT1 Rp XT2 In te r n a l O s c illa to r C ir c u it In te rn a l R C O s c illa to r T o in te r n a l c ir c u its N o te : 1 . R p , C 1 a n d C 2 a r e r e q u ir e d . 2 . A lth o u g h n o t s h o w n p in s h a v e a p a r a s itic c a p a c ita n c e o f a r o u n d 7 p F . 外部 LXT 振荡器 LXT 振荡器 C1 和 C2 值 晶体频率 C1 32.768kHz 10pF 注:1、C1 和 C2 数值仅作参考用 2、RP 的建议值为 5M~10MΩ 32.768kHz 振荡器电容推荐值 C2 10pF Rev. 1.60 44 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 LXT 振荡器低功耗功能 LXT 振荡器可以工作在快速启动模式或低功耗模式,可通过设置 TBC 寄存器 中的 LXTLP 位进行模式选择。 LXTLP 位 0 1 LXT 模式 快速启动 低功耗 系统上电时会清零 LXTLP 位来快速启动 LXT 振荡器。在快速启动模式,LXT 振荡器将起振并快速稳定下来。LXT 振荡器完全起振后,可以通过设置 LXTLP 位为高进入低功耗模式。振荡器可以继续运行,其间耗电将少于快速启动模式。 在功耗敏感的应用领域如电池应用方面,功耗必须限制为一个最小值。为了降 低功耗,建议系统上电 2 秒后,在应用程序中将 LXTLP 位设为“1”。应注意 的是,无论 LXTLP 位是什么值,LXT 振荡器会一直运作,不同的只是在低功 耗模式时启动时间更长。 内部 32kHz 振荡器 – LIRC 内部 32kHz 系统振荡器也是一个低频振荡器,经由配置选项选择。这种单片机 有一个完全集成 RC 振荡器,它在 5V 电压下运行的典型频率值为 32kHz 且无 需外部元件。芯片在制造时进行调整且内部含有频率补偿电路,使得振荡器因 电源电压、温度及芯片制成工艺不同的影响减至最低。因此,内部 32kHz 振荡 器频率在 25˚C 温度 5V 电压下的精度保持在 10% 以内。 辅助振荡器 低速振荡器除了提供一个系统时钟源外,也用来为看门狗定时器和时基中断提 供时钟来源。 Rev.1.60 45 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 工作模式和系统时钟 现今的应用要求单片机具有较高的性能及尽可能低的功耗,这种矛盾的要求在 便携式电池供电的应用领域尤为明显。高性能所需要的高速时钟将增加功耗, 反之亦然。此单片机提供高、低速两种时钟源,它们之间可以动态切换,用户 可通过优化单片机操作来获得最佳性能 / 功耗比。 系统时钟 单片机为 CPU 和外围功能操作提供了多种不同的时钟源。用户使用配置选项和 寄存器编程可获取多种时钟,进而使系统时钟获取最大的应用性能。 主系统时钟可来自高频时钟源 fH 或低频时钟源 fL,通过 SMOD 寄存器中的 HLCLK 位及 CKS2~CKS0 位进行选择。高频时钟来自 HXT、ERC 或 HIRC 振 荡器,可通过配置选项选择,低频系统时钟源来自内部时钟 fL,若 fL 被选择, 可通过配置选项设定为 LXT 或 LIRC 振荡器。其它系统时钟还有高速系统振荡 器的分频 fH/2~fH/64。 另外两个内部时钟用于外围电路,次时钟源 fSUB 和时基时钟 fTBC。这两个时钟 源来自 LXT 或 LIRC 振荡器,通过配置选项选择。快速唤醒发生后,fSUB 为单 片机提供一个次时钟。fSUB 和 fSYS/4 用于看门狗定时器的的时钟源。fTBC 用于时 基中断功能和 TMs 的时钟源。 Rev. 1.60 46 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 H ig h S p e e d O s c illa tio n HXT ERC fH 6 - s ta g e P r e s c a le r fH /2 H IR C fH /4 H ig h S p e e d O s c illa tio n fH /8 C o n fig u r a tio n O p tio n fH /1 6 Low S peed O s c illa tio n fH /3 2 fH /6 4 L IR C fL fS Y S LX T L o w S p e e d O s c illa tio n C o n fig u r a tio n O p tio n H LC LK , C K S 2 ~ C K S 0 b its fS U B F a s t W a k e -u p fro m S L E E P M o d e o r ID L E M o d e C o n tr o l ( fo r H X T o n ly ) fT B C fS Y S /4 fT B T im e B a s e TBC K fS U B fS Y S /4 fS W DT C o n fig u r a tio n O p tio n 系统时钟选项 注:当系统时钟源 fSYS 由 fH 到 fL 转换时,高速振荡器将停止以节省耗电。因此,没有为外围电路提供 fH/2~fH/64 的频率。 Rev.1.60 47 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 系统工作模式 单片机有 6 种不同的工作模式,每种有它自身的特性,根据应用中不同的性能 和功耗要求可选择不同的工作模式。单片机正常工作有两种模式:正常模式和 低速模式。剩余的 4 种工作模式:休眠模式 0、休眠模式 1、空闲模式 0 和空闲 模式 1 用于单片机 CPU 关闭时以节省耗电。 说明 工作模式 CPU fSYS fSUB fS fTBC 正常模式 On fH~fH/64 On On On 低速模式 On fL On On On 空闲模式 0 Off Off On On/Off On 空闲模式 1 Off On On On On 休眠模式 0 Off Off Off Off Off 休眠模式 1 Off Off On On Off ● 正常模式 顾名思义,这是主要的工作模式之一,单片机的所有功能均可在此模式中实 现且系统时钟由一个高速振荡器提供。该模式下单片机正常工作的时钟源来 自 HXT、ERC 或 HIRC 振荡器。高速振荡器频率可被分为 1~64 的不等比率, 实际的比率由 SMOD 寄存器中的 CKS2~CKS0 位及 HLCLK 位选择的。单片 机使用高速振荡器分频作为系统时钟可减少工作电流。 ● 低速模式 此模式的系统时钟虽为较低速时钟源,但单片机仍能正常工作。该低速时钟 源可来自 LXT 或 LIRC 振荡器。单片机在此模式中运行所耗工作电流较低。 在低速模式下,fH 关闭。 ● 休眠模式 0 在 HALT 指令执行后且 SMOD 寄存器中 IDLEN 位为低时,系统进入休眠模式。 在休眠模式 0 中,CPU、fSUB 及 fS 停止运行,看门狗定时器功能除能。在该 模式中 LVDEN 位需置为“0”,否则将不能进入休眠模式 0 中。 ● 休眠模式 1 在 HALT 指令执行后且 SMOD 寄存器中 IDLEN 位为低时,系统进入休眠模式。 在休眠模式 1 中,CPU 停止运行。然而当其时钟源经配置选项选择为 fSUB 时, 若 LVDEN 位为“1”或看门狗定时器功能使能,fSUB 及 fS 继续运行。 ● 空闲模式 0 执 行 HALT 指 令 后 且 SMOD 寄 存 器 中 IDLEN 位 为 高,WDTC 寄 存 器 中 FSYSON 位为低时,系统进入空闲模式 0。在空闲模式 0 中,CPU 停止,但 一些外围功能如看门狗定时器、TMs 和 SIM 将继续工作。在空闲模式 0 中, 系统振荡器停止,看门狗定时器时钟 fS 开启或关闭由 fS 所选时钟源决定。若 时钟源为 fSYS/4,fS 关闭;若时钟源为 fSUB,fS 开启。 ● 空闲模式 1 执 行 HALT 指 令 后 且 SMOD 寄 存 器 中 IDLEN 位 为 高,WDTC 寄 存 器 中 FSYSON 位为高时,系统进入空闲模式 1。在空闲模式 1 中,CPU 停止,但 会提供一个时钟源给一些外围功能如看门狗定时器、TMs 和 SIM。在空闲模 式 1 中,系统振荡器继续运行,该系统振荡器可以为高速或低速系统振荡器。 在该模式中看门狗定时器时钟 fS 开启。若时钟源为 fSYS/4 或 fSUB,fS 开启。 Rev. 1.60 48 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 控制寄存器 寄存器 SMOD 用于控制单片机内部时钟。 SMOD 寄存器 Bit 7 6 5 4 3 Name CKS2 CKS1 CKS0 FSTEN LTO R/W R/W R/W R/W R/W R POR 0 0 0 0 0 2 HTO R 0 1 0 IDLEN HLCLK R/W R/W 1 1 Bit 7~5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CKS2~CKS0:当 HLCLK 为“0”时系统时钟选择位 000:fL (fLXT 或 fLIRC) 001:fL (fLXT 或 fLIRC) 010:fH/64 011:fH/32 100:fH/16 101:fH/8 110:fH/4 111:fH/2 这三位用于选择系统时钟源。除了 LXT 或 LIRC 振荡器提供的系统时钟源外, 也可使用高频振荡器的分频作为系统时钟。 FSTEN:快速唤醒控制位(仅用于 HXT) 0:除能 1:使能 此位为快速唤醒控制位,用于决定单片机被唤醒后 fSUB 是否开始工作。 LTO:低速振荡器就绪标志位 0:未就绪 1:就绪 此位为低速系统振荡器就绪标志位,用于表明低速系统振荡器在系统上电复位 或经唤醒后何时稳定下来。当系统处于 SLEEP0 模式时,该标志为低。若系统 时钟来自 LXT 振荡器,系统唤醒后该位转换为高需 1024 个时钟周期;若系统 时钟来自 LIRC 振荡器,该位转换为高需 1~2 个时钟周期。 HTO:高速振荡器就绪标志位 0:未就绪 1:就绪 此位为高速系统振荡器就绪标志位,用于表明高速系统振荡器何时稳定下来。 此标志在系统上电后经硬件清零,高速系统振荡器稳定后变为高电平。因此, 此位在单片机上电后由应用程序读取的总为“1”。该标志由休眠模式或空闲模 式 0 中唤醒后会处于低电平状态,若使用 HXT 振荡器,该位将在 1024 个时钟 周期后变为高电平状态,若使用 ERC 或 HIRC 振荡器则只需 15~16 个时钟周期 即可。 IDLEN:空闲模式控制位 0:除能 1:使能 此位为空闲模式控制位,用于决定 HALT 指令执行后发生的动作。若此位为 高,当指令 HALT 执行后,单片机进入空闲模式。若 FSYSON 位为高,在空闲 模式 1 中 CPU 停止运行,系统时钟将继续工作以保持外围功能继续工作;若 FSYSON 为低,在空闲模式 0 中 CPU 和系统时钟都将停止运行。若此位为低, 单片机将在 HALT 指令执行后进入休眠模式。 HLCLK:系统时钟选择位 0:fH/2~fH/64 或 fL 1:fH 此位用于选择 fH 或 fH/2~fH/64 还是 fL 作为系统时钟。该位为高时选择 fH 作为系 统时钟,为低时则选择 fH/2~fH/64 或 fL 作为系统时钟。当系统时钟由 fH 时钟向 fL 时钟转换时,fH 将自动关闭以降低功耗。 Rev.1.60 49 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 快速唤醒 单片机进入休眠模式或空闲模式 0 后,系统时钟将停止以降低功耗。然而单片 机再次唤醒,原来的系统时钟重新起振、稳定且恢复正常工作需要一定的时 间。为确保单片机能够尽快的开始工作,系统提供了一个快速唤醒功能。需提 供一个临时时钟源 fSUB 先驱动系统直至原系统振荡器稳定,这个临时时钟可来 自 LXT 或 LIRC 振荡器。快速启动功能的时钟源为 fSUB,该功能仅在休眠模式 1 和空闲模式 0 中有效。当单片机由休眠模式 0 唤醒时,因 fSUB 已停止,故快 速唤醒功能不受影响。快速唤醒功能使能 / 除能由 SMOD 寄存器中 FSTEN 位 控制的。 若 HXT 振荡器作为正常模式的系统时钟,且快速唤醒功能使能,系统唤醒将需 1~2 个 tSUB 时钟周期。系统开始在 fSUB 时钟源下运行直至 1024 个 HXT 时钟周 期后 HTO 标志转换为高,系统将切换到 HXT 振荡器运行。 若系统振荡器选用 ERC 或 HIRC,将系统从休眠模式或空闲模式 0 中唤醒需 15~16 个时钟周期;若选用 LIRC,则需 1~2 个周期。快速唤醒位 FSTEN 在这 些情况下不受影响。 系统振 荡器 HXT ERC HIRC LIRC LXT FSTEN 位 0 1 × × × × 唤醒时间 唤醒时间 唤醒时间 唤醒时间 (休眠模式 0) (休眠模式 1) (空闲模式 0) (空闲模式 1) 1024 个 HXT 周期 1024 个 HXT 周期 1~2 个 HXT 周期 1024 个 HXT 周期 1~2 个 fSUB 周期 ( 系统在 fSUB 下运行 1024 个 HXT 1~2 个 HXT 周期 周期后切换到 HXT 振荡器运行 ) 15~16 个 ERC 周期 15~16 个 ERC 周期 1~2 个 ERC 周期 15~16 个 HIRC 周期 15~16 个 HIRC 周期 1~2 个 HIRC 周期 1~2 个 LIRC 周期 1~2 个 LIRC 周期 1~2 个 LIRC 周期 1024 个 LXT 周期 1024 个 LXT 周期 1~2 个 LXT 周期 唤醒时间 注:若看门狗定时器除能,意味着 LXT 和 LIRC 都关闭,当单片机由休眠模式 0 中唤醒时快速唤醒功能 不可用。 Rev. 1.60 50 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 NORM AL fS Y S = fH ~ fH /6 4 fH o n C P U ru n fS Y S o n fT B C o n fS U B o n SLEEP0 H A L T in s tr u c tio n is e x e c u te d fS Y S o ff C P U s to p ID L E N = 0 fT B C o ff fS U B o ff W D T & L V D o ff SLEEP1 H A L T in s tr u c tio n is e x e c u te d fS Y S o ff C P U s to p ID L E N = 0 fT B C o ff fS U B o n W D T orLV D on ID L E 1 H A L T in s tr u c tio n is e x e c u te d C P U s to p ID L E N = 1 FSYSO N =1 fS Y S o n fT B C o n fS U B o n SLO W fS Y S = fL fL o n C P U ru n fS Y S o n fT B C o n fS U B o n fH o ff ID L E 0 H A L T in s tr u c tio n is e x e c u te d C P U s to p ID L E N = 1 FSYSO N =0 fS Y S o ff fT B C o n fS U B o n 工作模式切换和唤醒 单 片 机 可 在 各 个 工 作 模 式 间 自 由 切 换, 使 得 用 户 可 根 据 所 需 选 择 最 佳 的 性能 / 功耗比。用此方式,对单片机工作的性能要求不高的情况下,可使用较 低频时钟以减少工作电流,在便携式应用上延长电池的使用寿命。 简单来说,正常模式和低速模式间的切换仅需设置 SMOD 中的 HLCLK 位及 CKS2~CKS0 位即可实现,而正常模式 / 低速模式与休眠模式 / 空闲模式间的切 换经由 HALT 指令实现。当 HALT 指令执行后,单片机是否进入空闲模式或休 眠模式由 SMOD 寄存器中的 IDLEN 位和 WDTC 寄存器中的 FSYSON 位决定的。 当 HLCLK 位变为低电平时,时钟源将由高速时钟源 fH 转换成时钟源 fH/2~fH/64 或 fL。若时钟源来自 fL,高速时钟源将停止运行以节省耗电。此时须注意, fH/16 和 fH/64 内部时钟源也将停止运行,由此会影响到如 TMs 和 SIM 等内部功 能的工作。所附流程图显示了单片机在不同工作模式间切换时的变化。 Rev.1.60 51 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 正常模式切换到低速模式 系 统 运 行 在 正 常 模 式 时 使 用 高 速 系 统 振 荡 器, 因 此 较 为 耗 电。 可 通 过 设 置 SMOD 寄存器中的 HLCLK 位为“0”及 CKS2~CKS0 位为“000”或“001”使 系统时钟切换至运行在低速模式下。此时将使用低速系统振荡器以节省耗电。 用户可在对性能要求不高的操作中使用此方法以减少耗电。 低速模式的时钟源来自 LXT 或 LIRC 振荡器,因此要求这些振荡器在所有模式 切换动作发生前稳定下来。该动作由 SMOD 寄存器中 LTO 位控制。 低速模式切换到正常模式 在低速模式系统使用 LXT 或 LIRC 低速振荡器。切换到使用高速系统时钟振 荡 器 的 正 常 模 式 需 设 置 HLCLK 位 为“1”, 也 可 设 置 HLCLK 位 为“0” 但 CKS2~CKS0 需设为“010”、“011”、“100”、“101”、“110”或“111”。 高频时钟需要一定的稳定时间,通过检测 HTO 位的状态可进行判断。高速振荡 器的稳定时间由所使用高速系统振荡器的类型决定。 进入休眠模式 0 进入休眠模式 0 的方法仅有一种——应用程序中执行“HALT”指令前需设置寄 存器 SMOD 中 IDLEN 位为“0”且 WDT 和 LVD 功能除能。在上述条件下执 行该指令后,将发生的情况如下: ● 系统时钟、WDT 时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。 ● 数据存储器中的内容和寄存器将保持当前值。 ● 无论 WDT 时钟源来自 fSUB 时钟或系统时钟,WDT 都将被清除并停止运行。 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 进入休眠模式 1 进入休眠模式 1 的方法仅有一种——应用程序中执行“HALT”指令前需设置寄 存器 SMOD 中 IDLEN 位为“0”且 WDT 或 LVD 功能使能。在上述条件下执 行该指令后,将发生的情况如下: ● 系统时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。WDT 或 LVD 继续运行,其时钟源来自 fSUB。 ● 数据存储器中的内容和寄存器将保持当前值。 ● 若 WDT 使能且其时钟源来自 fSUB,则 WDT 将被清零并重新开始计数。 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 Rev. 1.60 52 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 进入空闲模式 0 进入空闲模式 0 的方法仅有一种——应用程序中执行“HALT”指令前需设置 寄存器 SMOD 中 IDLEN 位为“1”且 WDTC 寄存器中的 FSYSON 位为“0”。 在上述条件下执行该指令后,将发生的情况如下: ● 系统时钟停止运行,应用程序停止在“HALT”指令处,时基时钟和 fSUB 时钟 将继续运行。 ● 数据存储器中的内容和寄存器将保持当前值。 ● 若 WDT 使能且其时钟源来自 fSUB,则 WDT 将被清零并重新开始计数;若其 时钟源来自系统时钟,则 WDT 将停止运行。 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 进入空闲模式 1 进入空闲模式 1 的方法仅有一种——应用程序中执行“HALT”指令前需设置 寄存器 SMOD 中 IDLEN 位为“1”且 WDTC 寄存器中的 FSYSON 位为“1”。 在上述条件下执行该指令后,将发生的情况如下: ● 系统时钟、时基时钟和 fSUB 开启,应用程序停止在“HALT”指令处。 ● 数据存储器中的内容和寄存器将保持当前值。 ● 若 WDT 使能,无论 WDT 时钟源来自 fSUB 或是系统时钟,则 WDT 将被清零 并重新开始计数。 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 Rev.1.60 53 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Rev. 1.60 N O R M A L M ode C K S 2 ~ C K S 0 = 00xB & H LC LK = 0 S LO W M ode W D T a n d L V D a r e a ll o ff ID L E N = 0 H A L T in s tr u c tio n is e x e c u te d S LE E P 0 M ode W D T o r L V D is o n ID L E N = 0 H A L T in s tr u c tio n is e x e c u te d S LE E P 1 M ode ID L E N = 1 , F S Y S O N = 0 H A L T in s tr u c tio n is e x e c u te d ID E L 0 M o d e ID L E N = 1 , F S Y S O N = 1 H A L T in s tr u c tio n is e x e c u te d ID L E 1 M o d e S LO W M ode C K S 2~C K S 0¹000B ,001B as H LC LK =0 orH LC LK =1 N O R M A L M ode W D T a n d L V D a r e a ll o ff ID L E N = 0 H A L T in s tr u c tio n is e x e c u te d S LE E P 0 M ode W D T o r L V D is o n ID L E N = 0 H A L T in s tr u c tio n is e x e c u te d S LE E P 1 M ode ID L E N = 1 , F S Y S O N = 0 H A L T in s tr u c tio n is e x e c u te d ID L E 0 M o d e ID L E N = 1 , F S Y S O N = 1 H A L T in s tr u c tio n is e x e c u te d ID L E 1 M o d e 54 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 静态电流的注意事项 由于单片机进入休眠或空闲模式的主要原因是将 MCU 的电流降低到尽可能低, 可能到只有几个毫安的级别(空闲模式 1 除外),所以如果要将电路的电流降 到最低,电路设计者还应有其它的考虑。应该特别注意的是单片机的输入 / 输 出引脚。所有高阻抗输入脚都必须连接到固定的高或低电平,因为引脚浮空会 造成内部振荡并导致耗电增加。这也应用于有不同封装的单片机,因为它们可 能含有未引出的引脚,这些引脚也必须设为输出或带有上拉电阻的输入。 另外还需注意单片机设为输出的 I/O 引脚上的负载。应将它们设置在有最小拉 电流的状态或将它们和其它的 CMOS 输入一样接到没有拉电流的外部电路上。 还应注意的是,如果使能配置选项中的 LXT 或 LIRC 振荡器,会导致耗电增加。 在空闲模式 1 中,系统时钟开启。若系统时钟来自高速系统振荡器,额外的静 态电流也可能会有几百微安。 唤醒 系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒: ● 外部复位 ● PA 口下降沿 ● 系统中断 ● WDT 溢出 若由外部 RES 引脚唤醒,系统会经过完全复位的过程;若由 WDT 溢出唤醒, 则会发生看门狗定时器复位。这两种唤醒方式都会使系统复位,可以通过状态 寄存器中 TO 和 PDF 位来判断它的唤醒源。系统上电或执行清除看门狗的指令, 会清零 PDF;执行 HALT 指令,PDF 将被置位。看门狗计数器溢出将会置位 TO 标志并唤醒系统,这种复位会重置程序计数器和堆栈指针,其它标志保持原 有状态。 PA 口中的每个引脚都可以通过 PAWU 寄存器使能下降沿唤醒功能。PA 端口唤 醒后,程序将在“HALT”指令后继续执行。如果系统是通过中断唤醒,则有两 种可能发生。第一种情况是:相关中断除能或是中断使能且堆栈已满,则程序 会在“HALT”指令之后继续执行。这种情况下,唤醒系统的中断会等到相关中 断使能或有堆栈层可以使用之后才执行。第二种情况是:相关中断使能且堆栈 未满,则中断可以马上执行。 如果在进入休眠或空闲模式之前中断标志位已经 被设置为“1”,则相关中断的唤醒功能将无效。 编程注意事项 HXT 和 LXT 振荡器使用相同的 SST 计数器。例如,若系统从休眠模式 0 中唤醒, HXT 和 LXT 振荡器都需从关闭状态快速启动。HXT 振荡器结束其 SST 周期后, LXT 振荡器才开始使用 SST 计数器。 ● 若单片机从休眠模式 0 唤醒后进入正常模式,高速系统振荡器需要一个 SST 周期。在 HTO 为“1”后,单片机开始执行首条指令。此时,若 fSUB 时钟来 源于 LXT 振荡器,LXT 振荡器可能不是稳定的,上电状态可能会发生类似情 况,首条指令执行时 LXT 振荡器还未就绪。 ● 若单片机从休眠模式 1 唤醒后进入正常模式,系统时钟源来自 HXT 振荡器且 FSTEN 为“1”,唤醒后,系统时钟可切换至 LXT 或 LIRC 振荡器。 ● 一些外围功能,如 WDT,TMs 和 SIM,采用系统时钟 fSYS 时,在系统时钟源 由 fH 切换至 fL 时,以上这些功能的时钟源也要随之改变。 ● 当 WDT 时钟源选择为 fSUB 时,fSUB 和 fS 的开启或关闭由 WDT 是否使能决定的。 Rev.1.60 55 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 看门狗定时器 看门狗定时器的功能在于防止如电磁的干扰等外部不可控制事件,所造成的程 序不正常动作或跳转到未知的地址。 看门狗定时器时钟源 WDT 定时器时钟源来自于内部时钟 fS,而 fS 的时钟源又是通过配置选项从 fSUB 和 fSYS/4 中选择。fSUB 时钟由 LXT 或 LIRC 振荡器提供,可通过配置选项 设置。看门狗定时器的时钟源可分频为 28~215 以提供更大的溢出周期,分频比 由 WDTC 寄存器中的 WS2~WS0 位来决定。电压为 5V 时内部振荡器 LIRC 的 周期大约为 32kHz。需要注意的是,这个特殊的内部时钟周期随 VDD、温度和 制成的不同而变化。LXT 振荡器由一个外部 32.768kHz 晶振提供。另一个看门 狗定时器时钟源选项为 fSYS/4。看门狗定时器时钟源可来自内部 LIRC 振荡器、 LXT 振荡器或 fSYS/4。 看门狗定时器控制寄存器 WDTC 寄存器用于控制 WDT 功能的使能 / 除能及选择溢出周期。寄存器结合 配置选项控制看门狗定时器的工作。 WDTC 寄存器 Bit Name R/W POR 7 FSYSON R/W 0 6 WS2 R/W 1 5 WS1 R/W 1 4 WS0 R/W 1 3 WDTEN3 R/W 1 2 WDTEN2 R/W 0 1 WDTEN1 R/W 1 0 WDTEN0 R/W 0 Bit 7 Bit 6~4 Bit 3~0 FSYSON:fSYS 在空闲模式下的控制位 0:除能 1:使能 WS2,WS1,WS0:WDT 溢出周期选择位 000:256/fS 001:512/fS 010:1024/fS 011:2048/fS 100:4096/fS 101:8192/fS 110:16384/fS 111:32768/fS 这三位控制 WDT 时钟源的分频比,从而实现对 WDT 溢出周期的控制。 WDTEN3,WDTEN2,WDTEN1,WDTEN0:WDT 软件控制位 1010:除能 其它:使能 Rev. 1.60 56 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 看门狗定时器操作 当 WDT 溢出时,它产生一个芯片复位的动作。这也就意味着正常工作期间, 用户需在应用程序中看门狗溢出前有策略地清看门狗定时器以防止其产生复 位,可使用清除看门狗指令实现。无论什么原因,程序失常跳转到一个未知的 地址或进入一个死循环,这些清除指令都不能被正确执行,此种情况下,看门 狗将溢出以使单片机复位。通过配置选项选择看门狗定时器的一些选项,如使 能 / 除能、时钟源选择及清除指令类型。除了配置选项使能 / 除能看门狗定时器 外,WDTC 寄存器中的 WDTEN3~WDTEN0 位也可用来除能看门狗定时器,此 时需设置 WDTEN3~WDTEN0 为“1010”。若使用看门狗定时器功能,推荐设 置这四位为“0101”,提供最大可能的防干扰能力。注意,若看门狗定时器被 除能,相关操作的任何指令都不会工作。 WDT 配置选项 WDTEN3~WDTEN0 位 WDT 使能 ×××× WDT 除能 除 1010 外其它值 WDT 除能 1010 看门狗定时器使能 / 除能控制 WDT 功能 使能 使能 除能 程序正常运行时,WDT 溢出将导致芯片复位,并置位状态标志位 TO。若系统 处于休眠或空闲模式,当 WDT 发生溢出时,状态寄存器中的 TO,程序计数器 PC 和堆栈指针 SP 将被置位。有三种方法可以用来清除 WDT 的内容。第一种 是外部硬件复位 (RES 引脚低电平 ),第二种是通过软件清除指令,而第三种是 通过“HALT”指令。 软 件 指 令 有 两 种 用 于 清 除 看 门 狗 寄 存 器, 需 通 过 配 置 选 项 选 择。 第 一 种 选 择 是 使 用 一 条“CLR WDT” 指 令, 而 第 二 种 是 使 用“CLR WDT1” 和 “CLR WDT2” 两 个 指 令。 对 于 第 一 种 选 择, 只 要 执 行“CLR WDT” 便 清 除 WDT。而第二种选择,需要交替执行“CLR WDT1”和“CLR WDT2”两 者才能成功的清除 WDT。关于第二种选择,如果“CLR WDT1”正被使用 来清除 WDT,接着再执行这条指令将是无效的,只有执行“CLR WDT2” 指令才能清除 WDT。同样的“CLR WDT2”指令已经执行后,只有接着执行 “CLR WDT1”指令才可以清除看门狗定时器。 当设置分频比为 215 时,溢出周期最大。例如,时钟源为 32.768kHz LXT 振荡 器,分频比为 215 时最大溢出周期约 1s,分频比为 28 时最小溢出周期约 7.8ms。 如果 fSYS/4 作为看门狗定时器时钟源,需要注意,当系统工作在休眠或空闲模 式时,系统时钟停止工作,看门狗失去保护作用。如果系统工作在干扰大的环 境中,强烈建议使用 fSUB 作为时钟源。 C L R W D T 1 F la g C L R W D T 2 F la g C le a r W D T T y p e C o n fig u r a tio n O p tio n 1 o r 2 In s tr u c tio n s fS Y S /4 M fS LX T M U U fS U B X L IR C X C o n fig u r a tio n O p tio n C o n fig u r a tio n O p tio n fS /2 8 8 - s ta g e D iv id e r 看门狗定时器 C LR W D T P r e s c a le r 8 -to -1 M U X W S 2~W S 0 (fS /2 8 ~ fS /2 15) W D T T im e - o u t (2 8 /fS ~ 2 15/fS ) Rev.1.60 57 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 复位和初始化 复位功能是任何单片机中基本的部分,使得单片机可以设定一些与外部参数无 关的先置条件。最重要的复位条件是在单片机首次上电以后,经过短暂的延迟, 内部硬件电路使得单片机处于预期的稳定状态并开始执行第一条程序指令。上 电复位以后,在程序执行之前,部分重要的内部寄存器将会被设定为预先设定 的状态。程序计数器就是其中之一,它会被清除为零,使得单片机从最低的程 序存储器地址开始执行程序。 除上电复位以外,即使单片机处于正常工作状态,有些情况的发生也会迫使单 片机复位。譬如当单片机上电后已经开始执行程序,RES 脚被强制拉为低电平。 这种复位为正常操作复位,单片机中只有一些寄存器受影响,而大部分寄存器 不会改变,在复位引脚恢复至高电平后,单片机可以正常运行。 另一种复位为看门狗溢出单片机复位。不同方式的复位操作会对寄存器产生不 同的影响。另一种复位为低电压复位即 LVR 复位,在电源供应电压低于 LVR 设定值时,系统会产生 LVR 复位,这种复位与与 RES 脚拉低复位方式相似。 复位功能 包括内部和外部事件触发复位,单片机共有五种复位方式: ● 上电复位 这是最基本且不可避免的复位,发生在单片机上电后。除了保证程序存储器 从开始地址执行,上电复位也使得其它寄存器被设定在预设条件。所有的输 入 / 输出端口控制寄存器在上电复位时会保持高电平,以确保上电后所有引 脚被设定为输入状态。 VDD 0 .9 V D D RES t RR SS TT DD ++ t SS SS TT In te rn a l R e s e t 注:tRSTD 为上电延迟时间,典型值为 100ms 上电复位时序图 ● RES 引脚复位 由于复位引脚与 PB.0 共用,复位功能必须使用配置选项选择。虽然单片机有 一个内部 RC 复位功能,如果电源上升缓慢或上电时电源不稳定,内部 RC 振 荡可能导致芯片复位不良,所以推荐使用和 RES 引脚连接的外部 RC 电路, 由 RC 电路所造成的时间延迟使得 RES 引脚在电源供应稳定前的一段延长周 期内保持在低电平。在这段时间内,单片机的正常操作是被禁止的。RES 引 脚达到一定电压值后,再经过延迟时间 tRSTD 单片机可以开始进行正常操作。 下图中 SST 是系统延迟周期 System Start-up Timer 的缩写。 在许多应用场合,可以在 VDD 和 RES 之间接入一个电阻,在 VSS 与 RES 之 间接入一个电容作为外部复位电路。与 RES 脚上所有相连接的线段必须尽量 短以减少噪声干扰。 当系统在较强干扰的场合工作时,建议使用增强型的复位电路,如下图所示。 Rev. 1.60 58 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 V DD 0 .0 1 m F * * VDD 1N 4148* 10kW ~ 100kW 0 .1 ~ 1 m F 300W * P B 0 /R E S VSS 注:“*” 表示建议加上此元件以加强静电保护。 “**”表示建议在电源有较强干扰场合加上此元件。 外部 RES 电路 欲 知 有 关 外 部 复 位 电 路 的 更 多 信 息 可 参 考 HOLTEK 网 站 上 的 应 用 范 例 HA0075S。 RES 引脚通过外部硬件强迫拉至低电平时,此种复位形式即会发生。这种复 位方式和其它的复位方式一样,程序计数器会被清除为零且程序从头开始执 行。 RES 0 .4 V D D 0 .9 V D D tR S T D + tS S T In te rn a l R e s e t 注:tRSTD 为上电延迟时间,典型值为 100ms。 RES 复位时序图 ● 低电压复位 – LVR 单片机具有低电压复位电路,用来监测它的电源电压,可通过配置选项进行 选择。例如在更换电池的情况下,单片机供应的电压可能会落在 0.9V~VLVR 的范围内,这时 LVR 将会自动复位单片机。LVR 包含以下的规格:有效的 LVR 信号,即在 0.9V~VLVR 的低电压状态的时间,必须超过交流电气特性中 tLVR 参数的值。如果低电压存在不超过 tLVR 参数的值,则 LVR 将会忽略它且 不会执行复位功能。VLVR 参数值可通过配置选项进行设定。 LV R tR S T D + tS S T In te rn a l R e s e t 注:tRSTD 为上电延迟时间,典型值为 100ms。 低电压复位时序图 ● 正常运行时看门狗溢出复位 除了看门狗溢出标志位 TO 将被设为“1”之外,正常运行时看门狗溢出复位 和 RES 复位相同。 W D T T im e - o u t tR S T D + tS S T In te rn a l R e s e t 注:tRSTD 为上电延迟时间,典型值为 100ms。 正常运行时看门狗溢出时序图 Rev.1.60 59 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● 休眠或空闲时看门狗溢出复位 休眠或空闲时看门狗溢出复位和其它种类的复位有些不同。除了程序计数器 与堆栈指针将被清“0”及 TO 位被设为“1”外,绝大部分的条件保持不变。 图中 tSST 的详细说明请参考交流电气特性。 W D T T im e - o u t tS S T In te rn a l R e s e t 注:如果系统时钟源为 ERC 或 HIRC 时,tSST 为 15~16 个时钟周期。 如果系统时钟源为 HXT 或 LXT,则 tSST 为 1024 个时钟周期。 如果系统时钟源为 LIRC,则 tSST 为 1~2 个时钟周期。 休眠或空闲时看门狗溢出复位时序图 复位初始状态 不同的复位形式以不同的途径影响复位标志位。这些标志位,即 PDF 和 TO 位 存放在状态寄存器中,由休眠或空闲模式功能或看门狗计数器等几种控制器操 作控制。复位标志位如下所示: TO PDF 复位条件 0 0 上电时的 RES 复位 u u 正常模式或低速模式时的 RES 复位或 LVR 复位 1 u 正常模式或低速模式时的 WDT 溢出复位 1 1 空闲或休眠模式时的 WDT 溢出复位 注:“u”代表不改变 在单片机上电复位之后,各功能单元初始化的情形,列于下表。 项目 程序计数器 中断 看门狗定时器 定时 / 计数器 输入 / 输出口 堆栈指针 复位后情况 清除为零 所有中断被除能 WDT 清除并重新计数 所有定时 / 计数器停止 I/O 口设为输入模式,AN0~AN11 作为 A/D 输入脚。 堆栈指针指向堆栈顶端 不同的复位形式对单片机内部寄存器的影响是不同的。为保证复位后程序能正 常执行,了解寄存器在特定条件复位后的设置是非常重要的。下表即为不同方 式复位后内部寄存器的状况。若芯片有多种封装类型,表格反应较大的封装的 情况。 Rev. 1.60 60 2011-09-09 HT66F20 寄存器 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG WDTC TBC INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 PAWU PAPU PA PAC PBPU PB PBC PCPU PC PCC ADRL(ADREF=0) ADRL(ADREF=1) ADRH(ADREF=0) ADRH(ADREF=1) ADCR0 ADCR1 ACERL CP0C CP1C SIMC0 上电复位 - xxx xxxx - xxx xxxx - - - - - - -0 xxxx xxxx 0000 0000 xxxx xxxx - - xx xxxx - - - - - -xx - -00 xxxx 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 - -00 - -00 - -00 - -00 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 - - 00 0000 - - 11 1111 - - 11 1111 - - - - 0000 - - - - 1111 - - - - 1111 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 - Rev.1.60 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 RES 或 LVR 复位 - xxx xxxx - xxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - -uu - -uu uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 - -00 - -00 - -00 - -00 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 - - 00 0000 - - 11 1111 - - 11 1111 - - - - 0000 - - - - 1111 - - - - 1111 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 - 61 WDT 溢出 ( 正常模式 ) - xxx xxxx - xxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - -uu uuuu - - - - - -uu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 - -00 - -00 - -00 - -00 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 - - 00 0000 - - 11 1111 - - 11 1111 - - - - 0000 - - - - 1111 - - - - 1111 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 - WDT 溢出 ( 空闲模式 ) - uuu uuuu - uuu uuuu - - - - - - -u uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - - uu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - uuuu uuuu uuuu uuuu uuuu - uuu uuuu uuuu uuuu uuuu uuuu - -uu - -uu - -uu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - uu uuuu - - uu uuuu - - uu uuuu - - - - uuuu - - - - uuuu - - - - uuuu uuuu - - - uuuu uuuu uuuu uuuu - - - - uuuu uuuu - uuu uu -u - uuu uuuu uuuu uuuu u - -u uuuu u - -u uuuu uuu - 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 SIMC1 SIMD SIMA/SIMC2 TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH EEA EED EEC TMPC0 TM1C0 TM1C1 TM1DL TM1DH TM1AL TM1AH SCOMC 注:“u”表示不改变 “x”表示未知 “-”表示未定义 上电复位 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - - - x xxxx xxxx xxxx - - - - 0000 - - 01 - - - 1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 RES 或 LVR 复位 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - - - x xxxx xxxx xxxx - - - - 0000 - - 01 - - - 1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 WDT 溢出 ( 正常模式 ) 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - - - x xxxx xxxx xxxx - - - - 0000 - - 01 - - - 1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu - - - 0 0000 uuuu uuuu - - - - uuuu - - uu - - -u uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu Rev. 1.60 62 2011-09-09 HT66F30 寄存器 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG WDTC TBC INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 PAWU PAPU PA PAC PBPU PB PBC PCPU PC PCC ADRL(ADREF=0) ADRL(ADREF=1) ADRH(ADREF=0) ADRH(ADREF=1) ADCR0 ADCR1 ACERL CP0C CP1C SIMC0 Rev.1.60 上电复位 - xxx xxxx - xxx xxxx - - - - - - 00 xxxx xxxx 0000 0000 xxxx xxxx - - xx xxxx - - - - - xxx - -00 xxxx 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 - -00 - -00 - 000 - 000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 - - 00 0000 - - 11 1111 - - 11 1111 0000 0000 1111 1111 1111 1111 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 - HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 RES 或 LVR 复位 - xxx xxxx - xxx xxxx - - - - - - 00 uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - uuu - -uu uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 - -00 - -00 - 000 - 000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 - - 00 0000 - - 11 1111 - - 11 1111 0000 0000 1111 1111 1111 1111 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 - 63 WDT 溢出 ( 正常模式 ) - xxx xxxx - xxx xxxx - - - - - - 00 uuuu uuuu 0000 0000 uuuu uuuu - -uu uuuu - - - - - uuu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 - -00 - -00 - 000 -000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 - - 00 0000 - - 11 1111 - - 11 1111 0000 0000 1111 1111 1111 1111 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 - WDT 溢出 ( 空闲模式 ) - uuu uuuu - uuu uuuu - - - - - - uu uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - uuu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - uuuu uuuu uuuu uuuu uuuu - uuu uuuu uuuu uuuu uuuu uuuu - -uu - -uu - uuu - uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - uu uuuu - - uu uuuu - - uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - uuuu uuuu uuuu uuuu - - - - uuuu uuuu - uuu uu -u - uuu uuuu uuuu uuuu u - -u uuuu u - -u uuuu uuu - 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 SIMC1 SIMD SIMA/SIMC2 TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH EEA EED EEC TMPC0 PRM0 TM1C0 TM1C1 TM1C2 TM1DL TM1DH TM1AL TM1AH TM1BL TM1BH SCOMC 注:“u”表示不改变 “x”表示未知 “-”表示未定义 上电复位 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - - xx xxxx xxxx xxxx - - - - 0000 1 - 01 - - 01 - - - - - 000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 RES 或 LVR 复位 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - - xx xxxx xxxx xxxx - - - - 0000 1 - 01 - - 01 - - - - - 000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 WDT 溢出 ( 正常模式 ) 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - - xx xxxx xxxx xxxx - - - - 0000 1 - 01 - - 01 - - - - - 000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu - - uu uuuu uuuu uuuu - - - - uuuu u - uu - - uu - - - - - uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu Rev. 1.60 64 2011-09-09 HT66F40 寄存器 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG WDTC TBC INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 PAWU PAPU PA PAC PBPU PB PBC PCPU PC PCC PDPU PD PDC PEPU PE PEC PFPU PF PFC ADRL(ADREF=0) Rev.1.60 上电复位 xxxx xxxx xxxx xxxx - - - - - - -0 xxxx xxxx 0000 0000 xxxx xxxx - xxx xxxx - - - - xxxx - -00 xxxx 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - - HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 RES 或 LVR 复位 xxxx xxxx xxxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - uuuu - -uu uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - - 65 WDT 溢出 ( 正常模式 ) xxxx xxxx xxxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - uuuu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - - WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu - - - - - - -u uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - uuuu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - uuuu uuuu uuuu uuuu uuuu - uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - uuu - uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - -uu - - - - - -uu - - - - - -uu uuuu - - - - 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 ADRL(ADREF=1) ADRH(ADREF=0) ADRH(ADREF=1) ADCR0 ADCR1 ACERL CP0C CP1C SIMC0 SIMC1 SIMD SIMA/SIMC2 TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH EEA EED EEC TMPC0 TMPC1 PRM0 PRM1 PRM2 TM1C0 TM1C1 TM1C2 TM1DL TM1DH TM1AL TM1AH TM1BL TM1BH TM2C0 TM2C1 TM2DL TM2DH TM2AL TM2AH Rev. 1.60 上电复位 xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - xxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - - - - - 01 - 0- 0 0000 000 - 0000 - -00 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0 - - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 RES 或 LVR 复位 xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - xxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - - - - - 01 - 0- 0 0000 000 - 0000 - -00 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0 - - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 66 WDT 溢出 ( 正常模式 ) xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 - xxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - - - - - 01 - 0- 0 0000 000 - 0000 - -00 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0 - - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu - - - - uuuu uuuu - uuu uu -u -uuu uuuu uuuu uuuu u - -u uuuu u - -u uuuu uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu - uuu uuuu uuuu uuuu - - - - uuuu uuuu - - uu - - - - - - uu - u- u uuuu uuu - uuuu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu u - - uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 TM2RP SCOMC 注:“u”表示不改变 “x”表示未知 “-”表示未定义 HT66F50 寄存器 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG WDTC TBC INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 MFI3 PAWU PAPU PA PAC PBPU PB PBC PCPU PC PCC PDPU 上电复位 0000 0000 0000 0000 上电复位 xxxx xxxx xxxx xxxx - - - - - - 00 xxxx xxxx 0000 0000 xxxx xxxx xxxx xxxx - - -x xxxx - -00 xxxx 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 Rev.1.60 RES 或 LVR 复位 0000 0000 0000 0000 WDT 溢出 ( 正常模式 ) 0000 0000 0000 0000 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu RES 或 LVR 复位 xxxx xxxx xxxx xxxx - - - - - - 00 uuuu uuuu 0000 0000 uuuu uuuu uuuu uuuu - - -u uuuu - -uu uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 WDT 溢出 ( 正常模式 ) xxxx xxxx xxxx xxxx - - - - - - 00 uuuu uuuu 0000 0000 uuuu uuuu uuuu uuuu - - -u uuuu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu 0000 0000 uuuu uuuu uuuu uuuu - - -u uuuu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - uuuu uuuu uuuu uuuu uuuu - uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - uuu - uuu uuuu uuuu - -uu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu 67 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 PD PDC PEPU PE PEC PFPU PF PFC ADRL(ADREF=0) ADRL(ADREF=1) ADRH(ADREF=0) ADRH(ADREF=1) ADCR0 ADCR1 ACERL CP0C CP1C SIMC0 SIMC1 SIMD SIMA/SIMC2 TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH EEA EED EEC TMPC0 TMPC1 PRM0 PRM1 PRM2 TM1C0 TM1C1 TM1C2 TM1DL TM1DH TM1AL Rev. 1.60 上电复位 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 xxxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - 01 - - 01 - 0- 0 0000 000 - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 RES 或 LVR 复位 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 xxxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - 01 - - 01 - 0- 0 0000 000 - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 68 WDT 溢出 ( 正常模式 ) 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - 000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 xxxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - 01 - - 01 - 0- 0 0000 000 - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - -uu - - - - - -uu - - - - - -uu uuuu - - - uuuu uuuu uuuu uuuu - - - - uuuu uuuu - uuu uu -u - uuu uuuu uuuu uuuu u - -u uuuu u - -u uuuu uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu uuuu uuuu - - - - uuuu uuuu - - uu - - uu - - uu - u- u uuuu uuu - uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 TM1AH TM1BL TM1BH TM2C0 TM2C1 TM2DL TM2DH TM2AL TM2AH TM2RP TM3C0 TM3C1 TM3DL TM3DH TM3AL TM3AH SCOMC 注:“u”表示不改变 “x”表示未知 “-”表示未定义 上电复位 - - - - - - 00 0000 0000 - - - - - - 00 0000 0- - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - -00 0000 0000 - - - - - -00 0000 0000 RES 或 LVR 复位 - - - - - - 00 0000 0000 - - - - - - 00 0000 0- - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - -00 0000 0000 - - - - - -00 0000 0000 WDT 溢出 ( 正常模式 ) - - - - - - 00 0000 0000 - - - - - - 00 0000 0- - 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - -00 0000 0000 - - - - - -00 0000 0000 WDT 溢出 ( 空闲模式 ) - - - - - - uu uuuu uuuu - - - - - - uu uuuu u- - uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - -uu uuuu uuuu - - - - - -uu uuuu uuuu Rev.1.60 69 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 HT66F60 寄存器 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG WDTC TBC INTC0 INTC1 INTC2 INTC3 MFI0 MFI1 MFI2 MFI3 PAWU PAPU PA PAC PBPU PB PBC PCPU PC PCC PDPU PD PDC PEPU PE PEC PFPU PF Rev. 1.60 上电复位 xxxx xxxx xxxx xxxx - - 0- - 000 xxxx xxxx 0000 0000 xxxx xxxx xxxx xxxx - - xx xxxx - -00 xxxx 0000 0011 - - 00 - 000 0000 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 RES 或 LVR 复位 xxxx xxxx xxxx xxxx - - 0- - 000 uuuu uuuu 0000 0000 uuuu uuuu uuuu uuuu - - uu uuuu - -uu uuuu 0000 0011 - - 00 - 000 0000 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 70 WDT 溢出 ( 正常模式 ) xxxx xxxx xxxx xxxx - - 0- - 000 uuuu uuuu 0000 0000 uuuu uuuu uuuu uuuu - - uu uuuu - - 1u uuuu 0000 0011 - - 00 - 000 0000 0000 0111 1010 0011 0111 - 000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - 000 - 000 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 1111 1111 0000 0000 1111 1111 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu - - u- - uuu uuuu uuuu 0000 0000 uuuu uuuu uuuu uuuu - - uu uuuu - - 11 uuuu uuuu uuuu - - uu - uuu uuuu uuuu uuuu uuuu uuuu uuuu - uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - uuu - uuu uuuu uuuu - -uu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 PFC PGPU PG PGC ADRL(ADREF=0) ADRL(ADREF=1) ADRH(ADREF=0) ADRH(ADREF=1) ADCR0 ADCR1 ACERL CP0C CP1C SIMC0 SIMC1 SIMD SIMA/SIMC2 TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH EEA EED EEC TMPC0 TMPC1 PRM0 PRM1 PRM2 TM1C0 TM1C1 TM1C2 TM1DL TM1DH TM1AL TM1AH TM1BL TM1BH TM2C0 上电复位 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 0000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 xxxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - 01 - - 01 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0- - - Rev.1.60 RES 或 LVR 复位 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 0000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 xxxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - 01 - - 01 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0- - - 71 WDT 溢出 ( 正常模式 ) 1111 1111 - - - - - -00 - - - - - -11 - - - - - -11 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 0000 00 -0 - 000 1111 1111 1000 0 - -1 1000 0 - -1 1110 000 1000 0001 xxxx xxxx 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 xxxx xxxx xxxx xxxx - - - - 0000 1001 - - 01 - - 01 - - 01 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0- - - WDT 溢出 ( 空闲模式 ) uuuu uuuu - - - - - -uu - - - - - -uu - - - - - -uu uuuu - - - uuuu uuuu uuuu uuuu - - - - uuuu uuuu uuuu uu -u -uuu uuuu uuuu uuuu u- -u uuuu u- -u uuuu uuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu uuuu uuuu - - - - uuuu uuuu - - uu - - uu - - uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu u- - - 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 TM2C1 TM2DL TM2DH TM2AL TM2AH TM2RP TM3C0 TM3C1 TM3DL TM3DH TM3AL TM3AH SCOMC 注:“u”表示不改变 “x”表示未知 “-”表示未定义 上电复位 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - -00 0000 0000 - - - - - -00 0000 0000 RES 或 LVR 复位 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - -00 0000 0000 - - - - - -00 0000 0000 WDT 溢出 ( 正常模式 ) 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - - - - - -00 0000 0000 - - - - - -00 0000 0000 WDT 溢出 ( 空闲模式 ) uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - -uu uuuu uuuu - - - - - -uu uuuu uuuu Rev. 1.60 72 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 输入 / 输出端口 盛群单片机的输入 / 输出口控制具有很大的灵活性。大部分引脚可在用户程序 控制下被设定为输入或输出。所有引脚的上拉电阻设置以及指定引脚的唤醒设 置也都由软件控制,这些特性也使得此类单片机在广泛应用上都能符合开发的 需求。 此系列单片机提供 PA~PG 双向输入 / 输出口。这些寄存器在数据存储器有特定 的地址。所有 I/O 口用于输入输出操作。作为输入操作,输入引脚无锁存功能, 也就是说输入数据必须在执行“MOV A,[m]”,T2 的上升沿准备好,m 为端 口地址。对于输出操作,所有数据都是被锁存的,且保持不变直到输出锁存被 重写。 输入 / 输出寄存器列表 ● HT66F20 寄存器 位 名称 7 6 5 4 3 2 1 0 PAWU D7 D6 D5 D4 D3 D2 D1 D0 PAPU D7 D6 D5 D4 D3 D2 D1 D0 PA D7 D6 D5 D4 D3 D2 D1 D0 PAC D7 D6 D5 D4 D3 D2 D1 D0 PBPU — — D5 D4 D3 D2 D1 D0 PB — — D5 D4 D3 D2 D1 D0 PBC — — D5 D4 D3 D2 D1 D0 PCPU — — — — D3 D2 D1 D0 PC — — — — D3 D2 D1 D0 PCC — — — — D3 D2 D1 D0 ● HT66F30 寄存器 位 名称 7 6 5 4 3 2 1 0 PAWU D7 D6 D5 D4 D3 D2 D1 D0 PAPU D7 D6 D5 D4 D3 D2 D1 D0 PA D7 D6 D5 D4 D3 D2 D1 D0 PAC D7 D6 D5 D4 D3 D2 D1 D0 PBPU — — D5 D4 D3 D2 D1 D0 PB — — D5 D4 D3 D2 D1 D0 PBC — — D5 D4 D3 D2 D1 D0 PCPU D7 D6 D5 D4 D3 D2 D1 D0 PC D7 D6 D5 D4 D3 D2 D1 D0 PCC D7 D6 D5 D4 D3 D2 D1 D0 Rev.1.60 73 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F40/HT66F50 寄存器 位 名称 7 6 5 4 3 2 1 0 PAWU D7 D6 D5 D4 D3 D2 D1 D0 PAPU D7 D6 D5 D4 D3 D2 D1 D0 PA D7 D6 D5 D4 D3 D2 D1 D0 PAC D7 D6 D5 D4 D3 D2 D1 D0 PBPU D7 D6 D5 D4 D3 D2 D1 D0 PB D7 D6 D5 D4 D3 D2 D1 D0 PBC D7 D6 D5 D4 D3 D2 D1 D0 PCPU D7 D6 D5 D4 D3 D2 D1 D0 PC D7 D6 D5 D4 D3 D2 D1 D0 PCC D7 D6 D5 D4 D3 D2 D1 D0 PDPU D7 D6 D5 D4 D3 D2 D1 D0 PD D7 D6 D5 D4 D3 D2 D1 D0 PDC D7 D6 D5 D4 D3 D2 D1 D0 PEPU D7 D6 D5 D4 D3 D2 D1 D0 PE D7 D6 D5 D4 D3 D2 D1 D0 PEC D7 D6 D5 D4 D3 D2 D1 D0 PFPU — — — — — — D1 D0 PF — — — — — — D1 D0 PFC — — — — — — D1 D0 Rev. 1.60 74 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F60 寄存器 位 名称 7 6 5 4 3 2 1 0 PAWU D7 D6 D5 D4 D3 D2 D1 D0 PAPU D7 D6 D5 D4 D3 D2 D1 D0 PA D7 D6 D5 D4 D3 D2 D1 D0 PAC D7 D6 D5 D4 D3 D2 D1 D0 PBPU D7 D6 D5 D4 D3 D2 D1 D0 PB D7 D6 D5 D4 D3 D2 D1 D0 PBC D7 D6 D5 D4 D3 D2 D1 D0 PCPU D7 D6 D5 D4 D3 D2 D1 D0 PC D7 D6 D5 D4 D3 D2 D1 D0 PCC D7 D6 D5 D4 D3 D2 D1 D0 PDPU D7 D6 D5 D4 D3 D2 D1 D0 PD D7 D6 D5 D4 D3 D2 D1 D0 PDC D7 D6 D5 D4 D3 D2 D1 D0 PEPU D7 D6 D5 D4 D3 D2 D1 D0 PE D7 D6 D5 D4 D3 D2 D1 D0 PEC D7 D6 D5 D4 D3 D2 D1 D0 PFPU D7 D6 D5 D4 D3 D2 D1 D0 PF D7 D6 D5 D4 D3 D2 D1 D0 PFC D7 D6 D5 D4 D3 D2 D1 D0 PGPU — — — — — — D1 D0 PG — — — — — — D1 D0 PGC — — — — — — D1 D0 Rev.1.60 75 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 上拉电阻 许多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功 能。为了免去外部上拉电阻,当引脚规划为输入时,可由内部连接到一个上拉 电阻。这些上拉电阻可通过寄存器 PAPU~PGPU 来设置,它用一个 PMOS 晶体 管来实现上拉电阻功能。 PAPU 寄存器 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 PBPU 寄存器 ● HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 PCPU 寄存器 ● HT66F30/HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 PDPU 寄存器 ● HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 PEPU 寄存器 ● HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Rev. 1.60 76 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PFPU 寄存器 ● HT66F60 Bit Name R/W POR Bit 7~0 7 6 5 4 D7 D6 D5 D4 R/W R/W R/W R/W 0 0 0 0 I/O 口 bit 7~bit 0 上拉电阻控制位 0:除能 1:使能 3 D3 R/W 0 PBPU 寄存器 ● HT66F20/HT66F30 Bit Name R/W POR Bit 7~6 Bit 5~0 7 6 5 4 3 — — D5 D4 D3 — — R/W R/W R/W — — 0 0 0 未定义,读为“0” PBPU:PB 口 bit 5~bit 0 上拉电阻控制位 0:除能 1:使能 PCPU 寄存器 ● HT66F20 Bit 7 6 5 4 3 Name — — — — D3 R/W — — — — R/W POR — — — — 0 Bit 7~4 Bit 3~0 未定义,读为“0” PCPU:PC 口 bit 3~bit 0 上拉电阻控制位 0:除能 1:使能 PFPU 寄存器 ● HT66F40/HT66F50 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1~0 未定义,读为“0” PFPU:PF 口 bit 1~bit 0 上拉电阻控制位 0:除能 1:使能 2 D2 R/W 0 2 D2 R/W 0 2 D2 R/W 0 2 — — — 1 D1 R/W 0 1 D1 R/W 0 1 D1 R/W 0 1 D1 R/W 0 0 D0 R/W 0 0 D0 R/W 0 0 D0 R/W 0 0 D0 R/W 0 Rev.1.60 77 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PGPU 寄存器 ● HT66F60 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1~0 未定义,读为“0” PGPU:PG 口 bit 1~bit 0 上拉电阻控制位 0:除能 1:使能 2 1 0 — D1 D0 — R/W R/W — 0 0 PA 口唤醒 当使用暂停指令“HALT”迫使单片机进入休眠或空闲模式,单片机的系统时 钟将会停止以降低功耗,此功能对于电池及低功耗应用很重要。唤醒单片机有 很多种方法,其中之一就是使 PA 口的其中一个引脚从高电平转为低电平。这 个功能特别适合于通过外部开关来唤醒的应用。PA 口的每个引脚可以通过设置 PAWU 寄存器来单独选择是否具有唤醒功能。 PAWU 寄存器 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7~0 PAWU:PA 口 bit 7~bit 0 唤醒功能控制位 0:除能 1:使能 输入 / 输出端口控制寄存器 每 一 个 输 入 / 输 出 口 都 具 有 各 自 的 控 制 寄 存 器, 即 PAC~PGC, 用 来 控 制 输 入 / 输 出 状 态。 从 而 每 个 I/O 引 脚 都 可 以 通 过 软 件 控 制, 动 态 的 设 置 为 CMOS 输出或输入。所有的 I/O 端口的引脚都各自对应于 I/O 端口控制的某一 位。若 I/O 引脚要实现输入功能,则对应的控制寄存器的位需要设置为“1”。 这时程序指令可以直接读取输入脚的逻辑状态。若控制寄存器相应的位被设定 为“0”,则此引脚被设置为 CMOS 输出。当引脚设置为输出状态时,程序指 令读取的是输出端口寄存器的内容。注,如果对输出口做读取动作时,程序读 取到的是内部输出数据锁存器中的状态,而不是输出引脚上实际的逻辑状态。 PAC 寄存器 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 1 1 1 1 1 1 1 1 Rev. 1.60 78 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PBC 寄存器 ● HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 Name D7 D6 D5 D4 R/W R/W R/W R/W R/W POR 1 1 1 1 PCC 寄存器 ● HT66F30/HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 Name D7 D6 D5 D4 R/W R/W R/W R/W R/W POR 1 1 1 1 PDC 寄存器 ● HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 Name D7 D6 D5 D4 R/W R/W R/W R/W R/W POR 1 1 1 1 PEC 寄存器 ● HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 Name D7 D6 D5 D4 R/W R/W R/W R/W R/W POR 1 1 1 1 PFC 寄存器 ● HT66F60 Bit 7 6 5 4 Name D7 D6 D5 D4 R/W R/W R/W R/W R/W POR 1 1 1 1 Bit 7~0 I/O 口 bit 7~bit 0 输入 / 输出控制位 0:输出 1:输入 3 D3 R/W 1 3 D3 R/W 1 3 D3 R/W 1 3 D3 R/W 1 3 D3 R/W 1 2 D2 R/W 1 2 D2 R/W 1 2 D2 R/W 1 2 D2 R/W 1 2 D2 R/W 1 1 D1 R/W 1 1 D1 R/W 1 1 D1 R/W 1 1 D1 R/W 1 1 D1 R/W 1 0 D0 R/W 1 0 D0 R/W 1 0 D0 R/W 1 0 D0 R/W 1 0 D0 R/W 1 Rev.1.60 79 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PBC 寄存器 ● HT66F20/HT66F30 Bit 7 Name — R/W — POR — 6 5 4 3 — D5 D4 D3 — R/W R/W R/W — 0 0 0 Bit 7~6 Bit 5~0 未定义,读为“0” PBC:PB 口 bit 5~bit 0 输入 / 输出控制位 0:输出 1:输入 PCC 寄存器 ● HT66F20 Bit Name R/W POR Bit 7~4 Bit 3~0 7 6 5 4 3 — — — — D3 — — — — R/W — — — — 0 未定义,读为“0” PCC:PC 口 bit 3~bit 0 输入 / 输出控制位 0:输出 1:输入 PFC 寄存器 ● HT66F40/HT66F50 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1~0 未定义,读为“0” PFC:PF 口 bit 1~bit 0 输入 / 输出控制位 0:输出 1:输入 PGC 寄存器 ● HT66F60 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1~0 未定义,读为“0” PGC:PG 口 bit 1~bit 0 输入 / 输出控制位 0:输出 1:输入 2 D2 R/W 0 2 D2 R/W 0 2 — — — 2 — — — 1 D1 R/W 0 1 D1 R/W 0 1 D1 R/W 0 1 D1 R/W 0 0 D0 R/W 0 0 D0 R/W 0 0 D0 R/W 0 0 D0 R/W 0 Rev. 1.60 80 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 引脚重置功能 引脚的多功能可以增加单片机应用的灵活性。有限的引脚个数将会限制设计者, 而引脚的多功能将会解决很多此类问题。每个功能可单独选择所在的引脚,以 及一个确定的优先级,使得引脚上多种功能可以同时使用。此外,一些引脚功 能可以通过寄存器 PRM0,PRM1 和 PRM2 进行设定。 引脚重置寄存器 封装中有限的引脚个数会对某些单片机功能造成影响。然而,引脚功能重置和 引脚功能选择,使得小封装单片机具有更多不同的功能。一些单片机的特定引 脚功能可以通过寄存器 PRM0,PRM1 或 PRM2 进行设定。 引脚重置寄存器列表 ● HT66F30 寄存器 位 名称 7 6 5 4 3 2 1 0 PRM0 — — — — — PCPRM SIMPS0 PCKPS ● HT66F40 寄存器 名称 PRM0 PRM1 PRM2 7 — TCK2PS — 位 6 5 4 3 2 1 0 C1XPS0 — C0XPS0 PDPRM SIMPS1 SIMPS0 PCKPS TCK1PS TCK0PS — INT1PS1 INT1PS0 INT0PS1 INT0PS0 — TP21PS TP20PS TP1B2PS TP1APS TP01PS TP00PS ● HT66F50 寄存器 名称 PRM0 PRM1 PRM2 位 7 6 5 4 3 2 1 0 — C1XPS0 — C0XPS0 PDPRM SIMPS1 SIMPS0 PCKPS TCK2PS TCK1PS TCK0PS — INT1PS1 INT1PS0 INT0PS1 INT0PS0 TP31PS TP30PS TP21PS TP20PS TP1B2PS TP1APS TP01PS TP00PS ● HT66F60 寄存器 名称 PRM0 PRM1 PRM2 位 7 6 5 4 3 2 1 0 C1XPS1 C1XPS0 C0XPS1 C0XPS0 PDPRM SIMPS1 SIMPS0 PCKPS TCK2PS TCK1PS TCK0PS INT2PS1 INT1PS1 INT1PS0 INT0PS1 INT0PS0 TP31PS TP30PS TP21PS TP20PS TP1B2PS TP1APS TP01PS TP00PS Rev.1.60 81 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PRM0 寄存器 ● HT66F30 Bit 7 6 5 4 3 2 1 0 Name — — — — — PCPRM SIMPS0 PCKPS R/W — — — — — R/W R/W R/W POR — — — — — 0 0 0 Bit 7~3 Bit 2 Bit 1 Bit 0 未定义,读为“0” PCPRM:PC1~PC0 引脚功能重置控制位 0:不变 1:如果 SIMPS0=1 时,TP1B_0 由 PC0 更改为 PA6,TP1B_1 由 PC1 更改为 PA7 SIMPS0:SIM 引脚重置控制位 0:SDO on PA5;SDI/SDA on PA6;SCK/SCL on PA7;SCS on PB5 1:SDO on PC1;SDI/SDA on PC0;SCK/SCL on PC7;SCS on PC6 PCKPS:PCK 和 PINT 引脚重置控制位 0:PCK on PC2;PINT on PC3 1:PCK on PC5;PINT on PC4 PRM0 寄存器 ● HT66F40/HT66F50 Bit Name R/W POR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2~1 Bit 0 7 6 5 4 3 2 1 0 — C1XPS0 — C0XPS0 PDPRM SIMPS1 SIMPS0 PCKPS — R/W — R/W R/W R/W R/W R/W — 0 — 0 0 0 0 0 未定义,读为“0” C1XPS0:C1X 引脚重置控制位 0:C1X on PA5 1:C1X on PF1 未定义,读为“0” C0XPS0:C0X 引脚重置控制位 0:C0X on PA0 1:C0X on PF0 PDPRM:PD3~PD0 引脚功能重置控制位 0:不变 1:如果 SIMPS1,SIMPS0=01 时,TCK2 由 PD0 更改为 PB6,TP2_0 由 PD1 更改为 PB7,TCK0 由 PD2 更改为 PD6,TCK1 由 PD3 更改为 PD7 SIMPS1,SIMPS0:SIM 引脚重置控制位 00:SDO on PA5;SDI/SDA on PA6;SCK/SCL on PA7;SCS on PB5 01:SDO on PD3;SDI/SDA on PD2;SCK/SCL on PD1;SCS on PD0 10:SDO on PB6;SDI/SDA on PB7;SCK/SCL on PD6;SCS on PD7 11:未定义 PCKPS:PCK 和 PINT 引脚重置控制位 0:PCK on PC2;PINT on PC3 1:PCK on PC5;PINT on PC4 Rev. 1.60 82 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PRM0 寄存器 ● HT66F60 Bit Name R/W POR 7 6 5 4 3 2 1 0 C1XPS1 C1XPS0 C0XPS1 C0XPS0 PDPRM SIMPS1 SIMPS0 PCKPS R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 Bit 7~6 Bit 5~4 Bit 3 Bit 2~1 Bit 0 C1XPS1,C1XPS0:C1X 引脚重置控制位 00:C1X on PA5 01:C1X on PF1 10:C1X on PG1 11:未定义 C0XPS1,C0XPS0:C0X 引脚重置控制位 00:C0X on PA0 01:C0X on PF0 10:C0X on PG0 11:未定义 PDPRM:PD3~PD0 引脚功能重置控制位 0:不变 1:如果 SIMPS1,SIMPS0=01 或 11 时,TCK2 由 PD0 更改为 PB6,TP2_0 由 PD1 更改为 PB7,TCK0 由 PD2 更改为 PD6,TCK1 由 PD3 更改为 PD7 SIMPS1,SIMPS0:SIM 引脚重置控制位 00:SDO on PA5;SDI/SDA on PA6;SCK/SCL on PA7;SCS on PB5 01:SDO on PD3;SDI/SDA on PD2;SCK/SCL on PD1;SCS on PD0 10:SDO on PB6;SDI/SDA on PB7;SCK/SCL on PD6;SCS on PD7 11:SDO on PD1;SDI/SDA on PD2;SCK/SCL on PD3;SCS on PD0 PCKPS:PCK 和 PINT 引脚重置控制位 0:PCK on PC2;PINT on PC3 1:PCK on PC5;PINT on PC4 Rev.1.60 83 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PRM1 寄存器 ● HT66F40/HT66F50 Bit 7 6 5 4 3 2 1 0 Name TCK2PS TCK1PS TCK0PS — INT1PS1 INT1PS0 INT0PS1 INT0PS0 R/W R/W R/W R/W — R/W R/W R/W R/W POR 0 0 0 — 0 0 0 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3~2 Bit 1~0 TCK2PS:TCK2 引脚重置控制位 0:TCK2 on PC2 1:TCK2 on PD0 TCK1PS:TCK1 引脚重置控制位 0:TCK1 on PA4 1:TCK1 on PD3 TCK0PS:TCK0 引脚重置控制位 0:TCK0 on PA2 1:TCK0 on PD2 未定义,读为“0” INT1PS1,INT1PS0:INT1 引脚重置控制位 00:INT1 on PA4 01:INT1 on PC5 10:未定义 11:INT1 on PE7 INT0PS1,INT0PS0:INT0 引脚功能重置控制位 00:INT0 on PA3 01:INT0 on PC4 10:未定义 11:INT0 on PE6 Rev. 1.60 84 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PRM1 寄存器 ● HT66F60 Bit 7 6 5 4 3 2 1 0 Name TCK2PS TCK1PS TCK0PS INT2PS INT1PS1 INT1PS0 INT0PS1 INT0PS0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3~2 Bit 1~0 TCK2PS:TCK2 引脚重置控制位 0:TCK2 on PC2 1:TCK2 on PD0 TCK1PS:TCK1 引脚重置控制位 0:TCK1 on PA4 1:TCK1 on PD3 TCK0PS:TCK0 引脚重置控制位 0:TCK0 on PA2 1:TCK0 on PD2 INT2PS:INT2 引脚重置控制位 0:INT2 on PC4 1:INT2 on PE2 INT1PS1,INT1PS0:INT1 引脚重置控制位 00:INT1 on PA4 01:INT1 on PC5 10:INT1 on PE1 11:INT1 on PE7 INT0PS1,INT0PS0:INT0 引脚功能重置控制位 00:INT0 on PA3 01:INT0 on PC4 10:INT0 on PE0 11:INT0 on PE6 Rev.1.60 85 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PRM2 寄存器 ● HT66F40 Bit 7 Name — R/W — POR — 6 5 4 3 2 1 0 — TP21PS TP20PS TP1B2PS TP1APS TP01PS TP00PS — R/W R/W R/W R/W R/W R/W — 0 0 0 0 0 0 Bit 7~6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 未定义,读为“0” TP21PS:TP2_1 引脚重置控制位 0:TP2_1 on PC4 1:TP2_1 on PD4 TP20PS:TP2_0 引脚重置控制位 0:TP2_0 on PC3 1:TP2_0 on PD1 TP1B2PS:TP1B_2 引脚重置控制位 0:TP1B_2 on PC5 1:TP1B_2 on PE4 TP1APS:TP1A 引脚重置控制位 0:TP1A on PA1 1:TP1A on PC7 TP01PS:TP0_1 引脚重置控制位 0:TP0_1 on PC5 1:TP0_1 on PD5 TP00PS:TP0_0 引脚重置控制位 0:TP0_0 on PA0 1:TP0_0 on PC6 Rev. 1.60 86 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PRM2 寄存器 ● HT66F50/HT66F60 Bit Name R/W POR 7 6 5 4 3 2 1 0 TP31PS TP30PS TP21PS TP20PS TP1B2PS TP1APS TP01PS TP00PS R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TP31PS:TP3_1 引脚重置控制位 0:TP3_1 on PD0 1:TP3_1 on PE3 TP30PS:TP3_0 引脚重置控制位 0:TP3_0 on PD3 1:TP3_0 on PE5 TP21PS:TP2_1 引脚重置控制位 0:TP2_1 on PC4 1:TP2_1 on PD4 TP20PS:TP2_0 引脚重置控制位 0:TP2_0 on PC3 1:TP2_0 on PD1 TP1B2PS:TP1B_2 引脚重置控制位 0:TP1B_2 on PC5 1:TP1B_2 on PE4 TP1APS:TP1A 引脚重置控制位 0:TP1A on PA1 1:TP1A on PC7 TP01PS:TP0_1 引脚重置控制位 0:TP0_1 on PC5 1:TP0_1 on PD5 TP00PS:TP0_0 引脚重置控制位 0:TP0_0 on PA0 1:TP0_0 on PC6 Rev.1.60 87 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 输入 / 输出引脚结构 下图为输入 / 输出引脚的内部结构图。输入 / 输出引脚的准确逻辑结构图可能与 此图不同,这里只是为了方便对 I/O 引脚功能的理解提供的一个参考。图中的 引脚共用结构并非针对所有单片机。 D a ta B u s C o n tr o l B it D Q P u ll- H ig h R e g is te r S e le c t V DD W eak P u ll- u p W r ite C o n tr o l R e g is te r C h ip R e s e t R e a d C o n tr o l R e g is te r W r ite D a ta R e g is te r R e a d D a ta R e g is te r CK Q S D a ta B it D Q CK Q S M U X I/O p in S y s te m W a k e -u p W a k e - u p S e le c t P A o n ly 通用输入 / 输出端口 D a ta B u s W r ite C o n tr o l R e g is te r C h ip R e s e t R e a d C o n tr o l R e g is te r W r ite D a ta R e g is te r R e a d D a ta R e g is te r T o A /D C o n v e rte r C o n tr o l B it D Q P u ll- H ig h R e g is te r S e le c t C KS Q V DD W eak P u ll- u p D a ta B it D Q C KS Q M U X A n a lo g In p u t S e le c to r A C S 3~A C S 0 A/D 输入 / 输出端口 A /D In p u t P o rt Rev. 1.60 88 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 编程注意事项 在编程中,最先要考虑的是端口的初始化。复位之后,所有的输入 / 输出数据 及端口控制寄存器都将被设为逻辑高。所有输入 / 输出引脚默认为输入状态, 而其电平则取决于其它相连接电路以及是否选择了上拉电阻。如果端口控制寄 存器 PAC~PGC,某些引脚位被设定输出状态,这些输出引脚会有初始高电平 输出,除非数据寄存器端口 PA~PG 在程序中被预先设定。设置哪些引脚是输入 及哪些引脚是输出,可通过设置正确的值到适当的端口控制寄存器,或使用指 令“SET [m].i”及“CLR [m].i”来设定端口控制寄存器中个别的位。注意,当 使用这些位控制指令时,系统即将产生一个读 - 修改 - 写的操作。单片机需要 先读入整个端口上的数据,修改个别的位,然后重新把这些数据写入到输出端 口。 PA 口的每个引脚都带唤醒功能。单片机处于休眠或空闲模式时,有很多方法可 以唤醒单片机,其中之一就是通过 PA 任一引脚电平从高到低转换的方式,可 以设置 PA 口一个或多个引脚具有唤醒功能。 定时器模块 – TM 控制和测量时间在任何单片机中都是一个很重要的部分。每个单片机提供几个 定时器模块 ( 简称 TM),来实现和时间有关的功能。定时器模块是包括多种操 作的定时单元,提供的操作有:定时 / 事件计数器,捕捉输入,比较匹配输出, 单脉冲输出以及 PWM 输出等功能。每个定时器模块有两个或三个独立中断。 每个 TM 外加的输入输出引脚,扩大了定时器的灵活性,便于用户使用。 这里只介绍各种 TM 的共性,更多详细资料请参考简易型,标准型和增强型定 时器章节。 简介 该 系 列 单 片 机 包 含 2 到 4 个 TM, 取 决 于 所 选 单 片 机 的 型 号, 分 别 命 名 为 TM0,TM1,TM2 和 TM3。每个 TM 可被划分为一个特定的类型,即简易型 TM,标准型 TM 或增强型 TM。虽然性质相似,但不同 TM 特性复杂度不同。 本章介绍简易型,标准型和增强型 TM 的共性,更多详细资料分别见后面各章。 三种类型 TM 的特性和区别见下表。 功能 定时 / 计数器 捕捉输入 比较匹配输出 PWM 通道数 单脉冲输出 PWM 对齐方式 PWM 调节周期 & 占空比 CTM √ — √ 1 — 边沿对齐 占空比或周期 STM √ √ √ 1 1 边沿对齐 占空比或周期 ETM √ √ √ 2 2 边沿 & 中心对齐 占空比或周期 TM 功能概要 Rev.1.60 89 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 该系列每款单片机包括一定数目的定时器单元,其中有简易型,标准型和增强 型 TM,依次命名为 TM0~TM3 并见下表。 单片机 HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 TM0 10-bit CTM 10-bit CTM 10-bit CTM 10-bit CTM 10-bit CTM TM1 10-bit STM 10-bit ETM 10-bit ETM 10-bit ETM 10-bit ETM TM2 — — 16-bit STM 16-bit STM 16-bit STM TM3 — — — 10-bit CTM 10-bit CTM TM 名称 / 类型参考 TM 操作 三种不同类型的 TM 提供从简单的定时操作到 PWM 信号产生等多种功能。理 解 TM 操作的关键是比较 TM 内独立运行的计数器的值与内部比较器的预置值。 当计数器的值与比较器的预置值相同时,则比较匹配,TM 中断信号产生,清 零计数器并改变 TM 输出引脚的状态。用户选择内部时钟或外部时钟来驱动内 部 TM 计数器。 TM 时钟源 驱动 TM 计数器的时钟源很多。通过设置 TM 控制寄存器的 TnCK2~TnCK0 位, 选择所需的时钟源。该时钟源来自系统时钟 fSYS 或内部高速时钟 fH 或 fTBC 时钟 源或外部 TCKn 引脚时钟的分频比。注意:设置 TnCK2~TnCK0 为 101,将选 择 TM 预设时钟输入,有效切断 TM 时钟源。TCKn 引脚时钟源用于允许外部 信号作为 TM 时钟源或用于事件计数。 TM 中断 简易型和标准型 TM 都拥有两个内部中断,分别是内部比较器 A 或比较器 P, 当比较匹配发生时产生 TM 中断。增强型 TM 有三个内部比较器,即比较器 A 或比较器 B 或比较器 P,相应的有三个内部中断。当 TM 中断产生时,计数器 清零并改变 TM 输出引脚的状态。 Rev. 1.60 90 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 TM 外部引脚 无论哪种类型的 TM,都有一个 TM 输入引脚 TCKn。通过设置 TMnC0 寄存器 中的 TnCK2~TnCK0 位,选择 TM 功能并将该引脚作为 TM 时钟源输入脚。外 部时钟源可通过该引脚来驱动内部 TM。外部 TM 输入脚也与其它功能共用, 但是,如果设置适当值给 TnCK2~TnCK0,该引脚会连接到内部 TM。TM 引脚 可选择上升沿有效或下降沿有效。 每个 TM 有一个或多个输出引脚 TPn。当 TM 工作在比较匹配输出模式且比较 匹配发生时,这些引脚会由 TM 控制切换到高电平或低电平或翻转。外部 TPn 输出引脚也被 TM 用来产生 PWM 输出波形。当 TM 输出引脚与其它功能共用 时,TM 输出功能需要通过寄存器先被设置。寄存器中的一个单独位用于决定 其相关引脚用于外部 TM 输出还是用于其它功能。每个单片机和不同类型 TM 中输出引脚的个数是不同的,详见下表。 单片机 HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 CTM TP0_0 TP0_0, TP0_1 TP0_0, TP0_1 TP0_0, TP0_1 TP3_0, TP3_1 TP0_0, TP0_1 TP3_0, TP3_1 STM ETM TP1_0, TP1_1 — — TP1A, TP1B_0, TP1B_1 TP2_0, TP2_1 TP1A, TP1B_0, TP1B_1, TP1B_2 TP2_0, TP2_1 TP1A, TP1B_0, TP1B_1, TP1B_2 TP2_0, TP2_1 TP1A, TP1B_0, TP1B_1, TP1B_2 寄存器 TMPC0 TMPC0 TMPC0, TMPC1 TMPC0, TMPC1 TMPC0, TMPC1 TM 输出引脚 TM 输入 / 输出引脚控制寄存器 通过设置一或两个与 TM 输入 / 输出引脚相关的寄存器的一位,选择作为 TM 输入 / 输出功能或其它共用功能。设定为高时,相关引脚用作 TM 输入 / 输出, 清零时将保持原来的功能。 位 寄存器 单片机 7 6 5 4 3 2 TMPC0 HT66F20 — — T1CP1 T1CP0 — — TMPC0 HT66F30 T1ACP0 — T1BCP1 T1BCP0 — — HT66F40 TMPC0 HT66F50 T1ACP0 T1BCP2 T1BCP1 T1BCP0 — — HT66F60 TMPC1 HT66F40 — — — — — — TMPC1 HT66F50 HT66F60 — — T3CP1 T3CP0 — — TM 输入 / 输出引脚控制寄存器列表 1 — T0CP1 0 T0CP0 T0CP0 T0CP1 T0CP0 T2CP1 T2CP0 T2CP1 T2CP0 Rev.1.60 91 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 O u tp u t TM 0 (C T M ) T C K In p u t P A 0 O u tp u t F u n c tio n 0 1 T0C P 0 P A 0 /T P 0 _ 0 P A 2 /T C K 0 O u tp u t TM 1 (S T M ) C a p tu re In p u t T C K In p u t P A 1 O u tp u t F u n c tio n 0 1 PA1 P C 0 O u tp u t F u n c tio n 0 1 PC0 0 1 T1C P 0 0 1 T1C P 1 1 0 T1C P 1 1 0 T1C P 0 P A 1 /T P 1 _ 0 P C 0 /T P 1 _ 1 P A 4 /T C K 1 HT66F20 TM 功能引脚控制方框图 注:1. 上图所示输入 / 输出寄存器数据位用于 TM 输出反向控制。 2. 捕捉输入模式中,TM 引脚控制寄存器最多只能使能一个 TM 引脚输入。 Rev. 1.60 92 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 O u tp u t TM 0 (C T M ) T C K In p u t P A 0 O u tp u t F u n c tio n 0 1 PA0 P C 5 O u tp u t F u n c tio n 0 1 PC5 0 1 T0C P 0 0 1 T0C P 1 P A 0 /T P 0 _ 0 P C 5 /T P 0 _ 1 P A 2 /T C K 0 C C R A O u tp u t C C R A C a p tu re In p u t P A 1 O u tp u t F u n c tio n 0 1 T1A C P 0 1 0 T1A C P 0 P A 1 /T P 1 A P C 0 O u tp u t F u n c tio n 0 1 TM 1 (E T M ) C C R B O u tp u t PC0 P C 1 O u tp u t F u n c tio n 0 1 PC1 C C R B C a p tu re In p u t 0 1 T1B C P 0 0 1 T1B C P 1 1 0 T1B C P 1 1 0 T C K In p u t T1B C P 0 P C 0 /T P 1 B _ 0 P C 1 /T P 1 B _ 1 P A 4 /T C K 1 HT66F30 TM 功能引脚控制方框图 注:1. 上图所示输入 / 输出寄存器数据位用于 TM 输出反向控制。 2. 捕捉输入模式中,TM 引脚控制寄存器最多只能使能一个 TM 引脚输入。 Rev.1.60 93 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 O u tp u t TM 0 (C T M ) T C K In p u t P A 0 O u tp u t F u n c tio n 0 1 PA0 P C 5 O u tp u t F u n c tio n 0 1 PC5 0 1 T0C P 0 0 1 T0C P 1 P A 0 /T P 0 _ 0 P C 5 /T P 0 _ 1 P A 2 /T C K 0 O u tp u t TM 2 (S T M ) C a p tu re In p u t T C K In p u t P C 3 O u tp u t F u n c tio n 0 1 PC3 P C 4 O u tp u t F u n c tio n 0 1 PC4 0 1 T2C P 0 0 1 T2C P 1 1 0 T2C P 1 1 0 T2C P 0 P C 3 /T P 2 _ 0 P C 4 /T P 2 _ 1 P C 2 /T C K 2 HT66F40 TM0&TM2 功能引脚控制方框图 注:1. 上图所示输入 / 输出寄存器数据位用于 TM 输出反向控制。 2. 捕捉输入模式中,TM 引脚控制寄存器最多只能使能一个 TM 引脚输入。 Rev. 1.60 94 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 C C R A O u tp u t C C R A C a p tu re In p u t P A 1 O u tp u t F u n c tio n 0 1 T1A C P 0 1 0 T1A C P 0 P A 1 /T P 1 A P C 0 O u tp u t F u n c tio n 0 1 TM 1 (E T M ) C C R B O u tp u t PC0 P C 1 O u tp u t F u n c tio n 0 1 PC1 P C 5 O u tp u t F u n c tio n 0 1 PC5 C C R B C a p tu re In p u t 0 1 T1B C P 0 0 1 T1B C P 1 0 1 T1B C P 2 1 0 P C 0 /T P 1 B _ 0 P C 1 /T P 1 B _ 1 P C 5 /T P 1 B _ 2 T1B C P 2 1 0 T1B C P 1 1 0 T C K In p u t T1B C P 0 P A 4 /T C K 1 HT66F40 TM1 功能引脚控制方框图 注:1. 上图所示输入 / 输出寄存器数据位用于 TM 输出反向控制。 2. 捕捉输入模式中,TM 引脚控制寄存器最多只能使能一个 TM 引脚输入。 Rev.1.60 95 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 O u tp u t TM 0 (C T M ) T C K In p u t O u tp u t TM 2 (S T M ) C a p tu re In p u t T C K In p u t P A 0 O u tp u t F u n c tio n 0 1 PA0 P C 5 O u tp u t F u n c tio n 0 1 PC5 0 1 T0C P 0 0 1 T0C P 1 P C 3 O u tp u t F u n c tio n 0 1 PC3 P C 4 O u tp u t F u n c tio n 0 1 PC4 0 1 T2C P 0 0 1 T2C P 1 1 0 T2C P 1 1 0 T2C P 0 P A 0 /T P 0 _ 0 P C 5 /T P 0 _ 1 P A 2 /T C K 0 P C 3 /T P 2 _ 0 P C 4 /T P 2 _ 1 P C 2 /T C K 2 P D 3 O u tp u t F u n c tio n 0 1 0 1 T3C P 0 P D 3 /T P 3 _ 0 O u tp u t TM 3 (C T M ) T C K In p u t PD3 P D 0 O u tp u t F u n c tio n 0 1 PD0 0 1 T3C P 1 P D 0 /T P 3 _ 1 P C 4 /T C K 3 HT66F50 和 HT66F60 TM0,TM2,TM3 功能引脚控制方框图 注:1. 上图所示输入 / 输出寄存器数据位用于 TM 输出反向控制。 2. 捕捉输入模式中,TM 引脚控制寄存器最多只能使能一个 TM 引脚输入。 Rev. 1.60 96 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 C C R A O u tp u t P A 1 O u tp u t F u n c tio n 0 1 T1A C P 0 C C R A C a p tu re In p u t 1 0 T1A C P 0 P A 1 /T P 1 A P C 0 O u tp u t F u n c tio n 0 1 TM 1 (E T M ) C C R B O u tp u t PC0 P C 1 O u tp u t F u n c tio n 0 1 PC1 P C 5 O u tp u t F u n c tio n 0 1 PC5 C C R B C a p tu re In p u t 0 1 T1B C P 0 0 1 T1B C P 1 0 1 T1B C P 2 1 0 P C 0 /T P 1 B _ 0 P C 1 /T P 1 B _ 1 P C 5 /T P 1 B _ 2 T1B C P 2 1 0 T1B C P 1 1 0 T C K In p u t T1B C P 0 P A 4 /T C K 1 HT66F50 和 HT66F60 TM1 功能引脚控制方框图 注:1. 上图所示输入 / 输出寄存器数据位用于 TM 输出反向控制。 2. 捕捉输入模式中,TM 引脚控制寄存器最多只能使能一个 TM 引脚输入。 Rev.1.60 97 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 TMPC0 寄存器 ● HT66F20 Bit 7 Name — R/W — POR — 6 5 4 3 — T1CP1 T1CP0 — — R/W R/W — — 0 1 — Bit 7~6 Bit 5 Bit 4 Bit 3~1 Bit 0 未定义,读为“0” T1CP1:TP1_1 引脚控制位 0:除能 1:使能 T1CP0:TP1_0 引脚控制位 0:除能 1:使能 未定义,读为“0” T0CP0:TP0_0 引脚控制位 0:除能 1:使能 ● HT66F30 Bit 7 6 5 4 3 Name T1ACP0 — T1BCP1 T1BCP0 — R/W R/W — R/W R/W — POR 1 — 0 1 — Bit 7 Bit 6 Bit 5 Bit 4 Bit 3~2 Bit 1 Bit 0 T1ACP0:TP1A 引脚控制位 0:除能 1:使能 未定义,读为“0” T1BCP1:TP1B_1 引脚控制位 0:除能 1:使能 T1BCP0:TP1B_0 引脚控制位 0:除能 1:使能 未定义,读为“0” T0CP1:TP0_1 引脚控制位 0:除能 1:使能 T0CP0:TP0_0 引脚控制位 0:除能 1:使能 2 1 0 — — T0CP0 — — R/W — — 1 2 1 0 — T0CP1 T0CP0 — R/W R/W — 0 1 Rev. 1.60 98 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 3 Name T1ACP0 T1BCP2 T1BCP1 T1BCP0 — R/W R/W R/W R/W R/W — POR 1 0 0 1 — Bit 7 Bit 6 Bit 5 Bit 4 Bit 3~2 Bit 1 Bit 0 T1ACP0:TP1A 引脚控制位 0:除能 1:使能 T1BCP2:TP1B_2 引脚控制位 0:除能 1:使能 T1BCP1:TP1B_1 引脚控制位 0:除能 1:使能 T1BCP0:TP1B_0 引脚控制位 0:除能 1:使能 未定义,读为“0” T0CP1:TP0_1 引脚控制位 0:除能 1:使能 T0CP0:TP0_0 引脚控制位 0:除能 1:使能 2 1 0 — T0CP1 T0CP0 — R/W R/W — 0 1 Rev.1.60 99 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 TMPC1 寄存器 ● HT66F40 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1 Bit 0 未定义,读为“0” T2CP1:TP2_1 引脚控制位 0:除能 1:使能 T2CP0:TP2_0 引脚控制位 0:除能 1:使能 ● HT66F50/HT66F60 Bit 7 Name — R/W — POR — 6 5 4 3 — T3CP1 T3CP0 — — R/W R/W — — 0 1 — Bit 7~6 Bit 5 Bit 4 Bit 3~2 Bit 1 Bit 0 未定义,读为“0” T3CP1:TP3_1 引脚控制位 0:除能 1:使能 T3CP0:TP3_0 引脚控制位 0:除能 1:使能 未定义,读为“0” T2CP1:TP2_1 引脚控制位 0:除能 1:使能 T2CP0:TP2_0 引脚控制位 0:除能 1:使能 2 1 0 — T2CP1 T2CP0 — R/W R/W — 0 1 2 1 0 — T2CP1 T2CP0 — R/W R/W — 0 1 Rev. 1.60 100 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 编程注意事项 TM 计数寄存器和捕捉 / 比较寄存器 CCRA、CCRB 为 10-bit 或 16-bit 的寄存器, 含有低字节和高字节结构。高字节可直接访问,低字节则仅能通过一个内部 8-bit 的缓存器进行访问。读写这些成对的寄存器需通过特殊的方式。值得注意的是 8-bit 缓存器的存取数据及相关低字节的读写操作仅在其相应的高字节读取操作 执行时发生。 TM Counter Register (Read only) TMxDL TMxDH 8-bit Buffer TMxAL TMxAH TM CCRA Register (Read/Write) TMxBL TMxBH TM CCRB Register (Read/Write) Data Bus 读写流程如下步骤所示: ● 写数据至 CCRB 或 CCRA ♦ 步骤 1. 写数据至低字节寄存器 TMxAL 或 TMxBL – 注意,此时数据仅写入 8-bit 缓存器。 ♦ 步骤 2. 写数据至高字节寄存器 TMxAH 或 TMxBH – 注意,此时数据直接写入高字节寄存器,同时锁存在 8-bit 缓存器中的数 据写入低字节寄存器。 ● 由计数器寄存器和 CCRB 或 CCRA 中读取数据 ♦ 步骤 1. 由高字节寄存器 TMxDH,TMxAH 或 TMxBH 读取数据 – 注意,此时高字节寄存器中的数据直接读取,同时由低字节寄存器读取 的数据锁存至 8-bit 缓存器中。 ♦ 步骤 2. 由低字节寄存器 TMxDL、TMxAL 或 TMxBL 读取数据 – 注意,此时读取 8-bit 缓存器中的数据。 Rev.1.60 101 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 简易型 – TM 虽然简易型 TM 是三种 TM 类型中最简单的形式,但仍然包括三种工作模式, 即比较匹配输出,定时 / 事件计数器和 PWM 输出模式。简易型 TM 也由外部 输入脚控制并驱动一或两个外部输出脚。两个外部输出脚信号可以相同也可以 相反。 CTM HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 名称 10-bit CTM 10-bit CTM 10-bit CTM 10-bit CTM 10-bit CTM TM 编号 0 0 0 0,3 0,3 TM 输入引脚 TCK0 TCK0 TCK0 TCK0,TCK3 TCK0,TCK3 TM 输出引脚 TP0_0 TP0_0,TP0_1 TP0_0,TP0_1 TP0_0,TP0_1;TP3_0,TP3_1 TP0_0,TP0_1;TP3_0,TP3_1 fS Y S /4 fS Y S fH /1 6 fH /6 4 fT B C R e s e rv e d TC Kn 000 001 010 011 100 101 110 111 TnO N TnP A U TnC K 2~TnC K 0 CCRP 3 - b it C o m p a r a to r P C o m p a ra to r P M a tc h b7~b9 1 0 - b it C o u n t- u p C o u n te r C o u n te r C le a r 0 1 b0~b9 TnC C LR 1 0 - b it C o m p a r a to r A C o m p a ra to r A M a tc h CCRA 简易型 TM 方框图 T n P F In te rru p t TnO C O u tp u t C o n tro l P o la r ity C o n tro l T P n P in O u tp u t TnM 1,TnM 0 T n IO 1 , T n IO 0 TnP O L T n A F In te rru p t TP n_0 TP n_1 Rev. 1.60 102 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 简易型 TM 操作 简易型 TM 核心是一个由用户选择的内部或外部时钟源驱动的 10 位向上计数 器,它还包括两个内部比较器即比较器 A 和比较器 P。这两个比较器将计数器 的值与 CCRP 和 CCRA 寄存器中的值进行比较。CCRP 是 3 位的,与计数器的 高 3 位比较;而 CCRA 是 10 位的,与计数器的所有位比较。 通过应用程序改变 10 位计数器值的唯一方法是使 TnON 位发生上升沿跳变清除 计数器。此外,计数器溢出或比较匹配也会自动清除计数器。上述条件发生时, 通常情况会产生 TM 中断信号。简易型 TM 可工作在不同的模式,可由包括来 自输入脚的不同时钟源驱动,也可以控制输出脚。所有工作模式的设定都是通 过设置相关寄存器来实现的。 简易型 TM 寄存器介绍 简易型 TM 的所有操作由一组(六个)或两组(十二个)寄存器控制。每组中 包含一对只读寄存器用来存放 10 位计数器的值,一对读 / 写寄存器存放 10 位 CCRA 的值,剩下两个控制寄存器设置不同的操作和控制模式以及 CCRP 的 3 个位。 Name TMnC0 TMnC1 TMnDL TMnDH TMnAL TMnAH Bit 7 TnPAU TnM1 D7 — D7 — Bit 6 TnCK2 TnM0 D6 — D6 — Bit 5 TnCK1 TnIO1 D5 — D5 — Bit 4 TnCK0 TnIO0 D4 — D4 — Bit 3 TnON TnOC D3 — D3 — Bit 2 TnRP2 TnPOL D2 — D2 — Bit 1 TnRP1 TnDPX D1 D9 D1 D9 Bit 0 TnRP0 TnCCLR D0 D8 D0 D8 简易型 TM 寄存器列表 (n=0 或 3) TMnDL 寄存器 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R R R R R R R R POR 0 0 0 0 0 0 0 0 Bit 7~0 TMnDL:TMn 计数器低字节寄存器 bit 7~bit 0 TMn 10-bit 计数器 bit 7~bit 0 Rev.1.60 103 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 TMnDH 寄存器 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1~0 未定义,读为“0” TMnDH:TMn 计数器高字节寄存器 bit 1~bit 0 TMn 10-bit 计数器 bit 9~bit 8 TMnAL 寄存器 Bit 7 6 5 4 3 Name D7 D6 D5 D4 D3 R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 Bit 7~0 TMnAL:TMn CCRA 低字节寄存器 bit 7~bit 0 TMn 10-bit CCRA bit 7~bit 0 TMnAH 寄存器 Bit 7 6 5 4 3 Name — — — — — R/W — — — — — POR — — — — — Bit 7~2 Bit 1~0 未定义,读为“0” TMnAH:TMn CCRA 高字节寄存器 bit 1~bit 0 TMn 10-bit CCRA bit 9~bit 8 2 — — — 2 D2 R/W 0 2 — — — 1 D9 R 0 1 D1 R/W 0 1 D9 R/W 0 0 D8 R 0 0 D0 R/W 0 0 D8 R/W 0 Rev. 1.60 104 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TMnC0 寄存器 Bit Name R/W POR 7 TnPAU R/W 0 6 TnCK2 R/W 0 5 TnCK1 R/W 0 4 TnCK0 R/W 0 3 TnON R/W 0 2 TnRP2 R/W 0 1 TnRP1 R/W 0 0 TnRP0 R/W 0 Bit 7 Bit 6~4 Bit 3 Bit 2~0 TnPAU:TMn 计数器暂停控制位 0:运行 1:暂停 通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂 停条件时,TM 保持上电状态并继续耗电。当此位由低到高转换时,计数器将保 留其剩余值,直到此位再次改变为低电平,从此值开始继续计数。 TnCK2~TnCK0:选择 TMn 计数时钟位 000:fSYS/4 001:fSYS 010:fH/16 011:fH/64 100:fTBC 101:保留位 110:TCKn 上升沿时钟 111:TCKn 下降沿时钟 此三位用于选择 TM 的时钟源。选择保留时钟输入将有效地除能内部计数器。 外部引脚时钟源能被选择在上升沿或下降沿有效。fSYS 是系统时钟,fH 和 fTBC 是 其它的内部时钟源,细节方面请参考振荡器章节。 TnON:TMn 计数器 On/Off 控制位 0:Off 1:On 此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位 则除能 TM。清零此位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转 换时,内部计数器将复位清零;当此位经由高到低转换时,内部计数器将保持 其剩余值,直到此位再次改变为高电平。 若 TM 处于比较匹配输出模式时 ( 通过 TnOC 位指定 ),当 TnON 位经由低到高 的转换时,TM 输出脚将重置其初始值。 TnRP2~TnRP0:TMn CCRP 3-bit 寄存器,对应于 TMn 计数器 bit 9~bit 7 比较 器 P 匹配周期 000:1024 个 TMn 时钟周期 001:128 个 TMn 时钟周期 010:256 个 TMn 时钟周期 011:384 个 TMn 时钟周期 100:512 个 TMn 时钟周期 101:640 个 TMn 时钟周期 110:768 个 TMn 时钟周期 111:896 个 TMn 时钟周期 此三位设定内部 CCRP 3-bit 寄存器的值,然后与内部计数器的高三位进行比较。 如果 TnCCLR 位设定为 0 时,比较结果为 0 并清除内部计数器。TnCCLR 位设 为低,内部计数器在比较器 P 比较匹配发生时被重置;由于 CCRP 只与计数器 高三位比较,比较结果是 128 时钟周期的倍数。CCRP 被清零时,实际上会使 得计数器在最大值溢出。 Rev.1.60 105 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 TMnC1 寄存器 Bit Name R/W POR 7 TnM1 R/W 0 6 TnM0 R/W 0 5 TnIO1 R/W 0 4 TnIO0 R/W 0 3 TnOC R/W 0 2 1 0 TnPOL TnDPX TnCCLR R/W R/W R/W 0 0 0 Bit 7~6 Bit 5~4 Bit 3 TnM1~TnM0:选择 TMn 工作模式位 00:比较匹配输出模式 01:未定义模式 10:PWM 模式 11:定时 / 计数器模式 这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 TnM1 和 TnM0 位有任何改变前先关掉。在定时 / 计数器模式,TM 输出脚控制必须除能。 TnIO1~TnIO0:选择 TPn_0,TPn_1 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:未定义 定时 / 计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择 决定 TM 运行在哪种模式下。 在比较匹配输出模式下,TnIO1 和 TnIO0 位决定当比较器 A 比较匹配输出发生 时 TM 输出脚如何改变状态。当比较器 A 比较匹配输出发生时 TM 输出脚能设 为切换高、切换低或翻转当前状态。若此两位同时为 0 时,这个输出将不会改 变。TM 输出脚的初始值通过 TMnC1 寄存器的 TnOC 位设置取得。注意,由 TnIO1 和 TnIO0 位得到的输出电平必须与通过 TnOC 位设置的初始值不同,否 则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后, 通过 TnON 位由低到高电平的转换复位至初始值。 在 PWM 模式,TnIO1 和 TnIO0 用于决定比较匹配条件发生时怎样改变 TM 输 出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TMn 关闭时改 变 TnIO1 和 TnIO0 位的值是很有必要的。若在 TM 运行时改变 TnIO1 和 TnIO0 的值,PWM 输出的值是无法预料的。 TnOC:TPn_0,TPn_1 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还 是 PWM 模式。若 TM 处于定时 / 计数器模式,则其不受影响。在比较匹配输出 模式时,比较匹配发生前其决定 TM 输出脚的逻辑电平值。在 PWM 模式时, 其决定 PWM 信号是高有效还是低有效。 Rev. 1.60 106 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Bit 2 Bit 1 Bit 0 TnPOL:TPn_0,TPn_1 输出极性控制位 0:同相 1:反相 此位控制 TPn_0 或 TPn_1 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚同相。若 TM 处于定时 / 计数器模式时其不受影响。 TnDPX:TMn PWM 周期 / 占空比控制位 0:CCRP - 周期;CCRA - 占空比 1:CCRP - 占空比;CCRA - 周期 此位决定 CCRA 与 CCRP 寄存器哪个被用于 PWM 波形的周期和占空比控制。 TnCCLR:选择 TMn 计数器清零条件位 0:TM0 比较器 P 匹配 1:TM0 比较器 A 匹配 此位用于选择清除计数器的方法。简易型 TM 包括两个比较器 - 比较器 A 和比 较器 P。这两个比较器每个都可以用作清除内部计数器。TnCCLR 位设为高, 计数器在比较器 A 比较匹配发生时被清除;此位设为低,计数器在比较器 P 比 较匹配发生或计数器溢出时被清除。计数器溢出清除的方法仅在 CCRP 被清除 为 0 时才能生效。TnCCLR 位在 PWM 模式时未使用。 简易型 TM 工作模式 简易型 TM 有三种工作模式,即比较匹配输出模式,PWM 模式或定时 / 计数器 模式。通过设置 TMnC1 寄存器的 TnM1 和 TnM0 位选择任意工作模式。 比较匹配输出模式 为 使 TM 工 作 在 此 模 式,TMnC1 寄 存 器 中 的 TnM1 和 TnM0 位 需 要 设 置 为 “00”。当工作在该模式,一旦计数器使能并开始计数,有三种方法来清零, 分别是:计数器溢出,比较器 A 比较匹配发生和比较器 P 比较匹配发生。当 TnCCLR 位为低,有两种方法清除计数器。一种是比较器 P 比较匹配发生,另 一种是 CCRP 所有位设置为零并使得计数器溢出。此时,比较器 A 和比较器 P 的请求标志位 TnAF 和 TnPF 将分别置起。 如果 TMnC1 寄存器的 TnCCLR 位设置为高,当比较器 A 比较匹配发生时计数 器被清零。此时,即使 CCRP 寄存器的值小于 CCRA 寄存器的值,仅 TnAF 中 断请求标志产生。所以当 TnCCLR 为高时,不产生 TnPF 中断请求标志。如果 CCRA 被清零,当计数达到最大值 3FFH 时,计数器溢出,而此时不产生 TnAF 请求标志。 正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 比 较匹配发生后 TnAF 标志产生时,TM 输出脚状态改变。比较器 P 比较匹配发 生时产生的 TnPF 标志不影响 TM 输出脚。TM 输出脚状态改变方式由 TMnC1 寄 存 器 中 TnIO1 和 TnIO0 位 决 定。 当 比 较 器 A 比 较 匹 配 发 生 时,TnIO1 和 TnIO0 位决定 TM 输出脚输出高,低或翻转当前状态。TM 输出脚初始值,既 可以通过 TnON 位由低到高电平的变化设置,也可以由 TnOC 位设置。注意, 若 TnIO1 和 TnIO0 位同时为 0 时,引脚输出不变。 Rev.1.60 107 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value Counter overflow CCRP=0 CCRP > 0 TnCCLR = 0; TnM [1:0] = 00 Counter cleared by CCRP value 0x3FF CCRP CCRP > 0 Resume Counter Restart CCRA Pause Stop TnON TnPAU TnPOL CCRP Int. Flag TnPF CCRA Int. Flag TnAF Time TM O/P Pin Output pin set to initial Level Low if TnOC=0 Output Toggle with TnAF flag Here TnIO [1:0] = 11 Toggle Output select Output not affected by TnAF flag. Remains High until reset by TnON bit Output Inverts when TnPOL is high Output Pin Note TnIO [1:0] = 10 Reset to Initial value Active High Output select Output controlled by other pin-shared function 比较匹配输出模式 – TnCCLR=0 注:1. TnCCLR=0,比较器 P 匹配将清除计数器 2. TM 输出脚仅由 TnAF 标志位控制 3. 在 TnON 上升沿 TM 输出脚复位至初始值 Rev. 1.60 108 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value 0x3FF CCRA CCRP TnCCLR = 1; TnM [1:0] = 00 CCRA > 0 Counter cleared by CCRA value CCRA = 0 Counter overflow Resume CCRA=0 Pause Stop Counter Restart TnON Time TnPAU TnPOL CCRA Int. Flag TnAF CCRP Int. Flag TnPF No TnAF flag generated on CCRA overflow TM O/P Pin TnPF not generated Output pin set to initial Level Low if TnOC=0 Output Toggle with TnAF flag Here TnIO [1:0] = 11 Toggle Output select Output does not change Output not affected by TnAF flag. Remains High until reset by TnON bit Output Pin Output Inverts when TnPOL is high Note TnIO [1:0] = 10 Active High Output select Reset to Initial value Output controlled by other pin-shared function 比较匹配输出模式 – TnCCLR=1 注:1. TnCCLR=1,比较器 A 匹配将清除计数器 2. TM 输出脚仅由 TnAF 标志位控制 3. 在 TnON 上升沿 TM 输出脚复位至初始值 4. 当 TnCCLR=1 时,TnPF 标志位不会产生 Rev.1.60 109 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 PWM 输出模式 为 使 TM 工 作 在 此 模 式,TMnC1 寄 存 器 中 的 TnM1 和 TnM0 位 需 要 设 置 为 “10”。TM 的 PWM 功能在马达控制,加热控制,照明控制等方面十分有用。 给 TM 输出脚提供一个频率固定但占空比可调的信号,将产生一个有效值等于 DC 均方根的 AC 方波。 由于 PWM 波形的周期和占空比可调,其波形的选择就极其灵活。在 PWM 模 式中,TnCCLR 位不影响 PWM 操作。CCRA 和 CCRP 寄存器决定 PWM 波形, 一个用来清除内部计数器并控制 PWM 波形的频率,另一个用来控制占空比。 哪个寄存器控制频率或占空比取决于 TMnC1 寄存器的 TnDPX 位。所以 PWM 波形频率和占空比由 CCRA 和 CCRP 寄存器共同决定。 当比较器 A 或比较器 P 比较匹配发生时,将产生 CCRA 或 CCRP 中断标志。 TMnC1 寄存器中的 TnOC 位决定 PWM 波形的极性,TnIO1 和 TnIO0 位使能 PWM 输出或将 TM 输出脚置为逻辑高或逻辑低。TnPOL 位对 PWM 输出波形 的极性取反。 CTM,PWM 模式,边沿对齐模式,TnDPX=0 CCRP 001b 010b 011b 100b 101b 110b 111b 000b Period 128 256 384 512 640 768 896 1024 Duty CCRA 若 fSYS=16MHz,TM 时钟源选择 fSYS/4,CCRP=100b,CCRA=128, CTM PWM 输出频率 =(fSYS/4)/512=fSYS/2048=7.8125kHz,duty=128/512=25% 若由 CCRA 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为 100% CTM,PWM 模式,边沿对齐模式,TnDPX=1 CCRP 001b 010b 011b 100b 101b 110b 111b 000b Period CCRA Duty 128 256 384 512 640 768 896 1024 PWM 的输出周期由 CCRA 寄存器的值与 TM 的时钟共同决定,PWM 的占空比 由 CCRP 寄存器的值决定。 Rev. 1.60 110 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRP CCRA Counter cleared by CCRP TnDPX = 0; TnM [1:0] = 10 Counter Reset when TnON returns high Pause Resume Counter Stop if TnON bit low TnON Time TnPAU TnPOL CCRA Int. Flag TnAF CCRP Int. Flag TnPF TM O/P Pin (TnOC=1) TM O/P Pin (TnOC=0) PWM Duty Cycle set by CCRA PWM Period set by CCRP PWM resumes operation Output controlled by other pin-shared function Output Inverts when TnPOL = 1 PWM 模式 – TnDPX=0 注:1. TnDPX=0,CCRP 清除计数器 2. 计数器清零并设置 PWM 周期 3. 当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4. TnCCLR 位不影响 PWM 操作 Rev.1.60 111 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRA CCRP Counter cleared by CCRA TnDPX = 1; TnM [1:0] = 10 Counter Reset when TnON returns high Pause Resume Counter Stop if TnON bit low TnON Time TnPAU TnPOL CCRP Int. Flag TnPF CCRA Int. Flag TnAF TM O/P Pin (TnOC=1) TM O/P Pin (TnOC=0) PWM Duty Cycle set by CCRP PWM Period set by CCRA PWM resumes operation Output controlled by other pin-shared function Output Inverts when TnPOL = 1 PWM 模式 – TnDPX=1 注:1. TnDPX=1,CCRA 清除计数器 2. 计数器清零并设置 PWM 周期 3. 当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4. TnCCLR 位不影响 PWM 操作 Rev. 1.60 112 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 标准型 TM – STM 标准型 TM 包括 5 种工作模式,即比较匹配输出,定时 / 事件计数器,捕捉输入, 单脉冲输出和 PWM 输出模式。标准型 TM 也由外部输入脚控制并驱动一个或 两个外部输出脚。 CTM HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 名称 10-bit STM — 16-bit STM 16-bit STM 16-bit STM TM 编号 1 — 2 2 2 TM 输入引脚 TCK1 — TCK2 TCK2 TCK2 TM 输出引脚 TP1_0,TP1_1 — TP2_0,TP2_1 TP2_0,TP2_1 TP2_0,TP2_1 标准型 TM 操作 标准型 TM 有五种工作模式,即比较匹配输出模式,PWM 输出模式,单脉冲 输出模式,捕捉输入模式和定时 / 计数器模式。通过 TMnC1 寄存器的 TnM1 和 TnM0 位选择工作模式。 有两个标准型 TM,一种是 10 位宽度,另一种是 16 位宽度。核心是一个由用 户选择的内部或外部时钟源驱动的 10 位向上计数器,它还包括两个内部比较器 即比较器 A 和比较器 P。这两个比较器将计数器的值与 CCRP 和 CCRA 寄存器 中的值进行比较。CCRP 是 3 位或 8 位宽度,与计数器的高 3 位或 8 位比较; 而 CCRA 是 10 位或 16 位的,与计数器的所有位比较。 通过应用程序改变 10 或 16 位计数器值的唯一方法是使 TnON 位发生上升沿跳 变清除计数器。此外,计数器溢出或比较匹配也会自动清除计数器。上述条件 发生时,通常情况会产生 TM 中断信号。标准型 TM 可工作在不同的模式,可 由包括来自输入脚的不同时钟源驱动,也可以控制输出脚。所有工作模式的设 定都是通过设置相关寄存器来实现的。 Rev.1.60 113 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 标准型 TM 寄存器介绍 标准型 TM 的所有工作模式由一系列寄存器控制。一对只读寄存器用来存放 10 或 16 位计数器的值,一对读 / 写寄存器存放 10 或 16 位 CCRA 的值。剩下两个 控制寄存器设置工作模式,以及 CCRP 的 3 或 8 个位。 CCRP 3 o r 8 - b it C o m p a r a to r P C o m p a ra to r P M a tc h T n P F In te rru p t fS Y S /4 000 fS Y S 001 fH /1 6 010 fH /6 4 011 fT B C 100 R e s e rv e d 101 110 TC Kn 111 TnO N TnP A U TnC K 2~TnC K 0 b7~b9 orb8~b15 TnO C 1 0 o r 1 6 - b it C o u n t- u p C o u n te r b0~b9 or b0~b15 C o u n te r C le a r 0 1 TnC C LR O u tp u t C o n tro l P o la r ity C o n tro l T P n P in In p u t/O u tp u t TnM 1,TnM 0 T n IO 1 , T n IO 0 TnP O L 1 0 o r 1 6 - b it C o m p a ra to r A CCRA C o m p a ra to r A M a tc h T n IO 1 , T n IO 0 E dge D e te c to r 标准型 TM 框图 T n A F In te rru p t TP n_0 TP n_1 Name TM1C0 TM1C1 TM1DL TM1DH TM1AL TM1AH Bit 7 T1PAU T1M1 D7 — D7 — Bit 6 T1CK2 T1M0 D6 — D6 — Bit 5 T1CK1 T1IO1 D5 — D5 — Bit 4 T1CK0 T1IO0 D4 — D4 — Bit 3 T1ON T1OC D3 — D3 — Bit 2 T1RP2 T1POL D2 — D2 — 10-bit 标准型 TM 寄存器列表 (HT66F20) Bit 1 T1RP1 T1DPX D1 D9 D1 D9 Bit 0 T1RP0 T1CCLR D0 D8 D0 D8 Name TM2C0 TM2C1 TM2DL TM2DH TM2AL TM2AH TM2RP Bit 7 T2PAU T2M1 D7 D15 D7 D15 D7 Bit 6 T2CK2 T2M0 D6 D14 D6 D14 D6 Bit 5 T2CK1 T2IO1 D5 D13 D5 D13 D5 Bit 4 T2CK0 T2IO0 D4 D12 D4 D12 D4 Bit 3 T2ON T2OC D3 D11 D3 D11 D3 Bit 2 — T2POL D2 D10 D2 D10 D2 Bit 1 — T2DPX D1 D9 D1 D9 D1 16-bit 标准型 TM 寄存器列表 (HT66F40/HT66F50/HT66F60) Bit 0 — T2CCLR D0 D8 D0 D8 D0 Rev. 1.60 114 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 10-bit 标准型 TM 寄存器列表 – HT66F20 ● TM1C0 寄存器 – 10-bit STM Bit Name R/W POR 7 T1PAU R/W 0 6 T1CK2 R/W 0 5 T1CK1 R/W 0 4 T1CK0 R/W 0 3 T1ON R/W 0 2 T1RP2 R/W 0 1 T1RP1 R/W 0 0 T1RP0 R/W 0 Bit 7 Bit 6~4 Bit 3 Bit 2~0 T1PAU:TM1 计数器暂停控制位 0:运行 1:暂停 通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂 停条件时,TM 保持上电状态并继续耗电。当此位由低到高转变时,计数器将保 留其剩余值,直到此位再次改变为低电平,并从此值开始继续计数。 T1CK2~T1CK0:选择 TM1 计数器时钟位 000:fSYS/4 001:fSYS 010:fH/16 011:fH/64 100:fTBC 101:保留位 110:TCK1 上升沿时钟 111:TCK1 下降沿时钟 此三位用于选择 TM 的时钟源。选择保留时钟输入将有效地除能内部计数器。 外部引脚时钟源能被选择在上升沿或下降沿有效。fSYS 是系统时钟,fH 和 fTBC 是 其它的内部时钟源,细节方面请参考振荡器章节。 T1ON:TM1 计数器 On/Off 控制位 0:Off 1:On 此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位 则除能 TM。清零此位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转 换时,内部计数器将复位清零;当此位经由高到低转换时,内部计数器将保持 其剩余值,直到此位再次改变为高电平。 若 TM 处于比较匹配输出模式 ( 通过 T1OC 位指定 ),当 T1ON 位经由低到高的 转变时,TM 输出脚将重置其初始值。 T1RP2~T1RP0:TM1 CCRP 3-bit 寄存器,对应于 TM1 计数器 bit 9~bit 7 比较 器 P 匹配周期 000:1024 个 TM1 时钟周期 001:128 个 TM1 时钟周期 010:256 个 TM1 时钟周期 011:384 个 TM1 时钟周期 100:512 个 TM1 时钟周期 101:640 个 TM1 时钟周期 110:768 个 TM1 时钟周期 111:896 个 TM1 时钟周期 此三位设定内部 CCRP 3-bit 寄存器的值,然后与内部计数器的高三位进行比较。 如果 T1CCLR 位设定为 0 时,比较结果为 0 并清除内部计数器。T1CCLR 位设 为低,内部计数器在比较器 P 比较匹配发生时被重置;由于 CCRP 只与计数器 高三位比较,比较结果是 128 时钟周期的倍数。CCRP 被清零时,实际上会使 得计数器在最大值溢出。 Rev.1.60 115 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TM1C1 寄存器 – 10-bit STM Bit Name R/W POR 7 T1M1 R/W 0 6 T1M0 R/W 0 5 T1IO1 R/W 0 4 T1IO0 R/W 0 3 T1OC R/W 0 2 1 0 T1POL T1DPX T1CCLR R/W R/W R/W 0 0 0 Bit 7~6 Bit 5~4 Bit 3 T1M1~T1M0:选择 TM1 工作模式位 00:比较匹配输出模式 01:捕捉输入模式 10:PWM 模式或单脉冲输出模式 11:定时 / 计数器模式 这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 T1M1 和 T1M0 位有任何改变前先关掉。在定时 / 计数器模式,TM 输出脚控制必须除能。 T1IO1~T1IO0:选择 TP1_0,TP1_1 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式 / 单脉冲输出模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:单脉冲输出 捕捉输入模式 00:在 TP1_0,TP1_1 上升沿输入捕捉 01:在 TP1_0,TP1_1 下降沿输入捕捉 10:在 TP1_0,TP1_1 双沿输入捕捉 11:输入捕捉除能 定时 / 计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择 决定 TM 运行在哪种模式下。 在比较匹配输出模式下,T1IO1 和 T1IO0 位决定当从比较器 A 比较匹配输出发 生时 TM 输出脚如何改变状态。当从比较器 A 比较匹配输出发生时 TM 输出脚 能设为切换高、切换低或翻转当前状态。若此两位同时为 0 时,这个输出将不 会改变。TM 输出脚的初始值通过 TM1C1 寄存器的 T1OC 位设置取得。注意, 由 T1IO1 和 T1IO0 位得到的输出电平必须与通过 T1OC 位设置的初始值不同, 否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后, 通过 T1ON 位由低到高电平的转换复位至初始值。 在 PWM 模式,T1IO1 和 T1IO0 用于决定比较匹配条件发生时怎样改变 TM 输 出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TM1 关闭时改 变 T1IO1 和 T1IO0 位的值是很有必要的。若在 TM 运行时改变 T1IO1 和 T1IO0 的值,PWM 输出的值是无法预料的。 T1OC:TP1_0,TP1_1 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式 / 单脉冲输出模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还 是 PWM 模式 / 单脉冲输出模式。若 TM 处于定时 / 计数器模式,则其不受影响。 在比较匹配输出模式时,比较匹配发生前其决定 TM 输出脚的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 Rev. 1.60 116 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Bit 2 Bit 1 Bit 0 T1POL:TP1_0,TP1_1 输出极性控制位 0:同相 1:反相 此位控制 TP1_0 或 TP1_1 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚同相。若 TM 处于定时 / 计数器模式时其不受影响。 T1DPX:TM1 PWM 周期 / 占空比控制位 0:CCRP - 周期;CCRA - 占空比 1:CCRP - 占空比;CCRA - 周期 此位决定 CCRA 与 CCRP 寄存器哪个被用于 PWM 波形的周期和占空比控制。 T1CCLR:选择 TM1 计数器清零条件位 0:TM1 比较器 P 匹配 1:TM1 比较器 A 匹配 此位用于选择清除计数器的方法。标准型 TM 包括两个比较器 - 比较器 A 和比 较器 P。这两个比较器每个都可以用作清除内部计数器。T1CCLR 位设为高, 计数器在比较器 A 比较匹配发生时被清除;此位设为低,计数器在比较器 P 比 较匹配发生或计数器溢出时被清除。计数器溢出清除的方法仅在 CCRP 被清除 为 0 时才能生效。T1CCLR 位在 PWM,单脉冲或输入捕捉模式时未使用。 ● TM1DL 寄存器 – 10-bit STM Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R R R R R R R R POR 0 0 0 0 0 0 0 0 Bit 7~0 TM1DL:TM1 计数器低字节寄存器 bit 7~bit 0 TM1 10-bit 计数器 bit 7~bit 0 ● TM1DH 寄存器 – 10-bit STM Bit 7 6 5 4 3 2 1 0 Name — — — — — — D9 D8 R/W — — — — — — R R POR — — — — — — 0 0 Bit 7~2 Bit 1~0 未定义,读为“0” TM1DH:TM1 计数器高字节寄存器 bit 1~bit 0 TM1 10-bit 计数器 bit 9~bit 8 ● TM1AL 寄存器 – 10-bit STM Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7~0 TM1AL:TM1 CCRA 低字节寄存器 bit 7~bit 0 TM1 10-bit CCRA bit 7~bit 0 Rev.1.60 117 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TM1AH 寄存器 – 10-bit STM Bit 7 6 5 4 3 2 1 0 Name — — — — — — D9 D8 R/W — — — — — — R/W R/W POR — — — — — — 0 0 Bit 7~2 Bit 1~0 未定义,读为“0” TM1AH:TM1 CCRA 高字节寄存器 bit 1~bit 0 TM1 10-bit CCRA bit 9~bit 8 16-bit 标准型 TM 寄存器列表 – HT66F40/HT66F50/HT66F60 ● TM2C0 寄存器 – 16-bit STM Bit Name R/W POR Bit 7 Bit 6~4 Bit 3 Bit 2~0 7 6 5 4 3 2 1 0 T2PAU T2CK2 T2CK1 T2CK0 T2ON — — — R/W R/W R/W R/W R/W — — — 0 0 0 0 0 — — — T2PAU:TM2 计数器暂停控制位 0:运行 1:暂停 通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂 停条件时,TM 保持上电状态并继续耗电。当此位由低到高转换时,计数器将保 留其剩余值,直到此位再次改变为低电平,并从此值开始继续计数。 T2CK2,T2CK1,T2CK0:选择 TM2 计数时钟位 000:fSYS/4 001:fSYS 010:fH/16 011:fH/64 100:fTBC 101:保留位 110:TCK2 上升沿时钟 111:TCK2 下降沿时钟 此三位用于选择 TM 的时钟源。选择保留时钟输入将有效地除能内部计数器。 外部引脚时钟源能被选择在上升沿或下降沿有效。fSYS 是系统时钟,fH 和 fTBC 是 其它的内部时钟源,细节方面请参考振荡器章节。 T2ON:TM2 计数器 On/Off 控制位 0:Off 1:On 此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位 则除能 TM。清零此位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转 换时,内部计数器将保持其剩余值,直到此位再次改变为高电平。 若 TM 处于比较匹配输出模式时 ( 通过 T2OC 位指定 ),当 T2ON 位经由低到高 的转换时,TM 输出脚将重置其初始值。 未定义,读为“0” Rev. 1.60 118 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TM2C1 寄存器 – 16-bit STM Bit Name R/W POR 7 T2M1 R/W 0 6 T2M0 R/W 0 5 T2IO1 R/W 0 4 T2IO0 R/W 0 3 T2OC R/W 0 2 1 0 T2POL T2DPX T2CCLR R/W R/W R/W 0 0 0 Bit 7~6 Bit 5~4 Bit 3 T2M1~T2M0:选择 TM2 工作模式位 00:比较匹配输出模式 01:捕捉输入模式 10:PWM 模式或单脉冲输出模式 11:定时 / 计数器模式 这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 T2M1 和 T2M0 位有任何改变前先关掉。在定时 / 计数器模式,TM 输出脚控制必须除能。 T2IO1~T2IO0:选择 TP2_0,TP2_1 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式 / 单脉冲输出模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:单脉冲输出 捕捉输入模式 00:在 TP2_0,TP2_1 上升沿输入捕捉 01:在 TP2_0,TP2_1 下降沿输入捕捉 10:在 TP2_0,TP2_1 双沿输入捕捉 11:输入捕捉除能 定时 / 计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择 决定 TM 运行在哪种模式下。 在比较匹配输出模式下,T2IO1 和 T2IO0 位决定当从比较器 A 比较匹配输出发 生时 TM 输出脚如何改变状态。当从比较器 A 比较匹配输出发生时 TM 输出脚 能设为切换高、切换低或翻转当前状态。若此两位同时为 0 时,这个输出将不 会改变。TM 输出脚的初始值通过 TM2C1 寄存器的 T2OC 位设置取得。注意, 由 T2IO1 和 T2IO0 位得到的输出电平必须与通过 T2OC 位设置的初始值不同, 否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后, 通过 T2ON 位由低到高电平的转换复位至初始值。 T2OC:TP2_0,TP2_1 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式 / 单脉冲输出模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还 是 PWM 模式 / 单脉冲输出模式。若 TM 处于定时 / 计数器模式,则其不受影响。 在比较匹配输出模式时,比较匹配发生前其决定 TM 输出脚的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 Rev.1.60 119 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Bit 2 Bit 1 Bit 0 T2POL:TP2_0,TP2_1 输出极性控制位 0:同相 1:反相 此位控制 TP2_0 或 TP2_1 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚同相。若 TM 处于定时 / 计数器模式时其不受影响。 T2DPX:TM2 PWM 周期 / 占空比控制位 0:CCRP - 周期;CCRA - 占空比 1:CCRP - 占空比;CCRA - 周期 此位决定 CCRA 与 CCRP 寄存器哪个被用于 PWM 波形的周期和占空比控制。 T2CCLR:选择 TM2 计数器清零条件位 0:TM2 比较器 P 匹配 1:TM2 比较器 A 匹配 此位用于选择清除计数器的方法。标准型 TM 包括两个比较器 - 比较器 A 和比 较器 P。这两个比较器每个都可以用作清除内部计数器。T2CCLR 位设为高, 计数器在比较器 A 比较匹配发生时被清除;此位设为低,计数器在比较器 P 比 较匹配发生或计数器溢出时被清除。计数器溢出清除的方法仅在 CCRP 被清除 为 0 时才能生效。T2CCLR 位在 PWM,单脉冲或输入捕捉模式时未使用。 ● TM2DL 寄存器 – 16-bit STM Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R R R R R R R R POR 0 0 0 0 0 0 0 0 Bit 7~0 TM2DL:TM2 计数器低字节寄存器 bit 7~bit 0 TM2 16-bit 计数器 bit 7~bit 0 ● TM2DH 寄存器 – 16-bit STM Bit 7 6 5 4 3 2 1 0 Name D15 D14 D13 D12 D11 D10 D9 D8 R/W R R R R R R R R POR 0 0 0 0 0 0 0 0 Bit 7~0 TM2DH:TM2 计数器高字节寄存器 bit 7~bit 0 TM2 16-bit 计数器 bit 15~bit 8 ● TM2AL 寄存器 – 16-bit STM Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7~0 TM2AL:TM2 CCRA 低字节寄存器 bit 7~bit 0 TM2 16-bit CCRA bit 7~bit 0 Rev. 1.60 120 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TM2AH 寄存器 – 16-bit STM Bit 7 6 5 4 3 Name D15 D14 D13 D12 D11 R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 Bit 7~0 TM2AH:TM2 CCRA 高字节寄存器 bit 7~bit 0 TM2 16-bit CCRA bit 15~bit 8 ● TM2RP 寄存器 – 16-bit STM 2 D10 R/W 0 1 D9 R/W 0 0 D8 R/W 0 Bit Name R/W POR Bit 7~0 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 TM2RP:TM2 CCRP 高字节寄存器 bit 7~bit 0 TM2 CCRP 8 位寄存器,与 TM2 计数器 bit 15~bit 8 比较。比较器 P 匹配周期 0:65536 个 TM2 时钟周期 1~255:256×(1~255) 个 TM2 时钟周期 此八位设定内部 CCRP 8-bit 寄存器的值,然后与内部计数器的高八位进行比较。 如果 T2CCLR 位设为 0 时,比较结果为 0 并清除内部计数器。T2CCLR 位设为低, CCRP 比较匹配结果将重置内部计数器。由于 CCRP 只与计数器高八位比较, 比较结果是 256 时钟周期的倍数。CCRP 被清零时,实际上会使得计数器在最 大值溢出。 标准型 TM 工作模式 标准型 TM 有五种工作模式,即比较匹配输出模式,PWM 输出模式,单脉 冲输出模式,捕捉输入模式或定时 / 计数器模式。通过设置 TMnC1 寄存器的 TnM1 和 TnM0 位选择任意模式。 比较匹配输出模式 为 使 TM 工 作 在 此 模 式,TMnC1 寄 存 器 中 的 TnM1 和 TnM0 位 需 要 设 置 为 “00”。当工作在该模式,一旦计数器使能并开始计数,有三种方法来清零, 分别是:计数器溢出,比较器 A 比较匹配发生和比较器 P 比较匹配发生。当 TnCCLR 位为低,有两种方法清除计数器。一种是比较器 P 比较匹配发生,另 一种是 CCRP 所有位设置为零并使得计数器溢出。此时,比较器 A 和比较器 P 的请求标志位 TnAF 和 TnPF 将分别置位。 如果 TMnC1 寄存器的 TnCCLR 位设置为高,当比较器 A 比较匹配发生时计 数器被清零。此时,即使 CCRP 寄存器的值小于 CCRA 寄存器的值,仅产生 TnAF 中断请求标志。所以当 TnCCLR 为高时,不会产生 TnPF 中断请求标志。 在比较匹配输出模式下,CCRA 不能设为“0”。 正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 比 较匹配发生后 TnAF 标志产生时,TM 输出脚状态改变。比较器 P 比较匹配发 生时产生的 TnPF 标志不影响 TM 输出脚。TM 输出脚状态改变方式由 TMnC1 寄 存 器 中 TnIO1 和 TnIO0 位 决 定。 当 比 较 器 A 比 较 匹 配 发 生 时,TnIO1 和 TnIO0 位决定 TM 输出脚输出高,低或翻转当前状态。TM 输出脚初始值,既 可以通过 TnON 位由低到高电平的变化设置,也可以由 TnOC 位设置。注意, 若 TnIO1 和 TnIO0 位同时为 0 时,引脚输出不变。 Rev.1.60 121 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value Counter overflow CCRP=0 CCRP > 0 TnCCLR = 0; TnM [1:0] = 00 Counter cleared by CCRP value 0x3FF CCRP CCRP > 0 Resume Counter Restart CCRA Pause Stop TnON TnPAU TnPOL CCRP Int. Flag TnPF CCRA Int. Flag TnAF Time TM O/P Pin Output pin set to initial Level Low if TnOC=0 Output Toggle with TnAF flag Here TnIO [1:0] = 11 Toggle Output select Output not affected by TnAF flag. Remains High until reset by TnON bit Output Inverts when TnPOL is high Output Pin Note TnIO [1:0] = 10 Reset to Initial value Active High Output select Output controlled by other pin-shared function 比较匹配输出模式 – TnCCLR=0 注:1. TnCCLR=0,比较器 P 匹配将清除计数器 2. TM 输出脚仅由 TnAF 标志位控制 3. 在 TnON 上升沿 TM 输出脚复位至初始值 Rev. 1.60 122 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value 0x3FF CCRA CCRP TnCCLR = 1; TnM [1:0] = 00 CCRA > 0 Counter cleared by CCRA value CCRA = 0 Counter overflow Resume CCRA=0 Pause Stop Counter Restart TnON Time TnPAU TnPOL CCRA Int. Flag TnAF CCRP Int. Flag TnPF No TnAF flag generated on CCRA overflow TM O/P Pin TnPF not generated Output pin set to initial Level Low if TnOC=0 Output Toggle with TnAF flag Here TnIO [1:0] = 11 Toggle Output select Output does not change Output not affected by TnAF flag. Remains High until reset by TnON bit Output Pin Output Inverts when TnPOL is high Note TnIO [1:0] = 10 Active High Output select Reset to Initial value Output controlled by other pin-shared function 比较匹配输出模式 – TnCCLR=1 注:1. TnCCLR=1,比较器 A 匹配将清除计数器 2. TM 输出脚仅由 TnAF 标志位控制 3. 在 TnON 上升沿 TM 输出脚复位至初始值 4. 当 TnCCLR=1 时,不会产生 TnPF 标志 Rev.1.60 123 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 定时 / 计数器模式 为使 TM 工作在此模式,TMnC1 寄存器中的 TnM1 和 TnM0 位需要设置为“11”。 定时 / 计数器模式与比较输出模式操作方式相同,并产生同样的中断请求标志。 不同的是,在定时 / 计数器模式下 TM 输出脚未使用。因此,比较匹配输出模 式中的描述和时序图可以适用于此功能。该模式中未使用的 TM 输出脚用作普 通 I/O 脚或其它功能。 PWM 输出模式 为 使 TM 工 作 在 此 模 式,TMnC1 寄 存 器 中 的 TnM1 和 TnM0 位 需 要 设 置 为 “10”,且 TnIO1 和 TnIO0 位也需要设置为“10”。TM 的 PWM 功能在马达 控制,加热控制,照明控制等方面十分有用。给 TM 输出脚提供一个频率固定 但占空比可调的信号,将产生一个有效值等于 DC 均方根的 AC 方波。 由于 PWM 波形的周期和占空比可调,其波形的选择就极其灵活。在 PWM 模 式中,TnCCLR 位不影响 PWM 周期。CCRA 和 CCRP 寄存器决定 PWM 波形, 一个用来清除内部计数器并控制 PWM 波形的频率,另一个用来控制占空比。 哪个寄存器控制频率或占空比取决于 TMnC1 寄存器的 TnDPX 位。所以 PWM 波形由 CCRA 和 CCRP 寄存器共同决定。 当比较器 A 或比较器 P 比较匹配发生时,将产生 CCRA 或 CCRP 中断标志。 TMnC1 寄存器中的 TnOC 位决定 PWM 波形的极性,TnIO1 和 TnIO0 位使能 PWM 输出或将 TM 输出脚置为逻辑高或逻辑低。TnPOL 位对 PWM 输出波形 的极性取反。 10-bit STM,PWM 模式,边沿对齐模式,TnDPX=0 CCRP 001b 010b 011b 100b 101b 110b 111b 000b Period 128 256 384 512 640 768 896 1024 Duty CCRA 若 fSYS=16MHz,TM 时钟源选择 fSYS/4,CCRP=100b,CCRA=128, STM PWM 输出频率 =(fSYS/4)/512=fSYS/2048=7.8125kHz,duty=128/512=25% 若由 CCRA 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为 100%。 Rev. 1.60 124 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 10-bit STM,PWM 模式,边沿对齐模式,TnDPX=1 CCRP 001b 010b 011b 100b 101b 110b 111b 000b Period CCRA Duty 128 256 384 512 640 768 896 1024 PWM 的输出周期由 CCRA 寄存器的值与 TM 的时钟共同决定,PWM 的占空比 由 CCRP 寄存器的值决定。 16-bit STM,PWM 模式,边沿对齐模式,TnDPX=0 CCRP Period Duty 1~255 CCRP×256 CCRA 0 65536 若 fSYS=16MHz,TM 时钟源选择 fSYS/4,CCRP=2,CCRA=128, STM PWM 输出频率 =(fSYS/4)/(2×256)=fSYS/2048=7.8125kHz, duty=128/(2×256)=25% 若由 CCRA 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为 100%。 16-bit STM,PWM 模式,边沿对齐模式,TnDPX=1 CCRP Period Duty 1~255 CCRA CCRP×256 0 65536 PWM 的输出周期由 CCRA 寄存器的值与 TM 的时钟共同决定,PWM 的占空比 由 CCRP×256 ( 除了 CCRP 为“0”外 ) 的值决定。 Rev.1.60 125 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRP CCRA Counter cleared by CCRP TnDPX = 0; TnM [1:0] = 10 Counter Reset when TnON returns high Pause Resume Counter Stop if TnON bit low TnON Time TnPAU TnPOL CCRA Int. Flag TnAF CCRP Int. Flag TnPF TM O/P Pin (TnOC=1) TM O/P Pin (TnOC=0) PWM Duty Cycle set by CCRA PWM Period set by CCRP PWM resumes operation Output controlled by other pin-shared function Output Inverts when TnPOL = 1 PWM 模式 – TnDPX=0 注:1. TnDPX=0,CCRP 清除计数器 2. 计数器清零并设置 PWM 周期 3. 当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4. TnCCLR 位不影响 PWM 操作 Rev. 1.60 126 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRA CCRP Counter cleared by CCRA TnDPX = 1; TnM [1:0] = 10 Pause Resume Counter Reset when TnON returns high Counter Stop if TnON bit low TnON Time TnPAU TnPOL CCRP Int. Flag TnPF CCRA Int. Flag TnAF TM O/P Pin (TnOC=1) TM O/P Pin (TnOC=0) PWM Duty Cycle set by CCRP PWM Period set by CCRA PWM resumes operation Output controlled by other pin-shared function Output Inverts when TnPOL = 1 PWM 模式 – TnDPX=1 注:1. TnDPX=1,CCRA 清除计数器 2. 计数器清零并设置 PWM 周期 3. 当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4. TnCCLR 位不影响 PWM 操作 Rev.1.60 127 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 单脉冲模式 为 使 TM 工 作 在 此 模 式,TMnC1 寄 存 器 中 的 TnM1 和 TnM0 位 需 要 设 置 为 “10”,同时 TnIO1 和 TnIO0 位需要设置为“11”。正如模式名所言,单脉冲 输出模式,在 TM 输出脚将产生一个脉冲输出。 脉冲输出可以通过应用程序控制 TnON 位由低到高的转变来触发。而处于单脉 冲模式时,TnON 位在 TCKn 脚自动由低转变为高,进而初始化单脉冲输出状 态。当 TnON 位转变为高电平时,计数器将开始运行,并产生脉冲前沿。当脉 冲有效时 TnON 位保持高电平。通过应用程序使 TnON 位清零或比较器 A 比较 匹配发生时,产生脉冲下降沿。 S /W C o m m a n d S E T "T n O N " or T C K n P in T r a n s itio n L e a d in g E d g e T n O N b it 0® 1 T r a ilin g E d g e T n O N b it 1® 0 S /W C o m m a n d C L R "T n O N " or C C R A M a tc h C o m p a re T M n O u tp u t P in Counter Value CCRA CCRP P u ls e W id th = C C R A V a lu e 单脉冲产生示意图 Counter stopped by CCRA TnM [1:0] = 10 ; TnIO [1:0] = 11 Counter Reset when TnON returns high Resume Pause Counter Stops by software TnON TCKn pin TnPAU Software Cleared by Trigger CCRA match Auto. set by TCKn pin Software Trigger TCKn pin Trigger TnPOL CCRP Int. Flag TnPF CCRA Int. Flag TnAF No CCRP Interrupts generated Time Software Trigger Software Clear Software Trigger TM O/P Pin (TnOC=1) TM O/P Pin (TnOC=0) Pulse Width set by CCRA 单脉冲模式 注:1. 通过 CCRA 匹配停止计数器 2. CCRP 未使用 3. 通过 TCKn 脚或设置 TnON 位为高来触发脉冲 4. TCKn 脚有效沿会自动置位 TnON 5. 单脉冲模式中,TnIO[1:0] 需置位“11”,且不能更改。 Output Inverts when TnPOL = 1 Rev. 1.60 128 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 然而,比较器 A 比较匹配发生时,会自动清除 TnON 位并产生单脉冲输出下降 沿。CCRA 的值通过这种方式控制脉冲宽度。比较器 A 比较匹配发生时,也会 产生 TM 中断。TnON 位在计数器重启时会发生由低到高的转变,此时计数器 才复位至零。在单脉冲模式中,CCRP 寄存器,TnCCLR 和 TnDPX 位未使用。 捕捉输入模式 为 使 TM 工 作 在 此 模 式,TMnC1 寄 存 器 中 的 TnM1 和 TnM0 位 需 要 设 置 为 “01”。此模式使能外部信号捕捉并保存内部计数器当前值,因此被用于诸如 脉冲宽度测量的应用中。TPn_0 或 TPn_1 脚上的外部信号,通过设置 TMnC1 寄存器的 TnIO1 和 TnIO0 位选择有效边沿类型,即上升沿,下降沿或双沿有效。 计数器在 TnON 位由低到高转变时启动并通过应用程序初始化。 当 TPn_0 或 TPn_1 脚出现有效边沿转换时,计数器当前值被锁存到 CCRA 寄存 器,并产生 TM 中断。不考虑 TPn_0 或 TPn_1 引脚事件,计数器继续工作直到 TnON 位发生下降沿跳变。当 CCRP 比较匹配发生时计数器复位至零;CCRP 的值通过这种方式控制计数器的最大值。当比较器 P CCRP 比较匹配发生时, 也会产生 TM 中断。记录 CCRP 溢出中断信号的值可以测量脉宽。通过设置 TnIO1 和 TnIO0 位选择 TPn_0 或 TPn_1 引脚为上升沿,下降沿或双沿有效。不 考虑 TPn_0 或 TPn_1 引脚事件,如果 TnIO1 和 TnIO0 位设置为高,不会产生 捕捉操作,但计数器继续运行。 当 TPn_0 或 TPn_1 引脚与其它功能共用,TM 工作在输入捕捉模式时需多加注 意。这是因为如果引脚被设为输出,那么该引脚上的任何电平转变都可能执行 输入捕捉操作。TnCCLR 和 TnDPX 位在此模式中未使用。 Rev.1.60 129 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRP YY XX Counter cleared by CCRP TnON TnPAU Active edge TM capture pin TPn_x Active edge Active edge CCRA Int. Flag TnAF CCRP Int. Flag TnPF CCRA Value XX YY XX TnIO [1:0] Value 00 – Rising edge 01 – Falling edge 10 – Both edges TnM [1:0] = 01 Counter Counter Stop Reset Resume Pause Time YY 11 – Disable Capture 捕捉输入模式 注:1. TnM1,TnM0=01 并通过 TnIO1 和 TnIO0 位设置有效边沿 2. TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRA 中 3. TnCCLR 位未使用 4. 无输出功能 – TnOC 和 TnPOL 位未使用 5. 计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大 Rev. 1.60 130 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 增强型 TM – ETM 增强型 TM 包括 5 种工作模式,即比较匹配输出,定时 / 事件计数器,捕捉输入, 单脉冲输出和 PWM 输出模式。增强型 TM 也由外部输入脚控制并驱动三个或 四个外部输出脚。 CTM 名称 TM 编号 TM 输入引脚 TM 输出引脚 HT66F20 — — — — HT66F30 10-bit ETM 1 TCK1 TP1A,TP1B_0,TP1B_1 HT66F40 10-bit ETM 1 TCK1 TP1A,TP1B_0,TP1B_1,TP1B_2 HT66F50 10-bit ETM 1 TCK1 TP1A,TP1B_0,TP1B_1,TP1B_2 HT66F60 10-bit ETM 1 TCK1 TP1A,TP1B_0,TP1B_1,TP1B_2 增强型 TM 操作 增强型 TM 核心是一个由用户选择的内部或外部时钟源驱动的 10 位向上 / 向下 计数器,它还包括三个内部比较器即比较器 A,比较器 B 和比较器 P。这三个 比较器将计数器的值与 CCRA,CCRB 和 CCRP 寄存器中的值进行比较。CCRP 是 3 位的,与计数器的高 3 位比较;而 CCRA 和 CCRB 是 10 位的,与计数器 的所有位比较。 通过应用程序改变 10 位计数器值的唯一方法是使 TnON 位发生上升沿跳变清除 计数器。此外,计数器溢出或比较匹配也会自动清除计数器。上述条件发生时, 通常情况会产生 TM 中断信号。增强型 TM 可工作在不同的模式,可由包括来 自输入脚的不同时钟源驱动,也可以控制输出脚。所有工作模式的设定都是通 过设置相关寄存器来实现的。 Rev.1.60 131 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 CCRP 3 - b it C o m p a r a to r P C o m p a ra to r P M a tc h T n P F In te rru p t fS Y S /4 000 fS Y S 001 fH /1 6 010 fH /6 4 011 fT B C 100 R e s e rv e d 101 TC Kn 110 TnO N 111 TnP A U TnC K 2~TnC K 0 b7~b9 TnA O C 1 0 - b it U p /D o w n C o u n te r b0~b9 C o u n te r C le a r 0 1 TnC C LR O u tp u t C o n tro l P o la r ity C o n tro l T P n A P in In p u t/O u tp u t TnA M 1,TnA M 0 TnA P O L T n A IO 1 , T n A IO 0 1 0 - b it C o m p a ra to r A CCRA C o m p a ra to r A M a tc h TnA F In te rru p t T n A IO 1 , T n A IO 0 E dge D e te c to r TnB O C 1 0 - b it C o m p a ra to r B CCRB C o m p a ra to r B M a tc h TnB F In te rru p t E dge D e te c to r O u tp u t C o n tro l P o la r ity C o n tro l TnB M 1,TnB M 0 TnB P O L T n B IO 1 , T n B IO 0 T P n B P in In p u t/O u tp u t TP nA T P n B -0 T P n B -1 T P n B -2 T n IO 1 , T n IO 0 增强型 TM 方框图 增强型 TM 寄存器介绍 增强型 TM 的所有操作由一系列寄存器控制。一对只读寄存器用来存放 10 位计 数器的值,两对读 / 写寄存器存放 10 位 CCRA 和 CCRB 的值。剩下三个控制 寄存器用来设置不同的操作和控制模式,以及 CCRP 的 3 个位。 Name TM1C0 TM1C1 TM1C2 TM1DL TM1DH TM1AL TM1AH TM1BL TM1BH Bit 7 T1PAU T1AM1 T1BM1 D7 — D7 — D7 — Bit 6 T1CK2 T1AM0 T1BM0 D6 — D6 — D6 — Bit 5 T1CK1 T1AIO1 T1BIO1 D5 — D5 — D5 — Bit 4 T1CK0 T1AIO0 T1BIO0 D4 — D4 — D4 — Bit 3 T1ON T1AOC T1BOC D3 — D3 — D3 — Bit 2 Bit 1 Bit 0 T1RP2 T1RP1 T1RP0 T1APOL T1CDN T1CCLR T1BPOL T1PWM1 T1PWM0 D2 D1 D0 — D9 D8 D2 D1 D0 — D9 D8 D2 D1 D0 — D9 D8 10-bit 增强型 TM 寄存器列表 (ETM 为 TM1) Rev. 1.60 132 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 10-bit 增强型 TM 寄存器列表 – HT66F30/HT66F40/HT66F50/HT66F60 ● TM1C0 寄存器 – 10-bit ETM Bit Name R/W POR 7 T1PAU R/W 0 6 T1CK2 R/W 0 5 T1CK1 R/W 0 4 T1CK0 R/W 0 3 T1ON R/W 0 2 T1RP2 R/W 0 1 T1RP1 R/W 0 0 T1RP0 R/W 0 Bit 7 Bit 6~4 Bit 3 Bit 2~0 T1PAU:TM1 计数器暂停控制位 0:运行 1:暂停 通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂 停条件时,TM 保持上电状态并继续耗电。当此位由低到高转变时,计数器将保 留其剩余值,直到此位再次改变为低电平,并从此值开始继续计数。 T1CK2~T1CK0:选择 TM1 计数时钟位 000:fSYS/4 001:fSYS 010:fH/16 011:fH/64 100:fTBC 101:保留位 110:TCK1 上升沿时钟 111:TCK1 下降沿时钟 此三位用于选择 TM 的时钟源。选择保留时钟输入将有效地除能内部计数器。 外部引脚时钟源能被选择在上升沿或下降沿有效。fSYS 是系统时钟,fH 和 fTBC 是 其它的内部时钟源,细节方面请参考振荡器章节。 T1ON:TM1 计数器 On/Off 控制位 0:Off 1:On 此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位 则除能 TM。清零此位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转 换时,内部计数器将复位清零;当此位经由高到低转换时,内部计数器将保持 其剩余值,直到此位再次改变为高电平。 若 TM 处于比较匹配输出模式时 ( 通过 T1OC 位指定 ),当 T1ON 位经由低到高 的转变时,TM 输出脚将重置其初始值。 T1RP2~T1RP0:TM1 CCRP 3-bit 寄存器,对应于 TM1 计数器 bit 9~bit 7 比较 器 P 匹配周期 000:1024 个 TM1 时钟周期 001:128 个 TM1 时钟周期 010:256 个 TM1 时钟周期 011:384 个 TM1 时钟周期 100:512 个 TM1 时钟周期 101:640 个 TM1 时钟周期 110:768 个 TM1 时钟周期 111:896 个 TM1 时钟周期 此三位设定内部 CCRP 3-bit 寄存器的值,然后与内部计数器的高三位进行比较。 如果 T1CCLR 位设定为 0 时,比较结果为 0 并清除内部计数器。T1CCLR 位设 为低,内部计数器在比较器 P 比较匹配发生时被重置;由于 CCRP 只与计数器 高三位比较,比较结果是 128 时钟周期的倍数。CCRP 被清零时,实际上会使 得计数器在最大值溢出。 Rev.1.60 133 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TM1C1 寄存器 – 10-bit ETM Bit Name R/W POR 7 6 5 4 3 2 1 0 T1AM1 T1AM0 T1AIO1 T1AIO0 T1AOC T1APOL T1CDN T1CCLR R/W R/W R/W R/W R/W R/W R R/W 0 0 0 0 0 0 0 0 Bit 7~6 Bit 5~4 T1AM1~T1AM0:选择 TM1 CCRA 工作模式位 00:比较匹配输出模式 01:捕捉输入模式 10:PWM 模式或单脉冲输出模式 11:定时 / 计数器模式 这 两 位 设 置 TM 需 要 的 工 作 模 式。 为 了 确 保 操 作 可 靠,TM 应 在 T1AM1 和 T1AM0 位有任何改变前先关掉。在定时 / 计数器模式,TM 输出脚控制必须除 能。 T1AIO1~T1AIO0:选择 TP1A 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式 / 单脉冲输出模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:单脉冲输出 捕捉输入模式 00:在 TP1A 上升沿输入捕捉 01:在 TP1A 下降沿输入捕捉 10:在 TP1A 双沿输入捕捉 11:输入捕捉除能 定时 / 计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择 决定 TM 运行在哪种模式下。 在比较匹配输出模式下,T1AIO1 和 T1AIO0 位决定当从比较器 A 比较匹配输出 发生时 TM 输出脚如何改变状态。当从比较器 A 比较匹配输出发生时 TM 输出 脚能设为切换高、切换低或翻转当前状态。若此两位同时为 0 时,这个输出将 不会改变。TM 输出脚的初始值通过 TM1C1 寄存器的 T1AOC 位设置取得。注 意,由 T1AIO1 和 T1AIO0 位得到的输出电平必须与通过 T1AOC 位设置的初始 值不同,否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改 变状态后,通过 T1ON 位由低到高电平的转换复位至初始值。 在 PWM 模式,T1AIO1 和 T1AIO0 用于决定比较匹配条件发生时怎样改变 TM 输出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TM1 关闭时 改变 T1AIO1 和 T1AIO0 位的值是很有必要的。若在 TM 运行时改变 T1AIO1 和 T1AIO0 的值,PWM 输出的值是无法预料的。 Rev. 1.60 134 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Bit 3 Bit 2 Bit 1 Bit 0 T1AOC:TP1A 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式 / 单脉冲输出模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还 是 PWM 模式 / 单脉冲输出模式。若 TM 处于定时 / 计数器模式,则其不受影响。 在比较匹配输出模式时,比较匹配发生前其决定 TM 输出脚的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 T1APOL:TP1A 输出极性控制位 0:同相 1:反相 此位控制 TP1A 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出 脚同相。若 TM 处于定时 / 计数器模式时其不受影响。 T1CDN:TM1 计数器向上 / 向下计数标志位 0:向上计数 1:向下计数 T1CCLR:选择 TM1 计数器清零条件位 0:TM1 比较器 P 匹配 1:TM1 比较器 A 匹配 此位用于选择清除计数器的方法。增强型 TM 包括三个比较器 – 比较器 P、比 较器 A 和比较器 B,其中比较器 P 和比较器 A 都可以用作清除内部计数器。 T1CCLR 位设为高,计数器在比较器 A 比较匹配发生时被清除;此位设为低, 计数器在比较器 P 比较匹配发生或计数器溢出时被清除。计数器溢出清除的方 法仅在 CCRP 被清除为 0 时才能生效。T1CCLR 位在单脉冲或输入捕捉模式时 未使用。 Rev.1.60 135 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TM1C2 寄存器 – 10-bit ETM Bit 7 6 5 4 3 2 1 0 Name T1BM1 T1BM0 T1BIO1 T1BIO0 T1BOC T1BPOL T1PWM1 T1PWM0 R/W R/W R/W R/W R/W R/W R/W R R/W POR 0 0 0 0 0 0 0 0 Bit 7~6 Bit 5~4 Bit 3 T1BM1~T1BM0:选择 TM1 CCRB 工作模式位 00:比较匹配输出模式 01:捕捉输入模式 10:PWM 模式或单脉冲输出模式 11:定时 / 计数器模式 这 两 位 设 置 TM 需 要 的 工 作 模 式。 为 了 确 保 操 作 可 靠,TM 应 在 T1BM1 和 T1BM0 位有任何改变前先关掉。在定时 / 计数器模式,TM 输出脚控制必须除能。 T1BIO1~T1BIO0:选择 TP1B_0,TP1B_1,TP1B_2 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式 / 单脉冲输出模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:单脉冲输出 捕捉输入模式 00:在 TP1B_0,TP1B_1,TP1B_2 上升沿输入捕捉 01:在 TP1B_0,TP1B_1,TP1B_2 下降沿输入捕捉 10:在 TP1B_0,TP1B_1,TP1B_2 双沿输入捕捉 11:输入捕捉除能 定时 / 计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择 决定 TM 运行在哪种模式下。 在比较匹配输出模式下,T1BIO1 和 T1BIO0 位决定当比较器 A 比较匹配输出发 生时 TM 输出脚如何改变状态。当比较器 A 比较匹配输出发生时 TM 输出脚能 设为切换高、切换低或翻转当前状态。若此两位同时为 0 时,这个输出将不会 改变。TM 输出脚的初始值通过 TM1C2 寄存器的 T1BOC 位设置取得。注意, 由 T1BIO1 和 T1BIO0 位得到的输出电平必须与通过 T1BOC 位设置的初始值不 同,否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状 态后,通过 T1ON 位由低到高电平的转换复位至初始值。 在 PWM 模式,T1BIO1 和 T1BIO0 用于决定比较匹配条件发生时怎样改变 TM 输出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TM1 关闭时 改变 T1BIO1 和 T1BIO0 位的值是很有必要的。若在 TM 运行时改变 T1BIO1 和 T1BIO0 的值,PWM 输出的值是无法预料的。 T1BOC:TP1B_0,TP1B_1,TP1B_2 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式 / 单脉冲输出模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还 是 PWM 模式 / 单脉冲输出模式。若 TM 处于定时 / 计数器模式,则其不受影响。 在比较匹配输出模式时,比较匹配发生前其决定 TM 输出脚的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 Rev. 1.60 136 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Bit 2 Bit 1~0 T1BPOL:TP1B_0,TP1B_1,TP1B_2 输出极性控制位 0:同相 1:反相 此位控制 TP1B_0,TP1B_1,TP1B_2 输出脚的极性。此位为高时 TM 输出脚反 相,为低时 TM 输出脚同相。若 TM 处于定时 / 计数器模式时其不受影响。 T1PWM1~T1PWM0:选择 PWM 模式位 00:边沿对齐 01:中心对齐,向上计数比较匹配 10:中心对齐,向下计数比较匹配 11:中心对齐,向上 / 下计数比较匹配 ● TM1DL 寄存器 – 10-bit ETM Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R R R R R R R R POR 0 0 0 0 0 0 0 0 Bit 7~0 TM1DL:TM1 计数器低字节寄存器 bit 7~bit 0 TM1 10-bit 计数器 bit 7~bit 0 ● TM1DH 寄存器 – 10-bit ETM Bit 7 6 5 4 3 2 1 0 Name — — — — — — D9 D8 R/W — — — — — — R R POR — — — — — — 0 0 Bit 7~2 Bit 1~0 未定义,读为“0” TM1DH:TM1 计数器高字节寄存器 bit 1~bit 0 TM1 10-bit 计数器 bit 9~bit 8 ● TM1AL 寄存器 – 10-bit ETM Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7~0 TM1AL:TM1 CCRA 低字节寄存器 bit 7~bit 0 TM1 10-bit CCRA bit 7~bit 0 ● TM1AH 寄存器 – 10-bit ETM Bit 7 6 5 4 3 2 1 0 Name — — — — — — D9 D8 R/W — — — — — — R/W R/W POR — — — — — — 0 0 Bit 7~2 Bit 1~0 未定义,读为“0” TM1AH:TM1 CCRA 高字节寄存器 bit 1~bit 0 TM1 10-bit CCRA bit 9~bit 8 Rev.1.60 137 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● TM1BL 寄存器 – 10-bit ETM Bit 7 6 5 4 3 Name D7 D6 D5 D4 D3 R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 Bit 7~0 TM1BL:TM1 CCRB 低字节寄存器 bit 7~bit 0 TM1 10-bit CCRB bit 7~bit 0 ● TM1BH 寄存器 – 10-bit ETM 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 Bit 7 6 5 4 3 2 1 0 Name — — — — — — D9 D8 R/W — — — — — — R/W R/W POR — — — — — — 0 0 Bit 7~2 Bit 1~0 未定义,读为“0” TM1BH:TM1 CCRB 高字节寄存器 bit 1~bit 0 TM1 10-bit CCRB bit 9~bit 8 增强型 TM 工作模式 增强型 TM 有五种工作模式,即比较匹配输出模式,PWM 输出模式,单脉 冲输出模式,捕捉输入模式或定时 / 计数器模式。通过设置 TMnC1 寄存器的 TnAM1 和 TnAM0 位和 TMnC2 寄存器的 TnBM1 和 TnBM0 位选择任意模式。 ETM 工作模式 CCRB 比较匹配输出模式 CCRB 定时 / 计数器模式 CCRB PWM 输出模式 CCRB 单脉冲输出模式 CCRB 输入捕捉模式 CCRA 比较匹配 输出模式 √ — — — — CCRA 定时 / 计数器模式 CCRA PWM 输出 模式 CCRA 单脉 冲输出模式 CCRA 输入捕捉 模式 — — — — √ — — — — √ — — — — √ — — — — √ “√”:允许,“—”:不允许 Rev. 1.60 138 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 比较匹配输出模式 为使 TM 工作在此模式,TMnC1 寄存器的 TnAM1,TnAM0 位和 TMnC2 寄存 器的 TnBM1,TnBM0 位需要全部清零。当工作在该模式,一旦计数器使能并 开始计数,有三种方法来清零,分别是:计数器溢出,比较器 A 比较匹配发生 和比较器 P 比较匹配发生。当 TnCCLR 位为低,有两种方法清除计数器。一种 是比较器 P 比较匹配发生,另一种是 CCRP 所有位设置为零并使得计数器溢出。 此时,比较器 A 和比较器 P 的请求标志位 TnAF 和 TnPF 将分别置起。 如果 TMnC1 寄存器的 TnCCLR 位设置为高,当比较器 A 比较匹配发生时计数 器被清零。此时,即使 CCRP 寄存器的值小于 CCRA 寄存器的值,仅 TnAF 中 断请求标志产生。所以当 TnCCLR 为高时,不会产生 TnPF 中断请求标志。 正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 或 比较器 B 比较匹配发生后 TnAF 或 TnBF 中断请求标志产生时,TM 输出脚状 态改变。比较器 P 比较匹配发生时产生的 TnPF 标志不影响 TM 输出脚。TM 输 出 脚 状 态 改 变 方 式 由 ETM CCRA 的 TMnC1 寄 存 器 中 TnAIO1 和 TnAIO0 位,ETM CCRB 的 TMnC2 寄 存 器 中 的 TnBIO1 和 TnBIO0 位 决 定。 当 比 较 器 A 或比较器 B 比较匹配发生时,TnAIO1,TnAIO0 位 ( 对于 TPnA 引脚 ) 和 TnBIO1,TnBIO0 位 ( 对于 TPnB_0,TPnB_1,TPnB_2 引脚 ) 决定 TM 输出脚 输出高,低或翻转当前状态。TM 输出脚初始值,既可以通过 TnON 位由低到 高电平的变化设置,也可以由 TnAOC 或 TnBOC 位设置。注意,若 TnAIO1, TnAIO0 和 TnBIO1,TnBIO0 位同时为 0 时,引脚输出不变。 Rev.1.60 139 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value Counter overflow TnCCLR = 0; TnAM [1:0] = 00 CCRP=0 CCRP > 0 Counter cleared by CCRP value 0x3FF CCRP CCRP > 0 Resume Counter Restart CCRA Pause Stop TnON TnPAU TnAPOL CCRP Int. Flag TnPF CCRA Int. Flag TnAF Time TPnA O/P Pin Output pin set to initial Level Low if TnAOC=0 Output Toggle with TnAF flag Here TnAIO [1:0] = 11 Toggle Output select Output not affected by TnAF flag. Remains High until reset by TnON bit Output Inverts when TnAPOL is high Note TnAIO [1:0] = 10 Active High Output select Output Pin Reset to Initial value Output controlled by other pin-shared function ETM CCRA 比较匹配输出模式 – TnCCLR=0 注:1. TnCCLR=0,比较器 P 匹配将清除计数器 2. TPnA 输出脚仅由 TnAF 标志位控制 3. 在 TnON 上升沿 TM 输出脚复位至初始值 Rev. 1.60 140 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value Counter overflow TnCCLR = 0; TnBM [1:0] = 00 CCRP=0 CCRP > 0 Counter cleared by CCRP value 0x3FF CCRP CCRP > 0 Resume Counter Restart CCRB Pause Stop TnON TnPAU TnBPOL CCRP Int. Flag TnPF CCRB Int. Flag TnBF Time TPnB O/P Pin Output pin set to initial Level Low if TnBOC=0 Output Toggle with TnBF flag Here TnBIO [1:0] = 11 Toggle Output select Output not affected by TnBF flag. Remains High until reset by TnON bit Output Inverts when TnBPOL is high Output Pin Note TnBIO [1:0] = 10 Reset to Initial value Active High Output select Output controlled by other pin-shared function ETM CCRB 比较匹配输出模式 – TnCCLR=0 注:1. TnCCLR=0,比较器 P 匹配将清除计数器 2. TPnB 输出脚仅由 TnBF 标志位控制 3. 在 TnON 上升沿 TM 输出脚复位至初始值 Rev.1.60 141 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value 0x3FF CCRA CCRP TnCCLR = 1; TnAM [1:0] = 00 CCRA > 0 Counter cleared by CCRA value CCRA = 0 Counter overflow Resume CCRA=0 Pause Stop Counter Restart TnON Time TnPAU TnAPOL CCRA Int. Flag TnAF No TnAF flag generated on CCRA overflow CCRP Int. Flag TnPF TPnA O/P Pin TnPF not generated Output pin set to initial Level Low if TnAOC=0 Output Toggle with TnAF flag Here TnAIO [1:0] = 11 Toggle Output select Output does not change Output not affected by TnAF flag. Remains High until reset by TnON bit Output Pin Output Inverts when TnAPOL is high Note TnAIO [1:0] = 10 Active High Output select Reset to Initial value Output controlled by other pin-shared function ETM CCRA 比较匹配输出模式 – TnCCRL=1 注:1. TnCCLR=1,比较器 A 匹配将清除计数器 2. TPnA 输出脚仅由 TnAF 标志位控制 3. 在 TnON 上升沿 TPnA 输出脚复位至初始值 4. 当 TnCCLR=1 时,不会产生 TnPF 标志 Rev. 1.60 142 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value 0x3FF CCRA CCRB TnCCLR = 1; TnBM [1:0] = 00 CCRA > 0 Counter cleared by CCRA value CCRA = 0 Counter overflow Resume CCRA=0 Pause Stop Counter Restart TnON Time TnPAU TnBPOL CCRA Int. Flag TnAF CCRB Int. Flag TnBF No TnAF flag generated on CCRA overflow TPnB O/P Pin Output pin set to initial Level Low if TnBOC=0 Output Toggle with TnBF flag Here TnBIO [1:0] = 11 Toggle Output select Output not affected by TnBF flag. Remains High until reset by TnON bit Note TnBIO [1:0] = 10 Active High Output select Output Inverts Output Pin when TnBPOL is high Reset to Initial value Output controlled by other pin-shared function ETM CCRB 比较匹配输出模式 – TnCCRL=1 注:1. TnCCLR=1,比较器 A 匹配将清除计数器 2. TPnB 输出脚仅由 TnBF 标志位控制 3. 在 TnON 上升沿 TPnB 输出脚复位至初始值 4. 当 TnCCLR=1 时,不会产生 TnPF 标志 Rev.1.60 143 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 定时 / 计数器模式 为使 TM 工作在此模式,TMnC1 寄存器的 TnAM1,TnAM0 位和 TMnC2 寄存 器的 TnBM1,TnBM0 位需要全部设为高。定时 / 计数器模式与比较输出模式 操作方式相同,并产生同样的中断请求标志。不同的是,在定时 / 计数器模式 下 TM 输出脚未使用。因此,比较匹配输出模式中的描述和时序图可以适用于 此功能。该模式中未使用的 TM 输出脚用作普通 I/O 脚或其它功能。 PWM 输出模式 为使 TM 工作在此模式,TnAM1,TnAM0 和 TnBM1,TnBM0 位需要分别设置 为“10”,且 TnAIO1,TnAIO0 和 TnBIO1,TnBIO0 位也需要分别设置为“10”。 TM 的 PWM 功能在马达控制,加热控制,照明控制等方面十分有用。给 TM 输出脚提供一个频率固定但占空比可调的信号,将产生一个有效值等于 DC 均 方根的 AC 方波。 由于 PWM 波形的周期和占空比可调,其波形的选择就极其灵活。在 PWM 模 式中,TnCCLR 位决定 PWM 周期控制方式。当 TnCCLR 设为高,CCRA 寄存 器控制 PWM 周期。在这种情况下,CCRB 寄存器设置 PWM 的占空比 ( 针对 TPnB 输出脚 )。CCRP 寄存器和 TPnA 输出脚未使用。PWM 输出只在 TPnB 输 出脚产生。当 TnCCLR 清零时,PWM 周期通过 CCRP 三位中八个值之一设置, 并且是 128 的倍数。此时,CCRA 和 CCRB 寄存器设置不同占空比,在 TPnA 和 TPnB 引脚输出两个 PWM 波形。 TnPWM1 和 TnPWM0 位决定 PWM 的对齐方式,即边沿或中心对齐方式。在 边沿对齐方式中,当计数器清零时,产生 PWM 前沿信号。与此同时电流发生 跳变,这在高功耗应用中会出现问题。在中心对齐方式中,PWM 波形中心持 续产生有效信号,因此可以减少电流跳变引起的功耗问题。 当比较器 A,比较器 B 或比较器 P 比较匹配发生时,CCRA,CCRB 和 CCRP 中断标志位分别产生。TMnC1 寄存器的 TnAOC 位和 TMnC2 寄存器的 TnBOC 位 选 择 PWM 波 形 的 极 性,TnAIO1,TnAIO0 和 TnBIO1,TnBIO0 位 使 能 PWM 输出或迫使 TM 输出脚为高电平或低电平。TnAPOL 和 TnBPOL 位用来 取反 PWM 输出波形的极性。 Rev. 1.60 144 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ETM,PWM 模式,边沿对齐模式,TnCCLR=0 CCRP 001b 010b 011b 100b 101b 110b 111b 000b Period 128 256 384 512 640 768 896 1024 A Duty CCRA B Duty CCRB 若 fSYS=16MHz,TM 时钟源选择 fSYS/4,CCRP=100b,CCRA=128, CCRB=256, TP1A PWM 输出频率 =(fSYS/4)/512=fSYS/2048=7.8125kHz,duty=128/512=25% TP1B_n PWM 输出频率 =(fSYS/4)/512=fSYS/2048=7.8125kHz,duty=256/512=50% 若由 CCRA 或 CCRB 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出 占空比为 100%。 ETM,PWM 模式,边沿对齐模式,TnCCLR=1 CCRA 1 2 3 ...... 511 512 Period 1 2 3 ...... 511 512 B Duty CCRB ...... 1021 1022 1023 ...... 1021 1022 1023 ETM,PWM 模式,中心对齐模式,TnCCLR=0 CCRP Period A Duty B Duty 001b 256 010b 512 011b 768 100b 101b 1024 1280 (CCRA×2)−1 (CCRB×2)−1 110b 1536 111b 1792 000b 2046 ETM,PWM 模式,中心对齐模式,TnCCLR=1 CCRA 1 2 3 511 512 1021 1022 1023 Period 2 4 6 1022 1024 2042 2044 2046 B Duty (CCRB×2)−1 Rev.1.60 145 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRP CCRA CCRB Counter Cleared by CCRP TnON TnCCLR = 0; TnAM [1:0] = 10, TnBM [1:0] = 10; TnPWM [1:0] = 00 Resume Pause Stop Counter Restart Time TnPAU TnAPOL CCRA Int. Flag TnAF CCRB Int. Flag TnBF CCRP Int. Flag TnPF TPnA Pin (TnAOC=1) TPnB Pin (TnBOC=1) TPnB Pin (TnBOC=0) Duty Cycle set by CCRB Duty Cycle set by CCRA Duty Cycle set by CCRA Duty Cycle set by CCRA Output Inverts when TnAPOL is high Output controlled by Output Pin other pin-shared function Reset to Initial value PWM Period set by CCRP ETM PWM 模式 – 边沿对齐 注:1. TnCCLR=0,CCRP 清除计数器并决定 PWM 周期 2. 当 TnAIO1,TnAIO0( 或 TnBIO1,TnBIO0)=00 或 01,PWM 功能不变 3. CCRA 控制 TPnA PWM 占空比,CCRB 控制 TPnB PWM 占空比 Rev. 1.60 146 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRA Counter Cleared by CCRA CCRB TnCCLR = 1; TnBM [1:0] = 10; TnPWM [1:0] = 00 Resume Pause Stop Counter Restart Time TnON TnPAU TnBPOL CCRP Int. Flag TnPF CCRB Int. Flag TnBF TPnB Pin (TnBOC=1) TPnB Pin (TnBOC=0) Duty Cycle set by CCRB PWM Period set by CCRA Output controlled by other pin-shared function Output Pin Reset to Initial value ETM PWM 模式 – 边沿对齐 注:1. TnCCLR=1,CCRA 清除计数器并决定 PWM 周期 2. 当 TnBIO1,TnBIO0=00 或 01,PWM 功能不变 3. CCRA 控制 TPnB PWM 周期,CCRB 控制 TPnB PWM 占空比 4. 此时,TM 引脚控制寄存器不能使能 TPnA 作为 TM 输出引脚 Output Inverts when TnBPOL is high Rev.1.60 147 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRP CCRA CCRB TnON TnPAU TnCCLR = 0; TnAM [1:0] = 10, TnBM [1:0] = 10; TnPWM [1:0] = 11 Resume Pause Counter Stop Restart Time TnAPOL CCRA Int. Flag TnAF CCRB Int. Flag TnBF CCRP Int. Flag TnPF TPnA Pin (TnAOC=1) TPnB Pin (TnBOC=1) TPnB Pin (TnBOC=0) Duty Cycle set by CCRA Output Inverts when TnAPOL is high Duty Cycle set by CCRB PWM Period set by CCRP Output controlled by Output Pin Other pin-shared function Reset to Initial value ETM PWM 模式 – 中心对齐 注:1. TnCCLR=0,CCRP 清除计数器并决定 PWM 周期 2. TnPWM1/TnPWM0=11,PWM 为中心对齐 3. 当 TnAIO1,TnAIO0( 或 TnBIO1,TnBIO0)=00 或 01,PWM 功能不变 4. CCRA 控制 TPnA PWM 占空比,CCRB 控制 TPnB PWM 占空比 5. 计数器值递减至“0”时 CCRP 将产生中断请求 Rev. 1.60 148 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRA CCRB TnCCLR = 1; TnBM [1:0] = 10; TnPWM [1:0] = 11 Resume Pause Counter Stop Restart Time TnON TnPAU TnBPOL CCRA Int. Flag TnAF CCRB Int. Flag TnBF CCRP Int. Flag TnPF TPnB Pin (TnBOC=1) TPnB Pin (TnBOC=0) Duty Cycle set by CCRB PWM Period set by CCRA ETM PWM 模式 – 中心对齐 注:1. TnCCLR=1,CCRA 清除计数器并决定 PWM 周期 2. TnPWM1/TnPWM0=11,PWM 为中心对齐 3. 当 TnBIO1,TnBIO0=00 或 01 时,PWM 功能不变 4. CCRA 控制 TPnB PWM 周期,CCRB 控制 TPnB PWM 占空比 5. 计数器值递减至“0”时 CCRP 将产生中断请求 Output controlled by other pin-shared Output Inverts when TnBPOL is high function Output Pin Reset to Initial value Rev.1.60 149 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 单脉冲输出模式 为使 TM 工作在此模式,TnAM1,TnAM0 和 TnBM1,TnBM0 位需要分别设置 为“10”,并且相应的 TnAIO1,TnAIO0 和 TnBIO1,TnBIO0 需要分别设置为 “11”。正如模式名所言,单脉冲输出模式,在 TM 输出脚将产生一个脉冲输出。 通过应用程序控制 TnON 位由低到高的转变来触发 TPnA 脉冲前沿输出。通过 应用程序产生比较器 B 的比较匹配来触发 TPnB 脉冲前沿输出。而处于单脉冲 模式时,TnON 位可由 TCKn 脚自动由低转变为高,进而依次初始化 TPnA 的 单脉冲输出。当 TnON 位转变为高电平时,计数器将开始运行,并产生 TPnA 脉冲前沿。当脉冲有效时 TnON 位保持高电平。通过应用程序使 TnON 位清零 或比较器 A 比较匹配发生时,产生 TPnA 和 TPnB 的脉冲下降沿。 而比较器 A 比较匹配发生时,会自动清除 TnON 位并产生 TPnA 和 TPnB 单脉 冲输出下降沿。CCRA 的值通过这种方式控制 TPnA 的脉冲宽度,CCRA-CCRB 的值控制 TPnB 的脉冲宽度。比较器 A 和比较器 B 比较匹配发生时,也会产生 TM 中断。TnON 位在计数器重启时会发生由低到高的转变,此时计数器才复位 至零。在单脉冲模式中,CCRP 寄存器和 TnCCLR 位未使用。 Counter Value CCRA CCRB S/W Command SET“TnON” or TCKn Pin Transition 0 CCRA Leading Edge TnON bit 0®1 TPnA Output Pin Time CCRA Trailing Edge TnON bit 1®0 S/W Command CLRo“r TnON” CCRA Compare Match Pulse Width = CCRA Value TPnB Output Pin Pulse Width = (CCRA-CCRB) Value CCRB Compare Match TnON = 1 CCRB Leading Edge TnON bit 1®0 CCRB Trailing Edge S/W Command CLR“TnON” or CCRA Compare Match 单脉冲产生示意图 Rev. 1.60 150 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRA CCRB Counter stopped by CCRA TnAM [1:0] = 10, TnBM [1:0] = 10; TnAIO [1:0] = 11, TnBIO [1:0] = 11 Resume Pause Counter Stops by software Counter Reset when TnON returns high TnON TCKn pin TnPAU Software Cleared by Trigger CCRA match Auto. set by TCKn pin Software Trigger TCKn pin Trigger Software Trigger Software Software Trigger Clear TnAPOL TnBPOL CCRB Int. Flag TnBF CCRA Int. Flag TnAF TPnA Pin (TnAOC=1) TPnA Pin (TnAOC=0) TPnB Pin (TnBOC=1) TPnB Pin (TnBOC=0) Pulse Width set by CCRA Pulse Width set by (CCRA-CCRB) Output Inverts when TnAPOL=1 Output Inverts when TnBPOL=1 ETM – 单脉冲模式 注:1. 通过 CCRA 匹配停止计数器 2. CCRP 未使用 3. 通过 TCKn 脚或设置 TnON 位为高来触发脉冲 4. TCKn 脚有效沿会自动置位 TnON 5. 单脉冲模式中,TnAIO[1:0] 和 TnBIO[1:0] 需置位“11”,且不能更改 Time Rev.1.60 151 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 捕捉输入模式 为 使 TM 工 作 在 此 模 式,TMnC1 寄 存 器 的 TnAM1,TnAM0 位 和 TMnC2 寄 存器的 TnBM1,TnBM0 位需要分别设置为“01”。此模式使能外部信号捕捉 并保存内部计数器当前值,因此被用于诸如脉冲宽度测量的应用中。TPnA 和 TPnB_0,TPnB_1,TPnB_2 引 脚 上 的 外 部 信 号, 通 过 设 置 TMnC1 寄 存 器 的 TnAIO1,TnAIO0 位和 TMnC2 寄存器的 TnBIO1,TnBIO0 位选择有效边沿类型, 即上升沿,下降沿或双沿有效。计数器在 TnON 位由低到高转变时启动并通过 应用程序初始化。 当 TPnA 和 TPnB_0,TPnB_1,TPnB_2 引 脚 出 现 有 效 边 沿 转 换 时, 计 数 器 当前值被锁存到 CCRA 和 CCRB 寄存器,并产生 TM 中断。不考虑 TPnA 和 TPnB_0,TPnB_1,TPnB_2 引脚事件,计数器继续工作直到 TnON 位发生下降 沿跳变。当 CCRP 比较匹配发生时计数器复位至零;CCRP 的值通过这种方式 控制计数器的最大值。当比较器 P CCRP 比较匹配发生时,也会产生 TM 中断。 记录 CCRP 溢出中断信号的值可以测量长脉宽。通过设置 TnAIO1,TnAIO0 位 和 TnBIO1,TnBIO0 位选择 TPnA 和 TPnB_0,TPnB_1,TPnB_2 引脚为上升沿, 下降沿或双沿有效。不考虑 TPnA 和 TPnB_0,TPnB_1,TPnB_2 引脚事件,如 果 TnAIO1,TnAIO0 位和 TnBIO1,TnBIO0 位都设为高,不会产生捕捉操作, 但计数器继续运行。 当 TPnA 和 TPnB_0,TPnB_1,TPnB_2 引脚与其它功能共用,TM 工作在输入 捕捉模式时需多加注意。这是因为如果引脚被设为输出,那么该引脚上的任何 电平转变都可能执行输入捕捉操作。TnCCLR,TnAOC,TnBOC,TnAPOL 和 TnBPOL 位在此模式中未使用。 Rev. 1.60 152 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRP YY XX Counter cleared by CCRP TnON TnPAU TM capture Active edge pin TPnA CCRA Int. Flag TnAF CCRP Int. Flag TnPF CCRA Value Active edge Active edge XX YY XX TnAM [1:0] = 01 Counter Counter Stop Reset Resume Pause Time YY TnAIO [1:0] Value 00 – Rising edge 01 – Falling edge 10 – Both edges 11 – Disable Capture ETM CCRA 捕捉输入模式 注:1. TnAM1,TnAM0=01 并通过 TnAIO1 和 TnAIO0 位设置有效边沿 2. TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRA 中 3. TnCCLR 位未使用 4. 无输出功能 -TnAOC 和 TnAPOL 位未使用 5. 计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大 Rev.1.60 153 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Counter Value CCRP YY XX Count er overflow TnBM1, TnBM0 = 01 Sto p Co un ter Re set Pause Resume TnON bit TnPAU bit TM Capture Pin CCRB Int. Flag TnBF Active edge CCRP Int. Flag TnPF Active edge Active edges CCRB Value TnBIO1, TnBIO0 Value XX YY XX 00 - Rising edge 01 - Falling edge 10 - Both edges YY 11 - Disable Capture Tim e ETM CCRB 捕捉输入模式 注:1. TnBM1,TnBM0=01 并通过 TnBIO1 和 TnBIO0 位设置有效边沿 2. TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRB 中 3. TnCCLR 位未使用 4. 无输出功能 -TnBOC 和 TnBPOL 位未使用 5. 计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大 Rev. 1.60 154 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 A/D 转换器 对于大多数电子系统而言,处理现实世界的模拟信号是共同的需求。为了完全 由单片机来处理这些信号,首先需要通过 A/D 转换器将模拟信号转换成数字信 号。将 A/D 转换器电路集成入单片机,可有效的减少外部器件,随之而来,具 有降低成本和减少器件空间需求的优势。 A/D 简介 此单片机都包含一个多通道的 A/D 转换器,它们可以直接接入外部模拟信号 (来自传感器或其它控制信号)并直接将这些信号转换成 12 位的数字量。 单片机 HT66F20 HT66F30 HT66F40 HT66F50 HT66F60 输入通道数 8 12 A/D 通道选择位 ACS4,ACS2~ACS0 ACS4,ACS3~ACS0 输入引脚 AN0~AN7 AN0~AN11 下图显示了 A/D 转换器内部结构和相关的寄存器。 fS Y S V DD A C E 11~A C E 0 P A 0 /A N 0 ~ P A 7 /A N 7 P E 6 /A N 8 P E 7 /A N 9 P F 0 /A N 1 0 P F 1 /A N 1 1 1 .2 5 V A D C K 2~A D C K 0 A /D ¸2N (N = 0 ~ 6 ) C lo c k AD O FF B it A /D C o n v e rte r P B 5 /V R E F VR EFS B it A /D R e fe r e n c e V o lta g e ADRL ADRH A /D D a ta R e g is te r s V SS AD R FS b it V 125E N A C S 4~A C S 0 STAR T EO C B AD O FF A/D 转换器结构 A/D 转换寄存器介绍 A/D 转换器的所有工作由六个寄存器控制。一对只读寄存器来存放 12 位 ADC 数据的值。剩下三个或四个控制寄存器设置 A/D 转换器的操作和控制功能。 寄存器 名称 ADRL(ADRFS=0) ADRL(ADRFS=1) ADRH(ADRFS=0) ADRH(ADRFS=1) ADCR0 ADCR1 ACERL 7 D3 D7 D11 — START ACS4 ACE7 6 5 D2 D1 D6 D5 D10 D9 — — EOCB ADOFF V125EN — ACE6 ACE5 位 4 3 D0 — D4 D3 D8 D7 — D11 ADRFS — VREFS — ACE4 ACE3 2 1 0 — — — D2 D1 D0 D6 D5 D4 D10 D9 D8 ACS2 ACS1 ACS0 ADCK2 ADCK1 ADCK0 ACE2 ACE1 ACE0 HT66F20/HT66F30/HT66F40/HT66F50 A/D 转换寄存器列表 Rev.1.60 155 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 寄存器 名称 ADRL(ADRFS=0) ADRL(ADRFS=1) ADRH(ADRFS=0) ADRH(ADRFS=1) ADCR0 ADCR1 ACERL ACERH 7 D3 D7 D11 — START ACS4 ACE7 — 6 5 D2 D1 D6 D5 D10 D9 — — EOCB ADOFF V125EN — ACE6 ACE5 — — 位 4 3 D0 — D4 D3 D8 D7 — D11 ADRFS ACS3 VREFS — ACE4 ACE3 — ACE11 2 1 0 — — — D2 D1 D0 D6 D5 D4 D10 D9 D8 ACS2 ACS1 ACS0 ADCK2 ADCK1 ADCK0 ACE2 ACE1 ACE0 ACE10 ACE9 ACE8 HT66F60 A/D 转换寄存器列表 A/D 转换器数据寄存器 – ADRL,ADRH 对于具有 12 位 A/D 转换器的芯片,需要两个数据寄存器存放转换结果,一 个高字节寄存器 ADRH 和一个低字节寄存器 ADRL。在 A/D 转换完毕后,单 片机可以直接读取这些寄存器以获得转换结果。由于寄存器只使用了 16 位中 的 12 位,其数据存储格式由 ADCR0 寄存器的 ADRFS 位控制,如下表所示。 D0~D11 是 A/D 换转数据结果位。未使用的位读为“0”。 ADRH ADRL ADRFS 7 6 5 4 3 2 107654321 0 0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 1 0 0 0 0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 A/D 数据寄存器 A/D 转换控制寄存器 – ADCR0,ADCR1,ACERL,ACERH 寄存器 ADCR0,ADCR1,ACERL 和 ACERH 用来控制 A/D 转换器的功能和操 作。这些 8 位的寄存器定义包括选择连接至内部 A/D 转换器的模拟通道,数字 化数据格式,A/D 时钟源,并控制和监视 A/D 转换器的开始和转换结束状态。 寄存器 ADCR0 的 ACS3~ACS0 位和 ADCR1 的 ACS4 位定义 ADC 输入通道编 号。由于每个单片机只包含一个实际的模数转换电路,因此这 8 或 12 个模拟输 入中的每一个都需要分别被发送到转换器。ACS4~ACS0 位的功能决定选择哪 个模拟输入通道或内部 1.25V 电路是否被连接到内部 A/D 转换器。 ACERH 和 ACERL 控制寄存器中的 ACE11~ACE0 位,用来定义 PA 口,PE6, PE7,PF0 和 PF1 中的哪些引脚为 A/D 转换器的模拟输入,哪些引脚不作为 A/D 转换输入。相应位设为高将选择 A/D 输入功能,清零将选择 I/O 或其它引 脚共用功能。当引脚作为 A/D 输入时,其原来的 I/O 或其它引脚共用功能消失, 此外,其内部上拉电阻也将自动断开。 Rev. 1.60 156 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ADCR0 寄存器 ● HT66F20/HT66F30/HT66F40/HT66F50 Bit 7 6 5 4 3 Name START EOCB ADOFF ADRFS — R/W R/W R R/W R/W — POR 0 1 1 0 — 2 ACS2 R/W 0 1 ACS1 R/W 0 0 ACS0 R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2~0 START:启动 A/D 转换位 0 → 1 → 0:启动 0 → 1:重置 A/D 转换,并且设置 EOCB 为“1” 此位用于初始化 A/D 转换过程。通常此位为低,但如果设为高再被清零,将初 始化 A/D 转换过程。当此位为高,将重置 A/D 转换器。 EOCB:A/D 转换结束标志 0:A/D 转换结束 1:A/D 转换中 此位用于表明 A/D 转换过程的完成。当转换正在进行时,此位为高。 ADOFF:ADC 模块电源开 / 关控制位 0:ADC 模块电源开 1:ADC 模块电源关 此位控制 A/D 内部功能的电源。该位被清零将使能 A/D 转换器。如果该位设为 高将关闭 A/D 转换器以降低功耗。由于 A/D 转换器在不执行转换动作时都会产 生一定的功耗,所以这在电源敏感的电池应用中需要多加注意。 注:1. 建议在进入空闲 / 休眠模式前,设置 ADOFF=1 以减少功耗。 2. ADOFF=1 将关闭 ADC 模块的电源。 ADRFS:ADC 数据格式控制位 0:ADC 数据高字节是 ADRH 的 bit 7~bit 0,低字节是 ADRL 的 bit 7~bit 4 1:ADC 数据高字节是 ADRH 的 bit 3~bit 0,低字节是 ADRL 的 bit 7~bit 0 此位控制存放在两个 A/D 数据寄存器中的 12 位 A/D 转换结果的格式。细节方 面请参考 A/D 数据寄存器章节。 未定义,读为“0” ACS2,ACS1,ACS0:选择 A/D 通道 (ACS4 为“0”) 位 000:AN0 001:AN1 010:AN2 011:AN3 100:AN4 101:AN5 110:AN6 111:AN7 这三位是 A/D 通道选择控制位。由于只包含一个内部 A/D 转换电路,因此通过 这些位将 8 个 A/D 输入连接到转换器。如果 ADCR1 寄存器中的 ACS4 设为高, 内部 1.25V 电路将被连接到内部 A/D 转换器。 Rev.1.60 157 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ADCR0 寄存器 ● HT66F60 Bit Name R/W POR 7 START R/W 0 6 EOCB R 1 5 4 ADOFF ADRFS R/W R/W 1 0 3 ACS3 R/W 0 2 ACS2 R/W 0 1 ACS1 R/W 0 0 ACS0 R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3~0 START:启动 A/D 转换位 0 → 1 → 0:启动 0 → 1:重置 A/D 转换,并且设置 EOCB 为“1” 此位用于初始化 A/D 转换过程。通常此位为低,但如果设为高再被清零,将初 始化 A/D 转换过程。当此位为高,将重置 A/D 转换器。 EOCB:A/D 转换结束标志 0:A/D 转换结束 1:A/D 转换中 此位用于表明 A/D 转换过程的完成。当转换正在进行时,此位为高。 ADOFF:ADC 模块电源开 / 关控制位 0:ADC 模块电源开 1:ADC 模块电源关 此位控制内部 A/D 功能的电源。该位被清零将使能 A/D 转换器。如果该位设为 高将关闭 A/D 转换器以降低功耗。由于 A/D 转换器在不执行转换动作时都会产 生一定的功耗,所以这在电源敏感的电池应用中需要多加注意。 注:1. 建议在进入空闲 / 休眠模式前,设置 ADOFF=1 以减少功耗。 2. ADOFF=1 将关闭 ADC 模块的电源。 ADRFS:ADC 数据格式控制位 0:ADC 数据高字节是 ADRH 的第 7 位,低字节是 ADRL 的第 4 位 1:ADC 数据高字节是 ADRH 的第 3 位,低字节是 ADRL 的第 0 位 此位控制存放在两个 A/D 数据寄存器中的 12 位 A/D 转换结果的格式。细节方 面请参考 A/D 数据寄存器章节。 ACS3,ACS2,ACS1,ACS0:选择 A/D 通道 (ACS4 为“0”) 位 0000:AN0 0001:AN1 0010:AN2 0011:AN3 0100:AN4 0101:AN5 0110:AN6 0111:AN7 1000:AN8 1001:AN9 1010:AN10 1011:AN11 1100~1111:未定义,不能使用 这几位是 A/D 通道选择控制位。由于只包含一个内部 A/D 转换电路,因此可通 过这些位将 8 个 A/D 输入连接到内部转换器。如果 ADCR1 寄存器中的 ACS4 设为高,内部 1.25V 电路将被连接到 A/D 转换器。 Rev. 1.60 158 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ADCR1 寄存器 Bit 7 6 5 4 3 2 1 0 Name ACS4 V125EN — VREFS — ADCK2 ADCK1 ADCK0 R/W R/W R/W — R/W — R/W R/W R/W POR 0 0 — 0 — 0 0 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2~0 ACS4:选择内部 1.25V 作为 ADC 输入控制位 0:除能 1:使能 此位使能 1.25V 连接到 A/D 转换器。V125EN 位必须先被置位使能 1.25V 电压 能隙电路被用于 A/D 转换器。当 ACS4 设为高,1.25V 能隙电压将连接到 A/D 转换器,其它 A/D 输入通道断开。 V125EN:内部 1.25V 控制位 0:除能 1:使能 此位控制连接到 A/D 转换器的内部充电泵电路开 / 关功能。当此位设为高, 充 电 泵 电 压 1.25V 连 接 至 A/D 转 换 器。 如 果 1.25V 未 连 接 至 A/D 转 换 器 且 LVR/LVD 除能,充电泵参考电压电路自动关闭以减少功耗。当 1.25V 打开连接 至 A/D 转换器,在 A/D 转换动作执行前,充电泵电路稳定需一段时间 tBG。 未定义,读为“0” VREFS:选择 ADC 参考电压 0:内部 ADC 电源 1:VREF 引脚 此位用于选择 A/D 转换器的参考电压。如果该位设为高,A/D 转换器参考电 压来源于外部 VREF 引脚。如果该位设为低,内部参考电压来源于电源电压 VDD。 未定义,读为“0” ADCK2,ADCK1,ADCK0:选择 ADC 时钟源 000:fSYS 001:fSYS/2 010:fSYS/4 011:fSYS/8 100:fSYS/16 101:fSYS/32 110:fSYS/64 111:未定义 这三位用于选择 A/D 转换器的时钟源。 Rev.1.60 159 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ACERL 寄存器 Bit Name R/W POR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 7 ACE7 R/W 1 6 ACE6 R/W 1 5 ACE5 R/W 1 4 ACE4 R/W 1 ACE7:定义 PA7 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN7 ACE6:定义 PA6 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN6 ACE5:定义 PA5 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN5 ACE4:定义 PA4 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN4 ACE3:定义 PA3 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN3 ACE2:定义 PA2 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN2 ACE1:定义 PA1 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN1 ACE0:定义 PA0 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN0 ACERH 寄存器 ● HT66F60 Bit 7 6 5 4 Name — — — — R/W — — — — POR — — — — Bit 7~4 Bit 3 Bit 2 Bit 1 Bit 0 未定义,读为“0” ACE11:定义 PF1 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN11 ACE10:定义 PF0 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN10 ACE4:定义 PE7 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN9 ACE8:定义 PE6 是否为 A/D 输入 0:不是 A/D 输入 1:A/D 输入,AN8 3 ACE3 R/W 1 2 ACE2 R/W 1 1 ACE1 R/W 1 3 ACE11 R/W 1 2 ACE10 R/W 1 1 ACE9 R/W 1 0 ACE0 R/W 1 0 ACE8 R/W 1 Rev. 1.60 160 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 A/D 操作 ADCR0 寄 存 器 中 的 START 位, 用 于 打 开 和 复 位 A/D 转 换 器。 当 单 片 机 设 定此位从逻辑低到逻辑高,然后再到逻辑低,就会开始一个模数转换周期。 当 START 位从逻辑低到逻辑高,但不再回到逻辑低时,ADCR0 寄存器中的 EOCB 位置“1”,复位模数转换器。START 位用于控制内部模数换转器的开 启动作。 ADCR0 寄存器中的 EOCB 位用于表明模数转换过程的完成。在转换周期结束 后,EOCB 位会被单片机自动地置为“0”。此外,也会置位中断控制寄存器内 相应的 A/D 中断请求标志位,如果中断使能,就会产生对应的内部中断信号。 A/D 内部中断信号将引导程序到相应的 A/D 内部中断入口。如果 A/D 内部中断 被禁止,可以让单片机轮询 ADCR0 寄存器中的 EOCB 位,检查此位是否被清 除,以作为另一种侦测 A/D 转换周期结束的方法。 A/D 转换器的时钟源为系统时钟 fSYS 分频,而分频系数由 ADCR1 寄存器中的 ADCK2~ADCK0 位决定。 虽然 A/D 时钟源是由系统时钟 fSYS,ADCK2~ADCK0 位决定,但可选择的最大 A/D 时钟源则有一些限制。允许的 A/D 时钟周期 tAD 的最小值为 0.5µs,当系 统时钟速度等于或超过 4MHz 时就必须小心。如果系统时钟速度为 4MHz 时, ADCK2~ADCK0 位不能设为“000”。必须保证设定的 A/D 转换时钟周期不小 于时钟周期的最小值,否则将会产生不准确的 A/D 转换值。使用者可以参考下 面的表格,被标上星号 * 的数值是不允许的,因为它们的 A/D 转换时钟周期小 于规定的最小值。 A/D 时钟周期 (tAD) fSYS ADCK2, ADCK1, ADCK0 =000 (fSYS) ADCK2, ADCK1, ADCK0 =001 (fSYS/2) ADCK2, ADCK1, ADCK0 =010 (fSYS/4) ADCK2, ADCK1, ADCK0 =011 (fSYS/8) ADCK2, ADCK1, ADCK0 =100 (fSYS/16) ADCK2, ADCK1, ADCK0 =101 (fSYS/32) ADCK2, ADCK1, ADCK0 =110 (fSYS/64) ADCK2, ADCK1, ADCK0 =111 1MHz 1μs 2μs 4μs 8μs 16μs 32μs 64μs 未定义 2MHz 500ns 1μs 2μs 4μs 8μs 16μs 32μs 未定义 4MHz 250ns* 500ns 1μs 2μs 4μs 8μs 16μs 未定义 8MHz 125ns* 250ns* 500ns 1μs 2μs 4μs 8μs 未定义 12MHz 83ns* 167ns* 333ns* 667ns 1.33μs 2.67μs 5.33μs 未定义 A/D 时钟周期范例 ADCR0 寄 存 器 的 ADOFF 位 用 于 控 制 A/D 转 换 电 路 电 源 的 开 / 关。 该 位 必 须清零以开启 A/D 转换器电源。即使通过清除 ACERH 和 ACERL 寄存器的 ACE11~ACE0 位,选择无引脚作为 A/D 输入,如果 ADOFF 设为“0”,那么 仍然会产生功耗。因此当未使用 A/D 转换器功能时,在功耗敏感的应用中建议 设置 ADOFF 为高以减少功耗。 A/D 转换器参考电压来自正电源电压 VDD 或外部参考源引脚 VREF,可通过 VREFS 位来选择。由于 VREF 引脚与其它功能共用,当 VREFS 设为高,选择 VREF 引脚功能且其它引脚功能将自动除能。 Rev.1.60 161 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 A/D 输入引脚 所 有 的 A/D 模 拟 输 入 引 脚 都 与 PA 端 口,PE6,PF7,PF0 或 PF1 的 I/O 引 脚 及其它功能共用。使用 ACERH 和 ACERL 寄存器中的 ACE11~ACE0 位,可 以将它们设置为 A/D 转换器模拟输入脚或具有其它功能。如果引脚的对应位 ACE11~ACE0 设为高,那么该引脚作为 A/D 转换输入且原引脚功能除能。通 过这种方式,引脚的功能可由程序来控制,灵活地切换引脚功能。如果将引脚 设为 A/D 输入,则通过寄存器编程设置的所有上拉电阻会自动断开。请注意, PAC,PEC 或 PFC 端口控制寄存器不需要为使能 A/D 输入而先设定为输入模式, 当 ACE11~ACE0 位使能 A/D 输入时,端口控制寄存器的状态将被重置。 A/D 转 换 器 有 自 己 的 参 考 电 压 引 脚 VREF, 而 通 过 设 置 ADCR1 寄 存 器 的 VREFS 位,参考电压也可以选择来自电源电压引脚。模拟输入值一定不能超过 VREF 值。 P A 0 /A N 0 A C S 4~A C S 0 P F 1 /A N 1 1 1 .2 5 V In p u t V o lta g e B u ffe r V 125E N 1 2 - b it A D C V REF VR EFS VDD P B 5 /V R E F A/D 输入结构 B andgap R e fe re n c e V o lta g e A/D 转换步骤 下面概述实现 A/D 转换过程的各个步骤。 ● 步骤 1 通过 ADCR1 寄存器中的 ADCK2~ADCK0 位,选择所需的 A/D 转换时钟。 ● 步骤 2 清零 ADCR0 寄存器中的 ADOFF 位使能 A/D。 ● 步骤 3 通过 ADCR1 和 ADCR0 寄存器中的 ACS4~ACS0 位,选择连接至内部 A/D 转 换器的通道。 ● 步骤 4 通过 ACERH 和 ACERL 寄存器中的 ACE11~ACE0 位,选择哪些引脚规划为 A/D 输入引脚。 ● 步骤 5 如果要使用中断,则中断控制寄存器需要正确地设置,以确保 A/D 转换功 能是激活的。总中断控制位 EMI 需要置位为“1”, 以及 A/D 转换器中断位 ADE 也需要置位为“1”。 ● 步骤 6 现在可以通过设定 ADCR0 寄存器中的 START 位从“0”到“1”再回到“0”, 开始模数转换的过程。注意,该位需初始化为“0”。 Rev. 1.60 162 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 AD O FF A D C M o d u le ON STAR T ● 步骤 7 可以轮询 ADCR0 寄存器中的 EOCB 位,检查模数转换过程是否完成。当此 位成为逻辑低时,表示转换过程已经完成。转换完成后,可读取 A/D 数据寄 存器 ADRL 和 ADRH 获得转换后的值。另一种方法是,若中断使能且堆栈未 满,则程序等待 A/D 中断发生。 注:若使用轮询 ADCR0 寄存器中 EOCB 位的状态的方法来检查转换过程是 否结束时,则中断使能的步骤可以省略。 下列时序图表示模数转换过程中不同阶段的图形与时序。由应用程序控制开始 A/D 转换过程后,单片机的内部硬件就会开始进行转换,在这个过程中,程序 可以继续其它功能。A/D 转换时间为 16tADCK,tADCK 为 A/D 时钟周期。 tO N 2 S T o ff on A /D s a m p lin g tim e A /D s a m p lin g tim e tA D S tA D S o ff on EO CB A C S 4~A C S 0 00011B 00010B 00000B 00001B P o w e r-o n R eset S ta rt o f A /D c o n v e r s io n S ta rt o f A /D c o n v e r s io n S ta rt o f A /D c o n v e r s io n R e s e t A /D c o n v e rte r R e s e t A /D c o n v e rte r R e s e t A /D c o n v e rte r 1 : D e fin e p o r t c o n fig u r a tio n 2 : S e le c t a n a lo g c h a n n e l E n d o f A /D c o n v e r s io n E n d o f A /D c o n v e r s io n tA D C tA D C A /D c o n v e r s io n tim e A /D c o n v e r s io n tim e A/D 转换时序图 编程注意事项 在编程时,如果 A/D 转换器未使用,通过设置 ADCR0 寄存器中的 ADOFF 为高, 关闭 A/D 内部电路以减少电源功耗。此时,不考虑输入脚的模拟电压,内部 A/ D 转换器电路不产生功耗。如果 A/D 转换器输入脚用作普通 I/O 脚,必须特别 注意,输入电压为无效逻辑电平也可能增加功耗。 A/D 转换功能 单片机含有一组 12 位的 A/D 转换器,它们转换的最大值可达 FFFH。由于模拟 输入最大值等于 VDD 或 VREF 的电压值,因此每一位可表示 (VDD 或 VREF)/4096 的模拟输入值。 1 LSB=(VDD 或 VREF) ÷ 4096 通过下面的等式可估算 A/D 转换器输入电压值: A/D 输入电压 =A/D 数字输出值 ×(VDD 或 VREF) ÷ 4096 下图显示 A/D 转换器模拟输入值和数字输出值之间理想的转换功能。除了数字 化数值 0,其后的数字化数值会在精确点之前的 0.5 LSB 处改变,而数字化数 值的最大值将在 VDD 或 VREF 之前的 1.5 LSB 处改变。 Rev.1.60 163 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 FFFH FFEH FFD H A /D C o n v e r s io n R e s u lt 03H 02H 01H 0 1 .5 L S B 0 .5 L S B 1 2 3 4093 4094 4095 4096 A n a lo g In p u t V o lta g e 理想的 A/D 转换功能 ( V DD or V REF 4096 ) A/D 转换应用范例 下面两个范例程序用来说明怎样使用 A/D 转换。第一个范例是轮询 ADCR0 寄 存器中的 EOCB 位来判断 A/D 转换是否完成;第二个范例则使用中断的方式判 断。 范例 : 使用查询 EOCB 的方式来检测转换结束 clr ADE ; disable ADC interrupt mov a,03H mov ADCR1,a ; select fSYS/8 as A/D clock and switch off 1.25V clr ADOFF mov a,0Fh ; setup ACERL and ACERH to configure pins AN0~AN3 mov ACERL,a mov a,00h mov ACERH,a ; ACERH is only for HT66F60 mov a,00h mov ADCR0,a ; enable and connect AN0 channel to A/D converter : start_conversion: clr START ; high pulse on start bit to initiate conversion set START ; reset A/D clr START ; start A/D polling_EOC: sz EOCB ; poll the ADCR0 register EOCB bit to detect end ; of A/D conversion jmp polling_EOC ; continue polling mov a,ADRL ; read low byte conversion result value mov ADRL_buffer,a ; save result to user defined register mov a,ADRH ; read high byte conversion result value mov ADRH_buffer,a ; save result to user defined register : : jmp start_conversion ; start next A/D conversion Rev. 1.60 164 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 范例 : 使用中断的方式来检测转换结束 clr ADE ; disable ADC interrupt mov a,03H mov ADCR1,a ; select fSYS/8 as A/D clock and switch off 1.25V clr ADOFF mov a,0Fh ; setup ACERL and ACERH to configure pins AN0~AN3 mov ACERL,a mov a,00h mov ACERH,a ; ACERH is only for HT66F60 mov a,00h mov ADCR0,a ; enable and connect AN0 channel to A/D converter Start_conversion: clr START ; high pulse on start bit to initiate conversion set START ; reset A/D clr START ; start A/D clr ADF ; clear ADC interrupt request flag set ADE ; enable ADC interrupt set EMI ; enable global interrupt : : ; ADC interrupt service routine ; ADC interrupt service routine ADC_ISR: mov acc_stack,a ; save ACC to user defined memory mov a,STATUS mov status_stack,a ; save STATUS to user defined memory : : mov a,ADRL ; read low byte conversion result value mov adrl_buffer,a ; save result to user defined register mov a,ADRH ; read high byte conversion result value mov adrh_buffer,a ; save result to user defined register : : EXIT_INT_ISR: mov a,status_stack mov STATUS,a ; restore STATUS from user defined memory mov a, acc_stack ; restore ACC from user defined memory reti Rev.1.60 165 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 比较器 该系列芯片中含有两个独立的模拟比较器。它们具有暂停、极性选择、迟滞等 功能,可通过寄存器进行灵活配置。比较器的引脚与普通 I/O 引脚共享,当比 较器功能未使用时,此引脚可做普通引脚使用而不浪费 I/O 资源。 C nP O L C nO U T C n+ C nX C nC nS E L 比较器 比较器操作 此系列单片机包含两个比较器功能,用于比较两个模拟电压,基于它们的差值 上提供一个输出。控制寄存器 CP0C 和 CP1C 可分别控制相应的内部比较器。 比较器的输出可由各自寄存器的一位记录,并且在共用的 I/O 口上输出。此外, 比较器功能有输出极性,迟滞功能和暂停控制。 当比较器使能时,连接到与比较器共用的输入引脚的上拉电阻将自动失效。当 比较器输入接近其切换电压时,由于输入信号上升或下降速度较慢,比较器输 出端可能会产生一些伪输出信号。通过选择迟滞功能提供少量正反馈给比较器 可使此种情况的发生率降至最低。理想情况下正负输入信号在同一个电压点时 比较器将发生开关动作,但是不可避免的输入失调电压会导致情况不确定。若 迟滞功能使能,也可增加切换偏差值。 比较器寄存器 比较器工作相关的寄存器共有两个,分别对应两个比较器。两个比较器中的应 答位有特殊的功能,两个寄存器列表如下。 寄存器 Bit 名称 7 6 5 4 3 2 CP0C C0SEL C0EN C0POL C0OUT C0OS — CP1C C1SEL C1EN C1POL C1OUT C1OS — 比较器寄存器列表 1 0 — C0HYEN — C1HYEN Rev. 1.60 166 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 CP0C 寄存器 Bit 7 6 5 4 3 2 Name C0SEL C0EN C0POL C0OUT C0OS — R/W R/W R/W R/W R R/W — POR 1 0 0 0 0 — 1 0 — C0HYEN — R/W — 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2~1 Bit 0 C0SEL:比较器引脚或 I/O 引脚选择位 0:输入 / 输出引脚 1:比较器引脚 此位为比较器引脚或输入 / 输出引脚选择位。为高时,两个比较器输入引脚使 能。此时,这两个引脚的输入 / 输出功能失效,任何与比较器共用引脚的上拉 电阻配置选项将自动失效。 C0EN:比较器开 / 关控制位 0:关闭 1:开启 此位为比较器开 / 关控制位。为“0”时,比较器关闭,即使其引脚上加有模拟 电压也不会产生功耗。对功耗要求严格的应用中,当比较器未使用或单片机进 入休眠或空闲模式之前,此位应清零。 C0POL:比较器输出极性位 0:输出同相 1:输出反相 此位决定比较器极性。为“0”时,C0OUT 位与比较器输出条件同相;为“1”时, C0OUT 位与比较器输出条件反相。 C0OUT:比较器输出位 C0POL=0 0: C0+ < C01: C0+ > C0C0POL=1 0: C0+ > C01: C0+ < C0此位为比较器输出位。此位的极性由比较器输入电压和 C0POL 位的状态决定。 C0OS:输出路径选择位 0:C0X 引脚 1:内部使用 此位为比较器输出路径选择控制位。当此位为“0”且 C0SEL 位为“1”时,比 较器输出连接到外部 C0X 引脚。当此位为“1”或 C0SEL 位为“0”时,比较 器输出信号仅供单片机内部使用,且共用输出引脚作为普通输入 / 输出引脚使 用。 未使用,读为“0” C0HYEN:迟滞控制位 0:关闭 1:开启 此位为迟滞控制位。为“1”时,比较器有一定量迟滞,具体见比较器电气特性 表。滞后产生的正反馈将减少比较器门槛附近的伪开关效应的影响。 Rev.1.60 167 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 CP1C 寄存器 Bit 7 6 5 4 3 2 Name C1SEL C1EN C1POL C1OUT C1OS — R/W R/W R/W R/W R R/W — POR 1 0 0 0 0 — 1 0 — C1HYEN — R/W — 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2~1 Bit 0 C1SEL:比较器引脚或输入 / 输出引脚选择位 0:输入 / 输出引脚 1:比较器引脚 此位为比较器引脚或输入 / 输出引脚选择位。为高时,两个比较器输入引脚使 能。此时,这两个引脚的输入 / 输出功能失效,任何与比较器共用引脚的上拉 电阻配置选项将自动失效。 C1EN:比较器开 / 关控制位 0:关闭 1:开启 此位为比较器开 / 关控制位。为“0”时,比较器关闭,即使其引脚上加有模拟 电压也不会产生功耗。对功耗要求严格的应用中,当比较器未使用或单片机进 入休眠或空闲模式之前,此位应清零。 C1POL:比较器输出极性位 0:输出同相 1:输出反相 此位决定比较器极性。为“0”时,C1OUT 位与比较器输出条件同相;为“1”时, C1OUT 位与比较器输出条件反相。 C1OUT:比较器输出位 C1POL=0 0:C1+ < C11:C1+ > C1C1POL=1 0:C1+ > C11:C1+ < C1此位为比较器输出位。此位的极性由比较器输入电压和 C1POL 位的状态决定。 C1OS:输出路径选择位 0:C1X 引脚 1:内部使用 此位为比较器输出路径选择控制位。当此位为“0”且 C1SEL 位为“1”时,比 较器输出连接到外部 C1X 引脚。当此位为“1”或 C1SEL 位为“0”时,比较 器输出信号仅供单片机内部使用,且共用输出引脚作为普通输入 / 输出引脚使 用。 未使用,读为“0” C1HYEN:迟滞控制位 0:关闭 1:开启 此位为迟滞控制位。为“1”时,比较器有一定量迟滞,具体见比较器电气特性 表。滞后产生的正反馈将减少比较器门槛附近的伪开关效应的影响。 Rev. 1.60 168 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 比较器中断 每个比较器都有自己的中断功能。当任何一个状态改变时,其对应的中断标志 将会置位,若应答中断使能位被置位,系统将跳转至相应的中断向量中执行。 注意,发生状态改变的是 C0OUT 或 C1OUT 位而不是产生中断的输出脚。单片 机处于休眠或空闲模式且比较器使能时,若为外部输入线导致比较器输出状态 发生的改变,则由此产生的中断标志也可产生一个唤醒动作。若除能唤醒功能, 进入休眠或空闲模式前中断标志应先置为高。 编程注意事项 若比较器使能,当单片机进入休眠或空闲模式时其仍保持有效并会有一定的耗 电,用户可考虑在进入休眠或空闲模式前先关闭比较器。 由于比较器引脚与普通输入 / 输出脚共用,若比较器功能使能时,这些引脚的 输入 / 输出寄存器将读为“0”(端口控制寄存器读为“1”)或读为端口数据 寄存器的值(端口控制寄存器读为“0”)。 串行接口模块 – SIM 该单片机内有一个串行接口模块,包括两种易与外部设备通信的串行接口:四 线 SPI 或两线 I2C 接口。这两种接口具有相当简单的通信协议,单片机可以通 过这些接口与传感器、闪存或 EEPROM 内存等硬件设备通信。SIM 接口的引 脚与其它的 I/O 引脚共用,所以要使用 SIM 功能时应先在配置选项中选中 SIM 功能。因为这两种接口共用引脚和寄存器,所以要通过一个 SIMC0 寄存器中的 SIM2~SIM0 位来选择哪一种通信接口。若 SIM 功能使能,可通过上拉电阻控 制寄存器选择与输入 / 输出口共用的 SIM 脚的上拉电阻。 SPI 接口 SPI 接口常用于与外部设备如传感器、闪存或 EEPROM 内存等通信。四线 SPI 接口最初是由摩托罗拉公司研制,是一个有相当简单的通信协议的串行数据接 口,这个协议可以简化与外部硬件的编程要求。 SPI 通信模式为全双工模式,且能以主 / 从模式的工作方式进行通信,单片机既 可以做为主机,也可以做为从机。虽然 SPI 接口理论上允许一个主机控制多个 从机,但此处的 SPI 中只有一个片选信号引脚。若主机需要控制多个从机,可 使用输入 / 输出引脚选择从机。 SPI 接口操作 SPI 接口是一个全双工串行数据传输器。SPI 接口的四线为:SDI、SDO、SCK 和 SCS。SDI 和 SDO 是数据的输入和输出线。SCK 是串行时钟线,SCS 是从 机的选择线。SPI 的接口引脚与普通 I/O 口和 I2C 的功能脚共用。通过设定 SIM 配置选项和 SIMC0/SIMC2 寄存器的对应位,来使能 SPI 接口。SPI 配置选项设 定好后,还可以通过 SIMC0 寄存器中的 SIMEN 位来除能或使能。连接到 SPI 接口的单片机以从主 / 从模式进行通信,且主机完成所有的数据传输初始化, 并控制时钟信号。由于单片机只有一个 SCS 引脚,所以只能拥有一个从机设备。 可通过软件控制 SCS 引脚使能与除能,设置 CSEN 位为“1”使能 SCS 功能, 设置 CSEN 位为“0”,SCS 引脚将处于浮空状态。 Rev.1.60 169 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 S P I M a s te r SCK SDO SDI SCS S P I S la v e SCK SDI SDO SCS SPI 主 / 从机连接方式 该系列单片机的 SPI 功能具有以下特点: ● 全双工同步数据传输 ● 主从模式 ● 最低有效位先传或最高有效位先传的数据传输模式 ● 传输完成标志位 ● 时钟源上升沿或下降沿有效 ● WCOL 和 CSEN 位使能或除能选择 SPI 接 口 状 态 受 很 多 因 素 的 影 响, 如 单 片 机 处 于 主 机 或 从 机 的 工 作 模 式 和 CSEN,SIMEN 位的状态。 配置选项中有几项与 SPI 接口功能相关。其中一项为使能 SIM 功能,共用引脚 选择为 SIM 脚而非普通输入 / 输出脚。注意,若配置选项未选择 SIM 功能, SIMC0 寄存器中的 SIMEN 位的状态不会产生影响。另外两个 SPI 配置选项决 定 CSEN 和 WCOL 位是否有用。 D a ta B u s S IM D T x /R x S h ift R e g is te r C K E N b it C K P O L B b it S C K P in fS Y S fT B C T M 0 C C R P m a tc h fre q u e n c y /2 S C S P in C S E N b it C lo c k E d g e /P o la r ity C o n tro l C lo c k S o u r c e S e le c t B usy S ta tu s C o n fig u r a tio n O p tio n E n a b le /D is a b le SPI 方框图 S D I P in S D O P in E n a b le /D is a b le C o n fig u r a tio n O p tio n W C O L F la g T R F F la g Rev. 1.60 170 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SPI 寄存器 有三个内部寄存器用于控制 SPI 接口的所有操作,其中有一个数据寄存器 SIMD、两个控制寄存器 SIMC0 和 SIMC2。注意,SIMC1 寄存器仅用于 I2C 接口。 寄存器 Bit 名称 7 6 5 4 3 2 1 0 SIMC0 SIM2 SIM1 SIM0 PCKEN PCKP1 PCKP0 SIMEN — SIMD D7 D6 D5 D4 D3 D2 D1 D0 SIMC2 D7 D6 CKPOLB CKEG MLS CSEN WCOL TRF SIM 寄存器列表 SIMD 用于存储发送和接收的数据。这个寄存器由 SPI 和 I2C 功能所共用。在 单片机尚未将数据写入到 SPI 总线中时,要传输的数据应先存在 SIMD 中。SPI 总线接收到数据之后,单片机就可以从 SIMD 数据寄存器中读取。所有通过 SPI 传输或接收的数据都必须通过 SIMD 实现。 SIMD 寄存器 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR × × × × × × × × “×”为未知 单片机中也有两个控制 SPI 接口功能的寄存器,SIMC0 和 SIMC2。应注意的是 SIMC2 与 I2C 接口功能中的的寄存器 SIMA 是同一个寄存器。SPI 功能不会用 到寄存器 SIMC1,SIMC1 只适用于 I2C 中。寄存器 SIMC0 用于控制使能 / 除能 功能和设置数据传输的时钟频率。虽然 SIMC0 与 SPI 功能关,但是也用于控制 外部时钟分频。寄存器 SIMC2 用于其它的控制功能如 LSB/MSB 选择,写冲突 标志位等。 Rev.1.60 171 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SIMC0 寄存器 Bit 7 6 5 4 3 2 1 0 Name SIM2 SIM1 SIM0 PCKEN PCKP1 PCKP0 SIMEN — R/W R/W R/W R/W R/W R/W R/W R/W — POR 1 1 1 0 0 0 0 — Bit 7~5 Bit 4 Bit 3~2 Bit 1 Bit 0 SIM2~SIM0:SIM 工作模式控制位 000:SPI 主机模式;SPI 时钟为 fSYS/4 001:SPI 主机模式;SPI 时钟为 fSYS/16 010:SPI 主机模式;SPI 时钟为 fSYS/64 011:SPI 主机模式;SPI 时钟为 fTBC 100:SPI 主机模式;SPI 时钟为 TM0 CCRP 匹配频率 /2 101:SPI 从机模式 110:I2C 从机模式 111:未使用模式 这几位用于设置 SIM 功能的工作模式,用于选择 SPI 的主从模式和 SPI 的主 机时钟频率及 I2C 或 SPI 功能。SPI 时钟源可来自于系统时钟也可以选择来自 TM0。若选择的是作为 SPI 从机,则其时钟源从外部主机而得。 PCKEN:PCK 输出脚控制位 0:除能 1:使能 PCKP1,PCKP0:选择 PCK 输出脚的频率位 00:fSYS 01:fSYS/4 10:fSYS/8 11:TM0 CCRP 匹配频率 /2 SIMEN:SIM 控制位 0:除能 1:使能 此 位 为 SIM 接 口 的 开 / 关 控 制 位。 此 位 为“0” 时,SIM 接 口 除 能,SDI、 SDO、SCK 和 SCS 或 SDA 和 SCL 脚处于浮空状态,SIM 工作电流减小到最小值。 此位为“1”时,SIM 接口使能。配置选项中首先将 SIM 接口使能才能使此位 有效。若 SIM 经由 SIM2~SIM0 位设置为工作在 SPI 接口,当 SIMEN 位由低到 高转变时,SPI 控制寄存器中的设置不会发生变化,其首先应在应用程序中初始 化。若 SIM 经由 SIM2~SIM0 位设置为工作在 I2C 接口,当 SIMEN 位由低到高 转变时,I2C 控制寄存器中的设置,如 HXT 和 TXAK,将不会发生变化,其首 先应在应用程序中初始化,此时相关 I2C 标志,如 HCF、HAAS、HBB、SRW 和 RXAK,将被设置为其默认状态。 未使用,读为“0” Rev. 1.60 172 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SIMC2 寄存器 Bit 7 6 5 4 3 2 1 0 Name D7 D6 CKPOLB CKEG MLS CSEN WCOL TRF R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7~6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 未定义位 用户可通过软件程序对这两位进行读写。 CKPOLB:时钟线的基础状态位 0:当时钟无效时,SCK 口为高电平 1:当时钟无效时,SCK 口为低电平 此位决定了时钟线的基础状态,当时钟无效时,若此位为高,SCK 为低电平, 若此位为低,SCK 为高电平。 CKEG:SPI 的 SCK 有效时钟边沿类型位 CKPOLB=0 0:SCK 为高电平且在 SCK 上升沿抓取数据 1:SCK 为高电平且在 SCK 下降沿抓取数据 CKPOLB=1 0:SCK 为低电平且在 SCK 下降沿抓取数据 1:SCK 为低电平且在 SCK 上升沿抓取数据 CKEG 和 CKPOLB 位用于设置 SPI 总线上时钟信号输入和输出方式。在执行数 据传输前,这两位必须被设置,否则将产生错误的时钟边沿信号。CKPOLB 位 决定时钟线的基本状态,若时钟无效且此位为高,则 SCK 为低电平,若时钟 无效且此位为低,则 SCK 为高电平。CKEG 位决定有效时钟边沿类型,取决于 CKPOLB 的状态。 MLS:SPI 数据移位命令位 0:LSB 1:MSB 数据移位选择位,用于选择数据传输时高位优先传输还是低位优先传输。此位 设置为高时高位优先传输,为低时低位优先传输。 CSEN:SPI SCS 引脚控制位 0:除能 1:使能 CSEN 位用于 SCS 引脚的使能 / 除能控制。此位为低时,SCS 除能并处于浮空 状态。此位为高时,SCS 作为选择脚。注意,CSEN 位的使能 / 除能可通过配置 选项设置。 WCOL:SPI 写冲突标志位 0:无冲突 1:冲突 WCOL 标志位用于监测数据冲突的发生。此位为高时,数据在传输时被写入 SIMD 寄存器。若数据正在被传输时,此操作无效。此位可被应用程序清零。注 意,WCOL 位的使能 / 除能可通过配置选项设置。 TRF:SPI 发送 / 接收结束标志位 0:数据正在发送 1:数据发送结束 TRF 位为发送 / 接收结束标志位,当 SPI 数据传输结束时,此位自动置为高, 但须通过应用程序设置为“0”。此位也可用于产生中断。 Rev.1.60 173 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SPI 通信 将 SIMEN 设置为高,使能 SPI 功能之后,单片机处于主机模式,当数据写入 到寄存器 SIMD 的同时传输 / 接收开始进行。数据传输完成时,TRF 位将自动 被置位但清除只能通过应用程序完成。单片机处于从机模式时,收到主机发来 的信号之后,会传输 SIMD 中的数据,而且在 SDI 引脚上的数据也会被移位 到 SIMD 寄存器中。主机应在输出时钟信号之前先输出一个 SCS 信号以使能 从机,从机的数据传输功能也应在与 SCS 信号相关的适当时候准备就绪,这由 CKPOLB 和 CKEG 位决定。所附时序图表明了在 CKPOLB 和 CKEG 位各种设 置情况下从机数据与 SCS 信号的关系。 即使在单片机处于空闲模式,SPI 功能仍将继续执行。 S IM E N = 1 , C S E N = 0 ( E x te r n a l P u ll- H ig h ) SCS S IM E N , C S E N = 1 S C K (C K P O L B = 1 , C K E G = 0 ) S C K (C K P O L B = 0 , C K E G = 0 ) S C K (C K P O L B = 1 , C K E G = 1 ) S C K (C K P O L B = 0 , C K E G = 1 ) S D O (C K E G = 0 ) S D O (C K E G = 1 ) S D I D a ta C a p tu re D 7 /D 0 D 6 /D 1 D 5 /D 2 D 4 /D 3 D 3 /D 4 D 2 /D 5 D 1 /D 6 D 0 /D 7 D 7 /D 0 D 6 /D 1 D 5 /D 2 D 4 /D 3 D 3 /D 4 D 2 /D 5 D 1 /D 6 D 0 /D 7 W r ite to S IM D SPI 主机模式时序 SCS S C K (C K P O L B = 1 ) S C K (C K P O L B = 0 ) SDO S D I D a ta C a p tu re D 7 /D 0 D 6 /D 1 D 5 /D 2 D 4 /D 3 D 3 /D 4 D 2 /D 5 D 1 /D 6 D 0 /D 7 W r ite to S IM D ( S D O d o e s n o t c h a n g e u n til fir s t S C K e d g e ) SPI 从机模式时序 – CKEG=0 Rev. 1.60 174 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SCS S C K (C K P O L B = 1 ) S C K (C K P O L B = 0 ) SDO D 7 /D 0 D 6 /D 1 D 5 /D 2 D 4 /D 3 D 3 /D 4 D 2 /D 5 D 1 /D 6 D 0 /D 7 S D I D a ta C a p tu re W r ite to S IM D ( S D O c h a n g e s a s s o o n a s w r itin g o c c u r s ; S D O is flo a tin g if S C S = 1 ) N o te : F o r S P I s la v e m o d e , if S IM E N = 1 a n d C S E N = 0 , S P I is a lw a y s e n a b le d a n d ig n o r e s th e S C S le v e l. SPI 从机模式时序 – CKEG=1 S P I tra n s fe r M a s te r m a s te r o r s la v e ? S IM [2 :0 ]= 0 0 0 , 0 0 1 ,0 1 0 ,0 1 1 o r 1 0 0 S la v e S IM [2 :0 ]= 1 0 1 C o n fig u r e C K P O L B , C K E G ,C S E N and M LS S IM E N = 1 A C le a r W C O L A W r ite D a ta in to S IM D Y W C O L=1? N N T r a n s m is s io n c o m p le te d ? (T R F = 1 ? ) Y R e a d D a ta fro m S IM D C le a r T R F SPI 传输控制流程图 T ra n s fe r N F in is h e d ? Y END Rev.1.60 175 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 I2C 接口 I2C 可以和传感器,EEPROM 内存等外部硬件接口进行通信。最初是由飞利浦 公司研制,是适用于同步串行数据传输的双线式低速串行接口。I2C 接口具有两 线通信,非常简单的通信协议和在同一总线上和多个设备进行通信的能力的优 点,使之在很多的应用场合中大受欢迎。 VDD SDA SCL D e v ic e S la v e D e v ic e M a s te r D e v ic e S la v e I2C 主从总线连接图 I2C 接口操作 I2C 串行接口是一个双线的接口,有一条串行数据线 SDA 和一条串行时钟线 SCL。由于可能有多个设备在同一条总线上相互连接,所以这些设备的输出都 是开漏型输出。因此应在这些输出口上都应加上拉电阻。应注意的是:I2C 总线 上的每个设备都没有选择线,但分别与唯一的地址一一对应,用于 I2C 通信。 如果有两个设备通过双向的 I2C 总线进行通信,那么就存在一个主机和一个从 机。主机和从机都可以用于传输和接收数据,但只有主机才可以控制总线动作。 那些处于从机模式的设备,要在 I2C 总线上传输数据只有两种方式,一是从机 发送模式,二是从机接收模式。 单片机中有几个和 I2C 接口相关的配置选项,其中之一是使能 I2C 功能,选择 SIM 引脚而非普通 I/O 口。应注意的是如果在配置选项中没有将 SIM 功能使能, 那么寄存器 SIMC0 中的 SIMEN 位不起作用。配置选项中有一个选项允许使用 其它的时钟来驱动 I2C 接口。另外有一个配置选项用于控制 I2C 接口的去抖时 间大小。这个功能可以使用内部时钟在外部时钟上增加一个去抖间隔,会减小 时钟线上毛刺发生的可能性,以避免单片机发生误动作。如果选择了这个功能, 去抖时间可以选择 2 个或 4 个系统时钟。为了达到需要的 I2C 数据传输速度, 系统时钟 fSYS 和 I2C 去抖时间之间存在一定的关系。I2C 标准模式或者快速模式 下,用户需注意所选的系统时钟频率与标准匹配去抖时间的设置,其具体关系 如下表所示。 I2C 去抖时间选择 无去抖时间 2 个系统时钟去抖时间 4 个系统时钟去抖时间 I2C 标准模式 (100kHz) fSYS>2MHz fSYS>4MHz fSYS>8MHz I2C 最小 fSYS 频率 I2C 快速模式 (400kHz) fSYS>5MHz fSYS>10MHz fSYS>20MHz Rev. 1.60 176 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 S T A R T s ig n a l fro m M a s te r S e n d s la v e a d d r e s s a n d R /W b it fr o m M a s te r A c k n o w le d g e fr o m s la v e S e n d d a ta b y te fro m M a s te r A c k n o w le d g e fr o m s la v e S T O P s ig n a l fro m M a s te r I2C 寄存器 I2C 总 线 的 三 个 控 制 寄 存 器 是 SIMC0 和 SIMC1,SIMA 及 一 个 数 据 寄 存 器 SIMD。SIMD 寄存器,SPI 章节中已有介绍,用于存储正在传输和接收的数据, 当单片机将数据写入 I2C 总线之前,实际将被传输的数据存放在寄存器 SIMD 中。从 I2C 总线接收到数据之后,单片机就可以从寄存器 SIMD 中得到这个 数据。I2C 总线上的所有传输或接收到的数据都必须通过 SIMD。应注意的是 SIMA 也有另外一个名字,SIMC2,使用 SPI 功能时会用到。I2C 接口会用到寄 存器 SIMC0 中的 SIMEN 位和 SIM0~SIM2 位。 寄存器 名称 SIMC0 SIMC1 SIMD SIMA 7 SIM2 HCF D7 IICA6 6 SIM1 HAAS D6 IICA5 Bit 5 4 3 SIM0 PCKEN PCKP1 HBB HTX TXAK D5 D4 D3 IICA4 IICA3 IICA2 I2C 寄存器列表 2 PCKP0 SRW D2 IICA1 1 0 SIMEN — IAMWU RXAK D1 D0 IICA0 D0 Rev.1.60 177 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SIMC0 寄存器 Bit 7 6 5 4 3 2 1 0 Name SIM2 SIM1 SIM0 PCKEN PCKP1 PCKP0 SIMEN — R/W R/W R/W R/W R/W R/W R/W R/W — POR 1 1 1 0 0 0 0 — Bit 7~5 Bit 4 Bit 3~2 Bit 1 Bit 0 SIM2~SIM0:SIM 工作模式控制位 000:SPI 主机模式;SPI 时钟为 fSYS/4 001:SPI 主机模式;SPI 时钟为 fSYS/16 010:SPI 主机模式;SPI 时钟为 fSYS/64 011:SPI 主机模式;SPI 时钟为 fTBC 100:SPI 主机模式;SPI 时钟为 TM0 CCRP 匹配频率 /2 101:SPI 从机模式 110:I2C 从机模式 111:未使用模式 这几位用于设置 SIM 功能的工作模式,用于选择 SPI 的主从模式和 SPI 的主 机时钟频率及 I2C 或 SPI 功能。SPI 时钟源可来自于系统时钟也可以选择来自 TM0。若选择的是作为 SPI 从机,则其时钟源从外部主机而得。 PCKEN:PCK 输出脚控制位 0:除能 1:使能 PCKP1,PCKP0:选择 PCK 输出脚的频率位 00:fSYS 01:fSYS/4 10:fSYS/8 11:TM0 CCRP 匹配频率 /2 SIMEN:SIM 控制位 0:除能 1:使能 此 位 为 SIM 接 口 的 开 / 关 控 制 位。 此 位 为“0” 时,SIM 接 口 除 能,SDI、 SDO、SCK 和 SCS 或 SDA 和 SCL 脚处于浮空状态,SIM 工作电流减小到最小值。 此位为“1”时,SIM 接口使能。配置选项中首先将 SIM 接口使能才能使此位 有效。若 SIM 经由 SIM2~SIM0 位设置为工作在 SPI 接口,当 SIMEN 位由低到 高转变时,SPI 控制寄存器中的设置不会发生变化,其首先应在应用程序中初始 化。若 SIM 经由 SIM2~SIM0 位设置为工作在 I2C 接口,当 SIMEN 位由低到高 转变时,I2C 控制寄存器中的设置,如 HXT 和 TXAK,将不会发生变化,其首 先应在应用程序中初始化,此时相关 I2C 标志,如 HCF、HAAS、HBB、SRW 和 RXAK,将被设置为其默认状态。 未使用,读为“0” Rev. 1.60 178 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SIMC1 寄存器 Bit Name R/W POR 7 6 5 HCF HAAS HBB R R R 1 0 0 4 HTX R/W 0 3 TXAK R/W 0 2 SRW R 0 1 0 IAMWU RXAK R/W R 0 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 HCF:I2C 总线数据传输结束标志位 0:数据正在被传输 1:8 位数据传输完成 数据正在传输时该位为低。当 8 位数据传输完成时,此位为高并产生一个中断。 HAAS:I2C 地址匹配标志位 0:地址不匹配 1:地址匹配 此标志位用于决定从机地址是否与主机发送地址相同。若地址匹配此位为高, 否则此位为低。 HBB:I2C 总线忙标志位 0:I2C 总线闲 1:I2C 总线忙 当检测到 START 信号时 I2C 忙,此位变为高电平。当检测到 STOP 信号时 I2C 总线停止,该位变为低电平。 HTX:从机处于发送或接收模式标志位 0:从机处于接收模式 1:从机处于发送模式 TXAK:I2C 总线发送确认标志位 0:从机发送确认标志 1:从机没有发送确认标志 单片机接收 8 位数据之后会将该位在第九个时钟传到总线上。如果单片机想要 接收更多的数据,则应在接收数据之前将此位设置为“0”。 SRW:I2C 从机读 / 写位 0:从机应处于接收模式 1:从机应处于发送模式 SRW 位是从机读写位。决定主机是否希望传输或接收来自 I2C 总线的数据。当 传输地址和从机的地址相同时,HAAS 位会被设置为高,主机将检测 SRW 位来 决定进入发送模式还是接收模式。如果 SRW 位为高时,主机会请求从总线上读 数据,此时设备处于传输模式。当 SRW 位为“0”时,主机往总线上写数据, 设备处于接收模式以读取该数据。 IAMWU:I2C 地址匹配唤醒控制位 0:除能 1:使能 此位应设置为“1”使能 I2C 地址匹配以使系统从休眠或空闲模式中唤醒。若进 入休眠或空闲模式前 IAMWU 已经设置以使能 I2C 地址匹配唤醒功能,在系统 唤醒后须软件清除此位以确保单片机正确地运行。 RXAK:I2C 总线接收确认标志位 0:从机接收到确认标志 1:从机没有接收到确认标志 RXAK 位是接收确认标志位。如果 RXAK 位被重设为“0”即 8 位数据传输之 后,设备在第九个时钟有接受到一个正确的确认位。如果单片机处于发送状态, 发送方会检查 RXAK 位来判断接收方是否愿意继续接收下一个字节。因此直到 RXAK 为“1”时,传输方停止发送数据。这时,传输方将释放 SDA 线,主机 发出停止信号。 Rev.1.60 179 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SIMD 用于存储发送和接收的数据。这个寄存器由 SPI 和 I2C 功能所共用。在单 片机尚未将数据写入到 SPI 总线中时,要传输的数据应存在 SIMD 中。SPI 总 线接收到数据之后,单片机就可以从 SIMD 数据寄存器中读取。所有通过 SPI 传输或接收的数据都必须通过 SIMD 实现。 SIMD 寄存器 Bit 7 6 5 4 3 2 1 0 Name D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR × × × × × × × × “×”为未知 SIMA 寄存器 Bit Name R/W POR Bit 7~1 Bit 0 7 6 5 4 3 2 1 0 IICA6 IICA5 IICA4 IICA3 IICA2 IICA1 IICA0 — R/W R/W R/W R/W R/W R/W R/W — × × × × × × × — “×”为未知 IICA6~IICA0:I2C 从机地址位 IICA6~IICA0 是从机地址对应的 6~0 位。此寄存器也在 SPI 接口功能中使用, 但其名称改为 SIMC2。SIMA 寄存器用于存放 7 位从机地址,寄存器 SIMA 中 的第 7~1 位是单片机的从机地址,位 0 未定义。如果接至 I2C 的主机发送处的 地址和寄存器 SIMA 中存储的地址相符,那么就选中了这个从机。应注意的是 寄存器 SIMA 和 SPI 接口使用的寄存器 SIMC2 是同一个寄存器。 无定义 此位可通过软件程序进行读写。 D a ta B u s I2 C D a ta R e g is te r (S IM D ) S la v e A d d r e s s R e g is te r (S IM A ) S C L P in S D A P in D ebounce C ir c u itr y C o n fig u r a tio n O p tio n s H T X B it D ir e c tio n C o n tr o l A d d re s s C o m p a ra to r A d d re s s M a tc h H A A S B it D a ta in L S B M D a ta O u t M S B S h ift R e g is te r U X E n a b le /D is a b le A c k n o w le d g e T r a n s m it/R e c e iv e C o n tr o l U n it R e a d /w r ite S la v e 8 - b it D a ta C o m p le te D e te c t S ta rt o r S to p S R W B it H C F B it H B B B it I2C 方框图 I2C In te rru p t Rev. 1.60 180 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 I2C 总线通信 I2C 总线上的通信需要四步完成,一个起始信号,一个从机地址发送,一个数据 传输,还有一个停止信号。当起始信号被写入 I2C 总线时,总线上的所有从机 都会接收到这个起始信号并且被通知总线上会即将有数据到达。数据的前 7 位 是从机地址,高位在前,低位在后。如果发出的地址和从机地址匹配,SIMC1 寄存器的 HAAS 位会被置位,同时产生 I2C 中断。进入中断服务程序后,系统 要检测 HAAS 位,以判断 I2C 总线中断是来自从机地址匹配,还是来自 8 位数 据传递完毕。在数据传递中,注意的是,在 7 位从机地址被发送后,接下来的 一位,即第 8 位,是读 / 写控制位,该位的值会反映到 SRW 位中。从机通过检 测 SRW 位以确定主控制器是要进入发送模式还是接收模式。在 I2C 总线开始传 送数据前,需要先初始化 I2C 总线,初始化 I2C 总线步骤如下: ● 步骤 1 设置 SIMC0 寄存器中 SIM2~SIM0 和 SIMEN 位为“1”,以使能 I2C 总线 ● 步骤 2 向 I2C 总线地址寄存器 SIMA 写入从机地址。 ● 步骤 3 设置 SIME 位和中断控制寄存器中的 SIM 多功能中断使能位,以使能 SIM 中 断和多功能中断。 S ta rt S E T S IM [2 :0 ]= 1 1 0 S E T S IM E N W r ite S la v e A d d re s s to S IM A No C L R S IM E P o ll S IM F to d e c id e w h e n to g o to I2C B u s IS R I2C B u s In te rru p t= ? Y es S E T S IM E a n d M F n E W a it fo r In te r r u p t G o to M a in P r o g r a m G o to M a in P r o g r a m I2C 总线初始化流程图 I2C 总线起始信号 起始信号只能由连接 I2C 总线主机产生,而不是由只做从机的 MCU 产生。总线 上的所有从机都可以侦测到起始信号。如果有从机侦测到起始信号,则表明 I2C 总线处于忙碌状态,并会置位 HBB。起始信号是指在 SCL 为高电平时,SDA 线上发生从高到低的电平变化。 Rev.1.60 181 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 从机地址 总线上的所有从机都会侦测由主机发出的起始信号。发送起始信号后,紧接着 主机会发送从机地址以选择要进行数据传输的从机。所有在 I2C 总线上的从机 接收到 7 位地址数据后,都会将其与各自内部的地址进行比较。如果从机从主 机上接收到的地址与自身内部的地址相匹配,则会产生一个 I2C 总线中断信号。 地址位接下来的一位为读 / 写状态位 ( 即第 8 位 ),将被保存到 SIMC1 寄存器 的 SRW 位,随后发出一个低电平应答信号(即第 9 位)。当单片机从机的地 址匹配时,会将状态标志位 HAAS 置位。I2C 总线有两个中断源,当程序运行 至中断服务子程序时,通过检测 HAAS 位以确定 I2C 总线中断是来自从机地址 匹配,还是来自 8 位数据传递完毕。当是从机地址匹配发生中断时,则从机或 是用于发送模式并将数据写进 SIMD 寄存器,或是用于接收模式并从 SIMD 寄 存器中读取空值以释放 SCL 线。 I2C 总线读 / 写信号 SIMC1 寄存器的 SRW 位用来表示主机是要从 I2C 总线上读取数据还是要将数 据写到 I2C 总线上。从机则通过检测该位以确定自己是作为发送方还是接收方。 当 SRW 置“1”,表示主机要从 I2C 总线上读取数据,从机则作为发送方,将 数据写到 I2C 总线;当 SRW 清“0”,表示主机要写数据到 I2C 总线上,从机 则做为接收方,从 I2C 总线上读取数据。 I2C 总线从机地址确认信号 主机发送呼叫地址后,当 I2C 总线上的任何从机内部地址与其匹配时,会发送 一个应答信号。此应答信号会通知主机有从机已经接收到了呼叫地址。如果主 机没有收到应答信号,则主机必须发送停止 (STOP) 信号以结束通信。当 HAAS 为高时,表示从机接收到的地址与自己内部地址匹配,则从机需检查 SRW 位, 以确定自己是作为发送方还是作为接收方。如果 SRW 位为高,从机须设置成 发送方,这样会置位 SIMC1 寄存器的 HTX 位。如果 SRW 位为低,从机须设 置成接收方,这样会清零 SIMC1 寄存器的 HTX 位。 I2C 总线数据和确认信号 在从机确认接收到从地址后,会进行 8 位宽度的数据传输。这个数据传输顺序 是的高位在前,低位在后。接收方在接收到 8 位数据后必须发出一个应答信号 (“0”) 以继续接收下一个数据。如果发送方没接收到应答信号,发送方将释放 SDA 线,同时,主机将发出 STOP 信号以释放 I2C 总线。所传送的数据存储在 SIMD 寄存器中。如果设置成发送方,从机必须先将欲传输的数据写到 SIMD 寄存器中;如果设置成接收方,从机必须从 SIMD 寄存器读取数据。 当 接 收 器 想 要 继 续 接 收 下 一 个 数 据 时, 必 须 在 第 9 个 时 钟 发 出 应 答 信 号 (TXAK)。被设为发送方的从机将检测寄存器 SIMC1 中的 RXAK 位以判断是否 传输下一个字节的数据,如果单片机不传输下一个字节,那么它将释放 SDA 线 并等待接收主机的停止信号。 Rev. 1.60 182 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 S ta rt SCL S la v e A d d r e s s SRW ACK SDA 1 0 1 1 0 1 0 1 0 D a ta ACK S to p SCL 1 0 0 1 0 1 0 0 SDA S = S ta r t ( 1 b it) S A = S la v e A d d r e s s ( 7 b its ) S R = S R W b it ( 1 b it) M = S la v e d e v ic e s e n d a c k n o w le d g e b it ( 1 b it) D = D a ta ( 8 b its ) A = A C K ( R X A K b it fo r tr a n s m itte r , T X A K b it fo r r e c e iv e r 1 b it) P = S to p ( 1 b it) S SA SR M D A D A S SA SR M D A D A P 注:* 当从机地址匹配时,单片机必须选择设置为发送模式还是接收模式。若设置为发送模 式,需写数据至 SIMD 寄存器;若设置为接收模式,需立即从 SIMD 寄存器中虚读数 据以释放 SCL 线。 I2C 通信时序图 S ta rt Rev.1.60 No No H TX=1 Y es ? R e a d fro m S IM D to r e le a s e S C L lin e H AAS=1 ? Y es Y es SR W =1 No ? SET H TX C LR H TX C LR TX A K R ETI C LR H TX C LR TX A K Y es R XAK=1 ? No W r ite d a ta to S IM D r e le a s e S C L L in e W r ite d a ta to S IM D to r e le a s e S C L L in e R ETI D u m m y re a d fro m S IM D to r e le a s e S C L L in e R ETI D u m m y re a d fro m S IM D to r e le a s e S C L L in e R ETI R ETI I2C 总线 ISR 流程图 183 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 外围时钟输出 外围时钟输出功能使单片机能够为外部硬件提供和单片机时钟同步的时钟信号。 外围时钟操作 外 围 时 钟 输 出 引 脚 PCK 与 输 入 / 输 出 脚 共 用, 可 以 通 过 SIMC0 寄 存 器 的 PCKEN 位来选择引脚功能。外围时钟功能由 SIMC0 寄存器控制。外围时钟输 出的时钟源来自 TM0 CCRP 匹配频率 /2 或内部系统时钟分频。SIMC0 寄存器 的 PCKEN 位是总的开 / 关控制位,当该位为高时使能外围时钟,为低时除能外 围时钟。系统时钟所需要的分频比由同一个寄存器中的 PCKP0 和 PCKP1 位来 选择。如果系统进入休眠模式,将除能外围时钟输出功能。 SIMC0 寄存器 Bit 7 6 5 4 3 2 1 0 Name SIM2 SIM1 SIM0 PCKEN PCKP1 PCKP0 SIMEN — R/W R/W R/W R/W R/W R/W R/W R/W — POR 1 1 1 0 0 0 0 — Bit 7~5 Bit 4 Bit 3~2 Bit 1 Bit 0 SIM2~SIM0:SIM 工作模式控制位 000:SPI 主机模式;SPI 时钟为 fSYS/4 001:SPI 主机模式;SPI 时钟为 fSYS/16 010:SPI 主机模式;SPI 时钟为 fSYS/64 011:SPI 主机模式;SPI 时钟为 fTBC 100:SPI 主机模式;SPI 时钟为 TM0 CCRP 匹配频率 /2 101:SPI 从机模式 110:I2C 从机模式 111:未使用模式 这几位用于设置 SIM 功能的工作模式,用于选择 SPI 的主从模式和 SPI 的主 机时钟频率及 I2C 或 SPI 功能。SPI 时钟源可来自于系统时钟也可以选择来自 TM0。若选择的是作为 SPI 从机,则其时钟源从外部主机而得。 PCKEN:PCK 输出脚控制位 0:除能 1:使能 PCKP1,PCKP0:选择 PCK 输出脚的频率位 00:fSYS 01:fSYS/4 10:fSYS/8 11:TM0 CCRP 匹配频率 /2 SIMEN:SIM 控制位 0:除能 1:使能 此 位 为 SIM 接 口 的 开 / 关 控 制 位。 此 位 为“0” 时,SIM 接 口 除 能,SDI、 SDO、SCK 和 SCS 或 SDA 和 SCL 脚处于浮空状态,SIM 工作电流减小到最小值。 此位为“1”时,SIM 接口使能。配置选项中首先将 SIM 接口使能才能使此位 有效。注意,当 SIMEN 位由低到高转变时,SPI 控制寄存器的内容处于未知状 态,其首先应在应用程序中初始化。 未使用,读为“0” Rev. 1.60 184 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 中断 中断是单片机一个重要功能。当外部事件或内部功能如定时器模块或 A/D 转 换器有效,并且产生中断时,系统会暂时中止当前的程序而转到执行相对应 的中断服务程序。此单片机提供多个外部中断和内部中断功能,外部中断由 INT0~INT3 和 PINT 引脚动作产生,而内部中断由各种内部功能,如定时器模 块、比较器、时基、LVD、EEPROM、SIM 和 A/D 转换器等产生。 中断寄存器 中断控制基本上是在一定单片机条件发生时设置请求标志位,应用程序中中断 使能位的设置是通过位于专用数据存储器中的一系列寄存器控制的。寄存器的 数量由所选单片机的型号决定,但总的分为三类。第一类是 INTC0~INTC3 寄 存器,用于设置基本的中断;第二类是 MFI0~MFI3 寄存器,用于设置多功能 中断;最后一种有 INTEG 寄存器,用于设置外部中断边沿触发类型。 寄存器中含有中断控制位和中断请求标志位。中断控制位用于使能或除能各种 中断,中断请求标志位用于存放当前中断请求的状态。它们都按照特定的模式 命名,前面表示中断类型的缩写,紧接着的字母“E”代表使能 / 除能位,“F” 代表请求标志位。 功能 使能位 请求标志 注释 总中断 EMI — — 比较器 CPnE CPnF n=0 或 1 INTn 脚 INTnE INTnF n=0~3 A/D 转换器 ADE ADF — 多功能 MFnE MFnF n=0~5 时基 TBnE TBnF n=0 或 1 SIM SIME SIMF — LVD LVE LVF — EEPROM DEE DEF — PINT 脚 XPE XPF — TnPE TnPF TM TnAE TnAF n=0~3 TnBE TnBF 中断寄存器位命名模式 Rev.1.60 185 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 中断寄存器内容 ● HT66F20 Name INTEG INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 7 — — ADF MF3F — — DEF 6 — CP0F MF1F TB1F — — LVF 5 — INT1F MF0F TB0F T0AF T1AF XPF Bit 4 3 2 1 0 — INT1S1 INT1S0 INT0S1 INT0S0 INT0F CP0E INT1E INT0E EMI CP1F ADE MF1E MF0E CP1E MF2F MF3E TB1E TB0E MF2E T0PF — — T0AE T0PE T1PF — — T1AE T1PE SIMF DEE LVE XPE SIME ● HT66F30 Name INTEG INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 7 — — ADF MF3F — — DEF 6 — CP0F MF1F TB1F — T1BF LVF 5 — INT1F MF0F TB0F T0AF T1AF XPF Bit 4 3 2 1 0 — INT1S1 INT1S0 INT0S1 INT0S0 INT0F CP0E INT1E INT0E EMI CP1F ADE MF1E MF0E CP1E MF2F MF3E TB1E TB0E MF2E T0PF — — T0AE T0PE T1PF — T1BE T1AE T1PE SIMF DEE LVE XPE SIME ● HT66F40 Name INTEG INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 7 — — ADF MF3F T2AF — DEF 6 — CP0F MF1F TB1F T2PF T1BF LVF 5 — INT1F MF0F TB0F T0AF T1AF XPF Bit 4 3 2 1 0 — INT1S1 INT1S0 INT0S1 INT0S0 INT0F CP0E INT1E INT0E EMI CP1F ADE MF1E MF0E CP1E MF2F MF3E TB1E TB0E MF2E T0PF T2AE T2PE T0AE T0PE T1PF — T1BE T1AE T1PE SIMF DEE LVE XPE SIME Rev. 1.60 186 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F50 Name INTEG INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 MFI3 7 — — ADF MF3F T2AF — DEF — 6 — CP0F MF1F TB1F T2PF T1BF LVF — 5 — INT1F MF0F TB0F T0AF T1AF XPF T3AF Bit 4 3 2 1 0 — INT1S1 INT1S0 INT0S1 INT0S0 INT0F CP0E INT1E INT0E EMI CP1F ADE MF1E MF0E CP1E MF2F MF3E TB1E TB0E MF2E T0PF T2AE T2PE T0AE T0PE T1PF — T1BE T1AE T1PE SIMF DEE LVE XPE SIME T3PF — — T3AE T3PE ● HT66F60 Bit Name 7 6 5 4 3 2 1 0 INTEG INT3S1 INT3S0 INT2S1 INT2S0 INT1S1 INT1S0 INT0S1 INT0S0 INTC0 — INT2F INT1F INT0F INT2E INT1E INT0E EMI INTC1 MF0F CP1F CP0F INT3F MF0E CP1E CP0E INT3E INTC2 ADF MF3F MF2F MF1F ADE MF3E MF2E MF1E INTC3 MF5F TB1F TB0F MF4F MF5E TB1E TB0E MF4E MFI0 T2AF T2PF T0AF T0PF T2AE T2PE T0AE T0PE MFI1 — T1BF T1AF T1PF — T1BE T1AE T1PE MFI2 DEF LVF XPF SIMF DEE LVE XPE SIME MFI3 — — T3AF T3PF — — T3AE T3PE Rev.1.60 187 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 INTEG 寄存器 ● HT66F20/HT66F30/HT66F40/HT66F50 Bit 7 6 5 4 3 2 1 0 Name — — — — INT1S1 INT1S0 INT0S1 INT0S0 R/W — — — — R/W R/W R/W R/W POR — — — — 0 0 0 0 Bit 7~4 Bit 3~2 Bit 1~0 未使用,读为“0” INT1S1,INT1S0:INT1 脚中断边沿控制位 00:除能 01:上升沿 10:下降沿 11:双沿 INT0S1,INT0S0:INT0 脚中断边沿控制位 00:除能 01:上升沿 10:下降沿 11:双沿 ● HT66F60 Bit Name R/W POR 7 6 5 4 3 2 1 0 INT3S1 INT3S0 INT2S1 INT2S0 INT1S1 INT1S0 INT0S1 INT0S0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 Bit 7~6 Bit5~4 Bit 3~2 Bit 1~0 INT3S1,INT3S0:INT3 脚中断边沿控制位 00:除能 01:上升沿 10:下降沿 11:双沿 INT2S1,INT2S0:INT2 脚中断边沿控制位 00:除能 01:上升沿 10:下降沿 11:双沿 INT1S1,INT1S0:INT1 脚中断边沿控制位 00:除能 01:上升沿 10:下降沿 11:双沿 INT0S1,INT0S0:INT0 脚中断边沿控制位 00:除能 01:上升沿 10:下降沿 11:双沿 Rev. 1.60 188 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 INTC0 寄存器 ● HT66F20/HT66F30/HT66F40/HT66F50 Bit 7 6 5 4 Name — CP0F INT1F INT0F R/W — R/W R/W R/W POR — 0 0 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 未使用,读为“0” CP0F:比较器 0 中断请求标志位 0:无请求 1:中断请求 INT1F:INT1 中断请求标志位 0:无请求 1:中断请求 INT0F:INT0 中断请求标志位 0:无请求 1:中断请求 CP0E:比较器 0 中断控制位 0:除能 1:使能 INT1E:INT1 中断控制位 0:除能 1:使能 INT0E:INT0 中断控制位 0:除能 1:使能 EMI:总中断控制位 0:除能 1:使能 3 CP0E R/W 0 2 INT1E R/W 0 1 INT0E R/W 0 0 EMI R/W 0 Rev.1.60 189 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F60 Bit Name R/W POR 7 6 5 4 3 2 1 — INT2F INT1F INT0F INT2E INT1E INT0E — R/W R/W R/W R/W R/W R/W — 0 0 0 0 0 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 未使用,读为“0” INT2F:INT2 中断请求标志位 0:无请求 1:中断请求 INT1F:INT1 中断请求标志位 0:无请求 1:中断请求 INT0F:INT0 中断请求标志位 0:无请求 1:中断请求 INT2E:INT2 中断控制位 0:除能 1:使能 INT1E:INT1 中断控制位 0:除能 1:使能 INT0E:INT0 中断控制位 0:除能 1:使能 EMI:总中断控制位 0:除能 1:使能 0 EMI R/W 0 Rev. 1.60 190 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 INTC1 寄存器 ● HT66F20/HT66F30/HT66F40/HT66F50 Bit Name R/W POR 7 ADF R/W 0 6 MF1F R/W 0 5 MF0F R/W 0 4 CP1F R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADF:A/D 转换器中断请求标志位 0:无请求 1:中断请求 MF1F:多功能中断 1 请求标志位 0:无请求 1:中断请求 MF0F:多功能中断 0 请求标志位 0:无请求 1:中断请求 CP1F:比较器 1 中断请求标志位 0:无请求 1:中断请求 ADE:A/D 转换器中断控制位 0:除能 1:使能 MF1E:多功能中断 1 控制位 0:除能 1:使能 MF0E:多功能中断 0 控制位 0:除能 1:使能 CP1E:比较器 1 中断控制位 0:除能 1:使能 3 ADE R/W 0 2 MF1E R/W 0 1 MF0E R/W 0 0 CP1E R/W 0 Rev.1.60 191 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F60 Bit Name R/W POR 7 MF0F R/W 0 6 CP1F R/W 0 5 CP0F R/W 0 4 INT3F R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 MF0F:多功能中断 0 请求标志位 0:无请求 1:中断请求 CP1F:比较器 1 中断请求标志位 0:无请求 1:中断请求 CP0F:比较器 0 中断请求标志位 0:无请求 1:中断请求 INT3F:INT3 中断请求标志位 0:无请求 1:中断请求 MF0E:多功能中断 0 控制位 0:除能 1:使能 CP1E:比较器 1 中断控制位 0:除能 1:使能 CP0E:比较器 0 中断控制位 0:除能 1:使能 INT3E:INT3 中断控制位 0:除能 1:使能 3 MF0E R/W 0 2 CP1E R/W 0 1 CP0E R/W 0 0 INT3E R/W 0 Rev. 1.60 192 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 INTC2 寄存器 ● HT66F20/HT66F30/HT66F40/HT66F50 Bit Name R/W POR 7 MF3F R/W 0 6 TB1F R/W 0 5 TB0F R/W 0 4 MF2F R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 MF3F:多功能中断 3 请求标志位 0:无请求 1:中断请求 TB1F:时基 1 中断请求标志位 0:无请求 1:中断请求 TB0F:时基 0 中断请求标志位 0:无请求 1:中断请求 MF2F:多功能中断 2 请求标志位 0:无请求 1:中断请求 MF3E:多功能中断 3 控制位 0:除能 1:使能 TB1E:时基 1 中断控制位 0:除能 1:使能 TB0E:时基 0 中断控制位 0:除能 1:使能 MF2E:多功能中断 2 控制位 0:除能 1:使能 3 MF3E R/W 0 2 TB1E R/W 0 1 TB0E R/W 0 0 MF2E R/W 0 Rev.1.60 193 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F60 Bit Name R/W POR 7 ADF R/W 0 6 MF3F R/W 0 5 MF2F R/W 0 4 MF1F R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADF:A/D 转换器中断请求标志位 0:无请求 1:中断请求 MF3F:多功能中断 3 请求标志位 0:无请求 1:中断请求 MF2F:多功能中断 2 请求标志位 0:无请求 1:中断请求 MF1F:多功能中断 1 请求标志位 0:无请求 1:中断请求 ADE:A/D 转换器中断控制位 0:除能 1:使能 MF3E:多功能中断 3 控制位 0:除能 1:使能 MF2E:多功能中断 2 控制位 0:除能 1:使能 MF1E:多功能中断 1 控制位 0:除能 1:使能 3 ADE R/W 0 2 MF3E R/W 0 1 MF2E R/W 0 0 MF1E R/W 0 Rev. 1.60 194 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 INTC3 寄存器 ● HT66F60 Bit Name R/W POR 7 MF5F R/W 0 6 TB1F R/W 0 5 TB0F R/W 0 4 MF4F R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 MF5F:多功能中断 5 请求标志位 0:无请求 1:中断请求 TB1F:时基 1 中断请求标志位 0:无请求 1:中断请求 TB0F:时基 0 中断请求标志位 0:无请求 1:中断请求 MF4F:多功能中断 4 请求标志位 0:无请求 1:中断请求 MF5E:多功能中断 5 控制位 0:除能 1:使能 TB1E:时基 1 中断控制位 0:除能 1:使能 TB0E:时基 0 中断控制位 0:除能 1:使能 MF4E:多功能中断 4 控制位 0:除能 1:使能 3 MF5E R/W 0 2 TB1E R/W 0 1 TB0E R/W 0 0 MF4E R/W 0 Rev.1.60 195 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 MFI0 寄存器 ● HT66F20/HT66F30 Bit 7 Name — R/W — POR — 6 5 4 3 — T0AF T0PF — — R/W R/W — — 0 0 — Bit 7~6 Bit 5 Bit 4 Bit 3~2 Bit 1 Bit 0 未使用,读为“0” T0AF:TM0 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T0PF:TM0 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 未使用,读为“0” T0AE:TM0 比较器 A 匹配中断控制位 0:除能 1:使能 T0PE:TM0 比较器 P 匹配中断控制位 0:除能 1:使能 ● HT66F40/HT66F50/HT66F60 Bit Name R/W POR 7 T2AF R/W 0 6 T2PF R/W 0 5 T0AF R/W 0 4 T0PF R/W 0 3 T2AE R/W 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 T2AF:TM2 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T2PF:TM2 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 T0AF:TM0 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T0PF:TM0 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 T2AE:TM2 比较器 A 匹配中断控制位 0:除能 1:使能 T2PE:TM2 比较器 P 匹配中断控制位 0:除能 1:使能 T0AE:TM0 比较器 A 匹配中断控制位 0:除能 1:使能 T0PE:TM0 比较器 P 匹配中断控制位 0:除能 1:使能 2 — — — 2 T2PE R/W 0 1 T0AE R/W 0 1 T0AE R/W 0 0 T0PE R/W 0 0 T0PE R/W 0 Rev. 1.60 196 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 MFI1 寄存器 ● HT66F20 Bit 7 Name — R/W — POR — 6 5 4 3 — T1AF T1PF — — R/W R/W — — 0 0 — Bit 7~6 Bit 5 Bit 4 Bit 3~2 Bit 1 Bit 0 未使用,读为“0” T1AF:TM1 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T1PF:TM1 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 未使用,读为“0” T1AE:TM1 比较器 A 匹配中断控制位 0:除能 1:使能 T1PE:TM1 比较器 P 匹配中断控制位 0:除能 1:使能 ● HT66F30/HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 3 Name — T1BF T1AF T1PF — R/W — R/W R/W R/W — POR — 0 0 0 — Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 未使用,读为“0” T1BF:TM1 比较器 B 匹配中断请求标志位 0:无请求 1:中断请求 T1AF:TM1 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T1PF:TM1 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 未使用,读为“0” T1BE:TM1 比较器 B 匹配中断控制位 0:除能 1:使能 T1AE:TM1 比较器 A 匹配中断控制位 0:除能 1:使能 T1PE:TM1 比较器 P 匹配中断控制位 0:除能 1:使能 2 1 0 — T1AE T1PE — R/W R/W — 0 0 2 T1BE R/W 0 1 T1AE R/W 0 0 T1PE R/W 0 Rev.1.60 197 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 MFI2 寄存器 Bit 7 6 5 4 3 Name DEF LVF XPF SIMF DEE R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 DEF:数据 EEPROM 中断请求标志位 0:无请求 1:中断请求 LVF:LVD 中断请求标志位 0:无请求 1:中断请求 XPF:外围中断请求标志位 0:无请求 1:中断请求 SIMF:SIM 中断请求标志位 0:无请求 1:中断请求 DEE:数据 EEPROM 中断控制位 0:除能 1:使能 LVE:LVD 中断控制位 0:除能 1:使能 XPE:外围中断控制位 0:除能 1:使能 SIME:SIM 中断控制位 0:除能 1:使能 2 LVE R/W 0 1 0 XPE SIME R/W R/W 0 0 Rev. 1.60 198 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 MFI3 寄存器 ● HT66F50/HT66F60 Bit Name R/W POR Bit 7~6 Bit 5 Bit 4 Bit 3~2 Bit 1 Bit 0 7 6 5 4 3 — — T3AF T3PF — — — R/W R/W — — — 0 0 — 未使用,读为“0” T3AF:TM3 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T3PF:TM3 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 未使用,读为“0” T3AE:TM3 比较器 A 匹配中断控制位 0:除能 1:使能 T3PE:TM3 比较器 P 匹配中断控制位 0:除能 1:使能 2 1 0 — T3AE T3PE — R/W R/W — 0 0 中断操作 若中断事件条件产生,如一个 TM 比较器 P、比较器 A 或比较器 B 匹配或 A/D 转换结束等等,相关中断请求标志将置起。中断标志产生后程序是否会跳转至 相关中断向量执行是由中断使能位的条件决定的。若使能位为“1”,程序将跳 至相关中断向量中执行;若使能位为“0”,即使中断请求标志置起中断也不会 发生,程序也不会跳转至相关中断向量执行。若总中断使能位为“0”,所有中 断都将除能。 当中断发生时,下条指令的地址将被压入堆栈。相应的中断向量地址加载至 PC 中。系统将从此向量取下条指令。中断向量处通常为跳转指令,以跳转到相应 的中断服务程序。中断服务程序必须以“RETI”指令返回至主程序,以继续执 行原来的程序。 各个中断使能位以及相应的请求标志位,以优先级的次序显示在下图。一些中 断源有自己的向量,但是有些中断却共用多功能中断向量。一旦中断子程序被 响应,系统将自动清除 EMI 位,所有其它的中断将被屏蔽,这个方式可以防止 任何进一步的中断嵌套。其它中断请求可能发生在此期间,虽然中断不会立即 响应,但是中断请求标志位会被记录。 如果某个中断服务子程序正在执行时,有另一个中断要求立即响应,那么 EMI 位应在程序进入中断子程序后置位,以允许此中断嵌套。如果堆栈已满,即使 此中断使能,中断请求也不会被响应,直到 SP 减少为止。如果要求立刻动作, 则堆栈必须避免成为储满状态。请求同时发生时,执行优先级如下流程图所示。 所有被置起的中断请求标志都可把单片机从休眠或空闲模式中唤醒,若要防止 唤醒动作发生,在单片机进入休眠或空闲模式前应将相应的标志置起。 Rev.1.60 199 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Legend xxF Request Flag – no auto reset in ISR xxF Request Flag – auto reset in ISR xxE Enable Bit EMI auto disabled in ISR Interrupt Request Name Flags INT0 Pin INT0F INT1 Pin INT1F Enable Bits INT0E INT1E Master Enable EMI EMI Vector 04H 08H Priority High Interrupt Request Name Flags TM0 P T0PF TM0 A T0AF Enable Bits T0PE T0AE Comp. 0 CP0F Comp. 1 CP1F M. Funct. 0 MF0F CP0E CP1E EMI EMI MF0E EMI 0CH 10H 14H TM1 P T1PF TM1 A T1AF TM1 B T1BF T1PE T1AE T1BE M. Funct. 1 MF1F A/D ADF MF1E EMI ADE EMI 18H 1CH SIM SIMF PINT Pin XPF SIME XPE LVD LVF LVE EEPROM DEF DEE Interrupts contained within Multi-Function Interrupts M. Funct. 2 MF2F MF2E EMI 20H Time Base 0 TB0F Time Base 1 TB1F TB0E EMI 24H TB1E EMI 28H M. Funct. 3 MF3F MF3E EMI 2CH Low HT66F30 only 中断结构 – HT66F20/HT66F30 Rev. 1.60 200 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Legend xxF Request Flag – no auto reset in ISR xxF Request Flag – auto reset in ISR xxE Enable Bit EMI auto disabled in ISR Interrupt Request Name Flags INT0 Pin INT0F INT1 Pin INT1F Enable Bits INT0E INT1E Master Enable EMI EMI Vector 04H 08H Priority High Interrupt Request Name Flags TM0 P TP0AF TM0 A TP0AF TM2 P T2PF TM2 A T2AF Enable Bits T0PE T0AE T2PE T2AE Comp. 0 CP0F Comp. 1 CP1F M. Funct. 0 MF0F CP0E EMI CP1E EMI MF0E EMI 0CH 10H 14H TM1 P T1PF TM1 A T1AF TM1 B T1BF TM3 P T3PF TM3 A T3AF T1PE T1AE T1BE T3PE T3AE M. Funct. 1 MF1F A/D ADF MF1E EMI ADE EMI 18H 1CH SIM SIMF PINT Pin XPF SIME XPE M. Funct. 2 MF2F MF2E EMI 20H Time Base 0 TB0F TB0E EMI 24H LVD LVF LVE EEPROM DEF DEE Interrupts contained within Multi-Function Interrupts Time Base 1 TB1F TB1E EMI 28H M. Funct. 3 MF3F MF3E EMI 2CH Low HT66F50 only 中断结构 – HT66F40/HT66F50 Rev.1.60 201 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Legend xxF Request Flag – no auto reset in ISR xxF Request Flag – auto reset in ISR xxE Enable Bit EMI auto disabled in ISR Interrupt Request Name Flags INT0 Pin INT0F INT1 Pin INT1F INT2 Pin INT2F INT3 Pin INT3F Enable Bits INT0E Master Enable EMI Vector 04H INT1E EMI 08H INT2E EMI 0CH INT3E EMI 10H Priority High Interrupt Request Name Flags Enable Bits TM0 P T0PF TM0 A T0AF T0PE T0AE Comp. 0 CP0F Comp. 1 CP1F M. Funct. 0 MF0F CP0E EMI CP1E EMI MF0E EMI 14H 18H 1CH TM1 P T1PF TM1 A T1AF TM1 B T1BF T1PE T1AE T1BE M. Funct. 1 MF1F MF1E EMI 20H TM2 P T2PF TM2 A T2AF TM3 P T3PF TM3 A T3AF T2PE T2AE T3PE T3AE SIM SIMF PINT Pin XPF SIME XPE LVD LVF LVE EEPROM DEF DEE Interrupts contained within Multi-Function Interrupts M. Funct. 2 MF2F MF2E EMI M. Funct. 3 MF3F A/D ADF M. Funct. 4 MF4F Time Base 0 TB0F Time Base 1 TB1F MF3E EMI ADE EMI MF4E EMI TB0E EMI TB1E EMI M. Funct. 5 MF5F MF5E EMI 中断结构 – HT66F60 24H 28H 2CH 30H 34H 38H 3CH Low Rev. 1.60 202 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 外部中断 通过 INT0~INT3 引脚上的信号变化可控制外部中断。当触发沿选择位设置好触 发类型,INT0~INT3 引脚的状态发生变化,外部中断请求标志 INT0F~INT3F 被 置位时外部中断请求产生。若要跳转到相应中断向量地址,总中断控制位 EMI 和相应中断使能位 INT0E~INT3E 需先被置位。此外,必须使用 INTEG 寄存器 使能外部中断功能并选择触发沿类型。外部中断引脚和普通 I/O 口共用,如果 相应寄存器中的中断使能位被置位,此引脚将被作为外部中断脚使用。此时该 引脚必须通过设置控制寄存器,将该引脚设置为输入口。当中断使能,堆栈未 满并且外部中断脚状态改变,将调用外部中断向量子程序。当响应外部中断服 务子程序时,中断请求标志位 INT0F~INT3F 会自动复位且 EMI 位会被清零以 除能其它中断。注意,即使此引脚被用作外部中断输入,其配置选项中的上拉 电阻仍保持有效。寄存器 INTEG 被用来选择有效的边沿类型,来触发外部中断。 可以选择上升沿还是下降沿或双沿触发都产生外部中断。注意 INTEG 也可以用 来除能外部中断功能。 比较器中断 比较器中断由两个内部比较器控制。当比较器输出状态改变,比较器中断请求 标志 CP0F 或 CP1F 被置位,比较器中断请求产生。若要跳转到相应中断向量地 址,总中断控制位 EMI 和比较器中断使能位 CP0E 和 CP1E 需先被置位。当中 断使能,堆栈未满并且比较器输入产生一个比较器输出变化时,将调用比较器 中断向量子程序。当响应中断服务子程序时,外部中断请求标志位会自动复位 且 EMI 位会被清零以除能其它中断。 多功能中断 此系列单片机中有多达六种多功能中断,与其它中断不同,它没有独立源,但 由其它现有的中断源构成,即 TM 中断,SIM 中断,外部设备中断,LVD 中断 和 EEPROM 中断。 当多功能中断中任何一种中断请求标志 MF0F~MF5F 被置位,多功能中断请求 产生。当中断使能,堆栈未满,包括在多功能中断中的任意一个中断发生时, 将调用多功能中断向量中的一个子程序。当响应中断服务子程序时,相关的多 功能请求标志位会自动复位且 EMI 位会自动清零以除能其它中断。 但必须注意的是,在中断响应时,虽然多功能中断标志会自动复位,但多功能 中断源的请求标志位,即 TM 中断,SIM 中断,外部设备中断,LVD 中断和 EEPROM 中断的请求标志位不会自动复位,必须由应用程序清零。 A/D 转换器中断 A/D 转换器中断由 A/D 转换动作的结束来控制。当 A/D 转换器中断请求标志被 置位,即 A/D 转换过程完成时,中断请求发生。当总中断使能位 EMI 和 A/D 中断使能位 ADE 被置位,允许程序跳转到各自的中断向量地址。当中断使能, 堆栈未满且 A/D 转换动作结束时,将调用它们各自的中断向量子程序。当响应 中断服务子程序时,相应的中断请求标志位 ADF 会自动清零。EMI 位也会被 清零以除能其它中断。 Rev.1.60 203 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 时基中断 时基中断提供一个固定周期的中断信号,由各自的定时器功能产生溢出信号控 制。当各自的中断请求标志 TB0F 或 TB1F 被置位时,中断请求发生。当总中 断使能位 EMI 和时基使能位 TB0E 或 TB1E 被置位,允许程序跳转到各自的中 断向量地址。当中断使能,堆栈未满且时基溢出时,将调用它们各自的中断向 量子程序。当响应中断服务子程序时,相应的中断请求标志位 TB0F 或 TB1F 会自动复位且 EMI 位会被清零以除能其它中断。 时基中断的目的是提供一个固定周期的中断信号,时钟源来自内部时钟源 fTB。 fTB 输入时钟首先经过分频器,分频率由程序设置 TBC 寄存器相关位获取合适 的分频值以提供更长的时基中断周期。控制时基中断频率 fTB 的时钟源有几种, 如在系统工作模式章节所示。 TBC 寄存器 Bit Name R/W POR 7 TBON R/W 0 6 TBCK R/W 0 5 TB11 R/W 1 4 TB10 R/W 1 3 LXTLP R/W 0 Bit 7 Bit 6 Bit 5~4 Bit 3 Bit 2~0 TBON:TB0 和 TB1 控制位 0:除能 1:使能 TBCK:选择 fTB 时钟位 0:fTBC 1:fSYS/4 TB11~TB10:选择时基 1 溢出周期位 00:4096/fTB 01:8192/fTB 10:16384/fTB 11:32768/fTB LXTLP:LXT 低功耗控制位 0:除能 1:使能 TB02~TB00:选择时基 0 溢出周期位 000:256/fTB 001:512/fTB 010:1024/fTB 011:2048/fTB 100:4096/fTB 101:8192/fTB 110:16384/fTB 111:32768/fTB 2 TB02 R/W 1 1 TB01 R/W 1 0 TB00 R/W 1 TB 02~TB 00 LX T L IR C fS Y S /4 M U X fT B C M U fT B X ¸ 2 8 ~ 2 15 T im e B a s e 0 In te r r u p t ¸ 212 ~ 215 T im e B a s e 1 In te r r u p t C o n fig u r a tio n O p tio n T B C K B it TB 11~TB 10 时基中断 Rev. 1.60 204 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 串行接口模块中断 串行接口模块中断,即 SIM 中断,属于多功能中断。当一个字节数据已由 SIM 接口接收或发送完,中断请求标志 SIMF 被置位,SIM 中断请求产生。若要程 序跳转到相应中断向量地址,总中断控制位 EMI、串行接口中断使能位 SIME 和多功能中断使能位需先被置位。当中断使能,堆栈未满且一个字节数据已被 传送或接收完毕时,可跳转至相关多功能中断向量子程序中执行。当串行接口 中断响应,EMI 将被自动清零以除能其它中断,多功能中断请求标志也可自动 清除,但 SIMF 标志需在应用程序中手动清除。 外部设备中断 外部设备中断和外部中断工作方式类似,属于多功能中断。当 PINT 引脚出现 一个下降沿跳变,此时外部中断请求标志位 XPF 被置位,外部设备发生中断。 要使程序跳转至相应中断向量地址,总中断控制位 EMI、外部设备中断使能位 XPE 和相应多功能中断使能位必须先被置位。当中断使能,堆栈未满且外部设 备中断脚出现一个下降沿跳变,单片机将调用位于多功能中断向量相应子程序。 当响应外部设备中断服务子程序时,EMI 位会被清零以除能其它中断,多功能 中断请求标志位也将自动清除。 XPF 标志位不会自动复位,由应用程序清零。外部设备中断引脚与其它引脚共 用,需正确地设置以使能外部设备中断脚。 EEPROM 中断 EEPROM 中断也属于多功能中断。当写或读周期结束,EEPROM 中断请求标 志 DEF 被置位,EEPROM 中断请求产生。若要程序跳转到相应中断向量地址, 总中断控制位 EMI、EEPROM 中断使能位 DEE 和相应多功能中断使能位需先 被置位。当中断使能,堆栈未满且 EEPROM 写或读周期结束时,可跳转至相关 多功能中断向量子程序中执行。当 EEPROM 中断响应,EMI 将被自动清零以 除能其它中断,多功能中断请求标志也可自动清除,但 DEF 标志需在应用程序 中手动清除。 LVD 中断 LVD 中断也属于多功能中断。当低电压检测功能检测到一个低电压时,LVD 中 断请求标志 LVF 被置位,LVD 中断请求产生。若要程序跳转到相应中断向量地 址,总中断控制位 EMI、低电压中断使能位 LVE 和相应多功能中断使能位需先 被置位。当中断使能,堆栈未满且低电压条件发生时,可跳转至相关多功能中 断向量子程序中执行。当低电压中断响应,EMI 将被自动清零以除能其它中断, 多功能中断请求标志也可自动清除,但 LVF 标志需在应用程序中手动清除。 TM 中断 简易型和标准型 TM 各有两个中断,增强型 TM 有三个中断。所有的 TM 中 断也属于多功能中断。简易型和标准型 TM 各有两个中断请求标志位 TnPF、 TnAF 及两个使能位 TnPE、TnAE。增强型 TM 有三个中断请求标志 TnPF、 TnAF、TnBF 及三个使能位 TnPE、TnAE、TnBE。当 TM 比较器 P、A、B 匹 配情况发生时,任意 TM 中断请求标志被置位,TM 中断请求产生。 若要程序跳转到相应中断向量地址,总中断控制位 EMI、相应 TM 中断使能位 和相关多功能中断使能位 MFnE 需先被置位。当中断使能,堆栈未满且 TM 比 较器匹配情况发生时,可跳转至相关多功能中断向量子程序中执行。当 TM 中 断响应,EMI 将被自动清零以除能其它中断,相关 MFnF 标志也可自动清除, 但 TM 中断请求标志需在应用程序中手动清除。 Rev.1.60 205 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 中断唤醒功能 每个中断都具有将处于休眠或空闲模式的单片机唤醒的能力。当中断请求标志 由低到高转换时唤醒动作产生,其与中断是否使能无关。因此,尽管单片机处 于休眠或空闲模式且系统振荡器停止工作,如有外部中断脚上产生外部边沿跳 变,低电压或比较器输入改变都可能导致其相应的中断标志被置位,由此产生 中断,因此必须注意避免伪唤醒情况的发生。若中断唤醒功能被除能,单片机 进入休眠或空闲模式前相应中断请求标志应被置起。中断唤醒功能不受中断使 能位的影响。 编程注意事项 通过禁止相关中断使能位,可以屏蔽中断请求,然而,一旦中断请求标志位被 设定,它们会被保留在中断控制寄存器内,直到相应的中断服务子程序执行或 请求标志位被软件指令清除。 多功能中断中所含中断相应程序执行时,多功能中断请求标志 MF0F~MF5F 可 以自动清零,但各自的请求标志需在应用程序中手动清除。 建议在中断服务子程序中不要使用“CALL 子程序”指令。中断通常发生在不 可预料的情况或是需要立刻执行的某些应用。假如只剩下一层堆栈且没有控制 好中断,当“CALL 子程序”在中断服务子程序中执行时,将破坏原来的控制 序列。 所有中断在休眠或空闲模式下都具有唤醒功能,当中断请求标志发生由低到高 的转变时都可产生唤醒功能。若要避免相应中断产生唤醒动作,在单片机进入 休眠或空闲模式前需先将相应请求标志置为高。 当进入中断服务程序,系统仅将程序计数器的内容压入堆栈,如果中断服务程 序会改变状态寄存器或其它的寄存器的内容而破坏控制流程,应事先将这些数 据保存起来。 若从中断子程序中返回可执行 RET 或 RETI 指令。除了能返回至主程序外, RETI 指令还能自动设置 EMI 位为高,允许进一步中断。RET 指令只能返回至 主程序,清除 EMI 位,除能进一步中断。 Rev. 1.60 206 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 暂停模式和唤醒 进入空闲或休眠模式 只有在应用程序中执行“HALT”指令,单片机才可以进入休眠或空闲模式。执 行这条指令之后,会有以下情形发生: ● 系统振荡器停止运作,且应用程序停止在“HALT”指令处。 ● 数据存储器内容和寄存器内容保持当前值。 ● 如果 WDT 使能且 WDT 时钟源来自 fSUB,则 WDT 将被清零并重新计数;如 果 WDT 时钟源来自系统时钟,则 WDT 停止计数。 ● 输入 / 输出端口保持当前状态。置位状态寄存器中的暂停标志位 – PDF,并清 零看门狗溢出标志位 – TO。 静态电流的注意事项 要使系统静态电流降到最小,为微安级,除了需要单片机进入休眠或空闲模式, 还要考虑到电路的设计。应该特别注意的是单片机的输入 / 输出口的状态。所 有高阻抗输入脚都必须连接到固定的高或低电平,因为引脚浮空会造成内部振 荡并导致耗电增加。这也应用于有不同封装的单片机,因为它们可能含有未引 出的引脚,这些引脚也必须设为输出或带有上拉电阻的输入。另外还需注意单 片机设为输出的 I/O 引脚上的负载。应将它们设置在有最小拉电流的状态或将 它们和其它的 CMOS 输入一样接到没有拉电流的外部电路上。还应注意的是, 如果使能配置选项中的 LIRC 振荡器,会导致耗电增加。 唤醒 系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒: ● 外部复位 ● PA 口下降沿 ● 系统中断 ● WDT 溢出 若由外部 RES 引脚唤醒,系统会经过完全复位的过程;若由 WDT 溢出唤醒, 则会发生看门狗定时器复位。这两种唤醒方式都会使系统复位,可以通过状态 寄存器中 TO 和 PDF 位来判断它的唤醒源。系统上电或执行清除看门狗的指令, 会清零 PDF;执行“HALT”指令,PDF 将被置位。看门狗计数器溢出将会置 位 TO 标志并唤醒系统,这种复位会重置程序计数器和堆栈指针,其它标志保 持原有状态。 PA 口中的每个引脚都可以通过 PAWU 寄存器使能下降沿唤醒功能。PA 端口唤 醒后,程序将在“HALT”指令后继续执行。 如果系统是通过中断唤醒,则有两种可能发生。第一种情况是:相关中断除能 或是堆栈已满,则程序会在“HALT”指令之后继续执行。这种情况下,唤醒系 统的中断会等到相关中断使能或有堆栈层可以使用之后才执行。第二种情况是: 相关中断使能且堆栈未满,则中断可以马上执行。 如果在进入休眠或空闲模式 之前中断标志位已经被设置为“1”,则相关中断的唤醒功能将无效。 Rev.1.60 207 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 低电压检测 – LVD 此系列单片机都具有低电压检测功能,即 LVD。该功能使能用于监测电源电压 VDD,若电源电压低于一定值可提供一个警告信号。此功能在电池类产品中非 常有用,在电池电压较低时产生警告信号。低电压检测也可产生中断信号。 LVD 寄存器 低电压检测功能由 LVDC 寄存器控制。VLVD2~VLVD0 位用于选择 8 个固定的 电压参考点。LVDO 位被置位时低电压情况发生,若 LVDO 位为低表明 VDD 电 压工作在当前所设置低电压水平值之上。LVDEN 位用于控制低电压检测功能的 开启 / 关闭,设置此位为高使能此功能,反之,关闭内部低电压检测电路。低 电压检测会有一定的功耗,在不使用时可考虑关闭此功能,此举在功耗要求严 格的电池供电应用中值得考虑。 LVDC 寄存器 Bit 7 Name — R/W — POR — 6 5 4 3 2 1 0 — LVDO LVDEN — VLVD2 VLVD1 VLVD0 — R R/W — R/W R/W R/W — 0 0 — 0 0 0 Bit 7~6 Bit 5 Bit 4 Bit 3 Bit 2~0 未定义,读为“0” LVDO:LVD 输出标志位 0:未检测到低电压 1:检测到低电压 LVDEN:低电压检测控制位 0:除能 1:使能 未定义,读为“0” VLVD2~VLVD0:选择 LVD 电压位 000:2.0V 001:2.2V 010:2.4V 011:2.7V 100:3.0V 101:3.3V 110:3.6V 111:4.4V Rev. 1.60 208 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 LVD 操作 通过比较电源电压 VDD 与存储在 LVDC 寄存器中的预置电压值的结果,低电压 检测功能工作。其设置的范围为 2.0V~4.4V。当电源电压 VDD 低于预置电压值 时,LVDO 位被置为高,表明低电压产生。低电压检测功能由一个自动使能的 参考电压提供。若 LVDEN 位为高,当单片机掉电时低电压检测器保持有效状 态。低电压检测器使能后,读取 LVDO 位前,电路稳定需要一定的延时 tLVDS。 注意,VDD 电压可能上升或下降比较缓慢,在 VLVD 电压值附近时,LVDO 位可 能有多种变化。 VDD V LV D LV D E N LV D O tL V D S LVD 操作 低电压检测器也有自己的中断功能,也是属于多功能中断的一种,它是除了轮 询 LVDO 位之外的另一种检测低电压的方法。中断条件产生置位 LVDO 并延时 tLVD 后,中断产生。若 LVDEN 位为高,当单片机掉电时低电压检测器保持有 效状态。此种情况下,若 VDD 降至小于 LVD 预置电压值时,中断请求标志位 LVF 将被置位,中断产生,单片机将被从休眠或空闲模式中唤醒。若不要求低 电压检测的唤醒功能使能,在单片机进入休眠或空闲模式前应将 LVF 标志置为 高。 Rev.1.60 209 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 带 SCOM 功能的 LCD 单片机具有驱动外部 LCD 面板的能力。LCD 驱动的 COM 脚 SCOM0~SCOM3 与 PC0~PC3 或 PC0~PC1,PC6~PC7 口共用。LCD 控制信号 (COM & SEG) 由 软件编程实现。 LCD 操作 单片机通过设置 PC0~PC3 或 PC0~PC1,PC6~PC7 作为 COM 引脚,其它输出 口作为 SEG 引脚,以驱动外部的液晶面板。LCD 驱动功能是由 SCOMC 寄存 器来控制,另外,该寄存器可设置 LCD 的开启和关闭以及输出偏压值等功能, 使得 COM 口输出 VDD/2 的电压,从而实现 1/2 bias LCD 的显示。 SCOMC 寄存器中的 SCOMEN 位是 LCD 驱动的主控制位,它与 COMnEN 位搭 配共同选择哪些 PC 端口用于 LCD 驱动。需注意的是,端口控制寄存器不需要 设置为输出以使能 LCD 驱动操作。 V DD S C O M o p e r a tin g c u r r e n t V D D /2 S C O M 0~ SCO M 3 C O M nE N SCO M EN LCD COM 偏压 SCOMEN 0 1 1 COMnEN 引脚功能 × I/O 0 I/O 1 SCOMn 输出控制 O/P Level 0或1 0或1 VDD/2 Rev. 1.60 210 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 LCD 偏压控制 LCD 驱动器可以提供多种驱动电流选择以适应不同 LCD 面板的需求。通过设 置 SCOMC 寄存器中 ISEL0 位和 ISEL1 位可以配置不同的偏压电阻。 SCOMC 寄存器 ● HT66F20 Bit 7 6 5 4 3 2 1 0 Name D7 ISEL1 ISEL0 SCOMEN COM3EN COM2EN COM1EN COM0EN R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7 Bit 6,5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 保留位 0:正确电平值 – 该位需清除为 0 1:不可预测的操作 – 该位不能设置为高 ISEL1,ISEL0:选择 SCOM 典型偏压电流 (VDD=5V) 位 00:25μA 01:50μA 10:100μA 11:200μA SCOMEN:SCOM 模块控制位 0:除能 1:使能 COM3EN:选择 PC3 或 SCOM3 位 0:GPIO 1:SCOM3 COM2EN:选择 PC2 或 SCOM2 位 0:GPIO 1:SCOM2 COM1EN:选择 PC1 或 SCOM1 位 0:GPIO 1:SCOM1 COM0EN:选择 PC0 或 SCOM0 位 0:GPIO 1:SCOM0 Rev.1.60 211 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● HT66F30/HT66F40/HT66F50/HT66F60 Bit 7 6 5 4 3 2 1 0 Name D7 ISEL1 ISEL0 SCOMEN COM3EN COM2EN COM1EN COM0EN R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7 Bit 6,5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 保留位 0:正确电平值 – 该位需清除为 0 1:不可预测的操作 – 该位不能设置为高 ISEL1,ISEL0:选择 SCOM 典型偏压电流 (VDD=5V) 位 00:25μA 01:50μA 10:100μA 11:200μA SCOMEN:SCOM 模块控制位 0:除能 1:使能 COM3EN:选择 PC7 或 SCOM3 位 0:GPIO 1:SCOM3 COM2EN:选择 PC6 或 SCOM2 位 0:GPIO 1:SCOM2 COM1EN:选择 PC1 或 SCOM1 位 0:GPIO 1:SCOM1 COM0EN:选择 PC0 或 SCOM0 位 0:GPIO 1:SCOM0 Rev. 1.60 212 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 配置选项 配置选项在烧写程序时写入芯片。通过 HT-IDE 的软件开发环境,使用者在开 发过程中可以选择配置选项。当配置选项烧入单片机后,无法再通过应用程序 修改。所有位必须按系统的需要定义,具体内容可参考下表: 序号 选项 振荡器选项 高速振荡器类型选择 – fH: 1 1. HXT 2. ERC 3. HIRC 低速振荡器类型选择 – fL: 2 1. LXT 2. LIRC WDT 时钟选择 – fS: 3 1. fSUB 2. fSYS/4 HIRC 频率选择: 4 1. 4MHz 2. 8MHz 3. 12MHz 注:fSUB 和 fTBC 时钟源通过 fL 的配置选项选择为 LXT 或 LIRC 复位脚选项 PB0/RES 脚选项: 5 1. RES 脚 2. I/O 脚 看门狗选项 看门狗定时器功能: 6 1. 使能 2. 除能 清看门狗指令选择: 7 1. 1 条指令 2. 2 个指令 LVR 选项 LVR 功能: 8 1. 使能 2. 除能 LVR 电压选择: 1. 2.10V 9 2. 2.55V 3. 3.15V 4. 4.20V SIM 选项 SIM 功能: 10 1. 使能 2. 除能 . Rev.1.60 213 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 序号 11 12 13 SPI – WCOL 位: 1. 使能 2. 除能 SPI – CSEN 位: 1. 使能 2. 除能 I2C 去抖时间选择: 1. 无去抖 2. 1 个系统时钟去抖 3. 2 个系统时钟去抖 选项 应用电路 V DD 0 .0 1 m F * * VDD 10kW ~ 0 .1 m F 1N 4148* 100kW R eset C ir c u it 0 .1 ~ 1 m F RES 300W * A N 0~A N 11 P B 5~P B 7 VSS P C 0~P C 7 O SC C ir c u it S e e O s c illa to r S e c tio n O SC1 O SC2 P D 0~P D 7 P E 0~P E 5 P F2~P F7 P G 0~P G 1 O SC XT1 C ir c u it XT2 S e e O s c illa to r S e c tio n 注:“*” 表示建议加上此元件以加强静电保护。 “**”表示建议在电源有较强干扰场合加上此元件。 Rev. 1.60 214 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UART 模块串行接口 UART 模块特性 ● 由 SPI 接口实现 Holtek MCU 间的通信 ● 全双工通用异步接收器 / 发送器 (UART) ♦ 8 位或 9 位传输格式 ♦ 奇校验、偶校验或无校验 ♦ 1 位或 2 位停止位 ♦ 8 位预分频的波特率发生器 ♦ 奇偶、帧、噪声和溢出检测 ♦ 支持地址匹配中断(最后一位 =1) ♦ 独立的发送和接收使能 ♦ 4-byte FIFO 接收缓冲器 ♦ 发送和接收中断源: – 发送完成 – 发送器空闲 – 接收完成 – 接收器溢出 – 地址匹配 ● UART 传输模块除能时,TX 脚处于高阻抗状态 ● UART 接收模块除能时,RX 脚处于高阻抗状态 ● VDD=5V 时,CMOS 时钟输入脚 CLKI 频率高达 20MHz UART 模块概述 此系列单片机具有一个全双工的异步串行通信接口——UART,可以很方便的 与其它具有串行口的芯片通信。它可以支持诸如单片机之间的数据通信网络, 低成本 PC 和外部设备间数据连接,便携式和电池供电设备间的通信,工厂自 动化及过程控制等。 UART 模块方框图 U A R T M o d u le SDI SDO SCK V DD SPI In te rfa c e TX UART In te rfa c e RX SCS VDD C LK I GND IN T Rev.1.60 215 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 引脚图 NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P A 0 /C 0 X /T P 0 _ 0 /A N 0 1 VSS&AVSS 2 P B 4 /X T 2 3 P B 3 /X T 1 4 P B 2 /O S C 2 5 P B 1 /O S C 1 6 VDD&AVDD 7 P B 0 /R E S 8 NC 9 N C 10 N C 11 N C 12 2 4 P A 1 /T P 1 A /A N 1 2 3 P A 2 /T C K 0 /C 0 + /A N 2 2 2 P A 3 /IN T 0 /C 0 -/A N 3 2 1 P A 4 /IN T 1 /T C K 1 /A N 4 2 0 P A 5 /C 1 X /S D O /A N 5 1 9 P A 6 /S D I/S D A /A N 6 1 8 P A 7 /S C K /S C L /A N 7 1 7 P B 5 /S C S /V R E F 16 R X 15 TX 14 N C 13 N C H T66FU 30 2 4 S K D IP -A /S O P -A P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] 40 39 38 37 36 35 34 33 32 31 1 30 2 29 3 28 4 27 5 H T66FU 40 26 6 4 0 Q F N -A 25 7 24 8 23 9 22 10 21 11 12 13 14 1516 17 18 19 20 NC NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] PE5 P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P F 0 /[C 0 X ] NC NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] P E 7 /[IN T 1 ] P E 6 /[IN T 0 ] VSS&AVSS P B 4 /X T 2 P B 3 /X T 1 P B 2 /O S C 2 P B 1 /O S C 1 VDD&AVDD P B 0 /R E S PE5 P E 4 /[T P 1 B _ 2 ] P C 1 /T P 1 B _ 1 /S C O M 1 P C 0 /T P 1 B _ 0 /S C O M 0 NC P C 7 /[T P 1 A ]/S C O M 3 P C 6 /[T P 0 _ 0 ]/S C O M 2 PE3 PE2 PE1 NC NC 1 48 2 47 3 46 4 45 5 44 6 43 7 42 8 41 9 40 10 39 11 38 12 37 13 36 14 35 15 34 16 33 17 32 18 31 19 30 20 29 21 28 22 27 23 26 24 25 H T66FU 40 4 8 S S O P -A P A 1 /T P 1 A /A N 1 P A 2 /T C K 0 /C 0 + /A N 2 P A 3 /IN T 0 /C 0 -/A N 3 P A 4 /IN T 1 /T C K 1 /A N 4 P A 5 /C 1 X /S D O /A N 5 P A 6 /S D I/S D A /A N 6 P A 7 /S C K /S C L /A N 7 P B 5 /S C S /V R E F P B 6 /[S D O ] P B 7 /[S D I/S D A ] P D 6 /[S C K /S C L ] P D 7 /[S C S ] NC NC NC P C 2 /T C K /P C K /C 1 + P C 3 /P IN T /T P 2 _ 0 /C 1 NC RX TX NC NC NC NC P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] 44 43 42 41 40 39 38 37 36 35 34 1 33 2 32 3 31 4 30 5 6 7 H T66FU 40 4 4 L Q F P -A 29 28 27 8 26 9 25 10 24 11 23 12 13 14 15 16 17 18 19 20 21 22 NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 PE3 P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] PE5 P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] NC NC NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] NC P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 NC P F 1 /[C 1 X ] 1 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 3 9 3 8 3 73 6 2 35 3 34 4 33 5 32 6 H T66FU 40 31 7 4 8 Q F N -A 30 8 29 9 28 10 27 11 26 12 25 13 14 15 16 17 18 19 20 21 22 23 24 NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 PE3 P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 NC P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] PE5 P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P F 0 /[C 0 X ] Rev. 1.60 216 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 NC NC NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] NC NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ] P F 0 /[C 0 X ] 44 43 42 41 40 39 38 37 36 35 34 1 33 2 32 3 31 4 30 5 6 7 H T66FU 50 4 4 L Q F P -A 29 28 27 8 26 9 25 10 24 11 12 13 14 15 16 17 18 19 20 21 2 22 3 NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 NC P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 NC P F 1 /[C 1 X ] 1 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 3 9 3 8 3 73 6 2 35 3 34 4 33 5 32 6 H T66FU 50 31 7 4 8 Q F N -A 30 8 29 9 28 10 27 11 26 12 25 13 14 15 16 17 18 19 20 21 22 23 24 NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] PE0 PE1 PE2 P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 NC P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] P F 0 /[C 0 X ] P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ] P E 7 /[IN T 1 ] NC NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ]/A N 1 1 40 39 38 37 36 35 34 33 32 31 1 30 2 29 3 28 4 27 5 H T66FU 60 26 6 4 0 Q F N -A 25 7 24 8 23 9 22 10 21 11 12 13 14 1516 17 18 19 20 NC NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ]/A N 1 1 P F 0 /[C 0 X ]/A N 1 0 44 43 42 41 40 39 38 37 36 35 34 1 33 2 32 3 31 4 30 5 6 7 H T66FU 60 4 4 L Q F P -A 29 28 27 8 26 9 25 10 24 11 12 13 14 15 16 17 18 19 20 21 2 22 3 NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P E 0 /[IN T 0 ] P E 1 /[IN T 1 ] P E 2 /[IN T 2 ] P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ]/A N 8 P E 7 /[IN T 1 ]/A N 9 P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ]/A N 8 P E 7 /[IN T 1 ]/A N 9 P F 0 /[C 0 X ]/A N 1 0 NC NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] PF5 PF4 NC NC NC NC NC NC TX RX P D 7 /[S C S ] P D 6 /[S C K /S C L ] P B 7 /[S D I/S D A ] P B 6 /[S D O ] NC P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 NC P F 1 /[C 1 X ]/A N 1 1 1 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 3 9 3 8 3 73 6 2 35 3 34 4 33 5 32 6 H T66FU 60 31 7 4 8 L Q F P -A /Q F N -A 30 8 29 9 28 10 27 11 26 12 25 13 14 15 16 17 18 19 20 21 22 23 24 NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P E 0 /[IN T 0 ] P E 1 /[IN T 1 ] P E 2 /[IN T 2 ] P E 3 /[T P 3 _ 1 ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 NC P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 PF3 PF2 P B 5 /S C S /V R E F P A 7 /S C K /S C L /A N 7 P A 6 /S D I/S D A /A N 6 P A 5 /C 1 X /S D O /A N 5 P A 4 /IN T 1 /T C K 1 /A N 4 P A 3 /IN T 0 /C 0 -/A N 3 P A 2 /T C K 0 /C 0 + /A N 2 P A 1 /T P 1 A /A N 1 P A 0 /C 0 X /T P 0 _ 0 /A N 0 P F 1 /[C 1 X ]/A N 1 1 P F 0 /[C 0 X ]/A N 1 0 1 5 2 5 1 5 0 4 9 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 03 9 2 38 3 37 4 36 5 35 6 7 8 H T66FU 60 5 2 Q F P -A 34 33 32 9 31 10 30 11 29 12 28 13 27 1415 1617 1819 20 2122 232425 26 NC P D 4 /[T P 2 _ 1 ] P D 5 /[T P 0 _ 1 ] P E 0 /[IN T 0 ] P E 1 /[IN T 1 ] P E 2 /[IN T 2 ] P E 3 /[T P 3 _ 1 ] PF6 PF7 P G 0 /[C 0 X ] P G 1 /[C 1 X ] P C 6 /[T P 0 _ 0 ]/S C O M 2 P C 7 /[T P 1 A ]/S C O M 3 P C 0 /T P 1 B _ 0 /S C O M 0 P C 1 /T P 1 B _ 1 /S C O M 1 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ]/A N 8 P E 7 /[IN T 1 ]/A N 9 P E 4 /[T P 1 B _ 2 ] P E 5 /[T P 3 _ 0 ] P B 0 /R E S VDD&AVDD P B 1 /O S C 1 P B 2 /O S C 2 P B 3 /X T 1 P B 4 /X T 2 VSS&AVSS P E 6 /[IN T 0 ]/A N 8 P E 7 /[IN T 1 ]/A N 9 P F 0 /[C 0 X ]/A N 1 0 Rev.1.60 217 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UART 模块引脚说明 引脚名称 I/O 共用引脚映射说明 UART RX 串行数据输入脚 RX I 若 UARTEN=1 且 RXEN=1,RX 为 UART 串行数据输入脚 若 UARTEN=0 或 RXEN=0,RX 处于高阻抗状态 UART TX 串行数据输出脚 TX O 若 UARTEN=1 且 TXEN=1,TX 为 UART 串行数据输出脚 若 UARTEN=0 或 TXEN=0,TX 处于高阻抗状态 SDI I 从机 SPI 串行数据输入信号脚内连 MCU 主机 SPI 模块 SDO 输出信号 SDO O 从机 SPI 串行数据输出信号脚内连 MCU 主机 SPI 模块 SDI 输入信号 SCK I 从机 SPI 串行时钟输入信号脚内连 MCU 主机 SPI 时钟 SCK 输出信号 SCS I 从机 SPI 设备选择输入信号脚内连 MCU 主机 SPI 模块 SCS 输出信号 — 连接 上拉电阻 CLKI I 时钟输入信号脚 内连 MCU 主机 PCK 输出信号 INT O UART 中断输出信号脚 内连 MCU 主机 PINT 输入信号在此信号线上,UART 相关中断将产生一个低脉冲信号 NC — 未使用 注:除 UART TX 和 RX 脚外的所有引脚的描述见 datasheet 其它章节。 UART 模块直流电气特性 符号 参数 IDD1 工作电流 * (SPI 使能 ,UART 除能 ) 测试条件 VDD 条件 3.0V fCLKI=12MHz, SCK=fCLKI/4, 输出无负载 5.0V fCLKI=16MHz, SCK=fCLKI/4, 输出无负载 最小 典型 最大 单位 — — 1.0 mA — — 2.0 mA IDD2 工作电流 * (SPI 使能 ,UART 使能 ) 2.2V fCLKI=6MHz, SCK=fCLKI/4, 输出无负载 5.0V fCLKI=12MHz, SCK=fCLKI/4, 输出无负载 — — 4.2 mA — — 4.8 mA fCLKI=16MHz, SCK=fCLKI/4, ISTB 静态电流 * (SPI 除能 , UART 除能 ) 5.0V SCS=VDD, UARTEN=0, TXEN=1, RXEN=1, SDI=H, — — 0.6 μA RX=H, 输出无负载 VIL RX 端口的低电平输入电压 — — VIH RX 端口的高电平输入电压 — — IOL TX 端口灌电流 3.0V VO=0.1VDD 5.0V 0 — 0.3VDD V 0.7VDD — VDD V 2.5 5.0 — mA 10.0 25.0 — mA IOH RX 端口源电流 3.0V VO=0.9VDD 5.0V -1.5 -3.0 — mA -5.0 -8.0 — mA 3.0V RPH SCS 脚上拉电阻 5.0V — 20 60 100 kΩ 10 30 50 kΩ 注:“*”表示的工作电流 IDD1 为从机 SPI 接口使能且 UART 接口除能时额外消耗的电流。同样,工作电 流 IDD2 为从机 SPI 接口和 UART 接口都使能时额外消耗的电流。若 UART 模块使能,在计算单片 机相关工作电流时需加入 IDD1 或 IDD2。整机的静态电流计算时需加入上表中的静态电流值。 Rev. 1.60 218 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UART 模块交流电气特性 符号 参数 tCP SCK 周期 (tCH+ tCL) tCH SCK 高电平宽度 tCL SCK 低电平宽度 tCSW SCS 高电平宽度 tCSS SCS 到 SCK 的设置时间 tCSH SCS 到 SCK 的保持时间 tSDS SDI 到 SCK 的设置时间 tSDH SDI 到 SCK 的保持时间 tR SPI 输出上升时间 tF SPI 输出下降时间 tW SPI 数据输出延迟时间 测试条件 VDD 条件 3.0V — 5.0V — 3.0V — 5.0V — 3.0V — 5.0V — 3.0V — 5.0V — — — — — — — — — — — — — — — 最小 62.5 50.0 28 22 28 22 500 400 100 0 100 0 — — 0 典型 — — — — — — — — — — — — 10 10 — 最大 — — — — — — — — — — — — — — — 单位 ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns UART 模块功能描述 内嵌的 UART 模块具有一个全双工的异步串行通信口,可以很方便的与其它具 有串行口的芯片通信。UART 具有许多功能特性,发送或接收串行数据时,将 数据组成一个 8 位或 9 位的数据块,连同数据特征位一并传输。MCU 主机 SPI 接口与 UART 从机 SPI 接口内部相连,从而实现 MCU 与 UART 模块间的内部 连接。MCU 与 UART 模块间包括 UART 命令在内的所有数据的发送与接收都 通过该 SPI 接口实现。MCU 通过其主机 SPI 串行接口控制 UART 功能。UART 功能占用一个内部中断向量,当接收到数据或数据发送结束,触发 UART 中断。 UART 模块内部信号 除了 TX 和 RX 引脚外,MCU 和 UART 模块还可经其它连线进行通信,如下表 所示。注意,这些线位于单片机内部,未引出。 V DD VDD SCK SDO M CU SDI SCS P IN T PCK GND SCK SDI SDO SCS IN T C LK I VDD RX UART M o d u le TX GND Rev.1.60 MCU 与 UART 内部连接图 219 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UART 模块 SPI 接口 MCU 与 UART 模块的通信经由内部 SPI 接口实现。SPI 接口由四根信号线组成: SCS(SPI 片选 )、SCK(SPI 时钟 )、SDI( 串行数据输入 ) 和 SDO( 串行数据输出 )。 SCS 为低后,SPI 主机开始数据传输周期。首个 8-bit 数据传输后,SCS 继续保 持在低电平状态直至整个 16-bit 数据传输完成。若在 16-bit 数据未传输完成时 SCS 为高电平状态,则该数据将被 UART 模块 SPI 从机丢弃。 SPI 时序 SPI 通用接口读写操作格式如下: ● 写类型格式:8-bit 命令输入 +8-bit 数据输入 ● 读类型格式:8-bit 命令输入 +8-bit 数据输出 SCS SCK SDI A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 SDO 写类型格式:8-bit 命令输入 +8-bit 数据输入 SCS SCK SDI tw A7 A6 A5 A4 A3 A2 A1 A0 SDO D7 D6 D5 D4 D3 D2 D1 D0 读类型格式:8-bit 命令输入 +8-bit 数据输出 MCU 主机 SPI 需先将 SCS 设为低电平然后将 SCK 设为低电平可以初始化数据 传输。SDI 输入数据位需在下个 SCK 上升沿到达前稳定下来,因为在下一个 SCK 上升沿处 MCU 会将 SDI 的状态锁存。在 SCK 下降沿时 SDO 线更新输出 数据位。下个 SCK 下降沿到来前,主机需获取到线的状态。 SPI 接口上每次发送与(或)接收的数据为 16 位,该 16 位的数据由一个命令 帧和一个数据帧组成。SCS 为高电平时,SPI 接口除能且 SDO 为高阻抗状态。 一个完整的记录传输完成需 16 个 SCK 时钟周期,主机需设置 SCS 为高电平状 态,为下个记录的传输做好准备。 写操作中 SCS 由主机再次设为高时,仅在接收 16-bit 串行数据序列后单片机开 始执行命令。 读操作中单片机开始执行接收到 8-bit 读命令,而后准备输出数据。若有必要, 主机可在此过程中任何时间改变 SCS 的状态以中止读操作,且丢弃已读的数据 部分。 Rev. 1.60 220 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UART 模块外部引脚接口 内 部 UART 有 两 个 外 部 引 脚 TX 和 RX, 可 与 外 部 串 行 接 口 进 行 通 信。 若 UARTEN(UCR1.7) 和 TXEN(UCR2.7) 均为“1”时,TX 脚为发送串行数据输出 脚,RX 为接收串行数据输入脚。若 UARTEN 或 TXEN 为“0”时,TX 和 RX 均为高阻抗状态。 UART 数据传输方案 下图显示了 UART 的整体结构。需要发送的数据首先写入 TXR 寄存器,接着 此数据被传输到发送移位寄存器 TSR 中,然后在波特率发生器的控制下将 TSR 寄存器中数据一位位地移到 TX 引脚上,低位在前。TXR 寄存器被映射到单片 机的数据存储器中,而发送移位寄存器没有实际地址,所以发送移位寄存器不 可直接操作。 数据在波特率发生器的控制下,低位在前高位在后,从外部引脚 RX 进入接收 移位寄存器 RSR。当数据接收完成,数据从接收移位寄存器移入可被用户程序 操作的 RXR 寄存器中。RXR 寄存器被映射到单片机数据存储器中,而接收移 位寄存器没有实际地址,所以接收移位寄存器不可直接操作。需要注意的是, 上述发送寄存器 TXR 和接收寄存器 RXR,其实是共享一个地址的数据寄存器 TXR/RXR 寄存器。 Transmitter Shift Register (TSR) MSB ………………………… LSB TX Pin RX Pin Receiver Shift Register (RSR) MSB ………………………… LSB TX Register (TXR) Baud Rate Generator RX Register (RXR) Buffer 3 Buffer 2 Buffer 1 Data to be transmitted Data received UARUTARDTata数T据ra传ns输fer方S案cheme UART 命令 UART 模块中有读和写命令,读写的命令和地址信息为一个单独的字节,读写 的格式如下表所示。 命令类型 读 FIFO 读寄存器 写 FIFO 写寄存器 Bit 7 0 0 0 0 Bit 6 0 0 0 0 Bit 5 0 0 0 0 Bit 4 0 1 0 1 Bit 3 0 0 1 1 Bit 2 Bit 1 Bit 0 × × × A2 A1 A0 × × × A2 A1 A0 注:“×”此处为“无关” Rev.1.60 221 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UART 状态和控制寄存器 UART 功 能 相 关 的 有 六 个 寄 存 器 —— 控 制 UART 模 块 整 体 功 能 的 USR、 UCR1、UCR2 和 UCR3 寄存器,控制波特率的 BRG 寄存器,管理发送和接收 数据的数据寄存器 TXR/RXT。 A[2:0] 名称 复位 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 00H USR 0000 1011 PERR NF FERR OERR RIDLE RXIF TIDLE TXIF 01H UCR1 0000 0×00 UARTEN BNO PREN PRT STOPS TXBRK RX8 TX8 02H UCR2 0000 0000 TXEN RXEN BRGH ADDEN WAKE RIE TIIE TEIE 03H BRG ×××× ×××× BRG7 BRG6 BRG5 BRG4 BRG3 BRG2 BRG1 BRG0 04H UCR3 0--- ---- URST — — — — — —— 05H~07H 未使用 ---- ---- 保留位 UART 寄存器列表 USR 寄存器 寄存器 USR 是 UART 的状态寄存器,可以通过程序读取。所有 USR 位是只读的。 详细解释如下: Bit 7 6 5 4 3 2 1 0 Name PERR NF FERR OERR RIDLE RXIF TIDLE TXIF R/W R R R R R R R R POR 0 0 0 0 1 0 1 1 Bit 7 Bit 6 Bit 5 Bit 4 PERR:奇偶校验出错标志位 0:奇偶校验正确 1:奇偶校验出错 PERR 是奇偶校验出错标志位。若 PERR=0,奇偶校验正确;若 PERR=1,接收 到的数据奇偶校验出错。只有使能了奇偶校验此位才有效。可使用软件清除该 标志位,即先读取 USR 寄存器再读 RXR 寄存器来清除此位。 NF:噪声干扰标志位 0:没有受到噪声干扰 1:受到噪声干扰 NF 是噪声干扰标志位。若 NF=0,没有受到噪声干扰;若 NF=1,UART 接收数 据时受到噪声干扰。它与 RXIF 在同周期内置位,但不会与溢出标志位同时置 位。可使用软件清除该标志位,即先读取 USR 寄存器再读 RXR 寄存器将清除 此标志位。 FERR:帧错误标志位 0:无帧错误发生 1:有帧错误发生 FREE 是帧错误标志位。若 FREE=0,没有帧错误发生;若 FREE=1,当前的数 据发生了帧错误。可使用软件清除该标志位,即先读取 USR 寄存器再读 RXR 寄存器来清除此位。 OERR:溢出错误标志位 0:无溢出错误发生 1:有溢出错误发生 OERR 是溢出错误标志位,表示接收缓冲器是否溢出。若 OERR=0,没有溢出 错误;若 OERR=1,发生了溢出错误,它将影响下一组数据的接收。可通过软 件清除该标志位,即先读取 USR 寄存器再读 RXR 寄存器将清除此标志位。 Rev. 1.60 222 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Bit 3 Bit 2 Bit 1 Bit 0 RIDLE:接收状态标志位 0:正在接收数据 1:接收器空闲 RIDLE 是接收状态标志位。若 RIDLE=0,正在接收数据;若 RIDLE=1,接收 器空闲。在接收到停止位和下一个数据的起始位之间,RIDLE 被置位,表明 UART 空闲,RX 脚处于逻辑高状态。 RXIF:接收寄存器状态标志位 0:RXR 寄存器为空 1:RXR 寄存器含有有效数据 RXIF 是接收寄存器状态标志位。当 RXIF=0,RXR 寄存器为空;当 RXIF=1, RXR 寄存器接收到新数据。当数据从移位寄存器加载到 RXR 寄存器中,如果 UCR2 寄存器中的 RIE=1,则会触发中断。当接收数据时检测到一个或多个错误 时,相应的标志位 NF、FERR 或 PERR 会在同一周期内置位。读取 USR 寄存器 再读 RXR 寄存器,如果 RXR 寄存器中没有新的数据,那么将清除 RXIF 标志。 TIDLE:数据发送完成标志位 0:数据传输中 1:无数据传输 TIDLE 是数据发送完成标志位。若 TIDLE=0,数据传输中。当 TXIF=1 且数据 发送完毕或者暂停字被发送时,TIDLE 置位。TIDLE=1,TX 引脚空闲且处于逻 辑高状态。读取 USR 寄存器再写 TXR 寄存器将清除 TIDLE 位。数据字符或暂 停字就绪时,不会产生该标志位。 TXIF:发送数据寄存器 TXR 状态位 0:数据还没有从缓冲器加载到移位寄存器中 1:数据已从缓冲器中加载到移位寄存器中(TXR 数据寄存器为空) TXIF 是发送数据寄存器为空标志位。若 TXIF=0,数据还没有从缓冲器加载到 移位寄存器中;若 TXIF=1,数据已从缓冲器中加载到移位寄存器中。读取 USR 存器再写 TXR 寄存器将清除 TXIF。当 TXEN 被置位,由于发送缓冲器未满, TXIF 也会被置位。 Rev.1.60 223 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UCR1 寄存器 UCR1 和 UCR2 是 UART 的两个控制寄存器,用来定义各种 UART 功能,例如 UART 的使能与除能、奇偶校验控制和传输数据的长度等等。 详细解释如下: Bit 7 6 5 4 3 2 1 0 Name UARTEN BNO PREN PRT STOPS TXBRK RX8 TX8 R/W R/W R/W R/W R/W R/W R/W R W POR 0 0 0 0 0 0 × 0 “×”未知 Bit 7 UARTEN:UART 功能使能位 0:UART 除能,TX 和 RX 脚为高阻抗状态 1:UART 使能,TX 和 RX 脚作为 UART 功能引脚 此位为 UART 的使能位。UARTEN=0,UART 除能,RX 和 TX 可用作普通的输 入输出口;UARTEN=1,UART 使能,TX 和 RX 将分别由 TXEN 和 RXEN 控制。 当 UART 被除能将清除缓冲器,所有缓冲器中的数据将被忽略,另外波特率计 数 器、 错 误 和 状 态 标 志 位 被 复 位,TXEN、RXEN、TXBRK、RXIF、OERR、 FERR、PERR 和 NF 清 零 而 TIDLE、TXIF 和 RIDLE 置 位,UCR1、UCR2 和 BRG 寄存器中的其它位保持不变。若 UART 工作时 UARTEN 清零,所有发送 和接收将停止,模块也将复位成上述状态。当 UART 再次使能时,它将在上次 配置下重新工作。 Bit 6 BNO:发送数据位数选择位 0:8-bit 传输数据 1:9-bit 传输数据 BNO 是发送数据位数选择位。BNO=1,传输数据为 9 位;BNO=0,传输数据为 8 位。若选择了 9 位数据传输格式,RX8 和 TX8 将分别存储接收和发送数据的 第 9 位。 Bit 5 PREN:奇偶校验使能位 0:奇偶校验除能 1:奇偶校验使能 此位为奇偶校验使能位。PREN=1,使能奇偶校验;PREN=0,除能奇偶校验。 Bit 4 PRT:奇偶校验选择位 0:偶校验 1:奇校验 奇偶校验选择位。PRT=1,奇校验;PRT=0,偶校验。 Bit 3 STOPS:停止位的长度选择位 0:有一位停止位 1:有两位停止位 此位用来设置停止位的长度。STOP=1,有两位停止位;STOP=0,只有一位停 止位。 Bit 2 TXBRK:暂停字发送控制位 0:没有暂停字要发送 1:发送暂停字 TXBRK 是暂停字发送控制位。TXBRK=0,没有暂停字要发送,TX 引脚正常操 作;TXBRK=1,将会发送暂停字,发送器将发送逻辑“0”。若 TXBRK 为高, 缓冲器中数据发送完毕后,发送器将至少保持 13 位宽的低电平直至 TXBRK 复位。 Bit 1 RX8:接收 9-bit 数据传输格式中第 8 位(只读) 此位只有在传输数据为 9 位的格式中有效,用来存储接收数据的第 9 位。BNO 是用来控制传输位数是 8 位还是 9 位。 Bit 0 TX8:发送 9-bit 数据传输格式中的第 8 位(只写) 此位只有在传输数据为 9 位的格式中有效,用来存储发送数据的第 9 位。BNO 是用来控制传输位数是 8 位还是 9 位。 Rev. 1.60 224 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UCR2 寄存器 UCR2 是 UART 的第二个控制寄存器,它的主要功能是控制发送器、接收器以 及各种 UART 中断源的使能或除能。它也可用来控制波特率,使能接收唤醒和 地址侦测。 详细解释如下: Bit 7 6 5 4 3 2 1 0 Name TXEN RXEN BRGH ADDEN WAKE RIE TIIE TEIE R/W R/W R/W R/W R/W R/W R/W R W POR 0 0 0 0 1 0 1 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 TXEN:UART 发送使能位 0:UART 发送除能 1:UART 发送使能 此位为发送使能位。TXEN=0,发送将被除能,发送器立刻停止工作。另外缓冲 器将被复位,此时 TX 引脚处于高阻抗状态。若 TXEN=1 且 UARTEN=1,则发 送将被使能,TX 引脚将由 UART 来控制。在数据传输时清除 TXEN 将中止数 据发送且复位发送器,此时 TX 引脚作为普通的输入输出端口使用。 RXEN:UART 接收使能位 0:UART 接收除能 1:UART 接收使能 此位为接收使能位。RXEN=0,接收将被除能,接收器立刻停止工作。另外缓 冲器将被复位,此时 RX 引脚处于高阻抗状态。若 RXEN=1 且 UARTEN=1,则 接收将被使能,RX 引脚将由 UART 来控制。在数据传输时清除 RXEN 将中止 数据接收且复位接收器,此时 RX 引脚可作为普通输入输出端口使用。 BRGH:波特率发生器高低速选择位 0:低速波特率 1:高速波特率 此位为波特率发生器高低速选择位,它和 BRG 寄存器一起控制 UART 的波特率。 BRGH=1,为高速模式;BRGH=0,为低速模式。 ADDEN:地址检测使能位 0:地址检测除能 1:地址检测使能 此位为地址检测使能和除能位。ADDEN=1,地址检测使能,此时数据的第 8 位 (BON=0) 或第 9 位 (BON=1) 为高,那么接到的是地址而非数据。若相应的中断 使能且接收到的值最高位为 1,那么中断请求标志将会被置位,若最高位为 0, 那么将不会产生中断且收到的数据也会被忽略。 WAKE:RX 脚下降沿唤醒功能使能位 0:RX 脚下降沿唤醒功能除能 1:RX 脚下降沿唤醒功能使能 此位为接收唤醒功能的使能和除能位。若 WAKE=1 且在 IDLE 或 SLEEP 模式下, RX 引脚的下降沿将唤醒单片机。若 WAKE=0 且在 IDLE 或 SLEEP 模式下,RX 引脚的任何边沿都不能唤醒单片机。 RIE:接收中断使能位 0:接收中断除能 1:接收中断使能 此位为接收中断使能或除能位。若 RIE=1,当 OERR 或 RXIF 置位时,UART 的 中断请求标志置位;若 RIE=0,UART 中断请求标志不受 OERR 和 RXIF 影响。 Rev.1.60 225 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Bit 1 Bit 0 TIIE:发送器空闲中断使能位 0:发送器空闲中断除能 1:发送器空闲中断使能 此位为发送器空闲中断的使能或除能位。若 TIIE=1,当 TIDLE 置位时,UART 的中断请求标志置位;若 TIIE=0,UART 中断请求标志不受 TIDLE 的影响。 TEIE:发送寄存器为空中断使能位 0:发送寄存器为空中断除能 1:发送寄存器为空中断使能 此位为发送寄存器为空中断的使能或除能位。若 TEIE=1,当 TXIF 置位时, UART 的中断请求标志置位;若 TEIE=0,UART 中断请求标志不受 TXIF 的影响。 UCR3 寄存器 UCR3 是 UART 的最后一个控制寄存器,它的主要功能是 UART 模块的软件复 位操作。UCR3 中唯一可用的位是 URST,是软件复位控制位。此位为“0”时, UART 正常运行;若此位为“1”,整个 UART 模块复位。此时,发送和接收器 也复位,UART 相关寄存器都保持为复位发生后的 POR 状态。 Bit 7 6 5 4 3 2 1 0 Name URST — — — — — — — R/W R/W — — — — — — — POR 0 — — — — — — — Bit 7 Bit 6~0 URST:UART 软件复位位 0:UART 不发生复位 1:UART 发生复位 未使用,读为“0” 波特率发生器 UART 自身具有一个波特率发生器,通过它可以设定数据传输速率。波特率是 由一个独立的内部 8 位计数器产生,它由 BRG 寄存器和 UCR2 寄存器的第 2 位 BRGH 来控制。BRGH 是决定波特率发生器处于高速模式还是低速模式,从 而决定计算公式的选用。BRG 寄存器的值 N 可根据下表中的公式计算,N 的范 围是 0 到 255。 UCR2 的 BRGH 位 波特率 (BR) 0 fCLKI [64 (N+1)] 1 fCLKI [16 (N+1)] 为得到相应的波特率,首先需要设置 BRGH 来选择相应的计算公式从而算出 BRG 的值。由于 BRG 的值不连续,所以实际波特率和理论值之间有一个偏差。 下面举例怎样计算 BRG 寄存器中的值 N 和误差。 Rev. 1.60 226 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● 波特率和误差的计算 系统选用 4M 晶振且 BRGH=0,若期望的波特率为 4800,计算它的 BRG 寄 存器的值 N,实际波特率和误差。 根据上表,波特率 BR= fCLKI [64 (N+1)] 转换后的公式 N= fCLKI (BR×64) −1 代入参数 N= 4000000 (4800×64) −1 =12.0208 取最接近的值,十进制 12 写入 BRG 寄存器,实际波特率如下 4000000 BR= [64 (12+1)] =4808 误差 4808−4800 4800 =0.16% 下面两表给出 BRGH 取不同值时的实际波特率和误差。 波特率 K/BPS 0.3 1.2 2.4 4.8 9.6 19.2 38.4 57.6 115.2 fCLKI=4MHz BRG Kbaud 误差 (%) 207 0.300 0.16 51 1.202 0.16 25 2.404 0.16 12 4.808 0.16 6 8.929 -6.99 2 20.833 8.51 — — — 0 62.500 8.51 — — — BRGH=0 fCLKI=3.579545MHz BRG Kbaud 误差 (%) 185 0.300 0.00 46 1.190 -0.83 22 2.432 1.32 11 4.661 -2.90 5 9.321 -2.90 2 18.643 -2.90 — — — 0 55.930 -2.90 — — — fCLKI=7.159MHz BRG Kbaud 误差 (%) — — — 92 1.203 0.23 46 2.380 -0.83 22 4.863 1.32 11 9.322 -2.90 5 18.643 -2.90 2 32.286 -2.90 1 55.930 -2.90 0 111.859 -2.90 BRGH=0 时的波特率和误差 波特率 K/BPS 0.3 1.2 2.4 4.8 9.6 19.2 38.4 57.6 115.2 250 fCLKI=4MHz BRG Kbaud 误差 (%) — — — 207 1.202 0.16 103 2.404 0.16 51 4.808 0.16 25 9.615 0.16 12 19.231 0.16 6 35.714 -6.99 3 62.5 8.51 1 125 8.51 0 250 0 BRGH=1 fCLKI=3.579545MHz BRG Kbaud 误差 (%) — — — 185 1.203 0.23 92 2.406 0.23 46 4.76 -0.83 22 9.727 1.32 11 18.643 -2.90 5 37.286 -2.90 3 55.930 -2.90 1 111.86 -2.90 — — — fCLKI=7.159MHz BRG Kbaud 误差 (%) — — — — — — 185 2.406 0.23 92 4.811 0.23 46 9.520 -0.83 22 19.454 1.32 11 37.286 -2.90 7 55.930 -2.90 3 111.86 -2.90 — — — BRGH=1 时的波特率和误差 Rev.1.60 227 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 BRG 寄存器 Bit Name R/W POR Bit 7~0 7 6 5 4 3 2 1 0 BRG7 BRG6 BRG5 BRG4 BRG3 BRG2 BRG1 BRG0 R/W R/W R/W R/W R/W R/W R/W R/W × × × × × × × × “×”未知 BRG7~BRG0:波特率值 软件设置 BRGH 位(设置波特率发生器的速度)和 BRG 寄存器(设置波特率 的值),一起控制 UART 的波特率。 UART 模块的设置与控制 UART 采用标准的不归零码传输数据,这种方法通常被称为 NRZ 法。它由 1 位 起初位,8 位或 9 位数据位和 1 位或者两位停止位组成。奇偶校验是由硬件自 动完成的,可设置成奇校验、偶校验和无校验三种格式。常用的数据传输格式 由 8 位数据位,1 位停止位,无校验组成,用 8、N、1 表示,它是系统上电的 默认格式。数据位数、停止位数和奇偶校验由 UCR1 寄存器的 BNO、PRT、 PREN 和 STOPS 设定。用于数据发送和接收的波特率由一个内部的 8 位波特率 发送器产生,数据传输时低位在前高位在后。尽管 UART 发送器和接收器在功 能上相互独立,但它们使用相同的数据传输格式和波特率,在任何情况下,停 止位是必须的。 ● UART 的使能和除能 UART 是 由 UCR1 寄 存 器 的 UARTEN 位 来 使 能 和 除 能 的。 若 UARTEN、 TXEN 和 RXEN 都为高,则 TX 和 RX 分别为 UART 的发送端口和接收端口。 若没有数据发送,TX 引脚默认状态为高电平。 UARTEN 清零将除能 TX 和 RX,使其处于高阻抗状态。当 UART 被除能时 将清空缓冲器,所有缓冲器中的数据将被忽略,另外错误和状态标志位被复 位,TXEN、RXEN、TXBRK、RXIF、OERR、FERR、PERR 和 NF 清 零 而 TIDLE、TXIF 和 RIDLE 置位,UCR1、UCR2 和 BRG 寄存器中的其它位保持 不变。若 UART 工作时 UARTEN 清零,所有发送和接收将停止,模块也将复 位成上述状态。当 UART 再次使能时,它将在上次配置下重新工作。 ● 数据位、停止位位数以及奇偶校验的选择 数据传输格式由数据长度、是否校验、校验类型、地址位以及停止位长度组 成。它们都是由 UCR1 寄存器的各个位控制的。BNO 决定数据传输是 8 位还 是 9 位;PRT 决定校验类型;PRTEN 决定是否选择奇偶校验;而 STOPS 决 定选用 1 位还是 2 位停止位。下表列出了各种数据传输格式。地址位用来确 定此帧是否为地址。停止位的长度和数据位的长度无关。 Rev. 1.60 228 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 起始位 8 位数据位 1 1 1 9 位数据位 1 1 1 数据位 地址位 校验位 8 0 0 7 0 1 7 1 0 9 0 0 8 0 1 8 1 0 发送和接收数据格式 停止位 1 1 1 1 1 1 下图是传输 8 位和 9 位数据的波形。 S ta rt B it B it 0 B it 1 B it 2 B it 3 B it 4 B it 5 P a rity B it N ext S ta rt B it 6 B it 7 S to p B it B it 8 -B it D a ta F o r m a t S ta rt B it B it 0 B it 1 B it 2 B it 3 B it 4 B it 5 B it 6 P a rity B it N ext S ta rt B it 7 B it 8 S to p B it B it 9 -B it D a ta F o r m a t ● UART 发送器 UCR1 寄存器的 BNO 位是控制数据传输的长度。BNO=1 其长度为 9 位,第 9 位 MSB 存储在 UCR1 寄存器的 TX8 中。发送器的核心是发送移位寄存器 TSR,它的数据由发送寄存器 TXR 提供,应用程序只须将发送数据写入 TXR 寄存器。上组数据的停止位发出前,TSR 寄存器禁止写入。如果还有新的数 据要发送,一旦停止位发出,待发数据将会从 TXR 寄存器加载到 TSR 寄存器。 TSR 不像其它寄存器一样映射到数据存储器,所以应用程序不能对其进行读 写操作。TXEN=1,发送使能,但若 TXR 寄存器没有数据或者波特率没有设 置,发送器将不会工作。先写 TXR 寄存器再写 TXEN 也会触发发送。当发送 器使能,若 TSR 寄存器为空,数据写入 TXR 寄存器将会直接加载到 TSR 寄 存器中。发送器工作时,TXEN 清零,发送器将立刻停止工作并且复位,此 时 TX 引脚处于高阻抗状态。 ● 发送数据 当 UART 发送数据时,数据从移位寄存器中移到 TX 引脚上,其低位在前高 位在后。在发送模式中,TXR 寄存器在内部总线和发送移位寄存器间形成一 个缓冲。如果选择 9 位数据传输格式,最高位 MSB 存储在 UCR1 寄存器的 TX8 中。 发送器初始化可由如下步骤完成: ♦ 正确地设置 BNO、PRT、PREN 和 STOPS 位以确定数据长度、校验类型和 停止位长度。 ♦ 设置 BRG 寄存器,选择期望的波特率。 ♦ 置高 TXEN,使能 UART 发送器且使 TX 作为 UART 的发送端。 ♦ 读取 USR 寄存器,然后将待发数据写入 TXR 寄存器。注意,此步骤会清 除 TXIF 标志位。 如果要发送多个数据只需重复上一步骤。 Rev.1.60 229 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 当 TXIF=0 时, 数 据 将 禁 止 写 入 TXR 寄 存 器。 可 以 通 过 以 下 步 骤 来 清 除 TXIF: 1. 读取 USR 寄存器 2. 写 TXR 寄存器 只读标志位 TXIF 由 UART 硬件置位。若 TXIF=1,TXR 寄存器为空,其它数 据可以写入而不会覆盖以前的数据。若 TEIE=1,TXIF 标志位会影响中断。 在数据传输时,写 TXR 指令会将待发数据暂存在 TXR 寄存器中,当前数据 发送完毕后,待发数据被加载到发送移位寄存器中。当发送器空闲时,写 TXR 指令会将数据直接加载到 TSR 寄存器中,数据传输立刻开始且 TXIF 置 位。当一帧数据发送完毕,TIDLE 将被置位。 可以通过以下步骤来清除 TIDLE: 1. 读取 USR 寄存器 2. 写 TXR 寄存器 清除 TXIF 和 TIDLE 软件执行次序相同。 ● 发送暂停字 若 TXBRK=1,下一帧将会发送暂停字。它是同一个起始位、13*N(N=1, 2……)位逻辑 0 以及停止位组成。置位 TXBRK 将会发送暂停字,而清除 TXBRK 将产生停止位,传输暂停字不会产生中断。需要注意思的是,暂停字 至少 13 位宽。若 TXBRK 持续为高,那么发送器会一直发送暂停字;当应用 程序清除了 TXBRK,发送器将传输最后一帧暂停字再加上一位或者两位停止 位。暂停字后的高电平保证下一帧数据起始位的检测。 ● UART 接收器 UART 接收器支持 8 位或者 9 位数据接收。若 BNO=1,数据长度为 9 位,而 最高位 MSB 存放在 UCR1 寄存器的 RX8 中。接收器的核心是串行移位寄存 器 RSR。RX 引脚上的数据送入数据恢复器中,它在 16 倍波特率的频率下工 作,而串行移位器工作在正常波特率下。当在 RX 引脚上检测到停止位,数 据从 RSR 寄存器中加载到 RXR 寄存器。RX 引脚上的每一位数据会被采样三 次以判断其逻辑状态。RSR 不像其它寄存器一样映射在数据存储器,所以应 用程序不能对其进行读写操作。 ● 接收数据 当 UART 接收数据时,数据低位在前高位在后,连续地从 RX 引脚进入。 RXR 寄存器在内部总线和接收移位寄存器间形成一个缓冲。RXR 寄存器是一 个两层的 FIFO 缓冲器,它能保存两帧数据的同时接收第三帧数据,应用程序 必须保证在接收完第三帧前读取 RXR 寄存器,否则忽略第三帧数据并且发生 溢出错误。 接收器的初始化可由如下步骤完成: ♦ 正确地设置 BNO、PRT、PREN 和 STOPS 位以确定数据长度、校验类型和 停止位长度。 ♦ 设置 BRG 寄存器,选择期望的波特率。 ♦ 置高 TXEN,使能 UART 发送器且使 RX 作为 UART 的发送端。 ♦ 此时接收器被使能并检测起始位。 ♦ 接收数据将会发生如下事件: ♦ 当 RXR 寄存器中有一帧以上的数据时,USR 寄存器中的 RXIF 位将会置位。 ♦ 若 RIE=1,数据从 RSR 寄存器加载到 RXR 寄存器中将产生中断。 ♦ 若接收器检测到没到帧错误、噪声干扰错误、奇偶出错或溢出错误,那么 相应的错误标志位置位。 Rev. 1.60 230 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 可以通过如下步骤来清除 RXIF: 1. 读取 USR 寄存器 2. 读取 RXR 寄存器 ● 接收暂停字 UART 接收任何暂停字都会当作帧错误处理。接收器只根据 BNO 和 STOPS 位确定一帧数据的长度。若暂停字位数大于 BNO 和 STOPS 位指定的长度, 接收器认为接收已完毕,RXIF 和 FERR 置位,RXR 寄存器清 0,若相应的中 断允许且 RIDLE 为高将会产生中断。若暂停字较长,接收器收到起始位、数 据位将会置位 FERR 标志,且在下一起始位前必须检测到有效的停止位。暂 停字只会被认为包含信息 0 且会置位 FERR 标志。暂停字将会加载到缓冲器 中,在接收到停止位前不会再接收数据,没有检测到停止位也会置位只读标 志位 RIDLE。 UART 接收到暂停字会产生以下事件: ♦ 帧错误标志位 FERR 置位。 ♦ RXR 寄存器清零。 ♦ OERR、NF、PERR、RIDLE 或 RXIF 可能会置位。 ● 空闲状态 当 UART 接收数据时,即在起初位和停止位之间,USR 寄存器的接收标志位 RIDLE 清零。在停止位和下一帧数据的起始位之间,RIDLE 被置位,表示接 收器空闲。 ● 接收中断 USR 寄存器的只读标志位 RXIF 由接收器的边缘触发置位。若 RIE=1,数据 从移位寄存器 RSR 加载到 RXR 寄存器时产生中断,同样地,溢出也会产生 中断。 接收错误处理 UART 会产生几种接收错误,下面部分将描述各错误以及怎样处理。 ● 溢出——OERR 标志 RXR 寄存器是一个两层的 FIFO 缓冲器,它能保存两帧数据的同时接收第三 帧数据,应用程序必须保证在接收完第三帧前读取 RXR 寄存器,否则发生溢 出错误。 产生溢出错误时将会发生以下事件: ♦ USR 寄存器中 OERR 被置位。 ♦ RXR 寄存器中数据不会丢失。 ♦ RSR 寄存器数据将会被覆盖。 ♦ 若 RIE=1,将会产生中断。 ● 噪声干扰——NF 标志 数据恢复时多次采样可以有效的鉴别出噪声干扰。当检测到数据受到噪声干 扰时将会发生以下事件: ♦ 在 RXIF 上升沿,USR 寄存器中只读标志位 NF 置位。 ♦ 数据从 RSR 寄存器加载到 RXR 寄存器中。 ♦ 不产生中断,此位置位的同时由 RXIF 请求中断。 先读取 USR 寄存器再读取 RXR 寄存器将复位 NF。 ● 帧错误——FERR 标志 若在停止位上检测到 0,USR 寄存器中只读标志 FERR 置位。若选择两位停 止位,此两位都必须为高,否则将置位 FERR。它同数据一起存储在缓冲器中, 可被任何复位清零。 Rev.1.60 231 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● 奇偶校验错误——PERR 标志 若接收到数据出现奇偶校验错误,USR 寄存器中只读标志 PERR 置位。只有 使能了奇偶校验,选择了校验类型,此标志位才有效。它同数据一起存储在 缓冲器中,可被任何复位清除。注意,FERR 和 PERR 与相应的数据一起存储 有缓冲器中,在读取数据之前必须先访问错误标志位。 UART 模块中断结构 UART 拥有几个单独的中断,这几个中断产生时,INT 脚上会产生一个低脉 冲信号。发送寄存器为空、发送器空闲、接收器数据有效、溢出和地址检测 和 RX 引脚唤醒都会产生中断。若 UART 中断允许且堆栈未满,程序将会跳 转到相应的中断向量执行中断服务程序,而后再返回主程序。其中四种含有 与 USR 寄存器相关的标志位,若 UCR2 寄存器中相应中断允许位被置位, USR 寄存器中标志位将会产生中断。发送器有两个相应的中断允许位而接收 器共用一个中断允许位。这些允许位可用于禁止个别的 UART 中断源。 地址检测也是 UART 的中断源,它没有相应的标志位,若 UCR2 寄存器中 ADDEN=1,当检测到地址将会产生 UART 中断。RX 引脚唤醒也可以产生 UART 中断,它没有相应的标志位,当 UXR2 中的 WAKE 和 RIE 位被置位, RX 引脚上有下降沿可以唤醒单片机。应注意,RX 唤醒中断发生时,系统必 须延时 tSST 才能正常工作。 注意,USR 寄存器标志位为只读状态,软件不能对其进行设置,在进入相应 中断服务程序时也不能清除这些标志位,其它中断亦是如此。这些标志位仅 在 UART 特定动作发生时才会自动被清除,详细解释见 UART 寄存器章节。 整体 UART 中断的使能或除能可由中断控制寄存器中的相关中断使能控制位 控制,其中断请求由 UART 模块决定。 U S R R e g is te r U C R 2 R e g is te r T r a n s m itte r E m p ty F la g T X IF T E IE 0 1 T r a n s m itte r Id le F la g T ID L E R e c e iv e r O v e r r u n F la g O E R R T IIE 0 IN T 1 R IE 0 OR 1 T o M C U P IN T in te r r u p t in p u t R e c e iv e r D a ta A v a ila b le R X IF R X P in W a k e -u p W AKE 0 1 U C R 2 R e g is te r 0 ADDEN 1 0 1 R X 7 if B N O = 0 R X 8 if B N O = 1 UART 中断框图 Rev. 1.60 232 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ● 地址检测模式 置位 UCR2 寄存器中的 ADDEN 将启动地址检测模式。若此位为“1”,可产 生接收数据有效中断,其请求标志位为 RXIF。若 ADDEN 有效,只有在接收 到数据最高位为 1 才会产生中断,中断允许位 EURI 和 EMI 也要使能才会产 生中断。地址的最高位为第 9 位 (BNO=1) 或第 8 位 (BNO=0),若此位为高, 则接收到的是地址而非数据。只有接收的数据的最后位为高才会产生中断。 若 ADDEN 除能,每接收到一个有效数据便会置位 RXIF,而不用考虑数据的 最后一位。地址检测和奇偶校验在功能上相互排斥,若地址检测模式使能, 必须保证操作的正确,同时必须将奇偶检验使能位清零,除能奇偶校验。 ADDEN 0 1 Bit 9 (BNO=1) Bit 8 (BNO=0) 0 1 0 1 ADDEN 位功能 产生 UART 中断 √ √ × √ UART 模块暂停和唤醒 MCU 和 UART 模 块 分 别 进 入 暂 停 模 式。MCU 进 入 暂 停 模 式 的 方 法 已 在 datasheet 前面有所描述。芯片进入暂停模式前,UART 模块需先行进入暂停模 式。首先清除 UARTEN 位以除能 UART 模块电路,然后设置 SCS 为高以除能 SPI 接口电路。当 UART 和 SPI 接口均进入暂停模式后,UART 模式的 SCK 和 CLKI 时钟源将除能。清除 SCS,然后置位 UARTEN 可使 UART 模块进入上 电状态。当传送数据时,UART 进入暂停模式,发送将停止并且 TX 引脚保持 高电平。同样地,当接收数据时 UART 进入暂停模式,数据接收也会停止。当 UART 电路进入暂停模式,USR、UCR1、UCR2 和 UCR3、接收 / 发送寄存器、 BRG 寄存器都不会受到影响。 UART 功能中包括了 RX 引脚的唤醒功能,由 UCR2 寄存器中 WAKE 位控制。 进入暂停模式前,若该标志位与 UART 允许位 UARTEN、接收器允许位 RXEN 和接收器中断位 RIE 都被置位,则 RX 引脚的下降沿可唤醒单片机。唤醒后系 统需延时 tSST 才能正常工作,在此期间,RX 引脚上的任何数据将被忽略。 若要唤醒并产生 UART 中断,除了唤醒使能控制位和接收中断使能控制位需置 位外,全局中断允许位 EMI 和相关中断使能控制位也必须置位;若这两标志位 没有被置位,那么,单片机将可以被唤醒但不会产生中断。同样唤醒后系统需 一定的延时才能正常工作,然后才会产生 UART 中断。 Rev.1.60 233 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 UART 功能的使用 若使用 UART 功能,需完成下列几个步骤以使 UART 模块能够正常工作。 ● SPI 的功能性引脚用于 UART 模块数据的发送与接收时,其引脚重置功能需 正确设置。 为使 MCU 主机 SPI 和 UART 模块从机 SPI 连接正确,SIM 引脚重置寄存器 PRM0 中 PCK 和 PINTB 引脚的设置需同下表中的值保持一致。 ♦ HT66FU30 – PRM0 寄存器—PCK 和 PINT 引脚重置设置 位 1 名称 SIMPS0 设置值 1 ♦ HT66FU40/HT66FU50 – PRM0 寄存器—PCK 和 PINT 引脚重置设置 0 PCKPS 1 位 2 1 名称 SIMPS1 SIMPS0 设置值 0 1 ♦ HT66FU60 – PRM0 寄存器—PCK 和 PINT 引脚重置设置 0 PCKPS 1 位 名称 设置值 2 SIMPS1 1 1 SIMPS0 1 0 PCKPS 1 ● 需设置 SIM 工作模式控制位 SIM2~SIM0(SIMC0.7~5) 使能 SIM,使其以不同 的 SPI 时钟频率工作在 SPI 主机模式。 ♦ SIMC0 寄存器中的 SIM 工作模式控制位 SIM2~SIM0 位 2 1 0 名称 SIM2 SIM1 SIM0 值 100,011,010,001,000 000:SPI 主机模式;SPI 时钟为 fSYS/4 001:SPI 主机模式;SPI 时钟为 fSYS/16 010:SPI 主机模式;SPI 时钟为 fSYS/64 011:SPI 主机模式;SPI 时钟为 fTBC 100:SPI 主机模式;SPI 时钟为 TM0 CCRP 匹配频率 /2 101~111:未使用 ● PCK 控制位设置为“1”可使能 PCK 输出,此举可为 UART 波特率发生器提 供各种 PCK 输出频率,而输出频率则由 SIMC0 寄存器中的 PCKP1 和 PCKP0 位决定。 ♦ SIMC0 寄存器中的 PCK 输出频率选择位 PCKP1~PCKP0 位 3 2 名称 PCKP1 PCKP0 值 11,10,01,00 00:PCK 输出频率为 fSYS 01:PCK 输出频率为 fSYS/4 10:PCK 输出频率为 fSYS/8 11:PCK 输出频率为 TM0 CCRP 匹配频率 /2 Rev. 1.60 234 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 ♦ SIMC0 寄存器中的 PCK 输出使能控制位 PCKEN 位 4 名称 PCKEN 值 1 0:除能 PCK 输出 1:使能 PCK 输出 上述条件设置完成后,MCU 可通过设置 SIMEN 位为高使能 SIM 接口,使 用 SPI 接口实现与外部 UART 的通信。MCU 主机 SPI 功能的详细描述请参考 datasheet 中串行接口模块章节。 UART 模块应用电路 V DD 0 .0 1 m F * * VDD 10kW ~ 0 .1 m F 1N 4148* 100kW R eset C ir c u it RES 300W * ANx 0 .1 ~ 1 m F I/O P o rts VSS O SC C ir c u it O SC1 O SC2 S e e O s c illa to r TX S e c tio n RX O SC XT1 C ir c u it XT2 S e e O s c illa to r S e c tio n 注:“*”表示建议加上此元件以加强静电保护。 “**”表示建议在电源有较强干扰场合加上此元件。 R S 232 T r a n s c e iv e r T IN ROUT T o / F ro m R S 2 3 2 B u s Rev.1.60 235 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 指令集 简介 任何单片机成功运作的核心在于它的指令集,此指令集为一组程序指令码,用 来指导单片机如何去执行指定的工作。在 HOLTEK 单片机中,提供了丰富且灵 活的指令,共超过六十条,程序设计者可以事半功倍地实现他们的应用。 为了更加容易理解各种各样的指令码,接下来按功能分组介绍它们。 指令周期 大部分的操作均只需要一个指令周期来执行。分支、调用或查表则需要两个指 令周期。一个指令周期相当于四个系统时钟周期,因此如果在 8MHz 的系统 时钟振荡器下,大部分的操作将在 0.5ms 中执行完成,而分支或调用操作则将 在 1ms 中执行完成。虽然需要两个指令周期的指令通常指的是 JMP、CALL、 RET、RETI 和查表指令,但如果牵涉到程序计数器低字节寄存器 PCL 也将多 花费一个周期去加以执行。即指令改变 PCL 的内容进而导致直接跳转至新地址 时,需要多一个周期去执行,例如“CLR PCL”或“MOV PCL, A”指令。对 于跳转指令必须注意的是,如果比较的结果牵涉到跳转动作将多花费一个周期, 如果没有则需一个周期即可。 数据的传送 单片机程序中数据传送是使用最为频繁的操作之一,使用三种 MOV 的指令, 数据不但可以从寄存器转移至累加器 ( 反之亦然 ),而且能够直接移动立即数到 累加器。数据传送最重要的应用之一是从输入端口接收数据或传送数据到输出 端口。 算术运算 算术运算和数据处理是大部分单片机应用所必需具备的能力,在盛群单片机内 部的指令集中,可直接实现加与减的运算。当加法的结果超出 255 或减法的 结果少于 0 时,要注意正确的处理进位和借位的问题。INC、INCA、DEC 和 DECA 指令提供了对一个指定地址的值加一或减一的功能。 逻辑和移位运算 标准逻辑运算例如 AND、OR、XOR 和 CPL 全都包含在盛群单片机内部的指令 集中。大多数牵涉到数据运算的指令,数据的传送必须通过累加器。在所有逻 辑数据运算中,如果运算结果为零,则零标志位将被置位,另外逻辑数据运用 形式还有移位指令,例如 RR、RL、RRC 和 RLC 提供了向左或向右移动一位的 方法。不同的移位指令可满足不同的应用需要。移位指令常用于串行端口的程 序应用,数据可从内部寄存器转移至进位标志位,而此位则可被检验,移位运 算还可应用在乘法与除法的运算组成中。 Rev. 1.60 236 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 分支和控制转换 程序分支是采取使用 JMP 指令跳转至指定地址或使用 CALL 指令调用子程序的 形式,两者之不同在于当子程序被执行完毕后,程序必须马上返回原来的地址。 这个动作是由放置在子程序里的返回指令 RET 来实现,它可使程序跳回 CALL 指令之后的地址。在 JMP 指令中,程序则只是跳到一个指定的地址而已,并不 需如 CALL 指令般跳回。一个非常有用的分支指令是条件跳转,跳转条件是由 数据存储器或指定位来加以决定。遵循跳转条件,程序将继续执行下一条指令 或略过且跳转至接下来的指令。这些分支指令是程序走向的关键,跳转条件可 能是外部开关输入,或是内部数据位的值。 位运算 提供数据存储器中单个位的运算指令是盛群单片机的特性之一。这特性对于输 出端口位的设置尤其有用,其中个别的位或端口的引脚可以使用“SET [m].i” 或“CLR [m].i”指令来设定其为高位或低位。如果没有这特性,程序设计师必 须先读入输出口的 8 位数据,处理这些数据,然后再输出正确的新数据。这种 读入 - 修改 - 写出的过程现在则被位运算指令所取代。 查表运算 数据的储存通常由寄存器完成,然而当处理大量固定的数据时,它的存储量常 常造成对个别存储器的不便。为了改善此问题,盛群单片机允许在程序存储器 中建立一个表格作为数据可直接存储的区域,只需要一组简易的指令即可对数 据进行查表。 其它运算 除了上述功能指令外,其它指令还包括用于省电的“HALT”指令和使程序在极 端电压或电磁环境下仍能正常工作的看门狗定时器控制指令。这些指令的使用 则请查阅相关的章节。 Rev.1.60 237 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 指令集概要 下表中说明了按功能分类的指令集,用户可以将该表作为基本的指令参考。 惯例 x:立即数 m:数据存储器地址 A:累加器 i:第 0~7 位 addr:程序存储器地址 助记符 说明 指令 周期 影响标志位 算术运算 ADD A,[m] ACC 与数据存储器相加,结果放入 ACC 1 Z,C,AC,OV ADDM A,[m] ACC 与数据存储器相加,结果放入数据存储器 1 注 Z,C,AC,OV ADD A, x ACC 与立即数相加,结果放入 ACC 1 Z,C,AC,OV ADC A,[m] ACC 与数据存储器、进位标志相加,结果放入 ACC 1 Z,C,AC,OV ADCM A,[m] ACC 与数据存储器、进位标志相加,结果放入数据存储器 1 注 Z,C,AC,OV SUB A, x ACC 与立即数相减,结果放入 ACC 1 Z,C,AC,OV SUB A,[m] ACC 与数据存储器相减,结果放入 ACC 1 Z,C,AC,OV SUBM A,[m] ACC 与数据存储器相减,结果放入数据存储器 1 注 Z,C,AC,OV SBC A,[m] ACC 与数据存储器、进位标志的反相减,结果放入 ACC 1 Z,C,AC,OV SBCM A,[m] ACC 与数据存储器、进位标志相减,结果放入数据存储器 1 注 Z,C,AC,OV DAA [m] 将加法运算中放入 ACC 的值调整为十进制数,并将结果放 入数据存储器 1注 C 逻辑运算 AND A,[m] ACC 与数据存储器做“与”运算,结果放入 ACC 1 Z OR A,[m] ACC 与数据存储器做“或”运算,结果放入 ACC 1 Z XOR A,[m] ACC 与数据存储器做“异或”运算,结果放入 ACC 1 Z ANDM A,[m] ACC 与数据存储器做“与”运算,结果放入数据存储器 1 注 Z ORM A,[m] ACC 与数据存储器做“或”运算,结果放入数据存储器 1 注 Z XORM A,[m] ACC 与数据存储器做“异或”运算,结果放入数据存储器 1 注 Z AND A, x ACC 与立即数做“与”运算,结果放入 ACC 1 Z OR A, x ACC 与立即数做“或”运算,结果放入 ACC 1 Z XOR A, x ACC 与立即数做“异或”运算,结果放入 ACC 1 Z CPL [m] 对数据存储器取反,结果放入数据存储器 1注 Z CPLA [m] 对数据存储器取反,结果放入 ACC 1 Z 递增和递减 INCA [m] 递增数据存储器,结果放入 ACC 1 Z INC [m] 递增数据存储器,结果放入数据存储器 1注 Z DECA [m] 递减数据存储器,结果放入 ACC 1 Z DEC [m] 递减数据存储器,结果放入数据存储器 1注 Z Rev. 1.60 238 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 助记符 说明 移位 RRA [m] 数据存储器右移一位,结果放入 ACC RR [m] 数据存储器右移一位,结果放入数据存储器 RRCA [m] 带进位将数据存储器右移一位,结果放入 ACC RRC [m] 带进位将数据存储器右移一位,结果放入数据存储器 RLA [m] 数据存储器左移一位,结果放入 ACC RL [m] 数据存储器左移一位,结果放入数据存储器 RLCA [m] 带进位将数据存储器左移一位,结果放入 ACC RLC [m] 带进位将数据存储器左移一位,结果放入数据存储器 数据传送 MOV A,[m] 将数据存储器送至 ACC MOV [m],A 将 ACC 送至数据存储器 MOV A, x 将立即数送至 ACC 位运算 CLR [m].i 清除数据存储器的位 SET [m].i 置位数据存储器的位 转移 JMP addr 无条件跳转 SZ [m] 如果数据存储器为零,则跳过下一条指令 SZA [m] 数据存储器送至 ACC,如果内容为零,则跳过下一条指令 SZ [m].i 如果数据存储器的第 i 位为零,则跳过下一条指令 SNZ [m].i 如果数据存储器的第 i 位不为零,则跳过下一条指令 SIZ [m] 递增数据存储器,如果结果为零,则跳过下一条指令 SDZ [m] 递减数据存储器,如果结果为零,则跳过下一条指令 SIZA [m] 递增数据存储器,将结果放入 ACC,如果结果为零,则跳 过下一条指令 SDZA [m] 递减数据存储器,将结果放入 ACC,如果结果为零,则跳 过下一条指令 CALL addr 子程序调用 RET 从子程序返回 RET A, x 从子程序返回,并将立即数放入 ACC RETI 从中断返回 查表 TABRDC [m] 读取当前页的 ROM 内容,并送至数据存储器和 TBLH TABRDL [m] 读取最后页的 ROM 内容,并送至数据存储器和 TBLH 指令 周期 影响标志位 1 无 1注 无 1 C 1注 C 1 无 1注 无 1 C 1注 C 1 无 1注 无 1 无 1注 无 1注 无 2 无 1注 无 1注 无 1注 无 1注 无 1注 无 1注 无 1注 无 1注 无 2 无 2 无 2 无 2 无 2注 无 2注 无 Rev.1.60 239 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 助记符 说明 其它指令 NOP 空指令 CLR [m] 清除数据存储器 SET [m] 置位数据存储器 CLR WDT 清除看门狗定时器 CLR WDT1 预清除看门狗定时器 CLR WDT2 预清除看门狗定时器 SWAP [m] 交换数据存储器的高低字节,结果放入数据存储器 SWAPA [m] 交换数据存储器的高低字节,结果放入 ACC HALT 进入暂停模式 指令 影响标志位 周期 1 无 1注 无 1注 无 1 TO, PDF 1 TO, PDF 1 TO, PDF 1注 无 1 无 1 TO, PDF 注:1. 对跳转指令而言,如果比较的结果牵涉到跳转即需 2 个周期,如果没有跳转发生,则只需一个周 期即可。 2. 任何指令若要改变 PCL 的内容将需要 2 个周期来执行。 3. 对 于“CLR WDT1” 和“CLR WDT2” 指 令 而 言,TO 和 PDF 标 志 位 也 许 会 受 执 行 结 果 影 响, “CLR WDT1”和“CLR WDT2”被连续执行后,TO 和 PDF 标志位会被清零,除此外 TO 和 PDF 标志位保持不变。 Rev. 1.60 240 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 指令定义 ADC A, [m] 指令说明 功能表示 影响标志位 ADCM A, [m] 指令说明 功能表示 影响标志位 ADD A, [m] 指令说明 功能表示 影响标志位 ADD A, x 指令说明 功能表示 影响标志位 ADDM A, [m] 指令说明 功能表示 影响标志位 AND A, [m] 指令说明 功能表示 影响标志位 Add Data Memory to ACC with Carry 将指定数据存储器、累加器和进位标志位的内容相加后, 把结果储存回累加器。 ACC ← ACC + [m] + C OV, Z, AC, C Add ACC to Data Memory with Carry 将指定数据存储器、累加器和进位标志位的内容相加后, 把结果储存回指定数据存储器。 [m] ← ACC + [m] + C OV, Z, AC, C Add Data Memory to ACC 将指定数据存储器和累加器的内容相加后, 把结果储存回累加器。 ACC ← ACC + [m] OV, Z, AC, C Add immediate data to ACC 将累加器和立即数的内容相加后,把结果储存回累加器。 ACC ← ACC + x OV, Z, AC, C Add ACC to Data Memory 将指定数据存储器和累加器的内容相加后, 把结果储存回指定数据存储器。 [m] ← ACC + [m] OV, Z, AC, C Logical AND Data Memory to ACC 将存在累加器和指定数据存储器中的数据作 AND 的运算, 然后把结果储存回累加器。 ACC ← ACC“AND”[m] Z Rev.1.60 241 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 AND A, x 指令说明 功能表示 影响标志位 ANDM A, [m] 指令说明 功能表示 影响标志位 CALL addr 指令说明 功能表示 影响标志位 CLR [m] 指令说明 功能表示 影响标志位 CLR [m].i 指令说明 功能表示 影响标志位 CLR WDT 指令说明 功能表示 影响标志位 Logical AND immediate data to ACC 将存在累加器中的数据和立即数作 AND 的运算, 然后把结果储存回累加器。 ACC ← ACC“AND”x Z Logical AND ACC to Data Memory 将存在指定数据存储器和累加器中的数据作 AND 的运算, 然后把结果储存回数据存储器。 [m] ← ACC“AND”[m] Z Subroutine call 无条件地调用指定地址的子程序,此时程序计数器先加 1 获得下一个要执行的指令地址并压入堆栈,接着载入指定 地址并从新地址继续执行程序,由于此指令需要额外的运 算,所以为一个 2 周期的指令。 Stack ← Program Counter + 1 Program Counter ← addr None Clear Data Memory 指定数据存储器中的每一位均清除为 0。 [m] ← 00H None Clear bit of Data Memory 指定数据存储器中的 i 位清除为 0。 [m].i ← 0 None Clear Watchdog Timer 将 TO、PDF 标志位和 WDT 全都清零。 WDT cleared TO ← 0 PDF ← 0 TO, PDF Rev. 1.60 242 2011-09-09 CLR WDT1 指令说明 功能表示 影响标志位 CLR WDT2 指令说明 功能表示 影响标志位 CPL [m] 指令说明 功能表示 影响标志位 CPLA [m] 指令说明 功能表示 影响标志位 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Pre-clear Watchdog Timer 将 TO、PDF 标志位和 WDT 全都清零,请注意此指令要结 合 CLR WDT2 一起动作且必须交替执行才有作用,重复执 行此项指令而没有与 CLR WDT2 交替执行将无任何作用。 WDT cleared TO ← 0 PDF ← 0 TO, PDF Pre-clear Watchdog Timer 将 TO、PDF 标志位和 WDT 全都清零,请注意此指令要结 合 CLR WDT1 一起动作且必须交替执行才有作用,重复执 行此项指令而没有与 CLR WDT1 交替执行将无任何作用。 WDT cleared TO ← 0 PDF ← 0 TO, PDF Complement Data Memory 将指定数据存储器中的每一位取逻辑反, 相当于从 1 变 0 或 0 变 1。 [m] ← [m] Z Complement Data Memory with result in ACC 将指定数据存储器中的每一位取逻辑反,相当于从 1 变 0 或 0 变 1,而结果被储存回累加器且数据存储器中的内容 不变。 ACC ← [m] Z Rev.1.60 243 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 DAA [m] 指令说明 功能表示 影响标志位 DEC [m] 指令说明 功能表示 影响标志位 DECA [m] 指令说明 功能表示 影响标志位 HALT 指令说明 功能表示 影响标志位 INC [m] 指令说明 功能表示 影响标志位 Decimal-Adjust ACC for addition with result in Data Memory 将存在累加器中的内容数值转换为 BCD( 二进制转成十进 制 ) 数值,如果低 4 位大于 9 或 AC 标志位被置位,则在 低 4 位加上一个 6,不然低 4 位的内容不变,如果高 4 位 大于 9 或 C 标志位被置位,则在高 4 位加上一个 6,十进 制的转换主要是依照累加器和标志位状况,分别加上 00H、06H、60H 或 66H,只有 C 标志位也许会被此指令影 响,它会指出原始 BCD 数是否大于 100,并可以进行双精 度十进制数相加。 [m] ← ACC + 00H 或 [m] ← ACC + 06H 或 [m] ← ACC + 60H 或 [m] ← ACC + 66H C Decrement Data Memory 将在指定数据存储器内的数据减 1。 [m] ← [m] – 1 Z Decrement Data Memory with result in ACC 将在指定数据存储器内的数据减 1,把结果储存回累加器 且数据存储器中的内容不变。 ACC ← [m] – 1 Z Enter power down mode 此指令停止程序的执行并且关闭系统时钟,但数据存储器 和寄存器的内容仍被保留,WDT 和预分频器 (Prescaler) 被 清零,暂停标志位 PDF 被置位且 WDT 溢出标志位 TO 被 清零。 TO ← 0 PDF ← 1 TO, PDF Increment Data Memory 将指定数据存储器内的数据加 1。 [m] ← [m] + 1 Z Rev. 1.60 244 2011-09-09 INCA [m] 指令说明 功能表示 影响标志位 JMP addr 指令说明 功能表示 影响标志位 MOV A, [m] 指令说明 功能表示 影响标志位 MOV A, x 指令说明 功能表示 影响标志位 MOV [m], A 指令说明 功能表示 影响标志位 NOP 指令说明 功能表示 影响标志位 OR A, [m] 指令说明 功能表示 影响标志位 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Increment Data Memory with result in ACC 将指定数据存储器内的数据加 1,把结果储存回累加器且 数据存储器中的内容不变。 ACC ← [m] + 1 Z Jump unconditionally 程序计数器的内容被指定地址所取代,程序由新地址继续 执行,当新地址被加载入时,必须插入一个空指令周期, 所以此指令为 2 个周期的指令 Program Counter ← addr None Move Data Memory to ACC 将指定数据存储器的内容复制到累加器中。 ACC ← [m] None Move immediate data to ACC 将立即数载入至累加器中。 ACC ← x None Move ACC to Data Memory 将累加器的内容复制到指定数据存储器。 [m] ← ACC None No operation 空操作,接下来顺序执行下一条指令。 No operation None Logical OR Data Memory to ACC 将存在累加器和指定数据存储器中的数据作 OR 的运算, 然后把结果储存回累加器。 ACC ← ACC“OR”[m] Z Rev.1.60 245 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 OR A, x 指令说明 功能表示 影响标志位 ORM A, [m] 指令说明 功能表示 影响标志位 RET 指令说明 功能表示 影响标志位 RET A, x 指令说明 功能表示 影响标志位 RETI 指令说明 功能表示 影响标志位 RL [m] 指令说明 功能表示 影响标志位 Rev. 1.60 Logical OR immediate data to ACC 将存在累加器中的数据和立即数作 OR 的运算, 然后把结果储存回累加器。 ACC ← ACC“OR”x Z Logical OR ACC to Data Memory 将存在指定数据存储器和累加器中的数据作 OR 的运算, 然后把结果储存回数据存储器。 [m] ← ACC“OR”[m] Z Return from subroutine 将堆栈区的数据取回至程序计数器, 程序由取回的地址继续执行。 Program Counter ← Stack None Return from subroutine and load immediate data to ACC 将堆栈区的数据取回至程序计数器且累加器载入立即数, 程序由取回的地址继续执行。 Program Counter ← Stack ACC ← x None Return from interrupt 将堆栈区的数据取回至程序计数器且中断功能通过 EMI 位 重新被使能,EMI 是控制中断使能的主中断位 ( 寄存器 INTC 的第 0 位 ),如果在执行 RETI 指令之前还 有中断未被响应,则这个中断将在返回主程序之前被响应。 Program Counter ← Stack EMI ← 1 None Rotate Data Memory left 将指定数据存储器的内容向左移 1 个位, 且第 7 位移回第 0 位。 [m].(i+1) ← [m].i ; (i=0~6) [m].0 ← [m].7 None 246 2011-09-09 RLA [m] 指令说明 功能表示 影响标志位 RLC [m] 指令说明 功能表示 影响标志位 RLC A [m] 指令说明 功能表示 影响标志位 RR [m] 指令说明 功能表示 影响标志位 RRA [m] 指令说明 功能表示 影响标志位 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Rotate Data Memory left with result in ACC 将指定数据存储器的内容向左移 1 个位, 且第 7 位移回第 0 位,而移位的结果储存回累加器且数据 存储器中的内容不变。 ACC.(i+1) ← [m].i ; (i=0~6) ACC.0 ← [m].7 None Rotate Data Memory Left through Carry 将指定数据存储器的内容连同进位标志位向左移 1 个位, 第 7 位取代进位位且原本的进位标志位移至第 0 位。 [m].(i+1) ← [m].i ; (i=0~6) [m].0 ← C C ← [m].7 C Rotate Data Memory left through Carry with result in ACC 将指定数据存储器的内容连同进位标志位向左移 1 个位, 第 7 位取代进位位且原本的进位标志位移至第 0 位, 而移位的结果储存回累加器且数据存储器中的内容不变。 ACC.(i+1) ← [m].i ; (i=0~6) ACC.0 ← C C ← [m].7 C Rotate Data Memory right 将指定数据存储器的内容向右移 1 个位, 且第 0 位移回第 7 位。 [m].i ← [m].(i+1) ; (i=0~6) [m].7 ← [m].0 None Rotate Data Memory right with result in ACC 将指定数据存储器的内容向右移 1 个位, 且第 0 位移回第 7 位,而移位的结果储存回累加器且数据 存储器中的内容不变。 ACC.i ← [m].(i+1) ; (i=0~6) ACC.7 ← [m].0 None Rev.1.60 247 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 RRC [m] 指令说明 功能表示 影响标志位 RRCA [m] 指令说明 功能表示 影响标志位 SBC A, [m] 指令说明 功能表示 影响标志位 SBCM A, [m] 指令说明 功能表示 影响标志位 SDZ [m] 指令说明 功能表示 影响标志位 Rev. 1.60 Rotate Data Memory right through Carry 将指定数据存储器的内容连同进位标志位向右移 1 个位, 第 0 位取代进位位且原本的进位标志位移至第 7 位。 [m].i ← [m].(i+1) ; (i=0~6) [m].7 ← C C ← [m].0 C Rotate Data Memory right through Carry with result in ACC 将指定数据存储器的内容连同进位标志位向右移 1 个位, 第 0 位取代进位位且原本的进位标志位移至第 7 位, 而移位的结果储存回累加器且数据存储器中的内容不变。 ACC.i ← [m].(i+1) ; (i=0~6) ACC.7 ← C C ← [m].0 C Subtract Data Memory from ACC with Carry 将累加器中的数据与指定数据存储器内容和进位标志位的 反相减,把结果储存回累加器。如果结果为负,C 标志位 清除为 0,反之结果为正或 0,C 标志位设置为 1。 ACC ← ACC – [m] – C OV, Z, AC, C Subtract Data Memory from ACC with Carry and result in Data Memory 将累加器中的数据与指定数据存储器内容和进位标志位的 反相减,把结果储存回数据存储器。如果结果为负, C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。 [m] ← ACC – [m] – C OV, Z, AC, C Skip if Decrement Data Memory is 0 将指定数据存储器的内容先减去 1 后,如果结果为 0, 则程序计数器再加 1 跳过下一条指令,由于取得下一指令 时会要求插入一个空指令周期,所以此指令为 2 个周期的 指令。如果结果不为 0,则程序继续执行下面的指令。 [m] ← [m] – 1 Skip if [m]=0 None 248 2011-09-09 SDZA [m] 指令说明 功能表示 影响标志位 SET [m] 指令说明 功能表示 影响标志位 SET [m].i 指令说明 功能表示 影响标志位 SIZ [m] 指令说明 功能表示 影响标志位 SIZA [m] 指令说明 功能表示 影响标志位 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Skip if decrement Data Memory is zero with result in ACC 将指定数据存储器的内容先减去 1 后,如果结果为 0, 则程序计数器再加 1 跳过下一条指令,此结果会被储存回 累加器且指定数据存储器中的内容不变,由于取得下一指 令时会要求插入一个空指令周期,所以此指令为 2 个周期 的指令。如果结果不为 0,则程序继续执行下面的指令。 ACC ← [m] – 1 Skip if ACC=0 None Set Data Memory 将指定数据存储器的每一个位置位为 1。 [m] ← FFH None Set bit of Data Memory 将指定数据存储器的第 i 位置位为 1。 [m].i ← 1 None Skip if increment Data Memory is 0 将指定数据存储器的内容先加上 1 后,如果结果为 0, 则程序计数器再加 1 跳过下一条指令,由于取得下一指令 时会要求插入一个空指令周期,所以此指令为 2 个周期的 指令。如果结果不为 0,则程序继续执行下面的指令。 [m] ← [m] + 1 Skip if [m]=0 None Skip if increment Data Memory is zero with result in ACC 将指定数据存储器的内容先加上 1 后,如果结果为 0, 则程序计数器再加 1 跳过下一条指令,此结果会被储存回 累加器且指定数据存储器中的内容不变,由于取得下一指 令时会要求插入一个空指令周期,所以此指令为 2 个周期 的指令。如果结果不为 0,则程序继续执行下面的指令。 ACC ← [m] + 1 Skip if ACC=0 None Rev.1.60 249 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SNZ [m].i 指令说明 功能表示 影响标志位 SUB A, [m] 指令说明 功能表示 影响标志位 SUBM A, [m] 指令说明 功能表示 影响标志位 SUB A, x 指令说明 功能表示 影响标志位 SWAP [m] 指令说明 功能表示 影响标志位 Skip if bit i of Data Memory is not 0 如果指定数据存储器的第 i 位不为 0,则程序计数器再加 1 跳过下一条指令,由于取得下一指令时会要求插入一个空 指令周期,所以此指令为 2 个周期的指令。如果结果不为 0, 程序继续执行下面的指令。 Skip if [m].i ≠ 0 None Subtract Data Memory from ACC 将累加器中内容减去指定数据存储器的数据,把结果储存 回累加器。如果结果为负,C 标志位清除为 0, 反之结果为正或 0,C 标志位设置为 1。 ACC ← ACC – [m] OV, Z, AC, C Subtract Data Memory from ACC with result in Data Memory 将累加器中内容减去指定数据存储器的数据, 把结果储存回数据存储器。如果结果为负, C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。 [m] ← ACC – [m] OV, Z, AC, C Subtract immediate Data from ACC 将累加器中内容减去立即数,把结果储存回累加器。 如果结果为负,C 标志位清除为 0,反之结果为正或 0, C 标志位设置为 1。 ACC ← ACC – x OV, Z, AC, C Swap nibbles of Data Memory 将指定数据存储器的低 4 位与高 4 位互相交换。 [m].3~[m].0 ↔ [m].7~[m].4 None Rev. 1.60 250 2011-09-09 SWAPA [m] 指令说明 功能表示 影响标志位 SZ [m] 指令说明 功能表示 影响标志位 SZA [m] 指令说明 功能表示 影响标志位 SZ [m].i 指令说明 功能表示 影响标志位 TABRDC [m] 指令说明 功能表示 影响标志位 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 Swap nibbles of Data Memory with result in ACC 将指定数据存储器的低 4 位与高 4 位互相交换, 然后把结果储存回累加器且数据存储器的内容不变。 ACC.3~ACC.0 ← [m].7~[m].4 ACC.7~ACC.4 ← [m].3~[m].0 None Skip if Data Memory is 0 如果指定数据存储器的内容为 0,则程序计数器再加 1 跳 过下一条指令,由于取得下一指令时会要求插入一个空指 令周期,所以此指令为 2 个周期的指令。如果结果不为 0, 程序继续执行下面的指令。 Skip if [m]=0 None Skip if Data Memory is 0 with data movement to ACC 将指定数据存储器的内容复制到累加器,如果值为 0, 则程序计数器再加 1 跳过下一条指令,由于取得下一指令 时会要求插入一个空指令周期,所以此指令为 2 个周期的 指令。如果结果不为 0,程序继续执行下面的指令。 ACC ← [m] Skip if [m]=0 None Skip if bit i of Data Memory is 0 如果指定数据存储器第 i 位为 0,则程序计数器再加 1 跳过 下一条指令,由于取得下一指令时会要求插入一个空指令 周期,所以此指令为 2 个周期的指令。如果结果不为 0, 程序继续执行下面的指令。 Skip if [m].i=0 None Read table (current page ) to TBLH and Data Memory 将表格指针 TBLP 所指的程序代码低字节 ( 当前页 ) 移至指定数据存储器且将高字节移至 TBLH。 [m] ← 程序代码 ( 低字节 ) TBLH ← 程序代码 ( 高字节 ) None Rev.1.60 251 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 TABRDL [m] 指令说明 功能表示 影响标志位 XOR A, [m] 指令说明 功能表示 影响标志位 XORM A, [m] 指令说明 功能表示 影响标志位 XOR A, x 指令说明 功能表示 影响标志位 Read table ( last page ) to TBLH and Data Memory 将表格指针 TBLP 所指的程序代码低字节 ( 最后一页 ) 移至指定数据存储器且将高字节移至 TBLH。 [m] ← 程序代码 ( 低字节 ) TBLH ← 程序代码 ( 高字节 ) None Logical XOR Data Memory to ACC 将存在累加器和指定数据存储器中的数据作 XOR 的运算, 然后把结果储存回累加器。 ACC ← ACC“XOR”[m] Z Logical XOR ACC to Data Memory 将存在指定数据存储器和累加器中的数据作 XOR 的运算, 然后把结果储存回数据存储器。 [m] ← ACC“XOR”[m] Z Logical XOR immediate data to ACC 将存在累加器中的数据和立即数作 XOR 的运算, 然后把结果储存回累加器。 ACC ← ACC“XOR”x Z Rev. 1.60 252 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 封装信息 注意,此处提到的封装信息仅用于查阅。此信息将在 Holtek 网站定期更新,提 醒用户获取最新版本的封装信息。(http://www.holtek.com.tw/english/literature/ package.pdf) 16-pin DIP (300mil) 外形尺寸 ) ) $ '  *  & $ '  *  & 0 + , - / 1 . Fig1. Full Lead Packages MS-001d ( 见 fig1) 符号 A B C D E F G H I 最小 780 240 115 115 14 45 — 300 — 0 + , - / 1 . Fig2. 1/2 Lead Packages 尺寸 ( 单位:mil) 正常 — — — — — — 100 — — 最大 880 280 195 150 22 70 — 325 430 符号 A B C D E F G H I Rev.1.60 最小 19.81 6.10 2.92 2.92 0.36 1.14 — 7.62 — 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — — 253 最大 22.35 7.11 4.95 3.81 0.56 1.78 — 8.26 10.92 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 MS-001d ( 见 fig2) 符号 A B C D E F G H I 最小 735 240 115 115 14 45 — 300 — 尺寸 ( 单位:mil) 正常 — — — — — — 100 — — 符号 A B C D E F G H I 最小 18.67 6.10 2.92 2.92 0.36 1.14 — 7.62 — 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — — 最大 775 280 195 150 22 70 — 325 430 最大 19.69 7.11 4.95 3.81 0.56 1.78 — 8.26 10.92 Rev. 1.60 254 2011-09-09 MO-095a ( 见 fig2) 符号 A B C D E F G H I 最小 745 275 120 110 14 45 — 300 — 符号 A B C D E F G H I 最小 18.92 6.99 3.05 2.79 0.36 1.14 — 7.62 — HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 尺寸 ( 单位:mil) 正常 — — — — — — 100 — — 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — — 最大 785 295 150 150 22 60 — 325 430 最大 19.94 7.49 3.81 3.81 0.56 1.52 — 8.26 10.92 Rev.1.60 255 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 16-pin NSOP (150mil) 外形尺寸 符号 A B C C’ D E F G H α $ ' ) *  & + + / , - . = 最小 228 150 12 386 — — 4 16 7 0° 尺寸 ( 单位:mil) 正常 — — — — 50 — — — — 符号 A B C C’ D E F G H α 最小 5.79 3.81 0.30 9.80 — — 0.10 0.41 0.18 0° 尺寸 ( 单位:mm) 正常 — — — — — 1.27 — — — — 0 最大 244 157 20 402 69 — 10 50 10 8° 最大 6.20 3.99 0.51 10.21 1.75 — 0.25 1.27 0.25 8° Rev. 1.60 256 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 16-pin SSOP (150mil) 外形尺寸 $ ' ) *  & + + , - . 符号 A B C C’ D E F G H α 最小 228 150 8 189 54 — 4 22 7 0° / = 尺寸 ( 单位:mil) 正常 — — — — — 25 — — — — 0 最大 244 157 12 197 60 — 10 28 10 8° 符号 A B C C’ D E F G H α 最小 5.79 3.81 0.20 4.80 1.37 — 0.10 0.56 0.18 0° 尺寸 ( 单位:mm) 正常 — — — — — 0.64 — — — — 最大 6.20 3.99 0.30 5.00 1.52 — 0.25 0.71 0.25 8° Rev.1.60 257 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 20-pin DIP (300mil) 外形尺寸 )   *   )   *   0 + , - . / 1 Fig1. Full Lead Packages MS-001d ( 见 fig1) 符号 A B C D E F G H I 最小 980 240 115 115 14 45 — 300 — 符号 A B C D E F G H I 最小 24.89 6.10 2.92 2.92 0.36 1.14 — 7.62 — 0 + , - . / 1 Fig2. 1/2 Lead Packages 尺寸 ( 单位:mil) 正常 — — — — — — 100 — 430 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — 10.92 最大 1060 280 195 150 22 70 — 325 — 最大 26.92 7.11 4.95 3.81 0.56 1.78 — 8.26 — Rev. 1.60 258 2011-09-09 MO-095a ( 见 fig2) 符号 A B C D E F G H I 最小 945 275 120 110 14 45 — 300 — 符号 A B C D E F G H I 最小 24.00 6.99 3.05 2.79 0.36 1.14 — 7.62 — HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 尺寸 ( 单位:mil) 正常 — — — — — — 100 — 430 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — 10.92 最大 985 295 150 150 22 60 — 325 — 最大 25.02 7.49 3.81 3.81 0.56 1.52 — 8.26 — Rev.1.60 259 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 20-pin SOP (300mil) 外形尺寸 MS-013 符号 A B C C’ D E F G H α  )  + + , - 最小 393 256 12 496 — — 4 16 8 0°  *  / . = 尺寸 ( 单位:mil) 正常 — — — — 50 — — — — 符号 A B C C’ D E F G H α 最小 9.98 6.50 0.30 12.60 — — 0.10 0.41 0.20 0° 尺寸 ( 单位:mm) 正常 — — — — 1.27 — — — — 0 最大 419 300 20 512 104 — 12 50 13 8° 最大 10.64 7.62 0.51 13.00 2.64 — 0.30 1.27 0.33 8° Rev. 1.60 260 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 20-pin SSOP (150mil) 外形尺寸 符号 A B C C’ D E F G H α  )  + + , - 最小 228 150 8 335 49 — 4 15 7 0°  *  / . = 尺寸 ( 单位:mil) 正常 — — — — — 25 — — — — 0 最大 244 158 12 347 65 — 10 50 10 8° 符号 A B C C’ D E F G H α 最小 5.79 3.81 0.20 8.51 1.24 — 0.10 0.38 0.18 0° 尺寸 ( 单位:mm) 正常 — — — — 0.64 — — — — 最大 6.20 4.01 0.30 8.81 1.65 — 0.25 1.27 0.25 8° Rev.1.60 261 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 24-pin SKDIP (300mil) 外形尺寸 ) " ! *   ) " ! *   0 + , - . / 1 Fig1. Full Lead Packages MS-001d ( 见 fig1) 符号 A B C D E F G H I 最小 1230 240 115 115 14 45 — 300 — 0 + , - . / 1 Fig2. 1/2 Lead Packages 尺寸 ( 单位:mil) 正常 — — — — — — 100 — 430 最大 1280 280 195 150 22 70 — 325 — 符号 A B C D E F G H I 最小 31.24 6.10 2.92 2.92 0.36 1.14 — 7.62 — 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — 10.92 最大 32.51 7.11 4.95 3.81 0.56 1.78 — 8.26 — Rev. 1.60 262 2011-09-09 MS-001d ( 见 fig2) 符号 A B C D E F G H I 最小 1160 240 115 115 14 45 — 300 — 符号 A B C D E F G H I 最小 29.46 6.10 2.92 2.92 0.36 1.14 — 7.62 — HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 尺寸 ( 单位:mil) 正常 — — — — — — 100 — 430 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — 10.92 最大 1195 280 195 150 22 70 — 325 — 最大 30.35 7.11 4.95 3.81 0.56 1.78 — 8.26 — Rev.1.60 263 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 MO-095a ( 见 fig2) 符号 A B C D E F G H I 最小 1145 275 120 110 14 45 — 300 — 尺寸 ( 单位:mil) 正常 — — — — — — 100 — 430 符号 A B C D E F G H I 最小 29.08 6.99 3.05 2.79 0.36 1.14 — 7.62 — 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — 10.92 最大 1185 295 150 150 22 60 — 325 — 最大 30.10 7.49 3.81 3.81 0.56 1.52 — 8.26 — Rev. 1.60 264 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 24-pin SOP (300mil) 外形尺寸 MS-013 符号 A B C C’ D E F G H α " )  + + , - 最小 393 256 12 598 — — 4 16 8 0° ! *  / . = 尺寸 ( 单位:mil) 正常 — — — — — 50 — — — — 0 最大 419 300 20 613 104 — 12 50 13 8° 符号 A B C C’ D E F G H α 最小 9.98 6.50 0.30 15.19 — — 0.10 0.41 0.20 0° 尺寸 ( 单位:mm) 正常 — — — — 1.27 — — — — 最大 10.64 7.62 0.51 15.57 2.64 — 0.30 1.27 0.33 8° Rev.1.60 265 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 24-pin SSOP (150mil) 外形尺寸 符号 A B C C’ D E F G H α " )  + + , - 最小 228 150 8 335 54 — 4 22 7 0° ! *  / . = 尺寸 ( 单位:mil) 正常 — — — — — 25 — — — — 符号 A B C C’ D E F G H α 最小 5.79 3.81 0.20 8.51 1.37 — 0.10 0.56 0.18 0° 尺寸 ( 单位:mm) 正常 — — — — 0.64 — — — — 0 最大 244 157 12 346 60 — 10 28 10 8° 最大 6.20 3.99 0.30 8.79 1.52 — 0.25 0.71 0.25 8° Rev. 1.60 266 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 28-pin SKDIP (300mil) 外形尺寸 ) & #  *  " 符号 A B C D E F G H I 符号 A B C D E F G H I + , - 最小 1375 278 125 125 16 50 — 295 — 最小 34.93 7.06 3.18 3.18 0.41 1.27 — 7.49 — . / 尺寸 ( 单位:mil) 正常 — — — — — — 100 — 375 尺寸 ( 单位:mm) 正常 — — — — — — 2.54 — 9.53 0 1 最大 1395 298 135 145 20 70 — 315 — 最大 35.43 7.57 3.43 3.68 0.51 1.78 — 8.00 — Rev.1.60 267 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 28-pin SOP (300mil) 外形尺寸 MS-013 符号 A B C C’ D E F G H α & )  , + + - 最小 393 256 12 697 — — 4 16 8 0° # * " / . = 尺寸 ( 单位:mil) 正常 — — — — — 50 — — — — 符号 A B C C’ D E F G H α 最小 9.98 6.50 0.30 17.70 — — 0.10 0.41 0.20 0° 尺寸 ( 单位:mm) 正常 — — — — 1.27 — — — — 0 最大 419 300 20 713 104 — 12 50 13 8° 最大 10.64 7.62 0.51 18.11 2.64 — 0.30 1.27 0.33 8° Rev. 1.60 268 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 28-pin SSOP (150mil) 外形尺寸 & )  + + , - 符号 A B C C’ D E F G H α 最小 228 150 8 386 54 — 4 22 7 0° # * " / . = 尺寸 ( 单位:mil) 正常 — — — — — 25 — — — — 符号 A B C C’ D E F G H α 最小 5.79 3.81 0.20 9.80 1.37 — 0.10 0.56 0.18 0° 尺寸 ( 单位:mm) 正常 — — — — 0.64 — — — — 0 最大 244 157 12 394 60 — 10 28 10 8° 最大 6.20 3.99 0.30 10.01 1.52 — 0.25 0.71 0.25 8° Rev.1.60 269 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SAW 型 32-pin (5mm×5mm) QFN 外形尺寸 D b E e A1 A3 A D2 25 24 17 16 L 32 1 E2 8 9 K 符号 A A1 A3 b D E e D2 E2 L K 最小 28 0 — 7 — — — 49 49 12 — 尺寸 ( 单位:mil) 正常 — — 8 — 197 197 20 — — — — 最大 31 2 — 12 — — — 128 128 20 — 符号 A A1 A3 b D E e D2 E2 L K 最小 0.7 0.00 — 0.18 — — — 1.25 1.25 0.30 — 尺寸 ( 单位:mm) 正常 — — 0.2 — 5.0 5.0 0.5 — — — — 最大 0.8 0.05 — 0.30 — — — 3.25 3.25 0.50 — Rev. 1.60 270 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SAW 型 40-pin (6mm×6mm) QFN 外形尺寸 D 31 b 30 GTK 符号 A A1 A3 b D E e D2 E2 L K 最小 28 0 — 7 — — — 173 173 14 8 E e A1 A3 A 21 20 L 尺寸 ( 单位:mil) 正常 30 1 8 10 236 236 20 177 177 16 — D2 40 1 E2 10 11 K 最大 31 2 — 12 — — — 179 179 18 — 符号 A A1 A3 b D E e D2 E2 L K 最小 0.7 0.00 — 0.18 — — — 4.40 4.40 0.35 0.20 尺寸 ( 单位:mm) 正常 0.75 0.02 0.20 0.25 6.00 6.00 0.50 4.50 4.50 0.40 — 最大 0.8 0.05 — 0.30 — — — 4.55 4.55 0.45 — Rev.1.60 271 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 44-pin LQFP (10mm×10mm) (FP 3.2mm) 外形尺寸 C D 33 23 34 22 F AB E 44 12 符号 A B C D E F G H I J K α 符号 A B C D E F G H I J K α Rev. 1.60 1 最小 512 390 512 390 — — 53 — 4 41 4 0° 最小 13 9.9 13 9.9 — — 1.35 — 0.1 1.05 0.1 0° 11 尺寸 ( 单位:mil) 正常 520 394 520 394 31 12 55 — — 47 — — 尺寸 ( 单位:mm) 正常 13.2 10 13.2 10 0.8 0.3 1.4 — — 1.2 — — 272 H G I K = J 最大 528 398 528 398 — — 57 63 10 53 8 7° 最大 13.4 10.1 13.4 10.1 — — 1.45 1.6 0.25 1.35 0.25 7° 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 48-pin SSOP (300mil) 外形尺寸 "& )  + + , - 符号 A B C C’ D E F G H ɑ 最小 395 291 8 613 85 — 4 25 4 0° # * " . 尺寸 ( 单位:mil) 正常 — — — — — 25 — — — — / 0 = 最大 420 299 12 637 99 — 10 35 12 8° 符号 A B C C’ D E F G H ɑ 最小 10.03 7.39 0.20 15.57 2.16 — 0.10 0.64 0.10 0° 尺寸 ( 单位:mm) 正常 — — — — — 0.64 — — — — 最大 10.67 7.59 0.30 16.18 2.51 — 0.25 0.89 0.30 8° Rev.1.60 273 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SAW 型 48-pin (7mm×7mm) QFN 外形尺寸 D 37 b 36 符号 A A1 A3 b D E e D2 E2 L K 符号 A A1 A3 b D E e D2 E2 L K 最小 28 0 — 7 — — — 177 177 12 8 最小 0.7 0.00 — 0.18 — — — 4.50 4.50 0.30 0.20 E e A1 A3 A 25 24 L 尺寸 ( 单位:mil) 正常 — — 8 — 276 276 20 — — — — 尺寸 ( 单位:mm) 正常 — — 0.203 — 7.0 7.0 0.50 — — — — D2 48 1 E2 12 13 K 最大 31 2 — 12 — — — 227 227 20 — 最大 0.8 0.05 — 0.30 — — — 5.75 5.75 0.50 — Rev. 1.60 274 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 48-pin LQFP (7mm×7mm) 外形尺寸 C D 36 25 37 24 F AB E 48 13 符号 A B C D E F G H I J K α 符号 A B C D E F G H I J K α Rev.1.60 最小 350 272 350 272 — — 53 — — 18 4 0° 最小 8.9 6.9 8.9 6.9 — — 1.35 — — 0.45 0.10 0° 1 12 尺寸 ( 单位:mil) 一般 — — — — 20 8 — — 4 — — — 尺寸 ( 单位:mm) 一般 — — — — 0.5 0.2 — — 0.10 — — — 275 H G I K = J 最大 358 280 358 280 — — 57 63 — 30 8 7° 最大 9.1 7.1 9.1 7.1 — — 1.45 1.60 — 0.75 0.20 7° 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 52-pin QFP (14mm×14mm) 外形尺寸 C D 39 27 40 26 F AB E 52 14 符号 A B C D E F G H I J K α 符号 A B C D E F G H I J K α Rev. 1.60 1 最小 681 547 681 547 — — 98 — — 29 4 0° 最小 17.30 13.90 17.30 13.90 — — 2.50 — — 0.73 0.10 0° 13 尺寸 ( 单位:mil) 正常 — — — — 39 16 — — 4 — — — 尺寸 ( 单位:mm) 正常 — — — — 1.00 0.40 — — 0.10 — — — 276 H G I K J 最大 689 555 689 555 — — 122 134 — 41 8 7° 最大 17.50 14.10 17.50 14.10 — — 3.10 3.40 — 1.03 0.20 7° 2011-09-09 卷轴尺寸 6 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 , ) * + 6 16-pin NSOP (150mil) 符号 说明 A 卷轴外圈直径 B 卷轴内圈直径 C 轴心直径 D 缝宽 T1 轮缘宽 T2 卷轴宽 SOP 20W,SOP 24W,SOP 28W (300mil) 符号 说明 A 卷轴外圈直径 B 卷轴内圈直径 C 轴心直径 D 缝宽 T1 轮缘宽 T2 卷轴宽 尺寸 ( 单位:mm) 330±1 100±1.5 13+0.5/-0.2 2±0.5 16.8+0.3/-0.2 22.2±0.2 尺寸 ( 单位:mm) 330±1 100±1.5 13+0.5/-0.2 2±0.5 24.8+0.3/-0.2 30.2±0.2 Rev.1.60 277 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SSOP 16S 符号 说明 A 卷轴外圈直径 B 卷轴内圈直径 C 轴心直径 D 缝宽 T1 轮缘宽 T2 卷轴宽 尺寸 ( 单位:mm) 330±1 100±1.5 13+0.5/-0.2 2±0.5 12.8+0.3/-0.2 18.2±0.2 SSOP 20S (150mil),SSOP 24S (150 mil),SSOP 28S (150mil) 符号 说明 尺寸 ( 单位:mm) A 卷轴外圈直径 330±1 B 卷轴内圈直径 100±1.5 C 轴心直径 13+0.5/-0.2 D 缝宽 2±0.5 T1 轮缘宽 16.8+0.3/-0.2 T2 卷轴宽 22.2±0.2 SSOP 48W 符号 说明 A 卷轴外圈直径 B 卷轴内圈直径 C 轴心直径 D 缝宽 T1 轮缘宽 T2 卷轴宽 尺寸 ( 单位:mm) 330±1 100±0.1 13+0.5/-0.2 2±0.5 32.2+0.3/-0.2 38.2±0.2 Rev. 1.60 278 2011-09-09 运输带尺寸 E F HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 D P0 D1 P P1 t W C B0 K0 A0 16-pin NSOP (150mil) 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 R e e l H o le IC p a c k a g e p in 1 a n d th e r e e l h o le s a r e lo c a te d o n th e s a m e s id e . 尺寸 ( 单位:mm) 16.0±0.3 8.0±0.1 1.75±0.1 7.5±0.1 1.55+0.10/-0.00 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 6.5±0.1 10.3±0.1 2.1±0.1 0.30±0.05 13.3±0.1 Rev.1.60 279 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SOP 20W 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 SOP 24W 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 尺寸 ( 单位:mm) 24.0+0.3/-0.1 12.0±0.1 1.75±0.1 11.5±0.1 1.5+0.1/-0.0 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 10.8±0.1 13.3±0.1 3.2±0.1 0.30±0.05 21.3±0.1 尺寸 ( 单位:mm) 24.0±0.3 12.0±0.1 1.75±0.1 11.5±0.1 1.55+0.1/-0.0 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 10.9±0.1 15.9±0.1 3.1±0.1 0.35±0.05 21.3±0.1 Rev. 1.60 280 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SOP 28W (300mil) 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 SSOP 16S 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 尺寸 ( 单位:mm) 24.0±0.3 12.0±0.1 1.75±0.1 11.5±0.1 1.5+0.1/-0.0 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 10.85±0.1 18.34±0.1 2.97±0.1 0.35±0.01 21.3±0.1 尺寸 ( 单位:mm) 12.0+0.3/-0.1 8.0±0.1 1.75±0.1 5.5±0.1 1.55±0.1 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 6.4±0.1 5.2±0.1 2.1±0.1 0.3±0.05 9.3±0.1 Rev.1.60 281 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SSOP 20S (150mil) 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 SSOP 24S (150mil) 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 尺寸 ( 单位:mm) 16.0+0.3/-0.1 8.0±0.1 1.75±0.1 7.5±0.1 1.5+0.1/-0.0 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 6.5±0.1 9.0±0.1 2.3±0.1 0.3±0.05 13.3±0.1 尺寸 ( 单位:mm) 16.0+0.3/-0.1 8.0±0.1 1.75±0.1 7.5±0.1 1.5+0.1/-0.0 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 6.5±0.1 9.5±0.1 2.1±0.1 0.3±0.05 13.3±0.1 Rev. 1.60 282 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 SSOP 28S (150mil) 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K0 空穴深 T 传输带厚度 C 覆盖带宽度 尺寸 ( 单位:mm) 16.0±0.3 8.0±0.1 1.75±0.1 7.5±0.1 1.55+0.1/-0.0 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 6.5±0.1 10.3±0.1 2.1±0.1 0.3±0.05 13.3±0.1 Rev.1.60 283 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 运输带尺寸 D P0 E F P1 W t C B0 D1 P A0 K1 K2 SSOP 48W 符号 说明 W 运输带宽 P 空穴间距 E 穿孔位置 F 空穴至穿孔距离 ( 宽度 ) D 穿孔直径 D1 空穴中之小孔直径 P0 穿孔间距 P1 空穴至穿孔距离 ( 长度 ) A0 空穴长 B0 空穴宽 K1 空穴深 K2 空穴深 T 传输带厚度 C 覆盖带宽度 R e e l H o le ( C ir c le ) IC p a c k a g e p in 1 a n d th e r e e l h o le s a r e lo c a te d o n th e s a m e s id e . R e e l H o le ( E llip s e ) 尺寸 ( 单位:mm) 32.0±0.3 16.0±0.1 1.75±0.1 14.2±0.1 最小 2 1.5+0.25/-0.00 4.0±0.1 2.0±0.1 12.0±0.1 16.2±0.1 2.4±0.1 3.2±0.1 0.35±0.05 25.5±0.1 Rev. 1.60 284 2011-09-09 HT66F20/HT66F30/HT66F40/HT66F50/HT66F60 HT66FU30/HT66FU40/HT66FU50/HT66FU60 内置 EEPROM 增强 A/D 型八位 FLASH 单片机 盛群半导体股份有限公司(总公司) 新竹市科学工业园区研新二路 3 号 电话 : 886-3-563-1999 传真 : 886-3-563-1189 网站 : www.holtek.com.tw 盛群半导体股份有限公司(台北业务处) 台北市南港区园区街 3 之 2 号 4 楼之 2 电话 : 886-2-2655-7070 传真 : 886-2-2655-7373 传真 : 886-2-2655-7383 (International sales hotline) 盛扬半导体有限公司(深圳业务处) 深圳市南山区科技园科技中三路与高新中二道交汇处生产力大楼 A 单元五楼 518057 电话 : 0755-8616-9908,8616-9308 传真 : 0755-8616-9722 Holtek Semiconductor(USA), Inc.(北美业务处) 46712 Fremont Blvd., Fremont, CA 94538 电话 : 510-252-9880 传真 : 510-252-9885 网站 : www.holtek.com Copyright © 2011 by HOLTEK SEMICONDUCTOR INC. 使用指南中所出现的信息在出版当时相信是正确的,然而盛群对于说明书的使用不负任何责任。文中 提到的应用目的仅仅是用来做说明,盛群不保证或表示这些没有进一步修改的应用将是适当的,也不 推荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救 生、维生器件或系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请 参考我们的网址 http://www.holtek.com.tw。 Rev.1.60 285 2011-09-09

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。