HT46R53A/HT46R54A
A/D
型八位
型八位
型八位 型八位
盛群知识产权政策
盛群知识产权政策
盛群知识产权政策 盛群知识产权政策
专利权
专利权
专利权 专利权
盛群半导体公司在全球各地区已核准和申请中之专利权至少有 160 件以上,享有绝对之合法权益。与盛群
公司 MCU 或其它产品有关的专利权并未被同意授权使用,任何经由不当手段侵害盛群公司专利权之公司、
组织或个人,盛群将采取一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨盛群公司因侵权行为
所受之损失、或侵权者所得之不法利益。
商标
商标权权权权
商标 商标
盛群之名称和标识、Holtek 标识、HT-IDE、HT-ICE、Marvel Speech、 Music Micro、 Adlib Micro、 Magic
Voice、 Green Dialer、 PagerPro、 Q-Voice、 Turbo Voice、 EasyVoice和 HandyWriter
司在台湾地区和其它国家的注册商标。
OTP
都是盛群半导体公
单片机
单片机
单片机 单片机
著作权
著作权
著作权 著作权
Copyright 2006 by HOLTEK SEMICONDUCTOR INC.
规格书中所出现的信息在出版当时相信是正确的,然而盛群对于规格内容的使用不负责任。文中提到的应
用其目的仅仅是用来做说明,盛群不保证或不表示这些应用没有更深入的修改就能适用,也不推荐它的产
品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救生、维生器件或
系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请参考我们的网址
http://www.holtek.com.tw; http://www.holtek.com.cn
Rev. 1.00 1 2005-08-24
技术相关信息
技术相关信息
技术相关信息 技术相关信息
· 工具信息
· FAQs
· 应用范例
− HA0003S HT48 & HT46 MCU 与 HT93LC46 EEPROM 的通信
− HA0004S HT48 & HT46 MCU UART 的软件实现方法
− HA0084S HT46R52 之应用-镍氢电池充电器展示板
特性
特性
特性 特性
HT46R53A/HT46R54A
• 低功耗的全静态 CMOS 设计
• 工作电压:
• f
• f
• 程序存储器:
=4MHz: 2.2V~5.5V
SYS
=8MHz: 3.3V~5.5V
SYS
2K×15 OTP(HT46R53A)
4K× 15 OTP( HT46R54A)
• 数据存储器:
192× 8 RAM( HT46R53A)
280× 8 RAM( HT46R54A)
• A/D 转换器:12bits ×8 通道
具有外部的
• 有 22 个双向输入/ 输出口
• 1 个与输入 /输出口共用引脚的外部中断输入
• 8 位可编程定时 /计数器 ,具有溢出中断和 7 级
转换器的参考电压输入引脚
A/D
预分频器
概述
概述
概述 概述
• 内置晶体和 RC 振荡电路
• 6 层硬件堆栈
• 看门狗定时器
• 低电压复位功能
• HALT 和唤醒功能可降低功耗
•
在
VDD=5V
,系统频率为
8MHz
时,指令周期
为 0.5µ s
• 1 通道 8 位的 PWM 输出,与输入/ 输出口共用
引脚
• PFD 功能
• 位操作指令
查表指令
•
• 63 条指令
• 指令执行时间为 1 或 2 个指令周期
• 28-pinSKDIP/SOP 封装
HT46R53A/ HT46R54A 是 8 位高性能精简指令集单片机,专门为需要 A/D 转换的产品而设计,例如
传感器信号输入。
低功耗、
使用灵活、计数器、振荡类型选择、多通道
I/O
转换、脉宽调制功能、暂停和唤醒功能,
A/D
看门狗定时器,并且价格便宜,使这款单片机更具多功能性,可以广泛应用于传感器的 A/D 转换、充电器、
电机控制、工业控制、消费类产品、子系统控制器等应用中。
Rev. 1.00 2 2005-08-24
方框图
方框图
方框图 方框图
HT46R53A/HT46R54A
I N T
f
S Y S
f
/ 4
W D T O S C
S Y SP r e s c a l e r
P r o g r a m
R O M
I n s t r u c t i o n
R e g i s t e r
I n s t r u c t i o n
D e c o d e r
T i m i n g
G e n e r a t o r
P r o g r a m
C o u n t e r
B P
M P
A L U
S h i f t e r
M U X
S T A C K
M
U
X
D A T A
M e m o r y
S T A T U S
I n t e r r u p t
C i r c u i t
I N T C
T M R C
T M R
W D T S
W D T
P r e s c a l e r
P A
P o r t A
P A C
A / D C o n v e r t e r
P B
P o r t B
P B C
P C
P o r t C
P C C
M
U
X
E N / D I S
W D T
T M R
M
U
X
P A 0 ~ P A 2 , P A 3 / P F D
P A 4 / T M R , P A 5 / I N T
P A 6 ~ P A 7
V D D
M
U
X
V R E F
P B 0 / A N 0 ~ P B 7 / A N 7
P C 0 ~ P C 4
引脚图
引脚图
引脚图 引脚图
O S C 2 O S C 1
R E S
V D D
V S S
A C C
O p t i o n R O M
O T P O n l y
P A 3 / P F D
P A 2
P A 1
P A 0
P D 0 / P W M
V R E F
V S S
P B 0 / A N 0
P B 1 / A N 1
P B 2 / A N 2
P B 3 / A N 3
P C 0
P C 1
P C 2
H T 4 6 R 5 3 A / H T 4 R 5 4 A
2 8 S K D I P - A / S O P - A
P D
P o r t D
P D C
P D 0 / P W M
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
1 3
1 4
P A 5 / I N T
2 7
P A 6
2 6
2 5
P A 7
O S C 2
2 4
O S C 1
2 3
V D D
2 2
2 1
R E S
P B 7 / A N 7
2 0
P B 6 / A N 6
1 9
P B 5 / A N 5
1 8
P B 4 / A N 4
1 7
P C 4
1 6
P C 3
1 5
P A 4 / T M R
2 8
Rev. 1.00 3 2005-08-24
引脚说明
引脚说明
引脚说明 引脚说明
引脚名称
引脚名称 输入
引脚名称 引脚名称
PA0~PA2
PA3/PFD
PA4/TMR
PA5/
PA6~PA7
PB0/AN0~
PB7/AN7
PC0~PC4
PD0/PWM
OSC1
OSC2
RES
VDD
VSS
VREF
INT
输入/ 输出
输出 掩膜选项
输入 输入
输出 输出
输入/ 输出
输入/ 输出 上拉电阻
输入/输出 上拉电阻
输入/ 输出
输入
输出
输入 — 斯密特触发复位输入,低电平有效。
—
— — 负电源,接地。
输入 —
掩膜选项 功能说明
掩膜选项 掩膜选项
上拉电阻
唤醒功能
PA3或PFD
上拉电阻
PWM
晶体或 RC
—
8 位双向输入/ 输出口。每一位可由掩膜选项设置为唤醒输
入。可由软件设置为 CMOS 输出或者斯密特触发输入。掩
膜选项可以按位选择引脚带或不带上拉电阻。
PFD、 TMR 和
8 位双向输入 /输出口。可由软件设置为 CMOS 输出、带或
不带上拉电阻(由上拉电阻选项决定:位选择)的斯密特触发
输入。PB 口与 A/D 输入共用引脚。
一旦 PB 有一个口做为 A/D 输入(由软件设置),则其输入/
输出功能和上拉电阻会自动失效。
5 位双向输入/输出口。可由软件设置为 CMOS 输出、带或
不带上拉电阻(由上拉电阻选项决定:端口选择)的斯密特触
发输入。
位双向输入/输出口。可由软件设置为
1
不带上拉电阻(由上拉电阻选项决定:端口选择)的斯密特触
发输入。
PWM 输出与 PD0 共用引脚。
OSC1 和 OSC2 连接 RC 或晶体 (由掩膜选项确定 )以产生内
部系统时钟。在 RC 振荡方式下,OSC2 是系统时钟四分频
的输出口。
正电源。
A/D 转换器参考电压输入引脚。将期望的 A/D 参考电压连
接至此引脚。
INT
功能说明
功能说明 功能说明
分别与 PA3、PA4 和 PA5 共用引脚。
HT46R53A/HT46R54A
CMOS
输出、带或
极限参数
极限参数
极限参数 极限参数
电源供应电压………….V SS-0.3V~VSS+6.0V 储存温度………….-50℃~125℃
端口输入电压………….V SS-0.3V~VDD+0.3V 工作温度………….-40℃~125℃
IOL总电流…………. ………. ……….150mA IOH总电流…………. …. -100mA
总消耗电流………. ………. ……….500mW
注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作状态,而
且若长期在标示范围外的条件下工作,可能影响芯片的可靠性。
Rev. 1.00 4 2005-08-24
直流电气特性
直流电气特性
直流电气特性 直流电气特性
符号
符号
符号 符号
VDD
I
DD1
I
DD2
I
DD3
I
STB1
I
STB2
V
V
IH1
V
V
IH2
V
LVR
IOL
IOH
RPH
VAD
V
REF
DNL
INL
RESOLU
I
ADC
工作电压 —
工作电流(晶体振荡
工作电流(RC 振荡)
工作电流
静态电流(看门狗打开)
静态电流
(看门狗和 A/D 关闭)
输入/ 输出口、TMR 和
IL1
IL2
INT
输入 /输出口、 TMR 和
INT
低电平输入电压(
高电平输入电压
低电压复位 — 掩膜选项:3V
输入/ 输出口灌电流
输入/ 输出口源电流
上拉电阻
A/D 输入电压 —
ADC 输入参考电压范围 —
ADC
ADC 非线性积分 —
分辨率 —
打开
HT46R53A/HT46R54A
Ta=25
测试条件
测试条件
参数
参数
参数 参数
)
的低电平输入电压
的高电平输入电压
)
(
)
RES
非线性微分
ADC
增加的功耗
V
3V
5V
3V
5V
5V
3V
5V
3V
5V
—
—
—
—
3V
5V
3V
5V
3V
5V
—
3V
5V
测试条件 测试条件
条件
条件
DD
f
f
条件 条件
=4MHz 2.2
SYS
=8MHz 3.3
SYS
无负载, f
ADC 关闭
无负载,
ADC 关闭
无负载,f
ADC 关闭
无负载,系统 HALT
无负载,系统 HALT
VOL=0.1VDD
VOH=0.9VDD
最小
最小 典型
最小 最小
典型 最大
典型 典型
—
—
0.6 1.5 mA
2 4 mA
0.8 1.5 mA
2.5 4 mA
4 8 mA
f
SYS
SYS
SYS
=4MHz
=4MHz
=8MHz
—
—
—
—
—
— —
— —
— —
—
—
—
—
—
0
0.7V
0
0.9 V
DD
DD
—
—
—
—
—
2.7 3 3.3 V
4 8
10 20
-2 -4
-5 -10
—
—
—
—
—
— —
20 60 100
10 30 50
0
1.2
—
—
—
—
±2.5 ±4 LSB
— — —
—
—
—
0.5 1 mA
1.5 3 mA
最大 单位
最大 最大
0.3V
0.4V
V
5.5 V
5.5 V
5 µ A
10 µ A
1 µ A
2 µ A
DD
VDD V
DD
VDD V
—
—
—
—
V
REF
VDD V
±2 LSB
12 Bits
℃℃ ℃℃
单位
单位 单位
mA
mA
mA
mA
V
V
kΩ
kΩ
Rev. 1.00 5 2005-08-24
HT46R53A/HT46R54A
交流电气特性
交流电气特性
交流电气特性 交流电气特性
符号
符号 参数
符号 符号
f
系统时钟(晶体振荡)
定时器输入频率(TMR)
看门狗振荡器
外部复位低电平脉宽 — —
系统启动延迟时间 — 从 HALT 状态唤醒
中断脉冲宽度 — —
A/D 时钟周期 — —
SYS
转换时间
A/D
A/D 采样时间 — — —
=1/f
SYS
SYS
f
TIMER
t
WDTOSC
t
RES
t
SST
t
INT
tAD
t
ADC
t
ADCS
注: t
Ta=25℃℃℃℃
测试条件
测试条件
参数
参数 参数
VDD
—
—
—
—
3V
5V
—
测试条件 测试条件
条件
条件
条件 条件
2.2V~5.5V 400
3.3V~5.5V 400
2.2V~5.5V 0
3.3V~5.5V 0
—
—
—
最小
最小 典型
最小 最小
典型 最大
典型 典型
—
—
—
—
最大 单位
最大 最大
4000 kHz
8000 kHz
4000 kHz
8000 kHz
45 90 180 µ s
32 65 130 µ s
1
—
1
1
—
— —
1024
— —
— —
80
32
—
—
—
单位
单位 单位
µ s
t
SYS
µs
µs
tAD
tAD
Rev. 1.00 6 2005-08-24
HT46R53A/HT46R54A
系统功能说明
系统功能说明
系统功能说明 系统功能说明
指令执行时序
指令执行时序
指令执行时序 指令执行时序
单片机的系统时钟由晶体振荡器或RC振荡器产生。该时钟在芯片内部被分成四个互不重叠的时钟周
期。一个指令周期包括四个系统时钟周期。
指令的读取和执行是以流水线方式进行的, 这种方式在一个指令周期进行读取指令操作,而在下一个
指令周期进行解码与执行该指令。因此,流水线方式使多数指令能在一个周期内执行完成。但如果渉及到
的指令要改变程序计数器的值,就需要花两个指令周期来完成这一条指令。
S y s t e m C l o c k
O S C 2 ( R C o n l y )
T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4
P C
P C P C + 1 P C + 2
F e t c h I N S T ( P C )
E x e c u t e I N S T ( P C - 1 )
F e t c h I N S T ( P C + 1 )
E x e c u t e I N S T ( P C )
F e t c h I N S T ( P C + 2 )
E x e c u t e I N S T ( P C + 1 )
指令执行时序
指令执行时序
指令执行时序 指令执行时序
程序计数器
程序计数器 ———— PC
程序计数器 程序计数器
HT46R53A 的程序计数器(PC) 的宽度为 11 位,用来控制程序存储器 ROM 中指令执行的顺序,它可寻
址
个地址的范围。
2048
HT46R54A
的程序计数器
的宽度为12位,用来控制程序存储器
(PC)
中指令执行的顺序,它可寻
ROM
址 4096 个地址的范围。
程序计数器
程序计数器
模式
模式
模式 模式
初始化复位
外部中断
定时/计数器中断
转换中断
A/D
条件跳跃
装载 PCL
跳转、子程序调用
从子程序返回
注: *b11 ~ *b0 :程序计数器位
*b11 *b10 *b10 *b8 *b7 *b6 *b5 *b4 *b3 *b2 *b1 *b0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 1 1 0 0
PC11 PC10 PC9 PC8 @7 @6 @5 @4 @3 @2 @1 @0
#11 #10 #9 #8 #7 #6 #5 #4 #3 #2 #1 #0
S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0
程序计数器
程序计数器
程序计数器 程序计数器
S11 ~ S0 :堆栈寄存器位
#11 ~ #0 :指令代码位
@7 ~ @0 :PCL位,PC11~ PC8:PC
对于 HT46R53A 来说,程序计数器有 11 位宽(b0 ~ b10 ),表格中的 b11 一栏是没有用的。
对于 HT46R54A 来说,程序计数器有 12 位宽,例如 b0 ~ b11
程序计数器 程序计数器
Program Counter+2
计数器原始值,保持不变
取得指令码以后,程序计数器会自动加一,指向下一个指令码的地址。但如果执行跳转、条件跳跃、
向 PCL 赋值、子程序调用、初始化复位、内部中断、外部中断、子程序返回等操作时,Program Counter
会载入与指令相关的地址而非下一条指令地址。
当遇到条件跳跃指令且符合条件时,当前指令执行过程中读取的下一条指令会被丢弃,取而代之的是
一个空指令周期,随后才能取得正确的指令。反之,就会顺序执行下一条指令。
Rev. 1.00 7 2005-08-24
HT46R53A/HT46R54A
程序计数器的低字节(PCL) 是一个可读写的寄存器(06H) 。对 PCL 赋值将产生一个短跳转动作,跳转的
范围为当前页 256 个地址。
当遇到控制转移指令时,系统也会插入一个空指令周期。
程序存储器
程序存储器 ———— EPROM
程序存储器 程序存储器
程序存储器
(EPROM)
用来存放要执行的指令代码,以及一些数据、表格和中断入口。程序存储器有
2048×15 位(HT46R53A ),或者 4096×15 位( HT46R54A )程序存储器空间可以用程序计数器或表格指针
进行寻址。
0 0 0 H
0 0 4 H
0 0 8 H
0 0 C H
0 1 0 H
0 1 4 H
0 1 8 H
n 0 0 H
n F F H
7 0 0 H
7 F F H
D e v i c e I n i t i a l i z a t i o n P r o g r a m
E x t e r n a l I n t e r r u p t S u b r o u t i n e
T i m e r / E v e n t C o u n t e r I n t e r r u p t S u b r o u t i n e
A / D C o n v e r t e r I n t e r r u p t S u b r o u t i n e
L o o k - u p T a b l e ( 2 5 6 w o r d s )
L o o k - u p T a b l e ( 2 5 6 w o r d s )
1 5 b i t s
N o t e : n = 0 ~ 7
H T 4 6 R 5 3 A
P r o g r a m
M e m o r y
程序存储器
程序存储器
程序存储器 程序存储器
0 0 0 H
0 0 4 H
0 0 8 H
0 0 C H
0 1 0 H
0 1 4 H
0 1 8 H
n 0 0 H
n F F H
F 0 0 H
F F F H
D e v i c e I n i t i a l i z a t i o n P r o g r a m
E x t e r n a l I n t e r r u p t S u b r o u t i n e
T i m e r / E v e n t C o u n t e r I n t e r r u p t S u b r o u t i n e
A / D C o n v e r t e r I n t e r r u p t S u b r o u t i n e
L o o k - u p T a b l e ( 2 5 6 w o r d s )
L o o k - u p T a b l e ( 2 5 6 w o r d s )
1 5 b i t s
N o t e : n = 0 ~ F
H T 4 6 R 5 4 A
P r o g r a m
M e m o r y
以下列出的程序存储器地址是系统专为特殊用途而保留的:
· 地址 000H
该地址为程序初始化保留。系统复位后,程序总是从 000H 开始执行。
· 地址 004H
该地址为外部中断服务程序保留。当
引脚有触发信号输入,如果中断允许且堆栈未满,则程序会
INT
跳转到 004H 地址开始执行。
· 地址
008H
该地址为定时/ 计数器中断服务程序保留。当定时/ 计数器溢出,如果中断允许且堆栈未满,则程序会
跳转到 008H 地址开始执行。
· 地址 00CH
该地址为 A/D 转换中断服务程序保留。当 A/D 转换完成,如果中断允许且堆栈未满,则程序会跳转
到 00CH 地址开始执行。
· 表格区
ROM 空间的任何地址都可做为查表使用。查表指令“TABRDC [m]”(查当前页表格,1 页=256 个字)
和“TABRDL [m]”(查最后页表格),会把表格内容低字节传送给[m],而表格内容高字节传送到 TBLH
寄存器(08H)。只有表格内容的低字节被传送到目标地址中,而高字节被传送到表格内容高字节寄存器
TBLH,并且 TBLH 的最高位始终为“0”。表格内容高字节寄存器 TBLH 是只读寄存器。表格指针(TBLP)
是可读/写寄存器
,用来指明表格地址。在查表之前,要先将表格地址写入
(07H)
TBLP
中。如果主程
序和中断服务程序(ISR) 都用到查表指令,主程序中 TBLH 的值可能会因为 ISR 中执行的查表指令而发
生变化,产生错误。也就是说,要避免在主程序和中断服务程序中都使用查表指令。但如果必须这样
做的话,我们可以在查表指令前先将中断禁止,在保存了 TBLH 的值后再开放中断以避免发生错误。
所有与表格有关的指令都需要两个指令周期的执行时间。
Rev. 1.00 8 2005-08-24
HT46R53A/HT46R54A
表格区
表格区
表格区
表格区
表格区 表格区
表格区 表格区
b0 ~ b10
),表格中的
一栏是没有用的。
b11
指令
指令
指令 指令
b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
TABRDC[m] P11 P10 P9 P8 @7 @6 @5 @4 @3 @2 @1 @0
TABRDL[m] 1 1 1 1 @7 @6 @5 @4 @3 @2 @1 @0
注: 11~0:表格地址位
P11~P8:当前程序指针位
@7~@0:表格指针位
对于
HT46R53A
对于 HT46R54A 来说,表格地址有 12 位宽,从 b0 ~ b11 。
堆栈寄存器
堆栈寄存器 ———— STACK
堆栈寄存器 堆栈寄存器
来说,表格地址有11位宽(
堆栈寄存器是特殊的存储器空间,用来保存 Program Counter 的值。系统有 6 层堆栈,堆栈寄存器既
不是数据存储器的一部分,也不是程序存储器的一部分,而且它既不能读出,也不能写入。堆栈的使用是
通过堆栈指针(SP) 来实现的,堆栈指针也不能读出或写入。当发生子程序调用或中断响应时,程序计数器
(Program Counter) 的值会被压入堆栈;在子程序调用结束或中断响应结束时(执行指令 RET 或 RETI) ,堆栈
将原先压入堆栈的内容弹出,重新装入程序计数器中。在系统复位后,堆栈指针会指向堆栈顶部。
如果堆栈已满,并且发生了不可屏蔽的中断,那么只有中断请求标志会被记录下来,而中断响应会被
抑制,直到堆栈指针(执行 RET 或 RETI 指令)发生递减,中断才会被响应。这个功能可以防止堆栈溢出,
使得程序员易于使用这种结构。同样,如果堆栈已满,并且发生了子程序调用,那么堆栈会发生溢出,首
先进入堆栈的内容将会丢失,只有最后的 6 个返回地址会被保留。
数据存储器
数据存储器 ———— RAM
数据存储器 数据存储器
数据存储器(RAM)由 217×8 位(HT46R53A)或 306×8 位(HT46R54A)组成,分为两个功能区间:特殊
功能寄存器(HT46R53A:25×8 位,HT46R54A:26×8 位)和通用数据存储器(HT46R53A:192×8 位,
HT46R54A:Bank0 216×8 位,Bank1 64×8 位),数据存储器单元大多数是可读/写的,但有些是只读
的。
对于 HT46R53A ,在 28H 之前的未用空间保留给系统以后扩展使用,读取这些地址的返回值为“00H ”。
通用数据寄存器地址从 28H 到 E7H ,用来存储数据和控制信息。所有的数据存储器单元都能直接执行算术、
逻辑、递增、递减和循环操作。除了一些特殊位外,数据存储器的每一位都可由“SET[m].i ”置位或由
“
CLR[m].i
”复位。而且都可以通过间接寻址指针
(MP0;01H/MP1;03H)
进行间接寻址。
对于 HT46R54A ,在 28H 之前的未用空间保留给系统以后扩展使用,读取这些地址的返回值为“00H ”。
在 每 一 个 存 储 区 段 (BANK) 的 40H 之 前 的 地 址 都 是 重 叠 的 。 通 用 数 据 寄 存 器 地 址 从 28H 到
FFH(Bank0;BP=00H) 和 40H 到 7FH(Bank1;BP=01H) ,用来存储数据和控制信息。所有的数据存储器单元都
能直接执行算术、逻辑、递增、递减和循环操作。除了一些特殊位外,数据存储器的每一位都可由“SET[m].i ”
置位或由“CLR[m].i”复位。当 BP 值设为“01H ”,Bank1 中的存储器可以通过间接寻址指针(MP1;03H)
进行间接寻址。直接寻址将访问
Bank0
中的存储器。
Rev. 1.00 9 2005-08-24
I n d i r e c t A d d r e s s i n g R e g i s t e r 0
0 0 H
0 1 H
I n d i r e c t A d d r e s s i n g R e g i s t e r 1
0 2 H
0 3 H
0 4 H
0 5 H
0 6 H
0 7 H
0 8 H
0 9 H
0 A H
0 B H
0 C H
0 D H
0 E H
0 F H
1 0 H
1 1 H
1 2 H
1 3 H
1 4 H
1 5 H
1 6 H
1 7 H
1 8 H
1 9 H
1 A H
1 B H
1 C H
1 D H
1 E H
1 F H
2 0 H
2 1 H
2 2 H
2 3 H
2 4 H
2 7 H
2 8 H
E 7 H
G e n e r a l P u r p o s e
D a t a M e m o r y
H T 4 6 R 5 3 A H T 4 6 R 5 4 A
I n d i r e c t A d d r e s s i n g R e g i s t e r 0
M P 0
M P 1
A C C
P C L
T B L P
T B L H
S T A T U S
I N T C
T M R
T M R C
P A
P A C
P B
P B C
P C
P C C
P D
P D C
P W M
A D R L
A D R H
A D C R
A C S R
( 1 9 2 B y t e s )
S p e c i a l P u r p o s e
D a t a M e m o r y
: U n u s e d
R e a d a s " 0 0 "
0 0 H
0 1 H
I n d i r e c t A d d r e s s i n g R e g i s t e r 1
0 2 H
0 3 H
0 4 H
0 5 H
0 6 H
0 7 H
0 8 H
0 9 H
0 A H
0 B H
0 C H
0 D H
0 E H
0 F H
1 0 H
1 1 H
1 2 H
1 3 H
1 4 H
1 5 H
1 6 H
1 7 H
1 8 H
1 9 H
1 A H
1 B H
1 C H
1 D H
1 E H
1 F H
2 0 H
2 1 H
2 2 H
2 3 H
2 4 H
2 7 H
2 8 H
F F H
数据存储器
数据存储器
数据存储器 数据存储器
G e n e r a l P u r p o s e
D a t a M e m o r y
M P 0
M P 1
B P
A C C
P C L
T B L P
T B L H
S T A T U S
I N T C
T M R
T M R C
P A
P A C
P B
P B C
P C
P C C
P D
P D C
P W M
A D R L
A D R H
A D C R
A C S R
( 2 1 6 B y t e s )
HT46R53A/HT46R54A
S p e c i a l P u r p o s e
D a t a M e m o r y
: U n u s e d
R e a d a s " 0 0 "
4 0 H
7 F H
G e n e r a l P u r p o s e
D a t a M e m o r y
( 6 4 B y t e s )
B a n k 1
间接寻址寄存器
间接寻址寄存器
间接寻址寄存器 间接寻址寄存器
地址 00H 和 02H 是间接寻址寄存器,并无实际的物理区存在。任何对[00H] 或[02H] 的读/ 写操作,都
是访问由 MP0(01H)MP1(03H) 或所指向的 RAM 单元。间接读取地址 00H 或 02H 得到的值为 00H ,间接写
入此地址,不会产生任何操作。间接寻址指针 MP0(01H) 和 MP1(03H) 是 8 位寄存器。
累加器
累加器
累加器 累加器
累加器(ACC) 与算术逻辑单元(ALU)有密切关系。它对应于 RAM 地址 05H ,做为运算的立即数据。存
储器之间的数据传送必须经过累加器。
Rev. 1.00 10 2005-08-24
HT46R53A/HT46R54A
算术逻辑单元
算术逻辑单元 ————
算术逻辑单元 算术逻辑单元
算术逻辑单元(ALU) 是执行 8 位算术、逻辑运算的电路,它提供有以下功能:
· 算术运算(ADD ,ADC ,SUB ,SBC ,DAA)
· 逻辑运算(AND ,OR ,XOR ,CPL)
· 移位运算
· 递增和递减(INC ,DEC)
· 分支判断(SZ ,SNZ ,SIZ ,SDZ…)
ALU 不仅可以储存数据运算的结果,还会改变状态寄存器的值。
状态寄存器
状态寄存器 ———— STATUS
状态寄存器 状态寄存器
8 位的状态寄存器(0AH) ,由零标志位(Z) 、进位标志位 (C) 、辅助进位标志位 (AC) 、溢出标志位 (OV) 、
暂停标志位(PDF) 和看门狗定时器溢出标志位(TO) 组成。该寄存器不仅记录状态信息,而且还控制操作顺
序。
除了 PDF 和 TO 标志外,状态寄存器的其它位都可以用指令改变。任何对状态寄存器的写操作都不会
改变 PDF 和 TO 的值。对状态寄存器的操作可能会导致与预期不一样的结果。TO 标志只受系统上电、看
门狗溢出、“CLR WDT ” 指令或“HALT” 指令的影响。PDF 标志只受系统上电、“CLR WDT” 指令或
“HALT” 指令的影响。
标志位 Z 、OV、AC 和 C 反映的是最近一次操作的状态。在进入中断程序或子程序调用时,状态寄存
器不会被自动压入堆栈。如果状态寄存器的内容是重要的,而且子程序会影响状态寄存器的内容,那么程
序员必须事先将 STATUS 的值保存好。
6,7
ALU
(RL,RR,RLC,RRC)
位位位位 符号
0 C
1 AC
2 Z
3 OV
4 PDF
5 TO
符号 功能
符号 符号
如果在加法运算中结果产生了进位或在减法运算中结果不产生借位
则 C 被置位;反之,C 被清除。它也可被循环移位指令影响。
如果在加法运算中低 4 位产生了进位或减法运算中低 4 位不产生借
位,则 AC 被置位;反之,AC 被清除。
如果算术或逻辑运算的结果为零,则 Z 被置位;反之,Z 被清除。
如果运算结果向最高位进位,但最高位并不产生进位输出,则 OV 被
置位,反之亦然;反之,OV 被清除
系统上电或执行“CLR WDT”指令,PDF 被清除;执行“HALT”指
令,PDF 被置位。
系统上电、执行“CLR WDT”或“HALT”指令,TO 被清除;WDT
定时溢出,TO被置位。
—
未用,读出为“0”
功能
功能 功能
STATUS(0AH) 寄存器
寄存器
寄存器 寄存器
Rev. 1.00 11 2005-08-24
HT46R53A/HT46R54A
中断
中断
中断 中断
系统提供一个外部中断、一个内部定时/ 计数器中断和一个 A/D 转换中断。中断控制寄存器(INTC ;0BH)
包含了中断控制位和中断请求标志,中断控制位用来设置中断允许/ 禁止。
位位位位 符号
符号
符号 符号
0 EMI
1 EEI
2 ETI
3 EADI
4 EIF
5 TF
6 ADF
7
只要有中断子程序被服务,其余的中断全部都被自动禁止(通过清除 EMI 位),这种做法的目的在于防
止中断嵌套。这时如果有其它中断发生,只有中断请求标志会被记录下来。如果在中断服务程序中有另一
个中断需要响应,程序员可以置位 EMI 和 INTC 所对应的位,以便进行中断嵌套。如果堆栈已满,则中断
并不会被响应,一直到堆栈指针(SP)发生递减后才会响应。如果需要中断立即得到响应,应避免堆栈饱和。
所有的中断都具有唤醒能力。当有中断被服务,系统会将程序计数器值压入堆栈,然后再跳转至中断
服务程序的入口。但这时只有程序计数器的内容被压入堆栈,如果其它寄存器和状态寄存器的内容会被中
断程序改变,从而会破坏主程序的控制流程的话,程序员应该事先将这些数据保存起来。
外部中断是由
中断允许,且堆栈未满,当发生外部中断时,会产生地址 04H 的子程序调用;而中断请求标志 EIF 和总中
断控制位 EMI 会被清除,以禁止其它中断响应。
内部定时/ 计数器中断是由定时/ 计数器溢出触发的,其中断请求标志(TF ;INTC 的第 5 位)会被置位。
如果中断允许,且堆栈未满,当发生定时/ 计数器中断时,会产生地址 08H 的子程序调用;而中断请求标
志TF和总中断控制位
A/D 转换中断是由 A/D 转换完成触发的,其中断请求标志(ADF;INTC 的第 6 位)会被置位。如果中
断允许,且堆栈未满,当发生 A/D 转换中断时,会产生地址 0CH 的子程序调用;而中断请求标志位 ADF
和总中断控制位 EMI 会被清除,以禁止其它中断响应。
在执行中断子程序期间,其它的中断请求会被屏蔽,直到执行 RETI 指令或 EMI 和相关中断控制位被
置位(当然,此时堆栈未满)。如果要从中断子程序返回,只要执行 RET 或 RETI 指令即可。其中,RETI
指令会自动置位
如果中断在两个连续的 T2 脉冲的上升沿之间发生,且中断响应允许,那么在下两个 T2 脉冲之间,
该中断会被服务。如果同时发生中断请求,其优先级如下表示;也可以通过设定各中断相关的控制位来改
变优先级。
引脚下降沿信号触发的,其中断请求标志位(EIF ;INTC 的第 4 位)会被置位。如果
INT
EMI
,以允许中断服务,而
EMI
总中断控制位(1=允许;0=禁止)
外部中断控制位(1=允许;0=禁止)
定时/计数器中断控制位(1=允许;0=禁止)
A/D 转换中断控制位(1=允许;0=禁止)
外部中断请求标志
定时/计数器中断请求标志(1=有;0=无)
A/D 转换中断请求标志(1=有;0=无)
只作内部测试用
—
使用时必须写入‘0 ’;否则会发生不可预知的错误
INTC (((( 0BH ))))寄存器
会被清除,以禁止其它中断响应。
中断源
中断源
中断源 中断源
外部中断
定时/计数器中断
A/D 转换中断
RET
功功功功
(1=有;0=无)
寄存器
寄存器 寄存器
则不会。
优先级
优先级 中断向量
优先级 优先级
1 04H
2 08H
3 0CH
能能能能
中断向量
中断向量 中断向量
中断控制寄存器
求标志(ADF) 、定时/ 计数器中断允许(ETI) 、外部中断允许(EEI) 、A/D 转换中断允许(EADI) 和总中断允许
(EMI) 组成,其对应于数据存储器地址 0BH 。 EMI 、 EEI 、 ETI 和 EADI 用来控制中断的允许 / 禁止状态的。
这些控制位可以用来屏蔽正在进行中断服务程序时发生的其它中断请求。一旦中断请求标志(TF 、EIF、ADF)
被置位,会一直保留在 INTC 寄存器中,直到中断被响应或用软件指令清除为止。
建议不要在中断服务程序中使用“CALL ”指令来调用子程序。因为中断随时都可能发生,而且需要
立刻给予响应。如果只剩下一层堆栈,而中断不能被很好地控制,原先的控制序列很可能因为在中断子程
序中执行“CALL ”指令而使堆栈溢出,从而发生混乱。
Rev. 1.00 12 2005-08-24
,由定时/计数器中断请求标志
(INTC)
、外部中断请求标志
(TF)
(EIF)、A/D
转换中断请
HT46R53A/HT46R54A
振荡电路
振荡电路
振荡电路 振荡电路
方式,其信号都可以做为系统时钟。HALT 模式会停止系统振荡器,并忽视任何外部信号以降低功耗。
系统有两种振荡方式,外部 RC 振荡和外部晶体振荡,可以通过掩膜选项设定,不管选用哪一种振荡
V
D D
4 7 0 p F
O S C 1
O S C 1
O S C 2
C r y s t a l O s c i l l a t o r R C O s c i l l a t o r
系统振荡器
系统振荡器
系统振荡器 系统振荡器
f
S Y S
/ 4
O S C 2
如果选用外部 RC 振荡方式,在 OSC1 与 VSS 之间需要接一个外部电阻,其阻值为 30k Ω~750k Ω;
而 OSC2 上会输出带上拉的系统频率的 4 分频信号,可用于同步外部逻辑。RC 振荡方式是一种低成本的
方案,但是,RC 振荡频率会随着 VDD、温度和芯片自身参数的漂移而产生误差。因此,在需要精确振荡
频率做为计时操作的场合,并不适合使用RC振荡方式。
如果选用晶体振荡方式,在 OSC1 和 OSC2 之间需要连接一个晶体,用来提供晶体振荡器所需的反馈
和相移,除此之外,不再需要其它外部元件。另外,在 OSC1 和 OSC2 之间也可使用谐振器来取代晶体振
荡器,但是在 OSC1 和 OSC2 需要多连接两个电容(如果振荡频率小于 1MHz)。
WDT 振荡器是一个自由振荡内部 RC 振荡器,并不需要连接任何外部元件。当系统进入暂停模式时,
系统时钟会停止,但 WDT 振荡器会继续工作,其振荡周期大约为 65µs/5V 。如果要降低功耗,可在掩膜
选项中关闭
看门狗定时器
看门狗定时器 ———— WDT
看门狗定时器 看门狗定时器
WDT
振荡器。
看门狗定时器的时钟来源有两种:看门狗振荡器或指令时钟(系统时钟 4 分频),由掩膜选项设置。看
门狗定时器主要用来防止程序运行故障和程序跳入一死循环而导致不可预测的结果。看门狗定时器可由掩
膜选项设置为打开或关闭,如果在关闭状态,所有与 WDT 有关的指令操作都是没有作用的。
C L R W D T 1 F l a g
C L R W D T 2 F l a g
1 o r 2 I n s t r u c t i o n s
C o n t r o l
L o g i c
C L R
2
¸
W D T T i m e - o u t
1 3
1 4
( 2
/ fS, 2
/ fS, 2
1 5
1 6
1 5
/ f
o r 2
/ fS)
S
WDT
W D T O s c i l l a t o r
时 钟 源
f
/ 4
S Y S
W D T S o u r c e
C o n f i g u r a t i o n
O p t i o n
被 一 个 内 部 的 计 数 器 进 一 步 分 频 以 得 到 一 个 更 长 的 看 门 狗 溢 出 时 间 。 在
(fs)
f
S
8 - b i t C o u n t e r
看门狗定时器
看门狗定时器
看门狗定时器 看门狗定时器
8
fS/ 2
7 - b i t C o u n t e r
W D T D i v i s i o n
C o n f i g u r a t i o n O p t i o n
1 2
1 3
fS/ 2
, fS/ 2
, fS/ 2
1 4
o r fS/ 2
HT46R53A/HT46R54A 中,分频系数可以由通过掩膜选项选择,掩膜选项的分频系数有 212~215。
如果 WDT 时钟源为内部 WDT 振荡(RC 振荡周期一般为 65µ s/5V) ,当 WDT 的溢出时间(time out) 选
为 2 16,溢出时间大约可达到 4.3s 。溢出时间会因为温度、VDD 以及芯片参数的变化而变化。
WDT 时钟源如果不选择内部 WDT 振荡器的话,还可以使用指令时钟(系统时钟 4 分频),只是在 HALT
时,WDT 会停止计数而失去保护功能;此时只能靠外部逻辑复位来重新启动系统。如果系统运用在强干
扰的环境中,建议选用内部
振荡器,因为
WDT
模式会使系统时钟停止,看门狗也就失去了保护的
HALT
功能。
Rev. 1.00 13 2005-08-24
HT46R53A/HT46R54A
在正常运行时,WDT 溢出会使系统复位并置位 TO 标志;但在 HALT 模式下,WDT 溢出只产生“热
复位”,只有程序计数器 Program Counter 和堆栈指针 SP 被复位。要清除 WDT 的值可以有三种方法:外部
复位(低电平输入到
WDT1”、“CLR WDT2”二组指令。这两组指令中,只能选择其中一组,由掩膜选项决定。如果选择“CLR
WDT”,那么只要执行“CLR WDT” 指令就会清除 WDT。如果选择“ CLR WDT1”和“ CLR WDT2”,
那么二条指令要交替使用才会清除
如果 WDT 的分频系数选择为 f S/216,那么 WDT 的溢出周期为固定为 f S/216,因为“CLR WDT ”和“CLR
WDT1 ”、“CLR WDT2 ”指令能清除全部的 WDT 分频器。
暂停模式
暂停模式 ————
暂停模式 暂停模式
暂停模式是由 HALT 指令来实现的,暂停模式时系统状态如下:
· 系统振荡器停振,但 WDT 振荡器会继续振荡(如果选择 WDT 振荡器)。
· RAM 和寄存器内容保持不变。
·
WDT
· 所有输入/ 输出口都保持其原有状态。
· 置位 PDF 标志,清除 TO 标志。
以下操作可以使系统离开暂停模式:外部复位、中断、PA 口下降沿信号或看门狗定时器溢出。其中,
外部复位会使系统初始化,WDT 溢出则会发生“热复位”。通过检测 TO 和 PDF 标志,即可了解系统复位
的原因。PDF 标志可由系统上电或执行“CLR WDT”指令清除,由 HALT 指令置位。TO 标志由 WDT 溢
出置位,同时产生唤醒,但只有程序计数器
状态。
PA 口唤醒和中断唤醒可做为正常运行的继续。PA 口的每一位都可以由掩膜选项设置为唤醒功能。如
果是由输入/ 输出口唤醒,程序会从下一条指令开始运行。如果是由中断唤醒,可能会发生两种情况:如果
中断禁止或中断允许但堆栈已满,程序将会从下一条指令开始运行;如果中断允许且堆栈未满,则会产生
一般的中断响应。如果在进入
当发生唤醒,系统需要额外花费
醒之后会插入一个等待周期。如果唤醒是由中断产生的话,则实际中断子程序的执行会延迟一个以上的周
期。如果唤醒导致下一条指令执行,那么在等待周期执行完成之后,会立即执行该指令。
为减小功耗,在进入暂停模式之前,应小心处理所有的输入/ 输出口状态。
HALT
被清除并重新开始计数(如果
端)、清除看门狗指令或 HALT 指令。清除看门狗指令有“CLR WDT”和“CLR
,否则,
WDT
时钟来源为
WDT
Program Counter
模式之前,中断请求标志位已被置“1”,则中断唤醒功能被禁止。
HALT
1024t
系统时钟周期)的时间,才能重新正常运行,也就是说,唤
(
SYS
会由于溢出而使系统复位。
WDT
振荡器)。
WDT
和堆栈指针SP被复位,其它都保持其原有的
Rev. 1.00 14 2005-08-24
HT46R53A/HT46R54A
复位
复位
复位 复位
总共有三种方法会产生初始复位:
· 正常运行时由
· 在暂停模式由
引脚发生复位。
RES
引脚发生复位。
· 正常运行时由看门狗定时器溢出发生复位。
暂停模式中的看门狗定时器溢出与其它系统复位状况不同,因为看门
狗定时器溢出会执行“热复位”,只有程序计数器 Program Counter 和堆栈
指针 SP 被复位,而系统其它部分都保持原有状态。在其它复位状态下,某
些寄存器不会改变。在初始复位时,大部分寄存器会复位成初始的状态。
通过检测
PDF和TO
标志,即可判断出各种不同的复位原因。
TO PDF
0 0
u u
0 1
1 u
1 1
注:“u ”表示不变
上电时
正常运行时
暂停模式下
正常运行时 WDT 溢出
暂停模式下 WDT 溢出
复位原因
复位原因
复位原因 复位原因
发生复位
发生复位
RES
发生复位
为了保证系统振荡器起振并稳定运行,系统复位(包括上电复位、WDT 溢出或由
状态唤醒时,系统启动定时器(SST)提供了一个额外的延迟时间,共 1024 个系统时钟周期。
系统复位时,SST 会被加在复位延时中;由暂停模式唤醒也会加入 SST 延迟。
系统复位(包括上电复位、正常运行时 WDT 溢出或由
端复位)需要额外增加一个加载掩膜选项
(Option) 的时间。
系统复位时各功能单元的状态如下所示:
Program Counter 000H
中断
预分频器、分频器 清除
WDT
禁止
清除,在主系统复位后,WDT 开始计数
定时/计数器 停止
输入/输出口 输入模式
堆栈指针 SP 指向堆栈顶部
H A L T
W D T
W D T
T i m e - o u t
R e s e t
R E S
V D D
R E S
S S T T i m e - o u t
C h i p R e s e t
t
+ t
S S T
O P D
O S C 1
复位时序
复位时序 复位电路结构
复位时序 复位时序
S S T
1 0 - b i t R i p p l e
C o u n t e r
P o w e r - o n D e t e c t i o n
复位电路结构
复位电路结构 复位电路结构
V
D D
0 . 0 1mF *
1 0 0 k
W
1 0 k
W
0 . 1mF *
复位电路
复位电路
复位电路 复位电路
注:“* ”连线应该尽量靠近
端复位)或由暂停
W a r m R e s e t
E x t e r n a l
R E S
C o l d
R e s e t
RES
Rev. 1.00 15 2005-08-24