移动电源 Flash 单片机
HT45F4N/HT45FH4N
版本:V1.30
日期:2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
目录
特性 .................................................................................................................................6
CPU 特性 ............................................................................................................................... 6
周边特性 ................................................................................................................................ 6
概述 ................................................................................................................................7
选型表 .............................................................................................................................7
方框图 .............................................................................................................................8
引脚图 .............................................................................................................................8
引脚说明 ....................................................................................................................... 11
极限参数 .......................................................................................................................19
直流电气特性 ...............................................................................................................19
交流电气特性 ...............................................................................................................21
SCOM 电气特性 ..........................................................................................................22
LVD & LVR 电气特性 .................................................................................................22
ADC 电气特性 ..............................................................................................................23
过电流电路电气特性 ..................................................................................................23
过压 / 欠压电路电气特性 ...........................................................................................24
USB 充 / 放电检测电路电气特性 ...............................................................................24
LDO 稳压器电气特性 ..................................................................................................25
电平转换器电气特性 ...................................................................................................25
上电复位特性 ...............................................................................................................25
系统结构 .......................................................................................................................26
时序和流水线结构 .............................................................................................................. 26
程序计数器 .......................................................................................................................... 27
堆栈 ...................................................................................................................................... 27
算术逻辑单元 – ALU .......................................................................................................... 28
Flash 程序存储器 .........................................................................................................29
结构 ...................................................................................................................................... 29
特殊向量 .............................................................................................................................. 29
查表 ...................................................................................................................................... 30
查表范例 .............................................................................................................................. 30
在线烧录 .............................................................................................................................. 31
片上调试 .............................................................................................................................. 32
数据存储器 ...................................................................................................................33
结构 ...................................................................................................................................... 33
特殊功能寄存器 ...........................................................................................................35
间接寻址寄存器 – IAR0,IAR1 ........................................................................................ 35
间接寻址指针 – MP0,MP1............................................................................................... 35
存储区指针 – BP ................................................................................................................. 36
Rev.1.30
2
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
累加器 – ACC ...................................................................................................................... 36
程序计数器低字节寄存器 – PCL ....................................................................................... 36
表格寄存器 – TBLP,TBHP,TBLH ................................................................................ 36
状态寄存器 – STATUS ........................................................................................................ 37
EEPROM 数据寄存器 .................................................................................................39
EEPROM 数据寄存器结构 ................................................................................................. 39
EEPROM 寄存器 ................................................................................................................. 39
从 EEPROM 中读取数据 .................................................................................................... 40
写数据到 EEPROM ............................................................................................................. 41
写保护 .................................................................................................................................. 41
EEPROM 中断 ..................................................................................................................... 41
编程注意事项 ...................................................................................................................... 41
程序举例 .............................................................................................................................. 42
振荡器 ...........................................................................................................................43
振荡器概述 .......................................................................................................................... 43
系统时钟配置 ...................................................................................................................... 43
内部 RC 振荡器 – HIRC ..................................................................................................... 44
内部 32kHz 振荡器 – LIRC ................................................................................................ 44
工作模式和系统时钟 ...................................................................................................44
系统时钟 .............................................................................................................................. 44
系统工作模式 ...................................................................................................................... 45
控制寄存器 .......................................................................................................................... 47
工作模式切换 ...................................................................................................................... 49
静态电流的注意事项 .......................................................................................................... 52
唤醒 ...................................................................................................................................... 52
看门狗定时器 ...............................................................................................................53
看门狗定时器时钟源 .......................................................................................................... 53
看门狗定时器控制寄存器 .................................................................................................. 53
看门狗定时器操作 .............................................................................................................. 54
复位和初始化 ...............................................................................................................55
复位功能 .............................................................................................................................. 55
复位初始状态 ...................................................................................................................... 58
输入 / 输出端口 ............................................................................................................61
上拉电阻 .............................................................................................................................. 62
PA 口唤醒 ............................................................................................................................ 63
输入 / 输出端口控制寄存器 ............................................................................................... 63
引脚重置功能 ...................................................................................................................... 64
引脚重置寄存器 .................................................................................................................. 64
输入 / 输出引脚结构 ........................................................................................................... 66
编程注意事项 ...................................................................................................................... 67
定时器模块 – TM .........................................................................................................68
简介 ...................................................................................................................................... 68
TM 操作 ............................................................................................................................... 68
TM 时钟源 ........................................................................................................................... 68
Rev.1.30
3
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TM 中断 ............................................................................................................................... 69
TM 外部引脚 ....................................................................................................................... 69
TM 输入 / 输出引脚控制寄存器 ........................................................................................ 69
编程注意事项 ...................................................................................................................... 74
标准型 TM – STM .......................................................................................................75
标准型 TM 操作 .................................................................................................................. 75
标准型 TM 寄存器介绍 ...................................................................................................... 76
标准型 TM 工作模式 .......................................................................................................... 80
周期型 TM – PTM .......................................................................................................90
周期型 TM 操作 .................................................................................................................. 90
周期型 TM 寄存器介绍 ...................................................................................................... 90
周期型 TM 工作模式 .......................................................................................................... 95
A/D 转换器..................................................................................................................104
A/D 简介 ............................................................................................................................ 104
A/D 转换寄存器介绍 ........................................................................................................ 105
A/D 操作 ............................................................................................................................ 109
A/D 输入引脚 .................................................................................................................... 110
A/D 转换步骤 .....................................................................................................................111
编程注意事项 .................................................................................................................... 112
A/D 转换功能 .................................................................................................................... 112
A/D 转换应用范例 ............................................................................................................ 113
互补式 PWM 输出 .................................................................................................... 115
过电流保护 ................................................................................................................. 117
过电流保护功能 ................................................................................................................ 117
过流保护电路操作 ............................................................................................................ 117
输入电压范围 .................................................................................................................... 118
失调电压校准 .................................................................................................................... 126
过压保护和欠压保护 .................................................................................................127
过压保护功能 .................................................................................................................... 127
欠压保护功能 .................................................................................................................... 127
USB 充 / 放电自动检测..............................................................................................132
USB0 .................................................................................................................................. 132
USB1,USB2..................................................................................................................... 133
USB 充 / 放电自动检测寄存器 ........................................................................................ 134
中断 .............................................................................................................................137
中断寄存器 ........................................................................................................................ 137
中断操作 ............................................................................................................................ 144
外部中断 ............................................................................................................................ 145
UVP 中断 ........................................................................................................................... 146
OVP 中断 ........................................................................................................................... 146
OCP 中断 ........................................................................................................................... 146
多功能中断 ........................................................................................................................ 146
A/D 转换器中断 ................................................................................................................ 146
时基中断 ............................................................................................................................ 147
Rev.1.30
4
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
EEPROM 中断 ................................................................................................................... 148
LVD 中断 ........................................................................................................................... 148
TM 中断 ............................................................................................................................. 148
中断唤醒功能 .................................................................................................................... 148
编程注意事项 .................................................................................................................... 149
低电压检测 – LVD .....................................................................................................149
LVD 操作 ........................................................................................................................... 150
带 SCOM 功能的 LCD ..............................................................................................151
LCD 操作 ........................................................................................................................... 151
LCD 偏压控制 ................................................................................................................... 152
应用电路 .....................................................................................................................153
指令集 .........................................................................................................................154
简介 .................................................................................................................................... 154
指令周期 ............................................................................................................................ 154
数据的传送 ........................................................................................................................ 154
算术运算 ............................................................................................................................ 154
逻辑和移位运算 ................................................................................................................ 154
分支和控制转换 ................................................................................................................ 155
位运算 ................................................................................................................................ 155
查表运算 ............................................................................................................................ 155
其它运算 ............................................................................................................................ 155
指令集概要 .................................................................................................................156
惯例 .................................................................................................................................... 156
指令定义 .....................................................................................................................159
封装信息 .....................................................................................................................171
28-pin SSOP (150mil) 外形尺寸 ....................................................................................... 172
Rev.1.30
5
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
特性
CPU 特性
● 工作电压
♦ fSYS = 7.5MHz:2.55V~5.50V
♦ fSYS = 15MHz:4.50V~5.50V
● VDD=5V,系统时钟为 15MHz 时,指令周期为 0.27μs
● 提供暂停和唤醒功能,以降低功耗
● 振荡器类型
♦ 内部 RC -- HIRC
♦ 内部 32kHz -- LIRC
● 多种工作模式:正常、低速、空闲和休眠
● 所有指令都可在 1 或 2 个指令周期内完成
● 查表指令
● 63 条指令
● 8 层堆栈
● 位操作指令
周边特性
● Flash 程序存储器:4K×16
● RAM 数据存储:192×8
● True EEPROM 存储器:64×8
● 看门狗定时器
● 多达 26 个双向 I/O 口
● 4 个由软件控制的 SCOM 口 1/2 bias LCD 驱动
● 3 个引脚与外部中断口共用
● 1 个 16-bit STM
● 3 个 10-bit PTM
● 2 对带死区时间控制的互补 PWM 输出
● 2 个带中断的过电流保护功能
● 带中断的过电压 / 欠电压保护功能
● USB 充 / 放电自动检测功能
● 双时基功能用以产生固定的中断信号
● 14 通道 12-bit A/D 转换器 ( 外部输入 )
● 低电压复位功能
● 低电压检测功能
● 内建一个 5V LDO 输出 – 仅存在于 HT45FH4N
● 2 个电平转换输出引脚 – 仅存在于 HT45FH4N
● 封装类型:28-pin SSOP
Rev.1.30
6
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
HT45FH4N
复位后 AX/BX 引脚状态 输出高
复位后 CX/DX 引脚状态 输出低
内部连接
PB4/OUT0L → A,PB3/OUT0H → C
AX/BX 同相输出到输入脚 A
电平转换
CX/DX 反相输出到输入脚 C
外围特性表
概述
该系列单片机是 8 位高性能精简指令集的 Flash 型单片机,具有一系列功能和
特性,其 Flash 存储器可多次编程的特性给用户提供了较大的方便。存储器方
面,还包含了一个 RAM 数据存储器和一个可用于存储序号、校准数据等非易
失性数据的 True EEPROM 存储器。
在模拟特性方面,该系列单片机包含一个多通道 12 位 A/D 转换器、两个过电
流保护模块,一个过电压 / 欠电压保护模块, USB 充电 / 放电自动侦测功能及
LDO 稳压器输出。还带有多个使用灵活的定时器模块,可提供定时功能、脉冲
产生功能及 PWM 产生功能。内部看门狗定时器、低电压复位和低电压检测等
内部保护特性,外加优秀的抗干扰和 ESD 保护性能,确保单片机在恶劣的电磁
干扰环境下可靠地运行。
该系列单片机提供了 HIRC 和 LIRC 振荡器功能选项,且内建完整的系统振荡
器,无需外接元件。其在不同工作模式之间动态切换的能力,为用户提供了一
个优化单片机操作和减少功耗的手段。
该系列单片机包含 USB 端口用来完成充电 / 放电检测功能。外加时基功能、I/O
使用灵活等其它特性,使这系列单片机可以很好应用于需要 USB 口充 / 放电产
品中。
选型表
对此系列的芯片而言,大多数的特性参数都是一样的。主要差异在于 I/O 口数
量和电平转换输出引脚数。下表列出了各单片机的主要特性。
型号
VDD
HT45F4N 2.55V~5.5V
HT45FH4N 2.55V~5.5V
ROM
4K×16
4K×16
RAM
192×8
192×8
EEPROM
64×8
64×8
I/O
26
21
外部中断
A/D
3
12-bit×14
3
12-bit×14
TM 模块
堆栈
USB
LDO
电平转换
输出脚
封装形式
HT45F4N
16-bit STM×1
10-bit PTM×3
8
3
—
—
28SSOP
HT45FH4N
16-bit STM×1
10-bit PTM×3
8
3
√
AX/BX
CX/DX
28SSOP
型号
注:HT45FH4N 单片机 的 AN9 没有连接到外部引脚。
Rev.1.30
7
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
方框图
Reset
Circuit
Watchdog
Timer
Flash/EEPROM
Programming Circuitry
EEPROM
Data
Memory
Flash
Program
Memory
Low
Voltage
Detect
RAM
Data
Memory
8-bit
RISC
MCU
Core
Low
Voltage
Reset
Time
Base
Interrupt
Controller
Internal RC
Oscillators
12-bit A/D
Converter
Over Current
Protection
LDO
Level
Shift
I/O
Over/Under
Voltage Protection
Timer
Modules
USB
Charge/Discharge
Auto Detection
For HT45FH4N only
引脚图
Rev.1.30
8
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Rev.1.30
9
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
注:1. 括号内引脚名称并不是默认的引脚输出位置。
2. 若共用脚同时有多种输出,“/”号右侧的引脚名具有更高的优先级。
3. 实际 MCU 和 OCDS EV 单片机共用同一封装。OCDSCK 和 OCDSDA 引脚只对 OCDS
EV IC 有效。更多详细描述请查阅 OCDS 章节。
4. 对于 HT45FH4N 单片机:
PB4/OUT0L 和 PB3/OUT0H 引脚内部分别与电平转换输入脚 A 和 C 相连。
PB1/[OUT0L]/OUT1L,PB2/[OUT0H]/OUT1H 和 PD1/AN9/D0- 没有连接
到外部引脚。
在 PCB 应用中,引脚 25 和引脚 26 必须相连。
Rev.1.30
10
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
引脚说明
除了电源引脚外,该系列单片机的所有引脚都以它们的端口名称进行标注,例
如 PA0、PA1 等,用于描述这些引脚的数字输入 / 输出功能。然而,这些引脚
也与其它功能共用,如模数转换器,定时器模块引脚等。每个引脚的功能如下
表所述,而引脚配置的详细内容见规格书其它章节。
HT45F4N
引脚名称
PA0/TP3_1/AN0
PA1/DAPWR/
AN1/VREF
PA2/[INT0]/
TCK2/AN2
PA3/[INT1]/
TCK1/SCOM2
PA4/[INT2]/
TP0_1/[OUT1H]/
SCOM1
Rev.1.30
OPT
PAPU
PA0
PAWU
TP3_1
TMPC1
ADCR0
AN0
ACERL
PAPU
PA1
PAWU
DAPWR
—
ADCR0
AN1
ACERL
VREF
ADCR1
PAPU
PA2
PAWU
INTEG
INT0
INTC1
TCK2
—
ACERL
AN2
ADCR0
PAPU
PA3
PAWU
INTEG
INT1
INTC1
TCK1
—
SCOM2 SCOMC
PAPU
PA4
PAWU
INTEG
INT2
INTC1
TP0_1
TMPC0
PRM
OUT1H
TMPC1
SCOM1 SCOMC
功能
I/T
O/T
ST
CMOS
ST
CMOS
AN
—
ST
CMOS
AN
—
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
D/A 转换电源输入
AN
—
ADC 输入
AN
—
ST
CMOS
A/D 转换参考电压输入
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
ST
—
外部中断 0
ST
—
TM2 时钟输入
AN
—
ADC 输入
ST
CMOS
ST
—
ST
—
—
SCOM
ST
CMOS
ST
—
ST
CMOS
TM0 I/O
—
CMOS
互补 PWM1 输出
—
SCOM
软件控制 LCD COM
11
描述
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
TM3 I/O
ADC 输入
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
外部中断 1
TM1 时钟输入
软件控制 LCD COM
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
外部中断 2
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
引脚名称
ICPDA
OPT
PAPU
PAWU
INTEG
INTC1
—
SCOMC
PAPU
PAWU
INTEG
INTC1
—
TMPC1
ACERL
ADCR0
—
OCDSDA
—
功能
PA5
PA5/INT0/TCK0/
SCOM3
INT0
TCK0
SCOM3
PA6
INT1
PA6/INT1/TCK3/
TP2_1/AN3/
ICPDA/OCDSDA
TCK3
TP2_1
AN3
PAPU
PAWU
INTEG
INT2
INTC1
PA7/INT2/TP1_1/
TP1_1
TMPC0
AN4/ICPCK/
OCDSCK
ACERL
AN4
ADCR0
ICPCK
—
OCDSCK
—
PA7
PB0/TP0_0/
TP1_0/TP2_0/
TP3_0/[OUT1L]/
SCOM0
ST
CMOS
ST
—
ST
—
—
SCOM
ST
CMOS
ST
—
ST
ST
—
CMOS
AN
—
ST
CMOS
ST
CMOS
ST
CMOS
ST
—
ST
CMOS
AN
—
ADC 输入
ST
ST
—
—
描述
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
外部中断 0
TM0 时钟输入
软件控制 LCD COM
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
外部中断 1
TM3 时钟输入
TM2 I/O
ADC 输入
在线烧录数据 / 地址引脚
片上调试数据 / 地址引脚,仅用于
EV 芯片
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
外部中断 2
TM1 I/O
PB0
PBPU
ST
CMOS
TP0_0
TP1_0
TP2_0
TP3_0
ST
ST
ST
ST
CMOS
CMOS
CMOS
CMOS
—
CMOS
互补 PWM 1 输出
SCOM0
TMPC0
TMPC0
TMPC1
TMPC1
PRM
TMPC1
SCOMC
—
SCOM
PB1
PBPU
ST
CMOS
软件控制 LCD COM
通用 I/O 口,可通过寄存器设置上
拉电阻
—
CMOS
互补 PWM0 输出
—
CMOS
互补 PWM1 输出
OUT0L
OUT1L
Rev.1.30
O/T
在线烧录时钟引脚
片上调试时钟引脚,仅用于 EV IC
通用 I/O 口,可通过寄存器设置上
拉电阻
TM0 I/O
TM1 I/O
TM2 I/O
TM3 I/O
OUT1L
PB1/[OUT0L]/
OUT1L
I/T
PRM
TMPC0
PRM
TMPC1
12
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
引脚名称
PB2/[OUT0H]/
OUT1H
功能
OPT
I/T
O/T
PB2
PBPU
ST
CMOS
描述
通用 I/O 口,可通过寄存器设置上
拉电阻
—
CMOS
互补 PWM0 输出
—
CMOS
互补 PWM1 输出
OUT0H
OUT1H
PB3/OUT0H
PB4/OUT0L
PC0/OUVP00/
AN5
PB3
PBPU
ST
CMOS
通用 I/O 口,可通过寄存器设置上
拉电阻
OUT0H
PRM
TMPC0
—
CMOS
互补 PWM0 输出
PB4
PBPU
ST
CMOS
通用 I/O 口,可通过寄存器设置上
拉电阻
OUT0L
PRM
TMPC0
—
CMOS
互补 PWM0 输出
PC0
PCPU
ST
CMOS
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
过电压 / 欠电压保护引脚输入
AN
—
ADC 输入
ST
CMOS
AN
—
过电压 / 欠电压保护引脚输入
AN
—
ADC 输入
ST
CMOS
AN
—
过压 / 欠压保护引脚输入
AN
—
ADC 输入
OUVP00
AN5
PC1
PC1/OUVP01/
AN6
OUVP01
AN6
PC2
PC2/OUVP02/
AN7
OUVP02
AN7
PC3/OCP00
PC4/OCP01
PC5/OCP10
Rev.1.30
PRM
TMPC0
PRM
TMPC1
ACERL
OUVPC0
ACERL
ADCR0
PCPU
ACERL
OUVPC0
ACERL
ADCR0
PCPU
ACERL
OUVPC0
ACERL
ADCR0
PC3
PCPU
ST
CMOS
OCP00
OCPPC
OCP0C0
AN
—
PC4
PCPU
ST
CMOS
OCP01
OCPPC
OCP0C0
AN
—
PC5
PCPU
ST
CMOS
OCP10
OCPPC
OCP1C0
AN
—
13
通用 I/O 口,可通过寄存器设置上
拉电阻
通用 I/O 口,可通过寄存器设置上
拉电阻
通用 I/O 口,可通过寄存器设置上
拉电阻
过电流保护 0 输入
通用 I/O 口,可通过寄存器设置上
拉电阻
过电流保护 0 输入
通用 I/O 口,可通过寄存器设置上
拉电阻
过电流保护 1 输入
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
引脚名称
PC6/OCP11
PD0/AN8/D0+
PD1/AN9/D0-
PD2/AN10/D1+
PD3/AN11/D1-
PD4/AN12/D2+
PD5/AN13/D2-
功能
OPT
I/T
O/T
PC6
PCPU
ST
CMOS
OCP11
OCPPC
OCP1C0
AN
—
PD0
PDPU
ST
CMOS
AN
—
ADC 输入
—
AN
ST
CMOS
USB D0+ 0.6V 输出引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
AN
—
ST
CMOS
USB 电源模式检测输入引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
—
AN
ST
CMOS
USB D1+ DAC 输出引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
—
AN
ST
CMOS
USB D1- DAC 输出引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
—
AN
ST
CMOS
USB D2+ DAC 输出引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
—
PWR
PWR
PWR
PWR
PWR
PWR
AN
—
—
—
—
—
—
USB D2- DAC 输出引脚
正电源
ADC 正电源
I/O 端口正电源
负电源,接地
ADC 负电源,接地
I/O 端口负电源,接地
D0+
ACERH
ADCR0
ADUC1
PD1
PDPU
AN8
D0-
ACERH
ADCR0
—
PD2
PDPU
AN9
D1+
ACERH
ADCR0
ADUC1
PD3
PDPU
AN10
D1-
ACERH
ADCR0
ADUC1
PD4
PDPU
AN11
D2+
ACERH
ADCR0
ADUC1
PD5
PDPU
AN12
AN13
D2VDD
VDD/AVDD/
AVDD
IOVDD
IOVDD
VSS
VSS/AVSS/IOVSS AVSS
IOVSS
Rev.1.30
ACERH
ADCR0
ADUC1
—
—
—
—
—
—
14
描述
通用 I/O 口,可通过寄存器设置上
拉电阻
过电流保护 1 输入
通用 I/O 口,可通过寄存器设置上
拉电阻
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
HT45FH4N
引脚名称
功能
PA0/TP3_1/AN0
PA1/DAPWR/
AN1/VREF
PA2/[INT0]/
TCK2/AN2
PA3/[INT1]/
TCK1/SCOM2
PA4/[INT2]/
TP0_1/[OUT1H]/
SCOM1
PA5/INT0/TCK0/
SCOM3
Rev.1.30
OPT
PAPU
PA0
PAWU
TP3_1
TMPC1
ADCR0
AN0
ACERL
PAPU
PA1
PAWU
DAPWR
—
ADCR0
AN1
ACERL
VREF
ADCR1
PAPU
PA2
PAWU
INTEG
INT0
INTC1
TCK2
—
ACERL
AN2
ADCR0
PAPU
PA3
PAWU
INTEG
INT1
INTC1
TCK1
—
SCOM2 SCOMC
PAPU
PA4
PAWU
INTEG
INT2
INTC1
TP0_1
TMPC0
PRM
OUT1H
TMPC1
SCOM1 SCOMC
PAPU
PA5
PAWU
INTEG
INT0
INTC1
TCK0
—
SCOM3 SCOMC
I/T
O/T
ST
CMOS
ST
CMOS
AN
—
ST
CMOS
AN
—
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
D/A 转换电源输入
AN
—
ADC 输入
AN
—
ST
CMOS
A/D 转换参考电压输入
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
ST
—
外部中断 0
ST
—
TM2 时钟输入
AN
—
ADC 输入
ST
CMOS
ST
—
ST
—
—
SCOM
ST
CMOS
ST
—
ST
CMOS
TM0 I/O
—
CMOS
互补 PWM1 输出
—
SCOM
ST
CMOS
软件控制 LCD COM
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
ST
—
ST
—
—
SCOM
15
描述
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
TM3 I/O
ADC 输入
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
外部中断 1
TM1 时钟输入
软件控制 LCD COM
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
外部中断 2
外部中断 0
TM0 时钟输入
软件控制 LCD COM
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
引脚名称
ICPDA
OPT
PAPU
PAWU
INTEG
INTC1
—
TMPC1
ACERL
ADCR0
—
OCDSDA
—
功能
PA6
INT1
PA6/INT1/TCK3/
TP2_1/AN3/
ICPDA/OCDSDA
TCK3
TP2_1
AN3
—
ST
ST
—
CMOS
AN
—
ST
CMOS
ST
CMOS
ST
CMOS
ST
—
ST
CMOS
AN
—
ADC 输入
ST
—
外部中断 1
TM3 时钟输入
TM2 I/O
ADC 输入
在线烧录数据 / 地址引脚
片上调试数据 / 地址引脚,仅用于
EV 芯片
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
—
ST
—
PB0
PBPU
ST
CMOS
TP0_0
TP1_0
TP2_0
TP3_0
ST
ST
ST
ST
CMOS
CMOS
CMOS
CMOS
—
CMOS
互补 PWM 1 输出
SCOM0
TMPC0
TMPC0
TMPC1
TMPC1
PRM
TMPC1
SCOMC
—
SCOM
PC0
PCPU
ST
CMOS
软件控制 LCD COM
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
过压 / 欠压保护引脚输入
AN
—
ADC 输入
ST
CMOS
AN
—
过压 / 欠压保护引脚输入
AN
—
ADC 输入
OUVP00
PC1
OUVP01
AN6
Rev.1.30
ST
OCDSCK
AN4
AN5
PC1/OUVP01/
AN6
CMOS
在线烧录时钟输入
片上调试时钟输入,仅用于 EV 芯
片
通用 I/O 口,可通过寄存器设置上
拉电阻
TM0 I/O
TM1 I/O
TM2 I/O
TM3 I/O
TP1_1
OUT1L
PC0/OUVP00/
AN5
ST
描述
通用 I/O 口,可通过寄存器设置上
拉电阻和唤醒功能
ICPCK
INT2
PB0/TP0_0/
TP1_0/TP2_0/
TP3_0/[OUT1L]/
SCOM0
O/T
PAPU
PAWU
INTEG
INTC1
TMPC0
ACERL
ADCR0
—
PA7
PA7/INT2/TP1_1/
AN4/ICPCK/
OCDSCK
I/T
ACERL
OUVPC0
ACERL
ADCR0
PCPU
ACERL
OUVPC0
ACERL
ADCR0
16
外部中断 2
TM1 I/O
通用 I/O 口,可通过寄存器设置上
拉电阻
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
引脚名称
PC2/OUVP02/
AN7
功能
OPT
I/T
O/T
PC2
PCPU
ST
CMOS
AN
—
过压 / 欠压保护引脚输入
AN
—
ADC 输入
OUVP02
AN7
PC3/OCP00
PC4/OCP01
PC5/OCP10
PC6/OCP11
PD0/AN8/D0+
PD2/AN10/D1+
PD3/AN11/D1-
PD4/AN12/D2+
通用 I/O 口,可通过寄存器设置上
拉电阻
PC3
PCPU
ST
CMOS
OCP00
OCPPC
OCP0C0
AN
—
PC4
PCPU
ST
CMOS
OCP01
OCPPC
OCP0C0
AN
—
PC5
PCPU
ST
CMOS
OCP10
OCPPC
OCP1C0
AN
—
PC6
PCPU
ST
CMOS
OCP11
OCPPC
OCP1C0
AN
—
PD0
PDPU
ST
CMOS
AN
—
ADC 输入
—
AN
ST
CMOS
USB D0+ 0.6V 输出引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
—
AN
ST
CMOS
USB D1+ DAC 输出引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
—
AN
ST
CMOS
USB D1- DAC 输出引脚
通用 I/O 口,可通过寄存器设置上
拉电阻
AN
—
ADC 输入
—
AN
USB D2+ DAC 输出引脚
D0+
ACERH
ADCR0
ADUC1
PD2
PDPU
AN8
D1+
ACERH
ADCR0
ADUC1
PD3
PDPU
AN10
D1-
ACERH
ADCR0
ADUC1
PD4
PDPU
AN11
AN12
D2+
Rev.1.30
ACERL
OUVPC0
ACERL
ADCR0
描述
通用 I/O 口,可通过寄存器设置上
拉电阻
ACERH
ADCR0
ADUC1
17
过电流保护 0 输入
通用 I/O 口,可通过寄存器设置上
拉电阻
过电流保护 0 输入
通用 I/O 口,可通过寄存器设置上
拉电阻
过电流保护 1 输入
通用 I/O 口,可通过寄存器设置上
拉电阻
过电流保护 1 输入
通用 I/O 口,可通过寄存器设置上
拉电阻
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
引脚名称
功能
OPT
I/T
O/T
PD5
PDPU
ST
CMOS
AN
—
—
—
AN
PWR
V5
D2V5
ACERH
ADCR0
ADUC1
—
VCC
VCC
—
PWR
—
—
—
—
—
—
—
—
—
PWR
PWR
PWR
PWR
PWR
PWR
—
—
—
—
—
—
—
—
—
—
PD5/AN13/D2-
AN13
VDD
AVDD
IOVDD
VSS
VSS/AVSS/IOVSS AVSS
IOVSS
AX, BX
AX, BX
CX, DX
CX, DX
VDD/AVDD/
IOVDD
描述
通用 I/O 口,可通过寄存器设置上
拉电阻
ADC 输入
USB D2- DAC 输出引脚
5V LDO 输出
LDO 电源电压和电平转换器输出驱
动电源
正电源
ADC 正电源
I/O 端口正电源
负电源,接地
ADC 负电源,接地
I/O 端口负电源,接地
电平转换输入脚 A
电平转换输入脚 C
内部连接描述
信号名称
PB3~PB4
OUT0L,
OUT0H
A, C
功能
通用 I/O 口,可通过寄存器设置上拉电阻。
内部分别与电平转换输入脚相连。
PWM 输出
内部分别与电平转换输入脚 A 和 C 相连。
电平转换输入脚
内部分别与 PB4/OUT0L 和 PB3/OUT0H 相连
OPT
I/T
O/T
PBPU
ST CMOS
TMPC
—
CMOS
PB4, PB3
—
—
—
—
引脚共用
—
注:I/T:输入类型;
O/T:输出类型
OPT:通过寄存器选项来配置
PWR:电源;
ST:施密特触发输入
CMOS:CMOS 输出;
AN:模拟输入脚
SCOM:软件控制的 LCD COM
电平转换输入 / 输出关系及复位状态
电平转换输出
AX,BX
电平转换输出
CX,DX
Rev.1.30
电平转换输入
A 输入 = 低
A 输入 = 高
低
高
电平转换输入
C 输入 = 低
C 输入 = 高
高
低
18
复位状态
高
复位状态
低
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
极限参数
电源供应电压 ................................................................................VSS-0.3V~VSS+6.0V
端口输入电压 ............................................................................... VSS-0.3V~VDD+0.3V
储存温度 ...................................................................................................-50˚C~150˚C
工作温度 .....................................................................................................-40˚C~85˚C
IOH 总电流 ..........................................................................................................-120mA
IOL 总电流............................................................................................................120mA
总功耗 ................................................................................................................500mW
注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无
法预期芯片在上述标示范围外的工作状态,而且若长期在标示范围外的条
件下工作,可能影响芯片的可靠性。
直流电气特性
Ta = 25°C
符号
VDD
IDD
参数
工作电压
(HIRC)
—
工作电压
(LIRC)
—
工作电流
(HIRC)
工作电流
(LIRC)
静态电流
(IDLE0 模式 )
ISTB
静态电流
(IDLE1 模式 )
静态电流
(SLEEP 模式 )
VIH
高电平输入电压
(I/O 口 )
VIL
低电平输入电压
(I/O 口 )
Rev.1.30
VDD
3V
5V
4.5V
5V
3V
5V
3V
5V
3V
4.5V
5V
3V
5V
5V
—
5V
—
测试条件
条件
fSYS = fHIRC/4 = 7.5MHz
fSYS = fHIRC/2 = 15MHz
fSYS = fLIRC = 32kHz
fSYS = 7.5MHz,
无负载,所有设备关闭
fSYS= 15MHz,
无负载,所有设备关闭
fSYS= 32kHz,
无负载,所有设备关闭
无负载,所有设备关闭
fHIRC = 30MHz,
无负载,所有设备关闭
无负载,所有设备关闭
—
—
—
—
19
最小
典型
最大
2.55
4.5
—
—
5.5
5.5
2.55
—
5.5
—
—
—
—
—
—
—
—
—
—
—
—
—
3.5
0.8VDD
0
0
2.4
5.4
5.0
6.0
45
60
1.9
3.1
1.0
1.6
1.8
1.8
2.8
—
—
—
—
单位
V
3.6
mA
8.1
7.5
mA
9.0
65
μA
90
3.0
μA
5.0
1.5
2.4
mA
2.7
3.0
μA
5.0
VDD
V
VDD
V
1.5
V
0.2VDD V
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
符号
VOH
VOL
IOH
IOL
参数
高电平输出电压
(PA, PB0, PC, PD)
高电平输出电压
(PB1~PB4)
低电平输出电压
(PA, PB0, PC, PD)
低电平输出电压
(PB1~PB4)
I/O 口源电流
(PA, PB0, PC, PD)
I/O 源电流
(PB1~PB4)
I/O 口灌电流
(PA, PB0, PC, PD)
I/O 口灌电流
(PB1~PB4)
ILEAK
漏电流
RPH
I/O 口上拉电阻
VDR
IDDP
RAM 数据保存电压
烧录过程中电源电流
Rev.1.30
VDD
3V
5V
3V
5V
3V
5V
3V
5V
3V
5V
3V
5V
3V
5V
3V
5V
5V
3V
5V
—
—
测试条件
条件
IOH = -2.4mA
IOH = -6mA
IOH = -16mA
IOH = -40mA
IOL = 6.4mA
IOL = 16mA
IOL = 16mA
IOL = 40mA
VOH = 0.9VDD
VOH = 0.9VDD
VOL = 0.1VDD
VOL = 0.1VDD
VIN=VDD 或 VIN=VSS
—
—
—
—
20
最小
典型
最大
2.7
4.5
2.7
4.5
—
—
—
—
-2.4
-6
-16
-40
6.4
16
16
40
—
20
10
1.0
—
—
—
—
—
—
—
—
—
-4.8
-12
-32
-80
12.8
32
32
80
—
60
30
—
—
—
—
—
—
0.3
0.5
0.3
0.5
—
—
—
—
—
—
—
—
±1
100
50
—
10
单位
V
V
V
V
mA
mA
mA
mA
μA
kΩ
kΩ
V
mA
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
交流电气特性
Ta = 25°C
符号
fSYS
fHIRC
fLIRC
tINT
tTCK
tRSTD
tSST
tSRESET
tEERD
tEEWR
参数
VDD
2.55V~5.5V
系统时钟
4.5V~5.5V
2.55V~5.5V
5V
内部高速振荡器
4.0V~5.5V
(HIRC)
3.6V~5.5V
5V
内部低速振荡器
5V
(LIRC)
2.55V~5.5V
外部中断脉宽
—
TM TCK 输入引脚最小脉宽
—
系统复位延迟时间
—
(WDT 溢出硬件冷复位 )
系统启动时间
(fSYS = fHIRC/4)
系统启动时间
(fSYS = fLIRC)
软件复位时间
EEPROM 读取时间
EEPROM 写入时间
测试条件
条件
fSYS = fHIRC/4
fSYS = fHIRC/2
fSYS = fLIRC
Ta = 25°C
Ta = -10°C ~ 85°C
Ta = -40°C ~ 85°C
Ta = 25°C
Ta = -40°C ~ 85°C
Ta = -40°C ~ 85°C
—
—
—
从 SLEEP 模式或
IDLE0 模式中唤醒
从 IDLE1 模式中唤醒
从 IDLE 模式或
SLEEP 模式中唤醒
—
—
—
—
—
—
—
—
—
最小 典型 最大 单位
—
—
—
-2%
-5%
-10%
-10%
-30%
-50%
10
0.3
8.3
—
—
—
30
30
30
32
32
32
—
—
7.5
15
32
+2%
+5%
+10%
+10%
+30%
+60%
—
—
16.7 33.3
MHz
kHz
MHz
kHz
μs
μs
ms
16
—
—
1/fSYS
2
—
—
1/fSYS
2
—
—
1/fSYS
45
—
—
90
—
2
120
4
4
μs
tSYS
ms
注:为保证 HIRC 振荡器频率的精确度,建议在 VDD 和 VSS 之间连接一个 0.1μF 的电容,并尽可能靠近
单片机。
Rev.1.30
21
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
SCOM 电气特性
符号
IBIAS
VSCOM
Ta = 25°C
测试条件
条件
参数
VDD
3V
5V
3V
5V
LCD VDD/2 bias 电流
3V
5V
3V
5V
LCD COM 口 VDD/2 电压 2.55V~5.5V
最小
典型
10.5
15.0
19.5
17.5
25.0
32.5
21
30
39
ISEL[1:0]=01
35
50
65
42
60
78
ISEL[1:0]=10
70
100
130
84
120
156
ISEL[1:0]=11
140
200
260
无负载
0.475VDD 0.5VDD 0.525VDD
ISEL[1:0]=00
LVD & LVR 电气特性
符号
参数
单位
μA
μA
μA
μA
μA
μA
μA
μA
V
Ta = 25°C
VLVR
低电压复位电压
VLVD
低电压检测电压
VBG
IBG
Bandgap 参考电压
Bandgap 参考电流
ILVD
LVD 使能额外电流
tBGS
tLVR
tLVD
VBG 开启稳定时间
最小低电压复位时间
最小低电压中断时间
VDD
—
—
—
—
—
—
—
—
3V
5V
—
—
—
tLVDS
LVDO 稳定时间
5V
Rev.1.30
最大
测试条件
条件
LVR 使能
LVD 使能,VLVD = 2.7V
LVD 使能,VLVD = 3.0V
LVD 使能,VLVD = 3.3V
LVD 使能,VLVD = 3.6V
LVD 使能,VLVD = 4.0V
—
—
—
无负载
—
—
Bandgap 准备就绪,
LVD off → on
22
最小
典型
最大
单位
-5%
+5%
V
+5%
V
-3%
—
—
—
—
120
60
2.55
2.7
3.0
3.3
3.6
4.0
1.25
200
30
60
—
240
120
+3%
300
45
90
200
480
240
V
μA
—
—
15
μs
-5%
μA
μs
μs
μs
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
ADC 电气特性
符号
Ta = 25°C
测试条件
条件
—
—
—
参数
VDD
VADI
VREF
ADC 工作电压
ADC 输入电压
ADC 参考电压
IADC
ADC 使能额外电流
DNL
INL
tADCK
ADC 非线性微分误差
ADC 非线性积分误差
ADC 转换时钟周期
ADC 转换时间
( 包括采样和保持时间 )
A/D 转换器采样时间
A/D 转换器 On-to-Start 时间
tADC
tADS
tON2ST
VDD
—
—
—
3V
无负载
5V
5V VREF = VDD,tADCK = 0.5μs
5V VREF = VDD,tADCK = 0.5μs
—
—
最小 典型 最大 单位
2.7
0
2
—
—
—
—
0.5
—
—
—
0.90
1.20
±1
±2
—
5.5
V
VREF V
VDD
V
1.35
mA
1.80
±3 LSB
±4 LSB
μs
10
—
—
—
16
—
tADCK
—
—
—
—
—
4
4
—
—
—
tADCK
μs
过电流电路电气特性
Ta = 25°C
符号
IOCP
参数
过电流保护工作电流
VOS_CMP 比较器输入失调电压
VHYS
比较器迟滞电压
VCM_CMP 比较器共模电压范围
VOS_OPA OPA 输入失调电压
VCM_OPA OPA 共模电压范围
DNL
DAC 非线性微分误差
INL
DAC 非线性积分误差
Rev.1.30
测试条件
条件
VDD
3V OCPnM[1:0]=01B 或 10B
5V D/A 转换器参考电压 = 2.5V
未校准,
5V CnOF[4:0] = 10000B
校准后
5V
—
5V
—
未校准,
5V AnOF[5:0]=100000B
校准后
5V
—
5V D/A 转换器参考电压 = VDD
5V D/A 转换器参考电压 = VDD
23
最小 典型
最大
单位
—
—
300
450
500
600
μA
-15
—
15
mV
-4
20
VSS
—
40
—
-15
—
-4
-0.4
—
—
—
—
—
—
4
mV
60
mV
VDD-1.4 V
15
mV
4
mV
VDD-1.4 V
±1
LSB
±2
LSB
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
过压 / 欠压电路电气特性
符号
参数
IOVP
过电压保护工作电流
IUVP
欠电压保护工作电流
VOS
VHYS
VCM
DNL
INL
输入失调电压
迟滞电压
共模电压范围
DAC 非线性微分误差
DAC 非线性积分误差
Ta = 25°C
VDD
3V
5V
3V
5V
5V
5V
5V
5V
5V
测试条件
条件
最小 典型
OVPEN=1
UVPEN=1
—
—
—
DAC 参考电压 = VDD
DAC 参考电压 = VDD
—
—
—
—
-10
20
VSS
—
—
300
450
300
450
—
40
—
—
—
最大
500
600
500
600
10
60
VDD- 1.4
±1
±2
USB 充 / 放电检测电路电气特性
符号
参数
ERR
Rev.1.30
μA
μA
mV
mV
V
LSB
LSB
Ta = 25°C
测试条件
VDD
条件
—
—
— D0+ 输出源电流 = 250μA
VDD
工作电压
VDP_SRC D0+ 输出电压
D1+, D1-, D2+, D2- 输出电压
VDACO
—
范围
VREF
DAC0, DAC1 参考电压
—
3V
IDAC
DAC 使能后额外电流
5V
DNL DAC 非线性微分误差
5V
INL
DAC 非线性积分误差
5V
RO
DAC0, DAC1 R2R 输出电阻 5V
D1+ 和 D1- 之间的模拟开关
5V
电阻
RON
D2+ 和 D2- 之间的模拟开关
5V
电阻
D0+, D0-, D1+, D1-, D2+,
RPL
5V
D2- 下拉电阻
单位
2.55
0.5
—
0.6
5.5
0.7
V
V
—
VSS
—
VREF
V
—
2.0
—
—
—
—
—
—
0.6
1.0
—
—
5
VDD
0.9
1.5
±1
±2
—
V
mA
mA
LSB
LSB
kΩ
—
125
200
Ω
—
125
200
Ω
400
700 1400 kΩ
2.57
2.7
2.84
V
1.9
2.0
2.1
V
无负载
无负载
DAC 参考电压 = VDD
DAC 参考电压 = VDD
—
D1+ 引脚输入电压 = 0.8V,
D1- 引脚输出电流 = 1mA
D2+ 引脚输入电压 = 0.8V,
D2- 引脚输出电流 = 1mA
—
DAC 参考电压 = VDD,
DAC 数字值 = 148,
5V
D1+, D1-, D2+ 或 D2- 连接
一个 150kΩ 电阻到地
D1+, D1-, D2+, D2- 输出电压
误差
DAC 参考电压 = VDD,
DAC 数字值 = 110,
5V
D1+, D1-, D2+ 或 D2- 连接
一个 150kΩ 电阻到地
24
最小 典型 最大 单位
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
符号
测试条件
VDD
条件
— VBG 关闭
— VBG 开启
参数
tDP_SRC VDP_SRC 开启到稳定时间
最小 典型 最大 单位
—
—
LDO 稳压器电气特性
符号
VIN
参数
LDO 输入电压
VDD
—
LDO 输出电压
—
ΔVLOAD 负载调整率 ( 注 1)
—
VDROP
—
损失电压 ( 注 2)
IQ
静态电流
ΔVLINE 线性稳压率
—
—
TC
—
温度系数
200
10
μs
μs
CLOAD=1μF,Ta = 25°C
—
VOUT
—
—
测试条件
最小 典型 最大 单位
条件
—
6
—
28
V
Ta = 25°C,
-2%
5
+2%
V
ILOAD = 1mA, VIN = VOUT + 1V
-40°C ≤ Ta < 85°C,
-5%
5
+5%
V
ILOAD = 1mA, VIN = VOUT + 1V
1mA ≤ ILOAD ≤ 30mA
—
0.09 0.18 %/mA
VIN = VOUT + 1V
ΔVOUT = 2%, ILOAD = 1mA
—
—
100
mV
VIN = VOUT + 2V
μA
无负载,VIN = 12V
—
2
4
6V ≤ VIN ≤ 28V, ILOAD = 1mA
—
—
0.2
%/V
-40°C ≤ Ta < 85°C,
±0.9 ±2 mV/°C
—
VIN = VOUT + 1V, ILOAD = 10mA
注:1. 负载调整在恒结温条件下使用一个低 ON 时间的脉冲测得,测量时确保达到最大的功耗。功耗由输
入 / 输出差分电压和输出电流决定。确保的最大功耗不允许超出全输入 / 输出范围。任何环境温度
下的最大可允许功耗为 PD=(TJ(MAX)-Ta)/θJA 。
2. 损失电压的定义:与在 VIN=VOUT+2V 条件下的输出电压相比,输出电压跌落 2% 时的输入、输出
电压之差;
电平转换器电气特性
Ta = 25°C
符号
ISOURCE
ISINK
测试条件
VDD
条件
AX, BX, CX, DX 输出源电流 — VCC=12V, VOH=10.4V
AX, BX, CX, DX 输出灌电流 — VCC=12V, VOL=1.6V
参数
最小 典型 最大 单位
-60
60
-90
90
—
—
mA
mA
上电复位特性
Ta = 25°C
符号
参数
VPOR 上电复位电压
RRPOR 上电复位电压速率
tPOR
VDD 保持为 VPOR 的最小时间
Rev.1.30
VDD
—
—
—
测试条件
条件
—
—
—
25
最小
典型
最大
单位
—
0.035
1
—
—
—
100
—
—
mV
V/ms
ms
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
系统结构
内部系统结构是盛群单片机具有良好性能的主要因素。由于采用 RISC 结构,
此系列单片机具有高运算速度和高性能的特点。通过流水线的方式,指令的取
得和执行同时进行,此举使得除了跳转和调用指令外,其它指令都能在一个指
令周期内完成。8 位 ALU 参与指令集中所有的运算,它可完成算术运算、逻辑
运算、移位、递增、递减和分支等功能,而内部的数据路径则是以通过累加器
和 ALU 的方式加以简化。有些寄存器在数据存储器中被实现,且可以直接或间
接寻址。简单的寄存器寻址方式和结构特性,确保了在提供具有较大可靠度和
灵活性的 I/O 和 A/D 控制系统时,仅需要少数的外部器件。使得这些单片机适
用于低成本和大量生产的控制应用。
时序和流水线结构
主系统时钟由 HIRC 或 LIRC 振荡器提供,它被细分为 T1~T4 四个内部产生的
非重叠时序。在 T1 时间,程序计数器自动加一并抓取一条新的指令。剩下的
时间 T2~T4 完成译码和执行功能,因此,一个 T1~T4 时钟周期构成一个指令周
期。虽然指令的抓取和执行发生在连续的指令周期,但单片机流水线结构会保
证指令在一个指令周期内被有效执行。除非程序计数器的内容被改变,如子程
序的调用或跳转,在这种情况下指令将需要多一个指令周期的时间去执行。
系统时序和流水线
如果指令牵涉到分支,例如跳转或调用等指令,则需要两个指令周期才能完成
指令执行。需要一个额外周期的原因是程序先用一个周期取出实际要跳转或调
用的地址,再用另一个周期去实际执行分支动作,因此用户需要特别考虑额外
周期的问题,尤其是在执行时间要求较严格的时候。
Rev.1.30
26
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
指令捕捉
程序计数器
在程序执行期间,程序计数器用来指向下一个要执行的指令地址。除了“JMP”
和“CALL”指令需要跳转到一个非连续的程序存储器地址之外,它会在每条
指令执行完成以后自动加一。此系列单片机的程序寄存器的宽度为 11 位。只有
较低的 8 位,即所谓的程序计数器低字节寄存器 PCL,可以被用户直接读写。
当执行的指令要求跳转到不连续的地址时,如跳转指令、子程序调用、中断或
复位等,单片机通过加载所需要的地址到程序寄存器来控制程序,对于条件跳
转指令,一旦条件符合,在当前指令执行时取得的下一条指令将会被舍弃,而
由一个空指令周期来取代。
程序计数器
程序计数器高字节
PCL 寄存器
PC11~PC8
PCL7~PCL0
程序计数器的低字节,即程序计数器的低字节寄存器 PCL,可以通过程序控制,
且它是可以读取和写入的寄存器。通过直接写入数据到这个寄存器,一个程序
短跳转可直接执行,然而只有低字节的操作是有效的,跳转被限制在存储器的
当前页中,即 256 个存储器地址范围内,当这样一个程序跳转要执行时,会插
入一个空指令周期。程序计数器的低字节可由程序直接进行读取,PCL 的使用
可能引起程序跳转,因此需要额外的指令周期。
堆栈
堆栈是一个特殊的存储空间,用来存储程序计数器中的内容。此系列单片机有
8 层堆栈,堆栈既不是数据部分也不是程序空间部分,而且它既不是可读取也
不是可写入的。当前层由堆栈指针 (SP) 加以指示,同样也是不可读写的。在子
程序调用或中断响应服务时,程序计数器的内容被压入到堆栈中。当子程序或
中断响应结束时,返回指令 (RET 或 RETI) 使程序计数器从堆栈中重新得到它
以前的值。当一个芯片复位后,堆栈指针将指向堆栈顶部。
如果堆栈已满,且有非屏蔽的中断发生,中断请求标志会被置位,但中断响应
将被禁止。当堆栈指针减少 ( 执行 RET 或 RETI),中断将被响应。这个特性提
供程序设计者简单的方法来预防堆栈溢出。然而即使堆栈已满,CALL 指令仍
然可以被执行,而造成堆栈溢出。使用时应避免堆栈溢出的情况发生,因为这
可能导致不可预期的程序分支指令执行错误。
若堆栈溢出,则首个存入堆栈的程序计数器数据将会丢失。
Rev.1.30
27
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
P ro g ra m
T o p o f S ta c k
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
C o u n te r
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 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.30
28
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Flash 程序存储器
程序存储器用来存放用户代码即储存程序。程序存储器为 Flash 类型意味着可
以多次重复编程,方便用户使用同一芯片进行程序的修改。使用适当的单片机
编程工具,此所有单片机提供用户灵活便利的调试方法和项目开发规划及更新。
结构
程序存储器的容量为 4K×16 位,程序存储器用程序计数器来寻址,其中也包含
数据、表格和中断入口。数据表格可以设定在程序存储器的任何地址,由表格
指针来寻址。
特殊向量
程序存储器内部某些地址保留用做诸如复位和中断入口等特殊用途。地址 000H
是芯片复位后的程序起始地址。在芯片复位之后,程序将跳到这个地址并开始
执行。
程序存储器结构
Rev.1.30
29
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
查表
程序存储器中的任何地址都可以定义成一个表格,以便储存固定的数据。使用
表格时,表格指针必须先行设定,其方式是将表格的地址放在表格指针寄存器
TBLP 和 TBLH 中。这些寄存器定义表格总的地址。
在设定完表格指针后,表格数据可以使用“TABRD [m]”或“TABRDL [m]”
指令分别从程序存储器查表读取。当这些指令执行时,程序存储器中表格数据
低字节,将被传送到使用者所指定的数据存储器 [m],程序存储器中表格数据
的高字节,则被传送到 TBLH 特殊寄存器,而高字节中未使用的位将被读取为
“0”。
下图是查表中寻址 / 数据流程:
A d d re s s
L a s t p a g e o r
T B H P R e g is te r
T B L P R e g is te r
指令
b11 b10 b9
TABRD [m] @11 @10 @9
TABRDL [m] 1
1
1
D a ta
1 6 b its
R e g is te r T B L H
U s e r S e le c te d
R e g is te r
H ig h B y te
L o w B y te
b8
@8
1
b7
@7
@7
表格地址
b6 b5
@6 @5
@6 @5
b4
@4
@4
b3
@3
@3
b2
@2
@2
b1
@1
@1
b0
@0
@0
表格存储单元
注:b11~b0:表格地址位
@7~@0:表格指针位 (TBLP)
@11~@8:表格指针位 (TBHP)
查表范例
以下范例说明表格指针和表格数据如何被定义和执行。这个例子使用的表格数
据用 ORG 伪指令储存在存储器中。ORG 指令的值“F00H”指向的地址是 4K
程序存储器中最后一页的起始地址。表格指针的初始值设为 06H,这可保证从
数据表格读取的第一笔数据位于程序存储器地址 F06H,即最后一页起始地址后
的第六个地址。值得注意的是,假如“TABRD [m]”指令被使用,则表格指针
指向当前页。在这个例子中,表格数据的高字节等于零,而当“TABRD [m]”
指令被执行时,此值将会自动的被传送到 TBLH 寄存器。
TBLH 寄存器为只读寄存器,不能重新储存,若主程序和中断服务程序都使用
表格读取指令,应该注意它的保护。使用表格读取指令,中断服务程序可能会
改变 TBLH 的值,若随后在主程序中再次使用这个值,则会发生错误,因此建
议避免同时使用表格读取指令。然而在某些情况下,如果同时使用表格读取指
令是不可避免的,则在执行任何主程序的表格读取指令前,中断应该先除能,
另外要注意的是所有与表格相关的指令,都需要两个指令周期去完成操作。
Rev.1.30
30
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
表格读取程序范例
tempreg1 db ?
tempreg2 db ?
:
:
mov a,06h
mov tblp,a
mov a,07h
mov tbhp,a
:
:
tabrd tempreg1
dec tblp
tabrd tempreg2
:
:
org F00h
dc 00Ah, 00Bh, 00Ch, 00Dh,
:
:
; 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 “F06H”
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 “F05H”
transferred to tempreg2 and TBLH
in this example the data “1AH” is transferred
to tempreg1 and data “0FH” to register tempreg2
; sets initial address of program memory
00Eh, 00Fh, 01Ah, 01Bh
在线烧录
Flash 型程序存储器提供用户便利地对同一芯片进行程序的更新和修改。另外,
HOLTEK 单片机提供 4 线接口的在线烧录方式。用户可将进行过烧录或未经过
烧录的单片机芯片连同电路板一起制成,最后阶段进行程序的更新和程序的烧
录,在无需去除或重新插入芯片的情况下方便地保持程序为最新版。
Holtek 烧录器引脚名称
ICPDA
ICPCK
VDD
VSS
MCU 在线烧录引脚名称
PA6
PA7
VDD
VSS
功能
串行数据 / 地址烧录
时钟烧录
电源
地
烧录过程中,用户必须确保 PA6 和 PA7 这两个引脚没有连接至其它输出脚。
程序存储器和 EEPROM 存储器可以通过 4 线的接口在线进行烧录。其中 PA6
用于数据串行下载或上传、PA7 用于串行时钟、两条用于提供电源。芯片在线
烧写的详细使用说明超出此文档的描述范围,将由专门的参考文献提供。
Rev.1.30
31
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
W r ite r C o n n e c to r
S ig n a ls
M C U
W r ite r _ V D D
V D D
IC P D A
P A 6
IC P C K
P A 7
W r ite r _ V S S
V S S
*
P r o g r a m m in g
P in s
*
T o o th e r C ir c u it
注:* 可能为电阻或电容。若为电阻则其值必须大于 1kΩ,若为电容则其必须小于 1nF。
片上调试
EV IC 用于单片机仿真。此 EV IC 提供片上调试功能 (OCDS—On-Chip Debug
Support) 用于开发过程中的单片机调试。除了片上调试功能方面,EV IC 和实
际 MCU 在功能上几乎是兼容的。用户可将 OCDSDA 和 OCDSCK 引脚连接至
Holtek HT-IDE 开发工具,从而实现 EV IC 对实际 IC 的仿真。OCDSDA 引脚
为 OCDS 数据 / 地址输入 / 输出脚,OCDSCK 引脚为 OCDS 时钟输入脚。当用
户用 EV IC 进行调试时,实际单片机 OCDSDA 和 OCDSCK 引脚上的其它共
用功能无效。由于这两个 OCDS 引脚与 ICP 引脚共用,因此在线烧录时仍用
作 Flash 存储器烧录引脚。关于 OCDS 功能的详细描述,请参考“Holtek e-Link
for 8-bit MCU OCDS User's Guide”文件。
Holtek e-Link 引脚名称
OCDSDA
OCDSCK
VDD
VSS
EV IC 引脚名称
OCDSDA
OCDSCK
VDD
VSS
单片机型号
HT45F4N
HT45FH4N
Rev.1.30
32
功能
片上调试串行数据 / 地址输入 / 输出
片上调试时钟输入
电源
地
EV 芯片
HT45V4N
HT45VH4N
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
数据存储器
数据存储器是内容可更改的 8 位 RAM 内部存储器,用来储存临时数据。
结构
数据存储器分为两个区,第一部分是特殊功能数据存储器。这些寄存器有固定
的地址且与单片机的正确操作密切相关。大多特殊功能寄存器都可在程序控制
下直接读取和写入,但有些被加以保护而不对用户开放。第二部分数据存储器
是做一般用途使用,都可在程序控制下进行读取和写入。
总的数据存储器被分为两个区。大部分特殊功能数据寄存器均可在所有 Bank
被访问,处于“40H”地址的 EEC 寄存器却只能在 Bank 1 中被访问到。切换不
同区域可通过设置区域指针 (BP) 实现。所有单片机的数据存储器的起始地址都
是“00H”。
00H
Special
Purpose Data
Memory
EEC at 40H in Bank 1
7FH
80H
80H in Bank 1
General
Purpose Data
Memory
BFH in Bank 1
Bank 0
FFH
数据存储器结构
Rev.1.30
33
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Bank 0, 1
00H
Bank 0, 1
IAR0
20H
01H
MP0
02H
IAR1
03H
04H
Bank 0
Bank1
EEC
Bank 0, 1
ADRL
40H Unused
60H
OCP0C0
21H
ADRH
41H
Unused
61H
OCP0C1
22H
ADCR0
42H
Unused
62H
OCP0DA
MP1
23H
ADCR1
43H
Unused
63H
A0CAL
BP
24H
ACERL
44H
Unused
64H
C0CAL
05H
ACC
25H
ACERH
45H
Unused
65H
OCP1C0
06H
PCL
26H
CTRL
46H
Unused
66H
OCP1C1
07H
TBLP
27H
LVRC
47H
SCOMC
67H
OCP1DA
08H
TBLH
28H
TM0C0
48H
PRM
68H
A1CAL
09H
TBHP
29H
TM0C1
49H
CPR0
69H
C1CAL
0AH
STATUS
2AH
TM0DL
4AH
CPR1
6AH
OCPPC
0BH
SMOD
2BH
TM0DH
4BH
OVPDA
6BH
ADUDA0
0CH
LVDC
2CH
TM0AL
4CH
UVPDA
6CH
ADUDA1
0DH
INTEG
2DH
TM0AH
4DH
OUVPC0
6DH
ADUC0
0EH
INTC0
2EH
TM0RP
4EH
OUVPC1
6EH
ADUC1
0FH
INTC1
2FH
TM1C0
4FH
OUVPC2
6FH
ADUC2
10H
INTC2
30H
TM1C1
50H
TM2C0
70H
Unused
11H
MFI0
31H
TM1DL
51H
TM2C1
71H
Unused
12H
MFI1
32H
TM1DH
52H
TM2DL
72H
Unused
13H
MFI2
33H
TM1AL
53H
TM2DH
73H
Unused
14H
PA
34H
TM1AH
54H
TM2AL
74H
Unused
15H
PAC
35H
TM1PRL
55H
TM2AH
75H
Unused
16H
PAPU
36H
TM1PRH
56H
TM2PRL
76H
Unused
17H
PAWU
37H
PC
57H
TM2PRH
77H
Unused
18H
TMPC1
38H
PCC
58H
TM3C0
78H
Unused
19H
TMPC0
39H
PCPU
59H
TM3C1
79H
Unused
1AH
WDTC
3AH
PD
5AH
TM3DL
7AH
Unused
1BH
TBC
3BH
PDC
5BH
TM3DH
7BH
Unused
1CH
INTC3
3CH
PDPU
5CH
TM3AL
7CH
Unused
1DH
MFI3
3DH
PB
5DH
TM3AH
7DH
Unused
1EH
EEA
3EH
PBC
5EH
TM3PRL
7EH
Unused
1FH
EED
3FH
PBPU
5FH
TM3PRH
7FH
Unused
特殊功能数据存储器结构
Rev.1.30
34
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
特殊功能寄存器
大部分特殊功能寄存器的细节将在相关功能章节描述,但有几个寄存器需在此
章节单独描述。
间接寻址寄存器 – IAR0,IAR1
间接寻址寄存器 IAR0 和 IAR1 的地址虽位于数据存储区,但其并没有实际的物
理地址。间接寻址的方法准许使用间接寻址指针做数据操作,以取代定义实际存
储器地址的直接存储器寻址方法。在间接寻址寄存器 (IAR0 和 IAR1) 上的任何
动作,将对间接寻址指针 (MP0 和 MP1) 所指定的存储器地址产生对应的读 / 写
操作。它们总是成对出现,IAR0 和 MP0 可以访问 Bank 0,而 IAR1 和 MP1 可
以访问 Bank 0 和 Bank 1。因为这些间接寻址寄存器不是实际存在的,直接读取
将返回“00H”的结果,而直接写入此寄存器则不做任何操作。
间接寻址指针 – MP0,MP1
该系列单片机提供两个间接寻址指针,即 MP0 和 MP1。由于这些指针在数据
存储器中能像普通的寄存器一般被操作,因此提供了一个寻址和数据追踪的有
效方法。当对间接寻址寄存器进行任何操作时,单片机指向的实际地址是由间
接寻址指针所指定的地址。MP0、IAR0 用于访问 Bank 0,而 MP1 和 IAR1 可
通过 BP 寄存器访问所有的 Bank。Bank 0 仅可使用直接寻址,其它所有 Bank
都可使用 MP1 和 IAR1 进行间接寻址。
以下例子说明如何清除一个具有 4 RAM 地址的区块,它们已事先定义成地址
adres1 到 adres4。
间接寻址程序举例
data .section ´data´
adres1
db ?
adres2
db ?
adres3
db ?
adres4
db ?
block
db ?
code .section at 0 ´code´
org00h
start:
mov a,04h
mov block,a
mov a,offset adres1
mov mp0,a
loop:
clr IAR0
inc mp0
sdz block
jmp loop
continue:
; setup size of block
; Accumulator loaded with first RAM address
; setup memory pointer with first RAM address
; clear the data at address defined by mp0
; increment memory pointer
; check if last memory location has been cleared
在上面的例子中有一点值得注意,即并没有确定 RAM 地址。
Rev.1.30
35
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
存储区指针 – BP
数据存储器被分为两个部分,即 Bank 0 和 Bank 1。可以通过设置存储区指针
(Bank Pointer) 值来访问不同的数据存储区。BP 指针的 bit 0 用于选择数据存储
区的 Bank 0 或 Bank 1。
复位后,数据存储器会初始化到 Bank 0,但是在空闲 / 休眠模式下的 WDT 溢
出复位,不会改变通用数据存储器的存储区号。应该注意的是特殊功能数据存
储器不受存储区的影响,也就是说,不论是在哪一个存储区,都能对特殊功能
寄存器进行读写操作。数据存储器的直接寻址总是访问 Bank 0,不影响存储区
指针的值。要访问 Bank 1,则必须要使用间接寻址方式。
BP 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
—
—
—
4
—
—
—
Bit 7 ~ 1
未定义,读为“0”
Bit 0
DMBP0:数据存储区选择位
0:Bank 0
1:Bank 1
3
—
—
—
2
—
—
—
1
—
—
—
0
DMBP0
R/W
0
累加器 – ACC
对任何单片机来说,累加器是相当重要的,且与 ALU 所完成的运算有密切关
系,所有 ALU 得到的运算结果都会暂时存在 ACC 累加器里。若没有累加器,
ALU 必须在每次进行如加法、减法和移位的运算时,将结果写入到数据存储器,
这样会造成程序编写和时间的负担。另外数据传送也常常牵涉到累加器的临时
储存功能,例如在使用者定义的一个寄存器和另一个寄存器之间传送数据时,
由于两寄存器之间不能直接传送数据,因此必须通过累加器来传送数据。
程序计数器低字节寄存器 – PCL
为了提供额外的程序控制功能,程序计数器低字节设置在数据存储器的特殊功
能区域内,程序员可对此寄存器进行操作,很容易的直接跳转到其它程序地址。
直接给 PCL 寄存器赋值将导致程序直接跳转到程序存储器的某一地址,然而由
于寄存器只有 8 位长度,因此只允许在本页的程序存储器范围内进行跳转,而
当使用这种运算时,要注意会插入一个空指令周期。
表格寄存器 – TBLP,TBHP,TBLH
这三个特殊功能寄存器对存储在程序存储器中的表格进行操作。TBLP 和 TBHP
为表格指针,指向表格数据存储的地址。它们的值必须在任何表格读取指令执
行前加以设定,由于它们的值可以被如“INC”或“DEC”的指令所改变,这
就提供了一种简单的方法对表格数据进行读取。表格读取数据指令执行之后,
表格数据高字节存储在 TBLH 中。其中要注意的是,表格数据低字节会被传送
到使用者指定的地址。
Rev.1.30
36
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
状态寄存器 – STATUS
这 8 位的状态寄存器由零标志位 (Z)、进位标志位 (C)、辅助进位标志位 (AC)、
溢出标志位 (OV)、暂停标志位 (PDF) 和看门狗定时器溢出标志位 (TO) 组成。
这些算术 / 逻辑操作和系统运行标志位是用来记录单片机的运行状态。
除了 PDF 和 TO 标志外,状态寄存器中的位像其它大部分寄存器一样可以被改
变。任何数据写入到状态寄存器将不会改变 TO 或 PDF 标志位。另外,执行不
同的指令后,与状态寄存器有关的运算可能会得到不同的结果。TO 标志位只会
受系统上电、看门狗溢出或执行“CLR WDT”或“HALT”指令影响。PDF 标
志位只会受执行“HALT”或“CLR WDT”指令或系统上电影响。
Z、OV、AC 和 C 标志位通常反映最近运算的状态。
● C:当加法运算的结果产生进位,或减法运算的结果没有产生借位时,则 C
被置位,否则 C 被清零,同时 C 也会被带进位的移位指令所影响。
● AC:当低半字节加法运算的结果产生进位,或高半字节减法运算的结果没有
产生借位时,AC 被置位,否则 AC 被清零。
● Z: 当算术或逻辑运算结果是零时,Z 被置位,否则 Z 被清零。
● OV:当运算结果高两位的进位状态异或结果为 1 时,OV 被置位,否则 OV
被清零。
● PDF:系统上电或执行“CLR WDT”指令会清零 PDF,而执行“HALT”指
令则会置位 PDF。
● TO:系统上电或执行“CLR WDT”或“HALT”指令会清零 TO,而当 WDT
溢出则会置位 TO。
另外,当进入一个中断程序或执行子程序调用时,状态寄存器不会自动压入到
堆栈保存。假如状态寄存器的内容是重要的且子程序可能改变状态寄存器的话,
则需谨慎的去做正确的储存。
Rev.1.30
37
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
STATUS 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
TO
R
0
4
PDF
R
0
3
OV
R/W
×
2
Z
R/W
×
1
AC
R/W
×
0
C
R/W
×
“×”为未知
Rev.1.30
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 也受循环移位指令的影响。
38
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
EEPROM 数据寄存器
此系列单片机的一个特性是内建 EEPROM 数据存储器。“Electrically Erasable
Programmable Read Only Memory”为电可擦可编程只读存储器,由于其非易失
的存储结构,即使在电源掉电的情况下存储器内的数据仍然保存完好。这种存
储区扩展了 ROM 空间,对设计者来说增加了许多新的应用机会。EEPROM 可
以用来存储产品编号、校准值、用户特定数据、系统配置参数或其它产品信息
等。EEPROM 的数据读取和写入过程也会变的更简单。
EEPROM 数据寄存器结构
EEPROM 数据寄存器容量为 64×8。由于映射方式与程序存储器和数据存储器
不同,因此不能像其它类型的存储器一样寻址。使用 Bank 0 中的一个地址寄存
器和一个数据寄存器以及 Bank 1 中的一个控制寄存器,可以实现对 EEPROM
的单字节读写操作。
EEPROM 寄存器
有三个寄存器控制内部 EEPROM 数据存储器总的操作。地址寄存器 EEA、数
据寄存器 EED 及控制寄存器 EEC。EEA 和 EED 位于 Bank 0 中,它们能像其它
特殊功能寄存器一样直接被访问。EEC 位于 Bank 1 中,不能被直接访问,仅能
通过 MP1 和 IAR1 进行间接读取或写入。由于 EEC 控制寄存器位于 Bank 1 中
的“40H”,在 EEC 寄存器上的任何操作被执行前,MP1 必须先设为“40H”,
BP 被设为“01H”。
寄存器
名称
EEA
EED
EEC
位
7
—
D7
—
6
—
D6
—
5
D5
D5
—
4
D4
D4
—
3
D3
D3
WREN
2
D2
D2
WR
1
D1
D1
RDEN
0
D0
D0
RD
EEPROM 寄存器列表
EEA 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
D5
R/W
0
Bit 7 ~ 6
未定义,读为“0”
Bit 5 ~ 0
数据 EEPROM 地址
数据 EEPROM 地址 Bit 5~Bit 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
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
EED 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
Rev.1.30
7
D7
R/W
0
6
D6
R/W
0
5
D5
R/W
0
EEPROM 数据
EEPROM 数据 bit 7 ~ bit 0
39
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
EEC 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
—
—
—
4
—
—
—
3
WREN
R/W
0
2
WR
R/W
0
1
RDEN
R/W
0
0
RD
R/W
0
Bit 7 ~ 4
未定义,读为“0”
Bit 3
WREN:数据 EEPROM 写使能位
0:除能
1:使能
此位为数据 EEPROM 写使能位,向数据 EEPROM 写操作之前需将此位置高。
将此位清零时,则禁止向数据 EEPROM 写操作。
Bit 2
WR:EEPROM 写控制位
0:写周期结束
1:写周期有效
此位为数据 EEPROM 写控制位,由应用程序将此位置高将激活写周期。写周期
结束后,硬件自动将此位清零。当 WREN 未先置高时,此位置高无效。
Bit 1
RDEN:数据 EEPROM 读使能位
0:除能
1:使能
此位为数据 EEPROM 读使能位,向数据 EEPROM 读操作之前需将此位置高。
将此位清零时,则禁止向数据 EEPROM 读操作。
Bit 0
RD:EEPROM 读控制位
0:读周期结束
1:读周期有效
此位为数据 EEPROM 读控制位,由应用程序将此位置高将激活读周期。读周期
结束后,硬件自动将此位清零。当 RDEN 未首先置高时,此位置高无效。
注:在同一条指令中 WREN、WR、RDEN 和 RD 不能同时置为“1”。WR 和 RD 不能同时
置为“1”。
从 EEPROM 中读取数据
从 EEPROM 中读取数据,EEPROM 中读取数据的地址要先放入 EEA 寄存器
中。EEC 寄存器中的读使能位 RDEN 先置为高以使能读功能。若 EEC 寄存器
中的 RD 位被置高,一个读周期将开始。若 RD 位已置为高而 RDEN 位还未被
设置则不能开始读操作。若读周期结束,RD 位将自动清除为“0”,数据可以
从 EED 寄存器中读取。数据在其它读或写操作执行前将一直保留在 EED 寄存
器中。应用程序将轮询 RD 位以确定数据可以有效地被读取。
Rev.1.30
40
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
写数据到 EEPROM
EEPROM 中写入数据的地址要先放入 EEA 寄存器中,然后将要写入的数据放
入 EED 寄存器中。写数据至 EEPROM,必须先将 EEC 寄存器中的写使能位
WREN 置为高以使能写功能,然后立刻将 EEC 寄存器中 WR 位置为高,此时
一个内部写周期才开始。这两条指令必须连续执行。在写操作执行之前需将总
中断控制位 EMI 清零,在写周期开始后再置高。若 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 中断标志将通过应用程序手动复
位。更多细节将在中断章节讲述。
编程注意事项
必须注意的是数据不会无意写入 EEPROM。在没有写动作时写使能位被正常清
零可以增强保护功能。BP 指针也可以正常清零以阻止进入 EEPROM 控制寄存
器存在的 Bank 1。尽管没有必要,写一个简单的读回程序以检查新写入的数据
是否正确还是应该考虑的。WREN 位置位后,EEC 寄存器中的 WR 位需立即置
位,否则 EEPROM 写周期将不能被执行。
写数据时,WREN 位置为“1”后,WR 须立即设置为高,以确保正确地执行写
周期。写周期执行前总中断位 EMI 应先清零,写周期开始执行后再将此位重新
使能。注意,单片机只有在 EEPROM 读操作与写操作完全完成时才能进入空闲
或休眠模式。否则会引起 EEPROM 读取与写入失败。
Rev.1.30
41
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
程序举例
从 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
CLR EMI
SET IAR1.3
SET IAR1.2
SET EMI
BACK:
SZ IAR1.2
JMP BACK
CLR IAR1
CLR BP
Rev.1.30
; user defined address
; user defined data
;
;
;
;
; set WREN bit, enable write operations
; start Write Cycle - set WR bit –
; executed immediately after set WREN bit
; check for write cycle end
; disable EEPROM read/write
42
setup memory pointer MP1
MP1 points to EEC register
setup Bank Pointer
BP points to data memory bank 1
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
振荡器
不同的振荡器选择可以让使用者在不同的应用需求中实现更大范围的功能。振
荡器的灵活性使得在速度和功耗方面可以达到较佳的优化。振荡器选择是通过
寄存器共同完成的。
振荡器概述
振荡器除了作为系统时钟源,还作为看门狗定时器和时基功能的时钟源。集成
的两个内部振荡器不需要任何外围器件。它们提供高速和低速系统振荡器。较
高频率的振荡器提供更高的性能,但要求有更高的功率,反之亦然。动态切换
快慢系统时钟的能力使单片机具有灵活而优化的性能 / 功耗比,此特性对功耗
敏感的应用领域尤为重要。
类型
内部高速 RC
内部低速 RC
名称
HIRC
LIRC
频率
30MHz
32kHz
振荡器类型
系统时钟配置
此系列单片机有两个系统振荡器,包括一个高速振荡器和一个低速振荡器。高
速振荡器为内部 30MHz RC 振荡器。低速振荡器为内部 32kHz 振荡器。使用高
速或低速振荡器作为系统时钟的选择是通过设置 SMOD 寄存器中的 HLCLK 位
及 CKS2~CKS0 位决定的,系统时钟可动态选择。
高速或低速振荡器的实际时钟源经由寄存器选择。低速或高速系统时钟频率由
SMOD 寄存器的 HLCLK 位及 CKS2~CKS0 位决定的。请注意,两个振荡器必
须做出选择,即一个高速和一个低速振荡器。
系统时钟配置选项
Rev.1.30
43
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
内部 RC 振荡器 – HIRC
内部 RC 振荡器是一个集成的系统振荡器,不需其它外部器件。内部 RC 振荡
器具有一固定频率:30MHz。芯片在制造时进行调整且内部含有频率补偿电路,
使得振荡频率因 VDD、温度以及芯片制成工艺不同的影响较大程度地降低。如
果选择了该内部时钟,无需额外的引脚。
内部 32kHz 振荡器 – LIRC
内部 32kHz 系统振荡器也是一个低频振荡器。这种单片机有一个完全集成 RC
振荡器,它在 5V 电压下运行的典型频率值为 32kHz 且无需外部元件。芯片在
制造时进行调整且内部含有频率补偿电路,使得振荡器因电源电压、温度及芯
片制成工艺不同的影响较大程度地降低。
工作模式和系统时钟
现今的应用要求单片机具有较高的性能及尽可能低的功耗,这种矛盾的要求在
便携式电池供电的应用领域尤为明显。高性能所需要的高速时钟将增加功耗,
反之亦然。此系列单片机提供高、低速两种时钟源,它们之间可以动态切换,
用户可通过优化单片机操作来获得较佳性能 / 功耗比。
系统时钟
单片机为 CPU 和外围功能操作提供了多种不同的时钟源。用户使用寄存器编程
可获取多种时钟,进而使系统时钟获取较大的应用性能。
主系统时钟可来自高频时钟源 fH 或低频时钟源 fL,通过 SMOD 寄存器中的
HLCLK 位及 CKS2~CKS0 位进行选择。高频时钟来自 HIRC 振荡器 , 低频系统
时钟源来自内部时钟 LIRC 振荡器。其它系统时钟还有高速系统振荡器的分频
fH/2~fH/64。
Rev.1.30
44
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
系统时钟选项
注:当系统时钟源 fSYS 由 fH 到 fL 转换时,高速振荡器将停止以节省耗电。因此,没有为外
围电路提供 fH~fH/64 的频率。
系统工作模式
单片机有 5 种不同的工作模式,每种有它自身的特性,根据应用中不同的性能
和功耗要求可选择不同的工作模式。单片机正常工作有两种模式:正常模式和
低速模式。剩余的 3 种工作模式:休眠模式、空闲模式 0 和空闲模式 1 用于单
片机 CPU 关闭时以节省耗电。
工作模式
正常模式
低速模式
空闲模式 0
空闲模式 1
休眠模式
Rev.1.30
说明
CPU
On
On
Off
Off
Off
fSYS
fH~fH/64
fL
Off
On
Off
45
fS
On
On
On
On
On
fTBC
On
On
On
On
Off
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
正常模式
顾名思义,这是主要的工作模式之一,单片机的所有功能均可在此模式中实
现且系统时钟由一个高速振荡器提供。该模式下单片机正常工作的时钟源来
自 HIRC 振荡器。高速振荡器频率可被分为 1~64 的不等比率,实际的比率由
SMOD 寄存器中的 CKS2~CKS0 位及 HLCLK 位选择的。单片机使用高速振荡
器分频作为系统时钟可减少工作电流。
低速模式
此模式的系统时钟虽为较低速时钟源,但单片机仍能正常工作。该低速时钟源
可来自 fL。单片机在此模式中运行所耗工作电流较低。在低速模式下,fH 关闭。
休眠模式
在 HALT 指令执行后且 SMOD 寄存器中 IDLEN 位为低时,系统进入休眠模式。
在休眠模式中,CPU 停止运行,然而若 LVDEN 位为“1”或看门狗功能使能时,
fS 继续运行。
空闲模式 0
执 行 HALT 指 令 后 且 SMOD 寄 存 器 中 IDLEN 位 为 高,CTRL 寄 存 器 中
FSYSON 位为低时,系统进入空闲模式 0。在空闲模式 0 中,CPU 停止,系统
振荡器停止,低频时钟 fL 开启。
空闲模式 1
执 行 HALT 指 令 后 且 SMOD 寄 存 器 中 IDLEN 位 为 高,CTRL 寄 存 器 中
FSYSON 位为高时,系统进入空闲模式 1。在空闲模式 1 中,CPU 停止,系统
振荡器继续运行,该系统振荡器可以为高速或低速系统振荡器。在空闲模式 1
中低频时钟 fL 开启。
注:若 LVDEN=1,进入休眠或空闲模式时,LVD 和 bandgap 不会关掉,并且 fL 也会跟着强
迫使能。
Rev.1.30
46
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
控制寄存器
寄存器 SMOD 用于控制单片机内部时钟。
SMOD 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 5
Rev.1.30
7
CKS2
R/W
1
6
CKS1
R/W
1
5
CKS0
R/W
0
4
—
—
—
3
LTO
R
0
2
HTO
R
0
1
0
IDLEN HLCLK
R/W
R/W
1
0
CKS2 ~ CKS0:当 HLCLK 为“0”时系统时钟选择位
000:fL
001:fL
010:fH/64
011:fH/32
100:fH/16
101:fH/8
110:fH/4
111:fH/2
这三位用于选择系统时钟源。除了 LIRC 振荡器提供的系统时钟源外,也可使
用高频振荡器的分频作为系统时钟。
Bit 4
未定义,读为“0”
Bit 3
LTO:低速振荡器就绪标志位
0:未就绪
1:就绪
此位为低速系统振荡器就绪标志位,用于表明低速系统振荡器在系统上电复位
或经唤醒后何时稳定下来。该位转换为高需 tSST 个时钟周期。
Bit 2
HTO:高速振荡器就绪标志位
0:未就绪
1:就绪
此位为高速系统振荡器就绪标志位,用于表明高速系统振荡器唤醒后何时稳定
下来。此标志在系统上电后经硬件清零,高速系统振荡器稳定后变为高电平。
因此,此位在单片机上电后由应用程序读取的总为“1”。如果使用 HIRC 振荡
器,当单片机进入休眠模式或空闲模式 0 时,该位会处于低电平状态,唤醒后
该位转换为高需 tSST 个时钟周期。
Bit 1
IDLEN:空闲模式控制位
0:除能
1:使能
此位为空闲模式控制位,用于决定 HALT 指令执行后发生的动作。若此位为
高,当指令 HALT 执行后,单片机进入空闲模式。若 FSYSON 位为高,在空闲
模式 1 中 CPU 停止运行,系统时钟将继续工作以保持外围功能继续工作;若
FSYSON 为低,在空闲模式 0 中 CPU 和系统时钟都将停止运行。若此位为低,
单片机将在 HALT 指令执行后进入休眠模式。
Bit 0
HLCLK:系统时钟选择位
0:fH/2 ~ fH/64 or fL
1:fH
此位用于选择 fH 或 fH/2~ fH/64 还是 fL 作为系统时钟。该位为高时选择 fH 作为系
统时钟,为低时则选择 fH/2~ fH/64 或 fL 作为系统时钟。当系统时钟由 fH 时钟向
fL 时钟转换时,fH 将自动关闭以降低功耗。
47
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
CTRL 寄存器
Bit
Name
R/W
POR
7
FSYSON
R/W
0
6
—
—
—
5
—
—
—
4
—
—
—
3
—
—
—
2
LVRF
R/W
×
1
LRF
R/W
0
0
WRF
R/W
0
“×”为未知
Bit 7
FSYSON:IDLE 模式时,fSYS 控制位
0:除能
1:使能
Bit 6~3
未定义,读为“0”
Bit 2
LVRF:LVR 复位标志
0:未发生
1:发生
当低电压复位情况发生时此位设置为“1”。此位只能通过程序清零。
Bit 1
LRF:LVRC 控制寄存器软件复位标志
0:未发生
1:发生
当 LVRC 寄存器包含任何未定义的 LVR 电压值时此位设置为“1”,用作软件
复位功能。此位只能通过程序清零。
Bit 0
WRF:WDT 控制寄存器软件复位标志
0:未发生
1:发生
当 WDT 控制寄存器软件复位时此位设置为“1”。此位只能通过程序清零。
Rev.1.30
48
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
工作模式切换
单片机可在各个工作模式间自由切换,使得用户可根据所需选择较佳的性能 /
功耗比。用此方式,对单片机工作的性能要求不高的情况下,可使用较低频时
钟以减少工作电流,在便携式应用上延长电池的使用寿命。
简单来说,正常模式和低速模式间的切换仅需设置 SMOD 中的 HLCLK 位及
CKS2~CKS0 位即可实现,而正常模式 / 低速模式与休眠模式 / 空闲模式间的切
换经由 HALT 指令实现。当 HALT 指令执行后,单片机是否进入空闲模式或休
眠模式由 SMOD 寄存器中的 IDLEN 位和 CTRL 寄存器中的 FSYSON 位决定的。
当 HLCLK 位变为低电平时,时钟源将由高速时钟源 fH 转换成时钟源 fH/2~fH/64
或 fL。若时钟源来自 fL,高速时钟源将停止运行以节省耗电。此时须注意,
fH/16 和 fH/64 内部时钟源也将停止运行,由此会影响到内部功能的工作。所附
流程图显示了单片机在不同工作模式间切换时的变化。
正常模式切换到低速模式
系统运行在正常模式时使用高速系统振荡器,因此较为耗电。可通过设置
SMOD 寄存器中的 HLCLK 位为“0”及 CKS2~CKS0 位为“000”或“001”使
系统时钟切换至运行在低速模式下。此时将使用低速系统振荡器以节省耗电。
用户可在对性能要求不高的操作中使用此方法以减少耗电。
低速模式的时钟源来自 LIRC 振荡器,因此要求这些振荡器在所有模式切换动
作发生前稳定下来。该动作由 SMOD 寄存器中 LTO 位控制。
Rev.1.30
49
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
低速模式切换到正常模式
在低速模式系统使用 LIRC 低速振荡器。切换到使用高速系统时钟振荡器的正
常模式需设置 HLCLK 位为“1”,也可设置 HLCLK 位为“0”但 CKS2~CKS0
需设为“010”、“011”、“100”、“101”、“110”或“111”。高频时钟
需要一定的稳定时间,通过检测 HTO 位的状态可进行判断。高速振荡器的稳定
时间由所使用高速系统振荡器的类型决定。
Rev.1.30
50
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
进入休眠模式
进入休眠模式的方法仅有一种——应用程序中执行“HALT”指令前需设置寄存
器 SMOD 中 IDLEN 位为“0”且 WDT 或者 LVD 使能。在上述条件下执行该
指令后,将发生的情况如下:
● 系统时钟和时基时钟停止运行,应用程序停止在“HALT”指令处。WDT 或
LVD 继续运行,其时钟源来自 fL。
● 数据存储器中的内容和寄存器将保持当前值。
● WDT 将被清零并重新开始计数。
● 输入 / 输出口将保持当前值。
● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。
进入空闲模式 0
进入空闲模式 0 的方法仅有一种——应用程序中执行“HALT”指令前需设置寄
存器 SMOD 中 IDLEN 位为“1”且 CTRL 寄存器中的 FSYSON 位为“0”。在
上述条件下执行该指令后,将发生的情况如下:
● 系统时钟停止运行,应用程序停止在“HALT”指令处,时基时钟 fTBC 和低频
时钟 fL 将继续运行。
● 数据存储器中的内容和寄存器将保持当前值。
● WDT 将被清零并重新开始计数
● 输入 / 输出口将保持当前值。
● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。
进入空闲模式 1
进入空闲模式 1 的方法仅有一种——应用程序中执行“HALT”指令前需设置寄
存器 SMOD 中 IDLEN 位为“1”且 CTRL 寄存器中的 FSYSON 位为“1”。在
上述条件下执行该指令后,将发生的情况如下:
● 系统时钟、时基时钟 fTBC 和低频时钟 fL 开启,应用程序停止在“HALT”指
令处。
● 数据存储器中的内容和寄存器将保持当前值。
● WDT 将被清零并重新开始计数。
● 输入 / 输出口将保持当前值。
● 状态寄存器中暂停标志 PDF 将被置起,看门狗溢出标志 TO 将被清除。
Rev.1.30
51
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
静态电流的注意事项
由于单片机进入休眠或空闲模式的主要原因是将 MCU 的电流降低到尽可能低,
可能到只有几个微安的级别 ( 空闲模式 1 除外 ),所以如果要将电路的电流进一
步降低,电路设计者还应有其它的考虑。应该特别注意的是单片机的输入 / 输
出引脚。所有高阻抗输入脚都必须连接到固定的高或低电平,因为引脚浮空会
造成内部振荡并导致耗电增加。这也应用于有不同封装的单片机,因为它们可
能含有未引出的引脚,这些引脚也必须设为输出或带有上拉电阻的输入。
另外还需注意单片机设为输出的 I/O 引脚上的负载。应将它们设置在有最小拉
电流的状态或将它们和其它的 CMOS 输入一样接到没有拉电流的外部电路上。
在空闲模式 1 中,系统时钟开启。若系统时钟来自高速系统振荡器,额外的静
态电流也可能会有几百微安。
唤醒
系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒:
● PA 口下降沿
● 系统中断
● WDT 溢出
若由 WDT 溢出唤醒,则会发生看门狗定时器复位。可以通过状态寄存器中
TO 和 PDF 位来判断它的唤醒源。系统上电或执行清除看门狗的指令,会清零
PDF;执行 HALT 指令,PDF 将被置位。看门狗计数器溢出将会置位 TO 标志
并唤醒系统,这种复位会重置程序计数器和堆栈指针,其它标志保持原有状态。
PA 口中的每个引脚都可以通过 PAWU 寄存器使能下降沿唤醒功能。PA 端口唤
醒后,程序将在“HALT”指令后继续执行。如果系统是通过中断唤醒,则有两
种可能发生。第一种情况是:相关中断除能或是中断使能且堆栈已满,则程序
会在“HALT”指令之后继续执行。这种情况下,唤醒系统的中断会等到相关中
断使能或有堆栈层可以使用之后才执行。第二种情况是:相关中断使能且堆栈
未满,则中断可以马上执行。 如果在进入休眠或空闲模式之前中断标志位已经
被设置为“1”,则相关中断的唤醒功能将无效。
Rev.1.30
52
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
看门狗定时器
看门狗定时器的功能在于防止如电磁的干扰等外部不可控制事件,所造成的程
序不正常动作或跳转到未知的地址。
看门狗定时器时钟源
WDT 定时器时钟源来自于内部时钟 fL,而 fL 的时钟源由 LIRC 振荡器提供。看
门狗定时器的时钟源可分频为 28~218 以提供更大的溢出周期,分频比由 WDTC
寄存器中的 WS2~WS0 位来决定。电压为 5V 时内部振荡器 LIRC 的周期大约为
32kHz。需要注意的是,这个特殊的内部时钟周期随 VDD、温度和制成的不同而
变化。
看门狗定时器控制寄存器
WDTC 寄存器用于控制 WDT 功能的使能 / 除能及选择溢出周期。除了暂停模
式下 WDT 溢出复位后 WDTC 寄存器的值不变,其它任何一种单片机复位后,
WDTC 初始化的值都为 01010011B。
WDTC 寄存器
Bit
Name
R/W
POR
Rev.1.30
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
0
1
WS1
R/W
1
0
WS0
R/W
1
Bit 7~ 3
WE4 ~ WE0:WDT 软件控制
10101 或 01010:使能
其它值:MCU 复位
若因外部环境噪声使 WE[4:0] 值发生改变,则在 2~3 个 LIRC 周期后产生复位,
复位后 CTRL 寄存器中的 WRF 标志位会被置位。
Bit 2~ 0
WS2 ~ WS0:WDT 溢出周期选择位
000:28/fS
001:210/fS
010:212/fS
011:214/fS
100:215/fS
101:216/fS
110:217/fS
111:218/fS
这三位控制 WDT 时钟源的分频比,从而实现对 WDT 溢出周期的控制。
53
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
CTRL 寄存器
Bit
Name
R/W
POR
7
FSYSON
R/W
0
6
—
—
—
5
—
—
—
4
—
—
—
3
—
—
—
2
LVRF
R/W
×
1
LRF
R/W
0
0
WRF
R/W
0
“×”为未知
Bit 7
FSYSON:IDLE 模式时,fSYS 控制位
详见别处的描述。
Bit 6~3
未定义,读为“0”
Bit 2
LVRF:LVR 复位标志
详见别处的描述。
Bit 1
LRF:LVR 控制寄存器软件复位标志
详见别处的描述。
Bit 0
WRF:WDT 控制寄存器软件复位标志
0:未发生
1:发生
当发送 WDTC 控制寄存器软件复位时,此位被置为“1”。此位只能通过程序
清零。
看门狗定时器操作
当 WDT 溢出时,看门狗定时器产生一个芯片复位的动作。这也就意味着正常
工作期间,用户需在应用程序中看门狗溢出前有策略地清看门狗定时器以防止
其产生复位,可使用清除看门狗指令实现。无论什么原因,程序失常跳转到一
个未知的地址或进入一个死循环,这些清除指令都不能被正确执行,此种情况
下,看门狗将溢出以使单片机复位。WDTC 寄存器中的 WE4~WE0 位可使能及
复位看门狗定时器。如果 WE4~WE0 为 10101B 或 01010B,则 WDT 使能;如
果由于受到干扰,WE4~WE0 变为其它任意值,则经过 2~3 个 LIRC 时钟周期
后单片机复位。
WE4 ~ WE0 位
01010B 或 10101B
其它值
WDT 功能
使能
MCU 复位
看门狗定时器使能 / 除能控制
程序正常运行时,WDT 溢出将导致芯片复位,并置位状态标志位 TO。若系统
处于休眠或空闲模式,当 WDT 发生溢出时,状态寄存器中的 TO 将被置位,
仅程序计数器 PC 和堆栈指针 SP 将被复位。有三种方法可以用来清除 WDT 的
内容。第一种是 WDT 复位,即将 WE4~WE0 位设置成除了 01010B 和 10101B
外的任意值;第二种是通过软件清除指令,而第三种是通过“HALT”指令。
该系列单片机只使用一条清看门狗指令“CLR WDT”。因此只要执行“CLR
WDT”便清除 WDT。
当设置分频比为 218 时,溢出周期最大。例如,时钟源为 32kHz LIRC 振荡器,
分频比为 218 时最大溢出周期约 8s,分频比为 28 时最小溢出周期约 7.8ms。
Rev.1.30
54
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
WDTC Register
WE4~WE0 bits
Reset MCU
CLR
“HALT”Instruction
“CLR WDT”Instruction
LIRC
fS
8-stage Divider
fS/28
WS2~WS0
(fS/28 ~ fS/218)
WDT Prescaler
WDT Time-out
(28/fS ~ 218/fS)
8-to-1 MUX
看门狗定时器
复位和初始化
复位功能是任何单片机中基本的部分,使得单片机可以设定一些与外部参数无
关的先置条件。最重要的复位条件是在单片机首次上电以后,经过短暂的延迟,
内部硬件电路使得单片机处于预期的稳定状态并开始执行第一条程序指令。上
电复位以后,在程序执行之前,部分重要的内部寄存器将会被设定为预先设定
的状态。程序计数器就是其中之一,它会被清除为零,使得单片机从最低的程
序存储器地址开始执行程序。
另一种复位为看门狗溢出单片机复位。不同方式的复位操作会对寄存器产生不
同的影响。另一种复位为低电压复位即 LVR 复位,在电源供应电压低于 LVR
设定值时,系统会产生 LVR 复位。
复位功能
包括内部和外部事件触发复位,单片机共有四种复位方式:
上电复位
这是最基本且不可避免的复位,发生在单片机上电后。除了保证程序存储器从
开始地址执行,上电复位也使得其它寄存器被设定在预设条件。所有的输入 /
输出端口控制寄存器在上电复位时会保持高电平,以确保上电后所有引脚被设
定为输入状态。
VDD
Power-on
Reset
tRSTD
SST Time-out
注:tRSTD 为上电延迟时间,典型值为 16.7ms
上电复位时序图
Rev.1.30
55
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
低电压复位 – LVR
单片机具有低电压复位电路,用来监测它的电源电压。低电压复位功能始终
使能于特定的电压值,VLVR。例如在更换电池的情况下,单片机供应的电压可
能会在 0.9V~VLVR 之间,这时 LVR 将会自动复位单片机且 CTRL 寄存器中的
LVRF 标志位置位。
LVR 包含以下的规格:有效的 LVR 信号,即在 0.9V~VLVR 的低电压状态的时间,
必须超过 LVD&LVR 电气特性中的 tLVR 参数值。如果低电压存在不超过 tLVR 参
数的值,则 LVR 将会忽略它且不会执行复位功能。
VLVR 参数值固定为 2.55V。LVS7~LVS0 位可对 LVR 功能进行控制。若由于受
到干扰 LVS7~LVS0 变为其它值时,需经过 2~3 个 LIRC 周期响应复位。此时
CTRL 寄存器的 LRF 位被置位。上电后寄存器的值为 01010101B。注意,当单
片机进入空闲或休眠模式时,LVR 功能将自动关闭。
注:tRSTD 为上电延迟时间,典型值为 16.7ms
低电压复位时序图
● LVRC 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
Rev.1.30
7
LVS7
R/W
0
6
LVS6
R/W
1
5
LVS5
R/W
0
4
LVS4
R/W
1
3
LVS3
R
0
2
LVS2
R
1
1
LVS1
R/W
0
0
LVS0
R/W
1
LVS7 ~ LVS0:LVR 电压选择
01010101:2.55V
00110011:2.55V
10011001:2.55V
10101010:2.55V
其它值:MCU 复位 ( 寄存器设置为 POR 值 )
当相应的低电压出现后,将会产生 MCU 复位。MCU 复位后寄存器中的值与复
位前保持不变。
除上述定义的值外,其它值都会产生 MCU 复位。复位操作将会在 2~3 个 LIRC
时钟周期后执行。注意的是此处 MCU 复位后,寄存器的值将恢复到上电复位
值。
56
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
● CTRL 寄存器
Bit
Name
R/W
POR
7
FSYSON
R/W
0
6
—
—
—
5
—
—
—
4
—
—
—
3
—
—
—
2
LVRF
R/W
×
1
LRF
R/W
0
0
WRF
R/W
0
“×”为未知
Bit 7
FSYSON:IDLE 模式时,fSYS 控制位
详见别处的描述。
Bit 6~3
未定义,读为“0”
Bit 2
LVRF:LVR 复位标志
0:未发生
1:发生
当低电压复位情况发生时此位设置为“1”。此位只能通过程序清零。
Bit 1
LRF:LVR 控制寄存器软件复位标志
0:未发生
1:发生
当 LVRC 寄存器包含任何未定义的 LVR 电压值时此位设置为“1”,相当于软
件复位功能。此位只能通过程序清零。
Bit 0
WRF:WDT 控制寄存器软件复位标志
详见别处的描述。
正常运行时看门狗溢出复位
除了看门狗溢出标志位 TO 将被设为“1”之外,正常运行时看门狗溢出复位和
LVR 复位相同。
注:tRSTD 为上电延迟时间,典型值为 16.7ms
正常运行时看门狗溢出复位时序图
休眠或空闲时看门狗溢出复位
休眠或空闲时看门狗溢出复位和其它种类的复位有些不同。除了程序计数器与
堆栈指针将被清“0”及 TO 位被设为“1”外,绝大部分的条件保持不变。图
中 tSST 的详细说明请参考交流电气特性。
休眠或空闲时看门狗溢出复位时序图
Rev.1.30
57
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
复位初始状态
不同的复位形式以不同的途径影响复位标志位。这些标志位,即 PDF 和 TO 位
存放在状态寄存器中,由休眠或空闲模式功能或看门狗计数器等几种控制器操
作控制。复位标志位如下所示:
TO
0
u
1
1
PDF
0
u
u
1
复位条件
上电复位
正常模式或低速模式时的 LVR 复位
正常模式或低速模式时的 WDT 溢出复位
空闲或休眠模式时的 WDT 溢出复位
注:“u”代表不改变
在单片机上电复位之后,各功能单元初始化的情形,列于下表。
项目
程序计数器
中断
看门狗定时器
定时模块
输入 / 输出口
堆栈指针
复位后情况
清除为零
所有中断被除能
WDT 清除并重新计数
所有定时模块 / 计数器停止
I/O 口设为输入模式,AN0~AN13 设为 A/D 输入
堆栈指针指向堆栈顶端
不同的复位形式对单片机内部寄存器的影响是不同的。为保证复位后程序能正
常执行,了解寄存器在特定条件复位后的设置是非常重要的。下表即为不同方
式复位后内部寄存器的状况。
寄存器
MP0
MP1
BP
ACC
PCL
TBLP
TBLH
TBHP
STATUS
SMOD
LVDC
INTEG
INTC0
INTC1
INTC2
INTC3
MFI0
MFI1
MFI2
Rev.1.30
上电复位
xxxx xxxx
xxxx xxxx
---- ---0
xxxx xxxx
0000 0000
xxxx xxxx
xxxx xxxx
---- xxxx
--00 xxxx
110- 0010
--00 -000
--00 0000
-000 0000
0000 0000
0000 0000
0000 0000
-000 -000
--00 --00
--00 --00
WDT 溢出
( 正常模式 )
xxxx xxxx
xxxx xxxx
---- ---0
uuuu uuuu
0000 0000
uuuu uuuu
uuuu uuuu
---- uuuu
--1u uuuu
110- 0010
--00 -000
--00 0000
-000 0000
0000 0000
0000 0000
0000 0000
-000 -000
--00 --00
--00 --00
58
LVR 复位
xxxx xxxx
xxxx xxxx
---- ---0
uuuu uuuu
0000 0000
uuuu uuuu
uuuu uuuu
---- uuuu
--uu uuuu
110- 0010
--00 -000
--00 0000
-000 0000
0000 0000
0000 0000
0000 0000
-000 -000
--00 --00
--00 --00
WDT 溢出
( 休眠 / 空闲模式 )
uuuu uuuu
uuuu uuuu
---- ---u
uuuu uuuu
0000 0000
uuuu uuuu
uuuu uuuu
---- uuuu
- - 11 u u u u
uuu- uuuu
--uu -uuu
--uu uuuu
-uuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
-uuu -uuu
--uu --uu
--uu --uu
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
寄存器
上电复位
MFI3
PA
PAC
PAPU
PAWU
PB
PBC
PBPU
PC
PCC
PCPU
PD
PDC
PDPU
TMPC0
TMPC1
WDTC
TBC
EEA
EED
EEC
ADRL (ADRFS=0)
ADRL (ADRFS=1)
ADRH (ADRFS=0)
ADRH (ADRFS=1)
ADCR0
ADCR1
ACERL
ACERH
CTRL
LVRC
TM0C0
TM0C1
TM0DL
TM0DH
TM0AL
TM0AH
TM0RP
TM1C0
TM1C1
--00 --00
1111 1111
1111 1111
0000 0000
0000 0000
- - - 1 1111
- - - 1 1111
---0 0000
- 111 1111
- 111 1111
-000 0000
- - 11 1111
- - 11 1111
--00 0000
1100 0000
1100 0000
0101 0011
0 0 11 - 111
--00 0000
0000 0000
---- 0000
xxxx ---xxxx xxxx
xxxx xxxx
---- xxxx
0110 0000
00-0 -000
1111 1111
- - 11 1111
0--- -x00
0101 0101
0000 0--0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0--0000 0000
Rev.1.30
WDT 溢出
( 正常模式 )
--00 --00
1111 1111
1111 1111
0000 0000
0000 0000
- - - 1 1111
- - - 1 1111
---0 0000
- 111 1111
- 111 1111
-000 0000
- - 11 1111
- - 11 1111
--00 0000
1100 0000
1100 0000
0101 0011
0 0 11 - 111
--00 0000
0000 0000
---- 0000
xxxx ---xxxx xxxx
xxxx xxxx
---- xxxx
0110 0000
00-0 -000
1111 1111
- - 11 1111
0--- -000
0101 0101
0000 0--0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0--0000 0000
59
LVR 复位
--00 --00
1111 1111
1111 1111
0000 0000
0000 0000
- - - 1 1111
- - - 1 1111
---0 0000
- 111 1111
- 111 1111
-000 0000
- - 11 1111
- - 11 1111
--00 0000
1100 0000
1100 0000
0101 0011
0 0 11 - 111
--00 0000
0000 0000
---- 0000
xxxx ---xxxx xxxx
xxxx xxxx
---- xxxx
0110 0000
00-0 -000
1111 1111
- - 11 1111
0--- -000
0101 0101
0000 0--0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000
0000 0--0000 0000
WDT 溢出
( 休眠 / 空闲模式 )
--uu --uu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
---u uuuu
---u uuuu
---u uuuu
-uuu uuuu
-uuu uuuu
-uuu uuuu
--uu uuuu
--uu uuuu
--uu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu -uuu
--uu uuuu
uuuu uuuu
---- uuuu
uuuu ---uuuu uuuu
uuuu uuuu
---- uuuu
uuuu uuuu
uu-u -uuu
uuuu uuuu
--uu uuuu
u--- -uuu
uuuu uuuu
uuuu u--uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu u--uuuu uuuu
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
寄存器
TM1DL
TM1DH
TM1AL
TM1AH
TM1RPL
TM1RPH
TM2C0
TM2C1
TM2DL
TM2DH
TM2AL
TM2AH
TM2RPL
TM2RPH
TM3C0
TM3C1
TM3DL
TM3DH
TM3AL
TM3AH
TM3RPL
TM3RPH
CPR0
CPR1
SCOMC
PRM
OVPDA
UVPDA
OUVPC0
OUVPC1
OUVPC2
OCP0C0
OCP0C1
OCP0DA
A0CAL
C0CAL
OCP1C0
OCP1C1
OCP1DA
A1CAL
C1CAL
Rev.1.30
上电复位
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
0000 0--0000 0000
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
0000 0--0000 0000
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
---0 0000
---0 0000
0000 0000
-000 0000
0000 0000
0000 0000
x000 -000
x000 --00
0000 0000
0000 0000
x000 0000
0000 0000
0010 0000
x001 0000
0000 0000
x000 0000
0000 0000
0010 0000
x001 0000
WDT 溢出
( 正常模式 )
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
0000 0--0000 0000
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
0000 0--0000 0000
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
---0 0000
---0 0000
0000 0000
-000 0000
0000 0000
0000 0000
x000 -000
x000 --00
0000 0000
0000 0000
x000 0000
0000 0000
0010 0000
x001 0000
0000 0000
x000 0000
0000 0000
0010 0000
x001 0000
60
LVR 复位
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
0000 0--0000 0000
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
0000 0--0000 0000
0000 0000
---- --00
0000 0000
---- --00
0000 0000
---- --00
---0 0000
---0 0000
0000 0000
-000 0000
0000 0000
0000 0000
x000 -000
x000 --00
0000 0000
0000 0000
x000 0000
0000 0000
0010 0000
x001 0000
0000 0000
x000 0000
0000 0000
0010 0000
x001 0000
WDT 溢出
( 休眠 / 空闲模式 )
uuuu uuuu
---- --uu
uuuu uuuu
---- --uu
uuuu uuuu
---- --uu
uuuu u--uuuu uuuu
uuuu uuuu
---- --uu
uuuu uuuu
---- --uu
uuuu uuuu
---- --uu
uuuu u--uuuu uuuu
uuuu uuuu
---- --uu
uuuu uuuu
---- --uu
uuuu uuuu
---- --uu
---u uuuu
---u uuuu
uuuu uuuu
-uuu uuuu
uuuu uuuu
uuuu uuuu
uuuu -uuu
uuuu --uu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu uuuu
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
寄存器
OCPPC
ADUDA0
ADUDA1
ADUC0
ADUC1
ADUC2
上电复位
- - 0 0 1111
0000 0000
0000 0000
-000 0000
--00 00-0
--00 0000
WDT 溢出
( 正常模式 )
- - 0 0 1111
0000 0000
0000 0000
-000 0000
--00 00-0
--00 0000
LVR 复位
- - 0 0 1111
0000 0000
0000 0000
-000 0000
--00 00-0
--00 0000
WDT 溢出
( 休眠 / 空闲模式 )
--uu uuuu
uuuu uuuu
uuuu uuuu
-uuu uuuu
--uu uu-u
--uu uuuu
注:“u”表示不改变
“x”表示未知
“-”表示未定义
输入 / 输出端口
盛群单片机的输入 / 输出口控制具有很大的灵活性。大部分引脚可在用户程序
控制下被设定为输入或输出。所有引脚的上拉电阻设置以及指定引脚的唤醒设
置也都由软件控制,这些特性也使得此类单片机在广泛应用上都能符合开发的
需求。
该系列单片机提供 PA~PD 双向输入 / 输出口。这些寄存器在数据存储器有特定
的地址。所有 I/O 口用于输入输出操作。作为输入操作,输入引脚无锁存功能,
也就是说输入数据必须在执行“MOV A, [m]”,T2 的上升沿准备好,m 为端口
地址。对于输出操作,所有数据都是被锁存的,且保持不变直到输出锁存被重
写。
寄存器
名称
PA
PAC
PAPU
PAWU
PB
PBC
PBPU
PC
PCC
PCPU
PD
PDC
PDPU
位
7
D7
D7
D7
D7
—
—
—
—
—
—
—
—
—
6
D6
D6
D6
D6
—
—
—
D6
D6
D6
—
—
—
5
D5
D5
D5
D5
—
—
—
D5
D5
D5
D5
D5
D5
4
D4
D4
D4
D4
D4
D4
D4
D4
D4
D4
D4
D4
D4
3
D3
D3
D3
D3
D3
D3
D3
D3
D3
D3
D3
D3
D3
2
D2
D2
D2
D2
D2
D2
D2
D2
D2
D2
D2
D2
D2
1
D1
D1
D1
D1
D1
D1
D1
D1
D1
D1
D1
D1
D1
0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
D0
注:HT45FH4N 单片机 I/O 口 PB1~PB4 和 PD1 没有连接到外部引脚。
Rev.1.30
61
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
上拉电阻
许多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功
能。为了免去外部上拉电阻,当引脚规划为输入时,可由内部连接到一个上拉
电阻。这些上拉电阻可通过寄存器 PAPU~PDPU 来设置,它用一个 PMOS 晶体
管来实现上拉电阻功能。
PAPU 寄存器
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
3
D3
R/W
0
2
D2
R/W
0
1
D1
R/W
0
0
D0
R/W
0
3
D3
R/W
0
2
D2
R/W
0
1
D1
R/W
0
0
D0
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:使能
PBPU 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
—
—
—
4
D4
R/W
0
Bit 7 ~ 5
未定义,读为“0”
Bit 4 ~ 0
PB 口 bit 4~bit 0 上拉电阻控制位
0:除能
1:使能
PCPU 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
D6
R/W
0
5
D5
R/W
0
4
D4
R/W
0
Bit 7
未定义,读为“0”
Bit 6 ~ 0
PC 口 bit 6~bit 0 上拉电阻控制位
0:除能
1:使能
PDPU 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
D5
R/W
0
4
D4
R/W
0
Bit 7 ~ 6
未定义,读为“0”
Bit 5 ~ 0
PD 口 bit 5~bit 0 上拉电阻控制位
0:除能
1:使能
62
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
PA 口唤醒
当使用暂停指令“HALT”迫使单片机进入休眠或空闲模式,单片机的系统时
钟将会停止以降低功耗,此功能对于电池及低功耗应用很重要。唤醒单片机有
很多种方法,其中之一就是使 PA 口的其中一个引脚从高电平转为低电平。这
个功能特别适合于通过外部开关来唤醒的应用。PA 口的每个引脚可以通过设置
PAWU 寄存器来单独选择是否具有唤醒功能。
PAWU 寄存器
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
PA 口 bit 7~bit 0 唤醒功能控制位
0:除能
1:使能
输入 / 输出端口控制寄存器
每一个输入 / 输出口都具有各自的控制寄存器,即 PAC~PDC,用来控制输入 /
输出状态。从而每个 I/O 引脚都可以通过软件控制,动态的设置为 CMOS 输出
或输入。所有的 I/O 端口的引脚都各自对应于 I/O 端口控制的某一位。若 I/O 引
脚要实现输入功能,则对应的控制寄存器的位需要设置为“1”。这时程序指令
可以直接读取输入脚的逻辑状态。若控制寄存器相应的位被设定为“0”,则此
引脚被设置为 CMOS 输出。当引脚设置为输出状态时,程序指令读取的是输出
端口寄存器的内容。注意,如果对输出口做读取动作时,程序读取到的是内部
输出数据锁存器中的状态,而不是输出引脚上实际的逻辑状态。
PAC 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
7
D7
R/W
1
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
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:输入
PBC 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
—
—
—
4
D4
R/W
1
Bit 7 ~ 5
未定义,读为“0”
Bit 4 ~ 0
PB 口 bit 4 ~ bit 0 输入 / 输出控制位
0:输出
1:输入
63
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
PCC 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
D6
R/W
1
5
D5
R/W
1
4
D4
R/W
1
Bit 7
未定义,读为“0”
Bit 6 ~ 0
PC 口 bit 6 ~ bit 0 输入 / 输出控制位
0:输出
1:输入
3
D3
R/W
1
2
D2
R/W
1
1
D1
R/W
1
0
D0
R/W
1
3
D3
R/W
1
2
D2
R/W
1
1
D1
R/W
1
0
D0
R/W
1
PDC 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
D5
R/W
1
4
D4
R/W
1
Bit 7 ~ 6
未定义,读为“0”
Bit 5 ~ 0
PD 口 bit 5 ~ bit 0 输入 / 输出控制位
0:输出
1:输入
注:对于 HT45FH4N 单片机,由于 PB1~PB4 和 PD1 未连接到外部引脚,因此建议将这些引
脚通过相关 I/O 控制寄存器位设为输出高或输出低。
引脚重置功能
引脚的多功能可以增加单片机应用的灵活性。有限的引脚个数将会限制设计者,
而引脚的多功能将会解决很多此类问题。每个功能可单独选择所在的引脚,以
及一个确定的优先级,使得引脚上多种功能可以同时使用。此外,一些引脚功
能可以通过寄存器 PRM 进行设定。总之来说,模拟功能要比数字功能拥有更
高的优先级。但是,如有含有两个以上的模拟功能都使能,而模拟信号来自同
一个外部引脚,这些模拟输入将由内部连接到这些所有的模拟功能模块。
引脚重置寄存器
封装中有限的引脚个数会对某些单片机功能造成影响。然而,引脚功能重置和
引脚功能选择,使得小封装单片机具有更多不同的功能。本单片机中使用 PRM
寄存器对特定引脚的功能进行选择。
Rev.1.30
64
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
PRM 寄存器
Bit
Name
R/W
POR
7
6
5
4
3
2
1
0
— OUT1HPRM OUT1LPRM OUT0HPRM OUT0LPRM INT2PRM INT1PRM INT0PRM
—
R/W
R/W
R/W
R/W
R/W
R/W
R/W
—
0
0
0
0
0
0
0
Bit 7
未定义,读为“0”
Bit 6
OUT1HPRM:OUT1H 引脚重置控制
0:OUT1H on PB2
1:OUT1H on PA4
Bit 5
OUT1LPRM:OUT1L 引脚重置控制
0:OUT1L on PB1
1:OUT1L on PB0
Bit 4
OUT0HPRM:OUT0H 引脚重置控制
0:OUT0H on PB3
1:OUT0H on PB2
Bit 3
OUT0LPRM:OUT0L 引脚重置控制
0:OUT0L on PB4
1:OUT0L on PB1
Bit 2
INT2PRM:INT2 引脚重置控制
0:INT2 on PA7
1:INT2 on PA4
Bit 1
INT1PRM:INT1 引脚重置控制
0:INT1 on PA6
1:INT1 on PA3
Bit 0
INT0PRM:INT0 引脚重置控制
0:INT0 on PA5
1:INT0 on PA2
注:HT45FH4N 单片机在使用引脚重置功能时,必须注意 PB1~PB4 未连接到外部引脚。
Rev.1.30
65
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
输入 / 输出引脚结构
下图为输入 / 输出引脚的内部结构图。输入 / 输出引脚的准确逻辑结构图可能与
此图不同,这里只是为了方便对 I/O 引脚功能的理解提供的一个参考。图中的
引脚共用结构并非针对所有单片机。
通用输入 / 输出端口
A/D 输入 / 输出结构
Rev.1.30
66
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
编程注意事项
在编程中,最先要考虑的是端口的初始化。复位之后,所有的输入 / 输出数据
及端口控制寄存器都将被设为逻辑高。所有输入 / 输出引脚默认为输入状态,
而其电平则取决于其它相连接电路以及是否选择了上拉电阻。如果端口控制寄
存器 PAC~PDC,某些引脚位被设定输出状态,这些输出引脚会有初始高电平
输出,除非数据寄存器端口 PA~PD 在程序中被预先设定。设置哪些引脚是输入
及哪些引脚是输出,可通过设置正确的值到适当的端口控制寄存器,或使用指
令“SET [m].i”及“CLR [m].i”来设定端口控制寄存器中个别的位。注意,当
使用这些位控制指令时,系统即将产生一个读 - 修改 - 写的操作。单片机需要
先读入整个端口上的数据,修改个别的位,然后重新把这些数据写入到输出端
口。
读写时序
PA 口的每个引脚都带唤醒功能。单片机处于休眠或空闲模式时,有很多方法可
以唤醒单片机,其中之一就是通过 PA 任一引脚电平从高到低转换的方式,可
以设置 PA 口一个或多个引脚具有唤醒功能。
需要注意的是,HT45FH4N 包含一个电平转换器,存在 3 个内部引脚 PB1,
PB2 及 PD1 没有连接至外部引脚。当单片机上电后或在编程的过程中,这些引
脚会被设置为逻辑输入,因此建议这 3 个引脚需连接一个内部上拉电阻防至引
脚处于浮空状态而导致耗电。
Rev.1.30
67
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
定时器模块 – TM
控制和测量时间在任何单片机中都是一个很重要的部分。该系列单片机提供几
个定时器模块 ( 简称 TM),来实现和时间有关的功能。定时器模块是包括多种
操作的定时单元,提供的操作有:定时 / 事件计数器,捕捉输入,比较匹配输
出,单脉冲输出以及 PWM 输出等功能。每个定时器模块有两个独立中断。每
个 TM 外加的输入输出引脚,扩大了定时器的灵活性,便于用户使用。
这里只介绍各种 TM 的共性,更多详细资料请参考相关定时器章节。
简介
该系列单片机包含 1 个 16-bit 标准型 TM 和 3 个 10-bit 周期型 TM,分别命名为
TM0,TM1,TM2 和 TM3。虽然性质相似,但不同 TM 特性复杂度不同。本
章介绍标准型和周期型 TM 的共性,更多详细资料分别见后面各章。两种类型
TM 的特性和区别见下表。
STM
√
√
√
1
1
边沿对齐
占空比或周期
功能
定时 / 计数器
捕捉输入
比较匹配输出
PWM 通道数
单脉冲输出
PWM 对齐方式
PWM 调节周期 & 占空比
PTM
√
√
√
1
1
边沿对齐
占空比或周期
TM 功能概要
Device
HT45F4N/HT45FH4N
TM0
16-bit STM
TM1
10-bit PTM
TM2
10-bit PTM
TM3
10-bit PTM
TM 名称 / 类型参考
TM 操作
两种不同类型的 TM 提供从简单的定时操作到 PWM 信号产生等多种功能。理
解 TM 操作的关键是比较 TM 内独立运行的计数器的值与内部比较器的预置值。
当计数器的值与比较器的预置值相同时,则比较匹配,TM 中断信号产生,清
零计数器并改变 TM 输出引脚的状态。用户选择内部时钟或外部时钟来驱动内
部 TM 计数器。
TM 时钟源
驱动 TM 计数器的时钟源很多。通过设置 TM 控制寄存器的 TnCK2~TnCK0 位,
选择所需的时钟源。该时钟源来自系统时钟 fSYS 或内部高速时钟 fH 或 fTBC 时钟
源或外部 TCKn 引脚时钟。TCKn 引脚时钟源用于允许外部信号作为 TM 时钟
源或用于事件计数。
Rev.1.30
68
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TM 中断
标准型和周期型 TM 都有两个内部中断,分别是内部比较器 A 或比较器 P,当
比较匹配发生时产生 TM 中断。当 TM 中断产生时,计数器清零并改变 TM 输
出引脚的状态。
TM 外部引脚
无论哪种类型的 TM,都有一个 TM 输入引脚 TCKn。通过设置 TMnC0 寄存器
中的 TnCK2~TnCK0 位,选择 TM 功能并将该引脚作为 TM 时钟源输入脚。外
部时钟源可通过该引脚来驱动内部 TM。外部 TM 输入脚也与其它功能共用,
但是,如果设置适当值给 TnCK2~TnCK0,该引脚会连接到内部 TM。TM 引脚
可选择上升沿有效或下降沿有效。
每个 TM 有两个输出引脚。当 TM 工作在比较匹配输出模式且比较匹配发生时,
这些引脚会由 TM 控制切换到高电平或低电平或翻转。外部 TPn 输出引脚也被
TM 用来产生 PWM 输出波形。当 TM 输出引脚与其它功能共用时,TM 输出功
能需要通过寄存器先被设置。寄存器中的一个单独位用于决定其相关引脚用于
外部 TM 输出还是用于其它功能。不同类型 TM 中输出引脚的个数是不同的,
详见下表。
标准型 TM 和周期型 TM 引脚名称都带有“_n”后缀。引脚名称带“_0”或“_1”
后缀表示来自同一个 TM 的多个输出引脚。这允许 TM 产生一对互补输出,可
通过 I/O 寄存器数据位选择。
Device
TM0
TM1
TM2
TM3
HT45F4N/HT45FH4N TP0_0, TP0_1 TP1_0, TP1_1 TP2_0, TP2_1 TP3_0, TP3_1
TM 输出引脚
TM 输入 / 输出引脚控制寄存器
通过设置一个与 TM 输入 / 输出引脚相关的寄存器的一位,选择作为 TM 输入 /
输出功能或其它共用功能。设定为高时,相关引脚用作 TM 输入 / 输出,清零
时将保持原来的功能。
Rev.1.30
69
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TM0 功能引脚控制方框图
注:1. 图中的 I/O 寄存器数据位用于 TM 输出反相控制。
2. 若 TM 工作在捕捉输入模式,TM 引脚控制寄存器最多只能使能一个 TM 输入。
P B 0 O u tp u t F u n c tio n
0
P B 0 /T P 1 _ 0
1
0
1
T 1 C P 0
P B 0
P A 7 O u tp u t F u n c tio n
O u tp u t
0
1
0
1
T 1 C P 1
P A 7
C a p tu re In p u t
1
0
0
1
P A 7 /T P 1 _ 1
T 1 C P 1
T 1 C A P T S
1
0
T 1 C P 0
T C K In p u t
P A 3 /T C K 1
TM1 功能引脚控制方框图
注:1. 图中的 I/O 寄存器数据位用于 TM 输出反相控制。
2. 若 TM 工作在捕捉输入模式,TM 引脚控制寄存器最多只能使能一个 TM 输入。
Rev.1.30
70
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
P B 0 O u tp u t F u n c tio n
0
P B 0 /T P 2 _ 0
1
0
1
T 2 C P 0
P B 0
P A 6 O u tp u t F u n c tio n
O u tp u t
0
0
1
T 2 C P 1
P A 6
C a p tu re In p u t
1
0
0
1
P A 6 /T P 2 _ 1
1
T 2 C P 1
T 2 C A P T S
1
0
T 2 C P 0
T C K In p u t
P A 2 /T C K 2
TM2 功能引脚控制方框图
注:1. 图中的 I/O 寄存器数据位用于 TM 输出反相控制。
2. 若 TM 工作在捕捉输入模式,TM 引脚控制寄存器最多只能使能一个 TM 输入。
P B 0 O u tp u t F u n c tio n
0
P B 0 /T P 3 _ 0
1
0
1
T 3 C P 0
P B 0
P A 0 O u tp u t F u n c tio n
O u tp u t
0
1
0
1
T 3 C P 1
P A 0
C a p tu re In p u t
1
0
0
1
P A 0 /T P 3 _ 1
T 3 C P 1
T 3 C A P T S
1
0
T 3 C P 0
T C K In p u t
P A 6 /T C K 3
TM3 功能引脚控制方框图
注:1. 图中的 I/O 寄存器数据位用于 TM 输出反相控制。
2. 若 TM 工作在捕捉输入模式,TM 引脚控制寄存器最多只能使能一个 TM 输入。
Rev.1.30
71
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TMPC0 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
6
5
4
3
2
1
0
OUT0LN OUT0HN OUT0CP1 OUT0CP0 T1CP1 T1CP0 T0CP1 T0CP0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
1
1
0
0
0
0
0
0
Bit 7
OUT0LN:OUT0L 信号反相控制
0:同相
1:反相
此位用于 OUT0L 信号输出前的反相控制。
Bit 6
OUT0HN:OUT0H 信号反相控制
0:同相
1:反相
此位用于 OUT0H 信号输出前的反相控制。
Bit 5 ~ 4
OUT0CP[1:0]:OUT0H 和 OUT0L 引脚输出功能控制
00:普通 I/O 功能,如 [PB4( 或 PB1) 和 PB3( 或 PB2)
01:PB4( 或 PB1) 和 OUT0H
10:OUT0L 和 PB3( 或 PB2)
11:OUT0L 和 OUT0H
如果这两位设置为“11”,死区时间电路将自动使能。如果这两位设置为其它值,
死区时间电路将自动除能。
注:对于 HT45FH4N 单片机,当 OUT0L 和 OUT0H 通过引脚重置功能设置为
与 PB1 和 PB2 引脚共用时,要注意的是 PB1 和 PB2 未连接到外部引脚,
并且 PB3 和 PB4 引脚内部分别连接到电平转换输入 A 和 C。
Bit 3
T1CP1:TP1_1 引脚控制位
0:除能
1:使能
Bit 2
T1CP0:TP1_0 引脚控制位
0:除能
1:使能
Bit 1
T0CP1:TP0_1 引脚控制位
0:除能
1:使能
Bit 0
T0CP0:TP0_0 引脚控制位
0:除能
1:使能
72
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TMPC1 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
6
5
4
3
2
1
0
OUT1LN OUT1HN OUT1CP1 OUT1CP0 T3CP1 T3CP0 T2CP1 T2CP0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
1
1
0
0
0
0
0
0
Bit 7
OUT1LN:OUT1L 信号反相控制
0:同相
1:反相
此位用于 OUT1L 信号输出前的反相控制。
Bit 6
OUT1HN:OUT1H 信号反相控制
0:同相
1:反相
此位用于 OUT1H 信号输出前的反相控制。
Bit 5 ~ 4
OUT1CP[1:0]:OUT1H 和 OUT1L 引脚输出功能控制
00:普通 I/O 功能,如 [PB1( 或 PB0) 和 PB2( 或 PA4)
01:PB1( 或 PB0) 和 OUT1H
10:OUT1L 和 PB2( 或 PA4)
11:OUT1L 和 OUT1H
如果这两位设置为“11”,死区时间电路将自动使能。如果这两位设置为其它值,
死区时间电路将自动除能。
注:对于 HT45FH4N 单片机,当 OUT1L 和 OUT1H 通过引脚重置功能设置为与
PB1 和 PB2 引脚共用时,要注意的是 PB1 和 PB2 未连接到外部引脚,并且
PB3 和 PB4 引脚内部分别连接到电平转换输入 A 和 C。
Bit 3
T3CP1:TP3_1 引脚控制位
0:除能
1:使能
Bit 2
T3CP0:TP3_0 引脚控制位
0:除能
1:使能
Bit 1
T2CP1:TP2_1 引脚控制位
0:除能
1:使能
Bit 0
T2CP0:TP2_0 引脚控制位
0:除能
1:使能
73
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
编程注意事项
TM 计数寄存器和捕捉 / 比较寄存器 CCRA、CCRP 为 16-bit 或 10-bit 的寄存器,
含有低字节和高字节结构。高字节可直接访问,低字节则仅能通过一个内部 8-bit
的缓存器进行访问。值得注意的是 8-bit 缓存器的存取数据及相关低字节的读写
操作仅在其相应的高字节读取操作执行时发生。CCRA 和 CCRP 寄存器访问方
式如下图所示,读写这些成对的寄存器需通过特殊的方式。建议使用“MOV”
指令按照以下步骤访问 CCRA 或 CCRP 低字节寄存器,TMxAL 或 TMxRPL,
否则可能导致无法预期的结果。
TM Counter Register (Read only)
TMxDL
TMxDH
8-bit Buffer
TMxAL
TMxAH
TM CCRA Register (Read/Write)
TMxRPL
TMxRPH
TM CCRP Register (Read/Write)
Data
Bus
读写流程如下步骤所示:
● 写数据至 CCRA 或 CCRP
♦ 步骤 1. 写数据至低字节寄存器 TMxAL 或 TMxRPL
– 注意,此时数据仅写入 8-bit 缓存器。
♦ 步骤 2. 写数据至高字节寄存器 TMxAH 或 TMxRPH
– 注意,此时数据直接写入高字节寄存器,同时锁存在 8-bit 缓存器中的数
据写入低字节寄存器。
● 由计数器寄存器和 CCRA 或 CCRP 中读取数据
♦ 步骤 1. 由高字节寄存器 TMxDH、TMxAH 或 TMxRPH 读取数据
– 注意,此时高字节寄存器中的数据直接读取,同时由低字节寄存器读取
的数据锁存至 8-bit 缓存器中。
♦ 步骤 2. 由低字节寄存器 TMxDL、TMxAL 或 TMxRPL 读取数据
– 注意,此时读取 8-bit 缓存器中的数据。
Rev.1.30
74
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
标准型 TM – STM
标准型 TM 包括 5 种工作模式,即比较匹配输出、定时 / 事件计数器、捕捉输入、
单脉冲输出和 PWM 输出模式。标准型 TM 也由一个外部输入脚控制并驱动两
个外部输出脚。这两个外部输出信号可以是同相或反相。
TM 编号
0
名称
16-bit STM
TM 输入引脚
TCK0
TM 输出引脚
TP0_0, TP0_1
标准型 TM 框图 (n=0)
标准型 TM 操作
标准型 TM 的核心是一个由用户选择的内部或外部时钟源驱动的 16 位向上计数
器,它还包括两个内部比较器即比较器 A 和比较器 P。这两个比较器将计数器
的值与 CCRP 和 CCRA 寄存器中的值进行比较。CCRP 是 8 位宽度,与计数器
的高 8 位比较;而 CCRA 是 16 位的,与计数器的所有位比较。
通过应用程序改变 16 位计数器值的唯一方法是使 T0ON 位发生上升沿跳变清除
计数器。此外,计数器溢出或比较匹配也会自动清除计数器。上述条件发生时,
通常情况会产生 TM 中断信号。标准型 TM 可工作在不同的模式,可由包括来
自输入脚的不同时钟源驱动,也可以控制输出脚。所有工作模式的设定都是通
过设置相关寄存器来实现的。
Rev.1.30
75
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
标准型 TM 寄存器介绍
标准型 TM 的所有工作模式由一系列寄存器控制。一对只读寄存器用来存放 16
位计数器的值,一对读 / 写寄存器存放 16 位 CCRA 的值。一个读 / 写寄存器存
放 8 位 CCRP 的值。剩下两个控制寄存器用来设置工作模式。
位
寄存器
名称
7
6
5
4
T0PAU T0CK2 T0CK1 T0CK0
T0M1 T0M0 T0IO1 T0IO0
D7
D6
D5
D4
D15
D14
D13
D12
D7
D6
D5
D4
D15
D14
D13
D12
D7
D6
D5
D4
TM0C0
TM0C1
TM0DL
TM0DH
TM0AL
TM0AH
TM0RP
3
T0ON
T0OC
D3
D11
D3
D11
D3
2
1
0
—
—
—
T0POL T0DPX T0CCLR
D2
D1
D0
D10
D9
D8
D2
D1
D0
D10
D9
D8
D2
D1
D0
16-bit 标准型 TM 寄存器列表
TM0C0 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
T0PAU
R/W
0
6
T0CK2
R/W
0
5
T0CK1
R/W
0
4
T0CK0
R/W
0
3
T0ON
R/W
0
2
—
—
—
1
—
—
—
0
—
—
—
Bit 7
T0PAU:TM0 计数器暂停控制位
0:运行
1:暂停
通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂
停条件时,TM 保持上电状态并继续耗电。当此位由低到高转换时,计数器将保
留其剩余值,直到此位再次改变为低电平,并从此值开始继续计数。
Bit 6 ~ 4
T0CK2 ~ T0CK0:选择 TM0 计数时钟位
000:fSYS/4
001:fSYS
010:fH/16
011:fH/64
100:fTBC
101:fTBC
110:TCK0 上升沿时钟
111:TCK0 下降沿时钟
此三位用于选择 TM 的时钟源。外部引脚时钟源能被选择在上升沿或下降沿有效。
fSYS 是系统时钟,fH 和 fTBC 是其它的内部时钟源,细节方面请参考振荡器章节。
Bit 3
T0ON:TM0 计数器 On/Off 控制
0:Off
1:On
此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位
则除能 TM。清零此位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转
换时,内部计数器将复位清零;当此位经由高到低转换时,内部计数器将保持
其剩余值,直到此位再次改变为高电平。
若 TM 处于比较匹配输出模式时,当 T0ON 位经由低到高的转换时,TM 输出
脚将重置到通过 T0OC 位指定的初始值。
Bit 2 ~ 0
未定义,读为“0”
76
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TM0C1 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
T0M1
R/W
0
6
T0M0
R/W
0
5
T0IO1
R/W
0
4
T0IO0
R/W
0
3
T0OC
R/W
0
2
1
0
T0POL T0DPX T0CCLR
R/W
R/W
R/W
0
0
0
Bit 7 ~ 6
T0M1~T0M0:选择 TM0 工作模式
00:比较匹配输出模式
01:捕捉输入模式
10:PWM 模式或单脉冲输出模式
11:定时 / 计数器模式
这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 T0M1 和 T0M0
位有任何改变前先关掉。在定时 / 计数器模式,TM 输出脚控制必须除能。
Bit 5 ~ 4
T0IO1~T0IO0:选择 TM0 输出功能位
比较匹配输出模式
00:无变化
01:输出低
10:输出高
11:输出翻转
PWM 模式 / 单脉冲输出模式
00:强制无效状态
01:强制有效状态
10:PWM 输出
11:单脉冲输出
捕捉输入模式
00:在 TM 捕捉输入脚上升沿输入捕捉
01:在 TM 捕捉输入脚下降沿输入捕捉
10:在 TM 捕捉输入脚双沿输入捕捉
11:输入捕捉除能
定时 / 计数器模式
未使用
此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择
决定 TM 运行在哪种模式下。
在比较匹配输出模式下,T0IO1 和 T0IO0 位决定当从比较器 A 比较匹配输出发
生时 TM 输出脚如何改变状态。当从比较器 A 比较匹配输出发生时 TM 输出脚
能设为切换高、切换低或翻转当前状态。若此两位同时为 0 时,这个输出将不
会改变。TM 输出脚的初始值通过 TM0C1 寄存器的 T0OC 位设置取得。注意,
由 T0IO1 和 T0IO0 位得到的输出电平必须与通过 T0OC 位设置的初始值不同,
否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后,
通过 T0ON 位由低到高电平的转换复位至初始值。
在 PWM 模式,T0IO1 和 T0IO0 用于决定比较匹配条件发生时怎样改变 TM 输
出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TM1 关闭时改
变 T0IO1 和 T0IO0 位的值是很有必要的。若在 TM 运行时改变 T0IO1 和 T0IO0
的值,PWM 输出的值是无法预料的。
77
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Bit 3
T0OC:TM0 输出控制位
比较匹配输出模式
0:初始低
1:初始高
PWM 模式 / 单脉冲输出模式
0:低有效
1:高有效
这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还
是 PWM 模式 / 单脉冲输出模式。若 TM 处于定时 / 计数器模式,则其不受影响。
在比较匹配输出模式时,比较匹配发生前其决定 TM 输出脚的逻辑电平值。在
PWM 模式时,其决定 PWM 信号是高有效还是低有效。
Bit 2
T0POL:TM0 输出极性控制位
0:同相
1:反相
此位控制 TM 输出脚的极性。此位为高时 TM 输出脚反相,为低时 TM 输出脚
同相。若 TM 处于定时 / 计数器模式时其不受影响。
Bit 1
T0DPX:TM0 PWM 周期 / 占空比控制位
0:CCRP - 周期;CCRA - 占空比
1:CCRP - 占空比;CCRA - 周期
此位决定 CCRA 与 CCRP 寄存器哪个被用于 PWM 波形的周期和占空比控制。
Bit 0
T0CCLR:选择 TM0 计数器清零条件位
0:TM0 比较器 P 匹配
1:TM0 比较器 A 匹配
此位用于选择清除计数器的方法。标准型 TM 包括两个比较器 - 比较器 A 和比
较器 P。这两个比较器每个都可以用作清除内部计数器。T0CCLR 位设为高,
计数器在比较器 A 比较匹配发生时被清除;此位设为低,计数器在比较器 P 比
较匹配发生或计数器溢出时被清除。计数器溢出清除的方法仅在 CCRP 被清除
为 0 时才能生效。T0CCLR 位在 PWM,单脉冲或输入捕捉模式时未使用。
TM0DL 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
7
D7
R
0
6
D6
R
0
5
D5
R
0
4
D4
R
0
3
D3
R
0
2
D2
R
0
1
D1
R
0
0
D0
R
0
2
D10
R
0
1
D9
R
0
0
D8
R
0
TM0DL:TM0 计数器低字节寄存器 bit 7 ~ bit 0
TM0 16-bit 计数器 bit 7 ~ bit 0
TM0DH 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
Rev.1.30
7
D15
R
0
6
D14
R
0
5
D13
R
0
4
D12
R
0
3
D11
R
0
TM0DH:TM0 计数器高字节寄存器 bit 7 ~ bit 0
TM0 16-bit 计数器 bit 15 ~ bit 8
78
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TM0AL 寄存器
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
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
TM0AL:TM0 CCRA 低字节寄存器 bit 7 ~ bit 0
TM0 16-bit CCRA bit 7 ~ bit 0
TM0AH 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
7
D15
R/W
0
6
D14
R/W
0
5
D13
R/W
0
4
D12
R/W
0
3
D11
R/W
0
TM0AH:TM0 CCRA 高字节寄存器 bit 7 ~ bit 0
TM0 16-bit CCRA bit 15 ~ bit 8
TM0RP 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
Rev.1.30
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
TM0RP:TM0 CCRP 高字节寄存器 bit 7 ~ bit 0
TM0 CCRP 8 位寄存器,与 TM0 计数器 bit 15~bit 8 比较。比较器 P 匹配周期
0:65536 个 TM0 时钟周期
1~255:256 × (1~255) 个 TM0 时钟周期
此八位设定内部 CCRP 8-bit 寄存器的值,然后与内部计数器的高八位进行比较。
如果 T0CCLR 位设为 0 时,比较结果为 0 并清除内部计数器。T0CCLR 位设为低,
CCRP 比较匹配结果将重置内部计数器。由于 CCRP 只与计数器高八位比较,
比较结果是 256 时钟周期的倍数。CCRP 被清零时,实际上会使得计数器在最
大值溢出。
79
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
标准型 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 不能设为“0”。
正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 比
较匹配发生后 T0AF 标志产生时,TM 输出脚状态改变。比较器 P 比较匹配发
生时产生的 T0PF 标志不影响 TM 输出脚。TM 输出脚状态改变方式由 TM0C1
寄 存 器 中 T0IO1 和 T0IO0 位 决 定。 当 比 较 器 A 比 较 匹 配 发 生 时,T0IO1 和
T0IO0 位决定 TM 输出脚输出高,低或翻转当前状态。TM 输出脚初始值,既
可以通过 T0ON 位由低到高电平的变化设置,也可以由 T0OC 位设置。注意,
若 T0IO1 和 T0IO0 位同时为 0 时,引脚输出不变。
Rev.1.30
80
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
CCRP = 0
TnCCLR = 0; TnM[1:0] = 00
Counter
overflow
0xFFFF
CCRP > 0
Counter cleared by CCRP value
CCRP > 0
CCRP
Pause
Resume
CCRA
Stop
Counter
Reset
Time
TnON
TnPAU
TnPOL
CCRP Int.
Flag TnPF
CCRA Int.
Flag TnAF
TM O/P Pin
Output Pin set
to Initial Level
Low if TnOC = 0
Output Toggle
with TnAF flag
Now TnIO1, TnIO0 = 10
Active High Output
Select
Output not affected by
TnAF flag. Remains High
until reset by TnON bit
Here TnIO1, TnIO0 = 11
Toggle Output Select
Output inverts
when TnPOL is high
Output Pin
Reset to initial value
Output controlled
by other pin-shared function
比较匹配输出模式 – TnCCLR=0
注:1. TnCCLR=0,比较器 P 匹配将清除计数器
2. TM 输出脚仅由 TnAF 标志位控制
3. 在 TnON 上升沿 TM 输出脚复位至初始值
4. n=0
Rev.1.30
81
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TnCCLR = 1; TnM[1:0] = 00
Counter Value
CCRA = 0
Counter overflows
CCRA > 0 Counter cleared by CCRA value
0xFFFF
CCRA = 0
CCRA
Pause
Resume
Stop
CCRP
Counter
Reset
Time
TnON
TnPAU
TnPOL
No TnAF flag
generated on
CCRA overflow
CCRA Int.
Flag TnAF
CCRP Int.
Flag TnPF
TM O/P Pin
Output does
not change
TnPF not
generated
Output Pin set
to Initial Level
Low if TnOC = 0
Output not affected by
TnAF flag remains High
until reset by TnON bit
Output Toggle
with TnAF flag
Now TnIO1, TnIO0 = 10
Active High Output
Select
Output controlled by
other pin-shared function
Output inverts
when TnPOL is high
Output Pin
Reset to initial value
Here TnIO1, TnIO0 = 11
Toggle Output Select
比较匹配输出模式 – TnCCLR=1
注:1. TnCCLR=1,比较器 A 匹配将清除计数器
2. TM 输出脚仅由 TnAF 标志位控制
3. 在 TnON 上升沿 TM 输出脚复位至初始值
4. 当 TnCCLR=1 时,不会产生 TnPF 标志
5. n=0
Rev.1.30
82
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
定时 / 计数器模式
为使 TM 工作在此模式,TM0C1 寄存器中的 T0M1 和 T0M0 位需要设置为“11”。
定时 / 计数器模式与比较输出模式操作方式相同,并产生同样的中断请求标志。
不同的是,在定时 / 计数器模式下 TM 输出脚未使用。因此,比较匹配输出模
式中的描述和时序图可以适用于此功能。该模式中未使用的 TM 输出脚用作普
通 I/O 脚或其它功能。
PWM 输出模式
为 使 TM 工 作 在 此 模 式,TM0C1 寄 存 器 中 的 T0M1 和 T0M0 位 需 要 设 置 为
“10”,且 T0IO1 和 T0IO0 位也需要设置为“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 输出波形
的极性取反。
● 16-bit STM,PWM 模式,边沿对齐模式,T0DPX=0
CCRP
Period
Duty
1~255
CCRP×256
0
65536
CCRA
若 fSYS=30MHz,TM 时钟源选择 fSYS/4,CCRP=2,CCRA=128,
STM PWM 输出频率 = (fSYS/4)/512 = fSYS/2048=14.65kHz,duty=128/512=25%,
若由 CCRA 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为
100%。
● 16-bit STM,PWM 模式,边沿对齐模式,T0DPX=1
CCRP
Period
Duty
1~255
0
CCRA
CCRP×256
65536
PWM 的输出周期由 CCRA 寄存器的值与 TM 的时钟共同决定,PWM 的占空比
由 CCRP×256 ( 除了 CCRP 为“0”外 ) 的值决定。
Rev.1.30
83
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnDPX = 0; TnM [1:0] = 10
Counter cleared
by CCRP
Counter Reset when
TnON returns high
CCRP
Pause Resume
CCRA
Counter Stop if
TnON bit low
Time
TnON
TnPAU
TnPOL
CCRA Int.
Flag TnAF
CCRP Int.
Flag TnPF
TM O/P Pin
(TnOC=1)
TM O/P Pin
(TnOC=0)
PWM Duty Cycle
set by CCRA
PWM Period
set by CCRP
PWM resumes
operation
Output controlled by
Output Inverts
other pin-shared function
when TnPOL = 1
PWM 模式 – TnDPX=0
注:1. TnDPX=0,CCRP 清除计数器
2. 计数器清零并设置 PWM 周期
3. 当 TnIO1,TnIO0=00 或 01,PWM 功能不变
4. TnCCLR 位不影响 PWM 操作
5. n=0
Rev.1.30
84
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnDPX = 1; TnM [1:0] = 10
Counter cleared
by CCRA
Counter Reset when
TnON returns high
CCRA
Pause Resume
CCRP
Counter Stop if
TnON bit low
Time
TnON
TnPAU
TnPOL
CCRP Int.
Flag TnPF
CCRA Int.
Flag TnAF
TM O/P Pin
(TnOC=1)
TM O/P Pin
(TnOC=0)
PWM Duty Cycle
set by CCRP
PWM Period
set by CCRA
PWM resumes
operation
Output controlled by
Output Inverts
other pin-shared function
when TnPOL = 1
PWM 模式 – TnDPX=1
注:1. TnDPX=1,CCRA 清除计数器
2. 计数器清零并设置 PWM 周期
3. 当 TnIO1,TnIO0=00 或 01,PWM 功能不变
4. TnCCLR 位不影响 PWM 操作
5. n=0
Rev.1.30
85
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
单脉冲模式
为 使 TM 工 作 在 此 模 式,TM0C1 寄 存 器 中 的 T0M1 和 T0M0 位 需 要 设 置 为
“10”,同时 T0IO1 和 T0IO0 位需要设置为“11”。正如模式名所言,单脉冲
输出模式,在 TM 输出脚将产生一个脉冲输出。
脉冲输出可以通过应用程序控制 T0ON 位由低到高的转变来触发。而处于单脉
冲模式时,T0ON 位在 TCK0 脚自动由低转变为高,进而初始化单脉冲输出状
态。当 T0ON 位转变为高电平时,计数器将开始运行,并产生脉冲前沿。当脉
冲有效时 T0ON 位保持高电平。通过应用程序使 T0ON 位清零或比较器 A 比较
匹配发生时,产生脉冲下降沿。
单脉冲产生示意图 (n=0)
Rev.1.30
86
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnM [1:0] = 10 ; TnIO [1:0] = 11
Counter stopped
by CCRA
Counter Reset when
TnON returns high
CCRA
Pause
Counter Stops
by software
Resume
CCRP
Time
TnON
Software
Trigger
Auto. set by
TCKn pin
Cleared by
CCRA match
TCKn pin
Software
Trigger
Software
Trigger
Software
Clear
Software
Trigger
TCKn pin
Trigger
TnPAU
TnPOL
CCRP Int.
Flag TnPF
No CCRP Interrupts
generated
CCRA Int.
Flag TnAF
TM O/P Pin
(TnOC=1)
TM O/P Pin
(TnOC=0)
Output Inverts
when TnPOL = 1
Pulse Width
set by CCRA
单脉冲模式
注:1. 通过 CCRA 匹配停止计数器
2. CCRP 未使用
3. 通过 TCKn 脚或设置 TnON 位为高来触发脉冲
4. TCKn 脚有效沿会自动置位 TnON
5. 单脉冲模式中,TnIO[1:0] 需置位“11”,且不能更改。
6. n=0
然而,比较器 A 比较匹配发生时,会自动清除 T0ON 位并产生单脉冲输出下降
沿。CCRA 的值通过这种方式控制脉冲宽度。比较器 A 比较匹配发生时,也会
产生 TM 中断。T0ON 位在计数器重启时会发生由低到高的转变,此时计数器
才复位至零。在单脉冲模式中,CCRP 寄存器,T0CCLR 和 T0DPX 位未使用。
Rev.1.30
87
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
捕捉输入模式
为 使 TM 工 作 在 此 模 式,TM0C1 寄 存 器 中 的 T0M1 和 T0M0 位 需 要 设 置 为
“01”。此模式使能外部信号捕捉并保存内部计数器当前值,因此被用于诸如
脉冲宽度测量的应用中。TP0_0 或 TP0_1 脚上的外部信号,通过设置 TM0C1
寄存器的 T0IO1 和 T0IO0 位选择有效边沿类型,即上升沿,下降沿或双沿有效。
计数器在 T0ON 位由低到高转变时启动并通过应用程序初始化。
当 TP0_0 或 TP0_1 脚出现有效边沿转换时,计数器当前值被锁存到 CCRA 寄存
器,并产生 TM 中断。不考虑 TP0_0 或 TP0_1 引脚事件,计数器继续工作直到
T0ON 位发生下降沿跳变。当 CCRP 比较匹配发生时计数器复位至零;CCRP
的值通过这种方式控制计数器的最大值。当比较器 P CCRP 比较匹配发生时,
也会产生 TM 中断。记录 CCRP 溢出中断信号的值可以测量脉宽。通过设置
T0IO1 和 T0IO0 位选择 TP0_0 或 TP0_1 引脚为上升沿、下降沿或双沿有效。不
考虑 TP0_0 或 TP0_1 引脚事件,如果 T0IO1 和 T0IO0 位设置为高,不会产生
捕捉操作,但计数器继续运行。
当 TP0_0 或 TP0_1 引脚与其它功能共用,TM 工作在输入捕捉模式时需多加注
意。这是因为如果引脚被设为输出,那么该引脚上的任何电平转变都可能执行
输入捕捉操作。T0CCLR 和 T0DPX 位在此模式中未使用。
Rev.1.30
88
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnM [1:0] = 01
Counter cleared by
CCRP
Counter
Stop
Counter
Reset
CCRP
Resume
YY
Pause
XX
Time
TnON
TnPAU
Active
edge
Active
edge
Active edge
TM capture
pin TPn_x
CCRA Int.
Flag TnAF
CCRP Int.
Flag TnPF
CCRA
Value
TnIO [1:0]
Value
XX
00 – Rising edge
YY
01 – Falling edge
XX
10 – Both edges
YY
11 – Disable Capture
捕捉输入模式
注:1. TnM1,TnM0=01 并通过 TnIO1 和 TnIO0 位设置有效边沿
2. TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRA 中
3. TnCCLR 位未使用
4. 无输出功能 – TnOC 和 TnPOL 位未使用
5. 计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大
6. n=0
Rev.1.30
89
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
周期型 TM – PTM
周期型 TM 包括 5 种工作模式,即比较匹配输出、定时 / 事件计数器、捕捉输入、
单脉冲输出和 PWM 输出模式。周期型 TM 也由一个外部输入脚控制并驱动两
个外部输出脚。
周期型 TM 操作
周期型 TM 核心是一个由用户选择的内部或外部时钟源驱动的 10 位向上计数
器,它还包括两个内部比较器即比较器 A 和比较器 P。这两个比较器将计数器
的值与 CCRA 和 CCRP 寄存器中的值进行比较。
通过应用程序改变 10 位计数器值的唯一方法是使 TnON 位发生上升沿跳变清除
计数器。此外,计数器溢出或比较匹配也会自动清除计数器。上述条件发生时,
通常情况会产生 TM 中断信号。周期型 TM 可工作在不同的模式,可由包括来
自输入脚的不同时钟源驱动,也可以控制输出脚。所有工作模式的设定都是通
过设置相关寄存器来实现的。
周期型 TM 方框图 (n=1~3)
周期型 TM 寄存器介绍
周期型 TM 的所有操作由一系列寄存器控制。一对只读寄存器用来存放 10 位计
数器的值,两对读 / 写寄存器存放 10 位 CCRA 和 CCRP 的值。剩下两个控制寄
存器用来设置不同的操作和控制模式。
位
寄存器
名称
7
6
5
4
3
2
1
0
TMnC0 TnPAU TnCK2 TnCK1 TnCK0 TnON
—
—
—
TMnC1 TnM1 TnM0 TnIO1 TnIO0 TnOC TnPOL TnCAPTS TnCCLR
TMnDL
D7
D6
D5
D4
D3
D2
D1
D0
TMnDH
—
—
—
—
—
—
D9
D8
TMnAL
D7
D6
D5
D4
D3
D2
D1
D0
TMnAH
—
—
—
—
—
—
D9
D8
TMnRPL
D7
D6
D5
D4
D3
D2
D1
D0
TMnRPH
—
—
—
—
—
—
D9
D8
10-bit 周期型 TM 寄存器列表 (n=1~3)
Rev.1.30
90
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TMnC0 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
TnPAU
R/W
0
6
TnCK2
R/W
0
5
TnCK1
R/W
0
4
TnCK0
R/W
0
3
TnON
R/W
0
2
—
—
—
1
—
—
—
0
—
—
—
Bit 7
TnPAU:TMn 计数器暂停控制位
0:运行
1:暂停
通过设置此位为高可使计数器暂停,清零此位恢复正常计数器操作。当处于暂
停条件时,TM 保持上电状态并继续耗电。当此位由低到高转变时,计数器将保
留其剩余值,直到此位再次改变为低电平,并从此值开始继续计数。
Bit 6 ~ 4
TnCK2 ~ TnCK0:选择 TMn 计数时钟位
000:fSYS/4
001:fSYS
010:fH/16
011:fH/64
100:fTBC
101:fH
110:TCKn 上升沿
111:TCKn 下降沿
此三位用于选择 TM 的时钟源。选择保留时钟输入将有效地除能内部计数器。
外部引脚时钟源能被选择在上升沿或下降沿有效。fSYS 是系统时钟,fH 和 fTBC 是
其它的内部时钟源,细节方面请参考振荡器章节。
Bit 3
TnON:TMn 计数器 On/Off 控制位
0:Off
1:On
此位控制 TM 的总开关功能。设置此位为高则使能计数器使其运行,清零此位
则除能 TM。清零此位将停止计数器并关闭 TM 减少耗电。当此位经由低到高转
变时,内部计数器将复位清零;当此位经由高到低转换时,内部计数器将保持
其剩余值,直到此位再次改变为高电平。
若 TM 处于比较匹配输出模式时,当 TnON 位经由低到高的转换时,TM 输出
脚将重置到通过 TnOC 位指定的初始值。
Bit 2 ~ 0
未定义,读为“0”
91
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TMnC1 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
TnM1
R/W
0
6
TnM0
R/W
0
5
TnIO1
R/W
0
4
TnIO0
R/W
0
3
2
1
0
TnOC TnPOL TnCAPTS TnCCLR
R/W
R/W
R/W
R/W
0
0
0
0
Bit 7 ~ 6
TnM1~TnM0:选择 TMn 工作模式位
00:比较匹配输出模式
01:捕捉输入模式
10:PWM 模式或单脉冲输出模式
11:定时 / 计数器模式
这两位设置 TM 需要的工作模式。为了确保操作可靠,TM 应在 TnM1 和 TnM0
位有任何改变前先关掉。在定时 / 计数器模式,TM 输出脚控制必须除能。
Bit 5 ~ 4
TnIO1~TnIO0:选择 TPn_0 和 TPn_1 输出功能位
比较匹配输出模式
00:无变化
01:输出低
10:输出高
11:输出翻转
PWM 模式 / 单脉冲输出模式
00:强制无效状态
01:强制有效状态
10:PWM 输出
11:单脉冲输出
捕捉输入模式
00:在 TPn_0 和 TPn_1 上升沿输入捕捉
01:在 TPn_0 和 TPn_1 下降沿输入捕捉
10:在 TPn_0 和 TPn_1 双沿输入捕捉
11:输入捕捉除能
定时 / 计数器模式
未使用
此两位用于决定在一定条件达到时 TM 输出脚如何改变状态。这两位值的选择
决定 TM 运行在哪种模式下。
在比较匹配输出模式下,TnIO1 和 TnIO0 位决定当从比较器 A 比较匹配输出发
生时 TM 输出脚如何改变状态。当从比较器 A 比较匹配输出发生时 TM 输出脚
能设为切换高、切换低或翻转当前状态。若此两位同时为 0 时,这个输出将不
会改变。TM 输出脚的初始值通过 TMnC1 寄存器的 TnOC 位设置取得。注意,
由 TnIO1 和 TnIO0 位得到的输出电平必须与通过 TnOC 位设置的初始值不同,
否则当比较匹配发生时,TM 输出脚将不会发生变化。在 TM 输出脚改变状态后,
通过 TnON 位由低到高电平的转换复位至初始值。
在 PWM 模式,TnIO1 和 TnIO0 用于决定比较匹配条件发生时怎样改变 TM 输
出脚的状态。PWM 输出功能通过这两位的变化进行更新。仅在 TMn 关闭时改
变 TnIO1 和 TnIO0 位的值是很有必要的。若在 TM 运行时改变 TnIO1 和 TnIO0
的值,PWM 输出的值是无法预料的。
92
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Bit 3
TnOC:TPn_0 和 TPn_1 输出控制位
比较匹配输出模式
0:初始低
1:初始高
PWM 模式 / 单脉冲输出模式
0:低有效
1:高有效
这是 TM 输出脚输出控制位。它取决于 TM 此时正运行于比较匹配输出模式还
是 PWM 模式 / 单脉冲输出模式。若 TM 处于定时 / 计数器模式,则其不受影响。
在比较匹配输出模式时,比较匹配发生前其决定 TM 输出脚的逻辑电平值。在
PWM 模式时,其决定 PWM 信号是高有效还是低有效。
Bit 2
TnPOL:TPn_0 和 TPn_1 输出极性控制位
0:同相
1:反相
此位控制 TPn_0 和 TPn_1 输出脚的极性。此位为高时 TM 输出脚反相,为低时
TM 输出脚同相。若 TM 处于定时 / 计数器模式时其不受影响。
Bit 1
TnCAPTS:选择 TMn 捕捉触发源
0:来自 TPn_0,TPn_1 引脚
1:来自 TCKn 引脚
Bit 0
TnCCLR:选择 TMn 计数器清零条件位
0:TMn 比较器 P 匹配
1:TMn 比较器 A 匹配
此位用于选择清除计数器的方法。周期型 TM 包括两个比较器 -- 比较器 A 和比较
器 P,两者都可以用作清除内部计数器。TnCCLR 位设为高,计数器在比较器 A
比较匹配发生时被清除;此位设为低,计数器在比较器 P 比较匹配发生或计数
器溢出时被清除。计数器溢出清除的方法仅在 CCRP 被清除为 0 时才能生效。
TnCCLR 位在 PWM 模式,单脉冲或输入捕捉模式时未使用。
TMnDL 寄存器
Bit
Name
R/W
POR
Bit 7 ~ 0
7
D7
R
0
6
D6
R
0
5
D5
R
0
4
D4
R
0
3
D3
R
0
2
D2
R
0
1
D1
R
0
0
D0
R
0
2
—
—
—
1
D9
R
0
0
D8
R
0
TMnDL:TMn 计数器低字节寄存器 bit 7~bit 0
TMn 10-bit 计数器 bit 7 ~ bit 0
TMnDH 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
—
—
—
4
—
—
—
3
—
—
—
Bit 7 ~ 2
未定义,读为“0”
Bit 1 ~ 0
TMnDH:TMn 计数器高字节寄存器 bit 1~bit 0
TMn 10-bit 计数器 bit 9~bit 8
93
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TMnAL 寄存器
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
2
—
—
—
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
2
—
—
—
1
D9
R/W
0
0
D8
R/W
0
TMnAL:TMn CCRA 低字节寄存器 bit 7~bit 0
TMn 10-bit CCRA bit 7 ~ bit 0
TMnAH 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
—
—
—
4
—
—
—
3
—
—
—
Bit 7 ~ 2
未定义,读为“0”
Bit 1 ~ 0
TMnAH:TMn CCRA 高字节寄存器 bit 1~bit 0
TMn 10-bit CCRA bit 9~bit 8
TMnRPL 寄存器
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
TMnRPL:TMn CCRP 低字节寄存器 bit 7~bit 0
TMn 10-bit CCRP bit 7~bit 0
TMnRPH 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
—
—
—
4
—
—
—
3
—
—
—
Bit 7 ~ 2
未定义,读为“0”
Bit 1 ~ 0
TMnRPH:TMn CCRP 高字节寄存器 bit 1~bit 0
TMn 10-bit CCRP bit 9~bit 8
94
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
周期型 TM 工作模式
周期型 TM 有五种工作模式,即比较匹配输出模式、PWM 输出模式、单脉
冲输出模式、捕捉输入模式或定时 / 计数器模式。通过设置 TMnC1 寄存器的
TnM1 和 TnM0 位选择任意模式。
比较匹配输出模式
为使 TM 工作在此模式,TMnC1 寄存器的 TnM1 和 TnM0 位需要设置为“00”。
当工作在该模式,一旦计数器使能并开始计数,有三种方法来清零,分别是:
计数器溢出,比较器 A 比较匹配发生和比较器 P 比较匹配发生。当 TnCCLR
位为低,有两种方法清除计数器。一种是比较器 P 比较匹配发生,另一种是
CCRP 所有位设置为零并使得计数器溢出。此时,比较器 A 和比较器 P 的请求
标志位 TnAF 和 TnPF 将分别置起。
如果 TMnC1 寄存器的 TnCCLR 位设置为高,当比较器 A 比较匹配发生时计数
器被清零。此时,即使 CCRP 寄存器的值小于 CCRA 寄存器的值,仅 TnAF 中
断请求标志产生。所以当 TnCCLR 为高时,不会产生 TnPF 中断请求标志。在
比较匹配输出模式中,CCRA 寄存器值不能设为“0”。
正如该模式名所言,当比较匹配发生后,TM 输出脚状态改变。当比较器 A 比
较匹配发生后 TnAF 中断请求标志产生时,TM 输出脚状态改变。比较器 P 比
较匹配发生时产生的 TnPF 标志不影响 TM 输出脚。TM 输出脚状态改变方式
由 TMnC1 寄存器中 TnIO1 和 TnIO0 位决定。当比较器 A 比较匹配发生时,
TnIO1 和 TnIO0 位决定 TM 输出脚输出高,低或翻转当前状态。TM 输出脚初
始值,既可以通过 TnON 位由低到高电平的变化设置,也可以由 TnOC 设置。
注意,若 TnIO1 和 TnIO0 位同时为 0 时,引脚输出不变。
Rev.1.30
95
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
Counter overflow
CCRP=0
0x3FF
TnCCLR = 0; TnM [1:0] = 00
CCRP > 0
Counter cleared by CCRP value
CCRP > 0
Counter
Restart
Resume
CCRP
Pause
CCRA
Stop
Time
TnON
TnPAU
TnPOL
CCRP Int.
Flag TnPF
CCRA Int.
Flag TnAF
TM O/P Pin
Output pin set to
initial Level Low
if TnOC=0
Output not affected by TnAF
flag. Remains High until reset
by TnON bit
Output Toggle with
TnAF flag
Here TnIO [1:0] = 11
Toggle Output select
Note TnIO [1:0] = 10
Active High Output select
Output Inverts
when TnPOL is high
Output Pin
Reset to Initial value
Output controlled by
other pin-shared function
比较器匹配输出模式 – TnCCLR = 0
注:1. TnCCLR=0,比较器 P 匹配将清除计数器
2. TM 输出脚仅由 TnAF 标志位控制
3. 在 TnON 上升沿 TM 输出脚复位至初始值
4. n=1~3
Rev.1.30
96
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnCCLR = 1; TnM [1:0] = 00
CCRA = 0
Counter overflow
CCRA > 0 Counter cleared by CCRA value
0x3FF
CCRA=0
Resume
CCRA
Pause
Stop
Counter Restart
CCRP
Time
TnON
TnPAU
TnPOL
No TnAF flag
generated on
CCRA overflow
CCRA Int.
Flag TnAF
CCRP Int.
Flag TnPF
TnPF not
generated
Output does
not change
TM O/P Pin
Output pin set to
initial Level Low
if TnOC=0
Output not affected by
TnAF flag. Remains High
until reset by TnON bit
Output Toggle with
TnAF flag
Here TnIO [1:0] = 11
Toggle Output select
Note TnIO [1:0] = 10
Active High Output select
Output Inverts
when TnPOL is high
Output Pin
Reset to Initial value
Output controlled by
other pin-shared function
比较器匹配输出模式 – TnCCLR = 1
注:1. TnCCLR=1,比较器 P 匹配将清除计数器
2. TM 输出脚仅由 TnAF 标志位控制
3. 在 TnON 上升沿 TM 输出脚复位至初始值
4. 当 TnCCLR=1 时,不会产生 TnPF 标志
5. n=1~3
Rev.1.30
97
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
定时 / 计数器模式
为使 TM 工作在此模式,TMnC1 寄存器的 TnM1 和 TnM0 位需要设置为“11”。
定时 / 计数器模式与比较输出模式操作方式相同,并产生同样的中断请求标志。
不同的是,在定时 / 计数器模式下 TM 输出脚未使用。因此,比较匹配输出模
式中的描述和时序图可以适用于此功能。该模式中未使用的 TM 输出脚用作普
通 I/O 脚或其它功能。
PWM 输出模式
为使 TM 工作在此模式,TMnC1 寄存器的 TnM1 和 TnM0 位需要设置为“10”,
且 TnIO1 和 TnIO0 位也需要设置为“10”。TM 的 PWM 功能在马达控制,加
热控制,照明控制等方面十分有用。给 TM 输出脚提供一个频率固定但占空比
可调的信号,将产生一个有效值等于 DC 均方根的 AC 方波。
由于 PWM 波形的周期和占空比可调,其波形的选择就较为灵活。在 PWM 模
式 中,TnCCLR 位 对 PWM 周 期 无 影 响。CCRP 和 CCRA 寄 存 器 都 用 于 控 制
PWM 方波。CCRP 寄存器通过清除内部计数从而控制 PWM 周期,CCRA 寄存
器设置 PWM 的占空比。PWM 波形的周期和占空比由 CCRP 和 CCRA 寄存器
的值控制。
当比较器 A 或比较器 P 比较匹配发生时,CCRA 和 CCRP 中断标志位分别产
生。TMnC1 寄存器的 TnOC 位选择 PWM 波形的极性,TnIO1 和 TnIO0 位使能
PWM 输出或强制 TM 输出脚为高电平或低电平。TnPOL 位用于 PWM 输出波
形的极性反相控制。
● 10-bit PTM,PWM 模式
CCRP
周期
占空比
1~1023
1~1023
0
1024
CCRA
若 fSYS=30MHz,TM 时钟源选择 fH,CCRP=200 且 CCRA=50,
PTM PWM 输出频率 =fH/200=150kHz,duty=50/100=25%,
若由 CCRA 寄存器定义的 Duty 值等于或大于 Period 值,PWM 输出占空比为
100%。
Rev.1.30
98
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnDPX=0; TnM [1:0] = 10
Counter cleared
by CCRP
Counter Reset when
TnON returns high
CCRP
Pause Resume
CCRA
Counter Stop if
TnON bit low
Time
TnON
TnPAU
TnPOL
CCRA Int.
Flag TnAF
CCRP Int.
Flag TnPF
TM O/P Pin
(TnOC=1)
TM O/P Pin
(TnOC=0)
PWM Duty Cycle
set by CCRA
PWM Period
set by CCRP
PWM resumes
operation
Output controlled by
Output Inverts
other pin-shared function
when TnPOL = 1
PWM 模式
注:1. CCRP 清除计数器
2. 计数器清除并决定 PWM 周期
3. 当 TnIO[1:0]=00 或 01,PWM 功能不变
4. TnCCLR 位对 PWM 功能无影响
5. n=1~3
Rev.1.30
99
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
单脉冲输出模式
为 使 TM 工 作 在 此 模 式,TnM1 和 TnM0 位 需 要 设 置 为“10”, 并 且 相 应 的
TnIO1 和 TnIO0 需要设置为“11”。正如模式名所言,单脉冲输出模式,在
TM 输出脚将产生一个脉冲输出。
通过应用程序控制 TnON 位由低到高的转变来触发脉冲前沿输出。而处于单脉
冲模式时,TnON 位可由 TCKn 脚自动由低转变为高,进而依次初始化单脉冲
输出。当 TnON 位转变为高电平时,计数器将开始运行,并产生脉冲前沿。通
过应用程序使 TnON 位清零或比较器 A 比较匹配发生时,产生脉冲下降沿。
而比较器 A 比较匹配发生时,会自动清除 TnON 位并产生单脉冲输出下降沿。
CCRA 的值通过这种方式控制脉冲宽度。比较器 A 比较匹配发生时,也会产生
TM 中断。TnON 位在计数器重启时会发生由低到高的转变,此时计数器才复位
至零。在单脉冲模式中,CCRP 寄存器和 TnCCLR 位未使用。
单脉冲产生示意图 (n=1~3)
Rev.1.30
100
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnM [1:0] = 10 ; TnIO [1:0] = 11
Counter stopped
by CCRA
Counter Reset when
TnON returns high
CCRA
Pause
Counter Stops
by software
Resume
CCRP
Time
TnON
Software
Trigger
Auto. set by
TCKn pin
Cleared by
CCRA match
TCKn pin
Software
Trigger
Software
Trigger
Software
Software Trigger
Clear
TCKn pin
Trigger
TnPAU
TnPOL
CCRP Int.
Flag TnPF
No CCRP Interrupts
generated
CCRA Int.
Flag TnAF
TM O/P Pin
(TnOC=1)
TM O/P Pin
(TnOC=0)
Output Inverts
when TnPOL = 1
Pulse Width
set by CCRA
单脉冲模式
注:1. 通过 CCRA 匹配停止计数器
2. CCRP 未使用
3. 通过 TCKn 脚或设置 TnON 位为高来触发脉冲
4. TCKn 脚有效沿会自动置位 TnON
5. 单脉冲模式中,TnIO[1:0] 需置位“11”,且不能更改。
6. n=1~3
Rev.1.30
101
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
捕捉输入模式
为使 TM 工作在此模式,TMnC1 寄存器的 TnM1 和 TnM0 位需要设置为“01”。
此模式使能外部信号捕捉并保存内部计数器当前值,因此被用于诸如脉冲宽度
测量的应用中。TPn_0,TPn_1 或 TCKn 引脚上的外部信号,通过设置 TMnC1
寄存器的 TnCAPTS 位选择。可通过设置 TMnC1 寄存器的 TnIO1 和 TnIO0 位
选择有效边沿类型,即上升沿,下降沿或双沿有效。计数器在 TnON 位由低到
高转变时启动并通过应用程序初始化。
当 TPn_0,TPn_1 或 TCKn 引脚出现有效边沿转换时,计数器当前值被锁存到
CCRA 寄存器,并产生 TM 中断。不考虑 TPn_0,TPn_1 或 TCKn 引脚事件,
计数器继续工作直到 TnON 位发生下降沿跳变。当 CCRP 比较匹配发生时计数
器复位至零;CCRP 的值通过这种方式控制计数器的最大值。当比较器 P CCRP
比较匹配发生时,也会产生 TM 中断。记录 CCRP 溢出中断信号的值可以测量
长脉宽。通过设置 TnIO1 和 TnIO0 位选择 TPn_0,TPn_1 或 TCKn 引脚为上升沿,
下降沿或双沿有效。不考虑 TPn_0,TPn_1 或 TCKn 引脚事件,如果 TnIO1 和
TnIO0 位都设为高,不会产生捕捉操作,但计数器继续运行。
当 TPn_0,TPn_1 或 TCKn 引脚与其它功能共用,TM 工作在输入捕捉模式时
需多加注意。这是因为如果引脚被设为输出,那么该引脚上的任何电平转变都
可能执行输入捕捉操作。TnCCLR,TnOC 和 TnPOL 位在此模式中未使用。
Rev.1.30
102
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Counter Value
TnM [1:0] = 01
Counter cleared by
CCRP
Counter Counter
Stop
Reset
CCRP
YY
Pause
Resume
XX
Time
TnON
TnPAU
Active
edge
Active edge
Active edge
TM capture pin
TPn_x or TCKn
CCRA Int.
Flag TnAF
CCRP Int.
Flag TnPF
CCRA
Value
TnIO [1:0] Value
XX
00 – Rising edge
YY
XX
01 – Falling edge 10 – Both edges
YY
11 – Disable Capture
捕捉输入模式
注:1. TnM[1:0]=01 并通过 TnIO[1:0] 位设置有效边沿
2. TM 捕捉输入脚的有效边沿将计数器的值转移到 CCRA 中
3. TnCCLR 位未使用
4. 无输出功能 – TnOC 和 TnPOL 位未使用
5. 计数器值由 CCRP 决定,在 CCRP 为“0”时,计数器计数值可达最大
6. n=1~3
Rev.1.30
103
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
A/D 转换器
对于大多数电子系统而言,处理现实世界的模拟信号是共同的需求。为了完全
由单片机来处理这些信号,首先需要通过 A/D 转换器将模拟信号转换成数字信
号。将 A/D 转换器电路集成入单片机,可有效的减少外部器件,随之而来,具
有降低成本和减少器件空间需求的优势。
A/D 简介
此系列单片机都包含一个多通道的 A/D 转换器,它们可以直接接入外部模拟信
号 ( 来自传感器或其它控制信号 ) 并直接将这些信号转换成 12 位的数字量。
单片机
HT45F4N
输入通道
14
A/D 通道选择位
ACS4~ACS0
HT45FH4N
13
ACS4~ACS0
输入引脚
AN0~AN13
AN0~AN8,
AN10~AN13
注:HT45FH4N 单片机的 AN9 未连接到外部引脚。
外部输入通道
下图显示了 A/D 转换器内部结构和相关的寄存器。
注:HT45FH4N 单片机的 AN9 仅做作内部使用未连接到外部引脚。
A/D 转换器结构
Rev.1.30
104
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
A/D 转换寄存器介绍
A/D 转换器的所有工作由六个寄存器控制。一对只读寄存器来存放 12 位 ADC
数据的值。剩下四个控制寄存器设置 A/D 转换器的操作和控制功能。
寄存器名称
ADRL(ADRFS=0)
ADRL(ADRFS=1)
ADRH(ADRFS=0)
ADRH(ADRFS=1)
ADCR0
ADCR1
ACERL
ACERH
位
7
6
5
4
D3
D2
D1
D0
D7
D6
D5
D4
D11
D10
D9
D8
—
—
—
—
START EOCB ADOFF ADRFS
ACS4 VBGEN
—
VREFS
ACE7 ACE6
ACE5
ACE4
—
—
ACE13 ACE12
3
2
1
0
—
—
—
—
D3
D2
D1
D0
D7
D6
D5
D4
D11
D10
D9
D8
ACS3
ACS2
ACS1
ACS0
—
ADCK2 ADCK1 ADCK0
ACE3
ACE2
ACE1
ACE0
ACE11 ACE10 ACE9
ACE8
A/D 转换寄存器列表
A/D 转换器数据寄存器 – ADRL,ADRH
对于具有 12 位 A/D 转换器的单片机,需要两个数据寄存器存放转换结果,一
个高字节寄存器 ADRH 和一个低字节寄存器 ADRL。在 A/D 转换完毕后,单
片机可以直接读取这些寄存器以获得转换结果。由于寄存器只使用了 16 位中
的 12 位,其数据存储格式由 ADCR0 寄存器的 ADRFS 位控制,如下表所示。
D0~D11 是 A/D 换转数据结果位。未使用的位读为“0”。
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,ACERH
寄存器 ADCR0、ADCR1、ACERL 和 ACERH 用来控制 A/D 转换器的功能和操
作。这些 8 位的寄存器定义包括选择连接至内部 A/D 转换器的模拟通道,数字
化数据格式,A/D 时钟源,并控制和监视 A/D 转换器的开始和转换结束状态。
寄存器 ADCR0 的 ACS3~ACS0 位和 ADCR1 的 ACS4 位定义 A/D 转换器输入
通道编号。由于每个单片机只包含一个实际的模数转换电路,因此这 14 个模拟
输入中的每一个都需要分别被发送到转换器。ACS4~ACS0 位的功能决定选择
哪个模拟输入通道或內部 1.25V 被连接到内部 A/D 转换器。
ACERL 和 ACERH 控制寄存器中的 ACE13~ACE0 位,用来定义 PA 口中的哪些
引脚为 A/D 转换器的模拟输入,哪些引脚不作为 A/D 转换输入。相应位设为高
将选择 A/D 输入功能,清零将选择 I/O 或其它引脚共用功能。当引脚作为 A/D
输入时,其原来的 I/O 或其它引脚共用功能消失,此外,其内部上拉电阻也将
自动断开。
Rev.1.30
105
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
● ADCR0 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
START
R/W
0
6
EOCB
R
1
5
4
ADOFF ADRFS
R/W
R/W
1
0
3
ACS3
R/W
0
2
ACS2
R/W
0
1
ACS1
R/W
0
0
ACS0
R/W
0
Bit 7
START:启动 A/D 转换位
0→1→0:启动
0→1:重置 A/D 转换,并且设置 EOCB 为“1”
此位用于初始化 A/D 转换过程。通常此位为低,但如果设为高再被清零,将初
始化 A/D 转换过程。当此位为高,将重置 A/D 转换器。
Bit 6
EOCB:A/D 转换结束标志
0:A/D 转换结束
1:A/D 转换中
此位用于表明 A/D 转换过程的完成。当转换正在进行时,此位为高。
Bit 5
ADOFF :ADC 模块电源开 / 关控制位
0:ADC 模块电源开
1:ADC 模块电源关
此位控制 A/D 内部功能的电源。该位被清零将使能 A/D 转换器。如果该位设为
高将关闭 A/D 转换器以降低功耗。由于 A/D 转换器在不执行转换动作时都会产
生一定的功耗,所以这在电源敏感的电池应用中需要多加注意。
注:1. 建议在进入空闲 / 休眠模式前,设置 ADOFF=1 以减少功耗。
2. ADOFF=1 将关闭 ADC 模块的电源。
Bit 4
ADRFS:ADC 数据格式控制位
0:ADC 数据高字节是 ADRH 的 bit 7~bit 0,低字节是 ADRL 的 bit 7~bit 4
1:ADC 数据高字节是 ADRH 的 bit 3~bit 0,低字节是 ADRL 的 bit 7~bit 0
此位控制存放在两个 A/D 数据寄存器中的 12 位 A/D 转换结果的格式。细节方
面请参考 A/D 数据寄存器章节。
Bit 3 ~ 0
ACS3 ~ ACS0:选择 A/D 通道 (ACS4 为“0”) 位
0000:AN0
0001:AN1
0010:AN2
0011:AN3
0100:AN4
0101:AN5
0110:AN6
0111:AN7
1000:AN8 ( 源自 OPA 输出用于 OCP )
1001:AN9 – 仅存在于 HT45F4N
1010:AN10
1011:AN11
1100:AN12
1101:AN13
1110:AN14 (OCP0 OPA 输出 )
1111:AN15 (OCP1 OPA 输出 )
这四位是 A/D 通道选择控制位。由于只包含一个内部 A/D 转换电路,因此通过
这些位将 A/D 输入连接到转换器。如果 ADCR1 寄存器中的 ACS4 设为高,内
部 1.25V 电路将被连接到内部 A/D 转换器。
106
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
● ADCR1 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
ACS4
R/W
0
6
VBGEN
R/W
0
5
—
—
—
4
VREFS
R/W
0
3
—
—
—
2
1
0
ADCK2 ADCK1 ADCK0
R/W
R/W
R/W
0
0
0
Bit 7
ACS4:选择内部 1.25V 作为 ADC 输入控制位
0:除能
1:使能
此位使能 1.25V 连接到 A/D 转换器。VBGEN 位必须先被置位使能 1.25V 电压
能隙电路被用于 A/D 转换器。当 ACS4 设为高,1.25V 带隙电压将连接到 A/D
转换器,其它 A/D 输入通道断开。
Bit 6
VBGEN:内部 1.25V 控制位
0:除能
1:使能
此位控制连接到 A/D 转换器的内部充电泵电路开 / 关功能。当此位设为高,带
隙电压 1.25V 连接至 A/D 转换器。如果 1.25V 未连接至 A/D 转换器且 LVR/LVD
除能,带隙参考电压电路自动关闭以减少功耗。当 1.25V 打开连接至 A/D 转换
器,在 A/D 转换动作执行前,带隙电路稳定需一段时间 tBG。
Bit 5
未定义,读为“0”
Bit 4
VREFS:选择 ADC 参考电压
0:内部 ADC 电源
1:VREF 引脚
此位用于选择 A/D 转换器的参考电压。如果该位设为高,A/D 转换器参考电压
来源于外部 VREF 引脚。如果该位设为低,内部参考电压来源于电源电压 VDD
引脚。
Bit 3
未定义,读为“0”
Bit 2 ~ 0
ADCK2 ~ ADCK0:选择 ADC 时钟源
000:fSYS
001:fSYS/2
010:fSYS/4
011:fSYS/8
100:fSYS/16
101:fSYS/32
110:fSYS/64
111:未定义
这三位用于选择 A/D 转换器的时钟源。
107
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
● ACERL 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
ACE7
R/W
1
6
ACE6
R/W
1
5
ACE5
R/W
1
4
ACE4
R/W
1
3
ACE3
R/W
1
Bit 7
ACE7:定义 PC2 是否为 OUVP02,A/D 输入
0:不是 OUVP02 和 A/D 输入
1:OUVP02 或 ( 和 ) A/D 输入,AN7
Bit 6
ACE6:定义 PC1 是否为 OUVP01,A/D 输入
0:不是 OUVP01 和 A/D 输入
1:OUVP01 或 ( 和 ) A/D 输入,AN6
Bit 5
ACE5:定义 PC0 是否为 OUVP00,A/D 输入
0:不是 OUVP00 和 A/D 输入
1:OUVP00 或 ( 和 ) A/D 输入,AN5
Bit 4
ACE4:定义 PA7 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN4
Bit 3
ACE3:定义 PA6 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN3
Bit 2
ACE2:定义 PA2 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN2
Bit 1
ACE1:定义 PA1 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN1
Bit 0
ACE0:定义 PA0 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN0
108
2
ACE2
R/W
1
1
ACE1
R/W
1
0
ACE0
R/W
1
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
● ACERH 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
4
ACE13 ACE12
R/W
R/W
1
1
3
ACE11
R/W
1
Bit 7~ 6
未定义,读为“0”
Bit 5
ACE13:定义 PD5 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN13
Bit 4
ACE12:定义 PD4 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN12
Bit 3
ACE11:定义 PD3 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN11
Bit 2
ACE10:定义 PD2 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN10
Bit 1
ACE9:定义 PD1 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN9
HT45FH4N 单片机的 AN9 未连接到外部引脚
Bit 0
ACE8:定义 PD0 是否为 A/D 输入
0:不是 A/D 输入
1:A/D 输入,AN8
2
ACE10
R/W
1
1
ACE9
R/W
1
0
ACE8
R/W
1
A/D 操作
ADCR0 寄 存 器 中 的 START 位, 用 于 打 开 和 复 位 A/D 转 换 器。 当 单 片 机 设
定此位从逻辑低到逻辑高,然后再到逻辑低,就会开始一个模数转换周期。
当 START 位从逻辑低到逻辑高,但不再回到逻辑低时,ADCR0 寄存器中的
EOCB 位置“1”,复位模数转换器。START 位用于控制内部模数转换器的开
启动作。
ADCR0 寄存器中的 EOCB 位用于表明模数转换过程的完成。在转换周期结束
后,EOCB 位会被单片机自动地置为“0”。此外,也会置位中断控制寄存器内
相应的 A/D 中断请求标志位,如果中断使能,就会产生对应的内部中断信号。
A/D 内部中断信号将引导程序到相应的 A/D 内部中断入口。如果 A/D 内部中断
被禁止,可以让单片机轮询 ADCR0 寄存器中的 EOCB 位,检查此位是否被清
除,以作为另一种侦测 A/D 转换周期结束的方法。
A/D 转换器的时钟源为系统时钟 fSYS 或其分频,而分频系数由 ADCR1 寄存器
中的 ADCK2~ADCK0 位决定。
虽然 A/D 时钟源是由系统时钟 fSYS 和 ADCK2~ADCK0 位决定,但可选择的最
大 A/D 时钟源则有一些限制。由于允许的 A/D 时钟周期 tADCK 的范围为 0.5µs
~10µs,所以选择系统时钟速度时就必须小心。如果系统时钟速度为 4MHz 时,
ADCK2~ADCK0 位不能设为“000”或“110”。必须保证设定的 A/D 转换时
钟周期不小于时钟周期的最小值或大于时钟周期的最大值,否则将会产生不准
确的 A/D 转换值。使用者可以参考下面的表格,被标上星号 * 的数值是不允许
的,因为它们的 A/D 转换时钟周期不在规定的范围内。
Rev.1.30
109
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
A/D 时钟周期 (tADCK)
ADCK2, ADCK2, ADCK2, ADCK2, ADCK2,
ADCK1, ADCK1, ADCK1, ADCK1, ADCK1,
fSYS
ADCK0 ADCK0 ADCK0 ADCK0 ADCK0
=000
=001
=010
=011
=100
(fSYS)
(fSYS/2)
(fSYS/4)
(fSYS/8)
(fSYS/16)
1MHz
1μs
2μs
4μs
8μs
16μs*
2MHz
500ns
1μs
2μs
4μs
8μs
4MHz 250ns*
500ns
1μs
2μs
4μs
8MHz 125ns*
250ns*
500ns
1μs
2μs
12MHz 83ns*
167ns*
333ns*
667ns
1.33μs
ADCK2,
ADCK1,
ADCK0
=101
(fSYS/32)
32μs*
16μs*
8μs
4μs
2.67μs
ADCK2,
ADCK1,
ADCK0
=110
(fSYS/64)
64μs*
32μs*
16μs*
8μs
5.33μs
ADCK2,
ADCK1,
ADCK0
=111
未定义
未定义
未定义
未定义
未定义
A/D 时钟周期范例
ADCR0 寄 存 器 的 ADOFF 位 用 于 控 制 A/D 转 换 电 路 电 源 的 开 / 关。 该 位 必
须清零以开启 A/D 转换器电源。即使通过清除 ACERL 和 ACERH 寄存器的
ACE13~ACE0 位,选择无引脚作为 A/D 输入,如果 ADOFF 设为“0”,那么
仍然会产生功耗。因此当未使用 A/D 转换器功能时,在功耗敏感的应用中建议
设置 ADOFF 为高以减少功耗。
A/D 转换器参考电压来自正电源电压引脚 VDD 或外部参考源引脚 VREF,可通
过 VREFS 位来选择。由于 VREF 引脚与其它功能共用,当 VREFS 设为高,选
择 VREF 引脚功能且其它引脚功能将自动除能。
A/D 输入引脚
所 有 的 A/D 模 拟 输 入 引 脚 都 与 I/O 引 脚 及 其 它 功 能 共 用。 使 用 ACERL 和
ACERH 寄存器中的 ACE13~ACE0 位,可以将它们设置为 A/D 转换器模拟输入
脚或具有其它功能。如果引脚的对应位 ACE13~ACE0 设为高,那么该引脚作为
A/D 转换输入且原引脚功能除能。通过这种方式,引脚的功能可由程序来控制,
灵活地切换引脚功能。如果将引脚设为 A/D 输入,则通过寄存器编程设置的所
有上拉电阻会自动断开。请注意,I/O 端口控制寄存器不需要为使能 A/D 输入
而先设定为输入模式,当 ACE13~ACE0 位使能 A/D 输入时,端口控制寄存器
的状态将被重置。注意,HT45FH4N 单片机的 AN9 未连接到外部引脚。
A/D 转 换 器 有 自 己 的 参 考 电 压 引 脚 VREF, 而 通 过 设 置 ADCR1 寄 存 器 的
VREFS 位,参考电压也可以选择来自电源电压引脚。模拟输入值一定不能超过
VREF 值。
A/D 输入结构
Rev.1.30
110
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
A/D 转换步骤
下面概述实现 A/D 转换过程的各个步骤。
● 步骤 1
通过 ADCR1 寄存器中的 ADCK2~ADCK0 位,选择所需的 A/D 转换时钟。
● 步骤 2
清零 ADCR0 寄存器中的 ADOFF 位使能 A/D。
● 步骤 3
通过 ADCR0 寄存器中的 ACS3~ACS0 位和 ADCR1 寄存器中的 ACS4,选择
连接至内部 A/D 转换器的通道。
● 步骤 4
通过 ACERL 和 ACERH 寄存器中的 ACE13~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 转换时间为 16tADCK,tADCK 为 A/D 时钟周期。
A/D 转换时序图
Rev.1.30
111
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
编程注意事项
在编程时,如果 A/D 转换器未使用,通过设置 ADCR0 寄存器中的 ADOFF 为高,
关闭 A/D 内部电路以减少电源功耗。此时,不考虑输入脚的模拟电压,内部 A/D
转换器电路不产生功耗。如果 A/D 转换器输入脚用作普通 I/O 脚,必须特别注
意,输入电压为无效逻辑电平也可能增加功耗。
A/D 转换功能
单片机含有一组 12 位的 A/D 转换器,它们转换的最大值可达 FFFH。由于模拟
输入最大值等于 VDD 或 VREF 的电压值,因此每一位可表示 (VDD 或 VREF)/4096
的模拟输入值。
1 LSB = (VDD 或 VREF) ÷ 4096
通过下面的等式可估算 A/D 转换器输入电压值:
A/D 输入电压 = A/D 数字输出值 × (VDD 或 VREF) ÷ 4096
下图显示 A/D 转换器模拟输入值和数字输出值之间理想的转换功能。除了数字
化数值 0,其后的数字化数值会在精确点之前的 0.5 LSB 处改变,而数字化数
值的最大值将在 VDD 或 VREF 之前的 1.5 LSB 处改变。
理想的 A/D 转换功能
Rev.1.30
112
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
A/D 转换应用范例
下面两个范例程序用来说明怎样使用 A/D 转换。第一个范例是轮询 ADCR0 寄
存器中的 EOCB 位来判断 A/D 转换是否完成;第二个范例则使用中断的方式判
断。
范例:使用查询 EOCB 的方式来检测转换结束
clr ADE
mov a,03H
mov ADCR1,a
clr ADOFF
mov a,0Fh
mov ACERL,a
mov a,00h
mov ACERH, a
mov a,01h
mov ADCR0,a
:
start_conversion:
clr START
set START
clr START
polling_EOC:
sz EOCB
jmp polling_EOC
mov a,ADRL
mov ADRL_buffer,a
mov a,ADRH
mov ADRH_buffer,a
:
:
jmp start_conversion
Rev.1.30
; disable ADC interrupt
; select fSYS/8 as A/D clock and switch off 1.25V
; setup ACERL to configure pins AN0~AN3
; enable and connect AN0 channel to A/D converter
; high pulse on start bit to initiate conversion
; reset A/D
; start A/D
;
;
;
;
;
;
;
poll the ADCR0 register EOCB bit to detect end
of A/D conversion
continue polling
read low byte conversion result value
save result to user defined register
read high byte conversion result value
save result to user defined register
; start next a/d conversion
113
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
范例:使用中断的方式来检测转换结束
clr ADE
mov a,03H
mov ADCR1,a
Clr ADOFF
mov a,0Fh
mov ACERL,a
mov a,00h
mov ACERH, a
mov a,01h
mov ADCR0,a
Start_conversion:
clr START
set START
clr START
clr ADF
set ADE
set EMI
:
:
ADC_ISR:
mov acc_stack,a
mov a,STATUS
mov status_stack,a
:
:
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.30
; disable ADC interrupt
; select fSYS/8 as A/D clock and switch off 1.25V
; setup ACERL to configure pins AN0~AN3
; enable and connect AN0 channel to A/D converter
;
;
;
;
;
;
high pulse on START bit to initiate conversion
reset A/D
start A/D
clear ADC interrupt request flag
enable ADC interrupt
enable global interrupt
; ADC interrupt service routine
; save ACC to user defined memory
; save STATUS to user defined memory
;
;
;
;
read
save
read
save
low byte conversion result value
result to user defined register
high byte conversion result value
result to user defined register
; restore STATUS from user defined memory
; restore ACC from user defined memory
114
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
互补式 PWM 输出
该系列单片机提供两对源自 TM1 的 TP1 或 TM2 的 TP2 互补式输出,可用作
PWM 驱动信号。对于 PMOS 型上侧驱动,PWM 输出为低电平有效,而对于
NMOS 型下侧驱动,PWM 输出为高电平有效。当这对互补式 PWM 输出同时
用于上侧和下侧驱动时,死区时间发生器将自动使能,且插入一死区时间以防
止直流电流过大,该死区时间可通过 CPRn 寄存器的 DTPSCn[1:0] 和 DTn[2:0]
位来定义。在每个死区时间发生器输入信号的上升沿时插入一个死区时间。经
过插入的死区时间后,输出信号最终发送至外部功率晶体管。只有同时使用
互补式输出时,死区时间发生器才被使能。互补式输出是否同时使用可通过
TMPCn 寄存器的 OUTnCP[1:0] 位来决定。
A
TP1 or TP2
B
fH
Prescaler
DTPSCn [1:0]
C
Dead Time
Generator
E
D
PWMnH
(driving upper side PMOS, active low)
PWMnL
(driving lower side NMOS, active high)
fD
DTn [2:0]
OUTnCP [1:0]
互补式 PWM 输出方框图
TP1 or TP2
A
B
C
Dead
Time
Dead
Time
D
Dead
Time
Dead
Time
Dead
Time
E
Dead
Time
互补式 PWM 输出波形
Rev.1.30
115
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
CPR0 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
—
—
—
4
3
DTPSC01 DTPSC00
R/W
R/W
0
0
Bit 7 ~ 5
未定义,读为“0”
Bit 4 ~ 3
DTPSC01~DTPSC00:死区时间时钟源分频比选择
00:fD=fH/1
01:fD=fH/2
10:fD=fH/4
11:fD=fH/8
Bit 2 ~ 0
DT02~DT00:死区时间选择
000:死区时间 = [(1/fD)-(1/fH)] ~ (1/fD)
001:死区时间 = [(2/fD)-(1/fH)] ~ (2/fD)
010:死区时间 = [(3/fD)-(1/fH)] ~ (3/fD)
011:死区时间 = [(4/fD)-(1/fH)] ~ (4/fD)
100:死区时间 = [(5/fD)-(1/fH)] ~ (5/fD)
101:死区时间 = [(6/fD)-(1/fH)] ~ (6/fD)
110:死区时间 = [(7/fD)-(1/fH)] ~ (7/fD)
111:死区时间 = [(8/fD)-(1/fH)] ~ (8/fD)
2
DT02
R/W
0
1
DT01
R/W
0
0
DT00
R/W
0
2
DT12
R/W
0
1
DT11
R/W
0
0
DT10
R/W
0
CPR1 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
—
—
—
4
3
DTPSC11 DTPSC10
R/W
R/W
0
0
Bit 7 ~ 5
未定义,读为 “0”
Bit 4 ~ 3
DTPSC11~DTPSC10:死区时间时钟源分频比选择
00:fD=fH/1
01:fD=fH/2
10:fD=fH/4
11:fD=fH/8
Bit 2 ~ 0
DT12~DT10:死区时间选择
000:死区时间 = [(1/fD)-(1/fH)] ~ (1/fD)
001:死区时间 = [(2/fD)-(1/fH)] ~ (2/fD)
010:死区时间 = [(3/fD)-(1/fH)] ~ (3/fD)
011:死区时间 = [(4/fD)-(1/fH)] ~ (4/fD)
100:死区时间 = [(5/fD)-(1/fH)] ~ (5/fD)
101:死区时间 = [(6/fD)-(1/fH)] ~ (6/fD)
110:死区时间 = [(7/fD)-(1/fH)] ~ (7/fD)
111:死区时间 = [(8/fD)-(1/fH)] ~ (8/fD)
116
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
过电流保护
该系列单片机中内建过流保护功能,为电池充电及放电安全应用提供了保障。
过电流保护功能
为防止电池电流或负载电流过大,应将 OCP 来自电池检测电阻的输入电压与
8-bit D/A 转换器的参考电压相比较。此 8-bit D/A 转换器由外部 DAPWR 引脚供
电。一旦 OCP 的电压大于参考电压,OUT0H 和 OUT0L 或 OUT1H 和 OUT1L
将被强制无效 ( 即控制极性前 OUT0H 或 OUT1H 强制为高电平,OUT0L 或
OUT1L 强制为低电平 ) 以关闭外部 MOS 管,从而达到保护的效果。
一旦发生过电流情况时,OUT0H 和 OUT0L 或 OUT1H 和 OUT1L 可被强制于无
效状态,同时系统将产生相应的中断。当过流情况消失时,OUT0H 和 OUT0L
或 OUT1H 和 OUT1L 脚将恢复至原来的状态以驱动 PWM 输出。
在电池充电或放电过程中,过电流保护电路的运算放大器可设置成同相 OPA 或
反相 OPA 来检测电池电流。建议在充电时 OPA 设置为同相模式,放电时为反
相模式。
更多关于 OUTnH 和 OUTnL 引脚的输出反相控制描述请参见 TMPCn 寄存器。
过流保护电路操作
OCP 是过流保护 (Over Current Protect) 的缩写。OCP 检测到的输入电压与要监
测的源电流成正比,如果输入电压大于 DAC 设置的参考电压,OCP 将会产生
一个输出信号表示源电流超过了规格。该部分电路如下图所示。
OCPnM1, OCPnM0
OCPnDA
fFLT=fH/4
8-bit DAC
OCP Input
Filter clock
G=1/5/10/15/20
S0
S1
C
Filter
OCPnO
A
S2
S3
R1
(R1=40K)
R2
To ADC
OCPnG2~OCPnG0
OCPnF2~OCPnF0
过电流保护方框图 (n = 0 或 1)
Rev.1.30
117
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
如上图所示,源电压从 OCPn0 或 OCPn1 输入,之后的四个模拟开关 S0~S3 用
于模式选择。一个运算放大器和两个电阻组成了一个 PGA 功能。选择 PGA 的
电压从正极或是负极输入,相应的可以产生正的或负的增益。DAC 主要是用于
产生一个参考电压,比较器可以将放大的输入电压与此参考电压进行比较,从
而产生比较器输出标志位 OCPnCX,再经滤波后输出 OCPnO,以及产生 OCP
中断。通过此输出位判断源电流是否过大超过了设定的参考值。OCPnO 位作为
OCP 输出位,是 OCP 中断的触发源。OCP 电路中的比较器也具有迟滞功能,
由 OCPnCHY 位控制。
需要注意的是,滤波器时钟 fELT=fH/4 是系统时钟。如果将 OPA 输出作为 ADC
的输入,则可以读出被放大的输入电压的值。DAC 输出电压的值由 OCPnDA
寄存器设置,DAC 的输出值被定义为:
DAC VOUT = (DAC VREF/256) × D[7:0]
输入电压范围
输入电压可以为正或负,结合 PGA 的工作模式,可以产生更灵活的应用。
(1) VIN > 0,PGA 同相模式,PGA 输出电压为:
VOPGA=(1+R2/R1) × VIN
(2) 若应用于校准确认使用,设置 PGA 工作于同相模式,可以产生单位增益缓
冲器功能。
如果 OCPnM [1:0]=10,OCPnG [2:0]=000,PGA 的增益选择为 1,则可配置
为单位增益缓冲器。开关 S1,S2 内部断开,PGA 的输出电压为:
VOPGA=VIN
(3) 0 > VIN > -0.4V,PGA 反相模式,PGA 输出电压为:
VOPGA=-(R2/R1) × VIN
注:如果 VIN 为负,其值不能再低于 -0.4V 以避免产生漏电流。
OCP 寄存器
过电流保护保护功能由多个寄存器控制。
寄存器
名称
OCP0C0
OCP0C1
OCP0DA
A0CAL
C0CAL
OCP1C0
OCP1C1
OCP1DA
A1CAL
C1CAL
OCPPC
位
7
OCP0M1
OCP0O
D7
A0OFM
OCP0CX
OCP1M1
OCP1O
D7
A1OFM
OCP1CX
—
6
OCP0M0
OCP0CHY
D6
A0RS
C0OFM
OCP1M0
OCP1CHY
D6
A1RS
C1OFM
—
5
OCP0PC1
OCP0G2
D5
A0OF5
C0RS
OCP1PC1
OCP1G2
D5
A1OF5
C1RS
OCP1RV
4
OCP0PC0
OCP0G1
D4
A0OF4
C0OF4
OCP1PC0
OCP1G1
D4
A1OF4
C1OF4
OCP0RV
3
OCP01LEN
OCP0G0
D3
A0OF3
C0OF3
OCP11LEN
OCP1G0
D3
A1OF3
C1OF3
OCP11C
2
OCP01HEN
OCP0F2
D2
A0OF2
C0OF2
OCP11HEN
OCP1F2
D2
A1OF2
C1OF2
OCP10C
1
OCP00LEN
OCP0F1
D1
A0OF1
C0OF1
OCP10LEN
OCP1F1
D1
A1OF1
C1OF1
OCP01C
0
OCP00HEN
OCP0F0
D0
A0OF0
C0OF0
OCP10HEN
OCP1F0
D0
A1OF0
C1OF0
OCP00C
OCP 寄存器列表
Rev.1.30
118
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OCPPC 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
4
3
2
1
0
OCP1RV OCP0RV OCP11C OCP10C OCP01C OCP00C
R/W
R/W
R/W
R/W
R/W
R/W
0
0
1
1
1
1
Bit 7~6
未定义,读为 “0”
Bit 5
OCP1RV:OCP1 DAC 参考电压选择位
0:AVDD
1:DAPWR
Bit4
OCP0RV:OCP0 DAC 参考电压选择位
0:AVDD
1:DAPWR
Bit3
OCP11C:定义 PC6 是否为 OCP11 输入
0:不是 OCP11 输入
1:模拟输入,OCP11
Bit 2
OCP10C:定义 PC5 是否为 OCP10 输入
0:不是 OCP10 输入
1:模拟输入,OCP10
Bit 1
OCP01C:定义 PC4 是否为 OCP01 输入
0:不是 OCP01 输入
1:模拟输入,OCP01
Bit 0
OCP00C:定义 PC3 是否为 OCP00 输入
0:不是 OCP00 输入
1:模拟输入,OCP00
119
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OCP0C0 寄存器
Bit
7
6
5
4
3
2
1
0
Name OCP0M1 OCP0M0 OCP0PC1 OCP0PC0 OCP01LEN OCP01HEN OCP00LEN OCP00HEN
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
POR
0
0
0
0
0
0
0
0
Rev.1.30
Bit 7~6
OCP0M1~OCP0M0:OCP0 工作模式选择位
00:OCP 0 除能,S1,S3 闭合,S0,S2 断开
01:OCP 0 使能为同相模式,S0,S3 闭合,S1,S2 断开
10:OCP 0 使能为反相模式,S1,S2 on,S0,S3 断开
11:OCP 0 使能为校准模式,S1,S3 闭合,S0,S2 断开
Bit 5~4
OCP0PC1~OCP0PC0:OCP0 输入引脚控制位
00:OCP0 输入除能
01:OCP0 输入除能
10:OCP00 引脚
11:OCP01 引脚
Bit 3
OCP01LEN:OCP0 OUT1L 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT1L 强制无效。
Bit 2
OCP01HEN:OCP0 OUT1H 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT1H 强制无效。
Bit 1
OCP00LEN:OCP0 OUT0L 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT0L 强制无效。
Bit 0
OCP00HEN:OCP0 OUT0H 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT0H 强制无效。
120
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OCP0C1 寄存器
Bit
7
6
5
4
3
2
1
0
Name OCP0O OCP0CHY OCP0G2 OCP0G1 OCP0G0 OCP0F2 OCP0F1 OCP0F0
R/W
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
×
POR
0
0
0
0
0
0
0
“×”为未知
Bit 7
OCP0O:OCP0 比较滤波后输出位
0:表示被监测源电流未超过限定值
1:表示被监测源电流超过限定值
Bit 6
OCP0CHY:OCP0 比较器的迟滞控制
0:除能
1:使能
Bit 5~3
OCP0G2~OCP0G0:OCP0 OPA 增益选择位
000:×1
001:×5
010:×10
011:×15
100:×20
101:×20
110:×20
111:×20
Bit 2~0
OCP0F2~OCP0F0:OCP0 解调滤波器选择位
000:0 tFLT ( 无滤波 )
001:1~2 × tFLT
010:3~4 × tFLT
011:7~8 × tFLT
100:15~16 × tFLT
101:31~32 × tFLT
110:63~64 × tFLT
111:127~128 × tFLT
注:fFLT=fH/4, tFLT=1/fFLT
OCP0DA 寄存器
Bit
Name
R/W
POR
Bit 7~0
Rev.1.30
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
OCP 0 DAC 数据寄存器 bit 7 ~ bit
8-bit DAC 数据位
OCP 0 DAC 输出 = (DAC 参考电压 ) × (DAC.7~0)/256
121
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
A0CAL 寄存器
Bit
Name
R/W
POR
7
A0OFM
R/W
0
6
A0RS
R/W
0
5
A0OF5
R/W
1
4
A0OF4
R/W
0
3
A0OF3
R/W
0
2
A0OF2
R/W
0
1
A0OF1
R/W
0
0
A0OF0
R/W
0
Bit 7
A0OFM:OCP0 运算放大器模式 / 输入失调电压校准模式选择位
0:运算放大器模式
1:输入失调电压校准模式
注:只有 OCP0M1~OCP0M0 位设置为“11”且 A0OFM 设置为 1 且 C0OFM 设
置为 0 才能进入 OCP0 运算放大器输入失调电压校准模式。
Bit 6
A0RS:OCP0 运算放大器输入失调电压校准参考电压输入脚选择位
0:运算放大器负输入脚
1:运算放大器正输入脚
Bit 5~0
A0OF5~A0OF0:OCP0 运算放大器输入失调电压校准设置
C0CAL 寄存器
Bit
7
6
Name OCP0CX C0OFM
R/W
R
R/W
×
POR
0
5
C0RS
R/W
0
4
C0OF4
R/W
1
3
C0OF3
R/W
0
2
C0OF2
R/W
0
1
C0OF1
R/W
0
0
C0OF0
R/W
0
“×”为未知
Rev.1.30
Bit 7
OCP0CX:OCP0 输入失调电压校准模式下比较器或运算放大器逻辑输出
0:正相输入电压 < 反向输入电压
1:正相输入电压 > 反向输入电压
Bit 6
C0OFM:OCP0 比较器模式 / 输入失调电压校准模式选择位
0:比较器模式
1:输入失调电压校准模式
注:只有 OCP0M1~OCP0M0 位设置为“11”且 A0OFM 设置为 0 且 C0OFM 设
置为 1 才能进入 OCP0 比较器输入失调电压校准模式。
Bit 5
C0RS:OCP0 比较器输入失调电压校准参考电压输入脚选择位
0:比较器负输入脚
1:比较器正输入脚
Bit 4~0
C0OF4~ C0OF0:OCP0 比较器输入失调电压校准设置
122
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OCP1C0 寄存器
Bit
7
6
5
4
3
2
1
0
Name OCP1M1 OCP1M0 OCP1PC1 OCP1PC0 OCP11LEN OCP11HEN OCP10LEN OCP10HEN
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
POR
0
0
0
0
0
0
0
0
Rev.1.30
Bit 7~6
OCP1M1~OCP1M0:OCP1 工作模式选择位
00:OCP1 除能,S1,S3 闭合,S0,S2 断开
01:OCP1 使能为同相模式,S0,S3 闭合,S1,S2 断开
10:OCP1 使能为反相模式,S1,S2 闭合,S0,S3 断开
11:OCP1 使能为校准模式,S1,S3 闭合,S0,S2 断开
Bit 5~4
OCP1PC1~OCP1PC0:OCP1 输入引脚控制位
00:OCP1 输入除能
01:OCP1 输入除能
10:OCP10 引脚
11:OCP11 引脚
Bit 3
OCP11LEN:OCP1 OUT1L 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT1L 强制无效。
Bit 2
OCP11HEN:OCP1 OUT1H 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT1H 强制无效。
Bit 1
OCP10LEN:OCP1 OUT0L 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT0L 强制无效。
Bit 0
OCP00HEN:OCP1 OUT0H 功能控制位
0:除能
1:使能
此位用来控制当过电流情况发生时是否将 OUT0H 强制无效。
123
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OCP1C1 寄存器
Bit
7
6
5
4
3
2
1
0
Name OCP1O OCP1CHY OCP1G2 OCP1G1 OCP1G0 OCP1F2 OCP1F1 OCP1F0
R/W
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
×
POR
0
0
0
0
0
0
0
“×”为未知
Rev.1.30
Bit 7
OCP1O:OCP1 比较器滤波后输出位
0:表示被监测源电流未超过限定值
1:表示被监测源电流超过限定值
Bit 6
OCP1CHY:OCP1 比较器的迟滞控制
0:除能
1:使能
Bit 5~3
OCP1G2~OCP1G0:OCP1 OPA 增益选择位
000:×1
001:×5
010:×10
011:×15
100:×20
101:×20
110:×20
111:×20
Bit 2~0
OCP1F2~OCP1F0:OCP1 解调滤波器选择位
000:0 tFLT ( 无滤波 )
001:1~2 × tFLT
010:3~4 × tFLT
011:7~8 × tFLT
100:15~16 × tFLT
101:31~32 × tFLT
110:63~64 × tFLT
111:127~128 × tFLT
注:fFLT=fH/4,tFLT=1/fFLT
124
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OCP1DA 寄存器
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
1
A1OF1
R/W
0
0
A1OF0
R/W
0
OCP1 DAC 数据寄存器 bit 7 ~ bit 0
8-bit DAC 数据位
OCP1 DAC 输出 = (DAC 参考电压 ) × (DAC.7~0)/256
A1CAL 寄存器
Bit
Name
R/W
POR
7
A1OFM
R/W
0
6
A1RS
R/W
0
5
A1OF5
R/W
1
4
A1OF4
R/W
0
3
A1OF3
R/W
0
2
A1OF2
R/W
0
Bit 7
A1OFM:OCP1 运算放大器模式 / 输入失调电压校准模式选择位
0:运算放大器模式
1:输入失调电压校准模式
注:只有 OCP1M1~OCP1M0 位设置为“11”且 A1OFM 设置为 1 且 C1OFM 设
置为 0 才能进入 OCP1 运算放大器输入失调电压校准模式。
Bit 6
A1RS:OCP1 运算放大器输入失调电压校准参考电压输入脚选择位
0:运算放大器负输入脚
1:运算放大器正输入脚
Bit 5~0
A1OF5~ A1OF0:OCP1 运算放大器输入失调电压校准设置
C1CAL 寄存器
Bit
7
6
Name OCP1CX C1OFM
R/W
R
R/W
×
POR
0
5
C1RS
R/W
0
4
C1OF4
R/W
1
3
C1OF3
R/W
0
2
C1OF2
R/W
0
1
C1OF1
R/W
0
0
C1OF0
R/W
0
“×”为未知
Rev.1.30
Bit 7
OCP1CX:OCP1 输入失调电压校准模式下比较器或运算放大器逻辑输出
0:正相输入电压 < 反向输入电压
1:正相输入电压 > 反向输入电压
Bit 6
C1OFM:OCP1 比较器模式 / 输入失调电压校准模式选择位
0:比较器模式
1:输入失调电压校准模式
注:只有 OCP1M1~OCP1M0 位设置为“11”且 A1OFM 设置为 0 且 C1OFM 设
置为 1 才能进入 OCP1 运算放大器输入失调电压校准模式。
Bit 5
C1RS:OCP1 比较器输入失调电压校准参考电压输入脚选择位
0:比较器负输入脚
1:比较器正输入脚
Bit 4~0
C1OF4~ C1OF0:OCP1 比较器输入失调电压校准位
125
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
失调电压校准
过流保护电路有四种工作模式,通过 OCPnM1~OCPnM0 位进行选择。当设置
为“11”的时候进入校准模式,在此模式可以对运算放大器和比较器进行失调
电压校准。
OPA 校准模式
校准步骤如下所示:
1. 设置 OCPnM1~OCPnM0=11,AnOFM=1,OCP 进入 OPA 失调电压校准模式。
2. 设置 AnOF [5:0]=000000,读取 OCPnCX 值。
3. 将 AnOF [5:0] 值加一再读取,直到 OCPnCX 值发生改变,记录此时 AnOF
[5:0] 值为 VOS1。
4. 设置 AnOF [5:0]=111111,读取 OCPnCX 值。
5. 将 AnOF [5:0] 值减一再读取,直到 OCPnCX 值发生改变,记录此时 AnOF
[5:0] 值为 VOS2。
6. 重新设置 AnOF [5:0]=VOS=(VOS1+VOS2)/2,校准完成。
比较器校准模式
校准步骤如下所示:
1. 设置 OCPnM1~OCPnM0=11,CnOFM=1,OCP 进入比较器失调电压校准模式。
2. 设置 CnOF [4:0]=00000,读取 OCPnCX 值。
3. 将 CnOF [4:0] 值加一再读取,直到 OCPnCX 值发生改变,记录此时 CnOF
[4:0] 值为 VOS1。
4. 设置 CnOF [4:0]=11111,读取 OCPnCX 值。
5. 将 CnOF [4:0] 值减一再读取,直到 OCPnCX 值发生改变,记录此时 CnOF
[4:0] 值为 VOS2。
6. 重新设置 CnOF [4:0]=VOS=(VOS1+VOS2)/2,校准完成。
Rev.1.30
126
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
过压保护和欠压保护
此单片机内置过压保护和欠压保护电路,用于电池充 / 放电应用的安全防护。
过压保护功能
为防止输出电压高于 5.4V,应将 OVP 输入电压与 8-bit 参考电压相比较。一旦
OVP 输入电压大于参考电压,OUT0H 或 OUT1H 和 OUT0L 或 OUT1L 将被强
制无效 ( 即控制极性前 OUT0H 或 OUT1H 强制为高电平,OUT0L 或 OUT1L 强
制为低电平 ) 以关闭外部 MOS 管,从而达到过电压保护的效果。
欠压保护功能
为防止输出电压小于 1.0V ( 外部电路短路 ),应将 UVP 输入电压与 8-bit 参考
电压相比较。一旦 UVP 输入电压小于参考电压,OUT0H 或 OUT1H 和 OUT0L
或 OUT1L 将被强制无效 ( 即控制极性前 OUT0H 或 OUT1H 强制为高电平,
OUT0L 或 OUT1L 强制为低电平 ) 以关闭外部 MOS 管,从而达到过电压保护的
效果。
一旦发生 OVP 或 UVP 情况时,OUT0H 和 OUT0L 或 OUT1H 和 OUT1L 可被
强制于无效状态,同时系统将产生相应的中断。当 OVP 或 UVP 情况消失时,
OUT0H 和 OUT0L 或 OUT1H 和 OUT1L 脚将恢复至原来的状态以驱动 PWM 输
出。
更多关于 OUTnH 和 OUTnL 引脚的极性和输出控制描述请参见 TMPCn 寄存器。
OVPDA[7:0]
OVPDB1, OVPDB0
DAC VREF
8-bit
DAC
OUVPPC1, OUVPPC0
+
OVP Interrupt
OVP
CMP
Debounce
OVPCHY
OVPLEN, OVPHEN
Stop DC/DC PWM
OUVP00
OUVPPC1, OUVPPC0
OUVP01
OUVPPC1, OUVPPC0
OUVP02
DAC VREF
8-bit
DAC
UVPDA[7:0]
Rev.1.30
UVPDB1, UVPDB0
UVP Interrupt
+
UVP
CMP
Debounce
UVPCHY
UVPLEN, UVPHEN
Stop DC/DC PWM
过压 / 欠压保护方框图
127
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OUVP 寄存器
OUVP 整个操作是通过一系列寄存器进行控制的。
位
7
6
5
4
3
2
1
0
OVPDA
D7
D6
D5
D4
D3
D2
D1
D0
UVPDA
D7
D6
D5
D4
D3
D2
D1
D0
OUVPC0 OVPCX OUVPPC1 OUVPPC0 OVPCHY
—
OUVPRV OVPDB1 OVPDB0
OUVPC1 UVPCX OVPEN UVPEN UVPCHY
—
—
UVPDB1 UVPDB0
OUVPC2 UVP1LEN UVP1HEN UVP0LEN UVP0HEN OVP1LEN OVP1HEN OVP0LEN OVP0HEN
寄存器
名称
OUVP 寄存器列表
OVPDA 寄存器
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
2
D2
R/W
0
1
D1
R/W
0
0
D0
R/W
0
OVP DAC 数据寄存器 bit 7 ~ bit 0
8-bit DAC 数据位
OVP DAC 输出 = (DAC 参考电压 ) × (DAC.7~0)/256
UVPDA 寄存器
Bit
Name
R/W
POR
Bit 7~0
Rev.1.30
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
UVP DAC 数据寄存器 bit 7 ~ bit 0
8-bit DAC 数据位
UVP DAC 输出 = (DAC 参考电压 ) × (DAC.7~0)/256
128
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OUVPC0 寄存器
Bit
7
6
5
4
Name OVPCX OUVPPC1 OUVPPC0 OVPCHY
R/W
R
R/W
R/W
R/W
×
POR
0
0
0
3
—
—
—
2
1
0
OUVPRV OVPDB1 OVPDB0
R/W
R/W
R/W
0
0
0
“×”为未知
Rev.1.30
Bit 7
OVPCX:过压保护比较器逻辑输出
0:正相输入电压 < 反向输入电压
1:正相输入电压 > 反向输入电压
Bit 6~5
OUVPPC1~OUVPPC0:过压 / 欠压保护输入引脚选择位
00:OUVP 输入除能
01:OUVP00 引脚
10:OUVP01 引脚
11:OUVP02 引脚
Bit 4
OVPCHY:过压保护比较器迟滞控制位
0:除能
1:使能
Bit 3
未定义,读为 “0”
Bit 2
OUVPRV:过压 / 欠压保护 DAC 参考电压选择位
0:AVDD 引脚
1:DAPWR 引脚
Bit 1~0
OVPDB1~OVPDB0:过压保护比较器去抖时间选择位
00:无去抖
01:去抖时间 = (7~8) × 1/fH
10:去抖时间 = (15~16) × 1/fH
11:去抖时间 = (31~32) × 1/fH
129
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OUVPC1 寄存器
Bit
Name
R/W
POR
7
6
5
4
UVPCX OVPEN UVPEN UVPCHY
R
R/W
R/W
R/W
×
0
0
0
3
—
—
—
2
—
—
—
1
0
UVPDB1 UVPDB0
R/W
R/W
0
0
“×”为未知
Rev.1.30
Bit 7
UVPCX:欠压保护比较器逻辑输出
0:正相输入电压 < 反向输入电压
1:正相输入电压 > 反向输入电压
Bit 6
OVPEN:过压保护功能控制位
0:除能
1:使能
如果此位清零,过压保护功能被除能,不再消耗功率,同时过压保护电路中的
比较器以及 D/A 转换器自动关闭。
Bit 5
UVPEN:欠压保护功能控制位
0:除能
1:使能
如果此位清零,欠压保护功能被除能,不再消耗功率,同时欠压保护电路中的
比较器以及 D/A 转换器自动关闭。
Bit 4
UVPCHY:欠压保护比较器迟滞控制位
0:除能
1:使能
Bit 3~2
未定义,读为“0”
Bit 1~0
UVPDB1~UVPDB0:欠压保护比较器去抖时间选择位
00:无去抖
01:去抖时间 = (7~8) × 1/fH
10:去抖时间 = (15~16) × 1/fH
11:去抖时间 = (31~32) × 1/fH
130
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OUVPC2 寄存器
Bit
7
6
5
4
3
2
1
0
Name UVP1LEN UVP1HEN UVP0LEN UVP0HEN OVP1LEN OVP1HEN OVP0LEN OVP0HEN
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
POR
0
0
0
0
0
0
0
0
Rev.1.30
Bit 7
UVP1LEN:欠压保护功能中 OUT1L 控制位
0: 除能
1:使能
此位用于控制当欠压情况发生时,OUT1L 是否被强制为无效状态。
Bit 6
UVP1HEN:欠压保护功能中 OUT1H 控制位
0:除能
1:使能
此位用于控制当欠压情况发生时,OUT1H 是否被强制为无效状态。
Bit 5
UVP0LEN:欠压保护功能中 OUT0L 控制位
0:除能
1:使能
此位用于控制当欠压情况发生时,OUT0L 是否被强制为无效状态。
Bit 4
UVP0HEN:欠压保护功能中 OUT0H 控制位
0:除能
1:使能
此位用于控制当欠压情况发生时,OUT0H 是否被强制为无效状态。
Bit 3
OVP1LEN:过压保护功能中 OUT1L 控制位
0:除能
1:使能
此位用于控制当过压情况发生时,OUT1L 是否被强制为无效状态。
Bit 2
OVP1HEN:过压保护功能中 OUT1H 控制位
0:除能
1:使能
此位用于控制当过压情况发生时,OUT1H 是否被强制为无效状态。
Bit 1
OVP0LEN:过压保护功能中 OUT0L 控制位
0:除能
1:使能
此位用于控制当过压情况发生时,OUT0L 是否被强制为无效状态。
Bit 0
OVP0HEN:过压保护功能中 OUT0H 控制位
0:除能
1:使能
此位用于控制当过压情况发生时,OUT0H 是否被强制为无效状态。
131
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
USB 充 / 放电自动检测
此系列单片机包含三对 USB 端口 D0+/D0-,D1+/D1- 以及 D2+/D2-,用于执
行充 / 放电自动检测功能。用户可以通过监测 USB 接口端的电压与电流,区别
连接到 USB 端口的是一个专用的充电器,便携设备,一般的 USB 接口或是带
USB 接口的充电装置。
USB0
USB0 端口可以提供特定的电压和电流,用于专用的充电器端口对移动设备
进行充电。通过正确设置 ADUC0 寄存器的 VDPON 位以及 ADUC1 寄存器的
D0PS 位,D0+ 端口可以输出 0.6V 电压,VDP_SRC。若设置 D0PS 位为“1”,
选择 D0+ 引脚用作 VDP_SRC 电压输出引脚,则与此引脚共用的其它功能将会
通过硬件自动关闭。当 USB0 端口检测到充电器,在 D0+ 端口会输出 0.6V 电
压,在 D0- 引脚端通过 A/D 转换器进行测量。USB0 端口引脚 D0+ 和 D0- 与通
用 I/O 功能,A/D 转换器功能共用引脚,由 ACERH 寄存器的 ACE8 和 ACE9 位
进行选择。D0+ 和 D0- 可以通过 ADUC2 寄存器的 D0NPL 和 D0PPL 位选择是
否有下拉电阻。注意:当模拟功能与数字功能共用引脚,模拟功能具有更高的
优先级。
Dedicated Charger /
Charging Host
HT45F4N/HT45FH4N
D0+
D+
D0-
D-
ACE8
PD0
AN8
VDP_SRC
D0PS
PD1
A/D
Converter
AN9
ACE9
注:对于 HT45FH4N,D0- 仅做内部使用并未连接到外部引脚。
USB0 连接方框图
Rev.1.30
132
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
USB1,USB2
USB1,USB2 端口提供特定的电压和电流,用于便携设备的充电。USB1,
USB2 端口引脚 D1+/D1- 和 D2+/D2- 与通用 I/O 功能,A/D 转换功能以及 D/A
转换功能共用引脚,由 D1PS/D1NS 和 D2PS/D2NS 位进行选择。在 D1+ 和 D1引脚间有一个由 USW1 位控制的模拟开关,同样的,在 D2+ 和 D2- 间也有一
个由 USW2 位控制的模拟开关。当 USW1 或 USW2 设为“1”,D1+ 和 D1- 引
脚或 D2+ 和 D2- 将会内部相连,此时 USB1 或 USB2 功能会自动除能。若设置
D1+ 和 D1- 或 D2+ 和 D2- 用于 I/O 引脚输出功能,相应的输出功能也会自动除
能。D1+ 和 D1- 或 D2+ 和 D2- 可通过设置 ADUC2 寄存器 D1NPL 和 D1PPL 或
D2NPL 和 D2PPL 位选择是否有下拉电阻。注意:当模拟功能与数字功能共用
引脚,模拟功能具有更高的优先级。
HT45F4N/HT45FH4N
Portable Device
D1+
PD2
D+
ACE10
VR
AN10
DAC0
A/D
D1PS
USB
PHY
USW1
D1PD3
D-
ACE11
AN11
DAC1
A/D
D1NS
USB1 连接方框图
Portable Device
HT45F4N/HT45FH4N
D2+
PD4
D+
ACE12
VR
AN12
DAC0
A/D
D2PS
USB
PHY
USW2
D2PD5
D-
ACE13
AN13
DAC1
A/D
D2NS
USB2 连接方框图
Rev.1.30
133
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
USB 充 / 放电自动检测寄存器
USB 充 / 放电自动检测功能是通过一系列寄存器进行控制的。
寄存器
名称
ADUDA0
ADUDA1
ADUC0
ADUC1
ADUC2
位
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
— VDPON USW2 USW1 DAC1RV DAC0RV DAC1ON DAC0ON
—
—
D2NS D2PS
D1NS
D1PS
—
D0PS
—
—
D2NPL D2PPL D1NPL
D1PPL
D0NPL
D0PPL
ADUDA0 寄存器
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
1
D1
R/W
0
0
D0
R/W
0
DAC0 数据寄存器 bit 7 ~ bit 0
8-bit DAC0 数据位
DAC0 输出 = (VDD 或 DAPWR) × (ADUDA0 [7~0]) / 256
ADUDA1 寄存器
Bit
Name
R/W
POR
Bit 7~0
Rev.1.30
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
DAC1 数据寄存器 bit 7 ~ bit 0
8-bit DAC1 数据位
DAC1 输出 = (VDD 或 DAPWR) × (ADUDA1 [7~0]) / 256
134
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
ADUC0 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
5
4
3
2
1
0
VDPON USW2 USW1 DAC1RV DAC0RV DAC1ON DAC0ON
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
Bit 7
未定义,读为 “0”
Bit 6
VDPON:VDP_SRC 电压使能控制
0:除能
1:使能
Bit 5
USW2:USB2 D2+/D2- 间开关控制位
0:断开
1:闭合
如果此位设为“1”,D2+ 和 D2- 端口间开关闭合,两端口连通,USB2 功能将
会自动除能。如果 D2+ 和 D2- 设置为 I/O 输出引脚,共用的输出功能也将自动
除能。
Bit 4
USW1:USB1 D1+/D1- 间开关控制位
0:断开
1:闭合
如果此位设为“1”,D1+ 和 D1- 端口间开关闭合,两端口连通,USB1 功能将
会自动除能。如果 D1+ 和 D1- 设置为 I/O 输出引脚,共用的输出功能也将自动
除能。
Bit 3
DAC1RV:DAC1 参考电压选择位
0:VDD 引脚
1:DAPWR 引脚
Bit 2
DAC0RV:DAC0 参考电压选择位
0:VDD 引脚
1:DAPWR 引脚
Bit 1
DAC1ON:DAC1 控制位
0:除能
1:使能
Bit 0
DAC0ON:DAC0 控制位
0:除能
1:使能
135
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
ADUC1 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
D2NS
R/W
0
4
D2PS
R/W
0
3
D1NS
R/W
0
Bit 7~6
未定义,读为 “0”
Bit 5
D2NS:定义 D2- 是否作为 DAC1 输出引脚
0:不作为 DAC1 输出
1:DAC1 输出
Bit 4
D2PS:定义 D2+ 是否作为 DAC0 输出引脚
0:不作为 DAC0 输出
1:DAC0 输出
Bit 3
D1NS:定义 D1- 是否作为 DAC1 输出引脚
0:不作为 DAC1 输出
1:DAC1 输出
Bit 2
D1PS:定义 D1+ 是否作为 DAC0 输出引脚
0:不作为 DAC0 输出
1:DAC0 输出
Bit 1
未定义,读为“0”
Bit 0
D0PS:定义 D0+ 是否作为 VDP_SRC 输出引脚
0:不作为 VDP_SRC 输出
1:VDP_SRC 输出
2
D1PS
R/W
0
1
—
—
—
0
D0PS
R/W
0
ADUC2 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
4
3
2
1
0
D2NPL D2PPL D1NPL D1PPL D0NPL D0PPL
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
Bit 7~6
未定义,读为 “0”
Bit 5
D2NPL:D2- 引脚下拉电阻控制位
0:除能
1:使能
Bit 4
D2PPL:D2+ 引脚下拉电阻控制位
0:除能
1:使能
Bit 3
D1NPL:D1- 引脚下拉电阻控制位
0:除能
1:使能
Bit 2
D1PPL:D1+ 引脚下拉电阻控制位
0:除能
1:使能
Bit 1
D0NPL:D0- 引脚下拉电阻控制位
0:除能
1:使能
Bit 0
D0PPL:D0+ 引脚下拉电阻控制位
0:除能
1:使能
136
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
中断
中断是单片机一个重要功能。当外部事件或内部功能如定时器模块或 A/D 转
换器有效,并且产生中断时,系统会暂时中止当前的程序而转到执行相对应的
中断服务程序。此系列单片机提供多个外部中断和内部中断功能,外部中断由
INT0~INT2 引脚动作产生,而内部中断由各种内部功能,如定时器模块、欠压
保护功能、过压保护功能、过流保护功能、时基、LVD、EEPROM 和 A/D 转换
器等产生。
中断寄存器
中断控制基本上是在一定单片机条件发生时设置请求标志位,应用程序中中断
使能位的设置是通过位于专用数据存储器中的一系列寄存器控制的。寄存器总
的分为三类。第一类是 INTC0~INTC3 寄存器,用于设置基本的中断;第二类
是 MFI0~MFI3 寄存器,用于设置多功能中断;最后一种有 INTEG 寄存器,用
于设置外部中断边沿触发类型。
寄存器中含有中断控制位和中断请求标志位。中断控制位用于使能或除能各种
中断,中断请求标志位用于存放当前中断请求的状态。它们都按照特定的模式
命名,前面表示中断类型的缩写,紧接着的字母“E”代表使能 / 除能位,“F”
代表请求标志位。
功能
总中断
INTn 脚
OVP
UVP
OCPn
A/D 转换器
多功能
时基
LVD
EEPROM
TM
使能位
EMI
INTnE
OVPE
UVPE
OCPnE
ADE
MFnE
TBnE
LVE
DEE
TnPE
TnAE
请求标志位
—
INTnF
OVPF
UVPF
OCPnF
ADF
MFnF
TBnF
LVF
DEF
TnPF
TnAF
注释
—
n=0~2
—
—
n=0 或 1
—
n=0~3
n=0 或 1
—
—
n=0~3
中断寄存器位命名模式
寄存器
名称
INTEG
INTC0
INTC1
INTC2
INTC3
MFI0
MFI1
MFI2
MFI3
7
—
—
INT2F
MF3F
LVF
—
—
—
—
位
6
5
4
3
2
1
0
—
INT2S1 INT2S0 INT1S1 INT1S0 INT0S1 INT0S0
OCP0F OVPF OCP1F OCP0E OVPE OCP1E
EMI
INT1F INT0F UVPF INT2E INT1E INT0E UVPE
MF2F
MF1F
MF0F MF3E MF2E MF1E MF0E
TB1F
TB0F
ADF
LVE
TB1E
TB0E
ADE
DEF
T0AF
T0PF
—
DEE
T0AE
T0PE
—
T1AF
T1PF
—
—
T1AE
T1PE
—
T2AF
T2PF
—
—
T2AE
T2PE
—
T3AF
T3PF
—
—
T3AE
T3PE
中断寄存器列表
Rev.1.30
137
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
INTEG 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
4
3
2
1
0
INT2S1 INT2S0 INT1S1 INT1S0 INT0S1 INT0S0
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
Bit 7 ~ 6
未定义,读为“0”
Bit 5 ~ 4
INT2S1,INT2S0:INT2 脚中断边沿控制位
00:除能
01:上升沿
10:下降沿
11:双沿
Bit 3 ~ 2
INT1S1,INT1S0:INT1 脚中断边沿控制位
00:除能
01:上升沿
10:下降沿
11:双沿
Bit 1 ~ 0
INT0S1,INT0S0:INT0 脚中断边沿控制位
00:除能
01:上升沿
10:下降沿
11:双沿
INTC0 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
OCP0F
R/W
0
5
OVPF
R/W
0
4
3
OCP1F OCP0E
R/W
R/W
0
0
Bit 7
未定义,读为“0”
Bit 6
OCP0F:OCP0 中断请求标志位
0:无请求
1:中断请求
Bit 5
OVPF:OVP 中断请求标志位
0:无请求
1:中断请求
Bit 4
OCP1F:OCP1 中断请求标志位
0:无请求
1:中断请求
Bit 3
OCP0E:OCP0 中断控制位
0:除能
1:使能
Bit 2
OVPE:OVP 中断控制位
0:除能
1:使能
Bit 1
OCP1E:OCP1 中断控制位
0:除能
1:使能
Bit 0
EMI:总中断控制位
0:除能
1:使能
138
2
OVPE
R/W
0
1
OCP1E
R/W
0
0
EMI
R/W
0
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
INTC1 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
INT2F
R/W
0
6
INT1F
R/W
0
5
INT0F
R/W
0
4
UVPF
R/W
0
Bit 7
INT2F:INT2 中断请求标志位
0:无请求
1:中断请求
Bit 6
INT1F:INT1 中断请求标志位
0:无请求
1:中断请求
Bit 5
INT0F:INT0 中断请求标志位
0:无请求
1:中断请求
Bit 4
UVPF:UVP 中断请求标志位
0:无请求
1:中断请求
Bit 3
INT2E :INT2 中断控制位
0:除能
1:使能
Bit 2
INT1E:INT1 中断控制位
0:除能
1:使能
Bit 1
INT0E:INT0 中断控制位
0:除能
1:使能
Bit 0
UVPE:UVP 中断控制位
0:除能
1:使能
139
3
INT2E
R/W
0
2
INT1E
R/W
0
1
INT0E
R/W
0
0
UVPE
R/W
0
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
INTC2 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
MF3F
R/W
0
6
MF2F
R/W
0
5
MF1F
R/W
0
4
MF0F
R/W
0
Bit 7
MF3F:多功能中断 3 请求标志位
0:无请求
1:中断请求
Bit 6
MF2F:多功能中断 2 请求标志位
0:无请求
1:中断请求
Bit 5
MF1F:多功能中断 1 请求标志位
0:无请求
1:中断请求
Bit 4
MF0F:多功能中断 0 请求标志位
0:无请求
1:中断请求
Bit 3
MF3E:多功能中断 3 控制位
0:除能
1:使能
Bit 2
MF2E:多功能中断 2 控制位
0:除能
1:使能
Bit 1
MF1E:多功能中断 1 控制位
0:除能
1:使能
Bit 0
MF0E:多功能中断 0 控制位
0:除能
1:使能
140
3
MF3E
R/W
0
2
MF2E
R/W
0
1
MF1E
R/W
0
0
MF0E
R/W
0
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
INTC3 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
LVF
R/W
0
6
TB1F
R/W
0
5
TB0F
R/W
0
4
ADF
R/W
0
Bit 7
LVF:LVD 中断请求标志位
0:无请求
1:中断请求
Bit 6
TB1F:TB1 中断请求标志位
0:无请求
1:中断请求
Bit 5
TB0F:TB 0 中断请求标志位
0:无请求
1:中断请求
Bit 4
ADF:A/D 转换器中断请求标志位
0:无请求
1:中断请求
Bit 3
LVE:LVD 中断控制位
0:除能
1:使能
Bit 2
TB1E:Time Base 1 中断控制位
0:除能
1:使能
Bit 1
TB0E:Time Base 0 中断控制位
0:除能
1:使能
Bit 0
ADE:A/D 转换器中断控制位
0:除能
1:使能
141
3
LVE
R/W
0
2
TB1E
R/W
0
1
TB0E
R/W
0
0
ADE
R/W
0
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
MFI0 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
DEF
R/W
0
5
T0AF
R/W
0
4
T0PF
R/W
0
3
—
—
—
Bit 7
未定义,读为“0”
Bit 6
DEF:数据 EEPROM 中断请求标志位
0:无请求
1:中断请求
Bit 5
T0AF:TM0 比较器 A 匹配中断请求标志位
0:无请求
1:中断请求
Bit 4
T0PF:TM0 比较器 P 匹配中断请求标志位
0:无请求
1:中断请求
Bit 3
未定义,读为“0”
Bit 2
DEE:数据 EEPROM 中断控制位
0:除能
1:使能
Bit 1
T0AE:TM0 比较器 A 匹配中断控制位
0:除能
1:使能
Bit 0
T0PE:TM0 比较器 P 匹配中断控制位
0:除能
1:使能
2
DEE
R/W
0
1
T0AE
R/W
0
0
T0PE
R/W
0
2
—
—
—
1
T1AE
R/W
0
0
T1PE
R/W
0
MFI1 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
T1AF
R/W
0
4
T1PF
R/W
0
3
—
—
—
Bit 7 ~ 6
未定义,读为“0”
Bit 5
T1AF:TM1 比较器 A 匹配中断请求标志位
0:无请求
1:中断请求
Bit 4
T1PF:TM1 比较器 P 匹配中断请求标志位
0:无请求
1:中断请求
Bit 3 ~ 2
未定义,读为“0”
Bit 1
T1AE:TM1 比较器 A 匹配中断控制位
0:除能
1:使能
Bit 0
T1PE:TM1 比较器 P 匹配中断控制位
0:除能
1:使能
142
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
MFI2 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
T2AF
R/W
0
4
T2PF
R/W
0
3
—
—
—
Bit 7 ~ 6
未定义,读为“0”
Bit 5
T2AF:TM2 比较器 A 匹配中断请求标志位
0:无请求
1:中断请求
Bit 4
T2PF:TM2 比较器 P 匹配中断请求标志位
0:无请求
1:中断请求
Bit 3 ~ 2
未定义,读为“0”
Bit 1
T2AE:TM2 比较器 A 匹配中断控制位
0:除能
1:使能
Bit 0
T2PE:TM2 比较器 P 匹配中断控制位
0:除能
1:使能
2
—
—
—
1
T2AE
R/W
0
0
T2PE
R/W
0
2
—
—
—
1
T3AE
R/W
0
0
T3PE
R/W
0
MFI3 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
—
—
—
5
T3AF
R/W
0
4
T3PF
R/W
0
3
—
—
—
Bit 7 ~ 6
未定义,读为“0”
Bit 5
T3AF:TM3 比较器 A 匹配中断请求标志位
0:无请求
1:中断请求
Bit 4
T3PF:TM3 比较器 P 匹配中断请求标志位
0:无请求
1:中断请求
Bit 3 ~ 2
未定义,读为“0”
Bit 1
T3AE:TM3 比较器 A 匹配中断控制位
0:除能
1:使能
Bit 0
T3PE:TM3 比较器 P 匹配中断控制位
0:除能
1:使能
143
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
中断操作
若中断事件条件产生,如一个 TM 比较器 P、比较器 A 匹配或 A/D 转换结束等
等,相关中断请求标志将置起。中断标志产生后程序是否会跳转至相关中断向
量执行是由中断使能位的条件决定的。若使能位为“1”,程序将跳至相关中断
向量中执行;若使能位为“0”,即使中断请求标志置起中断也不会发生,程序
也不会跳转至相关中断向量执行。若总中断使能位为“0”,所有中断都将除能。
当中断发生时,下条指令的地址将被压入堆栈。相应的中断向量地址加载至 PC
中。系统将从此向量取下条指令。中断向量处通常为跳转指令,以跳转到相应
的中断服务程序。中断服务程序必须以“RETI”指令返回至主程序,以继续执
行原来的程序。
各个中断使能位以及相应的请求标志位,以优先级的次序显示在下图。一些中
断源有自己的向量,但是有些中断却共用多功能中断向量。一旦中断子程序被
响应,系统将自动清除 EMI 位,所有其它的中断将被屏蔽,这个方式可以防止
任何进一步的中断嵌套。其它中断请求可能发生在此期间,虽然中断不会立即
响应,但是中断请求标志位会被记录。
如果某个中断服务子程序正在执行时,有另一个中断要求立即响应,那么 EMI
位应在程序进入中断子程序后置位,以允许此中断嵌套。如果堆栈已满,即使
此中断使能,中断请求也不会被响应,直到 SP 减少为止。如果要求立刻动作,
则堆栈必须避免成为储满状态。请求同时发生时,执行优先级如下流程图所示。
所有被置起的中断请求标志都可把单片机从休眠或空闲模式中唤醒,若要防止
唤醒动作发生,在单片机进入休眠或空闲模式前应将相应的标志置起。
Rev.1.30
144
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Legend
xxF Request Flag – no auto reset in ISR
EMI auto disabled in ISR
xxF Request Flag – auto reset in ISR
xxE
Enable
Bits
Master
Enable
Vector
OCP1E
EMI
04H
OVPF
OVPE
EMI
08H
Over current
OCP0F
Protection 0
OCP0E
EMI
0CH
UVPF
UVPE
EMI
10H
Interrupt
Name
Enable Bit
Request
Flags
Over current
OCP1F
Protection 1
Over Voltage
Protection
Under Voltage
Protection
Enable
Bits
INT0 Pin
INT0F
INT0E
EMI
14H
DEF
DEE
INT1 Pin
INT1F
INT1E
EMI
18H
TM0P
T0PF
T0PE
INT2 Pin
INT2F
INT2E
EMI
1CH
TM0A
T0AF
T0AE
M. Funct. 0
MF0F
MF0E
EMI
20H
TM1P
T1PF
T1PE
M. Funct. 1
MF1F
MF1E
EMI
24H
TM1A
T1AF
T1AE
M. Funct. 2
MF2F
MF2E
EMI
28H
TM2P
T2PF
T2PE
TM2A
T2AF
T2AE
M. Funct. 3
MF3F
MF3E
EMI
2CH
TM3P
T3PF
T3PE
A/D
ADF
ADE
EMI
30H
TM3A
T3AF
T3AE
Time Base 0
TB0F
TB0E
EMI
34H
Time Base 1
TB1F
TB1E
EMI
38H
LVF
LVE
EMI
3CH
Interrupt
Name
EEPROM
Request
Flags
Interrupts contained within
Multi-Function Interrupts
LVD
Priority
High
Low
中断结构
外部中断
通过 INT0~INT2 引脚上的信号变化可控制外部中断。当触发沿选择位设置好触
发类型,INT0~INT2 引脚的状态发生变化,外部中断请求标志 INT0F~INT2F 被
置位时外部中断请求产生。若要跳转到相应中断向量地址,总中断控制位 EMI
和相应中断使能位 INT0E~INT2E 需先被置位。此外,必须使用 INTEG 寄存器
使能外部中断功能并选择触发沿类型。外部中断引脚和普通 I/O 口共用,如果
相应寄存器中的中断使能位被置位,此引脚将被作为外部中断脚使用。此时该
引脚必须通过设置控制寄存器,将该引脚设置为输入口。当中断使能,堆栈未
满并且外部中断脚状态改变,将调用外部中断向量子程序。当响应外部中断服
务子程序时,中断请求标志位 INT0F~INT2F 会自动复位且 EMI 位会被清零以
除能其它中断。注意,即使此引脚被用作外部中断输入,其配置选项中的上拉
电阻仍保持有效。寄存器 INTEG 被用来选择有效的边沿类型,来触发外部中断。
可以选择上升沿还是下降沿或双沿触发都产生外部中断。注意 INTEG 也可以用
来除能外部中断功能。
Rev.1.30
145
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
UVP 中断
当检测到欠压情况发生时,欠压保护中断请求标志位 UVPF 被置位,中断请求
发生。当总中断使能位 EMI 和 UVP 中断使能控制位 UVPE 被置位,允许程序
跳转到相应的中断向量地址。当中断使能,堆栈未满且相应的欠压情况发生时,
将调用它们中断向量子程序。当响应中断服务子程序时,相应的中断请求标志
位 UVPF 会自动清零。EMI 位也会被清零以除能其它中断。
OVP 中断
当检测到过电压情况时,过电压保护中断请求标志位 OVPF 被置位,OVP 中断
请求发生。当总中断使能位 EMI 和过电压保护中断使能位被置位,允许程序跳
转到相应的中断向量地址。当中断使能,堆栈未满且过电压情况发生时,将调
用 OVP 中断向量子程序。当响应中断服务子程序时,相应的中断请求标志位
OVPF 会自动清零。EMI 位也会被清零以除能其它中断。
OCP 中断
当检测到过电流情况时,过电流保护中断请求标志位 OCP0F 或 OCP1F 被置位,
OCP0 或 OCP1 中断请求发生。当总中断使能位 EMI 和 OCP0 或 OCP1 中断使
能位 OCP0E 或 OCP1E 被置位,允许程序跳转到相应的中断向量地址。当中断
使能,堆栈未满且过电流情况发生时,将调用 OCP0 或 OCP1 中断向量子程序。
当响应中断服务子程序时,相应的中断请求标志位 OCP0F 或 OCP1F 会自动清
零。EMI 位也会被清零以除能其它中断。
多功能中断
此系列单片机中有多达四个多功能中断,与其它中断不同,它没有独立源,但
由其它现有的中断源构成,即 TM 中断和 EEPROM 中断。
当多功能中断中任何一种中断请求标志 MFnF 被置位,多功能中断请求产生。
当中断使能,堆栈未满,包括在多功能中断中的任意一个中断发生时,将调用
多功能中断向量中的一个子程序。当响应中断服务子程序时,相关的多功能请
求标志位会自动复位且 EMI 位会自动清零以除能其它中断。
但必须注意的是,在中断响应时,虽然多功能中断标志会自动复位,但多功能
中断源的请求标志位,即 TM 中断和 EEPROM 中断的请求标志位不会自动复
位,必须由应用程序清零。
A/D 转换器中断
A/D 转换器中断由 A/D 转换动作的结束来控制。当 A/D 转换器中断请求标志被
置位,即 A/D 转换过程完成时,中断请求发生。当总中断使能位 EMI 和 A/D
中断使能位 ADE 被置位,允许程序跳转到相应的中断向量地址。当中断使能,
堆栈未满且 A/D 转换动作结束时,将调用 A/D 中断向量子程序。当响应中断服
务子程序时,相应的中断请求标志位 ADF 会自动清零。EMI 位也会被清零以
除能其它中断。
Rev.1.30
146
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
时基中断
时基中断提供一个固定周期的中断信号,由各自的定时器功能产生溢出信号控
制。当各自的中断请求标志 TB0F 或 TB1F 被置位时,中断请求发生。当总中
断使能位 EMI 和时基使能位 TB0E 或 TB1E 被置位,允许程序跳转到各自的中
断向量地址。当中断使能,堆栈未满且时基溢出时,将调用它们各自的中断向
量子程序。当响应中断服务子程序时,相应的中断请求标志位 TB0F 或 TB1F
会自动复位且 EMI 位会被清零以除能其它中断。
时基中断的目的是提供一个固定周期的中断信号,时钟源来自内部时钟源 fTB。
fTB 输入时钟首先经过分频器,分频率由程序设置 TBC 寄存器相关位获取合适
的分频值以提供更长的时基中断周期。控制时基中断频率 fTB 的时钟源有几种,
如在系统工作模式章节所示。
TBC 寄存器
Bit
Name
R/W
POR
7
TBON
R/W
0
6
TBCK
R/W
0
5
TB11
R/W
1
4
TB10
R/W
1
3
—
—
—
Bit 7
TBON:TB0 和 TB1 控制位
0:除能
1:使能
Bit 6
TBCK:选择 fTB 时钟位
0:fTBC
1:fSYS/4
Bit 5 ~ 4
TB11 ~ TB10:选择时基 1 溢出周期位
00:4096/fTB
01:8192/fTB
10:16384/fTB
11:32768/fTB
Bit 3
未定义,读为“0”
Bit 2 ~ 0
TB02 ~ TB00:选择时基 0 溢出周期位
000:256/fTB
001:512/fTB
010:1024/fTB
011:2048/fTB
100:4096/fTB
101:8192/fTB
110:16384/fTB
111:32768/fTB
2
TB02
R/W
1
1
TB01
R/W
1
0
TB00
R/W
1
时基中断
Rev.1.30
147
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
EEPROM 中断
EEPROM 中断也属于多功能中断。当写周期结束,EEPROM 中断请求标志
DEF 被置位,EEPROM 中断请求产生。若要程序跳转到相应中断向量地址,总
中断控制位 EMI、EEPROM 中断使能位 DEE 和相应多功能中断使能位 MF0E
需先被置位。当中断使能,堆栈未满且 EEPROM 写周期结束时,可跳转至相关
多功能中断向量子程序中执行。当 EEPROM 中断响应,EMI 将被自动清零以
除能其它中断,多功能中断请求标志也可自动清除,但 DEF 标志需在应用程序
中手动清除。
LVD 中断
当低电压检测功能检测到一个低电压时,LVD 中断请求标志 LVF 被置位,LVD
中断请求产生。若要程序跳转到相应中断向量地址,总中断控制位 EMI 和低电
压中断使能位 LVE 需先被置位。当中断使能,堆栈未满且低电压条件发生时,
可跳转至 LVD 中断向量子程序中执行。当低电压中断响应,LVD 中断请求标
志可自动清除,EMI 也将被自动清零以除能其它中断。
TM 中断
标准型和周期型 TM 都有两个中断。所有的 TM 中断也属于多功能中断。标准
型和周期型 TM 都有两个中断请求标志位 TnPF、TnAF 及两个使能位 TnPE、
TnAE。当 TM 比较器 P 或 A 匹配情况发生时,任意 TM 中断请求标志被置位,
TM 中断请求发生。
若要程序跳转到相应中断向量地址,总中断控制位 EMI、相应 TM 中断使能位
和相关多功能中断使能位 MFnE 需先被置位。当中断使能,堆栈未满且 TM 比
较器匹配情况发生时,可跳转至相关多功能中断向量子程序中执行。当 TM 中
断响应,EMI 将被自动清零以除能其它中断,相关 MFnF 标志也可自动清除,
但 TM 中断请求标志需在应用程序中手动清除。
中断唤醒功能
每个中断都具有将处于休眠或空闲模式的单片机唤醒的能力。当中断请求标志
由低到高转换时唤醒动作产生,其与中断是否使能无关。因此,尽管单片机处
于休眠或空闲模式且系统振荡器停止工作,如有外部中断脚上产生外部边沿跳
变,低电压或比较器输入改变都可能导致其相应的中断标志被置位,由此产生
中断,因此必须注意避免伪唤醒情况的发生。若中断唤醒功能被除能,单片机
进入休眠或空闲模式前相应中断请求标志应被置起。中断唤醒功能不受中断使
能位的影响。
Rev.1.30
148
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
编程注意事项
通过禁止相关中断使能位,可以屏蔽中断请求,然而,一旦中断请求标志位被
设定,它们会被保留在中断控制寄存器内,直到相应的中断服务子程序执行或
请求标志位被软件指令清除。
多功能中断中所含中断相应程序执行时,多功能中断请求标志 MF0F~MF3F 可
以自动清零,但各自的请求标志需在应用程序中手动清除。
建议在中断服务子程序中不要使用“CALL 子程序”指令。中断通常发生在不
可预料的情况或是需要立刻执行的某些应用。假如只剩下一层堆栈且没有控制
好中断,当“CALL 子程序”在中断服务子程序中执行时,将破坏原来的控制
序列。
所有中断在休眠或空闲模式下都具有唤醒功能,当中断请求标志发生由低到高
的转变时都可产生唤醒功能。若要避免相应中断产生唤醒动作,在单片机进入
休眠或空闲模式前需先将相应请求标志置为高。
当进入中断服务程序,系统仅将程序计数器的内容压入堆栈,如果中断服务程
序会改变状态寄存器或其它的寄存器的内容而破坏控制流程,应事先将这些数
据保存起来。
若从中断子程序中返回可执行 RET 或 RETI 指令。除了能返回至主程序外,
RETI 指令还能自动设置 EMI 位为高,允许进一步中断。RET 指令只能返回至
主程序,清除 EMI 位,除能进一步中断。
低电压检测 – LVD
此系列单片机都具有低电压检测功能,即 LVD。该功能使能用于监测电源电压
VDD,若电源电压低于一定值可提供一个警告信号。此功能在电池类产品中非
常有用,在电池电压较低时产生警告信号。低电压检测也可产生中断信号。
LVD 寄存器
低电压检测功能由 LVDC 寄存器控制。VLVD2~VLVD0 位用于选择 5 个固定的
电压参考点。LVDO 位被置位时低电压情况发生,若 LVDO 位为低表明 VDD 电
压工作在当前所设置低电压水平值之上。LVDEN 位用于控制低电压检测功能的
开启 / 关闭,设置此位为高使能此功能,反之,关闭内部低电压检测电路。低
电压检测会有一定的功耗,在不使用时可考虑关闭此功能,此举在功耗要求严
格的电池供电应用中值得考虑。
Rev.1.30
149
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
LVDC 寄存器
Bit
Name
R/W
POR
7
—
—
—
6
—
—
—
5
LVDO
R
0
4
LVDEN
R/W
0
Bit 7 ~ 6
未定义,读为“0”
Bit 5
LVDO:LVD 输出标志位
0:未检测到低电压
1:检测到低电压
Bit 4
LVDEN:低电压检测控制位
0:除能
1:使能
Bit 3
未定义,读为“0”
Bit 2~0
VLVD2 ~ VLVD0:选择 LVD 电压位
000: 保留位
001: 保留位
010: 保留位
011:2.7V
100:3.0V
101:3.3V
110:3.6V
111:4.0V
3
—
—
—
2
1
0
VLVD2 VLVD1 VLVD0
R/W
R/W
R/W
0
0
0
LVD 操作
通过比较电源电压 VDD 与存储在 LVDC 寄存器中的预置电压值的结果,低电压
检测功能工作。其设置的范围为 2.7V~4.0V。当电源电压 VDD 低于预置电压值
时,LVDO 位被置为高,表明低电压产生。低电压检测功能由一个自动使能的
参考电压提供。若 LVDEN 位为高,当单片机掉电时低电压检测器保持有效状
态。低电压检测器使能后,读取 LVDO 位前,电路稳定需要一定的延时 tLVDS。
注意,VDD 电压可能上升或下降比较缓慢,在 VLVD 电压值附近时,LVDO 位可
能有多种变化。
LVD 操作
低电压检测器也有自己的中断功能,它是除了轮询 LVDO 位之外的另一种
检测低电压的方法。中断条件产生置位 LVDO 并延时 tLVD 后,中断产生。若
LVDEN 位为高,当单片机掉电时低电压检测器保持有效状态。此种情况下,若
VDD 降至小于 LVD 预置电压值时,中断请求标志位 LVF 将被置位,中断产生,
单片机将从休眠或空闲模式中被唤醒。若不要求低电压检测的唤醒功能使能,
在单片机进入休眠或空闲模式前应将 LVF 标志置为高。
Rev.1.30
150
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
带 SCOM 功能的 LCD
此单片机可以用来驱动外部 LCD 面板。LCD 驱动的 COM 口 (SCOM0~SCOM3)
与 PB0、PA4、PA3 和 PA5 引脚共用。LCD 信号 (COM & SEG) 的产生由软件
编程实现。
LCD 操作
单片机通过设置 PB0、PA4、PA3 和 PA5 引脚作为 COM 引脚,其它输出口作
为 SEG 引脚,以驱动外部的液晶面板。LCD 驱动功能是由 SCOMC 寄存器来
控制,另外,该寄存器可设置 LCD 的开启和关闭以及输出偏压值等功能,使得
COM 口输出 VDD/2 的电压,从而实现 1/2 bias LCD 的显示。
SCOMC 寄存器中的 SCOMEN 位是 LCD 驱动的主控制位,它与 COMnEN 位搭
配共同设置 PB0、PA4、PA3 和 PA5 端口是否用于 LCD 驱动。注意,作为 LCD
驱动时,引脚控制寄存器不需要设置为输出即可使能驱动操作。
SCOM 控制电路
SCOMEN
0
1
1
COMnEN
X
0
1
引脚功能
I/O
I/O
SCOMn
O/P Level
0或1
0或1
VDD/2
输出控制
Rev.1.30
151
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
LCD 偏压控制
LCD 驱动器可以提供多种驱动电流选择以适应不同 LCD 面板的需求。通过设
置 SCOMC 寄存器中 ISEL0 位和 ISEL1 位可以配置不同的驱动电流。
SCOMC 寄存器
Bit
Name
R/W
POR
Rev.1.30
7
—
—
—
6
5
4
3
2
1
0
ISEL1 ISEL0 SCOMEN COM3EN COM2EN COM1EN COM0EN
R/W R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
Bit 7
保留位
0:正确电平值 – 该位必须清除为 0
1:不可预测的操作 – 该位不能设置为高
Bit 6,5
ISEL1,ISEL0:选择 SCOM 工作电流 (VDD=5V)
00:25μA
01:50μA
10:100μA
11:200μA
Bit 4
SCOMEN:SCOM 模块打开 / 关闭控制位
0:关闭
1:打开
Bit 3
COM3EN:选择 PA5 或 SCOM3
0:GPIO
1:SCOM3
Bit 2
COM2EN:选择 PA3 或 SCOM2
0:GPIO
1:SCOM2
Bit 1
COM1EN:选择 PA4 或 SCOM1
0:GPIO
1:SCOM1
Bit 0
COM0EN:选择 PB0 或 SCOM0
0:GPIO
1:SCOM0
152
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
应用电路
USB I/P
+
Lithium Battery x 1
IO
OUTnH OUTnL
VDD
AN
OUVP
USB O/P
IO
50 mΩ
50 mΩ
IO
OCP
VDD
OCP
104
105
DAPWR/VREF
HT45F4N
AN
1k
51k
IO
LCD/LED
Panel
2.5V
105
TL431B
IO/SCOM
IO
IO
VSS
USB I/P
+
Lithium Battery x 2
IO
CX/DX
AX/BX
OUVP
USB O/P
IO
50 mΩ
VCC
AN
50 mΩ
IO
OCP
V5
OCP
VDD
VDD
104
105
DAPWR/VREF
HT45FH4N
LCD/LED
Panel
AN
1k
51k
IO
2.5V
IO
IO/SCOM
RT1
50k/25°C
t°
105
TL431B
IO
IO
IO
IO
VSS
Rev.1.30
153
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
指令集
简介
任何单片机成功运作的核心在于它的指令集,此指令集为一组程序指令码,用
来指导单片机如何去执行指定的工作。在 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 提供了向左或向右移动一位的
方法。不同的移位指令可满足不同的应用需要。移位指令常用于串行端口的程
序应用,数据可从内部寄存器转移至进位标志位,而此位则可被检验,移位运
算还可应用在乘法与除法的运算组成中。
Rev.1.30
154
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
分支和控制转换
程序分支是采取使用 JMP 指令跳转至指定地址或使用 CALL 指令调用子程序的
形式,两者之不同在于当子程序被执行完毕后,程序必须马上返回原来的地址。
这个动作是由放置在子程序里的返回指令 RET 来实现,它可使程序跳回 CALL
指令之后的地址。在 JMP 指令中,程序则只是跳到一个指定的地址而已,并不
需如 CALL 指令般跳回。一个非常有用的分支指令是条件跳转,跳转条件是由
数据存储器或指定位来加以决定。遵循跳转条件,程序将继续执行下一条指令
或略过且跳转至接下来的指令。这些分支指令是程序走向的关键,跳转条件可
能是外部开关输入,或是内部数据位的值。
位运算
提供数据存储器中单个位的运算指令是盛群单片机的特性之一。这特性对于输
出端口位的设置尤其有用,其中个别的位或端口的引脚可以使用“SET [m].i”
或“CLR [m].i”指令来设定其为高位或低位。如果没有这特性,程序设计师必
须先读入输出口的 8 位数据,处理这些数据,然后再输出正确的新数据。这种
读入 - 修改 - 写出的过程现在则被位运算指令所取代。
查表运算
数据的储存通常由寄存器完成,然而当处理大量固定的数据时,它的存储量常
常造成对个别存储器的不便。为了改善此问题,盛群单片机允许在程序存储器
中建立一个表格作为数据可直接存储的区域,只需要一组简易的指令即可对数
据进行查表。
其它运算
除了上述功能指令外,其它指令还包括用于省电的“HALT”指令和使程序在极
端电压或电磁环境下仍能正常工作的看门狗定时器控制指令。这些指令的使用
则请查阅相关的章节。
Rev.1.30
155
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
指令集概要
下表中说明了按功能分类的指令集,用户可以将该表作为基本的指令参考。
惯例
x:立即数
m:数据存储器地址
A:累加器
i:第 0~7 位
addr:程序存储器地址
助记符
说明
指令
周期
影响标志位
1
Z, C, AC, OV
算术运算
ADD
A,[m] ACC 与数据存储器相加,结果放入 ACC
ADDM A,[m] ACC 与数据存储器相加,结果放入数据存储器
ADD
ADC
A, x
ACC 与立即数相加,结果放入 ACC
A,[m] ACC 与数据存储器、进位标志相加,结果放入 ACC
ADCM A,[m] ACC 与数据存储器、进位标志相加,结果放入数据存储器
SUB
A, x
ACC 与立即数相减,结果放入 ACC
SUB
A,[m] ACC 与数据存储器相减,结果放入 ACC
SUBM A,[m] ACC 与数据存储器相减,结果放入数据存储器
SBC
A,[m] ACC 与数据存储器、进位标志的反相减,结果放入 ACC
SBCM A,[m] ACC 与数据存储器、进位标志相减,结果放入数据存储器
DAA
[m]
1
注
Z, C, AC, OV
1
Z, C, AC, OV
1
Z, C, AC, OV
1
注
Z, C, AC, OV
1
Z, C, AC, OV
1
Z, C, AC, OV
1注
Z, C, AC, OV
1
Z, C, AC, OV
1
注
将加法运算中放入 ACC 的值调整为十进制数,并将结果放入
1注
数据存储器
Z, C, AC, OV
C
逻辑运算
AND
A,[m] ACC 与数据存储器做“与”运算,结果放入 ACC
1
Z
OR
A,[m] ACC 与数据存储器做“或”运算,结果放入 ACC
1
Z
XOR
A,[m] ACC 与数据存储器做“异或”运算,结果放入 ACC
1
Z
ANDM A,[m] ACC 与数据存储器做“与”运算,结果放入数据存储器
1
注
Z
ORM
1注
Z
1
Z
A,[m] ACC 与数据存储器做“或”运算,结果放入数据存储器
XORM A,[m] ACC 与数据存储器做“异或”运算,结果放入数据存储器
注
AND
A, x
ACC 与立即数做“与”运算,结果放入 ACC
1
Z
OR
A, x
ACC 与立即数做“或”运算,结果放入 ACC
1
Z
XOR
A, x
ACC 与立即数做“异或”运算,结果放入 ACC
CPL
[m]
对数据存储器取反,结果放入数据存储器
CPLA [m]
1
Z
1注
Z
对数据存储器取反,结果放入 ACC
1
Z
递增数据存储器,结果放入 ACC
1
Z
递增和递减
INCA
[m]
INC
[m]
递增数据存储器,结果放入数据存储器
DECA [m]
递减数据存储器,结果放入 ACC
DEC
递减数据存储器,结果放入数据存储器
[m]
Rev.1.30
156
1
注
Z
1
Z
1注
Z
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
助记符
说明
指令
周期
影响标志位
移位
RRA
[m]
数据存储器右移一位,结果放入 ACC
RR
[m]
数据存储器右移一位,结果放入数据存储器
RRCA [m]
带进位将数据存储器右移一位,结果放入 ACC
RRC
[m]
带进位将数据存储器右移一位,结果放入数据存储器
RLA
[m]
数据存储器左移一位,结果放入 ACC
RL
[m]
数据存储器左移一位,结果放入数据存储器
RLCA [m]
RLC
[m]
带进位将数据存储器左移一位,结果放入 ACC
带进位将数据存储器左移一位,结果放入数据存储器
1
无
1注
无
1
C
1注
C
1
无
1注
无
1
C
1
注
C
数据传送
MOV
A,[m] 将数据存储器送至 ACC
MOV
[m],A 将 ACC 送至数据存储器
MOV
A, x
将立即数送至 ACC
CLR
[m].i
SET
[m].i
1
1
无
注
无
1
无
清除数据存储器的位
1注
无
置位数据存储器的位
1注
无
位运算
转移
JMP
addr 无条件跳转
2
无
SZ
[m]
如果数据存储器为零,则跳过下一条指令
1注
无
SZA
[m]
数据存储器送至 ACC,如果内容为零,则跳过下一条指令
1
注
无
SZ
[m].i 如果数据存储器的第 i 位为零,则跳过下一条指令
1注
无
SNZ
[m].i 如果数据存储器的第 i 位不为零,则跳过下一条指令
1
注
无
SIZ
[m]
递增数据存储器,如果结果为零,则跳过下一条指令
1注
无
SDZ
[m]
递减数据存储器,如果结果为零,则跳过下一条指令
1注
无
SIZA
[m]
递增数据存储器,将结果放入 ACC,如果结果为零,则跳过
下一条指令
1注
无
SDZA
[m]
递减数据存储器,将结果放入 ACC,如果结果为零,则跳过
下一条指令
1注
无
CALL
addr 子程序调用
2
无
2
无
2
无
2
无
读取特定页的 ROM 内容,并送至数据存储器和 TBLH
2注
无
TABRDC [m] 读取当前页的 ROM 内容,并送至数据存储器和 TBLH
2注
无
TABRDL [m] 读取最后页的 ROM 内容,并送至数据存储器和 TBLH
2
无
RET
从子程序返回
RET
A, x 从子程序返回,并将立即数放入 ACC
RETI
从中断返回
查表
TABRD [m]
注
其它指令
NOP
1
空指令
无
CLR
[m] 清除数据存储器
1
SET
[m] 置位数据存储器
1注
无
CLR
WDT 清除看门狗定时器
1
TO, PDF
Rev.1.30
157
注
无
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
助记符
说明
指令
周期
影响标志位
CLR
WDT1 预清除看门狗定时器
1
TO, PDF
CLR
WDT2 预清除看门狗定时器
1
TO, PDF
1注
无
SWAP
[m] 交换数据存储器的高低字节,结果放入数据存储器
SWAPA
[m] 交换数据存储器的高低字节,结果放入 ACC
HALT
进入暂停模式
1
无
1
TO, PDF
注:1. 对跳转指令而言,如果比较的结果牵涉到跳转即需 2 个周期,如果没有发生跳转,则只需一个周期。
2. 任何指令若要改变 PCL 的内容将需要 2 个周期来执行。
3. 对于“CLR WDT1”或“CLR WDT2”指令而言,TO 和 PDF 标志位也许会受执行结果影响,“CLR
WDT1”和“CLR WDT2”被连续地执行后,TO 和 PDF 标志位会被清除,否则 TO 和 PDF 标志位
保持不变
Rev.1.30
158
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
指令定义
ADC A, [m]
指令说明
功能表示
影响标志位
ADCM A, [m]
指令说明
功能表示
影响标志位
ADD A, [m]
指令说明
Add ACC to Data Memory with Carry
将指定的数据存储器、累加器内容和进位标志位相加,
结果存放到指定的数据存储器。
[m] ←ACC + [m] + C
OV、Z、AC、C
功能表示
影响标志位
Add Data Memory to ACC
将指定的数据存储器和累加器内容相加,
结果存放到累加器。
ACC ← ACC + [m]
OV、Z、AC、C
ADD A, x
指令说明
功能表示
影响标志位
Add immediate data to ACC
将累加器和立即数相加,结果存放到累加器。
ACC ← ACC + x
OV、Z、AC、C
ADDM A, [m]
指令说明
Add ACC to Data Memory
将指定的数据存储器和累加器内容相加,
结果存放到指定的数据存储器。
[m] ←ACC + [m]
OV、Z、AC、C
功能表示
影响标志位
AND A, [m]
指令说明
功能表示
影响标志位
Rev.1.30
Add Data Memory to ACC with Carry
将指定的数据存储器、累加器内容以及进位标志相加,
结果存放到累加器。
ACC ← ACC + [m] + C
OV、Z、AC、C
Logical AND Data Memory to ACC
将累加器中的数据和指定数据存储器内容做逻辑与,
结果存放到累加器。
ACC ← ACC“AND”[m]
Z
159
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
AND A, x
指令说明
功能表示
影响标志位
Logical AND immediate data to ACC
将累加器中的数据和立即数做逻辑与,结果存放到累加器。
ACC ← ACC“AND”x
Z
ANDM A, [m]
指令说明
Logical AND ACC to Data Memory
将指定数据存储器内容和累加器中的数据做逻辑与,
结果存放到数据存储器。
[m] ← ACC“AND”[m]
Z
功能表示
影响标志位
CALL addr
指令说明
影响标志位
Subroutine call
无条件地调用指定地址的子程序,此时程序计数器先加 1
获得下一个要执行的指令地址并压入堆栈,接着载入指定
地址并从新地址继续执行程序,由于此指令需要额外的运
算,所以为一个 2 周期的指令。
Stack ← Program Counter + 1
Program Counter ← 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 cleared
TO & PDF ← 0
TO、PDF
功能表示
功能表示
影响标志位
Rev.1.30
160
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
CLR WDT1
指令说明
功能表示
影响标志位
CLR WDT2
指令说明
功能表示
影响标志位
CPL [m]
指令说明
功能表示
影响标志位
CPLA [m]
指令说明
功能表示
影响标志位
Rev.1.30
Preclear Watchdog Timer
PDF 和 TO 标志位都被清 0。必须配合 CLR WDT2 一起使
用清除 WDT 计时器。当程序仅执行 CLR WDT1,而没有
执行 CLR WDT2 时,PDF 与 TO 保留原状态不变。
WDT ← 00H
TO & PDF ← 0
TO、PDF
Preclear Watchdog Timer
PDF 和 TO 标志位都被清 0。必须配合 CLR WDT1 一起使
用清除 WDT 计时器。当程序仅执行 CLR WDT2,而没有
执行 CLR WDT1 时,PDF 与 TO 保留原状态不变。
WDT ← 00H
TO & PDF ← 0
TO、PDF
Complement Data Memory
将指定数据存储器中的每一位取逻辑反,
相当于从 1 变 0 或 0 变 1。
[m] ← [m]
Z
Complement Data Memory with result in ACC
将指定数据存储器中的每一位取逻辑反,相当于从 1 变 0
或 0 变 1,而结果被储存回累加器且数据存储器中的内容
不变。
ACC←[m]
Z
161
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
DAA [m]
指令说明
影响标志位
Decimal-Adjust ACC for addition with result in Data Memory
将累加器中的内容转换为 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 [m]
指令说明
Decrement Data Memory with result in ACC
将指定数据存储器的内容减 1,把结果存放回累加器
并保持指定数据存储器的内容不变。
ACC ← [m] – 1
Z
功能表示
功能表示
影响标志位
HALT
指令说明
影响标志位
Enter power down mode
此指令终止程序执行并关掉系统时钟,RAM 和寄存器的内
容保持原状态,WDT 计数器和分频器被清“0”,暂停标
志位 PDF 被置位 1,WDT 溢出标志位 TO 被清 0。
TO ← 0
PDF ← 1
TO、PDF
INC [m]
指令说明
功能表示
影响标志位
Increment Data Memory
将指定数据存储器的内容加 1。
[m] ← [m] + 1
Z
功能表示
Rev.1.30
162
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
INCA [m]
指令说明
功能表示
影响标志位
JMP addr
指令说明
功能表示
影响标志位
Jump unconditionally
程序计数器的内容无条件地由被指定的地址取代,
程序由新的地址继续执行。当新的地址被加载时,
必须插入一个空指令周期,所以此指令为 2 个周期的指令。
Program Counter ← addr
无
MOV A, [m]
指令说明
功能表示
影响标志位
Move Data Memory to ACC
将指定数据存储器的内容复制到累加器。
ACC← [m]
无
MOV A, x
指令说明
功能表示
影响标志位
Move immediate data to ACC
将 8 位立即数载入累加器。
ACC ← x
无
MOV [m], A
指令说明
功能表示
影响标志位
Move ACC to Data Memory
将累加器的内容复制到指定的数据存储器。
[m] ← ACC
无
NOP
指令说明
功能表示
影响标志位
No operation
空操作,接下来顺序执行下一条指令。
PC ← PC+1
OR A, [m]
指令说明
Logical OR Data Memory to ACC
将累加器中的数据和指定的数据存储器内容逻辑或,
结果存放到累加器。
ACC ← ACC“OR”[m]
Z
功能表示
影响标志位
Rev.1.30
Increment Data Memory with result in ACC
将指定数据存储器的内容加 1,结果存放回累加器并保持
指定的数据存储器内容不变。
ACC ← [m] + 1
Z
无
163
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
OR A, x
指令说明
功能表示
影响标志位
Logical OR immediate data to ACC
将累加器中的数据和立即数逻辑或,结果存放到累加器。
ACC ← ACC“OR”x
Z
ORM A, [m]
指令说明
Logical OR ACC to Data Memory
将存在指定数据存储器中的数据和累加器逻辑或,
结果放到数据存储器。
[m] ← ACC“OR”[m]
Z
功能表示
影响标志位
RET
指令说明
功能表示
影响标志位
RET A, x
指令说明
功能表示
影响标志位
RETI
指令说明
功能表示
Return from subroutine and load immediate data to ACC
将堆栈寄存器中的程序计数器值恢复且累加器载入指定的
立即数,程序由取回的地址继续执行。
Program Counter ← Stack
ACC←x
无
Return from interrupt
将堆栈寄存器中的程序计数器值恢复且中断功能通过设置
EMI 位重新使能。EMI 是控制中断使能的主控制位。如果
在执行 RETI 指令之前还有中断未被相应,则这个中断将
在返回主程序之前被相应。
Program Counter ←Stack
EMI ← 1
影响标志位
无
RL [m]
指令说明
功能表示
Rotate Data Memory left
将指定数据存储器的内容左移 1 位,且第 7 位移到第 0 位。
[m].(i+1) ← [m].i (i=0~6)
[m].0 ← [m].7
无
影响标志位
Rev.1.30
Return from subroutine
将堆栈寄存器中的程序计数器值恢复,
程序由取回的地址继续执行。
Program Counter←Stack
无
164
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
RLA [m]
指令说明
功能表示
影响标志位
无
RLC [m]
指令说明
Rotate Data Memory Left through Carry
将指定数据存储器的内容连同进位标志左移 1 位,
第 7 位取代进位标志且原本的进位标志移到第 0 位。
[m].(i+1) ← [m].i (i=0~6)
[m].0 ← C
C ← [m].7
C
功能表示
影响标志位
RLC A [m]
指令说明
功能表示
影响标志位
RR [m]
指令说明
功能表示
影响标志位
RRA [m]
指令说明
功能表示
影响标志位
Rev.1.30
Rotate Data Memory left with result in ACC
将指定数据存储器的内容左移 1 位,且第 7 位移到第 0 位,
结果送到累加器,而指定数据存储器的内容保持不变。
ACC.(i+1) ← [m].i (i=0~6)
ACC.0 ←[m].7
Rotate Data Memory left through Carry with result in ACC
将指定数据存储器的内容连同进位标志左移 1 位,第 7 位
取代进位标志且原本的进位标志移到第 0 位 , 移位结果送
回累加器,但是指定数据寄存器的内容保持不变。
ACC.(i+1) ← [m].i (i=0~6)
ACC.0 ← C
C ← [m].7
C
Rotate Data Memory right
将指定数据存储器的内容循环右移 1 位且第 0 位移到
第 7 位。
[m].i ← [m].(i+1) (i=0~6)
[m].7 ← [m].0
无
Rotate Data Memory right with result in ACC
将指定数据存储器的内容循环右移 1 位,第 0 位移到
第 7 位,移位结果存放到累加器,而指定数据存储器的内
容保持不变。
ACC.i ← [m].(i+1) (i=0~6)
ACC.7 ← [m].0
无
165
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
RRC [m]
指令说明
功能表示
影响标志位
RRCA [m]
指令说明
功能表示
影响标志位
SBC A, [m]
指令说明
功能表示
影响标志位
SBCM A, [m]
指令说明
功能表示
影响标志位
SDZ [m]
指令说明
功能表示
影响标志位
Rev.1.30
Rotate Data Memory right through Carry
将指定数据存储器的内容连同进位标志右移 1 位,
第 0 位取代进位标志且原本的进位标志移到第 7 位。
[m].i ← [m].(i+1) (i=0~6)
[m].7← C
C ← [m].0
C
Rotate Data Memory right through Carry with result in ACC
将指定数据存储器的内容连同进位标志右移 1 位,第 0 位
取代进位标志且原本的进位标志移到第 7 位 , 移位结果送
回累加器,但是指定数据寄存器的内容保持不变。
ACC.i ← [m].(i+1) (i=0~6)
ACC.7 ← C
C ← [m].0
C
Subtract Data Memory from ACC with Carry
将累加器减去指定数据存储器的内容以及进位标志的反,
结果存放到累加器。如果结果为负,C 标志位清除为 0,
反之结果为正或 0,C 标志位设置为 1。
ACC ← ACC – [m] – C
OV、Z、AC、C、SC、CZ
Subtract Data Memory from ACC with Carry and result in Data
Memory
将累加器减去指定数据存储器的内容以及进位标志的反,
结果存放到数据存储器。如果结果为负,C 标志位清除为 0,
反之结果为正或 0,C 标志位设置为 1。
[m] ← ACC – [m] – C
OV、Z、AC、C、SC、CZ
Skip if Decrement Data Memory is 0
将指定的数据存储器的内容减 1,判断是否为 0,若为 0 则
跳过下一条指令,由于取得下一个指令时会要求插入一个
空指令周期,所以此指令为 2 个周期的指令。如果结果不
为 0,则程序继续执行下一条指令。
[m] ← [m] -1,如果 [m]=0 跳过下一条指令执行
无
166
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
SDZA [m]
指令说明
功能表示
影响标志位
将指定数据存储器内容减 1,判断是否为 0,如果为 0 则跳
过下一条指令,此结果将存放到累加器,但指定数据存储
器内容不变。由于取得下一个指令时会要求插入一个空指
令周期,所以此指令为 2 个周期的指令。如果结果不为 0,
则程序继续执行下一条指令。
ACC ← [m]-1,如果 ACC=0 跳过下一条指令执行
无
SET [m]
指令说明
功能表示
影响标志位
Set Data Memory
将指定数据存储器的每一位设置为 1。
[m] ← FFH
无
SET [m].i
指令说明
功能表示
影响标志位
Set bit of Data Memory
将指定数据存储器的第 i 位置位为 1。
[m].i ← 1
无
SIZ [m]
指令说明
Skip if increment Data Memory is 0
将指定的数据存储器的内容加 1,判断是否为 0,若为 0 则
跳过下一条指令。由于取得下一个指令时会要求插入一个
空指令周期,所以此指令为 2 个周期的指令。如果结果不
为 0,则程序继续执行下一条指令。
[m] ←[m]+1,如果 [m]=0 跳过下一条指令执行
无
功能表示
影响标志位
SIZA [m]
指令说明
功能表示
影响标志位
Rev.1.30
Decrement data memory and place result in ACC,skip if 0
Skip if increment Data Memory is zero with result in ACC
将指定数据存储器的内容加 1,判断是否为 0,如果为 0 则
跳过下一条指令,此结果会被存放到累加器,但是指定数
据存储器的内容不变。由于取得下一个指令时会要求插入
一个空指令周期,所以此指令为 2 个周期的指令。如果结
果不为 0,则程序继续执行下一条指令。
ACC ←[m]+1,如果 ACC=0 跳过下一条指令执行
无
167
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
SNZ [m].i
指令说明
功能表示
影响标志位
SUB A, [m]
指令说明
功能表示
影响标志位
SUBM A, [m]
指令说明
功能表示
影响标志位
SUB A, x
指令说明
无
Subtract Data Memory from ACC
将累加器的内容减去指定的数据存储器的数据,把结果存
放到累加器。如果结果为负,C 标志位清除为 0,反之结果
为正或 0,C 标志位设置为 1。
ACC ← ACC – [m]
OV、Z、AC、C、SC、CZ
Subtract Data Memory from ACC with result in Data Memory
将累加器的内容减去指定数据存储器的数据,结果存放到
指定的数据存储器。如果结果为负,C 标志位清除为 0,
反之结果为正或 0,C 标志位设置为 1。
[m] ← ACC – [m]
OV、Z、AC、C、SC、CZ
功能表示
影响标志位
Subtract immediate Data from ACC
将累加器的内容减去立即数,结果存放到累加器。如果结
果为负,C 标志位清除为 0,反之结果为正或 0,C 标志位
设置为 1。
ACC ← ACC – x
OV、Z、AC、C、SC、CZ
SWAP [m]
指令说明
功能表示
影响标志位
Swap nibbles of Data Memory
将指定数据存储器的低 4 位和高 4 位互相交换。
[m].3~[m].0 ↔ [m].7~[m].4
无
SWAPA [m]
指令说明
Swap nibbles of Data Memory with result in ACC
将指定数据存储器的低 4 位与高 4 位互相交换,再将结果
存放到累加器且指定数据寄存器的数据保持不变。
ACC.3~ACC.0 ← [m].7~[m].4
ACC.7~ACC.4 ← [m].3~[m].0
无
功能表示
影响标志位
Rev.1.30
Skip if bit i of Data Memory is not 0
判断指定数据存储器的第 i 位,若不为 0,则程序跳过下一
条指令执行。由于取得下一个指令时会要求插入一个空指
令周期,所以此指令为 2 个周期的指令。如果结果为 0,
则程序继续执行下一条指令。
如果 [m].i≠0,跳过下一条指令执行
168
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
SZ [m]
指令说明
功能表示
影响标志位
SZA [m]
指令说明
功能表示
影响标志位
SZ [m].i
指令说明
功能表示
影响标志位
TABRD [m]
指令说明
功能表示
影响标志位
TABRDC [m]
指令说明
功能表示
影响标志位
Rev.1.30
Skip if Data Memory is 0
判断指定数据存储器的内容是否为 0,若为 0,则程序跳过
下一条指令执行。由于取得下一个指令时会要求插入一个
空指令周期,所以此指令为 2 个周期的指令。如果结果不
为 0,则程序继续执行下一条指令。
如果 [m]=0, 跳过下一条指令执行
无
Skip if Data Memory is 0 with data movement to ACC
将指定数据存储器内容复制到累加器,并判断指定数据存
储器的内容是否为 0,若为 0 则跳过下一条指令。由于取
得下一个指令时会要求插入一个空指令周期,所以此指令
为 2 个周期的指令。如果结果不为 0,则程序继续执行下
一条指令。
ACC ←[m],如果 [m]=0,跳过下一条指令执行
无
Skip if bit i of Data Memory is 0
判断指定数据存储器的第 i 位是否为 0,若为 0,则跳过下
一条指令。由于取得下一个指令时会要求插入一个空指令
周期,所以此指令为 2 个周期的指令。如果结果不为 0,
则程序继续执行下一条指令。
如果 [m].i=0,跳过下一条指令执行
无
Read table (specific page) to TBLH and Data Memory
将 表 格 指 针 对 TBHP 和 TBLP 所 指 的 程 序 代 码 低 字 节
( 指定页 ) 移至指定数据存储器且将高字节移至 TBLH。
[m] ← 程序代码 ( 低字节 )
TBLH ← 程序代码 ( 高字节 )
无
Read table (current page) to TBLH and Data Memory
将表格指针 TBLP 所指的程序代码低字节 ( 当前页 ) 移至
指定的数据存储器且将高字节移至 TBLH。
[m] ← 程序代码 ( 低字节 )
TBLH ← 程序代码 ( 高字节 )
无
169
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
TABRDL [m]
指令说明
功能表示
影响标志位
XOR A, [m]
指令说明
功能表示
影响标志位
XORM A, [m]
指令说明
Rev.1.30
Read table ( last page ) to TBLH and Data Memory
将表格指针 TBLP 所指的程序代码低字节 ( 最后一页 )
移至指定数据存储器且将高字节移至 TBLH。
[m] ← 程序代码 ( 低字节 )
TBLH ← 程序代码 ( 高字节 )
无
Logical XOR Data Memory to ACC
将累加器的数据和指定的数据存储器内容逻辑异或,
结果存放到累加器。
ACC ← ACC“XOR”[m]
Z
功能表示
影响标志位
Logical XOR ACC to Data Memory
将累加器的数据和指定的数据存储器内容逻辑异或,
结果放到数据存储器。
[m] ← ACC“XOR”[m]
Z
XOR A, x
指令说明
功能表示
影响标志位
Logical XOR immediate data to ACC
将累加器的数据与立即数逻辑异或,结果存放到累加器。
ACC ← ACC“XOR”x
Z
170
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
封装信息
请注意,这里提供的封装信息仅作为参考。由于这个信息经常更新,提醒用户
咨询 Holtek 网站以获取最新版本的封装信息。
封裝信息的相关内容如下所示,点击可链接至 Holtek 网站相关信息页面。
● 封装信息 ( 包括外形尺寸、包装带和卷轴规格 )
● 封装材料信息
● 纸箱信息
Rev.1.30
171
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
28-pin SSOP (150mil) 外形尺寸
符号
A
B
C
C’
D
E
F
G
H
α
符号
A
B
C
C’
D
E
F
G
H
α
Rev.1.30
最小值
—
—
0.008
—
—
—
0.004
0.016
0.004
0°
尺寸 ( 单位:inch)
典型值
0.236 BSC
0.154 BSC
—
0.390 BSC
—
0.025 BSC
—
—
—
—
最大值
—
—
0.012
—
0.069
—
0.010
0.050
0.010
8°
最小值
—
—
0.20
—
—
—
0.10
0.41
0.10
0°
尺寸 ( 单位:mm)
典型值
6.0 BSC
3.9 BSC
—
9.9 BSC
—
0.635 BSC
—
—
—
—
最大值
—
—
0.30
—
1.75
—
0.25
1.27
0.25
8°
172
2016-12-05
HT45F4N/HT45FH4N
移动电源 Flash 单片机
Copyright© 2016 by HOLTEK SEMICONDUCTOR INC.
使用指南中所出现的信息在出版当时相信是正确的,然而盛群对于说明书的使用不负任何责任。文
中提到的应用目的仅仅是用来做说明,盛群不保证或表示这些没有进一步修改的应用将是适当的,
也不推荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使
用于救生、维生从机或系统中做为关键从机。盛群拥有不事先通知而修改产品的权利,对于最新的
信息,请参考我们的网址 http://www.holtek.com/zh/.
Rev.1.30
173
2016-12-05