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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
HT68F03C(SOP-8)

HT68F03C(SOP-8)

  • 厂商:

    HOLTEK(合泰)

  • 封装:

    SOP8_150MIL

  • 描述:

    内置EEPROM增强型8-bit Flash小封装单片机

  • 数据手册
  • 价格&库存
HT68F03C(SOP-8) 数据手册
内置 EEPROM 增强型 8-bit Flash 小封装单片机 HT66F03/HT66F04 HT68F03/HT68F04 版本 V1.60 日期:2012/11/28 目录 目 录   技术相关信息 ........................................................................................................................................................ 1  特性 ........................................................................................................................................................................ 1  概述 ........................................................................................................................................................................ 2  选型表 .................................................................................................................................................................... 2  方框图 .................................................................................................................................................................... 3  引脚图 .................................................................................................................................................................... 3  引脚说明 ................................................................................................................................................................ 5  极限参数 ................................................................................................................................................................ 8  直流电气特性 ........................................................................................................................................................ 8  交流电气特性 ...................................................................................................................................................... 12  ADC特性.............................................................................................................................................................. 13  比较器电气特性 .................................................................................................................................................. 13  上电复位特性 ...................................................................................................................................................... 14  系统结构 .............................................................................................................................................................. 16  时序和流水线结构 .......................................................................................................................................... 16  程序计数器 ...................................................................................................................................................... 17  堆栈 .................................................................................................................................................................. 17  算术逻辑单元 — ALU .................................................................................................................................... 18  FLASH程序存储器 ............................................................................................................................................. 19  结构 .................................................................................................................................................................. 19  特殊向量 .......................................................................................................................................................... 19  查表 .................................................................................................................................................................. 20  查表范例 .......................................................................................................................................................... 20  在线编程 .......................................................................................................................................................... 21  数据存储器 .......................................................................................................................................................... 22  结构 .................................................................................................................................................................. 22  特殊功能寄存器 .................................................................................................................................................. 24  间接寻址寄存器 — IAR0,IAR1 .................................................................................................................. 24  间接寻址指针 — MP0,MP1......................................................................................................................... 24  存储区指针-BP.............................................................................................................................................. 24  累加器-ACC .................................................................................................................................................. 25  程序计数器低字节寄存器-PCL ................................................................................................................... 25  表格寄存器-TBLP,TBHP,TBLH ............................................................................................................ 25  状态寄存器-STATUS .................................................................................................................................... 25  EEPROM数据寄存器 ......................................................................................................................................... 27  Rev.1.60 I 2012-11-28 目 录 EEPROM数据寄存器结构 .............................................................................................................................. 27  EEPROM寄存器 .............................................................................................................................................. 27  从EEPROM中读取数据 .................................................................................................................................. 28  写数据到EEPROM .......................................................................................................................................... 28  写保护 .............................................................................................................................................................. 28  EEPROM中断 .................................................................................................................................................. 28  编程注意事项 .................................................................................................................................................. 29  振荡器 .................................................................................................................................................................. 30  振荡器概述 ...................................................................................................................................................... 30  系统时钟配置 .................................................................................................................................................. 30  外部晶体/陶瓷振荡器 -- HXT ........................................................................................................................ 31  外部RC振荡器 -- ERC .................................................................................................................................... 32  内部 RC振荡器 -- HIRC ................................................................................................................................. 32  外部 32.768KHZ晶体振荡器 -- LXT............................................................................................................... 32  LXT振荡器低功耗功能................................................................................................................................... 33  内部 32KHZ振荡器 -- LIRC ............................................................................................................................ 33  辅助振荡器 ...................................................................................................................................................... 33  工作模式和系统时钟........................................................................................................................................... 34  系统时钟 .......................................................................................................................................................... 34  系统工作模式 .................................................................................................................................................. 35  控制寄存器 ...................................................................................................................................................... 36  快速唤醒 .......................................................................................................................................................... 36  工作模式切换和唤醒 ...................................................................................................................................... 37  正常模式切换到低速模式............................................................................................................................... 38  低速模式切换到正常模式............................................................................................................................... 38  进入休眠模式 0 ............................................................................................................................................... 38  进入休眠模式 1 ............................................................................................................................................... 38  进入空闲模式 0 ............................................................................................................................................... 38  进入空闲模式 1 ............................................................................................................................................... 39  静态电流的注意事项 ...................................................................................................................................... 40  唤醒 .................................................................................................................................................................. 40  编程注意事项 .................................................................................................................................................. 41  看门狗定时器 ...................................................................................................................................................... 42  看门狗定时器时钟源 ...................................................................................................................................... 42  看门狗定时器控制寄存器............................................................................................................................... 42  看门狗定时器操作 .......................................................................................................................................... 42  复位和初始化 ...................................................................................................................................................... 44  复位功能 .......................................................................................................................................................... 44  复位初始状态 .................................................................................................................................................. 46  输入/输出端口 ..................................................................................................................................................... 52  上拉电阻 .......................................................................................................................................................... 52  PA口唤醒.......................................................................................................................................................... 52  输入/输出端口控制寄存器 ............................................................................................................................. 53  引脚重置功能 .................................................................................................................................................. 53  引脚重置寄存器 .............................................................................................................................................. 53  输入/输出引脚结构 ......................................................................................................................................... 54  编程注意事项 .................................................................................................................................................. 55  Rev. 1.60 II 2012-11-28 目 录 定时器模块 – TM ............................................................................................................................................... 56  简介 .................................................................................................................................................................. 56  TM操作 ............................................................................................................................................................ 56  TM时钟源 ........................................................................................................................................................ 56  TM中断 ............................................................................................................................................................ 56  TM外部引脚 .................................................................................................................................................... 57  编程注意事项 .................................................................................................................................................. 57  简易型TM ............................................................................................................................................................ 58  简易型TM操作 ................................................................................................................................................ 58  简易型TM寄存器介绍 .................................................................................................................................... 59  简易型TM工作模式 ........................................................................................................................................ 62  比较匹配输出模式 .......................................................................................................................................... 62  定时/计数器模式 ............................................................................................................................................. 65  PWM输出模式................................................................................................................................................. 65  标准型TM – STM ............................................................................................................................................... 68  标准型TM操作 ................................................................................................................................................ 68  标准型TM寄存器介绍 .................................................................................................................................... 68  标准型TM工作模式 ........................................................................................................................................ 71  比较匹配输出模式 .......................................................................................................................................... 72  定时/计数器模式 ............................................................................................................................................. 74  PWM输出模式................................................................................................................................................. 74  单脉冲模式 ...................................................................................................................................................... 77  捕捉输入模式 .................................................................................................................................................. 78  增强型TM - ETM................................................................................................................................................ 79  增强型TM操作 ................................................................................................................................................ 79  增强型TM寄存器介绍 .................................................................................................................................... 80  增强型TM工作模式 ........................................................................................................................................ 84  比较匹配输出模式 .......................................................................................................................................... 85  定时/计数器模式 ............................................................................................................................................. 88  PWM输出模式................................................................................................................................................. 88  单脉冲输出模式 .............................................................................................................................................. 93  捕捉输入模式 .................................................................................................................................................. 94  A/D转换器............................................................................................................................................................ 96  A/D 简介.......................................................................................................................................................... 96  A/D转换寄存器介绍........................................................................................................................................ 96  A/D转换器数据寄存器 – ADRL,ADRH ..................................................................................................... 96  A/D转换控制寄存器 – ADCR0,ADCR1,ACERL .................................................................................... 97  A/D操作 ........................................................................................................................................................... 99  A/D输入引脚 ................................................................................................................................................... 99  A/D转换步骤 ................................................................................................................................................. 100  编程注意事项 ................................................................................................................................................ 101  A/D转换功能 ................................................................................................................................................. 101  A/D转换应用范例.......................................................................................................................................... 102  比较器 ................................................................................................................................................................ 104  比较器操作 .................................................................................................................................................... 104  比较器寄存器 ................................................................................................................................................ 104  比较器中断 .................................................................................................................................................... 105  Rev. 1.60 III 2012-11-28 目 录 编程注意事项 ................................................................................................................................................ 105  中断 .................................................................................................................................................................... 106  中断寄存器 .................................................................................................................................................... 106  中断操作 .........................................................................................................................................................111  外部中断 .........................................................................................................................................................114  比较器中断 .....................................................................................................................................................114  多功能中断 .....................................................................................................................................................114  A/D转换器中断...............................................................................................................................................114  时基中断 .........................................................................................................................................................114  EEPROM中断 .................................................................................................................................................115  LVD中断 .........................................................................................................................................................115  TM中断 ...........................................................................................................................................................116  中断唤醒功能 .................................................................................................................................................116  编程注意事项 .................................................................................................................................................116  低电压检测-LVD ................................................................................................................................................117  LVD寄存器......................................................................................................................................................117  LVD操作 .........................................................................................................................................................117  配置选项 .............................................................................................................................................................118  应用电路 .............................................................................................................................................................119  HT66F03/ HT66F04 ........................................................................................................................................119  HT68F03/ HT68F04 ........................................................................................................................................119  指令集 ................................................................................................................................................................ 120  指令集概要 ........................................................................................................................................................ 122  封装信息 ............................................................................................................................................................ 132  10-PIN MSOP外形尺寸 .................................................................................................................................. 132  16-PIN NSOP (150MIL)外形尺寸 .................................................................................................................... 133  包装带和卷轴规格 ............................................................................................................................................ 134  卷轴尺寸 ........................................................................................................................................................ 134  运输带尺寸 .................................................................................................................................................... 135  Rev. 1.60 IV 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 内置 EEPROM 增强型八位 Flash 小封装单片机 技术相关信息 · 应用范例 -HA0075S MCU复位电路和振荡电路的应用范例 特性 CPU 特性  工作电压: f SYS =8MHz:2.2V~5.5V f SYS =12MHz:2.7V~5.5V f SYS =20MHz:4.5V~5.5V  V DD =5V,系统时钟为 20MHz时,指令周期 为 0.2μs  提供省电模式和唤醒功能,以降低功耗  五种振荡模式: 外部晶振 -- HXT 外部 32.768kHz 晶振 -- LXT 外部 RC -- ERC 内部 RC -- HIRC,无需外接元件 内部 32kHz RC -- LIRC,无需外接元件  多种工作模式:正常、低速、空闲和休眠  内部集成 4MHz,8MHz 和 12MHz 振荡器, 无需外接元件  所有指令都可在 1 或 2 个指令周期内完成  查表指令  63 条指令 Rev.1.60   多达 8 层堆栈 位操作指令 周边特性  Flash 程序存储:1K×14 ~ 2K×15  RAM 数据存储:64×8 ~ 96×8  EEPROM 存储器:64×8  看门狗定时器功能  多达 8 个双向 I/O 口  外部中断口与输入/输出引脚共用  多个定时器模块用于时间测量、捕捉输入、 比较匹配输出、PWM 输出及单脉冲输出  比较器功能  双时基功能,可提供固定时间的中断信号  多通道 12 位分辨精度的 A/D 转换器  低电压复位功能  低电压检测功能  封装类型:10-pin MSOP、16-pin NSOP 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 概述 HT6xF0x 单片机是一款具有 8 位高性能精简指令集的 Flash 单片机。该系列单片机具有很多功 能和特性,其 Flash 存储器可多次编程的特性给用户提供了极大的方便。存储器方面,还包含了一个 RAM 数据存储器和一个可用于存储序号、校准数据等非易失性数据的 EEPROM 存储器。 在模拟特性方面,该系列单片机包含一个多通道 12 位 A/D 转换器和比较器功能。还带有多个 使用灵活的定时器模块,可提供定时功能、脉冲产生功能及 PWM 产生功能。内部看门狗定时器、 低电压复位和低电压检测等内部保护特性,外加优秀的抗干扰和 ESD 保护性能,确保单片机在恶劣 的电磁干扰环境下可靠地运行。 这系列单片机提供了丰富的 HXT、LXT、ERC、HIRC 和 LIRC 振荡器功能选项,且内建完整的 系统振荡器,无需外接元件。其在不同工作模式之间动态切换的能力,为用户提供了一个优化单片 机操作和减少功耗的手段。 外加时基功能、I/O 使用灵活等其它特性,使这系列单片机可以广泛应用于各种产品中,例如电 子测量仪器、环境监控、手持式测量工具、家庭应用、电子控制工具、马达控制等方面。 选型表 对此系列的芯片而言,大多数的特性参数都是一样的。主要差异在于存储器的容量、TM 特性、 堆栈层数以及是否内建 A/D 转换器。下表列出了各单片机的主要特性。 型号 VDD ROM Ext. Int. RAM EEPROM I/O HT66F03 2.2V~5.5V 1K×14 64 ×8 64×8 8 1 HT66F04 2.2V~5.5V 2K×15 96×8 64×8 8 1 HT68F03 2.2V~5.5V 1K×14 64 ×8 64×8 8 1 HT68F04 2.2V~5.5V 2K×15 96×8 64×8 8 1 Rev.1.60 2 A/D TM 模块 10-bit CTM×1 10-bit STM×1 10-bit CTM×1 12-bit×4 10-bit ETM×1 10-bit STM×1 10-bit CTM×1 — 10-bit STM×1 10-bit CTM×1 — 10-bit STM×1 12-bit×4 Comp. 堆栈 封装形式 1 4 10MSOP 16NSOP 1 8 10MSOP 16NSOP 1 4 1 8 10MSOP 16NSOP 10MSOP 16NSOP 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 方框图 引脚图 Rev.1.60 3 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 注:1、括号内的引脚为可编程改变位置的引脚。 2、若共用脚同时有多种输出,“/”号右侧的引脚名具有更高的优先级。 3、VDD&AVDD 指的是 VDD 和 AVDD 为同一个引脚。 Rev.1.60 4 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 引脚说明 除了电源引脚外,该系列单片机的所有引脚都以它们的端口名称进行标注,例如 PA0、PA1 等, 用于描述这些引脚的数字输入/输出功能。然而,这些引脚也与其它功能共用,如模数转换器等。每 个引脚的功能如下表所述,而引脚配置的详细内容见规格书其它章节。 HT66F03 引脚名称 OP 功能 PA0~ PA7 端口 A AN0~AN3 VREF C- ADC 输入 ADC 参考输入 C+ 比较器输入 PAWU PAPU ACERL ADCR1 CPC I/T O/T ST CMOS AN AN AN — — — PA0~PA3 PA1 PA1 AN — PA0 — CMOS PA2 共用引脚映射 — CX 比较器输出 TCK0 TM0 输入 PRM ST — PA4、PA6 或 PA7 TCK1 TM1 输入 PRM ST — PA3 或 PA7 TP0 TM0 输入/输出 PRM ST CMOS PA3、PA5 或 PA2 TP1 TM1 输入/输出 PRM ST CMOS PA4、PA6 或 PA7 INT 外部中断 PRM ST — PA3 或 PA7 OSC1 HXT/ERC/LXT 脚 CO HXT/LXT — PA6 OSC2 HXT/LXT 脚 CO — HXT/LXT PA5 复位输入 CO ST — PA7 — PWR — — — PWR — — — PWR — — — PWR — — ———— RES VDD AVDD VSS AVSS * 电源电压 * ADC电源电压 ** 地 ** ADC地 注:I/T:输入类型;O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源;CO:配置选项;ST:斯密特触发输入 CMOS:CMOS 输出;AN:模拟输入脚 HXT:高速晶体振荡器 LXT:低速晶体振荡器 * :VDD是单片机电源电压,而AVDD是ADC电源电压。AVDD与VDD在内部是同一个引脚。 ** :VSS是单片机地引脚,而AVSS是ADC地引脚。AVSS与VSS在内部是同一个引脚。 Rev.1.60 5 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 HT66F04 引脚名称 OP 功能 PA0~ PA7 端口 A AN0~AN3 VREF C- ADC 输入 ADC 参考输入 C+ 比较器输入 PAWU PAPU ACERL ADCR1 CPC I/T O/T ST CMOS AN AN AN — — — PA0~PA3 PA1 PA1 AN — PA0 — CMOS PA2 共用引脚映射 — CX 比较器输出 TCK0 TM0 输入 PRM ST — PA4、PA6 或 PA7 TCK1 TM1 输入 PRM ST — PA3 或 PA7 TCK2 TM2 输入 PRM ST — PA3、PA5 或 PA2 TP0 TM0 输入/输出 PRM ST CMOS PA3、PA5 或 PA2 TP1 TM1 输入/输出 PRM ST CMOS PA4、PA6 或 PA7 TM2 输入/输出 PRM ST CMOS INT 外部中断 PRM ST — PA3 或 PA7 OSC1 HXT/ERC/LXT 脚 CO HXT/LXT — PA6 OSC2 HXT/LXT 脚 CO — HXT/LXT PA5 复位输入 CO ST — PA7 — PWR — — — PWR — — — PWR — — — PWR — — TP2A TP2B ———— RES VDD AVDD VSS AVSS * 电源电压 * ADC电源电压 ** 地 ** ADC地 PA6、PA1 或 PA7 PA5、PA0 或 PA2 注:I/T:输入类型;O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源;CO:配置选项;ST:斯密特触发输入 CMOS:CMOS 输出;AN:模拟输入脚 HXT:高速晶体振荡器 LXT:低速晶体振荡器 *:VDD 是单片机电源电压,而 AVDD 是 ADC 电源电压。AVDD 与 VDD 在内部是同一个引脚。 **:VSS 是单片机地引脚,而 AVSS 是 ADC 地引脚。AVSS 与 VSS 在内部是同一个引脚。 Rev.1.60 6 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 HT68F03/HT68F04 引脚名称 PA0~PA7 CC+ 功能 端口 A 比较器输入 OP I/T O/T PAWU PAPU ST CMOS AN — PA1 AN — PA0 — CMOS PA2 CPC 共用引脚映射 — CX 比较器输出 TCK0 TM0 输入 PRM ST — PA 4、PA6 或 PA7 TCK1 TM1 输入 PRM ST — PA3 或 PA7 TP0 TM0 输入/输出 PRM ST CMOS PA3、PA5 或 PA2 TP1 TM1 输入/输出 PRM ST CMOS PA 4、PA6 或 PA7 INT 外部中断 PRM ST — PA3 或 PA7 OSC1 HXT/ERC/LXT 脚 CO HXT/LXT — PA6 OSC2 HXT/LXT 脚 CO — HXT/LXT PA5 RES VDD 复位输入 CO ST — PA7 电源电压 — PWR — — VSS 地 — PWR — — ———— 注:I/T:输入类型;O/T:输出类型 OP:通过配置选项(CO)或寄存器选项来设置 PWR:电源;CO:配置选项;ST:斯密特触发输入 CMOS:CMOS 输出 HXT:高速晶体振荡器 LXT:低速晶体振荡器 Rev.1.60 7 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 极限参数 电源供应电压………….V SS -0.3V~V SS +6.0V 端口输入电压………….V SS -0.3V~V DD +0.3V I OL 总电流………………………….......80mA 总功耗………………………………..500mW 储存温度……................……..-50℃~125℃ 工作温度…………...............….-40℃~85℃ I OH 总电流……….................……….-80mA 注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作 状态,而且若长期在标示范围外的条件下工作,可能影响芯片的可靠性。 直流电气特性 Ta=25℃ 符号 V DD 参数 工作电压 (HXT, ERC, HIRC) 测试条件 V DD 条件 = f SYS 8MHz — f SYS 12MHz = = f SYS 20MHz 最小 典型 最大 单位 2.2 2.7 4.5 — — — 5.5 5.5 5.5 V V V 无负载,f H =8MHz, ADC off,WDT 使能 — 1.0 1.5 mA — 2.5 4.0 mA 无负载,f H =10MHz, ADC off,WDT 使能 — 1.2 2.0 mA — 2.8 4.5 mA 无负载,f H =12MHz, ADC off,WDT 使能 — 1.5 2.5 mA — 3.5 5.5 mA 无负载,f H =16MHz, ADC off,WDT 使能 — 2.0 3.0 mA — 4.5 7.0 mA — 5.5 8.5 mA 无负载,f H =6MHz, ADC off,WDT 使能 — 0.9 1.5 mA — 2.0 3.0 mA 无负载,f H =8MHz, ADC off,WDT 使能 — 1.2 2.0 mA — 2.8 4.5 mA 无负载,f H =12MHz, ADC off,WDT 使能 — 1.8 3.0 mA — 4.0 6.0 mA — 5.0 7.5 mA — 0.7 1.2 mA 5V 无负载,f H =4MHz, ADC off,WDT 使能 — 1.5 2.5 mA 3V 无负载,f H =8MHz, — 1.2 2.0 mA 3V 5V 3V 5V I DD1 工作电流(HXT) (f SYS =f H , f S =f SUB =f LIRC ) 3V 5V 3V 5V 5V 3V 5V 3V I DD2 工作电流(ERC) (f SYS =f H , f S =f SUB =f LIRC ) 5V 3V 5V 5V I DD3 Rev.1.60 工作电流(HIRC) (f SYS =f H , f S =f SUB = f LXT 或f LIRC ) 3V 无负载,f H =20MHz, ADC off,WDT 使能 无负载,f H =16MHz, ADC off,WDT 使能 8 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 符号 参数 V DD 5V 3V 5V 3V 5V 3V 5V 3V I DD4 工作电流(HXT) (f SYS =f L , f S =f SUB =f LIRC ) 5V 3V 5V 3V 5V 3V 5V 3V I DD5 工作电流(LXT) (f SYS =f L =f LXT , f S =f SUB = f LXT ) 5V 3V 5V I DD6 I DD7 工作电流(LIRC) (f SYS =f L =f LIRC , f S =f SUB = f LIRC ) 工作电流(LXT) (f SYS =f L =f LXT , f S =f SUB = f LIRC ) I STB1 静态电流(IDLE, HXT) (f SYS =f H ,f S =f SUB = f LIRC ) I STB2 静态电流(IDLE, HXT) (f SYS off ,f S =f SYS /4) I STB3 静态电流(IDLE, HXT) (f SYS off ,f S =f SUB =f LIRC ) Rev.1.60 3V 5V 3V 5V 3V 5V 3V 5V 3V 5V 测试条件 条件 ADC off,WDT 使能 最小 典型 最大 单位 — 2.8 4.5 mA 无负载,f H =12MHz, ADC off,WDT 使能 — 1.8 3.0 mA — 4.0 6.0 mA 无负载,f H =12MHz, f L =f H /2, ADC off, WDT 使能 — 0.90 1.50 mA — 2.50 3.75 mA 无负载,f H =12MHz, f L =f H /4, ADC off, WDT 使能 — 0.70 1.00 mA — 2.00 3.00 mA 无负载,f H =12MHz, f L =f H /8, ADC off, WDT 使能 — 0.60 0.90 mA — 1.60 2.40 mA 无负载,f H =12MHz, f L =f H /16,ADC off, WDT 使能 — 0.50 0.75 mA — 1.50 2.25 mA 无负载,f H =12MHz, f L =f H /32,ADC off, WDT 使能 — 0.49 0.74 mA — 1.45 2.18 mA 无负载,f H =12MHz, f L =f H /64, ADC off, WDT 使能 — 0.47 0.71 mA — 1.40 2.10 mA 无负载,ADC off, WDT 使能,LXTLP=0 — 10 20 μA — 30 50 μA 无负载,ADC off, WDT 使能,LXTLP=1 — 10 20 μA — 40 60 μA 无 负 载 , ADC off , WDT 使能 — 10 20 μA — 30 50 μA 无 负 载 , ADC off , WDT 使能,LXTLP=0 — 10 20 μA — 40 60 μA 无负载,系统 HALT, f SYS =12MHz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =12MHz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =12MHz, ADC off,WDT 使能 — 0.6 1.0 mA — 1.2 2.0 mA — 1.3 3.0 μA — 2.2 5.0 μA — 1.3 3.0 μA — 2.2 5.0 μA 9 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 符号 参数 V DD 3V I STB4 静态电流(IDLE, HXT) (f SYS =f L , f S =f SUB =f LIRC ) I STB5 静态电流(IDLE, HXT) (f SYS off , f S =f SUB =f LIRC ) 3V I STB6 静态电流(IDLE, LXT) (f SYS =f L =f LXT , f S =f SUB = f LXT ) 3V I STB7 静态电流(IDLE, HXT) (f SYS off ,f S =f SYS /4) I STB8 静态电流(IDLE, LXT) (f SYS off ,f S =f SUB =f LXT ) I STB9 静态电流(IDLE, LIRC) (f SYS off ,f S =f SUB =f LIRC ) 3V I STB10 静态电流(IDLE, LXT) (f SYS off ,f S =f SUB =f LIRC ) 3V I STB11 静态电流(SLEEP, HXT) (f SYS off ,f S =f SUB =f LIRC ) 3V I STB12 静态电流(SLEEP, HXT) (f SYS off , f S =f SUB =f LIRC ) 3V I STB13 静态电流(SLEEP, LXT) (f SYS off, f S =f SUB =f LXT 或 f LIRC ) 3V I STB14 静态电流(SLEEP, LXT) (f SYS off ,f S =f SUB =f LXT ) V IL1 V IH1 输入/输出口、TCKn 或 INT 脚的低电平输入电压 输入/输出口、TCKn 或 INT 脚的高电平输入电压 5V 5V 5V 3V 5V 3V 5V 5V 5V 5V 5V 5V 3V 5V 测试条件 条件 无负载,系统 HALT, f SYS =12MHz/64, ADC off,WDT 使能 无负载,系统 HALT, f SYS =12MHz/64, ADC off,WDT 使能 无负载,系统 HALT, f SYS =32768Hz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =32768Hz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =32768Hz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =32kHz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =32768Hz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =12MHz, ADC off,WDT 除能 无负载,系统 HALT, f SYS =12MHz, ADC off,WDT 使能 无负载,系统 HALT, f SYS =32768Hz, ADC off,WDT 除能 无负载,系统 HALT, f SYS =32768Hz, ADC off,WDT 使能 最小 典型 最大 单位 — 0.6 0.9 mA — 1.3 2.0 mA — 1.3 3.0 μA — 2.2 5.0 μA — 5 10 μA — 16 32 μA — 5 10 μA — 16 32 μA — 5 10 μA — 16 32 μA — 1.3 3.0 μA — 2.2 5.0 μA — 1.3 3.0 μA — 2.2 5.0 μA — 0.1 1.0 μA — 0.3 2.0 μA — 1.3 5.0 μA — 2.2 10.0 μA — 0.1 1.0 μA — 0.3 2.0 μA — 5 10 μA — 16 32 μA — — 0 — 0.3V D — — 0.7V D — V DD D D V V V IL2 低电平输入电压( RES) — — 0 — 0.4V D V IH2 高电平输入电压( RES) — — 0.9V D — V DD V LVR使能,V LVR =2.10V LVR使能,V LVR =2.55V LVR使能,V LVR =3.15V LVR使能,V LVR =4.20V LVDEN=1,V LVD =2.0V LVDEN=1,V LVD =2.2V LVDEN=1,V LVD =2.4V -5% -5% -5% -5% -5% -5% -5% 2.10 2.55 3.15 4.20 2.00 2.20 2.40 +5% +5% +5% +5% +5% +5% +5% V V V V V V V V LVR 低电压复位电压 — V LVD 低电压检测电压 — Rev.1.60 10 D D V 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 符号 I LVD V OL V OH R PH V 125 I 125 Rev.1.60 测试条件 V DD 条件 LVDEN=1,V LVD =2.7V LVDEN=1,V LVD =3.0V LVDEN=1,V LVD =3.3V LVDEN=1,V LVD =3.6V LVDEN=1,V LVD =4.4V 使用 LVR 和 LVD 的额外 LVR 除能,LVDEN=1 — 功耗 LVR 使能,LVDEN=1 3V I OL =9mA 输入/输出低电压 5V I OL =20mA = 3V I OH -3.2mA 输入/输出口高电压 5V I OH -7.4mA = 3V 输入/输出口上拉电阻 — 5V 1.25V 参考电压 — — 使用 1.25V 参考电压的额 — — 外功耗 参数 11 最小 典型 最大 单位 -5% -5% -5% -5% -5% — — — — 2.7 4.5 20 10 -3% 2.70 3.00 3.30 3.60 4.40 75 90 — — — — 60 30 1.25 +5% +5% +5% +5% +5% 120 150 0.3 0.5 — — 100 50 +3% V V V V V μA μA V V V V k k V — 200 300 μA 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 交流电气特性 Ta=25℃ 符号 参数 f CPU 系统时钟 f SYS 系统时钟(HXT) f ERC 系统时钟(ERC) V DD 2.2V~5.5V 2.7V~5.5V 4.5V~5.5V 2.2V~5.5V 2.7V~5.5V 4.5V~5.5V 5V 5V 5V 3.0V~5.5V 2.2V~5.5V f HIRC 系统时钟(HIRC) f LXT 系统时钟(LXT) f TIMER 定时器输入频率 f LIRC t RES t INT t LVR t LVD t LVDS t BGS 系统时钟(LIRC) 外部复位低电平脉宽 中断脉宽 低压压复位时间 低电压中断时间 LVDO 稳定的时间 V BG 打开稳定时间 Rev.1.60 3V/5V 3V/5V 5V 3V/5V 3V/5V 5V 2.2V~3.6V 3.0V~5.5V 2.2V~3.6V 3.0V~5.5V 3.0V~5.5V 2.2V~3.6V 3.0V~5.5V 2.2V~3.6V 3.0V~5.5V 3.0V~5.5V — 2.2V~5.5V 2.7V~5.5V 3.3V~5.5V 4.5V~5.5V 5V — — — — — — 测试条件 条件 — — Ta=25℃,R=120 kΩ* Ta=0~70℃,R=120 kΩ* Ta=-40~85℃, R=120 kΩ* Ta=-40~85℃, R=120 kΩ* Ta=-40~85℃, R=120 kΩ* Ta=25℃ Ta=25℃ Ta=25℃ Ta=0℃~70℃ Ta=0℃~70℃ Ta=0℃~70℃ Ta=0℃~70℃ Ta=0℃~70℃ Ta=0℃~70℃ Ta=0℃~70℃ Ta=0℃~70℃ Ta=-40℃~85℃ Ta=-40℃~85℃ Ta=-40℃~85℃ Ta=-40℃~85℃ Ta=-40℃~85℃ — — — — — Ta=25℃ — — — — — — 12 最小 典型 最大 单位 DC DC DC 0.4 0.4 0.4 -2% -5% — — — — — — 8 8 8 12 20 8 12 20 +2% +6% MHz MHz MHz MHz MHz MHz MHz MHz -7% 8 +9% MHz -9% 8 +10% MHz -15% 8 +10% MHz -2% -2% -2% -5% -5% -5% -7% -5% -6% -4% -6% -12% -10% -15% -8% -12% — 2 2 2 2 -10% 1 1 120 20 15 200 4 8 12 4 8 12 4 4 8 8 12 4 4 8 8 12 32.768 — — — — 32 — — 240 45 — — +2% +2% +2% +5% +4% +3% +7% +9% +4% +9% +7% +8% +9% +5% +9% +7% — 8 10 12 16 +10% — — 480 90 — — MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz kHz MHz MHz MHz MHz kHz μs t SYS μs μs μs μs 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 符号 t SST 参数 系统启动时间 (从 HALT 中唤醒) V DD — 测试条件 条件 f SYS =HXT或LXT OSC f SYS =ERC或HIRC OSC f SYS =LIRC OSC 最小 典型 最大 单位 — — — 1024 15~16 1~2 — — — t SYS 注:1、t SYS =1/f SYS 2、*:对于f ERC 表示电阻的公差会影响外部RC的频率,建议使用精密度较高的电阻。 3、为了保证 HIRC 振荡器的频率精度,VDD 与 VSS 间连接一个 0.1μF 的去耦电容,并尽可能接近芯片。 ADC 特性 Ta=25℃ 符号 AV DD V ADI V REF DNL INL I ADC t ADCK t ADC t ADS t ON2ST 测试条件 条件 V REF =AV DD — — t ADCK =1.0μs t ADCK =1.0μs 参数 V DD ADC 工作电压 — AD 输入电压 — ADC 参考电压 — 5V A/D 非线性微分误差 5V A/D 非线性积分误差 3V 打开 A/D 增加的功耗 无负载,t ADCK =0.5μs 5V 2.2V~5.5V A/D 时钟周期 — A/D 转换时间(包括 2.2V~5.5V 12-bit ADC A/D 采样和保持时间) 2.2V~5.5V ADC 采样时间 — ADC 开启到开始工作 2.2V~5.5V — 的时间 最小值 典型值 最大值 单位 2.7 0 2 — — — — 0.5 — — — ±1 ±2 0.90 1.20 — 5.5 V REF AV DD ±2 ±4 1.35 1.80 10 V V V LSB LSB mA mA μs — 16 — t ADCK — 4 — t ADCK 2 — — μs 比较器电气特性 Ta=25℃ 符号 参数 测试条件 最小 典型 最大 单位 — 2.2 — 5.5 V 3V — — 37 56 μA 5V — — 130 200 μA V CMPOS 比较器输入失调电压 — — -10 — 10 mV V HYS 迟滞宽度 — — 20 40 60 mV V CM 比较器共模电压范围 — — V SS — V DD -1.4V V A OL 比较器开环增益 — — 60 80 — dB t PD 比较器响应时间 — — 370 560 ns V CMP 比较器工作电压 I CMP 比较器工作电流 V DD 条件 — 100mV 偏置(注) 注:测量方式为:当一只输入脚的输入电压为V CM =(V DD -1.4)/2 时,另一只输入脚的输入电压从V SS 到(V CM +100mV) 或从V DD 到(V CM -100mV)转变。 Rev.1.60 13 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 上电复位特性 Ta=25℃ 符号 V POR 测试条件 参数 上电复位电压 RR VDD 上电复位电压速率 t POR V DD 保持为V POR 的最小时间 V 最小 典型 最大 单位 — — — 100 mV — — 0.035 1 — — — — V/ms ms V DD 条件 — — — D D tP R R O R V D D V P O R T im e BandGap参考电压 (V BG ) 特性曲线 V OL 与I OL 过温特性曲线 (V DD =3.0V/5.0V) Rev.1.60 14 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 V OH 与I OH 过温特性曲线 (V DD =3.0V/5.0V) Rev.1.60 15 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 系统结构 内部系统结构是盛群单片机具有良好性能的主要因素。由于采用 RISC 结构,此系列单片机具 有高运算速度和高性能的特点。通过流水线的方式,指令的取得和执行同时进行,此举使得除了跳 转和调用指令外,其它指令都能在一个指令周期内完成。8 位 ALU 参与指令集中所有的运算,它可 完成算术运算、逻辑运算、移位、递增、递减和分支等功能,而内部的数据路径则是以通过累加器 和 ALU 的方式加以简化。有些寄存器在数据存储器中被实现,且可以直接或间接寻址。简单的寄存 器寻址方式和结构特性,确保了在提供具有最大可靠度和灵活性的 I/O 和 A/D 控制系统时,仅需要 少数的外部器件。使得这些单片机适用于低成本和批量生产的控制应用。 时序和流水线结构 主系统时钟由 HXT,LXT,HIRC,LIRC 或 ERC 振荡器提供,它被细分为 T1~T4 四个内部产 生的非重叠时序。在 T1 时间,程序计数器自动加一并抓取一条新的指令。剩下的时间 T2~T4 完成 译码和执行功能,因此,一个 T1~T4 时钟周期构成一个指令周期。虽然指令的抓取和执行发生在连 续的指令周期,但单片机流水线结构会保证指令在一个指令周期内被有效执行。除非程序计数器的 内容被改变,如子程序的调用或跳转,在这种情况下指令将需要多一个指令周期的时间去执行。 系统时序和流水线 如果指令牵涉到分支,例如跳转或调用等指令,则需要两个指令周期才能完成指令执行。需要 一个额外周期的原因是程序先用一个周期取出实际要跳转或调用的地址,再用另一个周期去实际执 行分支动作,因此用户需要特别考虑额外周期的问题,尤其是在执行时间要求较严格的时候。 指令捕捉 Rev.1.60 16 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 程序计数器 在程序执行期间,程序计数器用来指向下一个要执行的指令地址。除了 “JMP”和“CALL”指令 需要跳转到一个非连续的程序存储器地址之外,它会在每条指令执行完成以后自动加一。选择不同 型号的单片机,程序寄存器的宽度会因程序存储器的容量的不同而不同。只有较低的 8 位,即所谓 的程序计数器低字节寄存器 PCL,可以被用户直接读写。 当执行的指令要求跳转到不连续的地址时,如跳转指令、子程序调用、中断或复位等,单片机 通过加载所需要的位址到程序寄存器来控制程序,对于条件跳转指令,一旦条件符合,在当前指令 执行时取得的下一条指令将会被舍弃,而由一个空指令周期来取代。 单片机型号 HT66F03 HT68F03 HT66F04 HT68F04 程序计数器 程序计数器高字节 PCL 寄存器 PC9, PC8 PC10~PC8 PCL7~PCL0 程序计数器 程序计数器的低字节,即程序计数器的低字节寄存器 PCL,可以通过程序控制,且它是可以读 取和写入的寄存器。通过直接写入数据到这个寄存器,一个程序短跳转可直接执行,然而只有低字 节的操作是有效的,跳转被限制在存储器的当前页中,即 256 个存储器地址范围内,当这样一个程 序跳转要执行时,会插入一个空指令周期。PCL 的使用可能引起程序跳转,因此需要额外的指令周 期。 堆栈 堆栈是一个特殊的存储空间,用来存储程序计数器中的内容。各单片机有不同的堆栈层数,堆 栈既不是数据部分也不是程序空间部分,而且它既不是可读取也不是可写入的。当前层由堆栈指针 (SP)加以指示,同样也是不可读写的。在子程序调用或中断响应服务时,程序计数器的内容被压入 到堆栈中。当子程序或中断响应结束时,返回指令(RET 或 RETI)使程序计数器从堆栈中重新得到它 以前的值。当一个芯片复位后,堆栈指针将指向堆栈顶部。 P ro g ra m T o p o f S ta c k C o u n 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 P o in te r B o tto m S ta c k L e v e l 3 o f S ta c k P ro g ra m M e m o ry S ta c k L e v e l N 如果堆栈已满,且有非屏蔽的中断发生,中断请求标志会被置位,但中断响应将被禁止。当堆 栈指针减少(执行 RET 或 RETI),中断将被响应。这个特性提供程序设计者简单的方法来预防堆栈溢 出。然而即使堆栈已满,CALL 指令仍然可以被执行,而造成堆栈溢出。使用时应避免堆栈溢出的 情况发生,因为这可能导致不可预期的程序分支指令执行错误。 若堆栈溢出,则首个存入堆栈的程序计数器数据将会丢失。 Rev.1.60 17 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 单片机型号 HT66F03/HT68F03 HT66F04/HT68F04 堆栈层数 4 8 算术逻辑单元 — 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 18 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Flash 程序存储器 程序存储器用来存放用户代码即储存程序。程序存储器为 Flash 类型意味着可以多次重复编程, 方便用户使用同一芯片进行程序的修改。使用适当的单片机编程工具,此系列所有单片机提供用户 灵活便利的调试方法和项目开发规划及更新。 结构 程序存储器的容量为 1K×14 位到 2K×15 位,程序存储器用程序计数器来寻址,其中也包含数 据、表格和中断入口。数据表格可以设定在程序存储器的任何地址,由表格指针来寻址。 单片机型号 HT66F03/HT68F03 HT66F04/HT68F04 容量 1K×14 2K×15 特殊向量 程序存储器内部某些地址保留用做诸如复位和中断入口等特殊用途。地址 0000H 是芯片复位后 的程序起始地址。在芯片复位之后,程序将跳到这个地址并开始执行。 程序存储器结构 Rev.1.60 19 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 查表 程序存储器中的任何地址都可以定义成一个表格,以便储存固定的数据。使用表格时,表格指 针必须先行设定,其方式是将表格的地址放在表格指针寄存器 TBLP 和 TBHP 中。这些寄存器定义 表格总的地址。 在设定完表格指针后,表格数据可以使用“TABRD [m]”或“TABRDL [m]”指令分别从程序存 储器查表读取。当这些指令执行时,程序存储器中表格数据低字节,将被传送到使用者所指定的数 据存储器[m],程序存储器中表格数据的高字节,则被传送到 TBLH 特殊寄存器,而高字节中未使用 的位将被读取为“0”。 下图是查表中寻址/数据流程: 查表范例 以下范例说明表格指针和表格数据如何被定义和执行。这个例子使用的表格数据用 ORG 伪指令 储存在存储器中。ORG 指令的值“700H”指向的地址是 2K 程序存储器中最后一页的起始地址。表 格指针的初始值设为 06H,这可保证从数据表格读取的第一笔数据位于程序存储器地址 706H,即最 后一页起始地址后的第六个地址。值得注意的是,假如“TABRD [m]”指令被使用,则表格指针指 向当前页。在这个例子中,表格数据的高字节等于零,而当“TABRD [m]”指令被执行时,此值将 会自动的被传送到 TBLH 寄存器。  表格读取程序举例 tempreg1 db ? tempreg2 db ? : : mov a,06h mov tblp,a mov a,07h tbhp,a : : tabrd tempreg1 dec tblp tabrd tempreg2 ; temporary register #1 ; temporary register #2 ; initialise low table pointer - note that this address is referenced ; initialise high table pointer ; transfers value in table referenced by table pointer data at program ; memory address “706H” transferred to tempreg1 and TBLH ; reduce value of table pointer by one ; 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 20 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 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 V D D R E S R E S D A T A D A T A C L K C L K W r ite r _ V S S V S S * * * T o o th e r C ir c u it 注:*可能为电阻或电容。若为电阻则其值必须大于 1kΩ,若为电容则其必须小于 1nF。 MCU 引脚 PA7 RES DATA PA0 CLK PA2 在线编程和 MCU 引脚 在线编程引脚 ———— Rev.1.60 21 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 数据存储器 数据存储器是内容可更改的 8 位 RAM 内部存储器,用来储存临时数据。 结构 数据存储器分为两个区,第一部分是特殊功能数据存储器。这些寄存器有固定的地址且与单片 机的正确操作密切相关。大多特殊功能寄存器都可在程序控制下直接读取和写入,但有些被加以保 护而不对用户开放。 第二部分数据存储器是做一般用途使用,都可在程序控制下进行读取和写入。 总的数据存储器被分为几个区,由所选的单片机决定的。大部分特殊功能数据寄存器均可在所 有 Bank 被访问,处于“40H”地址的 EEC 寄存器却只能在 Bank 1 中被访问到。切换不同区域可通 过设置区域指针(BP)实现。所有单片机的数据存储器的起始地址都是“00H”。 单片机型号 HT66F03/HT68F03 HT66F04/HT68F04 Bank0 40H~7FH 40H~9FH 容量 64×8 96×8 HT66F03 Rev.1.60 Bank1 仅 40H(EEC)可用 仅 40H(EEC)可用 HT66F04 22 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 HT68F03 /HT68F04 特殊功能数据存储器结构 通用数据存储器 Rev.1.60 23 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 特殊功能寄存器 大部分特殊功能寄存器的细节将在相关功能章节描述,但有几个寄存器需在此章节单独描述。 间接寻址寄存器 — 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 进行间接寻址。注意,对于 HT66F03 和 HT68F03,间接寻址指针的第 7 位没有 作用,必须注意当读取间接寻址指针时,第 7 位将返回“1”。 以下例子说明如何清除一个具有 4 RAM 地址的区块,它们已事先定义成地址 adres1 到 adres4。  间接寻址程序举例 data .section ´data´ adres1 db ? adres2 db ? adres3 db ? adres4 db ? block code .section at 0 ´code´ org start: mov a,04h mov block,a mov a,offset adres1 mov mp0,a loop: db ? 00h ; 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 clr IAR0 inc mp0 sdz block jmp loop continue: 在上面的例子中有一点值得注意,即并没有确定 RAM 地址。 存储区指针-BP 数据存储器被分两个 Bank,可以通过设置存储区指针(Bank Pointer)值来访问不同的数据存 储区。BP 指针的第 0 位用于选择数据存储区 0~1。 复位后,数据存储器会初始化到 Bank 0,但是在暂停模式下的 WDT 溢出复位,不会改变通用 数据存储器的存储区号。应该注意的是特殊功能数据存储器不受存储区的影响,也就是说,不论是 在哪一个存储区,都能对特殊功能寄存器进行读写操作。数据存储器的直接寻址总是访问 Bank 0, 不影响存储区指针的值。要访问 Bank 0 之外的存储区,则必须要使用间接寻址方式。  BP 寄存器 Bit Name R/W POR Rev.1.60 7 — — — 6 — — — 5 — — — 4 — — — 24 3 — — — 2 — — — 1 — — — 0 DMBP0 R/W 0 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 7~1 Bit 0 未使用,读为“0” DMBP0:数据存储区选择位 0:Bank 0 1:Bank 1 累加器-ACC 对任何单片机来说,累加器是相当重要的,且与 ALU 所完成的运算有密切关系,所有 ALU 得 到的运算结果都会暂时存在 ACC 累加器里。若没有累加器,ALU 必须在每次进行如加法、减法和 移位的运算时,将结果写入到数据存储器,这样会造成程序编写和时间的负担。另外数据传送也常 常牵涉到累加器的临时储存功能,例如在使用者定义的一个寄存器和另一个寄存器之间传送数据时, 由于两寄存器之间不能直接传送数据,因此必须通过累加器来传送数据。 程序计数器低字节寄存器-PCL 为了提供额外的程序控制功能,程序计数器低字节设置在数据存储器的特殊功能区域内,程序 员可对此寄存器进行操作,很容易的直接跳转到其它程序地址。直接给 PCL 寄存器赋值将导致程序 直接跳转到程序存储器的某一地址,然而由于寄存器只有 8 位长度,因此只允许在本页的程序存储 器范围内进行跳转,而当使用这种运算时,要注意会插入一个空指令周期。 表格寄存器-TBLP,TBHP,TBLH 这三个特殊功能寄存器对存储在程序存储器中的表格进行操作。TBLP 和 TBHP 为表格指针, 指向表格数据存储的地址。它们的值必须在任何表格读取指令执行前加以设定,由于它们的值可以 被如“INC”或“DEC”的指令所改变,这就提供了一种简单的方法对表格数据进行读取。表格读 取数据指令执行之后,表格数据高字节存储在 TBLH 中。其中要注意的是,表格数据低字节会被传 送到使用者指定的地址。 状态寄存器-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。 另外,当进入一个中断程序或执行子程序调用时,状态寄存器不会自动压入到堆栈保存。假如 状态寄存器的内容是重要的且子程序可能改变状态寄存器的话,则需谨慎的去做正确的储存。  STATUS 寄存器 Bit 7 Name — — R/W — POR Rev.1.60 6 — — — 5 TO R 0 4 PDF R 0 25 3 OV R/W × 2 Z R/W × 1 AC R/W × 0 C R/W × 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 7~6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Rev.1.60 “×”为未知 未使用,读为“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 也受循环移位指令的影响。 26 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 EEPROM 数据寄存器 此系列所有单片机的一个特性是内建 EEPROM 数据存储器。 “Electrically Erasable Programmable Read Only Memory”为电可擦可编程只读存储器,由于其非易失的存储结构,即使在电源掉电的情 况下存储器内的数据仍然保存完好。这种存储区扩展了 ROM 空间,对设计者来说增加了许多新的 应用机会。EEPROM 可以用来存储产品编号、校准值、用户特定数据、系统配置参数或其它产品信 息等。EEPROM 的数据读取和写入过程也会变的更简单。 EEPROM数据寄存器结构 EEPROM 数据寄存器容量均为 64×8。由于映射方式与程序存储器和数据存储器不同,因此不能 像其它类型的存储器一样寻址。使用 Bank 0 中的一个地址和数据寄存器以及 Bank 1 中的一个控制 寄存器,可以实现对 EEPROM 的单字节读写操作。 单片机型号 HT66F03/HT66F04 HT68F03/HT68F04 容量 地址 64×8 00H~3FH EEPROM寄存器 有三个寄存器控制内部 EEPROM 数据存储器总的操作。地址寄存器 EEA、数据寄存器 EED 及 控制寄存器 EEC。EEA 和 EED 位于 Bank 0 中,它们能像其它特殊功能寄存器一样直接被访问。EEC 位于 Bank 1 中,不能被直接访问,仅能通过 MP1 和 IAR1 进行间接读取或写入。由于 EEC 控制寄 存器位于 Bank 1 中的“40H”,在 EEC 寄存器上的任何操作被执行前,MP1 必须先设为“40H”,BP 被设为“01H”。  EEPROM 寄存器列表 Name EEA EED EEC 7 — D7 — 6 — D6 — 5 D5 D5 — 4 D4 D4 —  EEA 寄存器 Bit Name R/W POR 7 — — — 6 — — — 5 D5 R/W × 4 D4 R/W × Bit 3 D3 D3 WREN 2 D2 D2 WR 1 D1 D1 RDEN 0 D0 D0 RD 3 D3 R/W × 2 D2 R/W × 1 D1 R/W × 0 D0 R/W × “×”为未知 Bit 7~6 Bit 5~0 未定义,读为“0” 数据 EEPROM 地址 数据 EEPROM 地址 Bit 5~Bit 0  EEC 寄存器 Bit 7 — Name — R/W — POR Bit 7~4 Bit 3 Rev.1.60 6 — — — 5 — — — 4 — — — 3 WREN R/W 0 2 WR R/W 0 1 RDEN R/W 0 0 RD R/W 0 未定义,读为“0” WREN:数据 EEPROM 写使能位 0:除能 1:使能 此位为数据 EEPROM 写使能位,向数据 EEPROM 写操作之前需将此位置高。将此位清零时,则禁止向 数据 EEPROM 写操作。 27 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 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”。 Bit 2  EED 寄存器 Bit 7 Name D7 R/W R/W × POR 6 D6 R/W × 5 D5 R/W × 4 D4 R/W × 3 D3 R/W × 2 D2 R/W × 1 D1 R/W × 0 D0 R/W × “×”为未知 Bit 7~0 EEPROM 数据 EEPROM 数据 Bit 7~Bit 0 从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 28 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 断章节讲述。 编程注意事项 必须注意的是数据不会无意写入 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, EED 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 Rev.1.60 ; 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 29 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 振荡器 不同的振荡器选择可以让使用者在不同的应用需求中实现更大范围的功能。振荡器的灵活性使 得在速度和功耗方面可以达到最优化。振荡器选择是通过配置选项和寄存器共同完成的。 振荡器概述 振荡器除了作为系统时钟源,还作为看门狗定时器和时基功能的时钟源。外部振荡器需要一些 外围器件,而集成的两个内部振荡器不需要任何外围器件。它们提供的高速和低速系统振荡器具有 较宽的频率范围。所有振荡器选择通过配置选项选择。较高频率的振荡器提供更高的性能,但要求 有更高的功率,反之亦然。动态切换快慢系统时钟的能力使单片机具有灵活而优化的性能/功耗比, 此特性对功耗敏感的应用领域尤为重要。 类型 外部晶振 外部 RC 内部高速 RC 外部低速晶振 内部低速 RC 名称 HXT ERC HIRC LXT LIRC 频率 400kHz~20MHz 8MHz 4,8 或 12MHz 32.768kHz 32kHz 振荡器类型 引脚 OSC1/OSC2 OSC1 — OSC1/OSC2 — 系统时钟配置 此系列的单片机有五个系统振荡器,包括三个高速振荡器和两个低速振荡器。高速振荡器有外 部晶体/陶瓷振荡器,外部 RC 振荡器和内部 4MHz,8MHz 或 12MHz RC 振荡器。两个低速振荡器 包括外部 32.768kHz 振荡器和内部 32kHz 振荡器。使用高速或低速振荡器作为系统时钟的选择是通 过设置 SMOD 寄存器中的 HLCLK 位及 CKS2~CKS0 位决定的,系统时钟可动态选择。 高速或低速振荡器的实际时钟源经由配置选项选择。低速或高速系统时钟频率由 SMOD 寄存 器的 HLCLK 位及 CKS2~CKS0 位决定的。请注意,两个振荡器必须做出选择,即一个高速和一个 低速振荡器。系统必须选择一个低速或高速的振荡器。OSC1 和 OSC2 脚用于连接外部晶振、外部 RC 和外部低速晶振等元件。一旦 OSC1 或 OSC1 及 OSC2 脚用于连接 ERC 或 HXT 振荡器时,相应 的低速振荡器须为 LIRC 振荡器。因此选择高速和低速振荡器作为高低速系统时钟源是有一定限制 的。高速和低速振荡器搭配选择如下表所示: 振荡器类型 高速振荡器 低速振荡器 Rev.1.60 1 HXT LIRC 可用振荡器选择 2 3 4 ERC HIRC HIRC LIRC LIRC LXT 30 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 系统时钟配置 外部晶体/陶瓷振荡器 -- HXT 外部高频晶体/陶瓷振荡器可通过配置选项选择。对于晶体振荡器,只要简单地将晶体连接至 OSC1 和 OSC2,则会产生振荡所需的相移及反馈,而不需其它外部器件。为保证某些低频率的晶体 振荡和陶瓷谐振器的振荡频率更精准,建议连接两个小容量电容 C1 和 C2 到 VSS,具体数值与客 户选择的晶体/陶瓷晶振有关。 C 1 O S C 1 R p C 2 R f O S C 2 In te r n a l O s c illa to r C ir c u it T o in te r n a l c ir c u its 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 晶体振荡器 C1 和 C2 值 晶体频率 C1 C2 8pF 20MHz 6pF 8pF 16 MHz 6pF 10pF 12MHz 8pF 10pF 8 MHz 8pF 10pF 4 MHz 8pF 100pF 100pF 1 MHz 注:C1 和 C2 数值仅作参考用 晶体振荡器电容推荐值 Rev.1.60 31 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 外部RC振荡器 -- ERC ERC振荡器只需要在OSC1 和VDD之间连接一个阻值约在 56kΩ到 2.4MΩ之间的电阻,OSC1 与VSS之间连接一个电容。系统频率由外部所接电阻的大小决定,外部电容并不会影响振荡器的频 率值,在这里只起到稳定的作用。芯片在制造时进行调整且内部含有频率补偿电路,使得振荡频率 因V DD 、温度以及芯片制成工艺不同的影响减至最低程度。这里,提供一个电阻/频率的参考:使用 外部 120K电阻连接到 5V电源电压,在 25℃下,振荡器的频率为 8MHz,容差 2%。外部 RC振荡器 仅使用OSC1 引脚,OSC1 与PA6 引脚共用,此时PA5 引脚可以作为普通的I/O口使用。 V R D D O S C O S C 1 4 7 0 p F 外部 RC 振荡器 -- ERC 内部 RC振荡器 -- HIRC 内部RC 振荡器是一个集成的系统振荡器,不需其它外部器件。内部 RC振荡器具有三种固定的 频率:4MHz,8MHz,12MHz。芯片在制造时进行调整且内部含有频率补偿电路,使得振荡频率因 V DD 、温度以及芯片制成工艺不同的影响减至最低程度。在电源电压为 5V及温度为 25℃的条件下, 4MHz,8MHz,12MHz这三个固定频率的容差为 2%。如果选择了该内部时钟,无需额外的引脚。 若使用LIRC作为低速时钟,PA5 和PA6 可以作为通用I/O 口使用;若使用LXT作为低速时钟,PA5 和PA6 可接 32.768kHz晶振(LXT)。 外部 32.768kHz晶体振荡器 -- LXT 外部 32.768kHz 晶体振荡器是一个低频振荡器,经由配置选项选择。时钟频率固定为 32.768kHz, 此时 OSC11 和 OSC2 间引脚必须连接 32.768kHz 的晶体振荡器。 需要外部电阻和电容连接到 32768Hz 晶振以帮助起振。对于那些要求精确频率的场合中,可能需要这些元件来对由制程产生的误差提供 频率补偿。在系统上电期间,LXT 振荡器启动需要一定的延时。 当系统进入空闲/休眠模式,系统时钟关闭以降低功耗。然而在某些应用,比如空闲/休眠模式下 要保持内部定时器功能,必须提供额外的时钟,且与系统时钟无关。 然而,对于一些晶体,为了保证系统频率的启动与精度要求,需要外接两个小容量电容 C1 和 C2,具体数值与客户选择的晶体规格有关。外部并联的反馈电阻R P ,是必需的。 一些配置选项决定是否 OSC1/OSC2 脚是用于 LXT 还是作为普通 I/O 口使用。  若 LXT 振荡器未被用于任何时钟源,OSC1/OSC2 脚能被用作一般 I/O 口使用。  若 LXT 振荡器被用于一些时钟源,32.768kHz 晶体应被连接至 OSC1/OSC2 脚。 外部 LXT 振荡器 Rev.1.60 32 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 LXT 振荡器 C1 和 C2 值 晶体频率 C1 C2 32.768kHz 10pF 10pF 注: 1、C1 和C2 数值仅作参考用 2、R P 的建议值为 5M~10MΩ 32.768kHz 振荡器电容推荐值 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℃温度 5V 电压下的精度保持在 10%以内。 辅助振荡器 低速振荡器除了提供一个系统时钟源外,也用来为看门狗定时器和时基中断提供时钟来源。 Rev.1.60 33 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 工作模式和系统时钟 现今的应用要求单片机具有较高的性能及尽可能低的功耗,这种矛盾的要求在便携式电池供电 的应用领域尤为明显。高性能所需要的高速时钟将增加功耗,反之亦然。此单片机提供高、低速两 种时钟源,它们之间可以动态切换,用户可通过优化单片机操作来获得最佳性能/功耗比。 系统时钟 单片机为 CPU 和外围功能操作提供了多种不同的时钟源。用户使用配置选项和寄存器编程可获 取多种时钟,进而使系统时钟获取最大的应用性能。 主 系 统 时 钟 可 来 自 高 频 时 钟 源 f H 或 低 频 时 钟 源 f L , 通 过 SMOD 寄 存 器 中 的 HLCLK 位 及 CKS2~CKS0 位进行选择。高频时钟来自HXT、ERC或HIRC振荡器,可通过配置选项选择,低频系 统时钟源来自内部时钟f L ,若f L 被选择,可通过配置选项设定为LXT或LIRC振荡器。其它系统时钟 还有高速系统振荡器的分频f H /2~f H /64。 另外两个内部时钟用于外围电路,次时钟源f SUB 和时基时钟f TBC 。这两个时钟源来自LXT或LIRC 振荡器,通过配置选项选择。快速唤醒发生后,f SUB 为单片机提供一个次时钟。f SUB 和f SYS /4 用于看 门狗定时器的的时钟源。f TBC 用于时基中断功能和TMs的时钟源。 系统时钟选项 注:当系统时钟源f SYS 由f H 到f L 转换时,高速振荡器将停止以节省耗电。因此,没有为外围电路提供f H /2~f H /64 的频 率。若高速/低速振荡器未设置为HIRC+LXT模式,则需选择LIRC振荡器作为f SUB 或f TBC 的时钟源。 Rev.1.60 34 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 系统工作模式 单片机有 6 种不同的工作模式,每种有它自身的特性,根据应用中不同的性能和功耗要求可选 择不同的工作模式。单片机正常工作有两种模式:正常模式和低速模式。剩余的 4 种工作模式:休 眠模式 0、休眠模式 1、空闲模式 0 和空闲模式 1 用于单片机 CPU 关闭时以节省耗电。 工作模式 正常模式 低速模式 空闲模式 0 空闲模式 1 休眠模式 0 休眠模式 1 CPU On On Off Off Off Off 说明 f SUB On On On On Off On f SYS f H ~f H /64 fL Off On Off Off fS On On On/Off On Off On f TBC On On On On Off Off  正常模式 顾名思义,这是主要的工作模式之一,单片机的所有功能均可在此模式中实现且系统时钟由一 个高速振荡器提供。该模式下单片机正常工作的时钟源来自 HXT、ERC 或 HIRC 振荡器。高速振荡 器频率可被分为 1~64 的不等比率,实际的比率由 SMOD 寄存器中的 CKS2~CKS0 位及 HLCLK 位 选择的。单片机使用高速振荡器分频作为系统时钟可减少工作电流。  低速模式 此模式的系统时钟虽为较低速时钟源,但单片机仍能正常工作。该低速时钟源可来自LXT或 LIRC振荡器。单片机在此模式中运行所耗工作电流较低。在低速模式下,f H 关闭。  休眠模式 0 在HALT指令执行后且SMOD寄存器中IDLEN位为低时,系统进入休眠模式。在休眠模式 0 中, CPU、f SUB 及f S 停止运行,看门狗定时器功能除能。在该模式中LVDEN位需置为“0”,否则将不能 进入休眠模式 0 中。  休眠模式 1 在HALT指令执行后且SMOD寄存器中IDLEN位为低时,系统进入休眠模式。在休眠模式 1 中, CPU停止运行。然而若LVDEN位为“1”或WDT时钟源经配置选项选择为f SUB 且看门狗定时器功能 使能时,f SUB 及f S 继续运行。  空闲模式 0 执行HALT指令后且SMOD寄存器中IDLEN位为高,WDTC寄存器中FSYSON位为低时,系统进 入空闲模式 0。在空闲模式 0 中,CPU停止,但一些外围功能如看门狗定时器和TMs将继续工作。在 空闲模式 0 中,系统振荡器停止,看门狗定时器时钟f S 开启或关闭由f S 所选时钟源决定。若时钟源为 f SYS /4,f S 关闭;若时钟源为f SUB ,f S 开启。  空闲模式 1 执行HALT指令后且SMOD寄存器中IDLEN位为高,WDTC寄存器中FSYSON位为高时,系统进 入空闲模式 1。在空闲模式 1 中,CPU停止,但会提供一个时钟源给一些外围功能如看门狗定时器 和TMs。在空闲模式 1 中,系统振荡器继续运行,该系统振荡器可以为高速或低速系统振荡器。在 该模式中看门狗定时器时钟f S 开启。若时钟源为f SYS /4 或f SUB ,f S 开启。 Rev.1.60 35 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 控制寄存器 寄存器 SMOD 用于控制单片机内部时钟。  SMOD 寄存器 Bit 7 Name CKS2 R/W R/W POR 0 Bit 7~5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 6 CKS1 R/W 0 5 CKS0 R/W 0 4 FSTEN R/W 0 3 LTO R 0 2 HTO R 0 1 IDLEN R/W 1 0 HLCLK R/W 1 CKS2~CKS0:当 HLCLK 为“0”时系统时钟选择位 000:f L (f LXT 或f LIRC ) 001:f L (f LXT 或f LIRC ) 010:f H /64 011:f H /32 100:f H /16 101:f H /8 110:f H /4 111:f H /2 这三位用于选择系统时钟源。除了 LXT 或 LIRC 振荡器提供的系统时钟源外,也可使用高频振荡 器的分频作为系统时钟。 FSTEN:快速唤醒控制位(仅用于 HXT) 0:除能 1:使能 此位为快速唤醒控制位,用于决定单片机被唤醒后f SUB 是否开始工作。此位为高电平且f SUB 可用时, f SUB 时钟源可作为临时时钟,为系统提供一个较快速的唤醒时间。 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:f H /2~ f H /64 或f L 1:f H 此位用于选择f H 或f H /2~ f H /64 还是f L 作为系统时钟。该位为高时选择f H 作为系统时钟,为低时则选 择f H /2~ f H /64 或f L 作为系统时钟。当系统时钟由f H 时钟向f L 时钟转换时,f H 将自动关闭以降低功耗。 快速唤醒 单片机进入休眠模式或空闲模式 0 后,系统时钟将停止以降低功耗。然而单片机再次唤醒,原 Rev.1.60 36 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 来的系统时钟重新起振、稳定且恢复正常工作需要一定的时间。为确保单片机能够尽快的开始工作, 系统提供了一个快速唤醒功能。需提供一个临时时钟源f SUB 先驱动系统直至原系统振荡器稳定,这 个临时时钟可来自LXT或LIRC振荡器。快速启动功能的时钟源为f SUB ,该功能仅在休眠模式 1 和空 闲模式 0 中有效。当单片机由休眠模式 0 唤醒时,因f SUB 已停止,故快速唤醒功能不受影响。快速 唤醒功能使能/除能由SMOD寄存器中FSTEN位控制的。 若HXT振荡器作为正常模式的系统时钟,且快速唤醒功能使能,系统唤醒将需 1~2 个t SUB 时钟 周期。系统开始在f SUB 时钟源下运行直至 1024 个HXT时钟周期后HTO标志转换为高,系统将切换到 HXT振荡器运行。 若系统振荡器选用 ERC 或 HIRC,将系统从休眠模式或空闲模式 0 中唤醒需 15~16 个时钟周期; 若选用 LIRC,则需 1~2 个周期。快速唤醒位 FSTEN 在这些情况下不受影响。 FSTEN 位 唤醒时间 (休眠模式 0) 0 1024 个 HXT 周期 1 1024 个 HXT 周期 ERC × 15~16 个 ERC 周期 1~2 个 f SUB 周期 (系统在f SUB 下运行 1024 个HXT周 期后切换到HXT振荡器运行) 15~16 个 ERC 周期 HIRC × 15~16 个 HIRC 周期 15~16 个 HIRC 周期 1~2 个 HIRC 周期 LIRC × 1~2 个 LIRC 周期 1~2 个 LIRC 周期 1~2 个 LIRC 周期 LXT × 1024 个 LXT 周期 1024 个 LXT 周期 1~2 个 LXT 周期 系统 振荡器 HXT 唤醒时间 (休眠模式 1) 唤醒时间 (空闲模式 0) 1024 个 HXT 周期 唤醒时间 (空闲模式 1) 1~2 个 HXT 周期 1~2 个 HXT 周期 1~2 个 ERC 周期 唤醒时间 注:若看门狗定时器除能,意味着 LXT 和 LIRC 都关闭,当单片机由休眠模式 0 中唤醒时快速唤醒功能不可用。 fS 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 F S Y S O N = 1 fS Y S o n fT B C o n fS U B o n N O R M A L Y S = f H ~ f H / 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 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 F S Y S O N = 0 fS Y S o ff fT B C o n fS U B o n S L E E P 0 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 S L E E P 1 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 o r L V D o n S L O 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 工作模式切换和唤醒 单片机可在各个工作模式间自由切换,使得用户可根据所需选择最佳的性能/功耗比。用此方式, Rev.1.60 37 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 对单片机工作的性能要求不高的情况下,可使用较低频时钟以减少工作电流,在便携式应用上延长 电池的使用寿命。 简单来说,正常模式和低速模式间的切换仅需设置 SMOD 中的 HLCLK 位及 CKS2~CKS0 位即 可实现,而正常模式/低速模式与休眠模式/空闲模式间的切换经由 HALT 指令实现。当 HALT 指令 执行后,单片机是否进入空闲模式或休眠模式由 SMOD 寄存器中的 IDLEN 位和 WDTC 寄存器中的 FSYSON 位决定的。 当HLCLK位变为低电平时,时钟源将由高速时钟源f H 转换成时钟源f H /2~f H /64 或f L 。若时钟源 来自f L ,高速时钟源将停止运行以节省耗电。此时须注意,f H /16 和f H /64 内部时钟源也将停止运行, 由此会影响到如TMs等内部功能的工作。所附流程图显示了单片机在不同工作模式间切换时的变化。 正常模式切换到低速模式 系统运行在正常模式时使用高速系统振荡器,因此较为耗电。可通过设置 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时钟源来自f SUB 时钟或系统时钟,WDT都将被清除并停止运行。  输入/输出口将保持当前值。  状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 进入休眠模式 1 进入休眠模式 1 的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器 SMOD 中 IDLEN 位为“0”且 WDT 或 LVD 功能使能。在上述条件下执行该指令后,将发生的情况如下:  系统时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。WDT或LVD继续运行,其时 钟源来自f SUB 。  数据存储器中的内容和寄存器将保持当前值。  若WDT使能且其时钟源来自f SUB ,则WDT将被清零并重新开始计数。  输入/输出口将保持当前值。  状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 进入空闲模式 0 进入空闲模式 0 的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器 SMOD 中 IDLEN 位为“1”且 WDTC 寄存器中的 FSYSON 位为“0”。在上述条件下执行该指令后,将发生的 情况如下:  系统时钟停止运行,应用程序停止在“HALT”指令处,时基时钟和f SUB 时钟将继续运行。  数据存储器中的内容和寄存器将保持当前值。  若WDT使能且其时钟源来自f SUB ,则WDT将被清零并重新开始计数;若其时钟源来自系统时钟, 则WDT将停止运行。  输入/输出口将保持当前值。 Rev.1.60 38 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 进入空闲模式 1 进入空闲模式 1 的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存器 SMOD 中 IDLEN 位为“1”且 WDTC 寄存器中的 FSYSON 位为“1”。在上述条件下执行该指令后,将发生的 情况如下:  系统时钟、时基时钟和f SUB 开启,应用程序停止在“HALT”指令处。  数据存储器中的内容和寄存器将保持当前值。  若WDT使能,无论WDT时钟源来自f SUB 或是系统时钟,则WDT将被清零并重新开始计数。  输入/输出口将保持当前值。  状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。 N O R M A L M o d e C K S 2 ~ C K S 0 = 0 0 x B & H L C L K = 0 S L O W M o d e 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 L E E P 0 M o d e 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 L E E P 1 M o d e 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 Rev.1.60 39 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 S L O W M o d e C K S 2 ~ C K S 0 ¹ 0 0 0 B , 0 0 1 B a s H L C L K = 0 o r H L C L K = 1 N O R M A L M o d e 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 L E E P 0 M o d e 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 L E E P 1 M o d e 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 静态电流的注意事项 由于单片机进入休眠或空闲模式的主要原因是将 MCU 的电流降低到尽可能低,可能到只有几 个微安的级别(空闲模式 1 除外),所以如果要将电路的电流降到最低,电路设计者还应有其它的考 虑。应该特别注意的是单片机的输入/输出引脚。所有高阻抗输入脚都必须连接到固定的高或低电平, 因为引脚浮空会造成内部振荡并导致耗电增加。这也应用于有不同封装的单片机,因为它们可能含 有未引出的引脚,这些引脚也必须设为输出或带有上拉电阻的输入。 另外还需注意单片机设为输出的 I/O 引脚上的负载。应将它们设置在有最小拉电流的状态或将 它们和其它的 CMOS 输入一样接到没有拉电流的外部电路上。还应注意的是,如果使能配置选项中 的 LXT 或 LIRC 振荡器,会导致耗电增加。在空闲模式 1 中,系统时钟开启。若系统时钟来自高速 系统振荡器,额外的静态电流也可能会有几百微安。 唤醒 系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒:  外部复位  PA 口下降沿  系统中断  WDT 溢出 ———— 若由外部RES引脚唤醒,系统会经过完全复位的过程;若由 WDT 溢出唤醒,则会发生看门狗 定时器复位。这两种唤醒方式都会使系统复位,可以通过状态寄存器中TO和PDF位来判断它的唤醒 源。系统上电或执行清除看门狗的指令,会清零PDF;执行HALT指令,PDF将被置位。看门狗计数 器溢出将会置位TO标志并唤醒系统,这种复位会重置程序计数器和堆栈指针,其它标志保持原有状 态。 PA 口中的每个引脚都可以通过 PAWU 寄存器使能下降沿唤醒功能。PA 端口唤醒后,程序将在 “HALT”指令后继续执行。如果系统是通过中断唤醒,则有两种可能发生。第一种情况是:相关中 断除能或是中断使能且堆栈已满,则程序会在“HALT”指令之后继续执行。这种情况下,唤醒系统 Rev.1.60 40 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 的中断会等到相关中断使能或有堆栈层可以使用之后才执行。第二种情况是:相关中断使能且堆栈 未满,则中断可以马上执行。 如果在进入休眠或空闲模式之前中断标志位已经被设置为“1”,则相 关中断的唤醒功能将无效。 编程注意事项 高速和低速振荡器使用相同的 SST 计数器。例如,若系统从休眠模式 0 中唤醒,HIRC 和 LXT 振荡器都需从关闭状态快速启动。HIRC 振荡器结束其 SST 周期后,LXT 振荡器才开始使用 SST 计 数器。  若单片机从休眠模式 0 唤醒后进入正常模式,高速系统振荡器需要一个SST周期。在HTO为“1” 后,单片机开始执行首条指令。此时,若f SUB 时钟来源于LXT振荡器,LXT振荡器可能不是稳定 的,上电状态可能会发生类似情况,首条指令执行时LXT振荡器还未就绪。  若单片机从休眠模式 1 唤醒后进入正常模式,系统时钟源来自 HXT 振荡器且 FSTEN 为“1”, 唤醒后,系统时钟可切换至 LIRC 振荡器。  一些外围功能,如WDT和TMs,采用系统时钟f SYS 时,在系统时钟源由f H 切换至f L 时,以上这些 功能的时钟源也要随之改变。  当WDT时钟源选择为f SUB 时,f SUB 和f S 的开启或关闭由WDT是否使能决定的。 Rev.1.60 41 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 看门狗定时器 看门狗定时器的功能在于防止如电磁的干扰等外部不可控制事件,所造成的程序不正常动作或 跳转到未知的地址。 看门狗定时器时钟源 WDT定时器时钟源来自于内部时钟f S ,而f S 的时钟源又是通过配置选项从f SUB 和f SYS /4 中选择。 f SUB 时钟由LXT或LIRC振荡器提供,可通过配置选项设置。看门狗定时器的时钟源可分频为 28~215以 提供更大的溢出周期,分频比由WDTC寄存器中的WS2~WS0 位来决定。电压为 5V时内部振荡器 LIRC的周期大约为 32kHz。需要注意的是,这个特殊的内部时钟周期随V DD 、温度和制成的不同而 变化。LXT振荡器由一个外部 32.768kHz晶振提供。另一个看门狗定时器时钟源选项为f SYS /4。看门 狗定时器时钟源可来自内部LIRC振荡器、LXT振荡器或f SYS /4。 看门狗定时器控制寄存器 WDTC 寄存器用于控制 WDT 功能的使能/除能及选择溢出周期。寄存器结合配置选项控制看门 狗定时器的工作。  WDTC 寄存器 Bit 7 Name FSYSON R/W R/W POR 0 Bit 7 Bit 6~4 Bit 3~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 FSYSON:f SYS 在空闲模式下的控制位 0:除能 1:使能 WS2,WS1,WS0:WDT 溢出周期选择位 000:256/f S 001:512/f S 010:1024/f S 011:2048/f S 100:4096/f S 101:8192/f S 110:16384/f S 111:32768/f S 这三位控制 WDT 时钟源的分频比,从而实现对 WDT 溢出周期的控制。 WDTEN3,WDTEN2,WDTEN1,WDTEN0:WDT 软件控制位 1010:除能 其它:使能 看门狗定时器操作 当 WDT 溢出时,它产生一个芯片复位的动作。这也就意味着正常工作期间,用户需在应用程 序中看门狗溢出前有策略地清看门狗定时器以防止其产生复位,可使用清除看门狗指令实现。无论 什么原因,程序失常跳转到一个未知的地址或进入一个死循环,这些清除指令都不能被正确执行, 此种情况下,看门狗将溢出以使单片机复位。通过配置选项选择看门狗定时器的一些选项,如使能/ 除能、时钟源选择及清除指令类型。除了配置选项使能/除能看门狗定时器外,WDTC 寄存器中的 WDTEN3~WDTEN0 位也可用来除能看门狗定时器,此时需设置 WDTEN3~WDTEN0 为“1010” 。 若使用看门狗定时器功能,推荐设置这四位为“0101”,提供最大可能的防干扰能力。注意,若看门 狗定时器被除能,相关操作的任何指令都不会工作。 Rev.1.60 42 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 WDT 配置选项 WDT 使能 WDT 除能 WDT 除能 WDTEN3~WDTEN0 位 ×××× 除 1010 外其它值 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。如果f SYS /4 作为看门狗定时器时钟源,需 要注意,当系统工作在休眠或空闲模式 0 时,系统时钟停止工作,看门狗失去保护作用。如果系统 工作在干扰大的环境中,强烈建议使用f SUB 作为时钟源。 看门狗定时器 Rev.1.60 43 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 复位和初始化 复位功能是任何单片机中基本的部分,使得单片机可以设定一些与外部参数无关的先置条件。 最重要的复位条件是在单片机首次上电以后,经过短暂的延迟,内部硬件电路使得单片机处于预期 的稳定状态并开始执行第一条程序指令。上电复位以后,在程序执行之前,部分重要的内部寄存器 将会被设定为预先设定的状态。程序计数器就是其中之一,它会被清除为零,使得单片机从最低的 程序存储器地址开始执行程序。 除上电复位以外,即使单片机处于正常工作状态,有些情况的发生也会迫使单片机复位。譬如 ———— 当单片机上电后已经开始执行程序,RES脚被强制拉为低电平。这种复位为正常操作复位,单片机 中只有一些寄存器受影响,而大部分寄存器不会改变,在复位引脚恢复至高电平后,单片机可以正 常运行。 另一种复位为看门狗溢出单片机复位。不同方式的复位操作会对寄存器产生不同的影响。另一 种复位为低电压复位即LVR复位,在电源供应电压低于LVR设定值时,系统会产生LVR复位,这种 ———— 复位与与RES脚拉低复位方式相似。 复位功能 包括内部和外部事件触发复位,单片机共有五种复位方式:  上电复位 这是最基本且不可避免的复位,发生在单片机上电后。除了保证程序存储器从开始地址执行, 上电复位也使得其它寄存器被设定在预设条件。所有的输入/输出端口控制寄存器在上电复位时会保 持高电平,以确保上电后所有引脚被设定为输入状态。 V D D 0 .9 V R E S D D t RR SS TT DD ++ t SS SS TT In te rn a l R e s e t 注:t RSTD 为上电延迟时间,典型值为100ms 上电复位时序图 ————  RES引脚复位 由于复位引脚与PA7 共用,复位功能必须使用配置选项选择。虽然单片机有一个内部RC复位功 能,如果电源上升缓慢或上电时电源不稳定,内部RC振荡可能导致芯片复位不良,所以推荐使用和 ———— ———— RES引脚连接的外部RC电路,由RC电路所造成的时间延迟使得RES引脚在电源供应稳定前的一段延 ———— 长周期内保持在低电平。在这段时间内,单片机的正常操作是被禁止的。RES引脚达到一定电压值 后,再经过延迟时间t RSTD 单片机可以开始进行正常操作。下图中SST是系统延迟周期System Start-up Timer的缩写。 ———— ———— 在许多应用场合,可以在VDD和RES之间接入一个电阻,在VSS与RES之间接入一个电容作为 ———— 外部复位电路。与RES脚上所有相连接的线段必须尽量短以减少噪声干扰。 当系统在较强干扰的场合工作时,建议使用增强型的复位电路,如下图所示。 Rev.1.60 44 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 注:“” 表示建议加上此元件以加强静电保护。 “”表示建议在电源有较强干扰场合加上此元件。 ———— 外部RES电路 欲知有关外部复位电路的更多信息可参考 HOLTEK 网站上的应用范例 HA0075S。 ———— RES引脚通过外部硬件强迫拉至低电平时,此种复位形式即会发生。这种复位方式和其它的复 位方式一样,程序计数器会被清除为零且程序从头开始执行。 0 .4 V R E S 0 .9 V D D D D tR S T D + tS S T In te rn a l R e s e t 注:t RSTD 为上电延迟时间,典型值为100ms。 ———— RES复位时序图  低电压复位-- LVR 单片机具有低电压复位电路,用来监测它的电源电压,可通过配置选项进行选择。例如在更换 电池的情况下,单片机供应的电压可能会落在 0.9V~V LVR 的范围内,这时LVR将会自动复位单片机。 LVR包含以下的规格:有效的LVR信号,即在 0.9V~V LVR 的低电压状态的时间,必须超过交流电气 特性中t LVR 参数的值。如果低电压存在不超过t LVR 参数的值,则LVR将会忽略它且不会执行复位功能。 V LVR 参数值可通过配置选项进行设定。 L V R tR S T D + tS S T In te rn a l R e s e t 注:t RSTD 为上电延迟时间,典型值为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 注:t RSTD 为上电延迟时间,典型值为100ms。 正常运行时看门狗溢出时序图 Rev.1.60 45 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  休眠或空闲时看门狗溢出复位 休眠或空闲时看门狗溢出复位和其它种类的复位有些不同。除了程序计数器与堆栈指针将被清 “0”及TO位被设为“1”外,绝大部分的条件保持不变。图中t SST 的详细说明请参考交流电气特性。 W D T T im e - o u t tS S T In te rn a l R e s e t 注:如果系统时钟源为ERC或HIRC时,t SST 为15~16个时钟周期。 如果系统时钟源为HXT或LXT,则t SST 为1024个时钟周期。 如果系统时钟源为LIRC,则t SST 为1~2个时钟周期。 休眠或空闲时看门狗溢出复位时序图 复位初始状态 不同的复位形式以不同的途径影响复位标志位。这些标志位,即 PDF 和 TO 位存放在状态寄存 器中,由休眠或空闲模式功能或看门狗计数器等几种控制器操作控制。复位标志位如下所示: TO 0 PDF 0 u u 1 1 u 1 复位条件 上电复位 ———— 正常模式或低速模式时的RES复位或LVR复位 正常模式或低速模式时的 WDT 溢出复位 空闲或休眠模式时的 WDT 溢出复位 注:“u”代表不改变 在单片机上电复位之后,各功能单元初始化的情形,列于下表。 项目 程序计数器 中断 看门狗定时器 定时器模块 输入/输出口 堆栈指针 复位后情况 清除为零 所有中断被除能 WDT 清除并重新计数 所有定时/计数器停止 I/O 口设为输入模式,AN0~AN3 作为 A/D 输入脚。 堆栈指针指向堆栈顶端 不同的复位形式对单片机内部寄存器的影响是不同的。为保证复位后程序能正常执行,了解寄 存器在特定条件复位后的设置是非常重要的。下表即为不同方式复位后内部寄存器的状况。若芯片 有多种封装类型,表格反应较大的封装的情况。 Rev.1.60 46 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  HT66F03 ———— 寄存器 上电复位 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG INTC0 INTC1 INTC2 MFI0 MFI2 PAWU PAPU PA PAC PRM WDTC TBC EEA EED EEC ADRL(ADRFS=0) ADRL(ADRFS=1) ADRH(ADRFS=0) ADRH(ADRFS=1) ADCR0 ADCR1 ACERL CPC TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH TM1C0 TM1C1 TM1DL TM1DH TM1AL TM1AH 1xxx xxxx 1xxx xxxx - - - - - - -0 xxxx xxxx 0000 0000 xxxx xxxx - - xx xxxx - - - - - -xx - -00 xxxx 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0000 0000 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - -00 00 -0 - 000 - - - - 1111 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 注: “u”表示不改变; Rev.1.60 “x”表示未知; RES或 LVR 复位 1xxx xxxx 1xxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - -uu - -uu uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0000 0000 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - -00 00 -0 - 000 - - - - 1111 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 WDT 溢出 (正常模式) 1xxx xxxx 1xxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - -uu uuuu - - - - - -uu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0000 0000 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - -00 00 -0 - 000 - - - - 1111 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 WDT 溢出 (空闲模式) 1uuu uuuu 1uuu uuuu - - - - - - -u uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - - uu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - - - uu - uuu uuuu uuuu uuuu - - -u - - -u uuuu uuuu - -uu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - -uu uuuu uuuu uuuu - - - - uuuu uuuu - - - uuuu uuuu uuuu uuuu - - - - uuuu uuuu - -uu uu -u - uuu - - - - uuuu uuuu u - -u uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu “-”表示未定义 47 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  HT66F04 ———— 寄存器 上电复位 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG INTC0 INTC1 INTC2 MFI0 MFI1 MFI2 PAWU PAPU PA PAC PRM WDTC TBC EEA EED EEC ADRL(ADRFS=0) ADRL(ADRFS=1) ADRH(ADRFS=0) ADRH(ADRFS=1) ADCR0 ADCR1 ACERL CPC TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH TM1C0 TM1C1 TM1DL TM1DH TM1AL TM1AH TM2C0 xxxx xxxx xxxx xxxx - - - - - - -0 xxxx xxxx 0000 0000 xxxx xxxx - xxx xxxx - - - - - xxx - -00 xxxx 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0000 0000 - - -0 - - -0 0000 0000 - 000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - -00 00 -0 - 000 - - - - 1111 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 Rev.1.60 RES或 LVR 复位 xxxx xxxx xxxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - - uuu - -uu uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0000 0000 - - -0 - - -0 0000 0000 - 000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - -00 00 -0 - 000 - - - - 1111 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 48 WDT 溢出 (正常模式) xxxx xxxx xxxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - - uuu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0000 0000 - - -0 - - -0 0000 0000 - 000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 xxxx - - - xxxx xxxx xxxx xxxx - - - - xxxx 0110 - -00 00 -0 - 000 - - - - 1111 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 WDT 溢出 (空闲模式) uuuu uuuu uuuu uuuu - - - - - - -u uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - - uuu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - - - uu - uuu uuuu uuuu uuuu - - -u - - -u uuuu uuuu - uuu uuuu - -uu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - -uu uuuu uuuu uuuu - - - - uuuu uuuu - - - uuuu uuuu uuuu uuuu - - - - uuuu uuuu - -uu uu -u - uuu - - - - uuuu uuuu u - -u uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ———— 寄存器 TM2C1 TM2C2 TM2DL TM2DH TM2AL TM2AH TM2BL TM2BH 上电复位 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 00 - - - - - - RES或 LVR 复位 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 00 - - - - - - WDT 溢出 (正常模式) 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 00 - - - - - - WDT 溢出 (空闲模式) uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu uu - - - - - - 注: “u”表示不改变 “x”表示未知 “-”表示未定义 Rev.1.60 49 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  HT68F03 ———— 寄存器 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG INTC0 INTC1 INTC2 MFI0 MFI2 PAWU PAPU PA PAC PRM WDTC TBC EEA EED EEC CPC TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH TM1C0 TM1C1 TM1DL TM1DH TM1AL TM1AH 上电复位 1xxx xxxx 1xxx xxxx - - - - - - -0 xxxx xxxx 0000 0000 xxxx xxxx - - xx xxxx - - - - - -xx - -00 xxxx 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0 - 00 0 - 00 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 RES或 LVR 复位 1xxx xxxx 1xxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - -uu - -uu uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0 - 00 0 - 00 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 WDT 溢出 (正常模式) 1xxx xxxx 1xxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - -uu uuuu - - - - - -uu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0 - 00 0 - 00 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 WDT 溢出 (空闲模式) 1uuu uuuu 1uuu uuuu - - - - - - -u uuuu uuuu 0000 0000 uuuu uuuu - - uu uuuu - - - - - - uu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - - - uu - uuu uuuu u - uu u - uu - - -u - - -u uuuu uuuu - -uu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - -uu uuuu uuuu uuuu - - - - uuuu uuuu u - -u uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu 注: “u”表示不改变 “x”表示未知 “-”表示未定义 Rev.1.60 50 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  HT68F04 ———— 寄存器 MP0 MP1 BP ACC PCL TBLP TBLH TBHP STATUS SMOD LVDC INTEG INTC0 INTC1 INTC2 MFI0 MFI2 PAWU PAPU PA PAC PRM WDTC TBC EEA EED EEC CPC TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH TM1C0 TM1C1 TM1DL TM1DH TM1AL TM1AH 上电复位 xxxx xxxx xxxx xxxx - - - - - - -0 xxxx xxxx 0000 0000 xxxx xxxx - xxx xxxx - - - - - xxx - -00 xxxx 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0 - 00 0 - 00 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 RES或 LVR 复位 xxxx xxxx xxxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - - uuu - -uu uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0 - 00 0 - 00 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 WDT 溢出 (正常模式) xxxx xxxx xxxx xxxx - - - - - - -0 uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - - uuu - - 1u uuuu 0000 0011 - - 00 - 000 - - - - - -00 - 000 0000 0 - 00 0 - 00 - - -0 - - -0 0000 0000 - -00 - -00 0000 0000 0000 0000 1111 1111 1111 1111 0101 0000 0111 1010 0011 0111 - - xx xxxx xxxx xxxx - - - - 0000 1000 0 - -1 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 0000 0000 0000 0000 0000 0000 - - - - - - 00 0000 0000 - - - - - - 00 WDT 溢出 (空闲模式) uuuu uuuu uuuu uuuu - - - - - - -u uuuu uuuu 0000 0000 uuuu uuuu - uuu uuuu - - - - - uuu - - 11 uuuu uuuu uuuu - - uu - uuu - - - - - - uu - uuu uuuu u - uu u - uu - - -u - - -u uuuu uuuu - -uu - -uu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu - -uu uuuu uuuu uuuu - - - - uuuu uuuu u - -u uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu uuuu uuuu uuuu uuuu uuuu uuuu - - - - - - uu uuuu uuuu - - - - - - uu 注: “u”表示不改变 “x”表示未知 “-”表示未定义 Rev.1.60 51 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 输入/输出端口 盛群单片机的输入/输出口控制具有很大的灵活性。大部分引脚可在用户程序控制下被设定为输 入或输出。所有引脚的上拉电阻设置以及指定引脚的唤醒设置也都由软件控制,这些特性也使得此 类单片机在广泛应用上都能符合开发的需求。 此系列单片机提供 PA 双向输入/输出口。这些寄存器在数据存储器有特定的地址。所有 I/O 口 用于输入输出操作。作为输入操作,输入引脚无锁存功能,也就是说输入数据必须在执行“MOV A, [m]”,T2 的上升沿准备好,m 为端口地址。对于输出操作,所有数据都是被锁存的,且保持不变 直到输出锁存被重写。  输入/输出寄存器列表 寄存器 名称 7 PAWU D7 PAPU D7 PA D7 PAC D7 位 6 D6 D6 D6 D6 5 D5 D5 D5 D5 4 D4 D4 D4 D4 3 D3 D3 D3 D3 2 D2 D2 D2 D2 1 D1 D1 D1 D1 0 D0 D0 D0 D0 上拉电阻 许多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功能。为了免去外部 上拉电阻,当引脚规划为输入时,可由内部连接到一个上拉电阻。这些上拉电阻可通过寄存器 PAPU 来设置,它用一个 PMOS 晶体管来实现上拉电阻功能。  PAPU 寄存器 Bit 7 Name D7 R/W R/W POR 0 Bit 7~0 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 I/O 口 bit 7~bit 0 上拉电阻控制位 0:除能 1:使能 PA 口唤醒 当使用暂停指令“HALT”迫使单片机进入休眠或空闲模式,单片机的系统时钟将会停止以降低 功耗,此功能对于电池及低功耗应用很重要。唤醒单片机有很多种方法,其中之一就是使 PA 口的 其中一个引脚从高电平转为低电平。这个功能特别适合于通过外部开关来唤醒的应用。PA 口的每个 引脚可以通过设置 PAWU 寄存器来单独选择是否具有唤醒功能。  PAWU 寄存器 Bit 7 Name D7 R/W R/W POR 0 Bit 7~0 Rev.1.60 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 PA 口 bit 7~bit 0 唤醒功能控制位 0:除能 1:使能 52 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 输入/输出端口控制寄存器 输入/输出口具有自己的控制寄存器,即 PAC,用来控制输入/输出状态。从而每个 I/O 引脚都可 以通过软件控制,动态的设置为 CMOS 输出或输入。所有的 I/O 端口的引脚都各自对应于 I/O 端口 控制的某一位。若 I/O 引脚要实现输入功能,则对应的控制寄存器的位需要设置为“1”。这时程序 指令可以直接读取输入脚的逻辑状态。若控制寄存器相应的位被设定为“0”,则此引脚被设置为 CMOS 输出。当引脚设置为输出状态时,程序指令读取的是输出端口寄存器的内容。注,如果对输 出口做读取动作时,程序读取到的是内部输出数据锁存器中的状态,而不是输出引脚上实际的逻辑 状态。  PAC 寄存器 Bit 7 Name D7 R/W R/W POR 1 Bit 7~0 6 D6 R/W 1 5 D5 R/W 1 4 D4 R/W 1 3 D3 R/W 1 2 D2 R/W 1 1 D1 R/W 1 0 D0 R/W 1 PA 口 bit 7~bit 0 输入/输出功能控制位 0:输出 1:输入 引脚重置功能 引脚的多功能可以增加单片机应用的灵活性。有限的引脚个数将会限制设计者,而引脚的多功 能将会解决很多此类问题。每个功能可单独选择所在的引脚,以及一个确定的优先级,使得引脚上 多种功能可以同时使用。此外,一些引脚功能可以通过寄存器 PRM 进行设定。总的来说,模拟功能 比数字功能拥有更高的优先级。但是,若有两个以上的模拟功能同时使能且模拟信号来自同一引脚 时,模拟输入将在内部连接所有这些有效模拟功能模块。 引脚重置寄存器 封装中有限的引脚个数会对某些单片机功能造成影响。然而,引脚功能重置和引脚功能选择, 使得小封装单片机具有更多不同的功能。  PRM 寄存器 -- HT66F03/ HT68F03/ HT68F04 Bit 7 6 5 4 Name PRML3 PRML2 PRML1 PRML0 R/W R/W R/W R/W R/W POR 0 1 0 1 Bit 7~4 Bit 3 Bit 2 Bit 1~0 Rev.1.60 3 — — — 2 PRMS2 R/W 0 1 PRMS1 R/W 0 0 PRMS0 R/W 0 PRML3~PRML0:引脚重置功能锁位(默认值:0101) 1010:PRM 寄存器写操作使能 其它:PRM 寄存器写操作除能 未定义,读为“0” PRMS2:INT/TCK1 引脚功能重置选择位 1:INT on PA7, TCK1 on PA7 0:INT on PA3, TCK1 on PA3 PRMS1~PRMS0:TP0/TP1/TCK0 引脚功能重置选择位 0x:TP0 on PA3, TP1/TCK0 on PA4 10:TP0 on PA5, TP1/TCK0 on PA6 11:TP0 on PA2, TP1/TCK0 on PA7 53 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  PRM 寄存器 -- HT66F04 Bit 7 6 Name PRML3 PRML2 R/W R/W R/W POR 0 1 Bit 7~4 Bit 3 Bit 2 Bit 1~0 5 PRML1 R/W 0 4 PRML0 R/W 1 3 — — — 2 PRMS2 R/W 0 1 PRMS1 R/W 0 0 PRMS0 R/W 0 PRML3~PRML0:引脚重置功能锁位(默认值:0101) 1010:PRM 寄存器写操作使能 其它:PRM 寄存器写操作除能 未定义,读为“0” PRMS2:INT/TCK1 引脚功能重置选择位 1:INT on PA7, TCK1 on PA7 0:INT on PA3, TCK1 on PA3 PRMS1~PRMS0:引脚功能重置选择位 00: TP0/TCK2 on PA3, TP1/TCK0 on PA4, TP2B on PA5, TP2A on PA6 01: TP0/TCK2 on PA3, TP1/TCK0 on PA4, TP2B on PA0, TP2A on PA1 10: TP0/TCK2 on PA5, TP1/TCK0 on PA6, TP2B on PA2, TP2A on PA7 11: TP0/TCK2 on PA2, TP1/TCK0 on PA7, TP2B on PA5, TP2A on PA6 输入/输出引脚结构 下图为输入/输出引脚的内部结构图。输入/输出引脚的准确逻辑结构图可能与此图不同,这里只 是为了方便对 I/O 引脚功能的理解提供的一个参考。图中的引脚共用结构并非针对所有单片机。 P u ll- H ig h R e g is te r S e le c t C o n tr o l B it D a ta B u s W r ite C o n tr o l R e g is te r Q D W r ite D a ta R e g is te r S y s te m W e a k P u ll- u p S I/O p in D a ta B it Q D C K Q S R e a d D a ta R e g is te r D D Q C K C h ip R e s e t R e a d C o n tr o l R e g is te r V M U X W a k e -u p W a k e - u p S e le c t P A o n ly 通用输入/输出端口 Rev.1.60 54 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 A/D 输入/输出端口 编程注意事项 在编程中,最先要考虑的是端口的初始化。复位之后,所有的输入/输出数据及端口控制寄存器 都将被设为逻辑高。所有输入/输出引脚默认为输入状态,而其电平则取决于其它相连接电路以及是 否选择了上拉电阻。如果端口控制寄存器 PAC,某些引脚位被设定输出状态,这些输出引脚会有初 始高电平输出,除非数据寄存器端口 PA 在程序中被预先设定。设置哪些引脚是输入及哪些引脚是 输出,可通过设置正确的值到适当的端口控制寄存器,或使用指令“SET [m].i”及“CLR [m].i”来 设定端口控制寄存器中个别的位。注意,当使用这些位控制指令时,系统即将产生一个读-修改-写的 操作。单片机需要先读入整个端口上的数据,修改个别的位,然后重新把这些数据写入到输出端口。 PA 口的每个引脚都带唤醒功能。单片机处于休眠或空闲模式时,有很多方法可以唤醒单片机, 其中之一就是通过 PA 任一引脚电平从高到低转换的方式,可以设置 PA 口一个或多个引脚具有唤醒 功能。 Rev.1.60 55 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 定时器模块 – TM 控制和测量时间在任何单片机中都是一个很重要的部分。每个单片机提供几个定时器模块(简称 TM),来实现和时间有关的功能。定时器模块是包括多种操作的定时单元,提供的操作有:定时/事 件计数器,捕捉输入,比较匹配输出,单脉冲输出以及 PWM 输出等功能。每个定时器模块有两个 或三个独立中断。每个 TM 外加的输入输出引脚,扩大了定时器的灵活性,便于用户使用。 这里只介绍各种 TM 的共性,更多详细资料请参考简易型,标准型和增强型定时器章节。 简介 该系列单片机包含 2 到 3 个 TM,取决于所选单片机的型号,分别命名为 TM0,TM1 和 TM2。 每个 TM 可被划分为一个特定的类型,即简易型 TM,标准型 TM 或增强型 TM。虽然性质相似,但 不同 TM 特性复杂度不同。本章介绍简易型,标准型和增强型 TM 的共性,更多详细资料分别见后 面各章。三种类型 TM 的特性和区别见下表。 功能 定时/计数器 捕捉输入 比较匹配输出 PWM 通道数 单脉冲输出 PWM 对齐方式 PWM 调节周期&占空比 CTM √ — √ 1 — 边沿对齐 占空比或周期 TM 功能概要 STM √ √ √ 1 1 边沿对齐 占空比或周期 ETM √ √ √ 2 2 边沿&中心对齐 占空比或周期 该系列每款单片机包括一定数目的定时器单元,其中有简易型,标准型和增强型 TM,依次命 名为 TM0~TM2 并见下表。 单片机 HT66F03/HT68F03/HT68F04 HT66F04 TM0 TM1 10-bit CTM 10-bit STM 10-bit CTM 10-bit STM TM 名称/类型参考 TM2 — 10-bit ETM TM 操作 三种不同类型的 TM 提供从简单的定时操作到 PWM 信号产生等多种功能。理解 TM 操作的关 键是比较 TM 内独立运行的计数器的值与内部比较器的预置值。当计数器的值与比较器的预置值相 同时,则比较匹配,TM 中断信号产生,清零计数器并改变 TM 输出引脚的状态。用户选择内部时 钟或外部时钟来驱动内部 TM 计数器。 TM 时钟源 驱动TM计数器的时钟源很多。通过设置TM控制寄存器的TnCK2~TnCK0 位,选择所需的时钟 源。该时钟源来自系统时钟f SYS 或内部高速时钟f H 或f TBC 时钟源或外部TCKn引脚。注意:设置 TnCK2~TnCK0 为 101,将选择TM预设时钟输入,有效切断TM时钟源。TCKn引脚时钟源用于允许 外部信号作为TM时钟源或用于事件计数。 TM 中断 简易型和标准型 TM 都拥有两个内部中断,分别是内部比较器 A 或比较器 P,当比较匹配发生 时产生 TM 中断。增强型 TM 有三个内部比较器,即比较器 A 或比较器 B 或比较器 P,相应的有三 个内部中断。当 TM 中断产生时,计数器清零并改变 TM 输出引脚的状态。 Rev.1.60 56 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 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 中输出引脚的个数是不同的,详见下表。 单片机 HT66F03/HT68F03/HT68F04 HT66F04 CTM TP0 TP0 TM 输出引脚 STM TP1 TP1 ETM — TP2A,TP2B 编程注意事项 TM 计数寄存器和捕捉/比较寄存器 CCRA、CCRB 为 10-bit 或 16-bit 的寄存器,含有低字节和 高字节结构。高字节可直接访问,低字节则仅能通过一个内部 8-bit 的缓存器进行访问。读写这些成 对的寄存器需通过特殊的方式。值得注意的是 8-bit 缓存器的存取数据及相关低字节的读写操作仅在 其相应的高字节读取操作执行时发生。CCRA 和 CCRB 寄存器的操作如下所示,同时因为这些成对 的寄存器用上述所说的特殊的方式进行读写。因此建议使用“MOV”指令用如下方式对 CCRA 和 CCRB 低字节寄存器 TMxAL 以及 TMxBL 操作。若不用下述过程进行操作,将会导致不可预知的 结果。 读写流程如下步骤所示:  写数据至 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 57 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 简易型 TM 虽然简易型 TM 是三种 TM 类型中最简单的形式,但仍然包括三种工作模式,即比较匹配输出, 定时/事件计数器和 PWM 输出模式。简易型 TM 也由外部输入脚控制并驱动一个外部输出脚。 CTM HT66F03 HT66F04 HT68F03 HT68F04 名称 TM 编号 TM 输入引脚 TM 输出引脚 10-bit CTM 0 TCK0 TP0 简易型 TM 方框图(n=0) 简易型 TM 操作 简易型 TM 核心是一个由用户选择的内部或外部时钟源驱动的 10 位向上计数器,它还包括两个 内部比较器即比较器 A 和比较器 P。这两个比较器将计数器的值与 CCRP 和 CCRA 寄存器中的值进 行比较。CCRP 是 3 位的,与计数器的高 3 位比较;而 CCRA 是 10 位的,与计数器的所有位比较。 通过应用程序改变 10 位计数器值的唯一方法是使 TnON 位发生上升沿跳变清除计数器。此外, 计数器溢出或比较匹配也会自动清除计数器。上述条件发生时,通常情况会产生 TM 中断信号。简 易型 TM 可工作在不同的模式,可由包括来自输入脚的不同时钟源驱动,也可以控制输出脚。所有 工作模式的设定都是通过设置相关寄存器来实现的。 Rev.1.60 58 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 简易型 TM 寄存器介绍 简易型 TM 的所有操作由六个寄存器控制。其中包含一对只读寄存器用来存放 10 位计数器的值, 一对读/写寄存器存放 10 位 CCRA 的值,剩下两个控制寄存器设置不同的操作和控制模式以及 CCRP 的 3 个位。 Name TM0C0 TM0C1 TM0DL TM0DH TM0AL TM0AH Bit 7 T0PAU T0M1 D7 — D7 —  TM0DL 寄存器 Bit 7 Name D7 R/W R POR 0 Bit 7~0 Rev.1.60 4 D4 R 0 Bit 1 T0RP1 T0DPX D1 D9 D1 D9 Bit 0 T0RP0 T0CCLR D0 D8 D0 D8 3 D3 R 0 2 D2 R 0 1 D1 R 0 0 D0 R 0 6 — — — 5 — — — 4 — — — 3 — — — 2 — — — 1 D9 R 0 0 D8 R 0 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 3 — — — 2 — — — 1 D9 R/W 0 0 D8 R/W 0 TM0AL:TM0 CCRA 低字节寄存器 bit 7~bit 0 TM0 10-bit CCRA bit 7~bit 0  TM0AH 寄存器 Bit 7 Name — R/W — POR — Bit 7~2 Bit 1~0 5 D5 R 0 Bit 2 T0RP2 T0POL D2 — D2 — 未定义,读为“0” TM0DH:TM0 计数器高字节寄存器 bit 1~bit 0 TM0 10-bit 计数器 bit 9~bit 8  TM0AL 寄存器 Bit 7 Name D7 R/W R/W POR 0 Bit 7~0 6 D6 R 0 Bit 5 Bit 4 Bit 3 T0CK1 T0CK0 T0ON T0IO1 T0IO0 T0OC D5 D4 D3 — — — D5 D4 D3 — — — 简易型 TM 寄存器列表 TM0DL:TM0 计数器低字节寄存器 bit 7~bit 0 TM0 10-bit 计数器 bit 7~bit 0  TM0DH 寄存器 Bit 7 Name — R/W — POR — Bit 7~2 Bit 1~0 Bit 6 T0CK2 T0M0 D6 — D6 — 6 — — — 5 — — — 4 — — — 未定义,读为“0” TM0AH:TM0 CCRA 高字节寄存器 bit 1~bit 0 TM0 10-bit CCRA bit 9~bit 8 59 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  TM0C0 寄存器 Bit 7 Name T0PAU R/W R/W POR 0 Bit 7 Bit 6~4 Bit 3 Bit 2~0 Rev.1.60 6 T0CK2 R/W 0 5 T0CK1 R/W 0 4 T0CK0 R/W 0 3 T0ON R/W 0 2 T0RP2 R/W 0 1 T0RP1 R/W 0 0 T0RP0 R/W 0 T0PAU:TM0 计数器暂停控制位 0:运行 1:暂停 通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂停条件时,TM 保持 上电状态并继续耗电。当此位由低到高转换时,计数器将保留其剩余值,直到此位再次改变为低电 平,从此值开始继续计数。 T0CK2~T0CK0:选择 TM0 计数时钟位 000:f SYS /4 001:f SYS 010:f H /16 011:f H /64 100:f TBC 101:保留位 110:TCK0 上升沿时钟 111:TCK0 下降沿时钟 此三位用于选择TM的时钟源。选择保留时钟输入将有效地除能内部计数器。外部引脚时钟源能被 选择在上升沿或下降沿有效。f SYS 是系统时钟,f H 和f TBC 是其它的内部时钟源,细节方面请参考振 荡器章节。 T0ON:TM0 计数器 On/Off 控制位 0:Off 1:On 此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位则除能 TM。清零此 位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转换时,内部计数器将清零。当此位经由 高到低转换时,内部计数器将保持其剩余值直到此位再次变成高电平。 若 TM 处于比较匹配输出模式时(通过 T0OC 位指定),当 T0ON 位经由低到高的转换时,TM 输出 脚将重置其初始值。 T0RP2~T0RP0:TM0 CCRP 3-bit 寄存器,对应于 TM0 计数器 bit 9~bit 7 比较器 P 匹配周期 000:1024 个 TM0 时钟周期 001:128 个 TM0 时钟周期 010:256 个 TM0 时钟周期 011:384 个 TM0 时钟周期 100:512 个 TM0 时钟周期 101:640 个 TM0 时钟周期 110:768 个 TM0 时钟周期 111:896 个 TM0 时钟周期 此三位设定内部 CCRP 3-bit 寄存器的值,然后与内部计数器的高三位进行比较。如果 T0CCLR 位 设定为 0 时,比较结果可选择清除内部计数器。T0CCLR 位设为低,内部计数器在比较器 P 比较匹 配发生时被重置;由于 CCRP 只与计数器高三位比较,比较结果是 128 时钟周期的倍数。CCRP 被 清零时,实际上会使得计数器在最大值溢出。 60 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  TM0C1 寄存器 Bit 7 Name T0M1 R/W R/W POR 0 Bit 7~6 Bit 5~4 Bit 3 Bit 2 Bit 1 Bit 0 Rev.1.60 6 T0M0 R/W 0 5 T0IO1 R/W 0 4 T0IO0 R/W 0 3 T0OC R/W 0 2 T0POL R/W 0 1 T0DPX R/W 0 0 T0CCLR R/W 0 T0M1~T0M0:选择 TM0 工作模式位 00:比较匹配输出模式 01:未定义模式 10:PWM 模式 11:定时/计数器模式 这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 T0M1 和 T0M0 位有任何改变前先 关掉。在定时/计数器模式,TM 输出脚控制必须除能。 T0IO1~T0IO0:选择 TP0 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:未定义 定时/计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择决定 TM 运行在哪种 模式下。 在比较匹配输出模式下,T0IO1 和 T0IO0 位决定当比较器 A 比较匹配输出发生时 TM 输出脚如何改 变状态。当比较器 A 比较匹配输出发生时 TM 输出脚能设为切换高、切换低或翻转当前状态。若此 两位同时为 0 时,这个输出将不会改变。TM 输出脚的初始值通过 TM0C1 寄存器的 T0OC 位设置 取得。注意,由 T0IO1 和 T0IO0 位得到的输出电平必须与通过 T0OC 位设置的初始值不同,否则当 比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后,通过 T0ON 位由低到高 电平的转换复位至初始值。 在 PWM 模式,T0IO1 和 T0IO0 用于决定比较匹配条件发生时怎样改变 TM 输出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TM0 关闭时改变 T0IO1 和 T0IO0 位的值是很有必要的。 若在 TM 运行时改变 T0IO1 和 T0IO0 的值,PWM 输出的值是无法预料的。 T0OC:TP0 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还是 PWM 模式。若 TM 处于定时/计数器模式,则其不受影响。在比较匹配输出模式时,比较匹配发生前其决定 TM 输出脚 的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 T0POL:TP0 输出极性控制位 0:同相 1:反相 此位控制 TP0 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚同相。若 TM 处于定 时/计数器模式时其不受影响。 T0DPX:TM0 PWM 周期/占空比控制位 0:CCRP - 周期;CCRA - 占空比 1:CCRP - 占空比;CCRA - 周期 此位决定 CCRA 与 CCRP 寄存器哪个被用于 PWM 波形的周期和占空比控制。 T0CCLR:选择 TM0 计数器清零条件位 0:TM0 比较器 P 匹配 61 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 1:TM0 比较器 A 匹配 此位用于选择清除计数器的方法。简易型 TM 包括两个比较器-比较器 A 和比较器 P。这两个比较器 每个都可以用作清除内部计数器。T0CCLR 位设为高,计数器在比较器 A 比较匹配发生时被清除; 此位设为低,计数器在比较器 P 比较匹配发生或计数器溢出时被清除。计数器溢出清除的方法仅在 CCRP 被清除为 0 时才能生效。T0CCLR 位在 PWM 模式时未使用。 简易型 TM 工作模式 简易型 TM 有三种工作模式,即比较匹配输出模式,PWM 模式或定时/计数器模式。通过设置 TM0C1 寄存器的 T0M1 和 T0M0 位选择任意工作模式。 比较匹配输出模式 为使 TM 工作在此模式,TM0C1 寄存器中的 T0M1 和 T0M0 位需要设置为“00”。当工作在该 模式,一旦计数器使能并开始计数,有三种方法来清零,分别是:计数器溢出,比较器 A 比较匹配 发生和比较器 P 比较匹配发生。当 T0CCLR 位为低,有两种方法清除计数器。一种是比较器 P 比较 匹配发生,另一种是 CCRP 所有位设置为零并使得计数器溢出。此时,比较器 A 和比较器 P 的请求 标志位 T0AF 和 T0PF 将分别置起。 如果 TM0C1 寄存器的 T0CCLR 位设置为高,当比较器 A 比较匹配发生时计数器被清零。此时, 即使 CCRP 寄存器的值小于 CCRA 寄存器的值,仅 T0AF 中断请求标志产生。所以当 T0CCLR 为高 时,不产生 T0PF 中断请求标志。如果 CCRA 被清零,当计数达到最大值 3FFH 时,计数器溢出, 而此时不产生 T0AF 请求标志。 正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 比较匹配发生后 T0AF 标志产生时,TM 输出脚状态改变。比较器 P 比较匹配发生时产生的 T0PF 标志不影响 TM 输出脚。 TM 输出脚状态改变方式由 TM0C1 寄存器中 T0IO1 和 T0IO0 位决定。当比较器 A 比较匹配发生时, T0IO1 和 T0IO0 位决定 TM 输出脚输出高,低或翻转当前状态。TM 输出脚初始值,既可以通过 T0ON 位由低到高电平的变化设置,也可以由 T0OC 位设置。注意,若 T0IO1 和 T0IO0 位同时为 0 时,引 脚输出不变。 Rev.1.60 62 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 比较匹配输出模式 -- TnCCLR= 0 注: 1.TnCCLR= 0,比较器 P 匹配将清除计数器 2.TM 输出脚仅由 TnAF 标志位控制 3.在 TnON 上升沿 TM 输出脚复位至初始值 4. n=0 Rev.1.60 63 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 比较匹配输出模式 -- TnCCLR= 1 注: 1.TnCCLR= 1,比较器 A 匹配将清除计数器 2.TM 输出脚仅由 TnAF 标志位控制 3.在 TnON 上升沿 TM 输出脚复位至初始值 4.当 TnCCLR=1 时,TnPF 标志位不会产生 5. n=0 Rev.1.60 64 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 定时/计数器模式 为使 TM 工作在此模式,TM0C1 寄存器中的 T0M1 和 T0M0 位需要设置为“11”。定时/计数 器模式与比较输出模式操作方式相同,并产生同样的中断请求标志。不同的是,在定时/计数器模式 下 TM 输出脚未使用。因此,比较匹配输出模式中的描述和时序图可以适用于此功能。该模式中未 使用的 TM 输出脚用作普通 I/O 脚或其它功能。 PWM 输出模式 为使 TM 工作在此模式,TM0C1 寄存器中的 T0M1 和 T0M0 位需要设置为“10”。TM 的 PWM 功能在马达控制,加热控制,照明控制等方面十分有用。给 TM 输出脚提供一个频率固定但占空比 可调的信号,将产生一个有效值等于 DC 均方根的 AC 方波。 由于 PWM 波形的周期和占空比可调,其波形的选择就极其灵活。在 PWM 模式中,T0CCLR 位不影响 PWM 操作。CCRA 和 CCRP 寄存器决定 PWM 波形,一个用来清除内部计数器并控制 PWM 波形的频率,另一个用来控制占空比。哪个寄存器控制频率或占空比取决于 TM0C1 寄存器的 T0DPX 位。所以 PWM 波形频率和占空比由 CCRA 和 CCRP 寄存器共同决定。 当比较器 A 或比较器 P 比较匹配发生时,将产生 CCRA 或 CCRP 中断标志。TM0C1 寄存器中 的 T0OC 位决定 PWM 波形的极性,T0IO1 和 T0IO0 位使能 PWM 输出或将 TM 输出脚置为逻辑高 或逻辑低。T0POL 位对 PWM 输出波形的极性取反。  CTM,PWM 模式,边沿对齐模式,T0DPX=0 CCRP 001b 010b 011b 100b 101b Period 128 256 384 512 640 Duty CCRA 110b 768 111b 896 000b 1024 110b 111b 000b 768 896 1024 若f SYS =16MHz,TM时钟源选择f SYS /4,CCRP=100b,CCRA=128, CTM PWM输出频率=(f SYS /4)/512= f SYS /2048=7.8125kHz,duty=128/512=25% 若由 CCRA 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为 100%  CTM,PWM 模式,边沿对齐模式,T0DPX=1 CCRP 001b 010b 011b 100b 101b Period CCRA Duty 128 256 384 512 640 PWM 的输出周期由 CCRA 寄存器的值与 TM 的时钟共同决定,PWM 的占空比由 CCRP 寄存器的值决定。 Rev.1.60 65 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 PWM 模式 -- TnDPX= 0 注: 1.TnDPX= 0,CCRP 清除计数器 2.计数器清零并设置 PWM 周期 3.当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4.TnCCLR 位不影响 PWM 操作 5. n=0 Rev.1.60 66 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 PWM 模式 -- TnDPX= 1 注: 1.TnDPX= 1,CCRA 清除计数器 2.计数器清零并设置 PWM 周期 3.当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4.TnCCLR 位不影响 PWM 操作 5. n=0 Rev.1.60 67 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 标准型 TM – STM 标准型 TM 包括 5 种工作模式,即比较匹配输出,定时/事件计数器,捕捉输入,单脉冲输出和 PWM 输出模式。标准型 TM 也由外部输入脚控制并驱动一个外部输出脚。 CTM HT66F03 HT66F04 HT68F03 HT68F04 名称 TM 编号 TM 输入引脚 TM 输出引脚 10-bit STM 1 TCK1 TP1 标准型 TM 操作 标准型 TM 有五种工作模式,即比较匹配输出模式,PWM 输出模式,单脉冲输出模式,捕捉输 入模式和定时/计数器模式。通过 TM1C1 寄存器的 T1M1 和 T1M0 位选择工作模式。 标准型 TM 的核心是一个由用户选择的内部或外部时钟源驱动的 10 位向上计数器,它还包括两 个内部比较器即比较器 A 和比较器 P。这两个比较器将计数器的值与 CCRP 和 CCRA 寄存器中的值 进行比较。CCRP 是 3 位宽度,与计数器的高 3 位比较;而 CCRA 是 10 位的,与计数器的所有位比 较。 通过应用程序改变 10 位计数器值的唯一方法是使 T1ON 位发生上升沿跳变清除计数器。此外, 计数器溢出或比较匹配也会自动清除计数器。上述条件发生时,通常情况会产生 TM 中断信号。标 准型 TM 可工作在不同的模式,可由包括来自输入脚的不同时钟源驱动,也可以控制输出脚。所有 工作模式的设定都是通过设置相关寄存器来实现的。 标准型 TM 寄存器介绍 标准型 TM 的所有工作模式由一系列寄存器控制。一对只读寄存器用来存放 10 位计数器的值, 一对读/写寄存器存放 10 位 CCRA 的值。剩下两个控制寄存器设置工作模式,以及 CCRP 的 3 个位。 标准型 TM 框图(n=1) Rev.1.60 68 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Name TM1C0 TM1C1 TM1DL TM1DH TM1AL TM1AH Bit 7 T1PAU T1M1 D7 — D7 — Bit 6 T1CK2 T1M0 D6 — D6 — Bit 5 Bit 4 Bit 3 T1CK1 T1CK0 T1ON T1IO1 T1IO0 T1OC D5 D4 D3 — — — D5 D4 D3 — — — 标准型 TM 寄存器列表 Bit 2 T1RP2 T1POL D2 — D2 — Bit 1 T1RP1 T1DPX D1 D9 D1 D9 Bit 0 T1RP0 T1CCLR D0 D8 D0 D8  TM1C0 寄存器 Bit 7 Name T1PAU R/W R/W POR 0 6 T1CK2 R/W 0 5 T1CK1 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 Rev.1.60 4 T1CK0 R/W 0 3 T1ON R/W 0 T1PAU:TM1 计数器暂停控制位 0:运行 1:暂停 通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂停条件时,TM 保持 上电状态并继续耗电。当此位由低到高转变时,计数器将保留其剩余值,直到此位再次改变为低电 平,并从此值开始继续计数。 T1CK2~T1CK0:选择 TM1 计数器时钟位 000:f SYS /4 001:f SYS 010:f H /16 011:f H /64 100:f TBC 101:保留位 110:TCK1 上升沿时钟 111:TCK1 下降沿时钟 此三位用于选择TM的时钟源。选择保留时钟输入将有效地除能内部计数器。外部引脚时钟源能被 选择在上升沿或下降沿有效。f SYS 是系统时钟,f H 和f TBC 是其它的内部时钟源,细节方面请参考振荡 器章节。 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 时,比较结果可选择清除内部计数器。T1CCLR 位设为低,内部计数器在比较器 P 比较匹 配发生时被重置;由于 CCRP 只与计数器高三位比较,比较结果是 128 时钟周期的倍数。CCRP 被 清零时,实际上会使得计数器在最大值溢出。 69 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  TM1C1 寄存器 Bit 7 Name T1M1 R/W R/W POR 0 Bit 7~6 Bit 5~4 Bit 3 Bit 2 Bit 1 Rev.1.60 6 T1M0 R/W 0 5 T1IO1 R/W 0 4 T1IO0 R/W 0 3 T1OC R/W 0 2 T1POL R/W 0 1 T1DPX R/W 0 0 T1CCLR R/W 0 T1M1~T1M0:选择 TM1 工作模式位 00:比较匹配输出模式 01:捕捉输入模式 10:PWM 模式或单脉冲输出模式 11:定时/计数器模式 这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 T1M1 和 T1M0 位有任何改变前先 关掉。在定时/计数器模式,TM 输出脚控制必须除能。 T1IO1~T1IO0:选择 TP1 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式/单脉冲输出模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:单脉冲输出 捕捉输入模式 00:在 TP1 上升沿输入捕捉 01:在 TP1 下降沿输入捕捉 10:在 TP1 双沿输入捕捉 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:初始低 1:初始高 PWM 模式/单脉冲输出模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还是 PWM 模式/单脉冲 输出模式。若 TM 处于定时/计数器模式,则其不受影响。在比较匹配输出模式时,比较匹配发生前 其决定 TM 输出脚的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 T1POL:TP1 输出极性控制位 0:同相 1:反相 此位控制 TP1 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚同相。若 TM 处于定 时/计数器模式时其不受影响。 T1DPX:TM1 PWM 周期/占空比控制位 70 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 0 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 寄存器 Bit 7 Name D7 R/W R POR 0 Bit 7~0 3 D3 R 0 2 D2 R 0 1 D1 R 0 0 D0 R 0 6 — — — 5 — — — 4 — — — 3 — — — 2 — — — 1 D9 R 0 0 D8 R 0 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 3 — — — 2 — — — 1 D9 R/W 0 0 D8 R/W 0 TM1AL:TM1 CCRA 低字节寄存器 bit 7~bit 0 TM1 10-bit CCRA bit 7~bit 0  TM1AH 寄存器 Bit 7 Name — R/W — POR — Bit 7~2 Bit 1~0 4 D4 R 0 未定义,读为“0” TM1DH:TM1 计数器高字节寄存器 bit 1~bit 0 TM1 10-bit 计数器 bit 9~bit 8  TM1AL 寄存器 Bit 7 Name D7 R/W R/W POR 0 Bit 7~0 5 D5 R 0 TM1DL:TM1 计数器低字节寄存器 bit 7~bit 0 TM1 10-bit 计数器 bit 7~bit 0  TM1DH 寄存器 Bit 7 Name — R/W — POR — Bit 7~2 Bit 1~0 6 D6 R 0 6 — — — 5 — — — 4 — — — 未定义,读为“0” TM1AH:TM1 CCRA 高字节寄存器 bit 1~bit 0 TM1 10-bit CCRA bit 9~bit 8 标准型 TM 工作模式 标准型 TM 有五种工作模式,即比较匹配输出模式,PWM 输出模式,单脉冲输出模式,捕捉输 入模式或定时/计数器模式。通过设置 TM1C1 寄存器的 T1M1 和 T1M0 位选择任意模式。 Rev.1.60 71 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 比较匹配输出模式 为使 TM 工作在此模式,TM1C1 寄存器中的 T1M1 和 T1M0 位需要设置为“00”。当工作在该 模式,一旦计数器使能并开始计数,有三种方法来清零,分别是:计数器溢出,比较器 A 比较匹配 发生和比较器 P 比较匹配发生。当 T1CCLR 位为低,有两种方法清除计数器。一种是比较器 P 比较 匹配发生,另一种是 CCRP 所有位设置为零并使得计数器溢出。此时,比较器 A 和比较器 P 的请求 标志位 T1AF 和 T1PF 将分别置位。 如果 TM1C1 寄存器的 T1CCLR 位设置为高,当比较器 A 比较匹配发生时计数器被清零。此时, 即使 CCRP 寄存器的值小于 CCRA 寄存器的值,仅产生 T1AF 中断请求标志。所以当 T1CCLR 为高 时,不会产生 T1PF 中断请求标志。在比较匹配输出模式下,CCRA 不能设为“0”。 正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 比较匹配发生后 T1AF 标志产生时,TM 输出脚状态改变。比较器 P 比较匹配发生时产生的 T1PF 标志不影响 TM 输出脚。 TM 输出脚状态改变方式由 TM1C1 寄存器中 T1IO1 和 T1IO0 位决定。当比较器 A 比较匹配发生时, T1IO1 和 T1IO0 位决定 TM 输出脚输出高,低或翻转当前状态。TM 输出脚初始值,既可以通过 T1ON 位由低到高电平的变化设置,也可以由 T1OC 位设置。注意,若 T1IO1 和 T1IO0 位同时为 0 时,引 脚输出不变。 比较匹配输出模式 -- TnCCLR= 0 注: 1.TnCCLR= 0,比较器 P 匹配将清除计数器 2.TM 输出脚仅由 TnAF 标志位控制 3.在 TnON 上升沿 TM 输出脚复位至初始值 4. n=1 Rev.1.60 72 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 比较匹配输出模式 -- TnCCLR= 1 注: 1.TnCCLR= 1,比较器 A 匹配将清除计数器 2.TM 输出脚仅由 TnAF 标志位控制 3.在 TnON 上升沿 TM 输出脚复位至初始值 4.当 TnCCLR=1 时,不会产生 TnPF 标志 5. n=1 Rev.1.60 73 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 定时/计数器模式 为使 TM 工作在此模式,TM1C1 寄存器中的 T1M1 和 T1M0 位需要设置为“11”。定时/计数 器模式与比较输出模式操作方式相同,并产生同样的中断请求标志。不同的是,在定时/计数器模式 下 TM 输出脚未使用。因此,比较匹配输出模式中的描述和时序图可以适用于此功能。该模式中未 使用的 TM 输出脚用作普通 I/O 脚或其它功能。 PWM 输出模式 为使 TM 工作在此模式,TM1C1 寄存器中的 T1M1 和 T1M0 位需要设置为“10”,且 T1IO1 和 T1IO0 位也需要设置为“10”。TM 的 PWM 功能在马达控制,加热控制,照明控制等方面十分 有用。给 TM 输出脚提供一个频率固定但占空比可调的信号,将产生一个有效值等于 DC 均方根的 AC 方波。 由于 PWM 波形的周期和占空比可调,其波形的选择就极其灵活。在 PWM 模式中,T1CCLR 位不影响 PWM 周期。CCRA 和 CCRP 寄存器决定 PWM 波形,一个用来清除内部计数器并控制 PWM 波形的频率,另一个用来控制占空比。哪个寄存器控制频率或占空比取决于 TM1C1 寄存器的 T1DPX 位。所以 PWM 波形由 CCRA 和 CCRP 寄存器共同决定。 当比较器 A 或比较器 P 比较匹配发生时,将产生 CCRA 或 CCRP 中断标志。TM1C1 寄存器中 的 T1OC 位决定 PWM 波形的极性,T1IO1 和 T1IO0 位使能 PWM 输出或将 TM 输出脚置为逻辑高 或逻辑低。T1POL 位对 PWM 输出波形的极性取反。  STM,PWM 模式,边沿对齐模式,T1DPX=0 CCRP 001b 010b 011b 100b 101b Period 128 256 384 512 640 Duty CCRA 110b 768 111b 896 000b 1024 110b 111b 000b 768 896 1024 若f SYS =16MHz,TM时钟源选择f SYS /4,CCRP=100b,CCRA=128, STM PWM输出频率=(f SYS /4)/512= f SYS /2048=7.8125kHz,duty=128/512=25% 若由 CCRA 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为 100%  STM,PWM 模式,边沿对齐模式,T1DPX=1 CCRP 001b 010b 011b 100b 101b Period CCRA Duty 128 256 384 512 640 PWM 的输出周期由 CCRA 寄存器的值与 TM 的时钟共同决定,PWM 的占空比由 CCRP 寄存器的值决定。 Rev.1.60 74 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 PWM 模式 -- TnDPX= 0 注: 1.TnDPX= 0,CCRP 清除计数器 2.计数器清零并设置 PWM 周期 3.当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4.TnCCLR 位不影响 PWM 操作 5. n=1 Rev.1.60 75 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 PWM 模式 -- TnDPX= 1 注: 1.TnDPX= 1,CCRA 清除计数器 2.计数器清零并设置 PWM 周期 3.当 TnIO1,TnIO0=00 或 01,PWM 功能不变 4.TnCCLR 位不影响 PWM 操作 5. n=1 Rev.1.60 76 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 单脉冲模式 为使 TM 工作在此模式,TM1C1 寄存器中的 T1M1 和 T1M0 位需要设置为“10”,同时 T1IO1 和 T1IO0 位需要设置为“11”。正如模式名所言,单脉冲输出模式,在 TM 输出脚将产生一个脉冲 输出。 脉冲输出可以通过应用程序控制 T1ON 位由低到高的转变来触发。而处于单脉冲模式时,T1ON 位在 TCK1 脚自动由低转变为高,进而初始化单脉冲输出状态。当 T1ON 位转变为高电平时,计数 器将开始运行,并产生脉冲前沿。当脉冲有效时 T1ON 位保持高电平。通过应用程序使 T1ON 位清 零或比较器 A 比较匹配发生时,产生脉冲下降沿。 S /W C o m m a n d S E T "T n O N " o r T C K n P in T r a n s itio n L e a d in g E d g e T r a ilin g E d g e T n O N b it 0 ® 1 T n O N b it 1 ® 0 S /W C o m m a n d C L R "T n O N " o r C C R A M a tc h C o m p a re T M n O u tp u t P in P u ls e W id th = C C R A V a lu e 单脉冲产生示意图(n=1) 单脉冲模式 注: 1.通过 CCRA 匹配停止计数器 2.CCRP 未使用 3.通过 TCKn 脚或设置 TnON 位为高来触发脉冲 4.TCKn 脚有效沿会自动置位 TnON 5.单脉冲模式中,TnIO[1:0]需置位“11”,且不能更改 6. n=1 Rev.1.60 77 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 然而,比较器 A 比较匹配发生时,会自动清除 T1ON 位并产生单脉冲输出下降沿。CCRA 的值 通过这种方式控制脉冲宽度。比较器 A 比较匹配发生时,也会产生 TM 中断。T1ON 位在计数器重 启时会发生由低到高的转变,此时计数器才复位至零。在单脉冲模式中,CCRP 寄存器,T1CCLR 和 T1DPX 位未使用。 捕捉输入模式 为使 TM 工作在此模式,TM1C1 寄存器中的 T1M1 和 T1M0 位需要设置为“01”。此模式使能 外部信号捕捉并保存内部计数器当前值,因此被用于诸如脉冲宽度测量的应用中。TP1 脚上的外部 信号,通过设置 TM1C1 寄存器的 T1IO1 和 T1IO0 位选择有效边沿类型,即上升沿,下降沿或双沿 有效。计数器在 T1ON 位由低到高转变时启动并通过应用程序初始化。 当 TP1 脚出现有效边沿转换时,计数器当前值被锁存到 CCRA 寄存器,并产生 TM 中断。不考 虑 TP1 引脚事件,计数器继续工作直到 T1ON 位发生下降沿跳变。当 CCRP 比较匹配发生时计数器 复位至零;CCRP 的值通过这种方式控制计数器的最大值。当比较器 P CCRP 比较匹配发生时,也会 产生 TM 中断。记录 CCRP 溢出中断信号的值可以测量脉宽。通过设置 T1IO1 和 T1IO0 位选择 TP1 引脚为上升沿,下降沿或双沿有效。不考虑 TP1 引脚事件,如果 T1IO1 和 T1IO0 位设置为高,不会 产生捕捉操作,但计数器继续运行。 当 TP1 引脚与其它功能共用,TM 工作在输入捕捉模式时需多加注意。这是因为如果引脚被设 为输出,那么该引脚上的任何电平转变都可能执行输入捕捉操作。T1CCLR 和 T1DPX 位在此模式中 未使用。 捕捉输入模式 注: 1.TnM1,TnM0=01 并通过 TnIO1 和 TnIO0 位设置有效边沿 2.TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRA 中 3.TnCCLR 位未使用 4.无输出功能 -- TnOC 和 TnPOL 位未使用 5.计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大 6. n=1 Rev.1.60 78 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 增强型 TM - ETM 增强型 TM 包括 5 种工作模式,即比较匹配输出,定时/事件计数器,捕捉输入,单脉冲输出和 PWM 输出模式。增强型 TM 也由一个外部输入脚控制并驱动两个外部输出脚。 CTM HT66F03 HT68F03 HT68F04 HT66F04 名称 TM 编号 TM 输入引脚 TM 输出引脚 — — — — 10-bit ETM 2 TCK2 TP2A,TP2B 增强型 TM 操作 增强型 TM 核心是一个由用户选择的内部或外部时钟源驱动的 10 位向上/向下计数器,它还包 括三个内部比较器即比较器 A,比较器 B 和比较器 P。这三个比较器将计数器的值与 CCRA,CCRB 和 CCRP 寄存器中的值进行比较。CCRP 是 3 位的,与计数器的高 3 位比较;而 CCRA 和 CCRB 是 10 位的,与计数器的所有位比较。 通过应用程序改变 10 位计数器值的唯一方法是使 T2ON 位发生上升沿跳变清除计数器。此外, 计数器溢出或比较匹配也会自动清除计数器。上述条件发生时,通常情况会产生 TM 中断信号。增 强型 TM 可工作在不同的模式,可由包括来自输入脚的不同时钟源驱动,也可以控制输出脚。所有 工作模式的设定都是通过设置相关寄存器来实现的。 增强型 TM 方框图(n=2) Rev.1.60 79 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 增强型 TM 寄存器介绍 增强型 TM 的所有操作由一系列寄存器控制。一对只读寄存器用来存放 10 位计数器的值,两对 读/写寄存器存放 10 位 CCRA 和 CCRB 的值。剩下三个控制寄存器用来设置不同的操作和控制模式, 以及 CCRP 的 3 个位。 Name TM2C0 TM2C1 TM2C2 TM2DL TM2DH TM2AL TM2AH TM2BL TM2BH  Bit 7 T2PAU T2AM1 T2BM1 D7 — D7 — D7 — Bit 6 T2CK2 T2AM0 T2BM0 D6 — D6 — D6 — TM2C0 寄存器 Bit 7 Name T2PAU R/W R/W POR 0 6 T2CK2 R/W 0 Bit 7 Bit 6~4 Bit 3 Bit 2~0 Rev.1.60 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 T2CK1 T2CK0 T2ON T2RP2 T2RP1 T2RP0 T2AIO1 T2AIO0 T2AOC T2APOL T2CDN T2CCLR T2BIO1 T2BIO0 T2BOC T2BPOL T2PWM1 T2PWM0 D5 D4 D3 D2 D1 D0 D9 D8 — — — — D5 D4 D3 D2 D1 D0 D9 D8 — — — — D5 D4 D3 D2 D1 D0 D9 D8 — — — — 增强型 TM 寄存器列表-HT66F04 5 T2CK1 R/W 0 4 T2CK0 R/W 0 3 T2ON R/W 0 2 T2RP2 R/W 0 1 T2RP1 R/W 0 0 T2RP0 R/W 0 T2PAU:TM2 计数器暂停控制位 0:运行 1:暂停 通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂停条件时,TM 保持 上电状态并继续耗电。当此位由低到高转变时,计数器将保留其剩余值,直到此位再次改变为低电 平,并从此值开始继续计数。 T2CK2~T2CK0:选择 TM2 计数时钟位 000:f SYS /4 001:f SYS 010:f H /16 011:f H /64 100:f TBC 101:保留位 110:TCK2 上升沿时钟 111:TCK2 下降沿时钟 此三位用于选择TM的时钟源。选择保留时钟输入将有效地除能内部计数器。外部引脚时钟源能被 选择在上升沿或下降沿有效。f SYS 是系统时钟,f H 和f TBC 是其它的内部时钟源,细节方面请参考振荡 器章节。 T2ON:TM2 计数器 On/Off 控制位 0:Off 1:On 此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位则除能 TM。清零此 位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转换时,内部计数器将清零。当此位经由 高到低转换时,内部计数器将保持其剩余值直到此位再次变成高电平。 若 TM 处于比较匹配输出模式时(通过 T2AOC 或 T2BOC 位指定),当 T2ON 位经由低到高的转变时, TM 输出脚将重置其初始值。 T2RP2~T2RP0:TM2 CCRP 3-bit 寄存器,对应于 TM2 计数器 bit 9~bit 7 比较器 P 匹配周期 000:1024 个 TM2 时钟周期 001:128 个 TM2 时钟周期 010:256 个 TM2 时钟周期 011:384 个 TM2 时钟周期 80 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 100:512 个 TM2 时钟周期 101:640 个 TM2 时钟周期 110:768 个 TM2 时钟周期 111:896 个 TM2 时钟周期 此三位设定内部 CCRP 3-bit 寄存器的值,然后与内部计数器的高三位进行比较。如果 T2CCLR 位 设定为 0 时,比较结果可选择清除内部计数器。T2CCLR 位设为低,内部计数器在比较器 P 比较匹 配发生时被重置;由于 CCRP 只与计数器高三位比较,比较结果是 128 时钟周期的倍数。CCRP 被 清零时,实际上会使得计数器在最大值溢出。  TM2C1 寄存器 Bit 7 Name T2AM1 R/W R/W POR 0 Bit 7~6 Bit 5~4 Bit 3 Rev.1.60 6 T2AM0 R/W 0 5 T2AIO1 R/W 0 4 T2AIO0 R/W 0 3 T2AOC R/W 0 2 T2APOL R/W 0 1 T2CDN R 0 0 T2CCLR R/W 0 T2AM1~T2AM0:选择 TM2 CCRA 工作模式位 00:比较匹配输出模式 01:捕捉输入模式 10:PWM 模式或单脉冲输出模式 11:定时/计数器模式 这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 T2AM1 和 T2AM0 位有任何改变前 先关掉。在定时/计数器模式,TM 输出脚控制必须除能。 T2AIO1~T2AIO0:选择 TP2A 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式/单脉冲输出模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:单脉冲输出 捕捉输入模式 00:在 TP2A 上升沿输入捕捉 01:在 TP2A 下降沿输入捕捉 10:在 TP2A 双沿输入捕捉 11:输入捕捉除能 定时/计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择决定 TM 运行在哪种 模式下。 在比较匹配输出模式下,T2AIO1 和 T2AIO0 位决定当从比较器 A 比较匹配输出发生时 TM 输出脚 如何改变状态。当从比较器 A 比较匹配输出发生时 TM 输出脚能设为切换高、切换低或翻转当前状 态。若此两位同时为 0 时,这个输出将不会改变。TM 输出脚的初始值通过 TM2C1 寄存器的 T2AOC 位设置取得。注意,由 T2AIO1 和 T2AIO0 位得到的输出电平必须与通过 T2AOC 位设置的初始值 不同,否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后,通过 T2ON 位由低到高电平的转换复位至初始值。 在 PWM 模式,T2AIO1 和 T2AIO0 用于决定比较匹配条件发生时怎样改变 TM 输出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TM2 关闭时改变 T2AIO1 和 T2AIO0 位的值是很有必要 的。若在 TM 运行时改变 T2AIO1 和 T2AIO0 的值,PWM 输出的值是无法预料的。 T2AOC:TP2A 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式/单脉冲输出模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还是 PWM 模式/单脉冲 81 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 2 Bit 1 Bit 0  输出模式。若 TM 处于定时/计数器模式,则其不受影响。在比较匹配输出模式时,比较匹配发生前 其决定 TM 输出脚的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 T2APOL:TP2A 输出极性控制位 0:同相 1:反相 此位控制 TP2A 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚同相。若 TM 处于 定时/计数器模式时其不受影响。 T2CDN:TM2 计数器向上/向下计数标志位 0:向上计数 1:向下计数 T2CCLR:选择 TM2 计数器清零条件位 0:TM2 比较器 P 匹配 1:TM2 比较器 A 匹配 此位用于选择清除计数器的方法。增强型 TM 包括三个比较器--比较器 P、比较器 A 和比较器 B, 其中比较器 P 和比较器 A 都可以用作清除内部计数器。T2CCLR 位设为高,计数器在比较器 A 比 较匹配发生时被清除;此位设为低,计数器在比较器 P 比较匹配发生或计数器溢出时被清除。计数 器溢出清除的方法仅在 CCRP 被清除为 0 时才能生效。T2CCLR 位在单脉冲或输入捕捉模式时未使 用。 TM2C2 寄存器 Bit 7 Name T2BM1 R/W R/W POR 0 Bit 7~6 Bit 5~4 Rev.1.60 6 T2BM0 R/W 0 5 T2BIO1 R/W 0 4 T2BIO0 R/W 0 3 T2BOC R/W 0 2 1 0 T2BPOL T2PWM1 T2PWM0 R/W R R/W 0 0 0 T2BM1~T2BM0:选择 TM2 CCRB 工作模式位 00:比较匹配输出模式 01:捕捉输入模式 10:PWM 模式或单脉冲输出模式 11:定时/计数器模式 这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 T2BM1 和 T2BM0 位有任何改变前 先关掉。在定时/计数器模式,TM 输出脚控制必须除能。 T2BIO1~T2BIO0:选择 TP2B 输出功能位 比较匹配输出模式 00:无变化 01:输出低 10:输出高 11:输出翻转 PWM 模式/单脉冲输出模式 00:强制无效状态 01:强制有效状态 10:PWM 输出 11:单脉冲输出 捕捉输入模式 00:在 TP2B 上升沿输入捕捉 01:在 TP2B 下降沿输入捕捉 10:在 TP2B 双沿输入捕捉 11:输入捕捉除能 定时/计数器模式 未使用 此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择决定 TM 运行在哪种 模式下。 在比较匹配输出模式下,T2BIO1 和 T2BIO0 位决定当比较器 B 比较匹配输出发生时 TM 输出脚如 何改变状态。当比较器 B 比较匹配输出发生时 TM 输出脚能设为切换高、切换低或翻转当前状态。 若此两位同时为 0 时,这个输出将不会改变。TM 输出脚的初始值通过 TM2C2 寄存器的 T2BOC 位 设置取得。注意,由 T2BIO1 和 T2BIO0 位得到的输出电平必须与通过 T2BOC 位设置的初始值不同, 否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后,通过 T2ON 位由 低到高电平的转换复位至初始值。 82 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 3 Bit 2 Bit 1~0  TM2DL 寄存器 Bit 7 Name D7 R/W R POR 0 Bit 7~0  Rev.1.60 5 D5 R 0 4 D4 R 0 3 D3 R 0 2 D2 R 0 1 D1 R 0 0 D0 R 0 6 — — — 5 — — — 4 — — — 3 — — — 2 — — — 1 D9 R 0 0 D8 R 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 未定义,读为“0” TM2DH:TM2 计数器高字节寄存器 bit 1~bit 0 TM2 10-bit 计数器 bit 9~bit 8 TM2AL 寄存器 Bit 7 Name D7 R/W R/W POR 0 Bit 7~0 6 D6 R 0 TM2DL:TM2 计数器低字节寄存器 bit 7~bit 0 TM2 10-bit 计数器 bit 7~bit 0 TM2DH 寄存器 Bit 7 Name — R/W — POR — Bit 7~2 Bit 1~0  在 PWM 模式,T2BIO1 和 T2BIO0 用于决定比较匹配条件发生时怎样改变 TM 输出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TM2 关闭时改变 T2BIO1 和 T2BIO0 位的值是很有必要 的。若在 TM 运行时改变 T2BIO1 和 T2BIO0 的值,PWM 输出的值是无法预料的。 T2BOC:TP2B 输出控制位 比较匹配输出模式 0:初始低 1:初始高 PWM 模式/单脉冲输出模式 0:低有效 1:高有效 这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还是 PWM 模式/单脉冲 输出模式。若 TM 处于定时/计数器模式,则其不受影响。在比较匹配输出模式时,比较匹配发生前 其决定 TM 输出脚的逻辑电平值。在 PWM 模式时,其决定 PWM 信号是高有效还是低有效。 T2BPOL:TP2B 输出极性控制位 0:同相 1:反相 此位控制 TP2B 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚同相。若 TM 处于 定时/计数器模式时其不受影响。 T2PWM1~T2PWM0:选择 PWM 模式位 00:边沿对齐 01:中心对齐,向上计数比较匹配 10:中心对齐,向下计数比较匹配 11:中心对齐,向上/下计数比较匹配 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 TM2AL:TM2 CCRA 低字节寄存器 bit 7~bit 0 TM2 10-bit CCRA bit 7~bit 0 83 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  TM2AH 寄存器 Bit 7 Name — R/W — POR — Bit 7~2 Bit 1~0   6 D6 R/W 0 4 — — — 3 — — — 2 — — — 1 D9 R/W 0 0 D8 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 3 — — — 2 — — — 1 D9 R/W 0 0 D8 R/W 0 TM2BL:TM2 CCRB 低字节寄存器 bit 7~bit 0 TM2 10-bit CCRB bit 7~bit 0 TM2BH 寄存器 Bit 7 Name — R/W — POR — Bit 7~2 Bit 1~0 5 — — — 未定义,读为“0” TM2AH:TM2 CCRA 高字节寄存器 bit 1~bit 0 TM2 10-bit CCRA bit 9~bit 8 TM2BL 寄存器 Bit 7 Name D7 R/W R/W POR 0 Bit 7~0 6 — — — 6 — — — 5 — — — 4 — — — 未定义,读为“0” TM2BH:TM2 CCRB 高字节寄存器 bit 1~bit 0 TM2 10-bit CCRB bit 9~bit 8 增强型 TM 工作模式 增强型 TM 有五种工作模式,即比较匹配输出模式,PWM 输出模式,单脉冲输出模式,捕捉输 入模式或定时/计数器模式。通过设置 TM2C1 寄存器的 T2AM1 和 T2AM0 位和 TM2C2 寄存器的 T2BM1 和 T2BM0 位选择任意模式。 ETM 工作模式 CCRB 比较匹配输出模式 CCRB 定时/计数器模式 CCRB PWM 输出模式 CCRB 单脉冲输出模式 CCRB 输入捕捉模式 CCRA 比较匹配 输出模式 √ — — — — CCRA 定时/ 计数器模式 — √ — — — CCRA PWM 输出 模式 — — √ — — CCRA 单脉 冲输出模式 — — — √ — CCRA 输入捕捉 模式 — — — — √ “√”:允许,“—”:不允许 Rev.1.60 84 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 比较匹配输出模式 为使 TM 工作在此模式,TM2C1 寄存器的 T2AM1,T2AM0 位和 TM2C2 寄存器的 T2BM1,T2BM0 位需要全部清零。当工作在该模式,一旦计数器使能并开始计数,有三种方法来清零,分别是:计 数器溢出,比较器 A 比较匹配发生和比较器 P 比较匹配发生。当 T2CCLR 位为低,有两种方法清除 计数器。一种是比较器 P 比较匹配发生,另一种是 CCRP 所有位设置为零并使得计数器溢出。此时, 比较器 A 和比较器 P 的请求标志位 T2AF 和 T2PF 将分别置起。 如果 TM2C1 寄存器的 T2CCLR 位设置为高,当比较器 A 比较匹配发生时计数器被清零。此时, 即使 CCRP 寄存器的值小于 CCRA 寄存器的值,仅 T2AF 中断请求标志产生。所以当 T2CCLR 为高 时,不会产生 T2PF 中断请求标志。 正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 或比较器 B 比较匹 配发生后 T2AF 或 T2BF 中断请求标志产生时,TM 输出脚状态改变。比较器 P 比较匹配发生时产生 的 T2PF 标志不影响 TM 输出脚。TM 输出脚状态改变方式由 ETM CCRA 的 TM2C1 寄存器中 T2AIO1 和 T2AIO0 位,ETM CCRB 的 TM2C2 寄存器中的 T2BIO1 和 T2BIO0 位决定。当比较器 A 或比较 器 B 比较匹配发生时,T2AIO1,T2AIO0 位(对于 TP2A 引脚)和 T2BIO1,T2BIO0 位(对于 TP2B 引 脚)决定 TM 输出脚输出高,低或翻转当前状态。TM 输出脚初始值,既可以通过 T2ON 位由低到高 电平的变化设置,也可以由 T2AOC 或 T2BOC 位设置。注意,若 T2AIO1,T2AIO0 和 T2BIO1,T2BIO0 位同时为 0 时,引脚输出不变。 ETM CCRA 比较匹配输出模式 -- TnCCLR= 0 注: 1.TnCCLR= 0,比较器 P 匹配将清除计数器 2.TPnA 输出脚仅由 TnAF 标志位控制 3.在 TnON 上升沿 TM 输出脚复位至初始值 4. n=2 Rev.1.60 85 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ETM CCRB 比较匹配输出模式 -- TnCCLR= 0 注:1.TnCCLR=0,比较器 P 匹配将清除计数器 2.TPnB 输出脚仅由 TnBF 标志位控制 3.在 TnON 上升沿 TM 输出脚复位至初始值 4. n=2 ETM CCRA 比较匹配输出模式 -- TnCCRL= 1 注: 1.TnCCLR= 1,比较器 A 匹配将清除计数器 2.TPnA 输出脚仅由 TnAF 标志位控制 3.在 TnON 上升沿 TPnA 输出脚复位至初始值 4.当 TnCCLR=1 时,不会产生 TnPF 标志 5. n=2 Rev.1.60 86 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ETM CCRB 比较匹配输出模式 -- TnCCRL= 1 注: 1.TnCCLR= 1,比较器 A 匹配将清除计数器 2.TPnB 输出脚仅由 TnBF 标志位控制 3.在 TnON 上升沿 TPnB 输出脚复位至初始值 4.当 TnCCLR=1 时,不会产生 TnPF 标志 5. n=2 Rev.1.60 87 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 定时/计数器模式 为使 TM 工作在此模式,TM2C1 寄存器的 T2AM1,T2AM0 位和 TM2C2 寄存器的 T2BM1,T2BM0 位需要全部设为高。定时/计数器模式与比较输出模式操作方式相同,并产生同样的中断请求标志。 不同的是,在定时/计数器模式下 TM 输出脚未使用。因此,比较匹配输出模式中的描述和时序图可 以适用于此功能。该模式中未使用的 TM 输出脚用作普通 I/O 脚或其它功能。 PWM 输出模式 为使 TM 工作在此模式,T2AM1,T2AM0 和 T2BM1,T2BM0 位需要分别设置为“10”,且 T2AIO1,T2AIO0 和 T2BIO1,T2BIO0 位也需要分别设置为“10”。TM 的 PWM 功能在马达控制, 加热控制,照明控制等方面十分有用。给 TM 输出脚提供一个频率固定但占空比可调的信号,将产 生一个有效值等于 DC 均方根的 AC 方波。 由于 PWM 波形的周期和占空比可调,其波形的选择就极其灵活。在 PWM 模式中,T2CCLR 位决定 PWM 周期控制方式。当 T2CCLR 设为高,CCRA 寄存器控制 PWM 周期。在这种情况下, CCRB 寄存器设置 PWM 的占空比(针对 TP2B 输出脚)。CCRP 寄存器和 TP2A 输出脚未使用。PWM 输出只在 TP2B 输出脚产生。当 T2CCLR 清零时,PWM 周期通过 CCRP 三位中八个值之一设置, 并且是 128 的倍数。此时,CCRA 和 CCRB 寄存器设置不同占空比,在 TP2A 和 TP2B 引脚输出两 个 PWM 波形。 T2PWM1 和 T2PWM0 位决定 PWM 的对齐方式,即边沿或中心对齐方式。在边沿对齐方式中, 当计数器清零时,产生 PWM 前沿信号。与此同时电流发生跳变,这在高功耗应用中会出现问题。 在中心对齐方式中,PWM 波形中心持续产生有效信号,因此可以减少电流跳变引起的功耗问题。 当比较器 A,比较器 B 或比较器 P 比较匹配发生时,CCRA,CCRB 和 CCRP 中断标志位分别 产生。TM2C1 寄存器的 T2AOC 位和 TM2C2 寄存器的 T2BOC 位选择 PWM 波形的极性,T2AIO1, T2AIO0 和 T2BIO1,T2BIO0 位使能 PWM 输出或迫使 TM 输出脚为高电平或低电平。T2APOL 和 T2BPOL 位用来取反 PWM 输出波形的极性。  ETM,PWM 模式,边沿对齐模式,T2CCLR=0 CCRP 001b 010b 011b 100b 101b Period 128 256 384 512 640 A Duty CCRA B Duty CCRB 110b 768 111b 896 000b 1024 1021 1021 1022 1022 1023 1023 110b 1536 111b 1792 000b 2046 1021 2042 1022 2044 1023 2046 若f SYS =16MHz,TM时钟源选择f SYS /4,CCRP=100b,CCRA=128,CCRB=256, TP2A PWM输出频率=(f SYS /4)/512= f SYS /2048=7.8125kHz,duty=128/512=25% TP2B PWM输出频率=(f SYS /4)/512= f SYS /2048=7.8125kHz,duty=256/512=50% 若由 CCRA 或 CCRB 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为 100%  ETM,PWM 模式,边沿对齐模式,T2CCLR=1 CCRA 1 2 3 511 512 Period 1 2 3 511 512 B Duty CCRB  ETM,PWM 模式,中心对齐模式,T2CCLR=0 CCRP 001b 010b 011b 100b 101b Period 256 512 768 1024 1280 A Duty (CCRA×2)-1 B Duty (CCRB×2)-1  ETM,PWM 模式,中心对齐模式,T2CCLR=1 CCRA 1 2 3 511 512 Period 2 4 6 1022 1024 B Duty (CCRB×2)-1 Rev.1.60 88 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ETM PWM 模式 -- 边沿对齐 注: 1.TnCCLR= 0,CCRP 清除计数器并决定 PWM 周期 2.当 TnAIO1,TnAIO0(或 TnBIO1,TnBIO0)=00 或 01,PWM 功能不变 3.CCRA 控制 TPnA PWM 占空比,CCRB 控制 TPnB PWM 占空比 4. n=2 Rev.1.60 89 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ETM PWM 模式 -- 边沿对齐 注: 1.TnCCLR= 1,CCRA 清除计数器并决定 PWM 周期 2.当 TnBIO1,TnBIO0=00 或 01,PWM 功能不变 3.CCRA 控制 TPnB PWM 周期,CCRB 控制 TPnB PWM 占空比 4.此时,TM 引脚控制寄存器不能使能 TPnA 作为 TM 输出引脚 5. n=2 Rev.1.60 90 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 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 将产生中断请求 6. n=2 Rev.1.60 91 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 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 将产生中断请求 6. n=2 Rev.1.60 92 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 单脉冲输出模式 为使 TM 工作在此模式,T2AM1,T2AM0 和 T2BM1,T2BM0 位需要分别设置为“10”,并且 相应的 T2AIO1,T2AIO0 和 T2BIO1,T2BIO0 需要分别设置为“11”。正如模式名所言,单脉冲输 出模式,在 TM 输出脚将产生一个脉冲输出。 通过应用程序控制 T2ON 位由低到高的转变来触发 TP2A 脉冲前沿输出。通过应用程序产生比 较器 B 的比较匹配来触发 TP2B 脉冲前沿输出。而处于单脉冲模式时,T2ON 位可由 TCK2 脚自动 由低转变为高,进而依次初始化 TP2A 的单脉冲输出。当 T2ON 位转变为高电平时,计数器将开始 运行,并产生 TP2A 脉冲前沿。当脉冲有效时 T2ON 位保持高电平。通过应用程序使 T2ON 位清零 或比较器 A 比较匹配发生时,产生 TP2A 和 TP2B 的脉冲下降沿。 而比较器 A 比较匹配发生时,会自动清除 T2ON 位并产生 TP2A 和 TP2B 单脉冲输出下降沿。 CCRA 的值通过这种方式控制 TP2A 的脉冲宽度,CCRA-CCRB 的值控制 TP2B 的脉冲宽度。比较器 A 和比较器 B 比较匹配发生时,也会产生 TM 中断。T2ON 位在计数器重启时会发生由低到高的转 变,此时计数器才复位至零。在单脉冲模式中,CCRP 寄存器和 T2CCLR 位未使用。 单脉冲产生示意图 Rev.1.60 93 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ETM -- 单脉冲模式 注: 1.通过 CCRA 匹配停止计数器 2.CCRP 未使用 3.通过 TCKn 脚或设置 TnON 位为高来触发脉冲 4.TCKn 脚有效沿会自动置位 TnON 5.单脉冲模式中,TnAIO[1:0]和 TnBIO[1:0]需置位“11”,且不能更改 6. n=2 捕捉输入模式 为使 TM 工作在此模式,TM2C1 寄存器的 T2AM1,T2AM0 位和 TM2C2 寄存器的 T2BM1,T2BM0 位需要分别设置为“01”。此模式使能外部信号捕捉并保存内部计数器当前值,因此被用于诸如脉 冲宽度测量的应用中。TP2A 和 TP2B 引脚上的外部信号,通过设置 TM2C1 寄存器的 T2AIO1,T2AIO0 位和 TM2C2 寄存器的 T2BIO1,T2BIO0 位选择有效边沿类型,即上升沿,下降沿或双沿有效。计 数器在 T2ON 位由低到高转变时启动并通过应用程序初始化。 当 TP2A 和 TP2 引脚出现有效边沿转换时,计数器当前值被锁存到 CCRA 和 CCRB 寄存器,并 产生 TM 中断。不考虑 TP2A 和 TP2B 引脚事件,计数器继续工作直到 T2ON 位发生下降沿跳变。 当 CCRP 比较匹配发生时计数器复位至零;CCRP 的值通过这种方式控制计数器的最大值。当比较 器 P CCRP 比较匹配发生时,也会产生 TM 中断。记录 CCRP 溢出中断信号的值可以测量长脉宽。 通过设置 T2AIO1,T2AIO0 位和 T2BIO1,T2BIO0 位选择 TP2A 和 TP2B 引脚为上升沿,下降沿或 双沿有效。不考虑 TP2A 和 TP2B 引脚事件,如果 T2AIO1,T2AIO0 位和 T2BIO1,T2BIO0 位都设 为高,不会产生捕捉操作,但计数器继续运行。 当 TP2A 和 TP2B 引脚与其它功能共用,TM 工作在输入捕捉模式时需多加注意。这是因为如果 引脚被设为输出,那么该引脚上的任何电平转变都可能执行输入捕捉操作。T2CCLR,T2AOC, T2BOC,T2APOL 和 T2BPOL 位在此模式中未使用。 Rev.1.60 94 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ETM CCRA 捕捉输入模式 注: 1.TnAM1,TnAM0=01 并通过 TnAIO1 和 TnAIO0 位设置有效边沿 2.TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRA 中 3.TnCCLR 位未使用 4.无输出功能-TnAOC 和 TnAPOL 位未使用 5.计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大 6. n=2 ETM CCRB 捕捉输入模式 注: 1.TnBM1,TnBM0=01 并通过 TnBIO1 和 TnBIO0 位设置有效边沿 2.TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRB 中 3.TnCCLR 位未使用 4.无输出功能-TnBOC 和 TnBPOL 位未使用 5.计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大 6. n=2 Rev.1.60 95 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 A/D 转换器 对于大多数电子系统而言,处理现实世界的模拟信号是共同的需求。为了完全由单片机来处理 这些信号,首先需要通过 A/D 转换器将模拟信号转换成数字信号。将 A/D 转换器电路集成入单片机, 可有效的减少外部器件,随之而来,具有降低成本和减少器件空间需求的优势。 A/D 简介 HT66F03 / HT66F04 都包含一个多通道的 A/D 转换器,它们可以直接接入外部模拟信号(来自传感 器或其它控制信号)并直接将这些信号转换成 12 位的数字量。 单片机 HT66F03/HT66F04 A/D 通道选择位 ACS4,ACS1~ACS0 输入通道数 4 输入引脚 AN0~AN3 下图显示了 A/D 转换器内部结构和相关的寄存器。 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 6 5 4 3 2 1 0 D3 D2 D1 D0 — — — — D7 D6 D5 D4 D3 D2 D1 D0 D11 D10 D9 D8 D7 D6 D5 D4 D11 D10 D9 D8 — — — — START EOCB ADOFF ADRFS ACS1 ACS0 — — ACS4 V125EN VREFS ADCK2 ADCK1 ADCK0 — — ACE3 ACE2 ACE1 ACE0 — — — — HT66F03/HT66F04 A/D 转换寄存器列表 A/D 转换器数据寄存器 – ADRL,ADRH 对于具有 12 位 A/D 转换器的芯片,需要两个数据寄存器存放转换结果,一个高字节寄存器 ADRH 和一个低字节寄存器 ADRL。在 A/D 转换完毕后,单片机可以直接读取这些寄存器以获得转换结果。 由于寄存器只使用了 16 位中的 12 位,其数据存储格式由 ADCR0 寄存器的 ADRFS 位控制,如下表 所示。D0~D11 是 A/D 换转数据结果位。未使用的位读为“0”。 Rev.1.60 96 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ADRFS 0 1 ADRH ADRL 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 A/D 数据寄存器 A/D 转换控制寄存器 – ADCR0,ADCR1,ACERL 寄存器 ADCR0,ADCR1 和 ACERL 用来控制 A/D 转换器的功能和操作。这些 8 位的寄存器定 义包括选择连接至内部 A/D 转换器的模拟通道,数字化数据格式,A/D 时钟源,并控制和监视 A/D 转换器的开始和转换结束状态。寄存器 ADCR0 的 ACS1~ACS0 位和 ADCR1 的 ACS4 位定义 ADC 输入通道编号。由于每个单片机只包含一个实际的模数转换电路,因此这 4 个模拟输入中的每一个 都需要分别被发送到转换器。ACS4、ACS1~ACS0 位的功能决定选择哪个模拟输入通道或内部 1.25V 电路是否被连接到内部 A/D 转换器。 ACERL 控制寄存器中的 ACE3~ACE0 位,用来定义 PA 口中的哪些引脚为 A/D 转换器的模拟输 入,哪些引脚不作为 A/D 转换输入。相应位设为高将选择 A/D 输入功能,清零将选择 I/O 或其它引 脚共用功能。当引脚作为 A/D 输入时,其原来的 I/O 或其它引脚共用功能消失,此外,其内部上拉 电阻也将自动断开。  ADCR0 寄存器 Bit 7 Name START R/W R/W POR 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3~2 Bit 1~0 Rev.1.60 6 EOCB R 1 5 ADOFF R/W 1 4 ADRFS R/W 0 3 — — — 2 — — — 1 ACS1 R/W 0 0 ACS0 R/W 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 的 bit7~bit 4 1:ADC 数据高字节是 ADRH 的 bit 3~bit 0,低字节是 ADRL 的 bit 7~bit 0 此位控制存放在两个 A/D 数据寄存器中的 12 位 A/D 转换结果的格式。细节方面请参考 A/D 数据 寄存器章节。 未定义,读为“0” ACS1,ACS0:选择 A/D 通道(ACS4 为“0”)位 00:AN0 01:AN1 10:AN2 11:AN3 这三位是 A/D 通道选择控制位。由于只包含一个内部 A/D 转换电路,因此通过这些位将 4 个 A/D 输入连接到转换器。如果 ADCR1 寄存器中的 ACS4 设为高,内部 1.25V 电路将被连接到内部 A/D 转换器。 97 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  ADCR1 寄存器 Bit 7 Name ACS4 R/W R/W POR 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2~0 Bit 2 Bit 1 Bit 0 Rev.1.60 5 — — — 4 VREFS R/W 0 3 — — — 2 ADCK2 R/W 0 1 ADCK1 R/W 0 0 ADCK0 R/W 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转换动作执行前,充电泵电路稳定需一段时间t BG 。 未定义,读为“0” VREFS:选择 ADC 参考电压 0:内部 ADC 电源 1:VREF 引脚 此位用于选择 A/D 转换器的参考电压。如果该位设为高,A/D 转换器参考电压来源于外部 VREF 引脚。如果该位设为低,内部参考电压来源于电源电压引脚 VDD。当 A/D 转换器参考电压来自与 其它功能复用的外部 VREF 脚时,该外部引脚的其它功能全部除能。 未定义,读为“0” ADCK2,ADCK1,ADCK0:选择 ADC 时钟源 000:f SYS 001:f SYS /2 010:f SYS /4 011:f SYS /8 100:f SYS /16 101:f SYS /32 110:f SYS /64 111:未定义 这三位用于选择 A/D 转换器的时钟源。  ACERL 寄存器 Bit 7 Name — R/W — POR — Bit 7~4 Bit 3 6 V125EN R/W 0 6 — — — 5 — — — 4 — — — 3 ACE3 R/W 1 2 ACE2 R/W 1 1 ACE1 R/W 1 0 ACE0 R/W 1 未使用,读为“0” 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 98 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 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转换器的时钟源为系统时钟f SYS 分频,而分频系数由ADCR1 寄存器中的ADCK2~ADCK0 位 决定。 虽然A/D时钟源是由系统时钟f SYS ,ADCK2~ADCK0 位决定,但可选择的A/D时钟源范围则有一 些限制。允许的A/D时钟周期t ADCK 的范围为 0.5µs~10µs,须小心选择系统时钟频率。如果系统时钟 速度为 4MHz时,ADCK2~ADCK0 位不能设为“000”或“110”。必须保证设定的A/D转换时钟周 期不小于时钟周期的最小值,否则将会产生不准确的A/D转换值。使用者可以参考下面的表格,被 标上星号*的数值在不同单片机中需注意,因为它们的A/D转换时钟周期小于规定的最小值。 f SYS 1MHz 2MHz 4MHz 8MHz 12MHz ADCK2, ADCK1, ADCK0 =000 (f SYS ) 1μs 500ns 250ns* 125ns* 83ns* A/D时钟周期 (t ADCK ) ADCK2, ADCK2, ADCK2, ADCK2, ADCK2, ADCK2, ADCK2, ADCK1, ADCK1, ADCK1, ADCK1, ADCK1, ADCK1, ADCK1, ADCK0 ADCK0 ADCK0 ADCK0 ADCK0 ADCK0 ADCK0 =001 =010 =011 =100 =101 =110 =111 (f SYS /2) (f SYS /4) (f SYS /8) (f SYS /16) (f SYS /32) (f SYS /64) 2μs 4μs 8μs 16μs* 32μs* 64μs* 未定义 1μs 2μs 4μs 8μs 16μs* 32μs* 未定义 500ns 1μs 2μs 4μs 8μs 16μs* 未定义 250ns* 500ns 1μs 2μs 4μs 8μs 未定义 167ns* 333ns* 667ns 1.33μs 2.67μs 5.33μs 未定义 A/D 时钟周期范例 ADCR0 寄存器的 ADOFF 位用于控制 A/D 转换电路电源的开/关。该位必须清零以开启 A/D 转 换器电源。即使通过清除 ACERL 寄存器的 ACE3~ACE0 位,选择无引脚作为 A/D 输入,如果 ADOFF 设为“0”,那么仍然会产生功耗。因此当未使用 A/D 转换器功能时,在功耗敏感的应用中建议设 置 ADOFF 为高以减少功耗。 A/D 转换器参考电压来自正电源电压引脚 VDD 或外部参考源引脚 VREF,可通过 VREFS 位来 选择。由于 VREF 引脚与其它功能共用,当 VREFS 设为高,选择 VREF 引脚功能且其它引脚功能 将自动除能。 A/D 输入引脚 所有的 A/D 模拟输入引脚都与 PA 端口的 I/O 引脚及其它功能共用。使用 ACERL 寄存器中的 ACE3~ACE0 位,可以将它们设置为 A/D 转换器模拟输入脚或具有其它功能。如果引脚的对应位 ACE3~ACE0 设为高,那么该引脚作为 A/D 转换输入且原引脚功能除能。通过这种方式,引脚的功 能可由程序来控制,灵活地切换引脚功能。如果将引脚设为 A/D 输入,则通过寄存器编程设置的所 有上拉电阻会自动断开。请注意,PAC 端口控制寄存器不需要为使能 A/D 输入而先设定为输入模式, 当 ACE3~ACE0 位使能 A/D 输入时,端口控制寄存器的状态将被重置。 A/D 转换器有自己的参考电压引脚 VREF,而通过设置 ADCR1 寄存器的 VREFS 位,参考电压 也可以选择来自电源电压引脚。模拟输入值一定不能超过 VREF 值。 Rev.1.60 99 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 A/D 输入结构 A/D 转换步骤 下面概述实现 A/D 转换过程的各个步骤。 步骤 1 通过 ADCR1 寄存器中的 ADCK2~ADCK0 位,选择所需的 A/D 转换时钟。  步骤 2 清零 ADCR0 寄存器中的 ADOFF 位使能 A/D。  步骤 3 通过 ADCR1 和 ADCR0 寄存器中的 ACS4、ACS1~ACS0 位,选择连接至内部 A/D 转换器的通 道。  步骤 4 通过 ACERL 寄存器中的 ACE3~ACE0 位,选择哪些引脚规划为 A/D 输入引脚。  步骤 5 如果要使用中断,则中断控制寄存器需要正确地设置,以确保 A/D 转换功能是激活的。总中断 控制位 EMI 需要置位为“1”, 以及 A/D 转换器中断位 ADE 也需要置位为“1”。  步骤 6 现在可以通过设定 ADCR0 寄存器中的 START 位从“0”到“1”再回到“0”,开始模数转换 的过程。注意,该位需初始化为“0”。  步骤 7 可以轮询 ADCR0 寄存器中的 EOCB 位,检查模数转换过程是否完成。当此位成为逻辑低时, 表示转换过程已经完成。转换完成后,可读取 A/D 数据寄存器 ADRL 和 ADRH 获得转换后的 值。另一种方法是,若中断使能且堆栈未满,则程序等待 A/D 中断发生。 注:若使用轮询 ADCR0 寄存器中 EOCB 位的状态的方法来检查转换过程是否结束时,则中断 使能的步骤可以省略。 下列时序图表示模数转换过程中不同阶段的图形与时序。由应用程序控制开始A/D转换过程后, 单片机的内部硬件就会开始进行转换,在这个过程中,程序可以继续其它功能。A/D转换时间为 16t ADCK ,t ADCK 为A/D时钟周期。  Rev.1.60 100 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 A/D 转换时序图 编程注意事项 在编程时,如果 A/D 转换器未使用,通过设置 ADCR0 寄存器中的 ADOFF 为高,关闭 A/D 内 部电路以减少电源功耗。此时,不考虑输入脚的模拟电压,内部 A/D 转换器电路不产生功耗。如果 A/D 转换器输入脚用作普通 I/O 脚,必须特别注意,输入电压为无效逻辑电平也可能增加功耗。 A/D 控制寄存器的上电初始值默认设置相关共用引脚为 A/D 输入功能。若选择作为 I/O 口或其 它引脚共用功能,则应正确设置 A/D 控制寄存器以除能 A/D 输入功能。 A/D 转换功能 HT66F03 和HT66F04 两款单片机含有一组 12 位的A/D转换器,它们转换的最大值可达FFFH。 由于模拟输入最大值等于V DD 或V REF 的电压值,因此每一位可表示V DD 或V REF /4096 的模拟输入值。 1 LSB=(V DD 或V REF )÷ 4096 通过下面的等式可估算 A/D 转换器输入电压值: A/D输入电压 = A/D数字输出值×(V DD 或V REF ) ÷ 4096 下图显示A/D转换器模拟输入值和数字输出值之间理想的转换功能。除了数字化数值 0,其后的 数字化数值会在精确点之前的 0.5 LSB 处改变,而数字化数值的最大值将在V DD 或V REF 之前的 1.5 LSB处改变。 1 .5 L S B F F F H F F E H F F D H A /D C o n v e r s io n R e s u lt 0 .5 L S B 0 3 H 0 2 H 0 1 H 0 1 2 3 4 0 9 3 4 0 9 4 4 0 9 5 4 0 9 6 ( V D D o r V 4 0 9 6 R E F ) A n a lo g In p u t V o lta g e 理想的 A/D 转换功能 Rev.1.60 101 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 A/D 转换应用范例 下面两个范例程序用来说明怎样使用 A/D 转换。第一个范例是轮询 ADCR0 寄存器中的 EOCB 位来判断 A/D 转换是否完成;第二个范例则使用中断的方式判断。 范例: 使用查询 EOCB 的方式来检测转换结束 clr ADE ; disable ADC interrupt mov a,03H mov ADCR1,a ; select f SYS /8 as A/D clock and switch off 1.25V clr ADOFF mov a,0Fh ; setup ACERL to configure pins AN0~AN3 mov ACERL,a 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 范例: 使用中断的方式来检测转换结束 clr ADE ; disable ADC interrupt mov a,03H mov ADCR1,a ; select f SYS /8 as A/D clock and switch off 1.25V clr ADOFF mov a,0Fh ; setup ACERL to configure pins AN0~AN3 mov ACERL,a 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 : Rev.1.60 102 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 : mov a,ADRL mov adrl_buffer,a mov a,ADRH mov adrh_buffer,a : : EXIT_INT_ISR: mov a,status_stack mov STATUS,a mov a, acc_stack reti Rev.1.60 ; read low byte conversion result value ; save result to user defined register ; read high byte conversion result value ; save result to user defined register ; restore STATUS from user defined memory ; restore ACC from user defined memory 103 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 比较器 该系列芯片中含有一个独立的模拟比较器。它们具有暂停、极性选择、迟滞等功能,可通过寄 存器进行灵活配置。比较器的引脚与普通 I/O 引脚共享,当比较器功能未使用时,此引脚可做普通 引脚使用而不浪费 I/O 资源。 比较器 比较器操作 此系列单片机包含一个比较器功能,用于比较两个模拟电压,基于它们的差值上提供一个输出。 控制寄存器 CPC 可分别控制相应的内部比较器。比较器的输出可由寄存器的一位记录,并且在共用 的 I/O 口上输出。此外,比较器功能有输出极性,迟滞功能和暂停控制。 当比较器使能时,连接到与比较器共用的输入引脚的上拉电阻将自动失效。当比较器输入接近 其切换电压时,由于输入信号上升或下降速度较慢,比较器输出端可能会产生一些伪输出信号。通 过选择迟滞功能提供少量正反馈给比较器可使此种情况的发生率降至最低。理想情况下正负输入信 号在同一个电压点时比较器将发生开关动作,但是不可避免的输入失调电压会导致情况不确定。若 迟滞功能使能,也可增加切换偏差值。 比较器寄存器 与比较器工作相关的有一个寄存器,即 CPC 寄存器。  CPC 寄存器 Bit 7 CSEL Name R/W R/W POR 1 Bit 7 Bit 6 Bit 5 Bit 4 Rev.1.60 6 CEN R/W 0 5 CPOL R/W 0 4 COUT R 0 3 COS R/W 0 2 — — — 1 — — — 0 CHYEN R/W 1 CSEL:比较器引脚或 I/O 引脚选择位 0:输入/输出引脚 1:比较器引脚 此位为比较器引脚或输入/输出引脚选择位。为高时,两个比较器输入引脚使能。此时,这两个引脚的 输入/输出功能失效,任何与比较器共用引脚的上拉电阻配置选项将自动失效。 CEN:比较器开/关控制位 0:关闭 1:开启 此位为比较器开/关控制位。为“0”时,比较器关闭,即使其引脚上加有模拟电压也不会产生功耗。对 功耗要求严格的应用中,当比较器未使用或单片机进入休眠或空闲模式之前,此位应清零。 CPOL:比较器输出极性位 0:输出同相 1:输出反相 此位决定比较器极性。为“0”时,COUT 位与比较器输出条件同相;为“1”时,COUT 位与比较器输 出条件反相。 COUT:比较器输出位 CPOL=0 0: C+ < C1: C+ > CCPOL=1 0: C+ > C1: C+ < C此位为比较器输出位。此位的极性由比较器输入电压和 CPOL 位的状态决定。 104 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 3 Bit 2~1 Bit 0 COS:输出路径选择位 0:CX 引脚 1:内部使用 此位为比较器输出路径选择控制位。当此位为“0”且 CSEL 位为“1”时,比较器输出连接到外部 CX 引脚。当此位为“1”或 CSEL 位为“0”时,比较器输出信号仅供单片机内部使用,且共用输出引脚 作为普通输入/输出引脚使用。 未使用,读为“0” CHYEN:迟滞控制位 0:关闭 1:开启 此位为迟滞控制位。为“1”时,比较器有一定量迟滞,具体见比较器电气特性表。滞后产生的正反馈 将减少比较器门槛附近的伪开关效应的影响。 比较器中断 比较器有自己的中断功能。当状态改变时,其中断标志将会置位,若应答中断使能位被置位, 系统将跳转至相应的中断向量中执行。注意,发生状态改变的是 COUT 位而不是产生中断的输出脚。 单片机处于休眠或空闲模式且比较器使能时,若为外部输入线导致比较器输出状态发生的改变,则 由此产生的中断标志也可产生一个唤醒动作。若除能唤醒功能,进入休眠或空闲模式前中断标志应 先置为高。 编程注意事项 若比较器使能,当单片机进入休眠或空闲模式时其仍保持有效并会有一定的耗电,用户可考虑 在进入休眠或空闲模式前先关闭比较器。 由于比较器引脚与普通输入/输出脚共用,若比较器功能使能时,这些引脚的输入/输出寄存器将 读为“0”(端口控制寄存器读为“1”)或读为端口数据寄存器的值(端口控制寄存器读为“0” ) 。 Rev.1.60 105 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 中断 中断是单片机一个重要功能。当外部事件或内部功能如定时器模块或 A/D 转换器有效,并且产 生中断时,系统会暂时中止当前的程序而转到执行相对应的中断服务程序。此系列单片机提供多个 外部中断和内部中断功能,外部中断由 INT 引脚动作产生,而内部中断由各种内部功能,如定时器 模块、比较器、时基、LVD、EEPROM 和 A/D 转换器等产生。 中断寄存器 中断控制基本上是在一定单片机条件发生时设置请求标志位,应用程序中中断使能位的设置是 通过位于专用数据存储器中的一系列寄存器控制的。寄存器的数量由所选单片机的型号决定,但总 的分为三类。第一类是 INTC0~INTC2 寄存器,用于设置基本的中断;第二类是 MFI0~MFI2 寄存器, 用于设置多功能中断;最后一种有 INTEG 寄存器,用于设置外部中断边沿触发类型。 寄存器中含有中断控制位和中断请求标志位。中断控制位用于使能或除能各种中断,中断请求 标志位用于存放当前中断请求的状态。它们都按照特定的模式命名,前面表示中断类型的缩写,紧 接着的字母“E”代表使能/除能位,“F”代表请求标志位。 功能 总中断 INT 脚 比较器 A/D 转换器 多功能 时基 LVD EEPROM TM 使能位 请求标志 注释 EMI — — INTE INTF — CPE CPF — ADE ADF — MFnE MFnF = n 0~2 TBnE TBnF n=0 或 1 LVE LVF — DEE DEF — TnPE TnPF n=0~2 TnAE TnAF TnBE TnBF = n 2 中断寄存器位命名模式  中断寄存器内容  HT66F03 Name INTEG INTC0 INTC1 INTC2 MFI0 MFI1* MFI2 7 — — TB0F — T1AF 6 — MF0F ADF — T1PF 5 — CPF MF2F — T0AF 4 — INTF — TB1F T0PF — — DEF LVF Bit 3 — MF0E TB0E — T1AE 保留 — 2 — CPE ADE — T1PE 1 INTS1 INTE MF2E — T0AE 0 INTS0 EMI — TB1E T0PE — DEE LVE 注:*MFI1 寄存器为扩展功能保留之用。建议不要访问 MFI1 寄存器且保持其初始化的设置以防止发生无法预期的 情况。 Rev.1.60 106 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  HT66F04 Name INTEG INTC0 INTC1 INTC2 MFI0 MFI1 MFI2  7 — — TB0F — T1AF — — 6 — MF0F ADF — T1PF T2BF — 5 — CPF MF2F — T0AF T2AF DEF 4 — INTF MF1F TB1F T0PF T2PF LVF 7 — — TB0F — T1AF 6 — MF0F — — T1PF 5 — CPF MF2F — T0AF 4 — INTF — TB1F T0PF — — DEF LVF HT68F03/ HT68F04 Name INTEG INTC0 INTC1 INTC2 MFI0 MFI1* MFI2 Bit 3 — MF0E TB0E — T1AE — — 2 — CPE ADE — T1PE T2BE — 1 INTS1 INTE MF2E — T0AE T2AE DEE 0 INTS0 EMI MF1E TB1E T0PE T2PE LVE 3 — MF0E TB0E — T1AE 保留 — 2 — CPE — — T1PE 1 INTS1 INTE MF2E — T0AE 0 INTS0 EMI — TB1E T0PE — DEE LVE Bit 注:*MFI1 寄存器为扩展功能保留之用。建议不要访问 MFI1 寄存器且保持其初始化的设置以防止发生无法预期的 情况。  INTEG 寄存器 Bit 7 — Name — R/W — POR Bit 7~2 Bit 1~0 Bit 5 Bit 4 Bit 3 Rev.1.60 5 — — — 4 — — — 3 — — — 2 — — — 1 INTS1 R/W 0 0 INTS0 R/W 0 3 MF0E R/W 0 2 CPE R/W 0 1 INTE R/W 0 0 EMI R/W 0 未使用,读为“0” INTS1,INTS0:INT 脚中断边沿控制位 00:除能 01:上升沿 10:下降沿 11:双沿  INTC0 寄存器 Bit 7 — Name — R/W — POR Bit 7 Bit 6 6 — — — 6 MF0F R/W 0 5 CPF R/W 0 4 INTF R/W 0 未使用,读为“0” MF0F:多功能中断 0 请求标志位 0:无请求 1:中断请求 CPF:比较器中断请求标志位 0:无请求 1:中断请求 INTF:INT 中断请求标志位 0:无请求 1:中断请求 MF0E:多功能中断 0 控制位 0:除能 107 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 2 Bit 1 Bit 0 1:使能 CPE:比较器中断控制位 0:除能 1:使能 INTE:INT 中断控制位 0:除能 1:使能 EMI:总中断控制位 0:除能 1:使能  INTC1 寄存器  HT66F03 Bit 7 TB0F Name R/W R/W 0 POR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0  Bit 6 Bit 5 Bit 4 Bit 3 Rev.1.60 5 MF2F R/W 0 4 — — — 3 TB0E R/W 0 2 ADE R/W 0 1 MF2E R/W 0 0 — — — 4 MF1F R/W 0 3 TB0E R/W 0 2 ADE R/W 0 1 MF2E R/W 0 0 MF1F R/W 0 TB0F:时基 0 中断请求标志位 0:无请求 1:中断请求 ADF:A/D 转换器请求标志位 0:无请求 1:中断请求 MF2F:多功能中断 2 请求标志位 0:无请求 1:中断请求 保留位,未使用,读为“0” TB0E:时基 0 中断控制位 0:除能 1:使能 ADE:A/D 转换器中断控制位 0:除能 1:使能 MF2E:多功能中断 2 控制位 0:除能 1:使能 保留位,未使用,读为“0” HT66F04 Bit 7 TB0F Name R/W R/W 0 POR Bit 7 6 ADF R/W 0 6 ADF R/W 0 5 MF2F R/W 0 TB0F:时基 0 中断请求标志位 0:无请求 1:中断请求 ADF:A/D 转换器请求标志位 0:无请求 1:中断请求 MF2F:多功能中断 2 请求标志位 0:无请求 1:中断请求 MF1F:多功能中断 1 请求标志位 0:无请求 1:中断请求 TB0E:时基 0 中断控制位 108 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 2 Bit 1 Bit 0  0:除能 1:使能 ADE:A/D 转换器中断控制位 0:除能 1:使能 MF2E:多功能中断 2 控制位 0:除能 1:使能 MF1E:多功能中断 1 控制位 0:除能 1:使能 HT68F03 /HT68F04 Bit 7 6 TB0F — Name R/W — R/W 0 — POR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bit 3~1 Bit 0 Rev.1.60 3 TB0E R/W 0 2 — — — 1 MF2E R/W 0 0 — — — 6 — — — 5 — — — 4 TB1F R/W 0 3 — — — 2 — — — 1 — — — 0 TB1E R/W 0 4 T0PF R/W 0 3 T1AE R/W 0 2 T1PE R/W 0 1 T0AE R/W 0 0 T0PE R/W 0 未使用,读为“0” TB1F:时基 1 中断请求标志位 0:无请求 1:中断请求 未使用,读为“0” TB1E:时基 1 中断控制位 0:除能 1:使能  MFI0 寄存器 Bit 7 T1AF Name R/W R/W 0 POR Bit 7 4 — — — TB0F:时基 0 中断请求标志位 0:无请求 1:中断请求 未使用,读为“0” MF2F:多功能中断 2 请求标志位 0:无请求 1:中断请求 保留位,未使用,读为“0” TB0E:时基 0 中断控制位 0:除能 1:使能 未使用,读为“0” MF2E:多功能中断 2 控制位 0:除能 1:使能 保留位,未使用,读为“0”  INTC2 寄存器 Bit 7 — Name — R/W — POR Bit 7~5 Bit 4 5 MF2F R/W 0 6 T1PF R/W 0 5 T0AF R/W 0 T1AF:TM1 比较器 A 匹配中断请求标志位 109 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0:无请求 1:中断请求 T1PF:TM1 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 T0AF:TM0 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T0PF:TM0 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 T1AE:TM1 比较器 A 匹配中断控制位 0:除能 1:使能 T1PE:TM1 比较器 P 匹配中断控制位 0:除能 1:使能 T0AE:TM0 比较器 A 匹配中断控制位 0:除能 1:使能 T0PE:TM0 比较器 P 匹配中断控制位 0:除能 1:使能  MFI1 寄存器 -- HT66F04 Bit 7 6 — T2BF Name — R/W R/W — 0 POR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Rev.1.60 5 T2AF R/W 0 4 T2PF R/W 0 3 — — — 2 T2BE R/W 0 1 T2AE R/W 0 0 T2PE R/W 0 未使用,读为“0” T2BF:TM2 比较器 B 匹配中断请求标志位 0:无请求 1:中断请求 T2AF:TM2 比较器 A 匹配中断请求标志位 0:无请求 1:中断请求 T2PF:TM2 比较器 P 匹配中断请求标志位 0:无请求 1:中断请求 未使用,读为“0” T2BE:TM2 比较器 B 匹配中断控制位 0:除能 1:使能 T2AE:TM2 比较器 A 匹配中断控制位 0:除能 1:使能 T2PE:TM2 比较器 P 匹配中断控制位 0:除能 1:使能 110 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04  MFI2 寄存器 Bit 7 — Name — R/W — POR Bit 7~6 Bit 5 Bit 4 Bit 3~2 Bit 1 Bit 0 6 — — — 5 DEF R/W 0 4 LVF R/W 0 3 — — — 2 — — — 1 DEE R/W 0 0 LVE R/W 0 未使用,读为“0” DEF:数据 EEPROM 中断请求标志位 0:无请求 1:中断请求 LVF:LVD 中断请求标志位 0:无请求 未使用,读为“0” DEE:数据 EEPROM 中断控制位 0:除能 1:使能 LVE:LVD 中断控制位 0:除能 1:使能 中断操作 若中断事件条件产生,如一个 TM 比较器 P、比较器 A 或比较器 B 匹配或 A/D 转换结束等等, 相关中断请求标志将置起。中断标志产生后程序是否会跳转至相关中断向量执行是由中断使能位的 条件决定的。若使能位为“1”,程序将跳至相关中断向量中执行;若使能位为“0”,即使中断请求 标志置起中断也不会发生,程序也不会跳转至相关中断向量执行。若总中断使能位为“0”,所有中 断都将除能。 当中断发生时,下条指令的地址将被压入堆栈。相应的中断向量地址加载至 PC 中。系统将从 此向量取下条指令。中断向量处通常为跳转指令,以跳转到相应的中断服务程序。中断服务程序必 须以“RETI”指令返回至主程序,以继续执行原来的程序。 各个中断使能位以及相应的请求标志位,以优先级的次序显示在下图。一些中断源有自己的向 量,但是有些中断却共用多功能中断向量。一旦中断子程序被响应,系统将自动清除 EMI 位,所有 其它的中断将被屏蔽,这个方式可以防止任何进一步的中断嵌套。其它中断请求可能发生在此期间, 虽然中断不会立即响应,但是中断请求标志位会被记录。 如果某个中断服务子程序正在执行时,有另一个中断要求立即响应,那么 EMI 位应在程序进入 中断子程序后置位,以允许此中断嵌套。如果堆栈已满,即使此中断使能,中断请求也不会被响应, 直到 SP 减少为止。如果要求立刻动作,则堆栈必须避免成为储满状态。请求同时发生时,执行优先 级如下流程图所示。所有被置起的中断请求标志都可把单片机从休眠或空闲模式中唤醒,若要防止 唤醒动作发生,在单片机进入休眠或空闲模式前应将相应的标志置起。 Rev.1.60 111 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 中断结构 -- HT66F03 Rev.1.60 112 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 中断结构 -- HT66F04 中断结构 -- HT68F03/ HT68F04 Rev.1.60 113 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 外部中断 通过 INT 引脚上的信号变化可控制外部中断。当触发沿选择位设置好触发类型,INT 引脚的状 态发生变化,外部中断请求标志 INTF 被置位时外部中断请求产生。若要跳转到相应中断向量地址, 总中断控制位 EMI 和相应中断使能位 INTE 需先被置位。此外,必须使用 INTEG 寄存器使能外部中 断功能并选择触发沿类型。外部中断引脚和普通 I/O 口共用,如果相应寄存器中的中断使能位被置 位,此引脚将被作为外部中断脚使用。此时该引脚必须通过设置控制寄存器,将该引脚设置为输入 口。当中断使能,堆栈未满并且外部中断脚状态改变,将调用外部中断向量子程序。当响应外部中 断服务子程序时,中断请求标志位 INTF 会自动复位且 EMI 位会被清零以除能其它中断。注意, 即使此引脚被用作外部中断输入,其配置选项中的上拉电阻仍保持有效。寄存器 INTEG 被用来选择 有效的边沿类型,来触发外部中断。可以选择上升沿还是下降沿或双沿触发都产生外部中断。注意 INTEG 也可以用来除能外部中断功能。 比较器中断 比较器中断由内部比较器控制。当比较器输出状态改变,比较器中断请求标志 CPF 被置位,比 较器中断请求产生。若要跳转到相应中断向量地址,总中断控制位 EMI 和比较器中断使能位 CPE 需先被置位。当中断使能,堆栈未满并且比较器输入产生一个比较器输出变化时,将调用比较器中 断向量子程序。当响应中断服务子程序时,比较器中断请求标志位会自动复位且 EMI 位会被清零 以除能其它中断。 多功能中断 此系列单片机中有多达三种多功能中断,与其它中断不同,它没有独立源,但由其它现有的中 断源构成,即 TM 中断,LVD 中断和 EEPROM 中断。 当多功能中断中任何一种中断请求标志 MFnF 被置位,多功能中断请求产生。当中断使能,堆 栈未满,包括在多功能中断中的任意一个中断发生时,将调用多功能中断向量中的一个子程序。当 响应中断服务子程序时, 相关的多功能请求标志位会自动复位且 EMI 位会自动清零以除能其它中断。 但必须注意的是,在中断响应时,虽然多功能中断标志会自动复位,但多功能中断源的请求标 志位,即 TM 中断,LVD 中断和 EEPROM 中断的请求标志位不会自动复位,必须由应用程序清零。 A/D转换器中断 A/D 转换器中断由 A/D 转换动作的结束来控制。当 A/D 转换器中断请求标志被置位,即 A/D 转 换过程完成时,中断请求发生。当总中断使能位 EMI 和 A/D 中断使能位 ADE 被置位,允许程序跳 转到各自的中断向量地址。当中断使能,堆栈未满且 A/D 转换动作结束时,将调用它们各自的中断 向量子程序。当响应中断服务子程序时,相应的中断请求标志位 ADF 会自动清零。EMI 位也会被清 零以除能其它中断。 时基中断 时基中断提供一个固定周期的中断信号,由各自的定时器功能产生溢出信号控制。当各自的中 断请求标志 TB0F 或 TB1F 被置位时,中断请求发生。当总中断使能位 EMI 和时基使能位 TB0E 或 TB1E 被置位,允许程序跳转到各自的中断向量地址。当中断使能,堆栈未满且时基溢出时,将调用 它们各自的中断向量子程序。当响应中断服务子程序时,相应的中断请求标志位 TB0F 或 TB1F 会自 动复位且 EMI 位会被清零以除能其它中断。 时基中断的目的是提供一个固定周期的中断信号,时钟源来自内部时钟源f TB 。f TB 输入时钟首先 经过分频器,分频率由程序设置TBC寄存器相关位获取合适的分频值以提供更长的时基中断周期。 控制时基中断频率f TB 的时钟源有几种,如在系统工作模式章节所示。  TBC 寄存器 Bit 7 TBON Name R/W R/W 0 POR Rev.1.60 6 TBCK R/W 0 5 TB11 R/W 1 4 TB10 R/W 1 114 3 LXTLP R/W 0 2 TB02 R/W 1 1 TB01 R/W 1 0 TB00 R/W 1 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Bit 7 Bit 6 Bit 5~4 Bit 3 Bit 2~0 TBON:TB0 和 TB1 控制位 0:除能 1:使能 TBCK:选择f TB 时钟位 0:f TBC 1:f SYS /4 TB11~TB10:选择时基 1 溢出周期位 00:4096/f TB 01:8192/f TB 10:16384/f TB 11:32768/f TB LXTLP:LXT 低功耗控制位 0:除能 1:使能 TB02~TB00:选择时基 0 溢出周期位 000:256/f TB 001:512/f TB 010:1024/f TB 011:2048/f TB 100:4096/f TB 101:8192/f TB 110:16384/f TB 111:32768/f TB 时基中断 EEPROM中断 EEPROM 中断也属于多功能中断。当写或读周期结束,EEPROM 中断请求标志 DEF 被置位, EEPROM 中断请求产生。若要程序跳转到相应中断向量地址,总中断控制位 EMI、EEPROM 中断 使能位 DEE 和相应多功能中断使能位需先被置位。当中断使能,堆栈未满且 EEPROM 写或读周期 结束时,可跳转至相关多功能中断向量子程序中执行。当 EEPROM 中断响应,EMI 将被自动清零以 除能其它中断,多功能中断请求标志也可自动清除,但 DEF 标志需在应用程序中手动清除。 LVD中断 LVD 中断也属于多功能中断。当低电压检测功能检测到一个低电压时,LVD 中断请求标志 LVF 被置位,LVD 中断请求产生。若要程序跳转到相应中断向量地址,总中断控制位 EMI、低电压中断 使能位 LVE 和相应多功能中断使能位需先被置位。当中断使能,堆栈未满且低电压条件发生时,可 跳转至相关多功能中断向量子程序中执行。当低电压中断响应,EMI 将被自动清零以除能其它中断, 多功能中断请求标志也可自动清除,但 LVF 标志需在应用程序中手动清除。 Rev.1.60 115 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 TM中断 简易型和标准型 TM 各有两个中断,增强型 TM 有三个中断。所有的 TM 中断也属于多功能中 断。简易型和标准型 TM 各有两个中断请求标志位 TnPF、TnAF 及两个使能位 TnPE、TnAE。增强 型 TM 有三个中断请求标志 T2PF、T2AF、T2BF 及三个使能位 T2PE、T2AE、T2BE。当 TM 比较 器 P、A、B 匹配情况发生时,任意 TM 中断请求标志被置位,TM 中断请求产生。 若要程序跳转到相应中断向量地址,总中断控制位 EMI、相应 TM 中断使能位和相关多功能中 断使能位 MFnE 需先被置位。当中断使能,堆栈未满且 TM 比较器匹配情况发生时,可跳转至相关 多功能中断向量子程序中执行。当 TM 中断响应,EMI 将被自动清零以除能其它中断,相关 MFnF 标志也可自动清除,但 TM 中断请求标志需在应用程序中手动清除。 中断唤醒功能 每个中断都具有将处于休眠或空闲模式的单片机唤醒的能力。当中断请求标志由低到高转换时 唤醒动作产生,其与中断是否使能无关。因此,尽管单片机处于休眠或空闲模式且系统振荡器停止 工作,如有外部中断脚上产生外部边沿跳变,低电压或比较器输出改变都可能导致其相应的中断标 志被置位,由此产生中断,因此必须注意避免伪唤醒情况的发生。若中断唤醒功能被除能,单片机 进入休眠或空闲模式前相应中断请求标志应被置起。中断唤醒功能不受中断使能位的影响。 编程注意事项 通过禁止相关中断使能位,可以屏蔽中断请求,然而,一旦中断请求标志位被设定,它们会被 保留在中断控制寄存器内,直到相应的中断服务子程序执行或请求标志位被软件指令清除。 多功能中断中所含中断相应程序执行时,多功能中断请求标志 MFnF 可以自动清零,但各自的 请求标志需在应用程序中手动清除。 建议在中断服务子程序中不要使用“CALL 子程序”指令。中断通常发生在不可预料的情况或 是需要立刻执行的某些应用。假如只剩下一层堆栈且没有控制好中断,当“CALL 子程序”在中断 服务子程序中执行时,将破坏原来的控制序列。 所有中断在休眠或空闲模式下都具有唤醒功能,当中断请求标志发生由低到高的转变时都可产 生唤醒功能。若要避免相应中断产生唤醒动作,在单片机进入休眠或空闲模式前需先将相应请求标 志置为高。 当进入中断服务程序,系统仅将程序计数器的内容压入堆栈,如果中断服务程序会改变状态寄 存器或其它的寄存器的内容而破坏控制流程,应事先将这些数据保存起来。 若从中断子程序中返回可执行 RET 或 RETI 指令。除了能返回至主程序外,RETI 指令还能自动 设置 EMI 位为高,允许进一步中断。RET 指令只能返回至主程序,清除 EMI 位,除能进一步中断。 Rev.1.60 116 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 低电压检测-LVD 此系列单片机都具有低电压检测功能,即LVD。该功能使能用于监测电源电压V DD ,若电源电 压低于一定值可提供一个警告信号。此功能在电池类产品中非常有用,在电池电压较低时产生警告 信号。低电压检测也可产生中断信号。 LVD寄存器 LVDO 低电压检测功能由LVDC寄存器控制。 VLVD2~VLVD0 位用于选择 8 个固定的电压参考点。 位被置位时低电压情况发生,若LVDO位为低表明V DD 电压工作在当前所设置低电压水平值之上。 LVDEN位用于控制低电压检测功能的开启/关闭,设置此位为高使能此功能,反之,关闭内部低电压 检测电路。低电压检测会有一定的功耗,在不使用时可考虑关闭此功能,此举在功耗要求严格的电 池供电应用中值得考虑。  LVDC 寄存器 Bit 7 — Name — R/W — POR Bit 7~6 Bit 5 Bit 4 Bit 3 Bit 2~0 6 — — — 5 LVDO R 0 4 LVDEN R/W 0 3 — — — 2 VLVD2 R/W 0 1 VLVD1 R/W 0 0 VLVD0 R/W 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 LVD操作 通过比较电源电压V DD 与存储在LVDC寄存器中的预置电压值的结果,低电压检测功能工作。其 设置的范围为 2.0V~4.4V。当电源电压V DD 低于预置电压值时,LVDO位被置为高,表明低电压产生。 低电压检测功能由一个自动使能的参考电压提供。若LVDEN位为高,当单片机掉电时低电压检测器 保持有效状态。低电压检测器使能后,读取LVDO位前,电路稳定需要一定的延时t LVDS 。注意,V DD 电压可能上升或下降比较缓慢,在V LVD 电压值附近时,LVDO位可能有多种变化。 V D D V L V D L V D E N L V D O tL Rev.1.60 V D S LVD 操作 117 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 低电压检测器也有自己的中断功能,也是属于多功能中断的一种,它是除了轮询LVDO位之外的 另一种检测低电压的方法。中断条件产生置位LVDO并延时t LVD 后,中断产生。若LVDEN位为高,当 单片机掉电时低电压检测器保持有效状态。此种情况下,若V DD 降至小于LVD预置电压值时,中断 请求标志位LVF 将被置位,中断产生,单片机将被从休眠或空闲模式中唤醒。若不要求低电压检测 的唤醒功能使能,在单片机进入休眠或空闲模式前应将LVF标志置为高。 配置选项 配置选项在烧写程序时写入芯片。通过HT-IDE 的软件开发环境,使用者在开发过程中可以选 择配置选项。当配置选项烧入单片机后,无法再通过应用程序修改。所有位必须按系统的需要定义, 具体内容可参考下表: 序号 振荡器选项 选项 高/低速振荡器类型选择 – f OSC : 1. HXT+LIRC 1 2. ERC+LIRC 3. HIRC +LIRC 4. HIRC+LXT WDT时钟选择 -- f S : 2 1. f SUB 2. f SYS /4 HIRC 频率选择: 1. 4MHz 3 2. 8MHz 3. 12MHz f SUB 振荡器选择: 4 1. LIRC 2. LXT f TBC 振荡器选择: 5 1. LIRC 2. LXT 注:若高速/低速振荡器未设置为HIRC+LXT模式时,需选择LIRC作为f SUB 或f TBC 的时钟源。 复位脚选项 ———— 4 PA7/RES脚选项: ———— 1. RES脚 2. I/O 脚 看门狗选项 5 6 看门狗定时器功能: 1. 使能 2. 除能 清看门狗指令选择: 1. 1 条指令 2. 2 条指令 LVR 选项 7 8 Rev.1.60 LVR 功能: 1. 使能 2. 除能 LVR 电压选择: 1. 2.10V 118 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 序号 选项 2. 2.55V 3. 3.15V 4. 4.20V 应用电路 HT66F03/ HT66F04 注:“” 表示建议加上此元件以加强静电保护。 “”表示建议在电源有较强干扰场合加上此元件。 HT68F03/ HT68F04 注:“” 表示建议加上此元件以加强静电保护。 “”表示建议在电源有较强干扰场合加上此元件。 Rev.1.60 119 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 指令集 简介 任何单片机成功运作的核心在于它的指令集,此指令集为一组程序指令码,用来指导单片机如 何去执行指定的工作。在 HOLTEK 单片机中,提供了丰富且灵活的指令,共超过六十条,程序设计 者可以事半功倍地实现他们的应用。 为了更加容易理解各种各样的指令码,接下来按功能分组介绍它们。 指令周期 大部分的操作均只需要一个指令周期来执行。分支、调用或查表则需要两个指令周期。一个指 令周期相当于四个系统时钟周期,因此如果在 8MHz 的系统时钟振荡器下,大部分的操作将在 0.5s 中执行完成,而分支或调用操作则将在 1s 中执行完成。虽然需要两个指令周期的指令通常指的是 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 提供了向 左或向右移动一位的方法。不同的移位指令可满足不同的应用需要。移位指令常用于串行端口的程 序应用,数据可从内部寄存器转移至进位标志位,而此位则可被检验,移位运算还可应用在乘法与 除法的运算组成中。 分支和控制转换 程序分支是采取使用 JMP 指令跳转至指定地址或使用 CALL 指令调用子程序的形式,两者之不 同在于当子程序被执行完毕后,程序必须马上返回原来的地址。这个动作是由放置在子程序里的返 回指令 RET 来实现,它可使程序跳回 CALL 指令之后的地址。在 JMP 指令中,程序则只是跳到一 个指定的地址而已,并不需如 CALL 指令般跳回。一个非常有用的分支指令是条件跳转,跳转条件 是由数据存储器或指定位来加以决定。遵循跳转条件,程序将继续执行下一条指令或略过且跳转至 接下来的指令。这些分支指令是程序走向的关键,跳转条件可能是外部开关输入,或是内部数据位 的值。 Rev.1.60 120 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 位运算 提供数据存储器中单个位的运算指令是盛群单片机的特性之一。这特性对于输出端口位的设置 尤其有用,其中个别的位或端口的引脚可以使用“SET [m].i”或“CLR [m].i”指令来设定其为高位 或低位。如果没有这特性,程序设计师必须先读入输出口的 8 位数据,处理这些数据,然后再输出 正确的新数据。这种读入-修改-写出的过程现在则被位运算指令所取代。 查表运算 数据的储存通常由寄存器完成,然而当处理大量固定的数据时,它的存储量常常造成对个别存 储器的不便。为了改善此问题,盛群单片机允许在程序存储器中建立一个表格作为数据可直接存储 的区域,只需要一组简易的指令即可对数据进行查表。 其它运算 除了上述功能指令外,其它指令还包括用于省电的“HALT”指令和使程序在极端电压或电磁环 境下仍能正常工作的看门狗定时器控制指令。这些指令的使用则请查阅相关的章节。 Rev.1.60 121 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 指令集概要 下表中说明了按功能分类的指令集,用户可以将该表作为基本的指令参考。 惯例 x:立即数 A:累加器 m:数据存储器地址 i:第 0~7 位 指令 周期 影响标志位 ACC 与数据存储器相加,结果放入 ACC ACC 与数据存储器相加,结果放入数据存储器 ACC 与立即数相加,结果放入 ACC ACC 与数据存储器、进位标志相加,结果放入 ACC ACC 与数据存储器、进位标志相加,结果放入数据存储器 ACC 与立即数相减,结果放入 ACC ACC 与数据存储器相减,结果放入 ACC ACC 与数据存储器相减,结果放入数据存储器 ACC 与数据存储器、进位标志的反相减,结果放入 ACC ACC 与数据存储器、进位标志相减,结果放入数据存储器 将加法运算中放入 ACC 的值调整为十进制数,并将结果放入数 据存储器 1 1注 1 1 1注 1 1 1注 1 1注 Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV Z,C,AC,OV 1 注 C ACC 与数据存储器做“与”运算,结果放入 ACC ACC 与数据存储器做“或”运算,结果放入 ACC ACC 与数据存储器做“异或”运算,结果放入 ACC ACC 与数据存储器做“与”运算,结果放入数据存储器 ACC 与数据存储器做“或”运算,结果放入数据存储器 ACC 与数据存储器做“异或”运算,结果放入数据存储器 ACC 与立即数做“与”运算,结果放入 ACC ACC 与立即数做“或”运算,结果放入 ACC ACC 与立即数做“异或”运算,结果放入 ACC 对数据存储器取反,结果放入数据存储器 对数据存储器取反,结果放入 ACC 1 1 1 1注 1注 1注 1 1 1 1注 1 Z Z Z Z Z Z Z Z Z Z Z 递增数据存储器,结果放入 ACC 递增数据存储器,结果放入数据存储器 递减数据存储器,结果放入 ACC 递减数据存储器,结果放入数据存储器 1 1注 1 1注 Z Z Z Z 数据存储器右移一位,结果放入 ACC 数据存储器右移一位,结果放入数据存储器 带进位将数据存储器右移一位,结果放入 ACC 带进位将数据存储器右移一位,结果放入数据存储器 数据存储器左移一位,结果放入 ACC 数据存储器左移一位,结果放入数据存储器 带进位将数据存储器左移一位,结果放入 ACC 带进位将数据存储器左移一位,结果放入数据存储器 1 1注 1 1注 1 1注 1 1注 无 无 C C 无 无 C C 将数据存储器送至 ACC 将 ACC 送至数据存储器 将立即数送至 ACC 1 1注 1 无 无 无 助记符 算术运算 ADD ADDM ADD ADC ADCM SUB SUB SUBM SBC SBCM DAA A,[m] A,[m] A, x A,[m] A,[m] A, x A,[m] A,[m] A,[m] A,[m] [m] 逻辑运算 AND A,[m] OR A,[m] XOR A,[m] ANDM A,[m] ORM A,[m] XORM A,[m] AND A, x OR A, x XOR A, x CPL [m] CPLA [m] 递增和递减 INCA [m] INC [m] DECA [m] DEC [m] 移位 RRA [m] RR [m] RRCA [m] RRC [m] RLA [m] RL [m] RLCA [m] RLC [m] 数据传送 MOV A,[m] MOV [m],A MOV A, x 位运算 Rev.1.60 addr:程序存储器地址 说明 122 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 助记符 说明 指令 周期 1注 1注 影响标志位 CLR SET 转移 JMP SZ SZA SZ SNZ SIZ SDZ SIZA [m].i [m].i 清除数据存储器的位 置位数据存储器的位 addr [m] [m] [m].i [m].i [m] [m] [m] 2 1注 1注 1注 1注 1注 1注 无 无 无 无 无 无 无 1注 无 SDZA [m] 无条件跳转 如果数据存储器为零,则跳过下一条指令 数据存储器送至 ACC,如果内容为零,则跳过下一条指令 如果数据存储器的第 i 位为零,则跳过下一条指令 如果数据存储器的第 i 位不为零,则跳过下一条指令 递增数据存储器,如果结果为零,则跳过下一条指令 递减数据存储器,如果结果为零,则跳过下一条指令 递增数据存储器,将结果放入 ACC,如果结果为零,则跳过下 一条指令 递减数据存储器,将结果放入 ACC,如果结果为零,则跳过下 一条指令 子程序调用 从子程序返回 从子程序返回,并将立即数放入 ACC 从中断返回 1注 无 2 2 2 2 无 无 无 无 读取当前页的 ROM 内容,并送至数据存储器和 TBLH 读取最后页的 ROM 内容,并送至数据存储器和 TBLH 2注 2注 无 无 1注 1注 1 无 无 无 TO,PDF 1 1 1注 1 1 TO,PDF TO,PDF 无 无 TO,PDF CALL RET RET RETI 查表 addr A, x TABRD [m] TABRDL [m] 其它指令 NOP CLR [m] SET [m] CLR WDT CLR WDT1 CLR WDT2 SWAP [m] SWAPA [m] HALT 空指令 清除数据存储器 置位数据存储器 清除看门狗定时器 预清除看门狗定时器 预清除看门狗定时器 交换数据存储器的高低字节,结果放入数据存储器 交换数据存储器的高低字节,结果放入 ACC 进入暂停模式 1 无 无 注:1、对跳转指令而言,如果比较的结果牵涉到跳转即需 2 个周期,如果没有发生跳转,则只需一个周期。 2、任何指令若要改变 PCL 的内容将需要 2 个周期来执行。 3、对于“CLR WDT1”或“CLR WDT2”指令而言,TO 和 PDF 标志位也许会受执行结果影响,“CLR WDT1” 和“CLR WDT2”被连续地执行后,TO 和 PDF 标志位会被清除,否则 TO 和 PDF 标志位保持不变。 指令定义 ADC A, [m] 说明: 运算过程: 影响标志位: Add data memory and carry to the accumulator 将指定的数据存储器、累加器内容以及进位标志相加,结果存放到累加器。 ACCACC+[m]+C OV、Z、AC、C ADCM 说明: 运算过程: 影响标志位: Add the accumulator and carry to the accumulator 将指定的数据存储器、累加器内容和进位标志位相加,结果存放到指定的数据 存储器。 [m]ACC+[m]+C OV、Z、AC、C ADD 说明: Add data memory to the accumulator 将指定的数据存储器和累加器内容相加,结果存放到累加器。 Rev.1.60 A, [m] A, [m] 123 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 运算过程: 影响标志位: ACCACC+[m] OV、Z、AC、C ADD A, x 说明: 运算过程: 影响标志位: Add immediate data to the accumulator 将累加器和立即数相加,结果存放到累加器。 ACCACC+x OV、Z、AC、C ADDM A, [m] 说明: 运算过程: 影响标志位: Add the accumulator to the data memory 将指定的数据存储器和累加器内容相加,结果存放到指定的数据存储器。 [m]ACC+[m] OV、Z、AC、C AND A, [m] 说明: 运算过程: 影响标志位: Logical AND accumulator with data memory 将累加器中的数据和指定数据存储器内容做逻辑与,结果存放到累加器。 ACCACC “AND” [m] Z AND Logical AND immediate data to the accumulator A, x 说明: 运算过程: 影响标志位: 将累加器中的数据和立即数做逻辑与,结果存放到累加器。 ACCACC “AND” x Z ANDM A, [m] 说明: 运算过程: 影响标志位: Logical AND data memory with the accumulator 将指定数据存储器内容和累加器中的数据做逻辑与,结果存放到数据存储器。 [m]ACC “AND” [m] Z CALL 说明: Subroutine call 无条件的调用指定地址的子程序,此时程序计数器先加 1 获得下一个要执行的 指令地址并压入堆栈,接着载入指定地址并从新地址执行程序。由于指令需要 额外的运算,所以此指令为 2 个周期。 StackProgram Counter+1 Program Counter  addr 无 addr 运算过程: 影响标志位: CLR [m] 说明: 运算过程: 影响标志位: 无 Clear data memory 将指定数据存储器的内容清零。 [m] 00H CLR [m] .i 说明: 运算过程: 影响标志位: Clear bit of data memory 将指定数据存储器的 i 位内容清零。 [m].i 0 无 CLR WDT 说明: 运算过程: Clear Watchdog Timer WDT 计数器、暂停标志位 PDF 和看门狗溢出标志位 TO 清零。 WDT  00H PDF & TO  0 TO、PDF 影响标志位: Rev.1.60 124 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 CLR 说明: WDT1 运算过程: 影响标志位: CLR 说明: WDT2 Preclear Watchdog Timer PDF 和 TO 标志位都被清 0。必须配合 CLR WDT2 一起使用清除 WDT 计时器。 当程序仅执行 CLR WDT1,而没有执行 CLR WDT2 时,PDF 与 TO 保留原状 态不变。 WDT  00H PDF & TO  0 TO、PDF 影响标志位: Preclear Watchdog Timer PDF 和 TO 标志位都被清 0。必须配合 CLR WDT1 一起使用清除 WDT 计时器。 当程序仅执行 CLR WDT2,而没有执行 CLR WDT1 时,PDF 与 TO 保留原状态 不变。 WDT  00H PDF & TO  0 TO、PDF CPL [m] 说明: 运算过程: 影响标志位: Complement data memory 将指定数据存储器中的每一位取逻辑反,相当于从 1 变 0 或从 0 变 1。 [m]  [ m ] Z CPLA 说明: Complement data memory 将指定数据存储器中的每一位取逻辑反,相当于从 1 变 0 或从 0 变 1,结果被 存放回累加器且数据寄存器的内容保持不变。 ACC  [ m ] Z 运算过程: [m] 运算过程: 影响标志位: DAA 说明: [m] 影响标志位: Decimal-Adjust accumulator for addition 将累加器中的内容转换为BCD(二进制转成十进制)码。如果低四位的值大于 “9”或AC=1,那么BCD调整就执行对原值加“6”,否则原值保持不变;如果 高四位的值大于“9”或C=1,那么BCD调整就执行对原值加“6” 。BCD转换实 质上是根据累加器和标志位执行 00H,06H,60H或 66H的加法运算,结果存放 到数据存储器。只有进位标志位C受影响,用来指示原始BCD的和是否大于 100, 并可以进行双 精度十进制数的加法运算。 [m] ACC+00H 或 [m] ACC+06H [m] ACC+60H 或 [m] ACC+66H C DEC [m] 说明: 运算过程: 影响标志位: Decrement data memory 将指定数据存储器的内容减 1。 [m]  [m]-1 Z DECA 说明: Decrement data memory and place result in the accumulator 将指定数据存储器的内容减 1,把结果存放回累加器并保持指定数据存储器的 内容不变。 ACC  [m]-1 Z 操作: [m] 运算过程: 影响标志位: Rev.1.60 125 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 HALT 说明: 运算过程: 影响标志位: INC [m] 说明: 运算过程: 影响标志位: INCA 说明: [m] 运算过程: 影响标志位: JMP 说明: addr Enter power down mode 此指令终止程序执行并关掉系统时钟,RAM 和寄存器的内容保持原状态,WDT 计数器和分频器被清“0”,暂停标志位 PDF 被置位 1,WDT 溢出标志位 TO 被 清 0。 TO  0 PDF  1 TO、PDF Increment data memory 将指定数据存储器的内容加 1。 [m]  [m]+1 Z Increment data memory and place result in the accumulator 将指定数据存储器的内容加 1,结果存放回累加器并保持指定的数据存储器内 容不变。 ACC  [m]+1 Z 运算过程: 影响标志位: Directly jump 程序计数器的内容无条件地由被指定的地址取代,程序由新的地址继续执行。 当新的地 址被加载时,必须插入一个空指令周期,所以此指令为 2 个周期的 指令。 PC  addr 无 MOV A, [m] 说明: 运算过程: 影响标志位: Move data memory to the accumulator 将指定数据存储器的内容复制到累加器。 ACC  [m] 无 MOV A, x 说明: 运算过程: 影响标志位: Move immediate data to the accumulator 将 8 位立即数载入累加器。 ACC  x 无 MOV [m], A 说明: 运算过程: 影响标志位: NOP 说明: 运算过程: 影响标志位: Move the accumulator data to memory 将累加器的内容复制到指定的数据存储器。 [m]  ACC 无 No operation 空操作,顺序执行下一条指令。 PC  PC+1 无 OR A, [m] 说明: 运算过程: 影响标志位: Logical OR accumulator with data memory 将累加器中的数据和指定的数据存储器内容逻辑或,结果存放到累加器。 ACCACC “OR” [m] Z OR A, x 说明: 运算过程: 影响标志位: Logical OR immediate data to the accumulator 将累加器中的数据和立即数逻辑或,结果存放到累加器。 ACCACC “OR” x Z Rev.1.60 126 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 ORM A, [m] 说明: 运算过程: 影响标志位: Logical OR data memory with accumulator 将存在指定数据存储器中的数据和累加器逻辑或,结果放到数据存储器。 [m]ACC “OR” [m] Z RET 说明: 运算过程: 影响标志位: Return from subroutine 将堆栈寄存器中的程序计数器值恢复,程序由取回的地址继续执行。 PC  Stack 无 RET A, x 说明: Return and place immediate data in the accumulator 将堆栈寄存器中的程序计数器值恢复且累加器载入指定的立即数,程序由取回 的地址继续执行。 PC  Stack ACC  x 无 运算过程: 影响标志位: RETI 说明: 运算过程: 影响标志位: RL [m] 说明: 运算过程: 影响标志位: RLA 说明: [m] 运算过程: 影响标志位: RLC 说明: [m] 运算过程: 影响标志位: RLCA 说明: [m] 运算过程: 影响标志位: Rev.1.60 Return from interrupt 将堆栈寄存器中的程序计数器值恢复且中断功能通过设置 EMI 位重新使能。 EMI 是控制中断使能的主控制位。如果在执行 RETI 指令之前还有中断未被相 应,则这个中断将在返回主程序之前被相应。 PC  Stack EMI  1 无 Rotate data memory left 将指定数据存储器的内容左移 1 位,且第 7 位移到第 0 位。 [m].(i+1) [m].i = (i 0~6) [m].0 [m].7 无 Rotate data memory left and place result in the accumulator 将指定数据存储器的内容左移 1 位,且第 7 位移到第 0 位,结果送到累加器, 而指定数据存储器的内容保持不变。 ACC.(i+1) [m].i = (i 0~6) ACC.0 [m].7 无 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 left through carry and place result in the accumulator 将指定数据存储器的内容连同进位标志左移 1 位,第 7 位取代进位标志且原本 的进位标志移到第 0 位,移位结果送回累加器,但是指定数据寄存器的内容保持 不变。 ACC.(i+1) [m].i (i= 0~6) ACC.0 C C  [m].7 C 127 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 RR [m] 说明: 运算过程: 影响标志位: RRA 说明: [m] 运算过程: 影响标志位: RRC 说明: [m] Rotate data memory right 将指定数据存储器的内容循环右移 1 位且第 0 位移到第 7 位。 [m].i [m].(i+1) (i= 0~6) [m].7 [m].0, 无 Rotate right and place result in the accumulator 将指定数据存储器的内容循环右移 1 位,第 0 位移到第 7 位,移位结果存放到 累加器,而指定数据存储器的内容保持不变。 ACC.i [m].(i+1) (i= 0~6) ACC.7 [m].0 无 影响标志位: Rotate data memory right through carry 将指定数据存储器的内容连同进位标志右移 1 位,第 0 位取代进位标志且原本 的进位标志移到第 7 位。 [m].i [m].(i+1) (i= 0~6) [m]. 7 C C  [m].0 C RRCA Rotate right through carry and place result in the accumulator 运算过程: [m] 说明: 运算过程: 影响标志位: SBC 说明: A,[m] 将指定数据存储器的内容连同进位标志右移 1 位,第 0 位取代进位标志且原本 的进位标志移到第 7 位,移位结果送回累加器,但是指定数据寄存器的内容保持 不变。 ACC.i [m].(i+1) (i= 0~6) ACC.7 C C  [m].0 C Subtract data memory and carry from the accumulator 将累加器减去指定数据存储器的内容以及进位标志的反,结果存放到累加器。 如果结果为负,C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。 运算过程: 影响标志位: ACCACC-[m]- C OV、Z、AC、C SBCM 说明: Subtract data memory and carry from the accumulator 将累加器减去指定数据存储器的内容以及进位标志的反,结果存放到数据存储 器。如果结果为负,C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。 A,[m] 运算过程: 影响标志位: [m]ACC-[m]- C OV、Z、AC、C SDZ 说明: Skip if decrement data memory is 0 将指定的数据存储器的内容减 1,判断是否为 0,若为 0 则跳过下一条指令,由 于取得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指 令。如果结果不为 0,则程序继续执行下一条指令。 [m]  [m] -1,如果[m]=0 跳过下一条指令执行 无 [m] 运算过程: 影响标志位: Rev.1.60 128 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 SDZA [m] Decrement data memory and place result in ACC,skip if 0 说明: 运算过程: 影响标志位: 将指定数据存储器内容减 1,判断是否为 0,如果为 0 则跳过下一条指令,此结 果将存放到累加器,但指定数据存储器内容不变。由于取得下一个指令时会要 求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结果不为 0,则 程序继续执行下一条指令。 ACC  [m]-1,如果 ACC=0 跳过下一条指令执行 无 SET Set data memory [m] 说明: 运算过程: 影响标志位: 将指定数据存储器的每一位设置为 1。 [m]  FFH 无 SET [m].i 说明: 运算过程: 影响标志位: Set bit of data memory 将指定数据存储器的第 i 位设置为 1。 [m].i 1 无 SIZ 说明: Skip if increment data memory is 0 将指定的数据存储器的内容加 1,判断是否为 0,若为 0 则跳过下一条指令。由 于取得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指 令。如果结果不为 0,则程序继续执行下一条指令。 [m] [m]+1,如果[m]=0 跳过下一条指令执行 无 [m] 运算过程: 影响标志位: SIZA 说明: [m] 运算过程: 影响标志位: SNZ [m]. i 说明: 运算过程: 影响标志位: Increment data memory and place result in ACC,skip if 0 将指定数据存储器的内容加 1,判断是否为 0,如果为 0 则跳过下一条指令,此 结果会被存放到累加器,但是指定数据存储器的内容不变。由于取得下一个指 令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结果不 为 0,则程序继续执行下一条指令。 ACC [m]+1,如果 ACC=0 跳过下一条指令执行 无 Skip if bit I of the data memory is not 0 判断指定数据存储器的第 i 位,若不为 0,则程序跳过下一条指令执行。由于取 得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。 如果结果为 0,则程序继续执行下一条指令。 如果[m].i≠0,跳过下一条指令执行 无 SUB A, [m] Subtract data memory from the accumulator 说明: 将累加器的内容减去指定的数据存储器的数据,把结果存放到累加器。如果结 果为负, C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。 运算过程: ACCACC-[m] 影响标志位: OV、Z、AC、C SUBM A, [m] 说明: 运算过程: 影响标志位: Rev.1.60 Subtract data memory from the accumulator 将累加器的内容减去指定数据存储器的数据,结果存放到指定的数据存储器。 如果结果为负,C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。 [m]ACC-[m] OV、Z、AC、C 129 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 SUB 说明: A, x 运算过程: 影响标志位: Subtract immediate data from the accumulator 将累加器的内容减去立即数,结果存放到累加器。如果结果为负,C 标志位清 除为 0,反之结果为正或 0,C 标志位设置为 1。 ACCACC-x OV、Z、AC、C SWAP [m] 说明: 运算过程: 影响标志位: Swap nibbles within the data memory 将指定数据存储器的低 4 位和高 4 位互相交换。 [m].3~[m].0 [m].7~[m].4 无 SWAPA 说明: Swap data memory and place result in the accumulator 将指定数据存储器的低 4 位和高 4 位互相交换,再将结果存放到累加器且指定 数据寄存器的数据保持不变。 ACC.3~ACC.0 [m].7~[m].4 ACC.7~ACC.4 [m].3~[m].0 无 [m] 运算过程: 影响标志位: SZ 说明: [m] 运算过程: 影响标志位: SZA 说明: [m] 运算过程: 影响标志位: SZ [m]. i 说明: 运算过程: 影响标志位: TABRD [m] 说明: 运算过程: 影响标志位: TABRDL [m] 说明: 运算过程: 影响标志位: Rev.1.60 Skip if data memory is 0 判断指定数据存储器的内容是否为 0,若为 0,则程序跳过下一条指令执行。由 于取得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指 令。如果结果不为 0,则程序继续执行下一条指令。 如果[m] = 0, 跳过下一条指令执行 无 Move data memory to ACC,skip if 0 将指定数据存储器内容复制到累加器,并判断指定数据存储器的内容是否为 0, 若为 0 则跳过下一条指令。由于取得下一个指令时会要求插入一个空指令周期, 所以此指令为 2 个周期的指令。如果结果不为 0,则程序继续执行下一条指令。 ACC[m],如果[m] = 0,跳过下一条指令执行 无 Skip if bit I of the data memory is 0 判断指定数据存储器的第 i 位是否为 0,若为 0,则跳过下一条指令。由于取得 下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如 果结果不为 0,则程序继续执行下一条指令。 如果[m].i = 0,跳过下一条指令执行 无 Move the ROM code(current page) to TBLH and data memory 将表格指针 TBLP 所指的程序代码低字节(当前页)移至指定的数据存储器且 将高字节移至 TBLH。 [m] 程序代码(低字节) TBLH程序代码(高字节) 无 Move the ROM code(last page) to TBLH and data memory 将表格指针 TBLP 所指的程序代码低字节(最后一页)移至指定的数据存储器 且将高字节移至 TBLH。 [m] 程序代码(低字节) TBLH程序代码(高字节) 无 130 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 XOR A, [m] 说明: 运算过程: 影响标志位: Logical XOR accumulator with data memory 将累加器的数据和指定的数据存储器内容逻辑异或,结果存放到累加器。 ACCACC “XOR” [m] Z XORM 说明: 运算过程: 影响标志位: Logical XOR data memory with accumulator 将累加器的数据和指定的数据存储器内容逻辑异或,结果放到数 据存储器。 [m]ACC “XOR” [m] Z XOR A, x 说明: 运算过程: 影响标志位: Logical XOR immediate data to the accumulator 将累加器的数据与立即数逻辑异或,结果存放到累加器。 ACCACC “XOR” x Z Rev.1.60 A, [m] 131 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 封装信息 10-pin MSOP 外形尺寸 1 0 6 E 1 1 5 E D L A 2 A e R 0 .1 0 B C A 1 q L 1 (4 C O R N E R S ) 符号 A A1 A2 B C D E E1 e L L1 θ 符号 A A1 A2 B C D E E1 e L L1 θ Rev.1.60 最小 — 0.000 0.030 0.007 — — — — — 0.016 — 0° 尺寸(单位:inch) 正常 — — 0.033 — — 0.118 0.193 0.118 0.020 0.024 0.037 — 最大 0.043 0.006 0.037 0.011 0.010 — — — — 0.031 — 8° 最小 — 0.00 0.75 0.17 — — — — — 0.40 — 0° 尺寸(单位:mm) 正常 — — 0.85 — — 3.00 4.90 3.00 0.50 0.60 0.95 — 最大 1.10 0.15 0.95 0.27 0.25 — — — — 0.80 — 8° 132 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 16-pin NSOP (150mil)外形尺寸 A 1 6 9 1 B 8 C C ' G H D a F E  MS-012 符号 A B C C’ D E F G H α 符号 A B C C’ D E F G H α Rev.1.60 最小 0.228 0.150 0.012 0.386 — — 0.004 0.016 0.007 0° 最小 5.79 3.81 0.30 9.80 — — 0.10 0.41 0.18 0° 尺寸(单位:inch) 正常 — — — — 0.050 — — — — 最大 0.244 0.157 0.020 0.394 0.069 — 0.010 0.050 0.010 8° 尺寸(单位:mm) 正常 — — — — — 1.27 — — — — 最大 6.20 3.99 0.51 10.01 1.75 — 0.25 1.27 0.25 8° 133 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 包装带和卷轴规格 卷轴尺寸 D T 2 A C B T 1 SOP 16N(150mil) 符号 A B C D T1 T2 Rev.1.60 尺寸 (单位:mm) 330.0±1.0 100.0±1.5 13.0+0.5/ -0.2 2.0±0.5 16.8+0.3/-0.2 22.2±0.2 说明 卷轴外圈直径 卷轴内圈直径 轴心直径 缝宽 轮沿宽 卷轴宽 134 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 运输带尺寸 P 0 D P 1 t E F W C D 1 P B 0 K 0 A 0 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 . SOP 16N(150mil) 符号 W P E F D D1 P0 P1 A0 B0 K0 T C Rev.1.60 尺寸 (单位:mm) 16.0±0.3 8.0±0.1 1.75±0.10 7.5±0.1 1.55+0.10/-0.00 1.50+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 说明 运输带宽 空穴间距 穿孔位置 空穴至穿孔距离(宽度) 穿孔直径 空穴中之小孔直径 穿孔间距 空穴至穿孔距离(长度) 空穴长 空穴宽 空穴深 传输带厚度 覆盖带宽度 135 2012-11-28 HT66F03/HT66F04/HT68F03/HT68F04 Copyright  2012 by HOLTEK SEMICONDUCTOR INC. 使用指南中所出现的信息在出版当时相信是正确的,然而盛群对于说明书的使用不负任何责任。文中提 到的应用目的仅仅是用来做说明,盛群不保证或表示这些没有进一步修改的应用将是适当的,也不推荐 它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救生、维 生从机或系统中做为关键从机。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请参考我们 的网址 http://www.holtek.com.tw Rev.1.60 136 2012-11-28
HT68F03C(SOP-8) 价格&库存

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

免费人工找货