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

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
HT66F0041

HT66F0041

  • 厂商:

    HOLTEK(合泰)

  • 封装:

    NSOP16_150MIL

  • 描述:

    低成本 1K/2K A/D 型 Flash 单片机

  • 数据手册
  • 价格&库存
HT66F0041 数据手册
低成本 1K/2K A/D 型 Flash 单片机 HT66F0021/HT66F0031/HT66F0041 版本 : V1.40 日期 : 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 目录 特性 ...................................................................................................................................... 6 CPU 特性 ..................................................................................................................................... 6 周边特性 ...................................................................................................................................... 6 概述 ...................................................................................................................................... 7 选型表 .................................................................................................................................. 7 方框图 .................................................................................................................................. 8 引脚图 .................................................................................................................................. 9 引脚说明 ............................................................................................................................ 10 极限参数 ............................................................................................................................ 14 直流电气特性 .................................................................................................................... 15 工作电压特性 ............................................................................................................................ 15 待机电流特性 ............................................................................................................................ 15 工作电流特性 ............................................................................................................................ 16 交流电气特性 .................................................................................................................... 16 内部高速振荡器 – HIRC – 频率精确度................................................................................... 16 内部低速振荡器电气特性 – LIRC ........................................................................................... 17 工作频率特性曲线 .................................................................................................................... 17 系统上电时间电气特性 ............................................................................................................ 17 输入 / 输出口电气特性 ..................................................................................................... 18 存储器电气特性 ................................................................................................................ 19 LVR 电气特性 ................................................................................................................... 20 内部参考电压电气特性 .................................................................................................... 20 A/D 转换器电气特性......................................................................................................... 20 上电复位特性 .................................................................................................................... 21 系统结构 ............................................................................................................................ 21 时序和流水线结构 .................................................................................................................... 21 程序计数器 ................................................................................................................................ 22 堆栈 ............................................................................................................................................ 23 算术逻辑单元 – ALU ................................................................................................................ 23 Flash 程序存储器 .............................................................................................................. 24 结构 ............................................................................................................................................ 24 特殊向量 .................................................................................................................................... 24 查表 ............................................................................................................................................ 24 查表范例 .................................................................................................................................... 25 在线烧录 – ICP .......................................................................................................................... 26 片上调试 – OCDS...................................................................................................................... 26 Rev.1.40 2 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 数据存储器 ........................................................................................................................ 27 结构 ............................................................................................................................................ 27 通用数据存储器 ........................................................................................................................ 27 特殊功能数据存储器 ................................................................................................................ 27 特殊功能寄存器 ................................................................................................................ 29 间接寻址寄存器 – IAR0 ........................................................................................................... 29 存储器指针 – MP0 .................................................................................................................... 29 累加器 – ACC ............................................................................................................................ 29 程序计数器低字节寄存器 – PCL ............................................................................................. 30 表格寄存器 – TBLP, TBHP, TBLH ........................................................................................... 30 状态寄存器 – STATUS .............................................................................................................. 30 模拟 EEPROM 数据存储器 ............................................................................................. 32 模拟 EEPROM 数据存储器结构 .............................................................................................. 32 模拟 EEPROM 寄存器 .............................................................................................................. 33 擦除模拟 EEPROM 中的数据 .................................................................................................. 36 写数据到模拟 EEPROM ........................................................................................................... 36 从模拟 EEPROM 中读取数据 .................................................................................................. 37 编程注意事项 ............................................................................................................................ 37 振荡器 ................................................................................................................................ 38 振荡器概述 ................................................................................................................................ 38 系统时钟配置 ............................................................................................................................ 38 内部 RC 振荡器 – HIRC ........................................................................................................... 39 内部 32kHz 振荡器 – LIRC ...................................................................................................... 39 工作模式和系统时钟 ........................................................................................................ 39 系统时钟 .................................................................................................................................... 39 系统工作模式 ............................................................................................................................ 40 控制寄存器 ................................................................................................................................ 41 工作模式切换 ............................................................................................................................ 42 待机电流的注意事项 ................................................................................................................ 45 唤醒 ............................................................................................................................................ 46 看门狗定时器 .................................................................................................................... 46 看门狗定时器时钟源 ................................................................................................................ 46 看门狗定时器控制寄存器 ........................................................................................................ 46 看门狗定时器操作 .................................................................................................................... 47 复位和初始化 .................................................................................................................... 48 复位功能 .................................................................................................................................... 48 复位初始状态 ............................................................................................................................ 50 输入 / 输出端口 ................................................................................................................. 53 上拉电阻 .................................................................................................................................... 54 PA 口唤醒 .................................................................................................................................. 54 输入 / 输出端口控制寄存器 ..................................................................................................... 55 输入 / 输出端口源电流选择 – HT66F0041.............................................................................. 55 引脚共用功能 ............................................................................................................................ 56 Rev.1.40 3 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 输入 / 输出引脚结构 ................................................................................................................. 60 编程注意事项 ............................................................................................................................ 60 定时 / 事件计数器 ............................................................................................................. 61 定时 / 事件计数器输入时钟源 ................................................................................................. 61 定时 / 事件计数器寄存器 ......................................................................................................... 61 定时 / 事件计数器工作模式 ..................................................................................................... 63 编程注意事项 ............................................................................................................................ 65 脉冲宽度调制 – HT66F0021/HT66F0031 ....................................................................... 65 PWM 寄存器说明...................................................................................................................... 66 PWM 操作.................................................................................................................................. 66 脉冲宽度调制 – HT66F0041 ............................................................................................ 68 PWM 寄存器说明...................................................................................................................... 68 PWM 操作.................................................................................................................................. 70 A/D 转换器......................................................................................................................... 70 A/D 简介 .................................................................................................................................... 70 A/D 转换寄存器介绍 ................................................................................................................ 71 A/D 转换器参考电压 ................................................................................................................ 74 A/D 转换器输入信号 ................................................................................................................ 74 A/D 转换器操作 ........................................................................................................................ 74 A/D 转换率及时序图 ................................................................................................................ 75 A/D 转换步骤 ............................................................................................................................ 76 编程注意事项 ............................................................................................................................ 76 A/D 转换功能 ............................................................................................................................ 77 A/D 转换应用范例 .................................................................................................................... 77 中断 .................................................................................................................................... 79 中断寄存器 ................................................................................................................................ 79 中断操作 .................................................................................................................................... 81 外部中断 .................................................................................................................................... 82 定时 / 事件计数器中断 ............................................................................................................. 82 时基中断 .................................................................................................................................... 82 A/D 转换器中断 ........................................................................................................................ 84 中断唤醒功能 ............................................................................................................................ 84 编程注意事项 ............................................................................................................................ 84 应用电路 ............................................................................................................................ 84 指令集 ................................................................................................................................ 85 简介 ............................................................................................................................................ 85 指令周期 .................................................................................................................................... 85 数据的传送 ................................................................................................................................ 85 算术运算 .................................................................................................................................... 85 逻辑和移位运算 ........................................................................................................................ 85 分支和控制转换 ........................................................................................................................ 86 位运算 ........................................................................................................................................ 86 查表运算 .................................................................................................................................... 86 其它运算 .................................................................................................................................... 86 Rev.1.40 4 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 指令集概要 ........................................................................................................................ 87 惯例 ............................................................................................................................................ 87 指令定义 ............................................................................................................................ 89 封装信息 .......................................................................................................................... 101 8-pin SOP (150mil) 外形尺寸.................................................................................................. 102 16-pin NSOP (150mil) 外形尺寸 ............................................................................................. 103 20-pin NSOP (150mil) 外形尺寸 ............................................................................................. 104 20-pin SSOP (150mil) 外形尺寸 ............................................................................................. 105 Rev.1.40 5 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 特性 CPU 特性 ● 工作电压 ♦ fSYS=8MHz:1.8V~5.5V ● VDD=5V,系统时钟为 8MHz 时,指令周期为 0.5μs ● 暂停和唤醒功能,以降低功耗 ● 振荡器类型 ♦ 内部高速 RC 振荡器 – HIRC ♦ 内部低速 32kHz RC 振荡器 – LIRC ● 多种工作模式:快速模式、低速模式、空闲模式和休眠模式 ● 完全集成内部振荡器,无需外接元器件 ● 所有指令都可在 1 或 2 个指令周期内完成 ● 查表指令 ● 61 条功能强大的指令系统 ● 多达 4 层堆栈 ● 位操作指令 周边特性 ● Flash 程序存储器:1K×14~2K×14 ● 数据存储器:64×8 ● 模拟 EEPROM 存储器:32×14 ● 看门狗定时器功能 ● 多达 18 个双向 I/O 口 ● 可编程 I/O 口源电流用于 LED 驱动 ( 仅用于 HT66F0041 ) ● 2 个引脚与外部中断口共用 ● 1 个 8-bit 可编程定时 / 事件计数器,带溢出中断和分频器功能 ● 单通道 8-bit PWM 输出,与 I/O 口复用 (HT66F0021/HT66F0031) ● 8-bit PWM 互补式输出,与 I/O 口复用 (HT66F0041) ● 1 个时基功能,用于产生固定时间的中断信号 ● 带内部参考电压 VVR 的 4 个外部通道 10-bit 分辨精度的 A/D 转换器 ● 低电压复位功能 ● 封装类型:8-pin SOP,16/20-pin NSOP 和 20-pin SSOP Rev.1.40 6 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 概述 该系列单片机是一款具有 8 位高性能精简指令集的 A/D 型 Flash 单片机。该系 列单片机具有一系列功能和特性,其 Flash 存储器可多次编程的特性给用户提 供了较大的方便。存储器方面,还包含了一个 RAM 数据存储器和一个可用于 存储序号、校准数据等非易失性数据的模拟 EEPROM 存储器。 在模拟特性方面,该系列单片机包含一个多通道 10-bit A/D 转换器。其具有使 用灵活的定时 / 事件计数器,可提供定时功能、事件计数功能及脉冲宽度捕捉 功能。该系列单片机还包含一脉宽调制功能可提供 8-bit PWM 输出。内部看门 狗定时器等保护特性,外加优秀的抗干扰和 ESD 保护性能,确保单片机在恶劣 的电磁干扰环境下可靠地运行。 该系列单片机提供了内部高速和低速振荡器功能选项,这两个内建的系统振荡 器无需外围元器件。其在不同工作模式之间动态切换的能力,为用户提供了一 个优化单片机操作和减少功耗的手段。 外加 I/O 使用灵活和时基功能等其它特性,使这系列单片机可以广泛应用于电 子测量、环境监控、手持式仪表、家用电器、电子控制工具、马达驱动等方面。 选型表 对此系列单片机而言,大多数的特性参数都是一样的。主要差异在于 Flash 存 储器容量、I/O 数量、外部中断数量、PWM 功能、堆栈容量和封装类型。下表 列出了各单片机的主要特性。 型号 HT66F0021 HT66F0031 HT66F0041 VDD 1.8V~5.5V 1.8V~5.5V 1.8V~5.5V ROM 1K×14 1K×14 2K×14 型号 A/D 转换器 定时器 HT66F0021 10-bit×4 8-bit×1 HT66F0031 10-bit×4 8-bit×1 HT66F0041 Rev.1.40 10-bit×4 RAM 64×8 64×8 64×8 PWM 一个通道 一个通道 8-bit×1 互补式输出 7 模拟 EEPROM 32×14 32×14 32×14 I/O 6 14 18 外部中断 1 1 2 时基 低电压复位 堆栈 √ 1 2 √ 1 2 封装 8SOP 16NSOP 16/20NSOP 20SSOP 1 √ 4 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 方框图 HT66F0021/HT66F0031 INT0 Reset Circuit ROM 1K×14 RAM 64×8 PWM Interrupt Controller Emulated EEPROM 32×14 Stack 2-level Timer Watchdog Timer LVR Pin-Shared With Port A I/O Bus HT8 MCU Core SYSCLK Pin-Shared Function Port A Driver PA0~PA2, PA5~PA7 Port A Driver PA0~PA7 Port B Driver PB0~PB5 Digital Peripherals AVDD HIRC 8MHz VDD/AVDD VSS/AVSS VSS/AVSS VVR MUX VDD/AVDD LIRC 32kHz 10-bit ADC Clock System MUX Time Base VREF AN0~AN3 AVDD/4 Analog to Digital Converter Pin-Shared With Port A Analog Peripheral : Pin-Shared Node : For the HT66F0021 : For the HT66F0031 HT66F0041 ROM 2K × 14 RAM 64 × 8 PWM Interrupt Controller Emulated EEPROM 32 × 14 Stack 4-level Timer Watchdog Timer LVR Pin-Shared With Port A & C HT8 MCU Core SYSCLK Pin-Shared Function I/O Bus INT0~ INT1 Reset Circuit Port A Driver PA0~PA7 Port B Driver PB0~PB6 Port C Driver PC0~PC2 Digital Peripherals AVDD VDD/AVDD VSS/AVSS VSS/AVSS HIRC 8MHz VVR MUX VDD/AVDD LIRC 32kHz 10-bit ADC Clock System MUX Time Base Analog to Digital Converter VREF AN0~AN3 AVDD/4 Pin-Shared With Port A Analog Peripheral : Pin-Shared Node Rev.1.40 8 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 引脚图 VDD/AVDD 1 8 VSS/AVSS PA6/TC/PWMO 2 7 PA0/INT0/AN0/ICPDA PA5/INT0/AN3 3 6 PA1/TC/VREF PA2/AN1/ICPCK 4 5 PA7/PWMO/AN2 HT66F0021 8 SOP-A VDD/AVDD 1 16 VSS/AVSS PA6/TC/PWMO 2 15 PA0/INT0/AN0/ICPDA PA5/INT0/AN3 PA2/AN1/ICPCK 3 14 PA1/TC/VREF 4 13 PA7/PWMO/AN2 NC 5 12 NC NC 6 11 NC NC 7 10 NC OCDSCK 8 9 OCDSDA HT66V0021 16 NSOP-A PB2 1 16 PB3 PB1 2 15 PB4 PA5/AN1 PA3/INT0/AN3 3 14 PB5 4 13 PA4/INT0 PA2/AN2/ICPCK/OCDSCK 5 12 PB0 PA1/VREF 6 11 PA6/TC/PWMO PA0/TC/AN0/ICPDA/OCDSDA 7 10 PA7/PWMO VSS/AVSS 8 9 VDD/AVDD HT66F0031/HT66V0031 16 NSOP-A VSS/AVSS 1 16 VDD/AVDD PC0/INT0 2 15 PB0 PC1/INT1 PC2 3 14 PB1 4 13 PB2 PA0/PWM/ICPDA/OCDSDA 5 12 PA4/INT0/AN0 PA1/TC 6 11 PA5/VREF PA2/AN1/ICPCK/OCDSCK 7 10 PA6/INT1/AN2 PA3/TC/PWMB 8 9 PA7/AN3 HT66F0041/HT66V0041 16 NSOP-A VSS/AVSS 1 20 VDD/AVDD PC0/INT0 2 19 PB0 PC1/INT1 3 18 PB1 PC2 4 17 PB2 PA0/PWM/ICPDA/OCDSDA 5 16 PA4/INT0/AN0 PA1/TC 6 15 PA5/VREF PA2/AN1/ICPCK/OCDSCK 7 14 PA6/INT1/AN2 PA3/TC/PWMB 8 13 PA7/AN3 PB6 9 12 PB3 PB5 10 11 PB4 HT66F0041/HT66V0041 20 NSOP-A/SSOP-A 注:1. 所需引脚共用功能由相应的共用引脚控制位决定。 2. OCDSDA 和 OCDSCK 是 OCDS 专用引脚,仅存在于 HT66V00x1 中。HT66V00x1 是 HT66F00x1 的 OCDS EV 芯片。 3. 在较小封装中可能含有未引出的引脚,需合理设置其状态以避免输入浮空造成额外耗 电,详见“待机电流注意事项”和“输入 / 输出端口”章节。 Rev.1.40 9 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 引脚说明 每个引脚的功能如下表所述,而引脚配置的详细内容见规格书其它章节。注意, 对于存在不止一种封装的单片机,该表格反映的是较大封装类型的情况。 HT66F0021/HT66V0021 引脚名称 功能 PA0 PA0/INT0/ AN0/ICPDA INT0 AN0 ICPDA PA1 PA1/TC/VREF TC VREF PA2/AN1/ ICPCK PA2 AN1 ICPCK PA5 PA5/INT0/AN3 INT0 AN3 PA6 PA6/TC/ PWMO TC PWMO PA7/PWMO/ AN2 Rev.1.40 PA7 PWMO AN2 OPT PAPU PAWU PASR PASR IFS INTEG INTC0 PASR — PAPU PAWU PASR PASR IFS PASR PAPU PAWU PASR PASR — PAPU PAWU PASR PASR IFS INTEG INTC0 PASR PAPU PAWU PASR PASR IFS PASR PAPU PAWU PASR PASR PASR I/T O/T 说明 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻和 唤醒功能 ST — 外部中断 AN ST — A/D 转换器外部模拟信号输入 CMOS ICP 数据 / 地址引脚 ST CMOS ST — 定时 / 事件计数器时钟输入 AN — A/D 转换器外部参考输入 ST CMOS AN ST — — ST CMOS ST — 外部中断 AN — A/D 转换器外部模拟信号输入 ST CMOS ST — 通用 I/O 口,可通过寄存器设置上拉电阻和 唤醒功能 通用 I/O 口,可通过寄存器设置上拉电阻和 唤醒功能 A/D 转换器外部模拟信号输入 ICP 时钟引脚 通用 I/O 口,可通过寄存器设置上拉电阻和 唤醒功能 通用 I/O 口,可通过寄存器设置上拉电阻和 唤醒功能 定时 / 事件计数器时钟输入 — CMOS PWM 信号输出 ST CMOS — AN CMOS PWM 信号输出 — A/D 转换器外部模拟信号输入 10 通用 I/O 口,可通过寄存器设置上拉电阻和 唤醒功能 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 引脚名称 OCDSDA OCDSCK VDD/AVDD VSS/AVSS NC 功能 OCDSDA OCDSCK VDD AVDD VSS AVSS NC OPT — — — — — — — I/T O/T 说明 ST CMOS OCDS 数据 / 地址引脚,仅用于 EV 芯片 ST — OCDS 时钟引脚,仅用于 EV 芯片 PWR — 数字正电源电压 PWR — 模拟正电源电压 PWR — 数字负电源电压,接地 PWR — 模拟负电源电压,接地 – — 未连接 O/T:输出类型; PWR:电源; CMOS:CMOS 输出 注:I/T:输入类型; OPT:通过寄存器选项来配置; ST:施密特触发输入; AN:模拟信号 HT66F0031/HT66V0031 OPT PAPU PA0 PAWU PASR PASR PA0/TC/AN0/ TC IFS ICPDA/OCDSDA AN0 PASR ICPDA — OCDSDA — PAPU PA1 PAWU PA1/VREF PASR VREF PASR PAPU PA2 PAWU PASR PA2/AN2/ICPCK/ AN2 PASR OCDSCK ICPCK — OCDSCK — PAPU PA3 PAWU PASR PASR PA3/INT0/AN3 IFS INT0 INTEG INTC0 AN3 PASR 引脚名称 Rev.1.40 功能 I/T O/T 说明 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻 和唤醒功能 ST — 定时 / 事件计数器时钟输入 AN — A/D 转换器外部模拟信号输入 ST CMOS ICP 数据 / 地址引脚 ST CMOS OCDS 数据 / 地址引脚,仅用于 EV 芯片 通用 I/O 口,可通过寄存器设置上拉电阻 和唤醒功能 ST CMOS AN — ST CMOS AN ST ST — — — ST CMOS ST — 外部中断 AN — A/D 转换器外部模拟信号输入 11 A/D 转换器外部参考输入 通用 I/O 口,可通过寄存器设置上拉电阻 和唤醒功能 A/D 转换器外部模拟信号输入 ICP 时钟引脚 OCDS 时钟引脚,仅用于 EV 芯片 通用 I/O 口,可通过寄存器设置上拉电阻 和唤醒功能 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 引脚名称 PA4/INT0 PA5/AN1 PA6/TC/PWMO PA7/PWMO PB0~PB5 VDD/AVDD VSS/AVSS OPT PAPU PA4 PAWU IFS INT0 INTEG INTC0 PAPU PA5 PAWU PASR AN1 PASR PAPU PA6 PAWU PASR PASR TC IFS PWMO PASR PAPU PA7 PAWU PASR PWMO PASR PB0~PB5 PBPU VDD — AVDD — VSS — AVSS — 功能 I/T ST O/T 说明 通用 I/O 口,可通过寄存器设置上拉电阻 CMOS 和唤醒功能 ST — ST CMOS AN — ST CMOS ST — 通用 I/O 口,可通过寄存器设置上拉电阻 和唤醒功能 A/D 转换器外部模拟信号输入 通用 I/O 口,可通过寄存器设置上拉电阻 和唤醒功能 定时 / 事件计数器时钟输入 — CMOS PWM 信号输出 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻 和唤醒功能 — CMOS PWM 信号输出 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻 PWR — 数字正电源供电压 PWR — 模拟正电源供电压 PWR — 数字负电源供电压,接地 PWR — 模拟负电源供电压,接地 O/T:输出类型; PWR:电源; CMOS:CMOS 输出; 注:I/T:输入类型; OPT:通过寄存器选项来配置; ST:施密特触发输入; AN:模拟信号 Rev.1.40 外部中断 12 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 HT66F0041/HT66V0041 引脚名称 PA0/PWM/ ICPDA/ OCDSDA PA1/TC PA2/AN1/ ICPCK/ OCDSCK PA3/TC/ PWMB PA4/INT0/ AN0 PA5/VREF PA6/INT1/ AN2 Rev.1.40 OPT PAPU PA0 PAWU PASR PWM PASR ICPDA — OCDSDA — PAPU PA1 PAWU TC IFS PAPU PA2 PAWU PASR AN1 PASR ICPCK — OCDSCK — PAPU PA3 PAWU PASR PASR TC IFS PWMB PASR PAPU PA4 PAWU PASR PASR IFS INT0 INTEG INTC0 AN0 PASR PAPU PA5 PAWU PASR VREF PASR PAPU PA6 PAWU PASR PASR IFS INT1 INTEG INTC1 AN2 PASR 功能 I/T O/T 说明 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 功能 — ST ST ST CMOS PWM 信号输出 CMOS ICP 数据 / 地址引脚 CMOS OCDS 数据 / 地址引脚,仅用于 EV 芯片 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 CMOS 功能 — 定时 / 事件计数器时钟输入 ST CMOS AN ST ST — — — ST CMOS ST — ST 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 功能 A/D 转换器外部模拟信号输入 ICP 时钟引脚 OCDS 时钟引脚,仅用于 EV 芯片 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 功能 定时 / 事件计数器时钟输入 — CMOS PWM 信号反相输出 ST CMOS ST — 外部中断 AN — A/D 转换器外部模拟信号输入 ST CMOS AN — ST CMOS ST — 外部中断 AN — A/D 转换器外部模拟信号输入 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 功能 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 功能 A/D 转换器外部参考输入 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 功能 13 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 OPT PAPU PA7 PAWU PA7/AN3 PASR AN3 PASR PB0~PB6 PB0~PB6 PBPU PC0 PCPU IFS PC0/INT0 INT0 INTEG INTC0 PC1 PCPU IFS PC1/INT1 INT1 INTEG INTC1 PC2 PC2 PCPU VDD — VDD/AVDD AVDD — VSS — VSS/AVSS AVSS — 引脚名称 功能 I/T O/T 说明 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻和唤醒 功能 AN — A/D 转换器外部模拟信号输入 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻 ST ST ST — 外部中断 CMOS 通用 I/O 口,可通过寄存器设置上拉电阻 — 外部中断 ST CMOS 通用 I/O 口,可通过寄存器设置上拉电阻 PWR — 数字正电源供电压 PWR — 模拟正电源供电压 PWR — 数字负电源供电压,接地 PWR — 模拟负电源供电压,接地 O/T:输出类型; PWR:电源; CMOS:CMOS 输出; 注:I/T:输入类型; OPT:通过寄存器选项来配置; ST:施密特触发输入; AN:模拟信号 极限参数 电源供应电压 ....................................................................................... VSS-0.3V~6.0V 端口输入电压 ...............................................................................VSS-0.3V~VDD+0.3V 储存温度 .................................................................................................. -50°C~125°C 工作温度 .................................................................................................... -40°C~85°C IOH 总电流 ........................................................................................................... -80mA IOL 总电流............................................................................................................. 80mA 总功耗 ............................................................................................................... 500mW 注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无 法预期芯片在上述标示范围外的工作状态,而且若长期在标示范围外的条 件下工作,可能影响芯片的可靠性。 Rev.1.40 14 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 直流电气特性 以下表格中参数测量结果可能受多个因素影响,如振荡器类型、工作电压、工 作频率、引脚负载状况、温度和程序指令等等。 工作电压特性 Ta=-40°C~85°C 符号 参数 工作电压 – HIRC 工作电压 – LIRC VDD 测试条件 fSYS=fHIRC=8MHz fSYS=fLIRC=32kHz 最小 1.8 1.8 典型 — — 最大 5.5 5.5 单位 V V 待机电流特性 Ta=25°C,除非另有说明 符号 待机模式 休眠模式 ISTB 空闲模式 0 – LIRC 空闲模式 1 – HIRC VDD 1.8V 3V 5V 1.8V 3V 5V 1.8V 3V 5V 1.8V 3V 5V 测试条件 条件 WDT off WDT on fSUB on fSUB on,fSYS=8MHz 最小 典型 最大 — — — — — — — — — — — — 0.08 0.08 0.15 1.2 1.5 3 1.0 2.5 8 0.6 0.8 1.0 0.11 0.12 0.29 2.4 3.0 5 1.5 4.0 10 1.2 1.6 2.0 最大 单位 @85°C 1.30 1.40 2.20 2.9 3.6 6 2.0 6.0 12 1.6 2.0 2.5 μA μA μA mA 注:当使用该表格电气特性数据时,以下几点需注意: 1. 任何数字输入都设置为非浮空的状态。 2. 所有测量都在无负载且所有外围功能关闭的条件下进行。 3. 无直流电流路径。 4. 所有待机电流数值都是在 HALT 指令执行后测得,因此 HALT 后停止执行所有指令。 Rev.1.40 15 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 工作电流特性 Ta=25°C,除非另有说明 符号 工作模式 低速模式 – LIRC IDD 快速模式 – HIRC 测试条件 条件 VDD 1.8V 3V fSYS=32kHz 5V 1.8V 3V fSYS=8MHz 5V 最小 典型 最大 — — — — — — 8 10 30 0.6 0.8 1.6 16 20 50 1.0 1.2 2.4 Max. 单位 @85°C 16 20 50 1.0 1.2 2.4 μA mA 注:当使用该表格电气特性数据时,以下几点需注意: 1. 任何数字输入都设置为非浮空的状态。 2. 所有测量都在无负载且所有外围功能关闭的条件下进行。 3. 无直流电流路径。 4. 所有工作电流数值通过一个连续的 NOP 指令循环程序测得。 交流电气特性 以下表格中参数测量结果可能受多个因素影响,如振荡器类型、工作电压、工 作频率和温度等等。 内部高速振荡器 – HIRC – 频率精确度 程序烧录时,烧录器会调整 HIRC 振荡器使其工作在用户选择的 HIRC 频率和 工作电压 (3V 或 5V) 条件下。 符号 fHIRC 参数 通过烧录器调整后的 8MHz HIRC 频率 测试条件 温度 25°C 3V/5V -40°C~85°C 25°C 2.2V~5.5V -40°C~85°C 25°C 1.8V~5.5V -40°C~85°C VDD 最小 典型 -1% -2% -2.5% -3% -5% -10% 8 8 8 8 8 8 最大 单位 +1% +2% +2.5% MHz +3% +3% +5% 注:1. 烧录器可在 3V/5V 这两个可选的固定电压下对 HIRC 频率进行调整,在此提供 VDD=3V/5V 时的参 数值。 2. 3V/5V 表格列下面提供的是全压条件下的参数值。当应用电压范围是 1.8V~3.6V 时,建议烧录器 电压固定在 3V;当应用电压范围是 3.3V~5.5V 时,建议烧录器电压固定在 5V。 Rev.1.40 16 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 内部低速振荡器电气特性 – LIRC 符号 测试条件 VDD 温度 3V/5V 25°C 1.8V~3.6V -10°C~50°C (trim@3V) -40°C~85°C 3.3V~5.5V -10°C~50°C (trim@3V) -40°C~85°C 2.2V~5.5V -40°C~85°C (trim@3V) 1.8V~5.5V -40°C~85°C (trim@3V) — -40°C~85°C 参数 LIRC 频率 ( 烧录器调整 ) fLIRC tSTART LIRC 频率 LIRC 启动时间 最小 典型 最大 单位 -1% -4.0% -6.0% -4.0% -6.0% 32 32 32 32 32 +1% +4.0% +6.0% +4.0% +6.0% kHz -6.0% 32 +6.0% -7% 32 +7% — — 100 μs 工作频率特性曲线 System Operating Frequency 8MHz ~ ~ ~ ~ ~ ~ 1.8V 5.5V Operating Voltage 系统上电时间电气特性 Ta=-40°C~85°C 符号 参数 系统启动时间 ( 从 fSYS off 的状态下唤醒 ) tSST tRSTD Rev.1.40 系统启动时间 ( 从 fSYS on 的状态下唤醒 ) 系统速度切换时间 ( 快速模式 → 低速模式或 低速模式 → 快速模式 ) 系统复位延迟时间 ( 上电复位或 LVR 硬件复位 ) 系统复位延迟时间 ( WDTC/LVRC 软件复位 ) 系统复位延迟时间 ( WDT 溢出复位 ) VDD — — — — 测试条件 条件 fSYS=fH~fH/64, fH=fHIRC fSYS=fSUB=fLIRC fSYS=fH~fH/64, fH=fHIRC fSYS=fSUB=fLIRC — fHIRC off → on — RRPOR=5V/ms — — — — 17 最小 典型 最大 单位 — — — — 16 2 2 2 — — 3 3 tHIRC tLIRC tH tSUB 14 16 18 tHIRC 42 48 54 ms 14 16 18 ms 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 符号 参数 tSRESET 软件复位最小脉宽 测试条件 条件 — VDD — 最小 典型 最大 单位 45 90 120 μs 注:1. 系统启动时间里提到的 fSYS on/off 状态取决于工作模式类型以及所选的系统时钟振荡器。更多相关 细节请参考系统工作模式章节。 2. tHIRC 等符号所表示的时间单位,是对应频率值的倒数,相关频率值在前面表格有说明。例如, tHIRC=1/fHIRC,tLIRC=1/fLIRC 等等。 3. 若 LIRC 被选择作为系统时钟源且在休眠模式下 LIRC 关闭,则上面表格中对应 tSST 数值还需加上 LIRC 频率表格里提供的 LIRC 启动时间 tSTART。 4. 系统速度切换时间实际上是指新使能的振荡器的启动时间。 输入 / 输出口电气特性 符号 VIL VIH IOL IOH RPH Rev.1.40 Ta=-40°C~85°C 测试条件 最小 典型 最大 单位 VDD 条件 5V — 0.0 — 1.5 I/O 口低电平输入电压 V — — 0.0 — 0.2VDD 5V — 3.5 — 5.0 I/O 口高电平输入电压 V — — 0.8VDD — VDD 3V 5 10 — I/O 口灌电流 VOL=0.1VDD mA (HT66F0021/HT66F0031) 5V 10 20 — 3V 16 32 — I/O 口灌电流 VOL=0.1VDD mA (HT66F0041) 5V 32 65 — 3V -2.5 -5.0 — I/O 口源电流 VOH=0.9VDD mA (HT66F0021/HT66F0031) 5V -5 -10 — 3V VOH=0.9VDD, -0.7 -1.5 — SLEDCn[m+1, m]=00B 5V (n=0 或 1, m=0, 2, 4 或 6) -1.5 -2.9 — 3V VOH=0.9VDD, -1.3 -2.5 — SLEDCn[m+1, m]=01B 5V (n=0 或 1, m=0, 2, 4 或 6) -2.5 -5.1 — I/O 口源电流 mA (HT66F0041) 3V VOH=0.9VDD, -1.8 -3.6 — SLEDCn[m+1, m]=10B 5V (n=0 或 1, m=0, 2, 4 或 6) -3.6 -7.3 — 3V VOH=0.9VDD, -4 -8 — SLEDCn[m+1, m]=11B 5V (n=0 或 1, m=0, 2, 4 或 6) -8 -16 — (1) 3V — 20 60 100 I/O 口上拉电阻 kΩ (HT66F0021/HT66F0031) 5V — 10 30 50 3V LVPU=0, 20 60 100 PxPU=FFH (Px:PA, 5V PB, PC) 10 30 50 I/O 口上拉电阻 (1) kΩ (HT66F0041) 3V LVPU=1, 6.67 15.00 23.00 PxPU=FFH (Px:PA, 5V PB, PC) 3.5 7.5 12.0 参数 18 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 符号 参数 RPL I/O 口下拉电阻 (2) ( 仅用于 HT66F0041 ) ILEAK I/O 口输入漏电流 tTC tINT TC 时钟输入最小脉宽 中断引脚最小输入脉宽 VDD 3V 5V 测试条件 条件 PB0~PB1 VIN=VDD ( 用于不带 RPL 5V 电阻的 I/O 引脚 ) 或 VIN=VSS — — — — 最小 典型 最大 单位 5 10 15 5 10 15 — — ±1 μA 25 0.3 — — — — ns μs kΩ 注:1. RPH 内部上拉电阻值的计算方法是:将引脚接地并设置为输入且使能上拉电阻功能,然后在特定电 源电压下测量该引脚上电流,最后电压除以测量的电流值从而得到此上拉电阻值。 2. RPL 内部下拉电阻值的计算方法是:将引脚接 VDD 并设置为输入且使能下拉电阻功能,然后在特定 电源电压下测量该引脚上电流,最后电压除以测量的电流值从而得到此下拉电阻值。 存储器电气特性 Ta=-40°C~85°C,除非另有说明 符号 参数 测试条件 条件 最小 典型 最大 单位 VDD Flash 程序存储器 / 模拟 EEPROM 存储器 读工作电压 – 模拟 EEPROM — — 1.8 — 5.5 存储器 VDD V 擦 / 写工作电压 – 模拟 — Ta=25°C 1.8 — 5.5 EEPROM 存储器 擦 / 写时间 – Flash 程序存储器 5.0V Ta=25°C — 2 3 ms EWRTS[1:0]=00B, — — 2 3 Ta=25°C EWRTS[1:0]=01B, — — 4 6 tDEW 擦 / 写时间 – 模拟 EEPROM Ta=25°C ms 存储器 EWRTS[1:0]=10B, — — 8 12 Ta=25°C EWRTS[1:0]=11B, — — 16 24 Ta=25°C EP 电容耐久性 — — 10K — — E/W tRETD ROM 数据保存时间 — Ta=25°C — 40 — Year RAM 数据存储器 VDD 读 / 写工作电压 — — VDDmin — VDDmax V VDR RAM 数据保存电压 — 单片机处于休眠模式 1.0 — — V 注:1. 模拟 EEPROM 擦 / 写操作只有在 fSYS 时钟频率大于等于 2MHz 时才可执行。 2.“E/W”表示擦 / 写次数。 Rev.1.40 19 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 LVR 电气特性 符号 Ta=-40°C~85°C 参数 VLVR 低电压复位电压 ILVRBG 工作电流 ILVR LVR 使能的额外电流 产生 LVR 复位的低电压最 短保持时间 tLVR 测试条件 VDD 条件 — LVR 使能,电压选择 1.7V 3V LVR 使能,VLVR=1.7V 5V 5V — — — 最小 典型 最大 单位 -5% — — — 1.7 — 15 — +5% 15 25 25 V μA 120 240 480 μs μA 内部参考电压电气特性 Ta=25°C 符号 IBG tBGS 参数 使能 Bandgap 参考电压的额外 电流 VBG 启动稳定时间 测试条件 条件 VDD 最小 典型 最大 单位 — VBGEN=1,LVR 除能 — — 2 μA — 无负载 — — 50 μs 注: VBG 电压可以用作 A/D 转换器内部信号 OPA 输入。 A/D 转换器电气特性 符号 参数 VDD VADI VREF NR DNL INL A/D 转换器工作电压 A/D 转换器输入电压 A/D 转换器参考电压 分辨率 A/D 非线性微分误差 A/D 非线性积分误差 IADC A/D 转换器使能的额外电流 tADCK tON2ST tADS A/D 转换器时钟周期 A/D 转换器 On-to-Start 时间 采样时间 A/D 转换时间 ( 包括采样和保持时间 ) tADC IPGA Rev.1.40 使能 OPA 的额外电流 Ta=-40°C~85°C 测试条件 最小 典型 最大 VDD 条件 — — 1.8 — 5.5 — — 0 — VREF — — 1.6 — VDD — — — — 10 — VREF=VDD,tADCK=0.5μs -1.5 — +1.5 — VREF=VDD,tADCK=0.5μs -2 — +2 1.8V — 300 420 3V 无负载,tADCK=0.5μs — 340 500 5V — 500 700 — — 0.5 — 10.0 — — 4 — — — — — 4 — — 3V 5V — 无负载 20 单位 V V V Bit LSB LSB μA μs μs tADCK — 14 — tADCK — — 390 500 550 650 μA 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 符号 VOR VVR 参数 测试条件 条件 VDD OPA 的最大输出电压范围 VSS+ 0.1 VSS+ 0.1 3V — 5V 1.8V~ 5.5V OPA 的固定电压输出 最小 典型 最大 单位 -5% — — — 1.6 VDD 0.1 VDD 0.1 V +5% V 上电复位特性 Ta=-40°C~85°C 符号 VPOR RRPOR tPOR 参数 上电复位电压 上电复位电压速率 VDD 保持为 VPOR 的最小时间 VDD — — — 测试条件 条件 — — — 最小 典型 最大 单位 — 0.035 1 — — — 100 — — mV V/ms ms VDD tPOR RRPOR VPOR Time 系统结构 内部系统结构是 Holtek 单片机具有良好性能的主要因素。由于采用 RISC 结构, 此系列单片机具有高运算速度和高性能的特点。通过流水线的方式,指令的获 取和执行同时进行,此举使得除了跳转和调用指令需多一个指令周期外,其它 大部分指令都能分别在一个指令周期内完成。8 位 ALU 参与指令集中所有的运 算,它可完成算术运算、逻辑运算、移位、递增、递减和分支等功能,而内部 的数据路径则是以通过累加器和 ALU 的方式加以简化。有些寄存器在数据存储 器中被实现,且可以直接或间接寻址。简单的寄存器寻址方式和结构特性,确 保了在提供具有较大可靠度和灵活性的 I/O 和 A/D 控制系统时,仅需要少数的 外部器件。使得该系列单片机适用于低成本和大量生产的控制应用。 时序和流水线结构 主系统时钟由 HIRC 或 LIRC 振荡器提供,它被细分为 T1~T4 四个内部产生的 非重叠时序。在 T1 时间,程序计数器自动加一并抓取一条新的指令。剩下的 时间 T2~T4 完成译码和执行功能,因此,一个 T1~T4 时钟周期构成一个指令周 期。虽然指令的抓取和执行发生在连续的指令周期,但单片机流水线结构会保 证指令在一个指令周期内被有效执行。除非程序计数器的内容被改变,如子程 序的调用或跳转,在这种情况下指令将需要多一个指令周期的时间去执行。 如果指令牵涉到分支,例如跳转或调用等指令,则需要两个指令周期才能完成 指令执行。需要一个额外周期的原因是程序先用一个周期取出实际要跳转或调 Rev.1.40 21 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 用的地址,再用另一个周期去实际执行分支动作,因此用户需要特别考虑额外 周期的问题,尤其是在执行时间要求较严格的时候。 fSYS (System Clock) Phase Clock T1 Phase Clock T2 Phase Clock T3 Phase Clock T4 Program Counter Pipelining PC PC+1 PC+2 Fetch Inst. (PC) Execute Inst. (PC-1) Fetch Inst. (PC+1) Execute Inst. (PC) Fetch Inst. (PC+2) Execute Inst. (PC+1) 系统时序和流水线 1 MOV A,[12H] 2 CALL DELAY 3 CPL [12H] 4 : 5 : 6 DELAY: NOP Fetch Inst. 1 Execute Inst. 1 Fetch Inst. 2 Execute Inst. 2 Fetch Inst. 3 Flush Pipeline Fetch Inst. 6 Execute Inst. 6 Fetch Inst. 7 指令捕捉 程序计数器 在程序执行期间,程序计数器用来指向下一个要执行的指令地址。除了“JMP” 和“CALL”指令需要跳转到一个非连续的程序存储器地址之外,它会在每条 指令执行完成以后自动加一。只有较低的 8 位,即所谓的程序计数器低字节寄 存器 PCL,可以被用户直接读写。 当执行的指令要求跳转到不连续的地址时,如跳转指令、子程序调用、中断或 复位等,单片机通过加载所需要的地址到程序寄存器来控制程序,对于条件跳 转指令,一旦条件符合,在当前指令执行时取得的下一条指令将会被舍弃,而 由一个空指令周期来取代。 型号 HT66F0021/HT66F0031 HT66F0041 程序计数器 高字节 低字节 (PCL) PC9~PC8 PCL7~PCL0 PC10~PC8 PCL7~PCL0 程序计数器的低字节,即程序计数器的低字节寄存器 PCL,可以通过程序控制, 且它是可以读取和写入的寄存器。通过直接写入数据到这个寄存器,一个程序 短跳转可直接执行,然而只有低字节的操作是有效的,跳转被限制在存储器的 当前页中,即 256 个存储器地址范围内,当这样一个程序跳转要执行时,会插 入一个空指令周期。程序计数器的低字节可由程序直接进行读取,PCL 的使用 可能引起程序跳转,因此需要额外的指令周期。 Rev.1.40 22 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 堆栈 堆栈是一个特殊的存储空间,用来存储程序计数器中的内容。该系列单片机有 多层堆栈,堆栈既不是数据部分也不是程序空间部分,而且它既不是可读取也 不是可写入的。当前层由堆栈指针 (SP) 加以指示,同样也是不可读写的。在子 程序调用或中断响应服务时,程序计数器的内容被压入到堆栈中。当子程序或 中断响应结束时,返回指令 (RET 或 RETI) 使程序计数器从堆栈中重新得到它 以前的值。当一个芯片复位后,堆栈指针将指向堆栈顶部。 如果堆栈已满,且有非屏蔽的中断发生,中断请求标志会被置位,但中断响应 将被禁止。当堆栈指针减少 ( 执行 RET 或 RETI ),中断将被响应。这个特性提 供程序设计者简单的方法来预防堆栈溢出。然而即使堆栈已满,CALL 指令仍 然可以被执行,而造成堆栈溢出。使用时应避免堆栈溢出的情况发生,因为这 可能导致不可预期的程序分支指令执行错误。 若堆栈溢出,则首个存入堆栈的程序计数器数据将会丢失。 型号 HT66F0021/HT66F0031 HT66F0041 堆栈层数 2 4 Program Counter Top of Stack Stack Pointer Stack Level 1 Stack Level 2 : : : Bottom of Stack Program Memory Stack Level N 算术逻辑单元 – 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.40 23 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 Flash 程序存储器 程序存储器用来存放用户代码即储存程序。程序存储器为 Flash 类型意味着可 以多次重复编程,方便用户使用同一芯片进行程序的修改。使用适当的单片机 编程工具,此系列单片机提供用户灵活便利的调试方法和项目开发规划及更新。 结构 程序存储器的容量为 1K×14 位或 2K×14 位,程序存储器用程序计数器来寻址, 其中也包含数据、表格和中断入口。数据表格可以设定在程序存储器的任何地 址,由表格指针来寻址。 型号 HT66F0021/HT66F0031 HT66F0041 000H 程序存储器容量 1K×14 2K×14 HT66F0021/0031 HT66F0041 Initialisation Vector Initialisation Vector Interrupt Vectors Interrupt Vectors Look-up Table Look-up Table 004H 010H 014H n00H nFFH 3FFH 14 bits 7FFH 14 bits 程序存储器结构 特殊向量 程序存储器内部某些地址保留用做诸如复位和中断入口等特殊用途。地址 000H 是芯片复位后的程序起始地址。在芯片复位之后,程序将跳到这个地址并开始 执行。 查表 程序存储器中的任何地址都可以定义成一个表格,以便储存固定的数据。使用 表格时,表格指针必须先行设定,其方式是将表格的地址放在表格指针寄存器 TBLP 和 TBHP 中。这两个寄存器定义表格总的地址。 在设定完表格指针后,表格数据可以使用如“TABRD [m]”或“TABRDL [m]” 等指令分别从程序存储器查表读取。当这些指令执行时,程序存储器中表格数 据低字节,将被传送到使用者所指定的数据存储器 [m],程序存储器中表格数 据的高字节,则被传送到 TBLH 特殊寄存器,而高字节中未使用的位将被读取 为“0”。 Rev.1.40 24 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 下图是查表中寻址 / 数据流程: Program Memory Address Last Page or TBHP Register TBLP Register Data 14 bits Register TBLH User Selected Register High Byte Low Byte 查表范例 以下范例说明表格指针和表格数据如何被定义和执行。这个例子使用的表格 数据用 ORG 伪指令储存在存储器中。ORG 指令的值“300H”指向的地址是 HT66F0021/0031 的 1K 程序存储器中最后一页的起始地址。表格指针低字节 寄存器的初始值设为 06H,这可保证从数据表格读取的第一笔数据位于程序存 储器地址 306H,即最后一页起始地址后的第六个地址。值得注意的是,假如 “TABRD [m]”指令被使用,则表格指针指向 TBLP 和 TBHP 寄存器所指定的 地址。在这个例子中,表格数据的高字节等于零,而当“TABRD [m]”指令被 执行时,此值将会自动的被传送到 TBLH 寄存器。 TBLH 寄存器为只读寄存器,不能重新储存,若主程序和中断服务程序都使用 表格读取指令,应该注意它的保护。使用表格读取指令,中断服务程序可能会 改变 TBLH 的值,若随后在主程序中再次使用这个值,则会发生错误,因此建 议避免同时使用表格读取指令。然而在某些情况下,如果同时使用表格读取指 令是不可避免的,则在执行任何主程序的表格读取指令前,中断应该先除能, 另外要注意的是所有与表格相关的指令,都需要两个指令周期去完成操作。 表格读取程序范例 tempreg1 db ? tempreg2 db ? : : mov a,06h mov tblp,a mov a,03h mov tbhp,a : : tabrd tempreg1 dec tblp tabrd tempreg2 : : org 300h dc 00Ah, 00Bh, 00Ch, 00Dh, Rev.1.40 ; temporary register #1 ; temporary register #2 ; ; ; ; initialise low table pointer - note that this address is referenced to the last page or the page that tbhp pointed initialise high table pointer ; ; ; ; ; ; ; ; ; ; ; transfers value in table referenced by table pointer, data at program memory address “306H” 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 “305H” transferred to tempreg2 and TBLH in this example the data “1AH” is transferred to tempreg1 and data “0FH” to register tempreg2 the value “00H” will be transferred to the high byte register TBLH ; sets initial address of program memory 00Eh, 00Fh, 01Ah, 01Bh 25 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 在线烧录 – ICP 提供 Flash 型程序存储器,用户可便利地对同一芯片进行程序的更新和修改。 另外,Holtek 单片机提供 4 线接口的在线烧录方式。用户可将进行过烧录或未 经过烧录的单片机芯片连同电路板一起制成,最后阶段进行程序的更新和程序 的烧录,在无需拔出再重新插入芯片的情况下方便地保持程序为最新版。 Holtek 烧录器引脚名称 ICPDA ICPCK VDD VSS MCU 在线烧录引脚名称 PA0 PA2 VDD VSS 功能 串行数据 / 地址烧录 时钟烧录 电源 地 程序存储器可以通过 4 线的接口在线进行烧录。其中一条线用于数据串行下载 或上传、一条线用于串行时钟、剩下两条用于提供电源。芯片在线烧写的详细 使用说明超出此文档的描述范围,将由专门的参考文献提供。 烧录过程中,用户必须确保 ICPDA 和 ICPCK 这两个引脚没有连接至其它输出脚。 Writer Connector Signals MCU Programming Pins Writer_VDD VDD ICPDA PA0 ICPCK PA2 Writer_VSS VSS * * To other Circuit 注:* 可能为电阻或电容。若为电阻则其值必须大于 1kΩ,若为电容则其必须小于 1nF。 片上调试 – OCDS EV 芯片 HT66V00x1 用于 HT66F00x1 单片机仿真。EV 芯片提供片上调试功能 (OCDS) 用于开发过程中的单片机调试。除了片上调试功能外,单片机和 EV 芯 片在功能上几乎是兼容的。用户可将 OCDSDA 和 OCDSCK 引脚连接至 Holtek HT-IDE 开发工具,从而实现 EV 芯片对单片机的仿真。OCDSDA 引脚为 OCDS 数据 / 地址输入 / 输出脚,OCDSCK 引脚为 OCDS 时钟输入脚。当用户用 EV 芯片进行调试时,OCDSDA 和 OCDSCK 引脚上的其它共用功能在 EV 芯片无 效。由于这两个 OCDS 引脚与 ICP 引脚共用,因此在线烧录时仍用作 Flash 存 储器烧录引脚。关于 OCDS 功能的详细描述,请参考“Holtek e-Link for 8-bit MCU OCDS 用户手册”文件。 Holtek e-Link 引脚名称 EV 芯片引脚名称 OCDSDA OCDSDA OCDSCK OCDSCK VDD VDD VSS VSS Rev.1.40 26 功能 片上调试串行数据 / 地址输入 / 输出 片上调试时钟输入 电源 地 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 数据存储器 数据存储器是内容可更改的 8 位 RAM 内部存储器,用来储存临时数据。 结构 数据存储器分为两种类型,第一种是特殊功能数据存储器。这些寄存器有固定 的地址且与单片机的正确操作密切相关。大多特殊功能寄存器都可在程序控制 下直接读取和写入,但有些被加以保护。第二种数据存储器是做一般用途使用, 都可在程序控制下进行读取和写入。 此系列单片机数据存储器的起始地址是“00H”。特殊功能数据存储器地址范 围为 00H~3FH,而通用数据存储器地址范围为 40H~7FH。 00H Special Purpose Data Memory 3FH 40H General Purpose Data Memory 7FH Bank0 数据存储器结构 通用数据存储器 所有的单片机程序需要一个读 / 写的存储区,让临时数据可以被储存和再使用, 该 RAM 区域就是通用数据存储器。这个数据存储区可让使用者进行读取和写 入的操作。使用位操作指令可对个别的位做置位或复位的操作,较大地方便了 用户在数据存储器内进行位操作。 特殊功能数据存储器 这个区域的数据存储器是存放特殊寄存器的,这些寄存器与单片机的正确操作 密切相关,大多数的寄存器可进行读取和写入,只有一些是被写保护而只能读 取的,相关细节的介绍请参看有关特殊功能寄存器的部分。要注意的是,任何 读取指令对存储器中未定义的地址进行读取将返回“00H”。 Rev.1.40 27 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 11H 12H 13H 14H 15H 16H 17H 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 32H 33H 34H 34H Bank 0 IAR0 MP0 ACC PCL TBLP TBLH TBHP STATUS INTEG WDTC TBC RSTFC PASR SCC HIRCC IFS PA PAC PAPU PAWU ECR EAR EDL EDH TMRC TMR PWMC PWMDATA INTC0 INTC1 SADOL SADOH SADC0 SADC1 PSCR LVRC VBGC 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 11H 12H 13H 14H 15H 16H 17H 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 32H 33H 34H 34H Bank 0 IAR0 MP0 ACC PCL TBLP TBLH TBHP STATUS INTEG WDTC TBC RSTFC PASR SCC HIRCC IFS PA PAC PAPU PAWU PB PBC PBPU ECR EAR EDL EDH TMRC TMR PWMC PWMDATA INTC0 INTC1 SADOL SADOH SADC0 SADC1 PSCR LVRC VBGC 3FH 3FH 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 11H 12H 13H 14H 15H 16H 17H 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 2BH 2CH 2DH 2EH 2FH 30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 3AH 3BH Bank 0 IAR0 MP0 ACC PCL TBLP TBLH TBHP STATUS INTEG WDTC TBC RSTFC PASR SCC HIRCC IFS PA PAC PAPU PAWU PB PBC PBPU ECR EAR ED0L ED0H TMRC TMR INTC0 INTC1 SADOL SADOH SADC0 SADC1 PSCR PC PCC PCPU ED1L ED1H ED2L ED2H ED3L ED3H LVRC VBGC PWMC PWMP PWMD SLEDC0 SLEDC1 LVPUC 3FH : Unused, read as 00H : Unused, read as 00H : Unused, read as 00H HT66F0021 HT66F0031 HT66F0041 特殊功能数据存储器结构 Rev.1.40 28 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 特殊功能寄存器 大部分特殊功能寄存器的细节将在相关功能章节描述,但有几个寄存器需在此 章节单独描述。 间接寻址寄存器 – IAR0 间接寻址寄存器 IAR0 虽位于数据存储器寄存器区域,但不同于正常寄存器, 它没有实际的物理地址。与定义实际存储器地址的直接存储器寻址不同,间接 寻址是使用间接寻址寄存器和存储器指针来执行存储器数据操作。在间接寻址 寄存器 IAR0 上的任何动作,将对存储器指针 MP0 所指定的存储器地址产生对 应的读 / 写操作。它们总是成对出现,IAR0 和 MP0 可以访问 Bank 0。因为这 些间接寻址寄存器不是实际存在的,直接读取将返回“00H”的结果,而直接 写入这些寄存器则不做任何操作。 存储器指针 – MP0 该系列单片机提供一个存储器指针,即 MP0。由于这个指针在数据存储器中能 像普通的寄存器一般被操作,因此提供了一个寻址和数据追踪的有效方法。当 对间接寻址寄存器进行任何操作时,单片机指向的实际地址是由存储器指针所 指定的地址。MP0、IAR0 用于访问 Bank 0。 以下例子说明如何清空一个具有 4 个 RAM 地址的区块,它们已事先定义成地 址 adres1 到 adres4。 间接寻址程序举例 data .section ‘data’ adres1 db ? adres2 db ? adres3 db ? adres4 db ? block db ? code .section at 0 code org 00h start: mov a,04h mov block,a mov a,offset adres1 mov mp0,a loop: clr IAR0 inc mp0 sdz block jmp loop continue: : ; set size of block ; Accumulator loaded with first RAM address ; setup memory pointer with first RAM address ; clear the data at address defined by MP0 ; increase memory pointer ; check if last memory location has been cleared 在上面的例子中有一点值得注意,即并没有确定 RAM 地址。 累加器 – ACC 对任何单片机来说,累加器是相当重要的,且与 ALU 所完成的运算有密切关 系,所有 ALU 得到的运算结果都会暂时存在 ACC 累加器里。若没有累加器, ALU 必须在每次进行如加法、减法和移位的运算时,将结果写入到数据存储器, 这样会造成程序编写和时间的负担。另外数据传送也常常牵涉到累加器的临时 储存功能,例如在使用者定义的一个寄存器和另一个寄存器之间传送数据时, 由于两寄存器之间不能直接传送数据,因此必须通过累加器来传送数据。 Rev.1.40 29 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 程序计数器低字节寄存器 – 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。 另外,当进入一个中断程序或执行子程序调用时,状态寄存器不会自动压入到 堆栈保存。假如状态寄存器的内容是重要的且子程序可能改变状态寄存器的话, 则需谨慎的去做正确的储存。 Rev.1.40 30 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● STATUS 寄存器 Bit Name R/W POR 7 — — — 6 — — — 5 TO R 0 4 PDF R 0 3 OV R/W x 2 Z R/W x 1 AC R/W x 0 C R/W x “x”:未知 Rev.1.40 Bit 7~6 未定义,读为“0” Bit 5 TO:看门狗溢出标志位 0:系统上电或执行“CLR WDT”或“HALT”指令后 1:看门狗溢出发生 Bit 4 PDF:暂停标志位 0:系统上电或执行“CLR WDT”指令后 1:执行“HALT”指令 Bit 3 OV:溢出标志位 0:无溢出 1:运算结果高两位的进位状态异或结果为 1 Bit 2 Z:零标志位 0:算术或逻辑运算结果不为 0 1:算术或逻辑运算结果为 0 Bit 1 AC:辅助进位标志位 0:无辅助进位 1:在加法运算中低四位产生了向高四位进位,或减法运算中低四位不发生从 高四位借位 Bit 0 C:进位标志位 0:无进位 1:如果在加法运算中结果产生了进位,或在减法运算中结果不发生借位 C 也受循环移位指令的影响。 31 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 模拟 EEPROM 数据存储器 该系列单片机内建模拟 EEPROM 数据存储器。由于其非易失的存储结构,即使 在电源掉电的情况下存储器内的数据仍然保存完好。这种存储区扩展了存储器 空间,对设计者来说增加了许多新的应用机会。模拟 EEPROM 可以用来存储产 品编号、校准值、用户特定数据、系统配置参数或其它产品信息等。 模拟 EEPROM 数据存储器结构 该系列单片机的模拟 EEPROM 数据存储器容量为 32×14 位。该模拟 EEPROM 以页为单位进行擦操作,以字为单位进行读 / 写操作。页的大小为 16 字。注意, 在执行写操作之前必须先执行擦操作。 操作 擦除 写入 读取 注:页大小 = 16 字 格式 16 字 / 页 1字/次 1字/次 模拟 EEPROM 擦除 / 写 / 读格式 – HT66F0021/HT66F0031 操作 擦除 写入 读取 注:页大小 = 16 字 格式 16 字 / 页 4字/次 1字/次 模拟 EEPROM 擦除 / 写 / 读格式 – HT66F0041 EAR4 0 1 擦除页 0 1 EAR [3:0] xxxx xxxx “x”:无关 擦除页序号及选择 EAR[4:2] 000 001 010 011 100 101 110 111 写单元 0 1 2 3 4 5 6 7 EAR [1:0] xx xx xx xx xx xx xx xx “x”:无关 写单元序号及选择 – HT66F0041 Rev.1.40 32 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 模拟 EEPROM 寄存器 一 些 寄 存 器 控 制 内 部 模 拟 EEPROM 数 据 存 储 器 总 的 操 作, 有 地 址 寄 存 器 EAR、数据寄存器 EDL/EDH 或 ED0L/ED0H~ED3L/ED3H 及一个控制寄存器 ECR。 寄存器 名称 EAR EDL EDH ECR 位 7 6 5 — — — D7 D6 D5 — — D13 EWRTS1 EWRTS0 EEREN 4 3 2 1 0 EAR4 EAR3 EAR2 EAR1 EAR0 D4 D3 D2 D1 D0 D12 D11 D10 D9 D8 EER EWREN EWR ERDEN ERD 模拟 EEPROM 寄存器列表 – HT66F0021/HT66F0031 位 寄存器 名称 7 6 5 EAR — — — ED0L D7 D6 D5 ED0H — — D13 ED1L D7 D6 D5 ED1H — — D13 ED2L D7 D6 D5 ED2H — — D13 ED3L D7 D6 D5 ED3H — — D13 ECR EWRTS1 EWRTS0 EEREN 4 3 2 1 0 EAR4 EAR3 EAR2 EAR1 EAR0 D4 D3 D2 D1 D0 D12 D11 D10 D9 D8 D4 D3 D2 D1 D0 D12 D11 D10 D9 D8 D4 D3 D2 D1 D0 D12 D11 D10 D9 D8 D4 D3 D2 D1 D0 D12 D11 D10 D9 D8 EER EWREN EWR ERDEN ERD 模拟 EEPROM 寄存器列表 – HT66F0041 ● EAR 寄存器 Bit Name R/W POR 7 — — — 6 — — — 5 — — — 4 EAR4 R/W 0 3 EAR3 R/W 0 2 EAR2 R/W 0 Bit 7~5 未定义,读为“0” Bit 4~0 EAR4~EAR0:模拟 EEPROM 存储器地址 bit 4 ~ bit 0 1 EAR1 R/W 0 0 EAR0 R/W 0 1 D1 R/W 0 0 D0 R/W 0 ● EDL 寄存器 – HT66F0021/HT66F0031 Bit Name R/W POR Bit 7~0 Rev.1.40 7 D7 R/W 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 D7~D0:模拟 EEPROM 存储器数据 bit 7 ~ bit 0 33 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● EDH 寄存器 – HT66F0021/HT66F0031 Bit Name R/W POR 7 — — — 6 — — — 5 D13 R/W 0 4 D12 R/W 0 3 D11 R/W 0 Bit 7~6 未定义,读为“0” Bit 5~0 D13~D8:模拟 EEPROM 存储器数据 bit 13 ~ bit 8 2 D10 R/W 0 1 D9 R/W 0 0 D8 R/W 0 2 D2 R/W 0 1 D1 R/W 0 0 D0 R/W 0 1 D9 R/W 0 0 D8 R/W 0 1 D1 R/W 0 0 D0 R/W 0 1 D9 R/W 0 0 D8 R/W 0 1 D1 R/W 0 0 D0 R/W 0 ● ED0L 寄存器 – HT66F0041 Bit Name R/W POR Bit 7~0 7 D7 R/W 0 6 D6 R/W 0 5 D5 R/W 0 4 D4 R/W 0 3 D3 R/W 0 D7~D0:第一个模拟 EEPROM 存储器数据 bit 7 ~ bit 0 ● ED0H 寄存器 – HT66F0041 Bit Name R/W POR 7 — — — 6 — — — 5 D13 R/W 0 4 D12 R/W 0 3 D11 R/W 0 2 D10 R/W 0 Bit 7~6 未定义,读为“0” Bit 5~0 D13~D8:第一个模拟 EEPROM 存储器数据 bit 13 ~ bit 8 ● ED1L 寄存器 – HT66F0041 Bit Name R/W POR Bit 7~0 7 D7 R/W 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 D7~D0:第二个模拟 EEPROM 存储器数据 bit 7 ~ bit 0 ● ED1H 寄存器 – HT66F0041 Bit Name R/W POR 7 — — — 6 — — — 5 D13 R/W 0 4 D12 R/W 0 3 D11 R/W 0 2 D10 R/W 0 Bit 7~6 未定义,读为“0” Bit 5~0 D13~D8:第二个模拟 EEPROM 存储器数据 bit 13 ~ bit 8 ● ED2L 寄存器 – HT66F0041 Bit Name R/W POR Bit 7~0 Rev.1.40 7 D7 R/W 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 D7~D0:第三个模拟 EEPROM 存储器数据 bit 7 ~ bit 0 34 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● ED2H 寄存器 – HT66F0041 Bit Name R/W POR 7 — — — 6 — — — 5 D13 R/W 0 4 D12 R/W 0 3 D11 R/W 0 2 D10 R/W 0 Bit 7~6 未定义,读为“0” Bit 5~0 D13~D8:第三个模拟 EEPROM 存储器数据 bit 13 ~ bit 8 1 D9 R/W 0 0 D8 R/W 0 1 D1 R/W 0 0 D0 R/W 0 1 D9 R/W 0 0 D8 R/W 0 ● ED3L 寄存器 – HT66F0041 Bit Name R/W POR Bit 7~0 7 D7 R/W 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 D7~D0:第四个模拟 EEPROM 存储器数据 bit 7 ~ bit 0 ● ED3H 寄存器 – HT66F0041 Bit Name R/W POR 7 — — — 6 — — — 5 D13 R/W 0 4 D12 R/W 0 3 D11 R/W 0 2 D10 R/W 0 Bit 7~6 未定义,读为“0” Bit 5~0 D13~D8:第四个模拟 EEPROM 存储器数据 bit 13 ~ bit 8 ● ECR 寄存器 Bit Name R/W POR Rev.1.40 7 6 5 EWRTS1 EWRTS0 EEREN R/W R/W R/W 0 0 0 4 EER R/W 0 3 EWREN R/W 0 2 EWR R/W 0 1 ERDEN R/W 0 0 ERD R/W 0 Bit 7~6 EWRTS1~EWRTS0:模拟 EEPROM 擦 / 写时间选择 00:2ms 01:4ms 10:8ms 11:16ms Bit 5 EEREN:模拟 EEPROM 擦使能位 0:除能 1:使能 此位为模拟 EEPROM 擦使能位,向模拟 EEPROM 执行擦操作之前需将此位 置高。擦周期结束后,硬件自动将此位清零。将此位清零时,则禁止向模拟 EEPROM 执行擦操作。 Bit 4 EER:模拟 EEPROM 擦控制位 0:擦周期结束 1:开启擦周期 此位为模拟 EEPROM 擦控制位,由应用程序将此位置高将激活擦周期。擦周期 结束后,硬件自动将此位清零。当 EEREN 未先置高时,此位置高无效。 35 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 Bit 3 EWREN:模拟 EEPROM 写使能位 0:除能 1:使能 此位为模拟 EEPROM 写使能位,向模拟 EEPROM 执行写操作之前需将此位 置高。写周期结束后,硬件自动将此位清零。将此位清零时,则禁止向模拟 EEPROM 执行写操作。 Bit 2 EWR:模拟 EEPROM 写控制位 0:写周期结束 1:开启写周期 此位为模拟 EEPROM 写控制位,由应用程序将此位置高将激活写周期。写周期 结束后,硬件自动将此位清零。当 EWREN 未先置高时,此位置高无效。 Bit 1 ERDEN:模拟 EEPROM 读使能位 0:除能 1:使能 此位为模拟 EEPROM 读使能位,向模拟 EEPROM 执行读操作之前需将此位置 高。将此位清零时,则禁止向模拟 EEPROM 执行读操作。 Bit 0 ERD:模拟 EEPROM 读控制位 0:读周期结束 1:开启读周期 此位为模拟 EEPROM 读控制位,由应用程序将此位置高将激活读周期。读周期 结束后,硬件自动将此位清零。当 ERDEN 未首先置高时,此位置高无效。 注:1. 在同一条指令中 EEREN、EER、EWREN、EWR、ERDEN 和 ERD 不能同时置为“1”。 2. 应注意,当读 / 写 / 擦操作成功启动后,CPU 将停止运行。 3. 在执行擦或写操作之前,先确保 fSYS 时钟频率大于等于 2MHz 且 fSUB 时钟已稳定。 4. 需确保读 / 写 / 擦操作已执行完毕后才可执行其它操作。 擦除模拟 EEPROM 中的数据 擦除模拟 EEPROM 中的数据,被擦除页的地址要先放入 EAR 寄存器中,被擦 除页的大小为 16 字 / 页。因此,可用页的擦除地址仅由 EAR 寄存器的 EAR4 位决定,而 EAR 寄存器的 EAR3~EAR0 位的内容未用于决定被擦除页的地址。 擦除模拟 EEPROM 中的数据,ECR 寄存器中的擦使能位 EEREN 先置为高以使 能擦功能,然后 ECR 寄存器中的 EER 位需立即置高以开始擦操作。这两条指 令必须在两个指令周期内连续执行才可成功启动一个擦除操作。进行擦除操作 之前应先将总中断使能位 EMI 清零,在一个有效的擦启动步骤完成之后再将其 使能。注意当擦除操作成功启动后,CPU 将停止运行。当擦周期结束,CPU 将 恢复执行应用程序。而 EER 位将自动被硬件清零,以告知用户数据已被擦除。 执行完一个擦操作后,模拟 EEPROM 被擦除页的内容将全为“0”。 写数据到模拟 EEPROM 写数据至模拟 EEPROM,模拟 EEPROM 中写入数据的地址要先放入 EAR 寄存 器中,要写入的数据需存入 EDH/EDL 寄存器或 ED0L/ED0H~ED3L/ED3H 寄存 器对中。对于 HT66F0021 和 HT66F0031 单片机,写操作的大小为 1 字 / 次,因 此写操作的地址由 EAR 寄存器所有的位决定。然而,HT66F0041 单片机写操作 的大小为 4 字 / 次,因此,有用的写单元地址仅由 EAR 寄存器的 EAR4~EAR2 位决定,而 EAR1~EAR0 位未用于决定写单元地址。 写数据至模拟 EEPROM,ECR 寄存器中的写使能位 EWREN 先置为高以使能写 功能,然后 ECR 寄存器中的 EWR 位需立即置高以开始写操作。这两条指令必须 在两个指令周期内连续执行才可成功启动一个写操作。进行写操作之前应先将总 中断使能位 EMI 清零,在一个有效的写启动步骤完成之后再将其使能。注意当 写操作成功启动后,CPU 将停止运行。当写周期结束,CPU 将恢复执行应用程序。 而 EWR 位将自动被硬件清零,以告知用户数据已被写入模拟 EEPROM。 Rev.1.40 36 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 从模拟 EEPROM 中读取数据 从模拟 EEPROM 中读取数据,要读取的数据的地址需先放入 EAR 寄存器中。 ECR 寄存器中的读使能位 ERDEN 先置为高以使能读功能。若 ECR 寄存器中的 ERD 位被置高,一个读周期将开始。注意当读操作成功启动后,CPU 将停止运 行。当读周期结束,CPU 将恢复执行应用程序。而 ERD 位将自动被硬件清零, 以告知用户已从模拟 EEPROM 中读取到数据。该数据可通过应用程序从 EDH/ EDL 寄存器或 ED0H/ED0L 寄存器对中读到,读到的数据在其它读、写或擦操 作执行前将一直保留在该寄存器或对中。 编程注意事项 必须注意的是数据不会无意写入模拟 EEPROM。在没有写动作时写使能位被正 常清零可以增强保护功能。尽管没有必要,写一个简单的读回程序以检查新写 入的数据是否正确还是应该考虑的。EWREN 或 EEREN 位置位后,ECR 寄存 器中的 EWR 或 EER 位需立即置位,以确保写或擦周期正确地执行。写或擦周 期开始前总中断位 EMI 应先清零,在一个有效的写或擦启动步骤完成之后再将 此位重新使能。注意,单片机不应在模拟 EEPROM 执行读、写或擦操作完全完 成之前进入空闲或休眠模式,否则模拟 EEPROM 读、写或擦操作将失败。 程序举例 擦除模拟 EEPROM 的一个数据页 – 轮询法 MOV A, EEPROM_ADRES ; MOV EAR, A MOV A, 00H ; ; MOV ECR, A CLR EMI SET EEREN ; SET EER ; ; SET EMI BACK: SZ EER ; JMP BACK : user-defined page Erase time=2ms (40H for 4ms, 80H for 8ms, C0H for 16ms) set EEREN bit, enable erase operation start Erase Cycle - set EER bit – executed immediately after setting EEREN bit check for erase cycle end 写数据到模拟 EEPROM – 轮询法 MOV A, EEPROM_ADRES ; MOV EAR, A MOV A, EEPROM_DATA_L ; ; ; MOV EDL, A MOV A, EEPROM_DATA_H MOV EDH, A MOV A, 00H ; ; MOV ECR, A CLR EMI SET EWREN ; SET EWR ; ; SET EMI Rev.1.40 user-defined address user-defined data, for the HT66F0041 device, the 4 words of user-defined data are written to ED0L/ED0H ~ ED3L/ED3H Write time=2ms (40H for 4ms, 80H for 8ms, C0H for 16ms) set EWREN bit, enable write operation start Write Cycle – set EWR bit – executed immediately after setting EWREN bit 37 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 BACK: SZ EWR JMP BACK : ; check for write cycle end 从模拟 EEPROM 中读取数据 – 轮询法 MOV A, EEPROM_ADRES MOV EAR, A SET ERDEN SET ERD BACK: SZ ERD JMP BACK CLR ECR MOV A, EDL MOV READ_DATA_L, A MOV A, EDH MOV READ_DATA_H, A ; user defined address ; set ERDEN bit, enable read operation ; start Read Cycle - set ERD bit ; check for read cycle end ; ; ; ; ; disable Emulated EEPROM read if no more read operations are required move read data to user-defined register, for the HT66F0041 device, the read data is located in the ED0L/ED0H 注:对于每一个读操作,即使地址是连续的,都必须重新设置地址寄存器,接着再将 ERD 位置高开启一个读周期。 振荡器 不同的振荡器选择可以让使用者在不同的应用需求中实现更大范围的功能。振 荡器的灵活性使得在速度和功耗方面可以达到较佳的优化。振荡器操作是通过 相关的控制寄存器完成的。 振荡器概述 振荡器除了作为系统时钟源,还作为看门狗定时器和时基中断的时钟源。集成 的内部振荡器不需要任何外围器件。它们提供的高速和低速系统振荡器具有较 宽的频率范围。较高频率的振荡器提供更高的性能,但要求有更高的功率,反 之亦然。动态切换快慢系统时钟的能力使单片机具有灵活而优化的性能 / 功耗 比,此特性对功耗敏感的应用领域尤为重要。 类型 内部高速 RC 内部低速 RC 名称 HIRC LIRC 频率 8MHz 32kHz 振荡器类型 系统时钟配置 该系列单片机有两个系统振荡器,包括一个高速振荡器和一个低速振荡器。高 速振荡器为内部 8MHz 高速振荡器 HIRC,低速振荡器为内部 32kHz 低速振荡 器 LIRC。使用高速或低速振荡器作为系统时钟的选择是通过设置 SCC 寄存器 中的 CKS2~CKS0 位决定的,系统时钟可动态选择。 Rev.1.40 38 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 fH High Speed Oscillator HIRC fH/2 fH/4 fH/8 Prescaler IDLE0 SLEEP HIRCEN fH/32 Low Speed Oscillator fSUB LIRC fSYS fH/16 fH/64 CKS2~CKS0 fSUB IDLE2 SLEEP fLIRC 系统时钟配置选项 内部 RC 振荡器 – HIRC 内部 RC 振荡器是一个集成的系统振荡器,无需其它外部器件。内部 RC 振荡 器频率固定为 8MHz。芯片在制造时进行调整且内置频率补偿电路,使得振荡 频率因 VDD、温度以及芯片制成工艺不同的影响较大程度地降低。该内部时钟 无需额外的引脚。 内部 32kHz 振荡器 – LIRC 内部 32kHz 系统振荡器是一个完全集成的低频 RC 振荡器,它的典型频率值为 32kHz 且无需外部元件。芯片在制造时进行调整且内置频率补偿电路,使得振 荡器因电源电压、温度及芯片制成工艺不同的影响较大程度地降低。 工作模式和系统时钟 现今的应用要求单片机具有较高的性能及尽可能低的功耗,这种矛盾的要求在 便携式电池供电的应用领域尤为明显。高性能所需要的高速时钟将增加功耗, 反之亦然。此系列单片机提供高、低速两种时钟源,它们之间可以动态切换, 用户可通过优化单片机操作来获得较佳性能 / 功耗比。 系统时钟 此系列单片机为 CPU 和外围功能操作提供了多种不同的时钟源。用户使用寄存 器编程可获取多种时钟,进而使系统时钟获取较大的应用性能。 主系统时钟可来自高频时钟源 fH 或低频时钟源 fSUB,通过 SCC 寄存器中的 CKS2~CKS0 位进行选择。高频时钟来自 HIRC 振荡器。低频系统时钟源来自 LIRC 振荡器。其它系统时钟还有高速系统振荡器的分频 fH/2~fH/64。 Rev.1.40 39 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 fH fH/2 High Speed Oscillator fH/4 fH/8 HIRC IDLE0 SLEEP Prescaler fSYS fH/16 fH/32 HIRCEN fH/64 fSUB Low Speed Oscillator CKS2~CKS0 LIRC fSUB IDLE2 SLEEP fLIRC TBON fSUB WDT fSYS/4 fPSC fSYS Prescaler CLKSEL[1:0] Time Base TB[2:0] 单片机时钟选项 注:当系统时钟源 fSYS 由 fH 到 fSUB 转换时,可以通过设置相应的高速振荡器使能控制位,选 择停止以节省耗电,或者继续振荡,为外围电路提供 fH~fH/64 频率的时钟源。 系统工作模式 单片机有 6 种不同的工作模式,每种有它自身的特性,根据应用中不同的性能 和功耗要求可选择不同的工作模式。单片机正常工作有两种模式:快速模式和 低速模式。剩余的 4 种工作模式:休眠模式、空闲模式 0、空闲模式 1 和空闲 模式 2 用于单片机 CPU 关闭时以节省耗电。 工作模式 CPU 快速模式 低速模式 On On 空闲模式 0 Off 空闲模式 1 Off 空闲模式 2 Off 休眠模式 Off 寄存器设置 fSYS fH FHIDEN FSIDEN CKS2~CKS0 x x 000~110 fH~fH/64 On (1) x x 111 fSUB On/Off 000~110 Off 0 1 Off 111 On 1 1 xxx On On 000~110 On 1 0 On 111 Off 0 0 xxx Off Off fSUB fLIRC On On On On On On On On Off On Off On/Off (2) “x”:无关 注:1. 在低速模式中,fH 开启或关闭由相应的振荡器使能位控制。 2. 在休眠模式中,fLIRC 开启或关闭由 WDT 功能使能或除能控制。 Rev.1.40 40 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 快速模式 这是主要的工作模式之一,单片机的所有功能均可在此模式中实现且系统时 钟由一个高速振荡器提供。该模式下单片机正常工作的时钟源来自 HIRC 振荡 器。高速振荡器频率可被分为 1~64 的不等比率,实际的比率由 SCC 寄存器中 的 CKS2~CKS0 位选择。单片机使用高速振荡器分频作为系统时钟可减少工作 电流。 低速模式 此模式的系统时钟虽为较低速时钟源,但单片机仍能正常工作。该低速时钟源 可来自 fSUB,而 fSUB 来自 LIRC 振荡器。 休眠模式 执行 HALT 指令后且 SCC 寄存器中的 FHIDEN 和 FSIDEN 位都为低时,系统 进入休眠模式。在休眠模式中,CPU 停止运行,fSUB 停止为外围功能提供时钟。 若看门狗定时器功能使能,fLIRC 继续运行。 空闲模式 0 执行 HALT 指令后且 SCC 寄存器中的 FHIDEN 位为低、FSIDEN 位为高时,系 统进入空闲模式 0。在空闲模式 0 中,CPU 停止,但低速振荡器会开启以驱动 一些外围功能。 空闲模式 1 执行 HALT 指令后且 SCC 寄存器中的 FHIDEN 和 FSIDEN 位都为高时,系统 进入空闲模式 1。在空闲模式 1 中,CPU 停止,但高速和低速振荡器都会开启 以确保一些外围功能继续工作。 空闲模式 2 执行 HALT 指令后且 SCC 寄存器中的 FHIDEN 位为高、FSIDEN 位为低时,系 统进入空闲模式 2。在空闲模式 2 中,CPU 停止,但高速振荡器会开启以确保 一些外围功能继续工作。 控制寄存器 寄存器 SCC 和 HIRCC 用于控制系统时钟和相应的振荡器配置。 寄存器 名称 SCC HIRCC 位 7 CKS2 — 6 CKS1 — 5 CKS0 — 4 — — 3 — — 2 — — 1 0 FHIDEN FSIDEN HIRCF HIRCEN 系统工作模式控制寄存器列表 Rev.1.40 41 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● SCC 寄存器 Bit Name R/W POR 7 CKS2 R/W 0 6 CKS1 R/W 0 5 CKS0 R/W 0 4 — — — 3 — — — 2 — — — 1 0 FHIDEN FSIDEN R/W R/W 0 0 Bit 7~5 CKS2~CKS0:系统时钟选择位 000:fH 001:fH/2 010:fH/4 011:fH/8 100:fH/16 101:fH/32 110:fH/64 111:fSUB 这三位用于选择系统时钟源。除了 fH 或 fSUB 提供的系统时钟源外,也可使用高 频振荡器的分频作为系统时钟。 Bit 4~2 未定义,读为“0” Bit 1 FHIDEN:CPU 关闭时高频振荡器控制位 0:除能 1:使能 此位用来控制在执行 HALT 指令关闭 CPU 后高速振荡器是开启还是停止。 Bit 0 FSIDEN:CPU 关闭时低频振荡器控制位 0:除能 1:使能 此位用来控制在执行 HALT 指令关闭 CPU 后低速振荡器是开启还是停止。 ● HIRCC 寄存器 Bit Name R/W POR 7 — — — 6 — — — 5 — — — 4 — — — 3 — — — 2 — — — 1 0 HIRCF HIRCEN R R/W 0 1 Bit 7~2 未定义,读为“0” Bit 1 HIRCF:HIRC 振荡器稳定标志位 0:HIRC 未稳定 1:HIRC 稳定 此 位 用 于 表 明 HIRC 振 荡 器 是 否 稳 定。HIRCEN 位 置 高 使 能 HIRC 振 荡 器, HIRCF 位会先被清零,在 HIRC 稳定后会被置高。 Bit 0 HIRCEN:HIRC 振荡器使能控制位 0:除能 1:使能 工作模式切换 此系列单片机可在各个工作模式间自由切换,使得用户可根据所需选择较佳的 性能 / 功耗比。用此方式,对单片机工作的性能要求不高的情况下,可使用较 低频时钟以减少工作电流,在便携式应用上延长电池的使用寿命。 简单来说,快速模式和低速模式间的切换仅需设置 SCC 寄存器中的 CKS2~CKS0 位即可实现,而快速模式 / 低速模式与休眠模式 / 空闲模式间的切换经由 HALT 指令实现。当 HALT 指令执行后,单片机是否进入空闲模式或休眠模式由 SCC 寄存器中的 FHIDEN 和 FSIDEN 位决定的。 Rev.1.40 42 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 FAST fSYS=fH~fH/64 fH on CPU run fSYS on fSUB on SLOW fSYS=fSUB fSUB on CPU run fSYS on fH on/off SLEEP HALT instruction executed CPU stop FHIDEN=0 FSIDEN=0 fH off fSUB off IDLE0 HALT instruction executed CPU stop FHIDEN=0 FSIDEN=1 fH off fSUB on IDLE2 HALT instruction executed CPU stop FHIDEN=1 FSIDEN=0 fH on fSUB off IDLE1 HALT instruction executed CPU stop FHIDEN=1 FSIDEN=1 fH on fSUB on 快速模式切换到低速模式 系统运行在快速模式时使用高速系统振荡器,因此较为耗电。可通过设置 SCC 寄存器中的 CKS2~CKS0 位为“111”使系统时钟切换至运行在低速模式下。此 时将使用低速系统振荡器以节省耗电。用户可在对性能要求不高的操作中使用 此方法以减少耗电。 低速模式的系统时钟源自 LIRC 振荡器,因此要求此振荡器在所有模式切换动 作发生前稳定下来。 FAST Mode CKS2~CKS0 = 111 SLOW Mode FHIDEN=0, FSIDEN=0 HALT instruction is executed SLEEP Mode FHIDEN=0, FSIDEN=1 HALT instruction is executed IDLE0 Mode FHIDEN=1, FSIDEN=1 HALT instruction is executed IDLE1 Mode FHIDEN=1, FSIDEN=0 HALT instruction is executed IDLE2 Mode Rev.1.40 43 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 低速模式切换到快速模式 在低速模式时系统时钟来自 fSUB。切换回快速模式时,需设置 CKS2~CKS0 位 为“000”~“110”使系统时钟从 fSUB 切换到 fH~fH/64。 然而,如果在低速模式下 fH 因未使用而关闭,那么从低速模式切换到快速模 式时,它需要一定的时间来重新起振和稳定,可通过检测 HIRCC 寄存器中的 HIRCF 位进行判断,所需的高速系统振荡器稳定时间在系统上电时间电气特性 中有说明。 SLOW Mode CKS2~CKS0 = 000~110 FAST Mode FHIDEN=0, FSIDEN=0 HALT instruction is executed SLEEP Mode FHIDEN=0, FSIDEN=1 HALT instruction is executed IDLE0 Mode FHIDEN=1, FSIDEN=1 HALT instruction is executed IDLE1 Mode FHIDEN=1, FSIDEN=0 HALT instruction is executed IDLE2 Mode 进入休眠模式 进入休眠模式的方法仅有一种,即应用程序中执行“HALT”指令前需设置 SCC 寄存器中的 FHIDEN 和 FSIDEN 位都为“0”。在这种模式下,除了 WDT 以外的所有时钟和功能都将关闭。在上述条件下执行该指令后,将发生的情况 如下: ● 系统时钟停止运行,应用程序停止在“HALT”指令处。 ● 数据存储器中的内容和寄存器将保持当前值。 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清零。 ● 如果 WDT 功能使能,WDT 将被清零并重新开始计数。如果 WDT 功能除能, WDT 将被清零并停止计数。 进入空闲模式 0 进入空闲模式 0 的方法仅有一种,即应用程序中执行“HALT”指令前需设置 SCC 寄存器中的 FHIDEN 位为“0”且 FSIDEN 位为“1”。在上述条件下执行 该指令后,将发生的情况如下: ● fH 时钟停止运行,应用程序停止在“HALT”指令处,但 fSUB 时钟将继续运行。 ● 数据存储器中的内容和寄存器将保持当前值。 Rev.1.40 44 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清零。 ● 如果 WDT 功能使能,WDT 将被清零并重新开始计数。如果 WDT 功能除能, WDT 将被清零并停止计数。 进入空闲模式 1 进入空闲模式 1 的方法仅有一种,即应用程序中执行“HALT”指令前需设置 SCC 寄存器中的 FHIDEN 和 FSIDEN 位都为“1”。在上述条件下执行该指令后, 将发生的情况如下: ● fH 和 fSUB 时钟开启,应用程序停止在“HALT”指令处。 ● 数据存储器中的内容和寄存器将保持当前值。 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清零。 ● 如果 WDT 功能使能,WDT 将被清零并重新开始计数。如果 WDT 功能除能, WDT 将被清零并停止计数。 进入空闲模式 2 进入空闲模式 2 的方法仅有一种,即应用程序中执行“HALT”指令前需设置 SCC 寄存器中的 FHIDEN 位为“1”且 FSIDEN 位为“0”。在上述条件下执行 该指令后,将发生的情况如下: ● fH 时钟开启,fSUB 时钟关闭,应用程序停止在“HALT”指令处。 ● 数据存储器中的内容和寄存器将保持当前值。 ● 输入 / 输出口将保持当前值。 ● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清零。 ● 如果 WDT 功能使能,WDT 将被清零并重新开始计数。如果 WDT 功能除能, WDT 将被清零并停止计数。 待机电流的注意事项 由于单片机进入休眠或空闲模式的主要原因是将单片机的电流降低到尽可能 低,可能到只有几个微安的级别 ( 空闲模式 1 和空闲模式 2 除外 ),所以如果要 将电路的电流进一步降低,电路设计者还应有其它的考虑。应该特别注意的是 单片机的输入 / 输出引脚。所有高阻抗输入脚都必须连接到固定的高或低电平, 因为引脚浮空会造成内部振荡并导致耗电增加。这也应用于有不同封装的单片 机,因为它们可能含有未引出的引脚,这些引脚也必须设为输出或带有上拉电 阻的输入。 另外还需注意单片机设为输出的 I/O 引脚上的负载。应将它们设置在有最小拉 电流的状态或将它们和其它的 CMOS 输入一样接到没有拉电流的外部电路上。 还应注意的是,如果选择 LIRC 振荡器,会导致耗电增加。 在空闲模式 1 和空闲模式 2 中,高速振荡器开启。若外围功能时钟源来自高速 振荡器,额外的待机电流也可能会有几百微安。 Rev.1.40 45 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 唤醒 单片机进入休眠模式或空闲模式后,系统时钟将停止以降低功耗。然而单片机 再次唤醒,原来的系统时钟重新起振、稳定且恢复正常工作需要一定的时间。 系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒: ● PA 口下降沿 ● 系统中断 ● WDT 溢出 执行 HALT 指令后单片机将进入空闲或休眠模式,PDF 将被置位。系统上电或 执行清除看门狗的指令,PDF 将被清零。若系统由看门狗计数器溢出唤醒,将 会启动看门狗复位并置位 TO 标志,这种复位只会重置程序计数器和堆栈指针, 其它标志保持原有状态。 PA 口中的每个引脚都可以通过 PAWU 寄存器使能下降沿唤醒功能。PA 端口唤 醒后,程序将在“HALT”指令后继续执行。如果系统是通过中断唤醒,则有两 种可能发生。第一种情况是:相关中断除能或是中断使能且堆栈已满,则程序 会在“HALT”指令之后继续执行。这种情况下,唤醒系统的中断会等到相关中 断使能或有堆栈层可以使用之后才执行。第二种情况是:相关中断使能且堆栈 未满,则中断可以马上执行。如果在进入休眠或空闲模式之前中断标志位已经 被设置为“1”,则相关中断的唤醒功能将无效。 看门狗定时器 看门狗定时器的功能在于防止如电磁的干扰等外部不可控制事件,所造成的程 序不正常动作或跳转到未知的地址。 看门狗定时器时钟源 WDT 定时器时钟源 fLIRC 由内部低速振荡器 LIRC 提供。内部振荡器 LIRC 的频 率大约为 32kHz,这个特殊的内部时钟周期会随 VDD、温度和制成的不同而变 化。看门狗定时器的时钟源可分频为 28~215 以提供更大的溢出周期,分频系数 由 WDTC 寄存器中的 WS2~WS0 位来决定。 看门狗定时器控制寄存器 WDTC 寄存器用于控制 WDT 功能的使能 / 除能和选择溢出周期。 ● WDTC 寄存器 Bit Name R/W POR Bit 7~3 Rev.1.40 7 WE4 R/W 0 6 WE3 R/W 1 5 WE2 R/W 0 4 WE1 R/W 1 3 WE0 R/W 0 2 WS2 R/W 1 1 WS1 R/W 1 0 WS0 R/W 1 WE4~WE0:WDT 功能软件控制 10101:除能 01010:使能 其它值:单片机复位 如果由于不利的环境因素使这些位变为其它值,单片机将复位。复位动作发生 在 tSRESET 延迟时间后,且 RSTFC 寄存器的 WRF 位将置为“1”。 46 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 Bit 2~0 WS2~WS0:WDT 溢出周期选择位 000:[(28-20)~28]/fLIRC 001:[(29-21)~29]/fLIRC 010:[(210-22)~210]/fLIRC 011:[(211-23)~211]/fLIRC 100:[(212-24)~212]/fLIRC 101:[(213-25)~213]/fLIRC 110:[(214-26)~214]/fLIRC 111:[(215-27)~215]/fLIRC 这三位控制 WDT 时钟源的分频系数,从而实现对 WDT 溢出周期的控制。 ● RSTFC 寄存器 Bit Name R/W POR 7 — — — 6 — — — 5 — — — 4 — — — 3 — — — 2 LVRF R/W x 1 LRF R 0 0 WRF R/W 0 “x”:未知 Bit 7~3 未定义,读为“0” Bit 2 LVRF:LVR 功能复位标志位 具体描述见低电压复位章节。 Bit 1 LRF:LVR 控制寄存器软件复位标志位 具体描述见低电压复位章节。 Bit 0 WRF:WDT 控制寄存器软件复位标志位 0:未发生 1:发生 当 WDT 控制寄存器软件复位发生时,此位被置为“1”,且只能通过应用程序 清零。 看门狗定时器操作 当 WDT 溢出时,它产生一个单片机复位的动作。这也就意味着正常工作期 间,用户需在应用程序中看门狗溢出前有策略地清看门狗定时器以防止其产生 复位,可使用清除看门狗指令实现。无论什么原因,程序失常跳转到一个未知 的地址或进入一个死循环,清除指令都不能被正确执行,此种情况下,看门狗 将溢出以使单片机复位。看门狗定时器控制寄存器 WDTC 中的 WE4~WE0 位 可提供使能 / 除能控制以及控制看门狗定时器复位操作。当 WE4~WE0 设置 为“10101B”时除能 WDT 功能,而当设置为“01010B”时使能 WDT 功能。 如果 WE4~WE0 设置为除“01010B”和“10101B”以外的值时,单片机将在 tSRESET 延迟时间后后复位。上电后这些位初始化为“01010B”。 WE4~WE0 位 10101B 01010B 其它值 WDT 功能 除能 使能 单片机复位 看门狗定时器使能 / 除能控制 程序正常运行时,WDT 溢出将导致单片机复位,并置位状态标志位 TO。若系 统处于休眠或空闲模式,当 WDT 发生溢出时,状态寄存器中的 TO 应置位,仅 PC 和堆栈指针复位。有三种方法可以用来清除 WDT 的内容。第一种是 WDTC 寄存器软件复位,即将 WE4~WE0 位设置成除了 01010B 和 10101B 外的任意值; 第二种是通过软件清除指令,而第三种是通过“HALT”指令。该系列单片机 Rev.1.40 47 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 只使用一条清看门狗指令“CLR WDT”。因此只要执行“CLR WDT”便清除 WDT。 当设置分频系数为 215 时,溢出周期最大。时钟源为 32kHz LIRC 振荡器,分频 系数为 215 时最大溢出周期约 1s,分频系数为 28 时最小溢出周期约 8ms。 WS2~WS0 (fLIRC/20 ~ fLIRC/27) fLIRC 7-stage Divider 8-to-1 MUX 8-stage Divider WDT Time-out (28/fLIRC ~ 215/fLIRC) Clear 7-stage divider WE4~WE0 Bits WDTC Register Clear 8-stage divider “HALT” Instruction “CLR WDT” Instruction Reset MCU 看门狗定时器 复位和初始化 复位功能是任何单片机中基本的部分,使得单片机可以设定一些与外部参数无 关的先置条件。最重要的复位条件是在单片机首次上电以后,经过短暂的延迟, 内部硬件电路使得单片机处于预期的稳定状态并开始执行第一条程序指令。上 电复位以后,在程序执行之前,部分重要的内部寄存器将会被设定为预先设定 的状态。程序计数器就是其中之一,它会被清为零,使得单片机从最低的程序 存储器地址开始执行程序。 另一种复位为低电压复位即 LVR 复位,在电源供应电压低于 LVR 设定值时, 系统会产生 LVR 复位。 还有一种复位为看门狗溢出单片机复位,不同方式的复位操作会对寄存器产生 不同的影响。 复位功能 单片机的几种内部复位方式将在此处做具体介绍。 上电复位 这是最基本且不可避免的复位,发生在单片机上电后。除了保证程序存储器从 开始地址执行,上电复位也使得其它寄存器被设定在预设条件。所有的输入 / 输出端口控制寄存器在上电复位时会保持高电平,以确保上电后所有引脚被设 定为输入状态。 VDD Power-on Reset tRSTD SST Time-out 上电复位时序图 Rev.1.40 48 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 低电压复位 – LVR 单片机具有低电压复位电路,用来监测它的电源电压。当电源电压低于某一预 定值时,它将复位单片机。例如在更换电池的情况下,单片机供应的电压可 能会在 0.9V~VLVR 之间,这时 LVR 将会自动复位单片机且 RSTFC 寄存器中的 LVRF 标志位置位。LVR 包含以下的规格:有效的 LVR 信号,即在 0.9V~VLVR 的低电压状态的时间,必须超过 LVR 电气特性中 tLVR 参数的值。如果低电 压存在不超过 tLVR 参数的值,则 LVR 将会忽略它且不会执行复位功能。若 LVS7~LVS0 位设为 01011010B,LVR 功能使能,其固定复位电压为 1.7V。若 LVS7~LVS0 位设为 10100101B,LVR 功能除能。若由于受到干扰 LVS7~LVS0 变为其它值时,将在 tSRESET 时间后复位单片机。此时 RSTFC 寄存器的 LRF 位 被置位。上电后寄存器的值为 01011010B。LVR 会于休眠或空闲模式时自动除 能关闭。 LVR tRSTD + tSST Internal Reset 低电压复位时序图 ● LVRC 寄存器 Bit Name R/W POR Bit 7~0 7 LVS7 R/W 0 6 LVS6 R/W 1 5 LVS5 R/W 0 4 LVS4 R/W 1 3 LVS3 R/W 1 2 LVS2 R/W 0 1 LVS1 R/W 1 0 LVS0 R/W 0 LVS7~LVS0:LVR 电压选择控制位 01011010:1.7V 10100101:除能 其它值:单片机复位 – 寄存器复位为 POR 值 若低电压情况发生且满足以上定义的低电压复位值,则单片机复位。当低电压 状态保持时间大于 tLVR 后响应复位。此时复位后的寄存器内容保持不变。 除了 01011010B 和 10100101B 外,其它值也能导致单片机复位。复位操作会在 tSRESET 时间后执行。注意的是此处单片机复位后,寄存器的值将恢复到上电复位 值。 ● RSTFC 寄存器 Bit Name R/W POR 7 — — — 6 — — — 5 — — — 4 — — — 3 — — — 2 LVRF R/W x 1 LRF R/W 0 0 WRF R/W 0 “x”:未知 Rev.1.40 Bit 7~3 未定义,读为“0” Bit 2 LVRF:LVR 功能复位标志位 0:未发生 1:发生 当特定的低电压复位条件发生时,此位被置为“1”,且只能通过应用程序清零。 Bit 1 LRF:LVR 控制寄存器软件复位标志位 0:未发生 1:发生 如果 LVRC 寄存器包含任何非定义的 LVR 电压值,此位被置为“1”,这类似 于软件复位功能,且只能通过应用程序清零。 49 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 Bit 0 WRF:WDT 控制寄存器软件复位标志位 具体描述见看门狗定时器控制寄存器章节。 正常运行时看门狗溢出复位 在快速模式或低速模式发生看门狗溢出复位时,看门狗溢出标志位 TO 将被设 为“1”。 WDT Time-out tRSTD + tSST Internal Reset 正常运行时看门狗溢出复位时序图 休眠或空闲时看门狗溢出复位 休眠或空闲模式时看门狗溢出复位和其它种类的复位有些不同,除了程序计数 器与堆栈指针将被清零及 TO 位被设为“1”外,绝大部份的条件保持不变。图 中 tSST 的详细说明请参考系统上电时间电气特性。 WDT Time-out tSST Internal Reset 休眠或空闲时看门狗溢出复位时序图 复位初始状态 不同的复位形式以不同的途径影响复位标志位。这些标志位,即 PDF 和 TO 位 存放在状态寄存器中,由休眠或空闲模式功能或看门狗计数器等几种控制器操 作控制。复位标志位如下所示: TO 0 u 1 1 PDF 0 u u 1 复位条件 上电复位 快速模式或低速模式时的 LVR 复位 快速模式或低速模式时的 WDT 溢出复位 空闲或休眠模式时的 WDT 溢出复位 “u”代表不改变 在单片机上电复位之后,各功能单元初始化的情形,列于下表。 项目 程序计数器 中断 看门狗定时器,时基 定时 / 事件计数器 输入 / 输出口 堆栈指针 复位后情况 清除为零 所有中断被除能 复位后清零,且 WDT 开始计数 定时 / 事件计数器关闭 I/O 口设为输入模式 堆栈指针指向堆栈顶端 不同的复位形式对单片机内部寄存器的影响是不同的。为保证复位后程序能正 常执行,了解寄存器在特定条件复位后的设置是非常重要的。下表即为不同方 式复位后内部寄存器的状况。注意对于存在多种封装的单片机,下表反映的是 较大封装类型的情况。 Rev.1.40 50 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 STATUS INTEG WDTC TBC RSTFC PASR SCC HIRCC IFS PA PAC PAPU PAWU HT66F0041 TBHP HT66F0031 IAR0 MP0 ACC PCL TBLP TBLH HT66F0021 寄存器 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● PBC ● ● PBPU Rev.1.40 ● ● ● ● ● ● ● ● PB ECR EAR EDL EDH ED0L ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 51 上电复位 WDT 溢出 ( 正常运行 ) WDT 溢出 ( 空闲 / 休眠 ) xxxx xxxx xxxx xxxx xxxx xxxx 0000 0000 xxxx xxxx --xx xxxx ---- --xx ---- -xxx --00 xxxx ---- --00 ---- 0000 0101 0111 0--- -000 ---- -x00 -000 0000 000- --00 ---- --01 ---- --00 ---- -000 111 - - 111 1111 1111 111 - - 111 1111 1111 000- -000 0000 0000 000- -000 0000 0000 - - 11 1111 - 111 1111 - - 11 1111 - 111 1111 --00 0000 -000 0000 0000 0000 ---0 0000 0000 0000 --00 0000 0000 0000 uuuu uuuu xxxx xxxx uuuu uuuu 0000 0000 uuuu uuuu --uu uuuu ---- --uu ---- --uuu --1u uuuu ---- --00 ---- 0000 0101 0111 0--- -000 ---- -uuu -000 0000 000- --00 ---- --01 ---- --00 ---- -000 111 - - 111 1111 1111 111 - - 111 1111 1111 000- -000 0000 0000 000- -000 0000 0000 - - 11 1111 - 111 1111 - - 11 1111 - 111 1111 --00 0000 -000 0000 0000 0000 ---0 0000 0000 0000 --00 0000 0000 0000 uuuu uuuu uuuu uuuu uuuu uuuu 0000 0000 uuuu uuuu --uu uuuu ---- --uu ---- -uuu - - 11 u u u u ---- --uu ---- uuuu uuuu uuuu u--- -uuu ---- -uuu -uuu uuuu uuu- --uu ---- --uu ---- --uu ---- -uuu uuu- -uuu uuuu uuuu uuu- -uuu uuuu uuuu uuu- -uuu uuuu uuuu uuu- -uuu uuuu uuuu --uu uuuu -uuu uuuu --uu uuuu -uuu uuuu --uu uuuu -uuu uuuu uuuu uuuu ---u uuuu uuuu uuuu --uu uuuu uuuu uuuu 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● ● ● ● ● ● HT66F0041 INTC1 ● ● ● ● ● ● HT66F0031 ED0H TMRC TMR PWMC PWMDATA INTC0 HT66F0021 寄存器 上电复位 WDT 溢出 ( 正常运行 ) WDT 溢出 ( 空闲 / 休眠 ) ● --00 0000 0000 1000 0000 0000 000- ---0 0000 0000 -000 0000 ---0 ---0 --00 --00 --00 0000 0000 1000 0000 0000 000- ---0 0000 0000 -000 0000 ---0 ---0 --00 --00 --uu uuuu uuuu uuuu uuuu uuuu uuu- ---u uuuu uuuu -uuu uuuu ---u ---u --uu --uu xx-- ---(ADRFS=0) xxxx xxxx (ADRFS=1) xxxx xxxx (ADRFS=0) xx-- ---(ADRFS=1) uuuu uuuu uuuu uuuu ---- -uuu ---- -uuu ---- -uuu ---- -uuu uuuu uuuu --uu uuuu uuuu uuuu --uu uuuu uuuu uuuu --uu uuuu uuuu uuuu ---- u--uuuu uu-uuuu uuuu uuuu uuuu uuuu uuuu ---- --uu ---- ---u ● ● ● ● SADOL ● ● ● xx-- ---- xx-- ---- SADOH ● ● ● xxxx xxxx xxxx xxxx SADC0 SADC1 PSCR PC PCC PCPU ED1L ED1H ED2L ED2H ED3L ED3H LVRC VBGC PWMC PWMP PWMD SLEDC0 SLEDC1 LVPUC ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 0000 0000 0000 0000 ---- -000 ---- -111 ---- -111 ---- -000 0000 0000 --00 0000 0000 0000 --00 0000 0000 0000 --00 0000 0101 1010 ---- 0--0000 00-0000 0000 0000 0000 0000 0000 ---- --00 ---- ---0 0000 0000 0000 0000 ---- -000 ---- -111 ---- -111 ---- -000 0000 0000 --00 0000 0000 0000 --00 0000 0000 0000 --00 0000 0101 1010 ---- 0--0000 00-0000 0000 0000 0000 0000 0000 ---- --00 ---- ---0 注:“u”表示不改变; “x”表示未知; “-”表示未定义 Rev.1.40 52 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 输入 / 输出端口 Holtek 单片机的输入 / 输出口控制具有很大的灵活性。大部分引脚可在用户程 序控制下被设定为输入或输出。所有引脚的上拉电阻设置以及指定引脚的唤醒 设置也都由软件控制,这些特性也使得此类单片机在广泛应用上都能符合开发 的需求。 该系列单片机提供 PA~PC 双向输入 / 输出口。这些寄存器在数据存储器有特定 的地址。所有 I/O 口用于输入输出操作。作为输入操作,输入引脚无锁存功能, 也就是说输入数据必须在执行“MOV A, [m]”,T2 的上升沿准备好,m 为端口 地址。对于输出操作,所有数据都是被锁存的,且保持不变直到输出锁存被重 写。 寄存器 名称 PA PAC PAPU PAWU 位 7 6 5 PA7 PA6 PA5 PAC7 PAC6 PAC5 PAPU7 PAPU6 PAPU5 PAWU7 PAWU6 PAWU5 4 — — — — 3 — — — — 2 1 0 PA2 PA1 PA0 PAC2 PAC1 PAC0 PAPU2 PAPU1 PAPU0 PAWU2 PAWU1 PAWU0 “—”:未定义,读为“0” I/O 逻辑功能寄存器列表 – HT66F0021 寄存器 名称 PA PAC PAPU PAWU PB PBC PBPU 位 7 6 5 4 3 2 1 0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PAC7 PAC6 PAC5 PAC4 PAC3 PAC2 PAC1 PAC0 PAPU7 PAPU6 PAPU5 PAPU4 PAPU3 PAPU2 PAPU1 PAPU0 PAWU7 PAWU6 PAWU5 PAWU4 PAWU3 PAWU2 PAWU1 PAWU0 — — PB5 PB4 PB3 PB2 PB1 PB0 — — PBC5 PBC4 PBC3 PBC2 PBC1 PBC0 — — PBPU5 PBPU4 PBPU3 PBPU2 PBPU1 PBPU0 “—”:未定义,读为“0” I/O 逻辑功能寄存器列表 – HT66F0031 寄存器 名称 PA PAC PAPU PAWU PB PBC PBPU PC PCC Rev.1.40 位 7 6 5 4 3 2 1 0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PAC7 PAC6 PAC5 PAC4 PAC3 PAC2 PAC1 PAC0 PAPU7 PAPU6 PAPU5 PAPU4 PAPU3 PAPU2 PAPU1 PAPU0 PAWU7 PAWU6 PAWU5 PAWU4 PAWU3 PAWU2 PAWU1 PAWU0 — PB6 PB5 PB4 PB3 PB2 PB1 PB0 — PBC6 PBC5 PBC4 PBC3 PBC2 PBC1 PBC0 — PBPU6 PBPU5 PBPU4 PBPU3 PBPU2 PBPU1 PBPU0 — — — — — PC2 PC1 PC0 — — — — — PCC2 PCC1 PCC0 53 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 寄存器 名称 PCPU LVPUC 位 7 — — 6 — — 5 — — 4 — — 3 — — 2 PCPU2 — 1 PCPU1 — 0 PCPU0 LVPU “—”:未定义,读为“0” I/O 逻辑功能寄存器列表 – HT66F0041 上拉电阻 许多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功 能。为了免去外部上拉电阻,当引脚规划为数字输入时,可由内部连接到一个 上拉电阻。这些上拉电阻可通过相关上拉电阻控制寄存器来设置,它用一个 PMOS 晶体管来实现上拉电阻功能。 应注意只有在引脚共用功能用脚配置为数字输入或 NMOS 输出时,可通过相关 上拉控制寄存器控制上拉电阻,否则,上拉电阻无法被使能。 ● PxPU 寄存器 Bit Name R/W POR 7 PxPU7 R/W 0 6 PxPU6 R/W 0 5 PxPU5 R/W 0 4 PxPU4 R/W 0 3 PxPU3 R/W 0 2 PxPU2 R/W 0 1 PxPU1 R/W 0 0 PxPU0 R/W 0 PxPUn:I/O Px 口引脚上拉功能控制位 0:除能 1:使能 PxPUn 位用于控制上拉电阻功能。这里的 x 可以是端口 A,B 或 C,依所选型号而 定。但是,每个 I/O 端口实际有效位可能不同。应注意 HT66F0041 单片机的 PB0 和 PB1 引脚包含一个内部下拉电阻,若上拉功能使能,则需要额外的功耗。 ● LVPUC 寄存器 – HT66F0041 Bit Name R/W POR 7 — — — 6 — — — 5 — — — 4 — — — 3 — — — 2 — — — 1 — — — 0 LVPU R/W 0 Bit 7~1 未定义,读为“0” Bit 0 LVPU:低电压上拉电阻选择位 0:所有引脚上拉电阻为 60kΩ @ 3V 1:所有引脚上拉电阻为 15kΩ @ 3V LVPUC 寄存器用于选择低电压应用的上拉电阻值。应注意仅当相应引脚的上拉 功能使能时,LVPUC 寄存器的 LVPU 位才有效。若上拉功能除能,LVPU 位对 低电压上拉电阻值的选择没有影响。 PA 口唤醒 当使用暂停指令“HALT”迫使单片机进入休眠或空闲模式,单片机的系统时 钟将会停止以降低功耗,此功能对于电池及低功耗应用很重要。唤醒单片机有 很多种方法,其中之一就是使 PA 口的其中一个引脚从高电平转为低电平。这 个功能特别适合于通过外部开关来唤醒的应用。PA 口的每个引脚可以通过设置 PAWU 寄存器来单独选择是否具有唤醒功能。 Rev.1.40 54 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 应注意只有在引脚共用功能选择为通用 I/O 功能输入类型且单片机进入空闲或 休眠模式时,此功能可由唤醒控制寄存器控制。 ● PAWU 寄存器 Bit Name R/W POR 7 6 5 4 3 2 1 0 PAWU7 PAWU6 PAWU5 PAWU4 PAWU3 PAWU2 PAWU1 PAWU0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 PAWUn:PA 口引脚唤醒功能控制位 0:除能 1:使能 PAWUn 位用于控制 PA 口唤醒功能。但是,实际有效位可能不同,依所选型号而定。 输入 / 输出端口控制寄存器 每一个输入 / 输出口都具有各自的控制寄存器,即 PAC~PCC,用来控制输入 / 输出状态。从而每个 I/O 引脚都可以通过软件控制,动态的设置为 CMOS 输出 或输入。所有的 I/O 端口的引脚都各自对应于 I/O 端口控制的某一位。若 I/O 引 脚要实现输入功能,则对应的控制寄存器的位需要设置为“1”。这时程序指令 可以直接读取输入脚的逻辑状态。若控制寄存器相应的位被设定为“0”,则此 引脚被设置为 CMOS 输出。当引脚设置为输出状态时,程序指令读取的是输出 端口寄存器的内容。注意,如果对输出口做读取动作时,程序读取到的是内部 输出数据锁存器中的状态,而不是输出引脚上实际的逻辑状态。 ● PxC 寄存器 Bit Name R/W POR 7 PxC7 R/W 1 6 PxC6 R/W 1 5 PxC5 R/W 1 4 PxC4 R/W 1 3 PxC3 R/W 1 2 PxC2 R/W 1 1 PxC1 R/W 1 0 PxC0 R/W 1 PxCn:I/O Px 口引脚类型选择位 0:输出 1:输入 PxCn 位用于控制引脚类型。这里的 x 可以是端口 A,B 或 C,依所选型号而定。但是, 每个 I/O 端口实际有效位可能不同。应注意 HT66F0041 单片机的 PB0 和 PB1 引脚包 含一个内部下拉电阻,若该引脚被配置为输出高电平,则需要额外的功耗。 输入 / 输出端口源电流选择 – HT66F0041 该单片机的每个引脚的源电流可由不同的源电流配置,通过相应的源电流选择 位选择。仅当对应的引脚被设为 CMOS 输出时,其源电流选择位才有效。否则, 这些选择位无效。用户可参考输入 / 输出电气特性章节为不同应用选择所需的 源电流。 位 7 6 5 4 3 2 1 0 SLEDC0 SLEDC07 SLEDC06 SLEDC05 SLEDC04 SLEDC03 SLEDC02 SLEDC01 SLEDC00 SLEDC1 — — — — — — SLEDC11 SLEDC10 寄存器 名称 I/O 口源电流选择寄存器列表 Rev.1.40 55 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● SLEDC0 寄存器 Bit 7 6 5 4 3 2 1 0 Name SLEDC07 SLEDC06 SLEDC05 SLEDC04 SLEDC03 SLEDC02 SLEDC01 SLEDC00 R/W R/W R/W R/W R/W R/W R/W R/W R/W POR 0 0 0 0 0 0 0 0 Bit 7~6 SLEDC07~SLEDC06:PB6~PB4 源电流选择 00:Level 0 ( 最小 ) 01:Level 1 10:Level 2 11:Level 3 ( 最大 ) Bit 5~4 SLEDC05~SLEDC04:PB3~PB0 源电流选择 00:Level 0 ( 最小 ) 01:Level 1 10:Level 2 11:Level 3 ( 最大 ) Bit 3~2 SLEDC03~SLEDC02:PA7~PA4 源电流选择 00:Level 0 ( 最小 ) 01:Level 1 10:Level 2 11:Level 3 ( 最大 ) Bit 1~0 SLEDC01~SLEDC00:PA3~PA0 源电流选择 00:Level 0 ( 最小 ) 01:Level 1 10:Level 2 11:Level 3 ( 最大 ) ● SLEDC1 寄存器 Bit Name R/W POR 7 — — — 6 — — — 5 — — — 4 — — — 3 — — — Bit 7~2 未定义,读为“0” Bit 1~0 SLEDC11~SLEDC10:PC2~PC0 源电流选择 00:Level 0 ( 最小 ) 01:Level 1 10:Level 2 11:Level 3 ( 最大 ) 2 — — — 1 0 SLEDC11 SLEDC10 R/W R/W 0 0 引脚共用功能 引脚的多功能可以增加单片机应用的灵活性。有限的引脚个数将会限制应用设 计,而引脚的多功能将会解决很多此类问题。此外,这些多功能引脚功能可以 通过一系列寄存器进行设定。 引脚共用功能选择寄存器 封装中有限的引脚个数会对某些单片机功能造成影响。然而,引脚功能共用和 引脚功能选择,使得小封装单片机具有更多不同的功能。单片机包含端口 A 输 出功能选择寄存器,记为 PASR,以及输入功能选择寄存器,记为 IFS,可以用 来选择共用引脚的特定功能。 Rev.1.40 56 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 要注意的最重要一点是,确保所需的引脚共用功能被正确地选择和取消。对于 大部分共用功能,要选择所需的引脚共用功能,首先应通过相应的引脚共用控 制寄存器正确地选择该功能,然后再配置相应的外围功能设置以使能外围功能。 但是,在设置相关引脚控制位时,一些数字输入引脚如 TC 和 INTn 等,与对应 的通用 I/O 口共用同一个引脚共用设置选项。要选择这个引脚功能,除了上述 的必要的引脚共用控制和外围功能设置外,还必须将其对应的端口控制寄存器 位设置为输入。要正确地取消引脚共用功能,首先应除能外围功能,然后再修 改相应的引脚共用控制寄存器以选择其它的共用功能。 寄存器 名称 PASR IFS (HT66F0021/0031) IFS (HT66F0041) 位 7 — 6 PAS6 5 PAS5 4 PAS4 3 PAS3 2 PAS2 1 PAS1 0 PAS0 — — — — — — TCPS INT0PS — — — — — TCPS INT1PS INT0PS 引脚共用功能选择寄存器列表 ● PASR 寄存器 – HT66F0021 Bit Name R/W POR Rev.1.40 7 — — — 6 PAS6 R/W 0 5 PAS5 R/W 0 4 PAS4 R/W 0 Bit 7 未定义,读为“0” Bit 6~5 PAS6~PAS5:PA7 引脚共用功能选择 00:PA7 01:PWMO 10:PA7 11:AN2 Bit 4 PAS4:PA6 引脚共用功能选择 0:PA6/TC 1:PWMO Bit 3 PAS3:PA5 引脚共用功能选择 0:PA5/INT0 1:AN3 Bit 2 PAS2:PA2 引脚共用功能选择 0:PA2 1:AN1 Bit 1 PAS1:PA1 引脚共用功能选择 0:PA1/TC 1:VREF Bit 0 PAS0:PA0 引脚共用功能选择 0:PA0/INT0 1:AN0 57 3 PAS3 R/W 0 2 PAS2 R/W 0 1 PAS1 R/W 0 0 PAS0 R/W 0 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● PASR 寄存器 – HT66F0031 Bit Name R/W POR 7 — — — 6 PAS6 R/W 0 5 PAS5 R/W 0 4 PAS4 R/W 0 Bit 7 未定义,读为“0” Bit 6 PAS6:PA7 引脚共用功能选择 0:PA7 1:PWMO Bit 5 PAS5:PA6 引脚共用功能选择 0:PA6/TC 1:PWMO Bit 4 PAS4:PA5 引脚共用功能选择 0:PA5 1:AN1 Bit 3 PAS3:PA3 引脚共用功能选择 0:PA3/INT0 1:AN3 Bit 2 PAS2:PA2 引脚共用功能选择 0:PA2 1:AN2 Bit 1 PAS1:PA1 引脚共用功能选择 0:PA1 1:VREF Bit 0 PAS0:PA0 引脚共用功能选择 0:PA0/TC 1:AN0 3 PAS3 R/W 0 2 PAS2 R/W 0 1 PAS1 R/W 0 0 PAS0 R/W 0 3 PAS3 R/W 0 2 PAS2 R/W 0 1 PAS1 R/W 0 0 PAS0 R/W 0 ● PASR 寄存器 – HT66F0041 Bit Name R/W POR Rev.1.40 7 — — — 6 PAS6 R/W 0 5 PAS5 R/W 0 Bit 7 未定义,读为“0” Bit 6 PAS6:PA7 引脚共用功能选择 0:PA7 1:AN3 Bit 5 PAS5:PA6 引脚共用功能选择 0:PA6/INT1 1:AN2 Bit 4 PAS4:PA5 引脚共用功能选择 0:PA5 1:VREF Bit 3 PAS3:PA4 引脚共用功能选择 0:PA4/INT0 1:AN0 Bit 2 PAS2:PA3 引脚共用功能选择 0:PA3/TC 1:PWMB 58 4 PAS4 R/W 0 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 Bit 1 PAS1:PA2 引脚共用功能选择 0:PA2 1:AN1 Bit 0 PAS0:PA0 引脚共用功能选择 0:PA0 1:PWM ● IFS 寄存器 – HT66F0021 Bit Name R/W POR 7 — — — 6 — — — 5 — — — Bit 7~2 未定义,读为“0” Bit 1 TCPS:TC 输入源引脚选择 0:PA1 1:PA6 Bit 0 INT0PS:INT0 输入源引脚选择 0:PA5 1:PA0 4 — — — 3 — — — 2 — — — 1 TCPS R/W 0 0 INT0PS R/W 0 4 — — — 3 — — — 2 — — — 1 TCPS R/W 0 0 INT0PS R/W 0 4 — — — 3 — — — 2 TCPS R/W 0 ● IFS 寄存器 – HT66F0031 Bit Name R/W POR 7 — — — 6 — — — 5 — — — Bit 7~2 未定义,读为“0” Bit 1 TCPS:TC 输入源引脚选择 0:PA6 1:PA0 Bit 0 INT0PS:INT0 输入源引脚选择 0:PA3 1:PA4 ● IFS 寄存器 – HT66F0041 Bit Name R/W POR Rev.1.40 7 — — — 6 — — — 5 — — — Bit 7~3 未定义,读为“0” Bit 2 TCPS:TC 输入源引脚选择 0:PA1 1:PA3 Bit 1 INT1PS:INT1 输入源引脚选择 0:PA6 1:PC1 Bit 0 INT0PS:INT0 输入源引脚选择 0:PA4 1:PC0 59 1 0 INT1PS INT0PS R/W R/W 0 0 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 输入 / 输出引脚结构 下图为输入 / 输出引脚逻辑功能的内部结构图。输入 / 输出引脚的准确逻辑结构 图可能与此图不同,这里只是为了方便对 I/O 引脚逻辑功能的理解提供一个参 考。由于存在诸多的引脚共用结构,在此不方便提供所有类型引脚功能结构图。 VDD Control Bit Data Bus Write Control Register Chip Reset Read Control Register D Weak Pull-up CK Q S I/O pin Data Bit D Write Data Register Q Pull-high Register Select RPL Q CK Q S M U X Read Data Register System Wake-up wake-up Select PA only 逻辑功能输入 / 输出端口结构 注:RPL 仅适用于 HT66F0041 单片机的 PB1~PB0 引脚。 编程注意事项 在编程中,最先要考虑的是端口的初始化。复位之后,所有的输入 / 输出数据 及端口控制寄存器都将被设为逻辑高。所有输入 / 输出引脚默认为输入状态, 而其电平则取决于其它相连接电路以及是否选择了上拉电阻。如果端口控制寄 存器将某些引脚设定为输出状态,这些输出引脚会有初始高电平输出,除非端 口数据寄存器在程序中被预先设定。设置哪些引脚是输入及哪些引脚是输出, 可通过设置正确的值到对应的端口控制寄存器,或使用指令“SET [m].i”及 “CLR [m].i”来设定端口控制寄存器中个别的位。注意,当使用这些位控制指 令时,系统即将产生一个读 - 修改 - 写的操作。单片机需要先读入整个端口上 的数据,修改个别的位,然后重新把这些数据写入到输出端口。 PA 口的每个引脚都带唤醒功能。单片机处于休眠或空闲模式时,有很多方法可 以唤醒单片机,其中之一就是通过 PA 任一引脚电平从高到低转换的方式,可 以设置 PA 口一个或多个引脚具有唤醒功能。 Rev.1.40 60 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 定时 / 事件计数器 定时 / 事件计数器在任何单片机中都是一个很重要的部分,便于程序设计者实 现和时间有关的功能。该系列单片机包含一个 8 位可编程向上计数的定时 / 事 件计数器,其时钟源可由外部输入或内部提供。该计数器包括 3 种工作模式, 可以当作一个普通定时器、外部事件计数器或脉冲宽度捕捉使用。 fSYS 0 fSUB 1 fTP TS 8-stage Counter 8-to-1 MUX TPSC2~TPSC0 Data bus TM1 8-bit Timer/Event Counter Preload Register TM0 TC TEG Pulse Width Measurement Mode Control TM1 TM0 TON 8-bit Timer/Event Counter Reload Overflow to interrupt 8-bit 定时 / 事件计数器 定时 / 事件计数器输入时钟源 定时 / 事件计数器的时钟源可有多种选择,可以是内部时钟,也可以是外部 引脚。当定时 / 事件计数器工作在定时器模式或脉冲宽度捕捉模式时,使用 内部时钟作为时钟源。定时 / 事件计数器的内部时钟源可由定时控制寄存器 TMRC 的 TS 位选择来自 fSYS 还是 fSUB,而时钟的分频系数由同一寄存器的 TPSC2~TPSC0 位设置。 当定时 / 事件计数器在事件计数器模式时,使用外部时钟源,时钟源由外部 TC 引脚提供。每次外部引脚由高电平到低电平或由低电平到高电平 ( 由 TEG 位决 定 ) 进行转换时,计数器增加一。 定时 / 事件计数器寄存器 定时 / 事件计数器相关的寄存器有两种。第一种是 TMR 寄存器,其包含了定时 / 事件计数器的实际值且可以预加载初始值。读取 TMR 寄存器将读取定时 / 事 件计数器的内容。第二种是 TMRC 控制寄存器,用来定义定时 / 事件计数器的 工作模式、选择内部时钟源、控制使能或除能、选择有效边沿。 寄存器 名称 TMRC TMR 位 7 TM1 D7 6 TM0 D6 5 TS D5 4 TON D4 3 TEG D3 2 TPSC2 D2 1 TPSC1 D1 0 TPSC0 D0 定时 / 事件计数器寄存器列表 定时器寄存器 – TMR 定时器寄存器 TMR 用于存放实际定时器值。在用作内部定时且收到一个内部 计数时钟脉冲或用作外部计数且外部定时 / 事件计数器引脚发生状态跳变时, 此寄存器的值将会加一。定时器将从预载寄存器所载入的值开始计数,8-bit 的 定时 / 事件计数器计数到 FFH 时,定时器溢出且会产生一个内部中断信号。定 时器随后重新载入预载寄存器的值并继续计数。 注意,为使定时器计数范围达到最大 FFH,预载寄存器需要先清为零。定时 / 事件计数器在关闭条件下,写数据到预载寄存器,会立即写入实际的计数器中。 若定时 / 事件计数器使能且正在计数,此时写入预载寄存器的任何新数据将保 留在预载寄存器中,直到溢出发生时才被写入实际计数器。 Rev.1.40 61 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 ● TMR 寄存器 Bit Name R/W POR Bit 7~0 7 D7 R/W 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 D7~D0:定时器预载寄存器字节 定时器控制寄存器 – TMRC Holtek 微控制器的定时器 / 事件计数器可工作于三种模式,由控制寄存器相关 位决定。 定时器控制寄存器 TMRC 配合相应的定时器寄存器可控制定时 / 事件计数器的 全部操作。在使用定时器之前,需要先正确地设定定时器控制寄存器,以便保 证定时器能正确操作,而这个过程通常在程序初始化期间完成。 要选择定时器工作于三种模式中的哪一种,即定时器模式、事件计数器模式或 脉冲宽度捕捉模式,定时器控制寄存器中的 TM1~TM0 位必须设置为所需的逻 辑值。定时器控制寄存器的 TON 位用于定时器开关控制,该位设定为逻辑高 时,计数器开始计数,而清零时则停止计数。当使用内部时钟源时,可通过设 置 TS 位选择源自 fSYS 或 fSUB,TPSC2~TPSC0 位用来选择时钟源分频系数。如 果使用外部时钟源,则内部时钟设定位的选择无效。如果定时 / 事件计数器工 作在事件计数器模式或脉冲宽度捕捉模式,TMRC 寄存器的 TEG 位可用来选择 有效触发边沿。 ● TMRC 寄存器 Bit Name R/W POR Rev.1.40 7 TM1 R/W 0 6 TM0 R/W 0 5 TS R/W 0 4 TON R/W 0 3 TEG R/W 1 Bit 7~6 TM1~TM0:定时 / 事件计数器工作模式选择 00:未使用 01:事件计数器模式 10:定时器模式 11:脉冲宽度捕捉模式 Bit 5 TS:定时器 fTP 时钟源选择 0: fSYS 1: fSUB Bit 4 TON:定时 / 事件计数器计数使能控制 0:除能 1:使能 Bit 3 TEG:定时 / 事件计数器有效边沿选择 事件计数器模式 0:在上升沿计数 1:在下降沿计数 脉冲宽度捕捉模式 0:在下降沿启动计数,在上升沿停止计数 1:在上升沿启动计数,在下降沿停止计数 62 2 TPSC2 R/W 0 1 TPSC1 R/W 0 0 TPSC0 R/W 0 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 Bit 2~0 TPSC2~TPSC0:定时器内部时钟选择 000:fTP 001:fTP/2 010:fTP/4 011:fTP/8 100:fTP/16 101:fTP/32 110:fTP/64 111:fTP/128 定时 / 事件计数器工作模式 定时 / 事件计数器可在三种工作模式下运行,即定时器模式、事件计数器模式 或脉冲宽度捕捉模式。使用 TMRC 寄存器中的 TM1 和 TM0 位选择工作模式。 定时器模式 为使定时 / 事件计数器工作在定时器模式,TMRC 寄存器中的 TM1 和 TM0 位 需要设置成“10”。在这个模式下,定时 / 事件计数器可以用来测量固定时间 间隔,当定时 / 事件计数器发生溢出时,就会产生一个内部中断信号。 在 定 时 器 模 式 下, 内 部 时 钟 fTP 作 为 定 时 器 时 钟 源, 可 通 过 设 置 TMRC 寄 存 器 的 TS 位 选 择 源 自 fSYS 或 fSUB。fTP 时 钟 源 的 分 频 系 数 由 同 一 寄 存 器 的 TPSC2~TPSC0 位选择。TMRC 寄存器中的 TON 位需要置高以使能定时器。每 次内部时钟发生由高到低的电平转换时,定时器值加一;当计数器的值达到 8 位最大值 FFH 时将溢出,会产生中断信号且定时器会重新载入预载寄存器的 值,然后继续计数。在此模式下,即使单片机处于空闲 / 休眠模式,若所选内 部时钟还有效且发生定时器溢出,将产生一个定时器中断请求,可作为一种唤 醒源。 Internal clock source output Increase Timer Counter Timer + 1 Timer + 2 Timer + N Timer + N + 1 定时器模式时序图 事件计数模式 为使定时 / 事件计数器工作在事件计数器模式,TMRC 寄存器中的 TM1 和 TM0 位需要设置成“01”。在这个模式下可以通过定时 / 事件计数器来记录发生在 TC 引脚上的外部逻辑变化事件的次数。 在事件计数器模式下,外部定时器 TC 引脚作为定时 / 事件计数器的时钟源。在 设置完定时器控制寄存器其它位后,TMRC 寄存器中的 TON 位需要置高以使 能定时 / 事件计数器。若有效边沿选择位 TEG 为低,则每次外部 TC 引脚接收 到由低到高的电平转换时,计数器值加一。若 TEG 位为高,则每次 TC 引脚接 收到由高到低的电平转换时,计数器值加一。当计数器计满时将溢出,并产生 中断请求且定时 / 事件计数器会重新载入预载寄存器的值,然后继续计数。 由于外部定时器引脚 TC 与其它功能共用引脚,需预先设置相关引脚共用功能 选择寄存器以选择 TC 引脚功能。此外,该引脚还需通过 I/O 端口控制寄存器 设置为输入。注意,在事件计数器模式下,即使单片机处于空闲 / 休眠模式, 定时 / 事件计数器将继续对外部 TC 引脚上发生的的逻辑事件变化进行计数。因 此,当计数器溢出时,将产生一个定时器中断请求,可作为一种唤醒源。 Rev.1.40 63 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 External Event Increase Timer Counter Timer + 1 Timer + 2 Timer + 3 事件计数器模式时序图 (TEG=1) 脉冲宽度捕捉模式 为使定时 / 事件计数器工作在脉冲宽度捕捉模式,TMRC 寄存器中的 TM1 和 TM0 需要设置为“11”。在这个模式下,定时 / 事件计数器可用于测量外部定 时器引脚上的外部脉冲宽度。 在脉冲宽度捕捉模式下,内部时钟 fTP 作为定时器时钟源,可通过设置 TMRC 寄存器的 TS 位选择源自 fSYS 或 fSUB。fTP 时钟源的分频系数由同一寄存器的 TPSC2~TPSC0 位选择。在设置完定时器控制寄存器 TMRC 中的其它位后, TON 位需要置高以使能定时 / 事件计数器。然而,只有在 TC 引脚上接收到有 效的逻辑转换边沿时,定时 / 事件计数器才真正开始计数。 当有效边沿选择位 TEG 设置为低时,每次 TC 引脚接收到由高到低的电平转换 时定时 / 事件计数器将在内部选定的时钟源下开始计数,直到 TC 引脚回到它原 来的高电平。此时使能位将自动清零以停止计数。而当 TEG 位为高时,每次外 部定时器引脚接收到由低到高的电平转换时定时 / 事件计数器将开始计数,直 到 TC 引脚回到它原来的低电平。同样使能位将自动清零以停止计数。注意, 在脉冲宽度捕捉模式中,当 TC 引脚上的外部控制信号回到它原来的电平时, 使能位将自动清零。而在其它两种模式,使能位只能在程序控制下清零。 可以通过程序读取定时 / 事件计数器当前值,从而获得 TC 引脚上接收信号的脉 冲宽度。由于使能位已被复位为零,任何出现在外部定时器引脚上的电平变化 将被忽略。直到使能位被程序重新置高,定时器才可开始重新测量外部脉冲。 通过这种方式可以很容易地实现单次脉冲宽度测量。注意,在这种模式下,定 时 / 事件计数器是通过外部定时器引脚上的逻辑转换来控制,而非通过逻辑电 平。当定时 / 事件计数器计满时将溢出,并产生中断请求信号且定时 / 事件计数 器会重新载入预载寄存器的值,然后继续计数。 由于外部定时器引脚 TC 与其它功能共用引脚,需预先设置相关引脚共用功能 选择寄存器以选择 TC 引脚功能。此外,该引脚还需通过 I/O 端口控制寄存器 设置为输入引脚。注意,在脉冲宽度捕捉模式下,即使单片机处于空闲 / 休眠 模式,若内部时钟源仍然有效且外部信号继续改变状态,定时 / 事件计数器将 继续对外部 TC 引脚上发生的的逻辑事件变化进行计数。因此,当计数器溢出 时,将产生一个定时器中断请求,可作为一种唤醒源。 External TC Pin Input TON–with TEG = 0 Internal Clock Output Increase Timer Counter Timer +1 +2 +3 +4 Internal Clock Output is sampled at every falling edge of T1. 脉冲宽度捕捉模式时序图 (TEG=0) Rev.1.40 64 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 编程注意事项 当定时 / 事件计数器工作在定时器模式时,内部定时器时钟可作为定时器的时 钟源,因此其与单片机所有操作都能同步。在这个模式下,当定时器寄存器计 满溢出时,单片机将产生一个内部中断信号,使程序进入相应的内部中断向量。 当工作在脉冲宽度捕捉模式时,定时器时钟源同样使用内部系统时钟,但仅在 外部定时器输入引脚上出现正确的逻辑条件时定时器才会运行。由于这个外部 事件没有与内部定时器时钟同步,单片机在下一个定时器时钟到来时才能看到 这个外部事件。因此在测量值上可能有小的差异,需要程序设计者在程序应用 时加以注意。同样的情况发生在定时器设置为事件计数器模式时,该模式下的 时钟来源是外部事件,与定时器内部系统时钟不同步。 当读取定时 / 事件计数器值或写数据到预载寄存器时,计数时钟会被禁止以避 免发生错误,但这样做可能会导致计数错误,所以程序设计者应加以注意。在 第一次使用定时 / 事件计数器之前,要仔细确认是否正确地设定初始值。中断 控制寄存器中的定时器中断使能位需正确地设置,否则定时器相关内部中断不 被响应。定时器控制寄存器中的有效边沿选择位、定时器工作模式选择位和时 钟源控制位需要正确地设置以确保定时器能正确配置为所需的应用。在开启定 时 / 事件计数器之前,需要确保先载入定时 / 事件计数器寄存器的初始值。定时 / 事件计数器配置初始化后,可以使用定时器控制寄存器中的使能位来开启或关 闭定时器。 当定时 / 事件计数器产生溢出,其中断请求标志位被置位,中断请求产生。若 定时 / 事件计数器中断使能,跳转至相关中断向量。不管中断是否使能,在空 闲 / 休眠模式下,定时 / 事件计数器的溢出也会产生唤醒信号。若内部时钟源仍 然处于有效状态或外部信号继续改变状态,上述情况就有可能发生。在这些情 况下,定时 / 事件计数器继续计数,若溢出则将唤醒系统。为了防止这种唤醒, 可以在执行“HALT”指令进入空闲 / 休眠模式之前将相应中断请求标志位置位。 脉冲宽度调制 – HT66F0021/HT66F0031 该系列单片机包含一个 8 位的脉冲宽度调制功能。通过给 PWMDATA 寄存器设 定特定的数值,PWM 功能可提供占空比可调但频率固定的 PWM 信号输出,这 在蜂鸣器控制应用方面十分有用。 PWMEN fSYS fDIV Divider (/1, /2, /3, /4) 8-bit Counter PWMDIV[1:0] PWMSEL 8-bit PWM Comparator (7+1)/(6+2) PWMO PWMD PWMDATA PWM 方框图 Rev.1.40 65 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 PWM 寄存器说明 脉 宽 调 制 通 道 的 所 有 操 作 是 通 过 两 个 寄 存 器 来 控 制 的, 一 个 数 据 寄 存 器 PWMDATA 和一个控制寄存器 PWMC。 位 寄存器 名称 7 6 5 PWMC PWMEN PWMDIV1 PWMDIV0 PWMDATA D7 D6 D5 4 — D4 3 — D3 2 — D2 1 — D1 0 PWMSEL D0 PWM 寄存器列表 ● PWMC 寄存器 Bit 7 6 5 Name PWMEN PWMDIV1 PWMDIV0 R/W R/W R/W R/W POR 0 0 0 Bit 7 Bit 6~5 Bit 4~1 Bit 0 4 — — — 3 — — — 2 — — — 1 — — — 0 PWMSEL R/W 0 PWMEN:PWM 使能控制 0:除能 1:使能 注:1. 当 PWMEN 位清零除能 PWM 功能时,内部 PWMO 信号将被强制拉低。 当多功能引脚选择作为 PWMO 输出功能且 PWMEN 位清零时,外部 PWMO 引脚为浮空状态。 2. 当 PWMEN 位设置为高时,第一个 PWM 调制周期的周期和占空比可能 与预期不符合。在第一个 PWM 周期后,PWM 输出正常。 PWMDIV1~PWMDIV0:fDIV 频率选择 00:fDIV=fSYS 01:fDIV=fSYS/2 10:fDIV=fSYS/3 11:fDIV=fSYS/4 未定义,读为“0” PWMSEL:PWM 模式选择 0:(6+2) 位模式 1:(7+1) 位模式 ● PWMDATA 寄存器 Bit Name R/W POR Bit 7~0 7 D7 R/W 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 D7~D0:PWM 输出占空比周期 PWMD bit 7 ~ bit 0 注意,一旦修改 PWMD 占空比周期值会立即反映在 PWMO 输出信号上。因此, 在当前的 PWM 调制周期中,PWM 新旧数据的相接会导致占空比与设定值不一 致的现象。此现象只会维持一个 PWM 周期,从下一个新的 PWM 周期开始将 恢复与 PWMD 设定值相同的 PWM 占空比。 PWM 操作 脉冲宽度调制通道配有一个 PWMC 和一个 PWMDATA 寄存器。该 PWM 通 道 有 一 个 数 据 寄 存 器, 即 PWMDATA, 其 内 容 是 一 个 8 位 的 数 据, 简 称 为 PWMD。PWMD 表示输出波形中每个调制周期的总的占空比。为了提高 PWM 调制频率,每个调制周期被调制成 2 个或 4 个独立的调制子区段,分别对应 (7+1) Rev.1.40 66 2020-09-24 HT66F0021/HT66F0031/HT66F0041 低成本 1K/2K A/D 型 Flash 单片机 位模式和 (6+2) 位模式。PWM 计数器的时钟频率为 fDIV,来自系统时钟 fSYS 或 其分频。可以通过设置 PWMC 寄存器来选择 PWM 通道所需的模式、时钟源以 及使能 / 除能控制。注意,当使用 PWM 时,只要将所需的值写入 PWMDATA 寄存器并通过 PWMC 寄存器设置所需模式、时钟源和使能 / 除能控制,单片机 内部电路即自动完成 PWM 各子调制周期的划分并输出 PWM 信号。 将原始调制周期分成 2 个或 4 个子周期的方法,使产生更高的 PWM 频率成为 可能,这样可以提供更广泛的应用。使用者需要理解 PWM 频率与 PWM 调制 频率的不同之处。PWM 时钟为 fDIV,当 PWM 值为 8-bit 时,整个 PWM 周期的 频率为 fDIV/256。(7+1) 位模式下的 PWM 调制频率为 fDIV/128,而 (6+2) 位模式 下的 PWM 调制频率为 fDIV/64。 (6+2) 位 PWM 模式调制 在 (6+2) 位模式中,一个 PWM 周期又被分成 4 个调制周期,称为调制周期 0 ~ 调 制周期 3。每个子周期包含 64 个 PWM 输入时钟周期。在这个模式下,PWMD 被分成两个部分。第一部分包括 PWMD 的 bit 7 ~ bit 2 位,表示 DC 值,第二部分 为 PWMD 的 bit 1 ~ bit 0 位,表示 AC 值。下表总结了在 (6+2) 位模式下 PWM 输 出信号的调制频率、调制周期占空比、PWM 周期频率和 PWM 周期占空比的概况。 调制频率 调制周期 i fDIV/64 i=0~3 调制周期占空比 i
HT66F0041 价格&库存

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

免费人工找货
HT66F0041
  •  国内价格
  • 1+1.81250
  • 30+1.75000
  • 100+1.62500
  • 500+1.50000
  • 1000+1.43750

库存:0