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
HT46R53A/HT46R54A
有关寄存器的状态如下
有关寄存器的状态如下::::
有关寄存器的状态如下 有关寄存器的状态如下
复位
复位
寄存器
寄存器
寄存器 寄存器
MP0 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
MP1 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
BP
(HT46R54A)
ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu
Program Counter 0000H 0000H 0000H 0000H 0000H
TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu
TBLH xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu
STATUS --00 xxxx --lu uuuu --uu uuuu --01 uuuu --11 uuuu
INTC -000 0000 -000 0000 -000 0000 -000 0000 -uuu uuuu
TMR xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
TMRC 00-0 1000 00-0 1000 00-0 1000 00-0 1000 uu-u uuuu
PA 1111 1111 1111 1111 1111 1111 1111 1111 uuuu uuuu
PAC 1111 1111 1111 1111 1111 1111 1111 1111 uuuu uuuu
PB 11111111 1111 1111 11111111 11111111 uuuu uuuu
PBC 11111111 11111111 11111111 11111111 uuuu uuuu
PC ---1 1111 ---1 1111 ---1 1111 ---1 1111 ---u uuuu
PCC ---1 1111 ---1 1111 ---1 1111 ---1 1111 ---u uuuu
PD ---- ---1 ---- ---1 ---- ---1 ---- ---1 ---- ---u
PDC ---- ---1 ---- ---1 ---- ---1 ---- ---1 ---- ---u
PWM xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADRL xxxx ---- xxxx ---- xxxx ---- xxxx ---- uuuu ----
ADRH xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADCR 0100 0000 0100 0000 0100 0000 0100 0000 uuuu uuuu
ACSR ---- --00 ---- --00 ---- --00 ---- --00 ---- --uu
注: 1.“*”表示“热复位; 2.“u”表示不变化; 3.“x”表示不确定。
复位 复位
上电复位
上电复位
(
上电复位 上电复位
---- ---0 ---- ---0 ---- ---0 ---- ---0 ---- ---u
)
WDT 溢出
溢出
溢出 溢出
正常运行
正常运行
(
正常运行 正常运行
)
复位
复位
复位 复位
RES
(正常运行
正常运行)
正常运行 正常运行
复位
复位
复位 复位
RES
(暂停模式
暂停模式)
暂停模式 暂停模式
WDT 溢出
(
溢出
溢出 溢出
暂停模式
暂停模式
暂停模式 暂停模式
uuuu uuuu
uuuu uuuu
)*
Rev. 1.00 16 2005-08-24
HT46R53A/HT46R54A
定时
定时////计数器
计数器
定时 定时
计数器 计数器
系统有一个定时/ 计数器(TMR)。定时/计数器是 8 位向上计数的,其时钟来源可以是外部信号输入或
内部时钟,内部时钟为
一个精确的时基信号。
。外部信号输入可以用来计数外部事件、测量时间间隔、测量脉冲宽度或产生
f
SYS
D a t a B u s
R e l o a d
¸
2
O v e r f l o w
t o I n t e r r u p t
P F D
f
S Y S
T M R i n p u t
P S C 2 ~ P S C 0
8 - s t a g e p r e s c a l e r
T E
T M 1 T M 0
T i m e r / E v e n t C o u n t e r
M o d e C o n t r o l
定时
定时/ 计数器
计数器
定时 定时
计数器 计数器
P r e l o a d R e g i s t e r
T O N
8 - B i t T i m e r / E v e n t C o u n t e r
T i m e r / E v e n t
C o u n t e r
有两个与定时/ 计数器有关的寄存器,TMR(0DH) 和 TMRC(0EH) 。写入 TMR 会将特定值装入到定时/
计数器的寄存器中,而读 TMR 则会取得定时/ 计数器的内容。TMRC 是定时/计数器控制寄存器,用来定义
定时/计数器的操作模式、允许或禁止计数和计数的触发边缘。
位位位位 符号
符号 功能
符号 符号
功能
功能 功能
定义预分频器级数,PSC2 ,PSC1 ,PSC0=
000: f
INT=fSYS
001: f
INT=fSYS
0
1
2
PSC0
PSC1
PSC2
010:f
011: f
100: f
101: f
110: f
111: f
INT=fSYS
INT=fSYS
INT=fSYS
INT=fSYS
INT=fSYS
INT=fSYS
/2
/4
/8
/16
/32
/64
/128
定义定时/ 计数器 TMR 的触发方式
在计数模式(
TM1,TM0)=(0,1)
1:下降沿计数
3 TE
0:上升沿计数
在脉宽测量模式( TM1, TM0) =( 1, 1)
1:上升沿开始计数,下降沿结束计数
0:下降沿开始计数,上升沿结束计数
4 TON
5
— 未用,读出为“0”
打开/ 关闭定时/ 计数器( 1= 打开,0= 关闭)
定义工作模式:TM1 ,TM0
6
7
TM0
TM1
01=事件计数模式 (外部时钟 )
10=定时模式 (内部时钟 )
脉冲宽度测量模式
11=
00 =未用
TMRC (((( 0EH ))))寄存器
寄存器
寄存器 寄存器
Rev. 1.00 17 2005-08-24
HT46R53A/HT46R54A
TM0 、TM1 用来定义定时/ 计数器的工作模式。外部事件计数模式是用来记录外部事件的,其时钟来
源为外部 TMR 引脚输入。定时器模式是一个常用模式,其时钟来源为内部时钟。脉宽测量模式可以测量
TMR 引脚高/ 低电平的脉冲宽度,其时钟来源为内部时钟。
无论是定时模式还是外部事件计数模式,一旦开始计数,定时/计数器会从寄存器当前值向上计到
0FFH。一旦发生溢出,定时/计数器会从预置寄存器中重新加载初值,并开始计数;同时置位中断请求标
志(TF;INTC 的第 5 位)。在脉宽测量模式,当 TON 与 TE 是 1 时,只要 TMR 引脚有一个上升沿信号(如
果 TE 是 0,则为下降沿信号),定时/计数器就会开始计数,直到 TMR 脚电平恢复,同时 TON 被清零。测
量的结果会保存在寄存器中,直到有新的测量开始。换句话说,一次只能测量一个脉冲宽度。重新置位 TON
后,可以继续测量。注意,在该模式下,定时/计数器是跳变触发而不是电平触发。当计数器溢出时,定时
计数器会从预置寄存器中重新加载初值,并置位中断请求标志,这与其它两种模式一样。
/
要启动计数器,只要置位定时器开启位(TON ;TMRC 的第 4 位)。在脉宽测量模式下,TON 在测量结
束后会被自动清除;但在另外两种模式中,TON 只能由指令来清除。定时/ 计数器的溢出可以做为唤醒信
号,如果 PA3 选择为 PFD 输出,可以提供给 PFD ( 可编程分频输出)使用。不管是什么模式,只要写 0 到
ETI 即可禁止定时/ 计数器中断服务。当使用 PFD 功能时,执行“ SET [PA].3”可以打开 PFD 输出,执行“ CLR
”则关闭
[PA].3
在定时/计数器停止计数时,写数据到定时/计数器的预置寄存器中,同时会将该数据写入到定时/计数
器。但如果在定时/ 计数器运行时这么做,数据只能写入到预置寄存器中,直到发生溢出时才会将数据从预
置寄存器加载到定时/ 计数器寄存器。
读取定时/ 计数器时,计数会被停止,以避免发生错误;而计数停止会导致计数错误,程序员必须注
意到这一点。特别要注意的,正确的操作是在打开相关的定时/计数器之前要先将期望的值加载到 TMR 寄
存器中,因为
用定时/ 计数器时候要先打开再关闭定时/ 计数器以避免不可预期的情况发生,不管你此时是否需要使用定
时/ 计数器功能。在这个程序之后,定时/ 计数器的功能才能正常操作。
TMR0C 的第 0~2 位用来定义内部时钟预分频级数,定义如上表所示。定时/计数器的溢出信号可做为
PFD 输出。定时 /计数器的预分频器还可以用于 PWM 计数。
输出。
PFD
的初始值是未知的。鉴于定时/计数器的配置,程序员编程要特别注意的是在第一次使
TMR
输入
输入/ 输出口
输出口
输入 输入
输出口 输出口
系统有 22 个双向输入/ 输出口,记为 PA 、PB、PC 和 PD,其分别对应 RAM 地址[12H] 、[14H]、[16H]
和[18H] ,所有端口都可以进行输入/ 输出操作。输入时,端口没有锁存功能,输入信号必须在 MOV A,
[m](m=12H 、14H 、16H 或 18H) 指令的 T2 上升沿到来前准备好;输出时,端口有锁存功能,端口上的数
据会保持不变直到执行下一个写入操作。
每个输入/输出口都有一个控制寄存器(PAC,PBC,PCC,PDC),用来控制输入/输出状态。利用控制
寄存器,可对 CMOS 输出、带或不带上拉电阻的斯密特触发输入通过软件动态地进行改变。做为输入时,
对应的控制寄存器应设置为“1”。输入信号来源也取决于控制寄存器,如果控制寄存器的值为“1”,那么
读取的是引脚状态;如控制寄存器的值为“0”,则读取的是内部锁存器的值。后者可能会在‘读-修改-写’
指令中发生。
做为输出时,只能采用 CMOS 输出。控制寄存器对应 RAM 地址 13H 、15H 、17H 和 19H 。
系统复位之后,这些输入/输出口会是高电平或浮空状态(由上拉电阻选项决定)。每一个输入/输出锁存
位都能用“SET [m].i ”或“CLR [m].i ”指令置位或清除(m=12H 、14H 、16H 或 18H) 。
有些指令会先输入数据,然后进行输出 操 作。例如:“ SET [m].i”,“CLR [m].i”,“CPL [m]”,
“CPLA[m]”这些指令会先将整个端口状态读入 CPU 中,接着执行所定义的运算(位操作),然后再将结果
写入锁存器或累加器中。
PA 的每一个口都具有唤醒系统的能力。所有的输入/ 输出口都有上拉电阻选项。一旦选择了上拉电阻
选项,输入/输出口就加了上拉电阻。如果不选择上拉电阻,必须注意在输入模式下,若输入/输出口会产
生浮空状态。
Rev. 1.00 18 2005-08-24
[ P A 3 , P F D ]
o r [ P D 0 , P W M ]
D a t a B u s
W r i t e C o n t r o l R e g i s t e r
C h i p R e s e t
R e a d C o n t r o l R e g i s t e r
W r i t e D a t a R e g i s t e r
R e a d D a t a R e g i s t e r
S y s t e m W a k e - u p
( P A o n l y )
I N T f o r P A 5 O n l y
C o n t r o l B i t
Q
D
C K
Q
S
D a t a B i t
Q
D
Q
C K
S
M
U
X
输入
输入/ 输出口
输出口
输入 输入
输出口 输出口
P U
M
U
X
E N ( P F D o r P W M )
W a k e - u p O p t i o n
HT46R53A/HT46R54A
V
D D
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
P B 0 / A N 0 ~ P B 7 / A N 7
P C 0 ~ P C 4
P D 0 / P W M
PA3 、PA4 和 PA5 分别与 PFD 、TMR 和
共用引脚。
INT
如果选择 PFD 功能,则 PA3 在输出模式时的输出信号将是由定时/ 计数器的溢出信号产生的 PFD 信号,
而在输入模式始终保持其原来的功能。一旦选择 PFD 功能,PFD 的输出信号只受 PA3 数据寄存器控制。
向
的输入/输出功能如下所示:
数据寄存器写入“1”,则输出
PA3
PFD
信号;向
数据寄存器写入“0”,则
PA3
输出为“0”。
PA3
PA3
I/O
模式
模式
模式 模式
PA3
注: PFD 的输出频率是定时 /计数器溢出频率的 1/2
I/P
(正常
正常)
正常 正常
O/P
(正常
正常)
正常 正常
I/P
(PFD)
逻辑输入 逻辑输出 逻辑输入
O/P
(PFD)
PFD
(定时 /计数器开启 )
PFD 输出频率和控制信号如下表:
定时
定时/ 计数器
计数器
定时 定时
计数器 计数器
关闭
关闭
开启
开启
注意:“X ”表示未定义
“U”表示未知
“N”是定时/计数器的计数预装初值
“f
定时
定时/ 计数器预置值
计数器预置值 PA3 数据寄存器
定时 定时
计数器预置值 计数器预置值
X 0 0 X
X 1 U X
N 0 0 X
N 1 PFD
”是定时 /计数器的输入时钟频率
TMR
数据寄存器 PA3 引脚状
数据寄存器 数据寄存器
引脚状态态态态 PFD 输出频率
引脚状 引脚状
输出频率
输出频率 输出频率
f
/[2× (256-N)]
INT
PB 口可以用做 A/D 转换输入, A/D 转换功能将在下面说明。 PD0 与 PWM 输出共用引脚。如果选择
PWM
功能,则
PD0
口会有
PWM
信号输出
为输出模式)。向
(PD0
数据寄存器写入“1”,则输出
PD0
PWM
信号;向 PD0 数据寄存器写入“ 0”,则 PD0 输出为“ 0”。 PD0 的输入 /输出如下所示:
I/O 模式
模式 I/P(正常
模式 模式
PD0
正常) O/P(正常
正常 正常
正常)
正常 正常
逻辑输入 逻辑输出 逻辑输入
I/P(PWM) O/P(PWM)
PWM
建议用软件将未使用和没有外接的输入/输出口设置为输出模式,以防止这些端口在输入浮空时增加系
统的功耗。
Rev. 1.00 19 2005-08-24
HT46R53A/HT46R54A
PWM
系统有 1 个通道(6+2)/(7+1)位的 PWM 输出(由掩膜选项决定),与 PD0 共用引脚。PWM 通道由数据寄
存器
PWM(1AH)
的输出波形如图所示。一旦 PD0 选择为 PWM 输出,并且 PD0 为输出模式(PDC.0=“0 ”),则向 PD0 寄存
器写“1 ”能够产生 PWM 输出,向 PD0 寄存器写“0 ”会使 PD0 输出保持为“0 ”。
f
/ 2
S Y S
[ P W M ] = 1 0 0
P W M
[ P W M ] = 1 0 1
P W M
[ P W M ] = 1 0 2
P W M
[ P W M ] = 1 0 3
P W M
P W M m o d u l a t i o n p e r i o d : 6 4 / f
M o d u l a t i o n c y c l e 0
来控制输出。
2 5 / 6 4
2 6 / 6 4
2 6 / 6 4
2 6 / 6 4
计数器的时钟来源为系统时钟
PWM
2 5 / 6 4 2 5 / 6 4 2 5 / 6 4
2 5 / 6 4
2 6 / 6 4
2 6 / 6 4
S Y S
M o d u l a t i o n c y c l e 1 M o d u l a t i o n c y c l e 2 M o d u l a t i o n c y c l e 3 M o d u l a t i o n c y c l e 0
P W M c y c l e : 2 5 6 / f
2 5 / 6 4
2 5 / 6 4
2 6 / 6 4 2 5 / 6 4
S Y S
位模式
位模式
(6+2)
位模式 位模式
PWM
(f
)。PWM有1个8
SYS
2 5 / 6 4
2 5 / 6 4
位寄存器。
2 5 / 6 4
2 6 / 6 4
2 6 / 6 4
2 6 / 6 4
PWM
在(6+2)位 PWM 模式中,一个 PWM 周期被分为四个调制周期(调制周期 0~调制周期 3),每个调制周
期有 64 个 PWM 输入时钟。在(6+2)位 PWM 模式中,PWM 寄存器被分为 2 个部分。第一部分是直流分量,
由 PWM.7~PWM.2 控制;第二部分是交流分量,由 PWM.1~PWM.0 控制。
在(6+2) 位 PWM 模式中,每个调制周期的占空比见下表:
参数
参数
参数 参数
调制周期 i
(i=0~3)
AC(0~3) 占空比
i<AC
i≥ AC
占空比
占空比 占空比
1 DC
DC
Rev. 1.00 20 2005-08-24
HT46R53A/HT46R54A
f
/ 2
S Y S
[ P W M ] = 1 0 0
P W M
[ P W M ] = 1 0 1
P W M
[ P W M ] = 1 0 2
P W M
[ P W M ] = 1 0 3
P W M
在(7+1)位 PWM 模式中,一个 PWM 周期被分为两个调制周期(调制周期 0~调制周期 1),每个调制周
期有 128 个 PWM 输入时钟。在(7+1)位 PWM 模式中,PWM 寄存器被分为 2 个部分。第一部分是直流分
量,由 PWM.7~PWM.1 控制;第二部分是交流分量,由 PWM.0 控制。
在(7+1) 位 PWM 模式中,每个调制周期的占空比见下表:
5 0 / 1 2 8
5 1 / 1 2 8
5 1 / 1 2 8
5 2 / 1 2 8
P W M m o d u l a t i o n p e r i o d : 1 2 8 / f
M o d u l a t i o n c y c l e 0
参数
参数
参数 参数
调制周期 i
(i=0~1)
S Y S
P W M c y c l e : 2 5 6 / f
(7+1)
S Y S
位模式
位模式
PWM
位模式 位模式
AC(0~1)
i<AC
i≥AC
5 0 / 1 2 8
5 0 / 1 2 8
5 1 / 1 2 8
5 1 / 1 2 8
M o d u l a t i o n c y c l e 1 M o d u l a t i o n c y c l e 0
占空比
占空比
占空比 占空比
1 DC
DC
5 0 / 1 2 8
5 1 / 1 2 8
5 1 / 1 2 8
5 2 / 1 2 8
PWM 的调制频率、周期频率和占空比的关系总结如下:
PWM 调制频率
调制频率 PWM 周期频率
调制频率 调制频率
f
/64(6+2 模式 )
SYS
f
/128(7+1 模式 )
SYS
周期频率 PWM 占空比
周期频率 周期频率
f
/256 [PWM]/256
SYS
占空比
占空比 占空比
Rev. 1.00 21 2005-08-24
HT46R53A/HT46R54A
转换
转换
A/D
ADRL 是 A/D 转换结果的高字节和低字节寄存器,是只读寄存器。当完成 A/D 转换后,可从 ADRH 和 ADRL
读取 A/D 转换结果。ADCR 是 A/D 转换控制寄存器,用来定义 A/D 通道数量、模拟输入通道选择、A/D
转换开始控制和完成标志。如果要进行 A/D 转换,要先定义好 PB 口的设置,选择转换的模拟通道,然后
给 START 控制位一个上升沿信号和一个下降沿信号(0→1→0)。完成 A/D 转换后,
产生 A/D 转换中断(如果 A/D 转换允许)。ACSR 是 A/D 时钟控制寄存器,用来选择 A/D 的时钟来源。
可以选择。ADCR 的第 5~3 位用来设置 PB 的工作模式,PB 可以做为模拟输入通道,或是数字输入/输出
口,由这 3 位来决定。如果 PB 选择为模拟输入,则其输入/输出功能和上拉电阻将失效,而 A/D 转换电路
会被使能。
结束。ADCR 的 START 位用来开启 A/D 转换,给 START 位一个上升沿信号和一个下降沿信号可以开始
A/D 转换。为了确保 A/D 转换顺利完成,START 位应保持为“0”,直到
信号)。
转换 转换
系统有 8 个通道、12 位解析度(11 位精度)的 A/D 转换器。
与 A/D 转换有关的寄存器有 4 个:ADRL(20H)、ADRH(21H)、ADCR(22H)和 ACSR(23H)。ADRH 和
位会被清除,并且
EOC
位位位位 符号
符号 功能
符号 符号
功能
功能 功能
选择 A/D 转换时钟源:
0
1
ADCS0
ADCS1
00=系统时钟 /2
01=系统时钟 /8
10=系统时钟 /32
11=未定义
2~6
7 TEST
— 未用,读出为“0”
只做为内部测试用
ACSR (((( 23H ))))寄存器
寄存器
寄存器 寄存器
A/D 转换控制寄存器用来控制 A/D 转换。 ADCR 的第 2~0 位用来选择模拟输入通道,总共有 8 个通道
位(ADCR 的第 6 位)是 A/D 转换结束标志位。通过检测这个标志位可以知道 A/D 转换是否
EOC
位变为“ 0” (A/D 转换完成
EOC
位位位位 符号
0
1
2
3
4
5
符号 功能
符号 符号
功能
功能 功能
ACS0
ACS1
选择模拟输入通道
ACS2
PCR0
PCR1
PCR2
定义PB口的设置
如果 PCR0 、PCR1 和 PCR2 都为 0 ,则 A/D 转换电
路被关闭以减小功耗
A/D 转换结束标志 (0: A/D 转换结束 )
6
EOC
每次 BIT3-5 状态的改变都必须通过 START 信号来
初始化 A/D 转换器,否则
可能会处于不确定状
EOC
态,具体可参照“ A/D 转换初始化注意事项”
A/D 转换启始控制位
7 START
0→ 1→ 0:开始;
0→ 1: A/D 转换复位并且置
((((
))))寄存器
ADCR
22H
寄存器
寄存器 寄存器
EOC
为“ 1”
ACS2 ACS1 ACS0
模拟通道
模拟通道
模拟通道 模拟通道
0 0 0 AN0
0 0 1 AN1
0 1 0 AN2
0 1 1 AN3
1 0 0 AN4
1 0 1 AN5
1 1 0 AN6
1 1 1 AN7
Rev. 1.00 22 2005-08-24
HT46R53A/HT46R54A
模拟输入通道选择
模拟输入通道选择
模拟输入通道选择 模拟输入通道选择
PCR2 PCR1 PCR0 7 6 5 4 3 2 1 0
0 0 0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
0 0 1 PB7 PB6 PB5 PB4 PB3 PB2 PB1 AN0
0 1 0 PB7 PB6 PB5 PB4 PB3 PB2 AN1 AN0
0 1 1 PB7 PB6 PB5 PB4 PB3 AN2 AN1 AN0
1 0 0 PB7 PB6 PB5 PB4 AN3 AN2 AN1 AN0
1 0 1 PB7 PB6 PB5 AN4 AN3 AN2 AN1 AN0
1 1 0 PB7 PB6 AN5 AN4 AN3 AN2 AN1 AN0
1 1 1 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0
口的设置
口的设置
PB
口的设置 口的设置
ACSR 的第 7 位是内部测试用的,用户不能使用。ACSR 的第 1 位和第 0 位用来选择 A/D 转换的时钟
来源。
当 A/D 转换完成时,A/D 中断标志被置位。当 START 标志由“0”置为“1”时,
A/D 转换初始化注意事项:
每次改变模拟通道选择位后都要注意初始化 A/D 转换器,否则
道选择位改变的 10 个指令周期内将 START 置 1 后清 0 来初始化 A/D 转换器。模拟通道选择位都清 0 ,可
以不初始化 A/D 。
寄存器
寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
寄存器 寄存器
ADRL
(
20H
ADRH
(21H )
注:D0~D11 是 A/D 转换结果的低位~ 高位
D3 D2 D1 D0 0 0 0 0
)
D11 D10 D9 D8 D7 D6 D5 D4
ADRL(20H) 寄存器
可能处于不确定状态。在模拟通
EOC
寄存器 ADRH(21H) 寄存器
寄存器 寄存器
寄存器
寄存器 寄存器
也置为“1 ”。
EOC
S T A R T
E O C B
P C R 2 ~
P C R 0
A C S 2 ~
A C S 0
P o w e r - o n
R e s e t
1 : D e f i n e P B c o n f i g u r a t i o n
2 : S e l e c t a n a l o g c h a n n e l
N o t e :
M i n i m u m o n e i n s t r u c t i o n c y c l e n e e d e d , M a x i m u m t e n i n s t r u c t i o n c y c l e s a l l o w e d
0 0 0 B
0 0 0 B
R e s e t A / D
c o n v e r t e r
A / D c l o c k m u s t b e f
t
= 3 2 t
A D C S
A D
t
= 8 0 t
A D C
A D
A / D s a m p l i n g t i m e
t
A D C S
1 0 0 B
0 1 0 B
S t a r t o f A / D
c o n v e r s i o n
A / D c o n v e r s i o n t i m e
/ 2 , f
/ 8 o r f
S Y S
S Y S
t
A D C
E n d o f A / D
c o n v e r s i o n
/ 3 2
S Y S
R e s e t A / D
c o n v e r t e r
A / D s a m p l i n g t i m e
t
A D C S
1 0 0 B
0 0 0 B
S t a r t o f A / D
c o n v e r s i o n
t
A / D c o n v e r s i o n t i m e
转换时序
转换时序
A/D
转换时序 转换时序
A D C
E n d o f A / D
c o n v e r s i o n
R e s e t A / D
c o n v e r t e r
A / D s a m p l i n g t i m e
t
A D C S
1 0 1 B
0 0 1 B
S t a r t o f A / D
c o n v e r s i o n
t
A D C
A / D c o n v e r s i o n t i m e
E n d o f A / D
c o n v e r s i o n
0 0 0 B
1 . P B p o r t s e t u p a s I / O s
2 . A / D c o n v e r t e r i s p o w e r e d o f f
t o r e d u c e p o w e r c o n s u m p t i o n
d o n ' t c a r e
Rev. 1.00 23 2005-08-24
HT46R53A/HT46R54A
下面举两个例子说明如何启动和实现
断 A/D 转换是否完成;而第二个例子直接用中断的方法来判断 A/D 转换是否完成。
例 1 :通过扫描
clr EADI ;禁止 A/D中断
mov a,00000001B
mov ACSR,a ; 设置 ACSR寄存器,选择 f
mov a,00100000B ; 在 ADCR寄存器中设置 Port PB0~PB3做为 A/D输入
movADCR,a ; 设置 AN0进行 A/D转换
Start_conversion:
clr ADCR.7
set ADCR.7 ; A/D转换复位
clr ADCR.7 ; 开始 A/D转换
Polling_EOC:
sz ADCR.6 ; 扫描 ADCR寄存器的
jmp polling_EOC ; 继续扫描
mov a,ADRH ; 从 ADRH寄存器读取 A/D转换结果的高位字节
mov adrh_buffer,a ; 将结果放入用户定义的寄存器中
mov a,ADRL ; 从 ADRL寄存器读取 A/D转换结果的低位字节
mov adrl_buffer,a ; 将结果放入用户定义的寄存器中
:
:
jmp start_conversion ; 开始下一次 A/D转换
位判断 A/D 转换是否完成。
EOC
; 当模拟通道选择位改变后, START信号( 0-1-0)必须在 10个
; 指令周期内发出
转换。第一个例子是不断扫描
A/D
/8做为 A/D转换时钟
SYS
位判断 A/D转换是否完成
EOC
ADCR
寄存器的
EOC
位来判
Rev. 1.00 24 2005-08-24
例 2:用中断方法判断 A/D 转换是否完成。
clr EADI ;禁止 A/D中断
mov a,00000001B
mov ACSR,a ; 设置 ACSR寄存器,选择 f
mov a,00100000B
mov ADCR,a ; 在 ADCR寄存器中设置 Port PB0~PB3做为 A/D输入
start_conversion:
clr ADCR.7
set ADCR.7 ; A/D转换复位
clr ADCR.7 ; 开始 A/D转换
clr ADF ; 清除 AD中断请求标志
set INTC0.0 ; 打开总中断
set INTC1.0 ; 在中断控制寄存器中设置 A/D中断允许
; 中断服务子程序
ADC_ISR:
mov acc_stack,a ; 将 ACC保存到用户定义的寄存器中
mov a,STATUS
mov status_stack,a ; 将 STATUS保存到用户
:
:
mov a,ADRH ; 从 ADRH寄存器读取 A/D转换结果的高位字节
mov adrh_buffer,a ; 将结果放入用户定义的寄存器中
mov a,ADRL ; 从 ADRL寄存器读取 A/D转换结果的低位字节
mov adrl_buffer,a ; 将结果放入用户定义的寄存器中
clr ADCR.7
set ADCR.7 ; A/D转换复位
clr ADCR.7 ; 开始 A/D转换
:
:
EXIT_INT_ISR:
Mov a,status_stack
Mov STATUS,a ; 将 STATUS从暂存器中读出
mov a,a_buffer ; 将 ACC从暂存器中读出
reti
HT46R53A/HT46R54A
/8做为 A/D转换时钟
SYS
; 设置 AN0进行 A/D转换
:
:
Rev. 1.00 25 2005-08-24
低电压复位
低电压复位————LVR
低电压复位 低电压复位
为了监控器件的工作电压,系统提供低电压复位功能。如果器件的工
作电压在 0.9V ~V
件产生内部复位。
之间,例如电池电压的变化,那么 LVR 会自动使器
LVR
LVR 功能说明如下:
· 低电压
(0.9V
~
的状态必须持续
V
)
LVR
以上。如果低电压的状态没
1ms
有持续 1ms 以上,那么 LVR 会忽视它而不去执行复位功能。
· LVR 通过与外部
信号的“或”的功能来执行系统复位。
与
V
DD
之间的关系如下所示:
V
LVR
V
D D
5 . 5 V
HT46R53A/HT46R54A
V
D DVO P R
5 . 5 V
5 . 5 V
V
3 . 0 V
2 . 2 V
注:
时,使得芯片正常运行的电压值
是在系统时钟为
V
OPR
L V R
0 . 9 V
4MHz
V
L V R
0 . 9 V
0 V
R e s e t S i g n a l
R e s e t
注:*1:要保证系统振荡器起振并稳定运行,在系统进入正常运行以前,
*2 :因为低电压状态必须保持 1ms 以上,因此进入复位模式就要有 1ms 的延迟。
N o r m a l O p e r a t i o n R e s e t
* 1 * 2
低电压复位
低电压复位
低电压复位 低电压复位
提供额外的
SST
L V R D e t e c t V o l t a g e
个系统时钟周期的延迟。
1024
Rev. 1.00 26 2005-08-24
掩膜选项
掩膜选项
掩膜选项 掩膜选项
下表列出了所有掩膜选项。所有选项必须正确定义,以保证统正常运行。
选项
选项
选项 选项
振荡类型选择。
该选项用来定义系统时钟来源为 RC 振荡还是晶体振荡。
WDT 时钟源选择。
有三种选择:内部 WDT 振荡、指令时钟或关闭。
清除 WDT 指令选择。
该选项用来定义清除 WDT 的指令条数。“1 条指令”表示“CLR WDT”
就能清除 WDT;“2 条指令”表示要同时使用“CLR WDT1”和“CLR
WDT2”才能清除 WDT。
唤醒选择。
该选项用来定义唤醒功能,外部输入/输出口(只有
HALT 模式中唤醒的能力。(按位定义)
上拉选择。
该选项用来定义输入/输出口做为输入时,是否带有内部上拉电阻;PA
可以按位定义,PB、PC 和 PD 按端口定义。
PFD 选择。
PA3:电平输出或 PFD 输出。
PWM 选择: (7+1)或 (6+2)模式。
PD0:电平输出或 PWM 输出。
WDT 预分频选择。
有四种分频选择:212、213、214和 215。
低电压复位功能:打开/关闭。
HT46R53A/HT46R54A
都具有将系统从
PA)
Rev. 1.00 27 2005-08-24
应用电路
应用电路
应用电路 应用电路
1 0 0 k
0 . 1mF
S e e R i g h t S i d e
V
D D
W
O S C
C i r c u i t
0 . 0 1mF
1 0 k
0 . 1mF
HT46R53A/HT46R54A
V D D
R E S
W
V S S
O S C 1
O S C 2
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
P B 0 / A N 0
|
P B 7 / A N 7
P C 0 ~ P C 4
P D 0 / P W M
V
D D
4 7 0 p F
R
O S C
C 1
C 2
f
/ 4
S Y S
R 1
O S C 1
O S C 2
O S C 1
O S C 2
R C S y s t e m O s c i l l a t o r
< R
3 0 k
C r y s t a l S y s t e m O s c i l l a t o r
F o r t h e v a l u e s ,
s e e t a b l e b e l o w
< 7 5 0 k
O S C
W
W
H T 4 6 R 5 3 A / H T 4 6 R 5 4 A
下表是不同晶体频率时,C1、C2 和 R1 的不同取值。
晶体或共振器
晶体或共振器
晶体或共振器 晶体或共振器
C1
4MHz晶体 0pF 10kΩ
4MHz 共振器 10pF 12kΩ
3.58MHz晶体 0pF 10kΩ
3.58MHz
2MHz
晶体和共振器
25pF 10kΩ
共振器
25pF 10kΩ
1MHz 晶体 35pF 27kΩ
480kHz
455kHz
429kHz
300pF 9.1kΩ
共振器
300pF 10kΩ
共振器
300pF 10kΩ
共振器
R1 的作用是在低电压的时候确保关闭振荡,此低电压值低于单片机的最低工作电压。需要注意的是如
果 LVR 使能,可以不加 R1。
注: 电阻和电容值选取的原则是使 VDD 保持稳定并在
“* ”为了避免噪声干扰,连接
引脚的线请尽可能地短
RES
C2 R1
、、、、
置为高以前把工作电压保持在允许的范围内。
RES
O S C C i r c u i t
Rev. 1.00 28 2005-08-24
指令集摘要
指令集摘要
指令集摘要 指令集摘要
助记符
助记符 说明
助记符 助记符
算术运算
算术运算
算术运算 算术运算
ADD A,[m]
ADDM A,[m]
ADD A,x
ADC A,[m]
ADCM A,[m]
SUB
SUB
A,x
A,[m]
SUBM A,[m]
SBC A,[m]
SBCM A,[m]
DAA [m]
与数据存储器相加,结果放入
ACC
ACC 与数据存储器相加,结果放入数据存储器
ACC 与立即数相加,结果放入 ACC
ACC 与数据存储器、进位标志相加,结果放入 ACC
ACC 与数据存储器、进位标志相加,结果放入数据存储器
ACC 与立即数相减,结果放入 ACC
与数据存储器相减,结果放入
ACC
ACC 与数据存储器相减,结果放入数据存储器
ACC 与数据存储器、进位标志相减,结果放入 ACC
ACC 与数据存储器、进位标志相减,结果放入数据存储器
将加法运算中放入 ACC 的值调整为十进制数,并将结果放
入数据存储器
逻辑运算
逻辑运算
逻辑运算 逻辑运算
AND A,[m]
OR A,[m]
XOR A,[m]
ANDM A,[m]
ORM A,[m]
XORM A,[m]
AND A,x
OR A,x
XOR A,x
CPL [m]
CPLA [m]
递增和递减
递增和递减
递增和递减 递增和递减
INCA [m]
INC [m]
DECA [m]
DEC [m]
移位
移位
移位 移位
RRA [m]
RR [m]
RRCA [m]
RRC [m]
RLA [m]
RL [m]
RLCA [m]
RLC [m]
数据传送
数据传送
数据传送 数据传送
MOV A,[m]
MOV [m],A
MOV A,x
位运算
位运算
位运算 位运算
CLR [m].i
SET [m].i
ACC 与数据存储器做“与”运算,结果放入 ACC
ACC 与数据存储器做“或”运算,结果放入 ACC
ACC 与数据存储器做“异或”运算,结果放入 ACC
与数据存储器做“与”运算,结果放入数据存储器
ACC
ACC 与数据存储器做“或”运算,结果放入数据存储器
ACC 与数据存储器做“异或”运算,结果放入数据存储器
ACC 与立即数做“与”运算,结果放入 ACC
ACC 与立即数做“或”运算,结果放入 ACC
ACC 与立即数做“异或”运算,结果放入 ACC
对数据存储器取反,结果放入数据存储器
对数据存储器取反,结果放入 ACC
递增数据存储器,结果放入 ACC
递增数据存储器,结果放入数据存储器
递减数据存储器,结果放入 ACC
递减数据存储器,结果放入数据存储器
数据存储器右移一位,结果放入
数据存储器右移一位,结果放入数据存储器
带进位将数据存储器右移一位,结果放入 ACC
带进位将数据存储器右移一位,结果放入数据存储器
数据存储器左移一位,结果放入 ACC
数据存储器左移一位,结果放入数据存储器
带进位将数据存储器左移一位,结果放入
带进位将数据存储器左移一位,结果放入数据存储器
将数据存储器送至 ACC
将
送至数据存储器
ACC
将立即数送至 ACC
清除数据存储器的位
置位数据存储器的位
HT46R53A/HT46R54A
说明 指令周期
说明 说明
ACC
ACC
ACC
ACC
指令周期 影响标志位
指令周期 指令周期
影响标志位
影响标志位 影响标志位
1 Z,C,AC,OV
(1)
1
Z,C,AC,OV
1 Z,C,AC,OV
1 Z,C,AC,OV
(1)
1
Z,C,AC,OV
1 Z,C,AC,OV
1 Z,C,AC,OV
(1)
1
Z,C,AC,OV
1 Z,C,AC,OV
(1)
1
Z,C,AC,OV
(1)
1
C
1 Z
1 Z
1 Z
(1)
1
Z
(1)
1
Z
(1)
1
Z
1 Z
1 Z
1 Z
(1)
1
Z
1 Z
1 Z
(1)
1
Z
1 Z
(1)
1
Z
1
(1)
1
无
无
1 C
(1)
1
C
1
(1)
1
无
无
1 C
(1)
1
C
1
(1)
1
1
(1)
1
(1)
1
无
无
无
无
无
Rev. 1.00 29 2005-08-24
HT46R53A/HT46R54A
助记符
助记符
助记符 助记符
转移
转移
转移 转移
JMP addr
SZ [m]
SZA [m]
SZ [m].i
SNZ [m].i
SIZ [m]
SDZ [m]
SIZA [m]
SDZA [m]
CALL addr
RET
RET
A,x
RETI
查表
查表
查表 查表
TABRDC [m]
TABRDL [m]
其它指令
其它指令
其它指令 其它指令
NOP
CLR [m]
SET [m]
CLR
CLR
CLR
WDT
WDT1
WDT2
SWAP [m]
SWAPA [m]
HALT
注: x:立即数
m:数据存储器地址
A:累加器
i:第 0~7 位
addr
√:影响标志位
—:不影响标志位
(1)
:如果数据是加载到 PCL 寄存器,则指令执行周期会被延长一个指令周期 (四个系统时钟 )。
(2)
:如果满足跳跃条件,则指令执行周期会被延长一个指令周期 (四个系统时钟 );否则指令执行周期不会被延长。
(3):(1)和(2)
(4)
:如果执行
影响 TO 和 PDF 标志位。
说明
说明
说明 说明
无条件跳转
如果数据存储器为零,则跳过下一条指令
数据存储器送至 ACC,如果内容为零,则跳过下一条指令
如果数据存储器的第i位为零,则跳过下一条指令
如果数据存储器的第 i 位不为零,则跳过下一条指令
递增数据存储器,如果结果为零,则跳过下一条指令
递减数据存储器,如果结果为零,则跳过下一条指令
递增数据存储器,将结果放入 ACC,如果结果为零,则跳
过下一条指令
递减数据存储器,将结果放入 ACC,如果结果为零,则跳
过下一条指令
子程序调用
从子程序返回
从子程序返回,并将立即数放入 ACC
从中断返回
读取当前页的 ROM 内容,并送至数据存储器和 TBLH
读取最后页的 ROM 内容,并送至数据存储器和 TBLH
空指令
清除数据存储器
置位数据存储器
清除看门狗定时器
预清除看门狗定时器
预清除看门狗定时器
交换数据存储器的高低字节,结果放入数据存储器
交换数据存储器的高低字节,结果放入 ACC
进入暂停模式
:程序存储器地址
CLR WDT1或CLR WDT2
指令后,看门狗定时器被清除,则会影响TO和
指令周期
指令周期 影响标志位
指令周期 指令周期
影响标志位
影响标志位 影响标志位
2
(2)
1
(2)
1
(2)
1
(2)
1
(3)
1
(3)
1
(2)
1
(2)
1
2
2
2
2
(1)
2
(1)
2
1
(1)
1
(1)
1
1 TO,PDF
1 TO
1 TO
(1)
1
1
1 TO,PDF
标志位;否则不会
PDF
(4)
(4)
无
无
无
无
无
无
无
无
无
无
无
无
无
无
无
无
无
无
,PDF
,PDF
无
无
(4)
(4)
Rev. 1.00 30 2005-08-24
HT46R53A/HT46R54A
ADC A, [m]
说明: 本指令把累加器、数据存储器值以及进位标志相加,结果存放到累加器。
运算过程: ACC ACC+[m]+C
影响标志位
ADCM A, [m] 累加器与数据存储器、进位标志相加,结果放入数据存储器
说明: 本指令把累加器、数据存储器值以及进位标志相加,结果存放到存储器。
运算过程: [m] ACC+[m]+C
影响标志位
ADD A, [m] 累加器与数据存储器相加,结果放入累加器
说明:
运算过程: ACC ACC+[m]
影响标志位
ADD A, x 累加器与立即数相加,结果放入累加器
说明: 本指令把累加器值和立即数相加,结果存放到累加器。
运算过程: ACC ACC+x
影响标志位
ADDM A, [m] 累加器与数据存储器相加,结果放入数据存储器
说明: 本指令把累加器、数据存储器值相加,结果存放到数据存储器。
运算过程: [m] ACC+[m]
影响标志位
AND A, [m]
说明:
运算过程: ACC ACC “AND” [m]
影响标志位
累加器与数据存储器、进位标志相加,结果放入累加器
TO PDF OV Z AC C
— — √ √ √ √
TO PDF OV Z AC C
— — √ √ √ √
本指令把累加器、数据存储器值相加,结果存放到累加器。
TO PDF OV Z AC C
— — √ √ √ √
TO PDF OV Z AC C
— — √ √ √ √
TO PDF OV Z AC C
— — √ √ √ √
累加器与数据存储器做“与”运算,结果放入累加器
本指令把累加器值、数据存储器值做逻辑与,结果存放到累加器。
TO PDF OV Z AC C
— — — √ — —
Rev. 1.00 31 2005-08-24
HT46R53A/HT46R54A
AND A, x
说明: 本指令把累加器值、立即数做逻辑与,结果存放到累加器。
运算过程: ACC ACC “AND” x
影响标志位
ANDM A, [m] 累加器与数据存储器做“与”运算,结果放入数据存储器
说明: 本指令把累加器值、数据存储器值做逻辑与,结果存放到数据存储器。
运算过程: [m] ACC “AND” [m]
影响标志位
CALL addr 子程序调用
说明:
运算过程: Stack Program Counter+1
Program Counter addr
影响标志位
CLR [m] 清除数据存储器
说明: 本指令将数据存储器内的数值清零。
运算过程: [m] 00H
影响标志位
CLR [m] . i
说明:
运算过程: [m].i 0
影响标志位
CLR WDT 清除看门狗定时器
说明: 本指令清除WDT 计数器(从0 开始重新计数),暂停标志位(PDF)和看门狗溢出标志位(TO)
运算过程: WDT 00H
PDF&TO 0
影响标志位
累加器与立即数做“与”运算,结果放入累加器
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — √ — —
本指令直接调用地址所在处的子程序,此时程序计数器加一,将此程序计数器值存到堆
栈寄存器中,再将子程序所在处的地址存放到程序计数器中。
TO PDF OV Z AC C
—
TO PDF OV Z AC C
— — — — — —
将数据存储器的第 i 位清“0 ”
本指令将数据存储器内第i位值清零。
TO PDF OV Z AC C
— — — — — —
也被清零。
TO PDF OV Z AC C
—
0 0
—
— — — —
—
—
—
Rev. 1.00 32 2005-08-24
HT46R53A/HT46R54A
CLR WDT1
说明: 必须搭配 CLR WDT2 一起使用,才可清除 WDT 计时器(从 0 开始重新计数)。当程序只
运算过程: WDT 00H*
PDF&TO 0*
影响标志位
CLR WDT2
说明:
运算过程: WDT 00H*
PDF&TO 0*
影响标志位
CPL [m]
说明: 本指令是将数据存储器内保存的数值取反。
运算过程:
影响标志位
CPLA [m] 对数据存储器取反,结果放入累加器
说明: 本指令是将数据存储器内保存的值取反后,结果存放在累加器中。
运算过程: ACC [m]
影响标志位
[m] [m]
预清除看门狗定时器
执行过该指令,没有执行 CLR WDT2 时,系统只会不会将暂停标志位(PDF)和计数溢出
位(TO) 清零,PDF 与 TO 保留原状态不变。
TO PDF OV Z AC C
0* 0*
预清除看门狗定时器
必须搭配
执行过该指令,没有执行 CLR WDT1 时,系统只会不会将暂停标志位(PDF)和计数溢出
位(TO)清零,PDF 与 TO 保留原状态不变。
对数据存储器取反,结果放入数据存储器
CLR WDT1
TO PDF OV Z AC C
0* 0*
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — √ — —
一起使用,才可清除
— — — —
计时器(从0开始重新计数)。当程序只
WDT
— — — —
Rev. 1.00 33 2005-08-24
HT46R53A/HT46R54A
DAA [m]
说明 本指令将累加器高低四位分别调整为 BCD 码。如果低四位的值大于“9 ”或 AC=1 ,那
操作 如果 ACC.3~ACC.0 > 9 或 AC=1
否则 [m].3~[m].0 (ACC.3~ACC.0 ), AC1=0
并且
如果 ACC.7~ACC.4+AC1 > 9 或 C=1
那么 [m].7~[m].4 (ACC.7~ACC.4 )+6+ AC1 , C=1
否则 [m].7~[m].4 (ACC.7~ACC.4 )+ AC1, C=C
影响标志位
DEC [m] 数据存储器的内容减 1,结果放入数据存储器
说明: 本指令将数据存储器内的数值减一再放回数据存储器。
运算过程: [m] [m]-1
影响标志位
DECA [m] 数据存储器的内容减 1 ,结果放入累加器
说明:
运算过程: ACC [m]-1
影响标志位
HALT 进入暂停模式
说明: 本指令终止程序执行并关掉系统时钟,RAM 和寄存器内的数值保持原状态,WDT 计数
运算过程: Program Counter Program Counter+1
PDF 1
TO 0
影响标志位
将加法运算后放入累加器的值调整为十进制数,并将结果放入数据存储器
么
值保持不变。如果高四位的值大于“9 ”或 C=1 ,那么 BCD 调整就执行对原值加“6 ”
再加 AC1 ,并把 C 置位;否则 BCD 调整就执行对原值加 AC1 ,C 的值保持不变。结果
存放到数据存储器中,只有进位标志位(C) 受影响。
那么
本指令将存储器内的数值减一,再放到累加器。
器清“0 ”,暂停标志位(PDF) 被设为 1 , WDT 计数溢出位(TO) 被清为 0 。
调整就执行对原值加“6”,并且内部进位标志
BCD
[m].3~[m].0 (ACC.3~ACC.0 )+6,AC1= AC
TO PDF OV Z AC C
— — — — — √
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
0 1
— — — —
AC1= AC
,即AC求反;否则原
Rev. 1.00 34 2005-08-24
HT46R53A/HT46R54A
INC [m]
说明: 本指令将数据存储器内的数值加一,结果放回数据存储器。
运算过程: [m] [m]+1
影响标志位
INCA [m] 数据存储器的内容加 1,结果放入数据存储器
说明: 本指令是将存储器内的数值加一,结果放到累加器。
运算过程: ACC [m]+1
影响标志位
JMP addr 无条件跳转
说明:
运算过程: Program Counter addr
影响标志位
MOV A, [m] 将数据存储器送至累加器
说明: 本指令是将数据存储器内的数值送到累加器内。
运算过程: ACC [m]
影响标志位
MOV A, x 将立即数送至累加器
说明: 本指令是将立即数送到累加器内。
运算过程: ACC x
影响标志位
MOV [m], A
说明:
运算过程: [m] ACC
影响标志位
数据存储器的内容加 1,结果放入数据存储器
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — √ — —
本指令是将要跳到的目的地直接放到程序计数器内。
TO PDF OV Z AC C
— — — — — —
TO PDF OV Z AC C
— — — — — —
TO PDF OV Z AC C
— — — — — —
将累加器送至数据存储器
本指令是将累加器值送到数据存储器内。
TO PDF OV Z AC C
— — — — — —
Rev. 1.00 35 2005-08-24
HT46R53A/HT46R54A
NOP
说明: 本指令不作任何运算,而只将程序计数器加一。
运算过程: Program Counter Program Counter+1
影响标志位
OR A, [m] 累加器与数据存储器做“或”运算,结果放入累加器
说明: 本指令是把累加器、数据存储器值做逻辑或,结果放到累加器。
运算过程: ACC ACC “OR” [m]
影响标志位
OR A, x 累加器与立即数做“或”运算,结果放入累加器
说明:
运算过程: ACC ACC “OR” x
影响标志位
ORM A, [m] 累加器与数据存储器做“或”运算,结果放入数据存储器
说明: 本指令是把累加器值、存储器值做逻辑或,结果放到数据存储器。
运算过程: [m] ACC “OR” [m]
影响标志位
RET 从子程序返回
说明: 本指令是将堆栈寄存器中的程序计数器值送回程序计数器。
运算过程: Program Counter Stack
影响标志位
RET A, x
说明:
运算过程: Program Counter Stack
ACC x
影响标志位
空指令
TO PDF OV Z AC C
— — — — — —
TO PDF OV Z AC C
— — — √ — —
本指令是把累加器值、立即数做逻辑或,结果放到累加器。
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — — — —
从子程序返回,并将立即数放入累加器
本指令是将堆栈寄存器中的程序计数器值送回程序计数器,并将立即数送回累加器。
TO PDF OV Z AC C
—
—
—
—
—
—
Rev. 1.00 36 2005-08-24
HT46R53A/HT46R54A
RETI
说明: 本指令是将堆栈寄存器中的程序计数器值送回程序计数器,与 RET 不同的是它使用在
运算过程: Program Counter Stack
EMI 1
影响标志位
RL [m]
说明:
运算过程: [m].0 [m].7, [m].(i+1) [m].i; (i=0~6)
影响标志位
RLA [m] 数据存储器左移一位,结果放入累加器
说明: 本指令是将存储器内的数值左移一位,第 7 位移到第 0 位,结果送到累加器,而数据存
运算过程:
影响标志位
RLC [m]
说明: 本指令是将存储器内的数值与进位标志左移一位,第 7 位取代进位标志,进位标志移到
运算过程: [m].(i+1) [m].i; (i=0~6)
[m].0 C
C [m].7
影响标志位
RLCA [m]
说明:
运算过程: ACC.(i+1) [m].i; (i=0~6)
ACC.0 C
C [m].7
影响标志位
ACC.0 [m].7, ACC.(i+1) [m].i; (i=0~6)
从中断返回
中断程序结束返回时,它还会将中断控制寄存器 INTC 的 0 位(EMI) 中断允许位置 1 ,允
许中断服务。
TO PDF OV Z AC C
— — — — — —
数据存储器左移一位,结果放入数据存储器
本指令是将数据存储器内的数值左移一位,第7位移到第0位,结果送回数据存储器。
TO PDF OV Z AC C
— — — — — —
储器内的数值不变。
TO PDF OV Z AC C
— — — — — —
带进位将数据存储器左移一位,结果放入数据存储器
第 0 位,结果送回数据存储器。
TO PDF OV Z AC C
— — — — — √
带进位将数据存储器左移一位,结果放入累加器
本指令是将存储器内的数值与进位标志左移一位,第七位取代进位标志,进位标志移到
第 0 位,结果送回累加器。
TO PDF OV Z AC C
— — — — — √
Rev. 1.00 37 2005-08-24
HT46R53A/HT46R54A
RR [m]
说明: 本指令是将存储器内的数值循环右移,第 0 位移到第 7 位,结果送回数据存储器。
运算过程: [m].7 [m].0, [m].i [m].(i+1); (i=0~6)
影响标志位
RRA [m] 数据存储器右移一位,结果放入累加器
说明: 本指令是将数据存储器内的数值循环右移,第 0 位移到第 7 位,结果送回累加器,而数
运算过程: ACC.7 [m].0, ACC.i [m].(i+1); (i=0~6)
影响标志位
RRC [m]
说明: 本指令是将存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志移到
运算过程: [m].i [m].(i+1); (i=0~6)
[m]. 7 C
C [m].0
影响标志位
RRCA [m]
说明: 本指令是将数据存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志
运算过程: ACC.i [m].(i+1); (i=0~6)
ACC.7 C
C [m].0
影响标志位
SBC A,[m]
说明:
运算过程:
影响标志位
ACC ACC+[m]+ C
数据存储器右移一位,结果放入数据存储器
TO PDF OV Z AC C
— — — — — —
据存储器内的数值不变。
TO PDF OV Z AC C
— — — — — —
带进位将数据存储器右移一位,结果放入数据存储器
第 7 位,结果送回存储器。
TO PDF OV Z AC C
— — — — — √
带进位将数据存储器右移一位,结果放入累加器
移到第 7 位,结果送回累加器,数据存储器内的数值不变。
TO PDF OV Z AC C
— — — — — √
累加器与数据存储器、进位标志相减,结果放入累加器
本指令是把累加器值减去数据存储器值以及进位标志的取反,结果放到累加器。
TO PDF OV Z AC C
— — √ √ √ √
Rev. 1.00 38 2005-08-24
HT46R53A/HT46R54A
SBCM A,[m]
说明: 本指令是把累加器值减去数据存储器值以及进位标志取反,结果放到数据存储器。
运算过程:
影响标志位
SDZ [m] 数据存储器减 1,如果结果为“ 0”,则跳过下一条指令
说明: 本指令是把数据存储器内的数值减 1,判断是否为 0,若为 0 则跳过下一条指令,即如
运算过程:
影响标志位
SDZA [m] 数据存储器减 1,将结果放入累加器,如果结果为“ 0”,则跳过下一条指令
说明: 本指令是把数据存储器内的数值减 1,判断是否为 0,为 0 则跳过下一行指令并将减完
运算过程: 如果[m]-1=0,跳过下一条指令执行再下一条。
ACC ([m]-1)
影响标志位
SET [m] 置位数据存储器
说明: 本指令是把存储器内的数值每个位置为 1。
运算过程: [m] FFH
影响标志位
SET [m]. i 将数据存储器的第 i 位置“ 1”
说明: 本指令是把存储器内的数值的第 i 位置为 1。
运算过程:
影响标志位
[m] ACC+[m]+C
[m].i 1
累加器与数据存储器、进位标志相减,结果放入数据存储器
TO PDF OV Z AC C
— — √ √ √ √
果结果为零,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取
得正确的指令(二个指令周期)。否则执行下一条指令(一个指令周期)。
如果
[m]-1=0
后数据存储器内的数值送到累加器,而数据存储器内的值不变,即若结果为 0 ,放弃在目
前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指令
周期)。否则执行下一条指令(一个指令周期)。
,跳过下一条指令执行再下一条。
TO PDF OV Z AC C
— — — — — —
TO PDF OV Z AC C
— — — — — —
TO PDF OV Z AC C
— — — — — —
TO PDF OV Z AC C
— — — — — —
Rev. 1.00 39 2005-08-24
HT46R53A/HT46R54A
SIZ [m]
说明: 本指令是把数据存储器内的数值加 1 ,判断是否为 0 。若为 0 ,跳过下一条指令,即放弃
运算过程: 如果 ([m]+1=0),跳过下一行指令;[m] [m]+1
影响标志位
SIZA 数据存储器加 1 ,将结果放入累加器,如果结果为“0 ”,则跳过下一条指令
说明: 本指令是把数据存储器内的数值加 1 ,判断是否为 0 ,若为 0 跳过下一条指令,即放弃
运算过程: 如果[m]+1=0,跳过下一行指令;ACC ([m]+1)
影响标志位
SNZ [m]. i 如果数据存储器的第 i 位不为“ 0 ”,则跳过下一条指令
说明:
运算过程: 如果 [m].i≠ 0,跳过下一行指令。
影响标志位
SUB A, [m] 累加器与数据存储器相减,结果放入累加器
说明: 本指令是把累加器值、数据存储器值相减,结果放到累加器。
运算过程: ACC ACC+[m]+1
影响标志位
SUB A, x
说明:
运算过程:
影响标志位
ACC ACC+x+1
数据存储器加 1 ,如果结果为“0 ”,则跳过下一条指令
在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个
指令周期)。否则执行下一条指令(一个指令周期)。
TO PDF OV Z AC C
— — — — — —
在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二
个指令周期),并将加完后存储器内的数值送到累加器,而数据存储器的值保持不变。
否则执行下一条指令(一个指令周期)。
TO PDF OV Z AC C
— — — — — —
本指令是判断数据存储器内的数值的第i位,若不为0,则程序计数器再加1,跳过下一
行指令,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正
确的指令(二个指令周期)。否则执行下一条指令(一个指令周期)。
TO PDF OV Z AC C
—
TO PDF OV Z AC C
— — √ √ √ √
累加器与立即数相减,结果放入累加器
本指令是把累加器值、立即数相减,结果放到累加器。
TO PDF OV Z AC C
— — √ √ √ √
—
—
—
—
—
Rev. 1.00 40 2005-08-24
HT46R53A/HT46R54A
SUBM A, [m]
说明: 本指令是把累加器值、存储器值相减,结果放到存储器。
运算过程:
影响标志位
SWAP [m] 交换数据存储器的高低字节,结果放入数据存储器
说明: 本指令是将数据存储器的低四位和高四位互换,再将结果送回数据存储器。
运算过程: [m].7~[m].4↔[m].3~[m].0
影响标志位
SWAPA [m] 交换数据存储器的高低字节,结果放入累加器
说明:
运算过程: ACC.3~ACC.0 [m].7~[m].4
影响标志位
SZ [m] 如果数据存储器为“0”,则跳过下一条指令
说明: 本指令是判断数据存储器内的数值是否为 0,为 0 则跳过下一行指令,即放弃在目前指
运算过程: 如果 [m] = 0, 跳过下一行指令。
影响标志位
SZA [m]
说明: 本指令是判断存储器内的数值是否为 0 ,若为 0 则跳过下一行指令,即放弃在目前指令
运算过程:
影响标志位
[m] ACC+[m]+1
累加器与数据存储器相减,结果放入数据存储器
TO PDF OV Z AC C
— — √ √ √ √
TO PDF OV Z AC C
— — — — — —
本指令是将数据存储器的低四位和高四位互换,再将结果送回累加器。
ACC.7~ACC.4 [m].3~[m].0
TO PDF OV Z AC C
— — — — — —
令执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。
否则执行下一条指令(一个指令周期)。
TO PDF OV Z AC C
— — — — — —
数据存储器送至累加器,如果内容为“0”,则跳过下一条指令
执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。
并把存储器内值送到累加器,而存储器的值保持不变。否则执行下一条指令(一个指令周
期)。
如果
,跳过下一行指令,并
[m] = 0
TO PDF OV Z AC C
— — — — — —
ACC [m]。
Rev. 1.00 41 2005-08-24
HT46R53A/HT46R54A
SZ [m]. i
说明: 本指令是判断存储器内第 i 位值是否为 0 ,若为 0 则跳过下一行指令,即放弃在目前指
运算过程: 如果 [m].i = 0,跳过下一行指令。
影响标志位
TABRDC [m] 读取 ROM 当前页的内容,并送至数据存储器和 TBLH
说明: 本指令是将表格指针指向程序寄存器当前页,将低字节送到存储器,高字节直接送到
运算过程: [m] 程序存储器低字节
TBLH程序存储器高字节
影响标志位
TABRDL [m] 读取 ROM 最后一页的内容,并送至数据存储器和 TBLH
说明: 本指令是将 TABLE 指针指向程序寄存器最后页,将低字节送到存储器,高字节直接送
运算过程: [m] 程序存储器低字节
TBLH
影响标志位
XOR A, [m]
说明: 本指令是把累加器值、 数据存储器值做逻辑异或,结果放到累加器。
运算过程: ACC ACC “XOR” [m]
影响标志位
XORM A, [m] 累加器与数据存储器做“异或”运算,结果放入数据存储器
说明: 本指令是把累加器值、数据存储器值做逻辑异或,结果放到数据存储器。
运算过程: [m] ACC “XOR” [m]
影响标志位
XOR A, x 累加器与数据存储器做“异或”运算,结果放入累加器
说明: 本指令是把累加器值与立即数做逻辑异或,结果放到累加器。
运算过程: ACC ACC “XOR” x
影响标志位
如果数据存储器的第 i 位为“0 ”,则跳过下一条指令
令执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。
否则执行下一条指令(一个指令周期)。
TO PDF OV Z AC C
—
TBLH 寄存器内。
TO PDF OV Z AC C
— — — — — —
到 TBLH 寄存器内。
程序存储器高字节
TO PDF OV Z AC C
— — — — — —
累加器与立即数做“异或”运算,结果放入累加器
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — √ — —
TO PDF OV Z AC C
— — — √ — —
—
—
—
—
—
Rev. 1.00 42 2005-08-24
封装尺寸
封装尺寸
封装尺寸 封装尺寸
HT46R53A/HT46R54A
28-pin SKDIP (300mil) 外形尺寸
外形尺寸
外形尺寸 外形尺寸
1
C
D
2 8
B
符号
符号
符号 符号
A 1375
B 278
C 125
D 125
E 16
F 50
G
H 295
I 330
α 0 ° — 15 °
A
1 5
1 4
E
F
最小
最小 典型
最小 最小
G
—
a
尺寸
尺寸 (单位
单位::::mil)
尺寸 尺寸
单位 单位
典型 最大
典型 典型
—
—
—
—
—
—
100
—
—
H
I
最大
最大 最大
1395
298
135
145
20
70
—
315
375
Rev. 1.00 43 2005-08-24
28-pin SOP (300mil) 外形尺寸
外形尺寸
外形尺寸 外形尺寸
HT46R53A/HT46R54A
2 8
A
1
C
C '
D
E
1 5
B
1 4
G
H
F
a
尺寸
尺寸 (单位
单位::::mil)
尺寸 尺寸
符号
符号
符号 符号
最小
最小 典型
最小 最小
A 394
B 290
C 14
C’ 697
D 92
E
F 4
G 32
H 4
—
单位 单位
典型 最大
典型 典型
—
—
—
—
—
50
最大
最大 最大
419
300
20
713
104
—
— —
—
—
38
12
α 0 ° — 10 °
Rev. 1.00 44 2005-08-24
包装带和卷轴规格
包装带和卷轴规格
包装带和卷轴规格 包装带和卷轴规格
卷轴尺寸
卷轴尺寸
卷轴尺寸 卷轴尺寸
HT46R53A/HT46R54A
T 2
D
A
B
T 1
C
SOP 28W (300mil)
符号
符号
符号 符号
A
B
C
D
T1
T2
卷轴外圈直径 330±1
卷轴内圈直径 62±1.5
轴心直径
缝宽
2.0±0.5
轮缘宽
卷轴宽 30.2±0.2
说明
说明
说明 说明
尺寸
尺寸
单位
尺寸 尺寸
单位::::
(
单位 单位
mm)
13+0.5
-0.2
24.8+0.3
-0.2
Rev. 1.00 45 2005-08-24
运输带尺寸
运输带尺寸
运输带尺寸 运输带尺寸
HT46R53A/HT46R54A
D
E
P 1 P 0
t
F
P D 1
A 0
W
B 0
C
K 0
SOP 28W
符号
符号 说明
符号 符号
W
P
E
F
D
D1
P0
P1
A0
B0
K0
t
C
运输带宽
24.0±0.3
空穴间距 12.0±0.1
穿孔位置 1.75±0.1
空穴至穿孔距离(宽度) 11.5±0.1
穿孔直径
空穴中之小孔直径
穿孔间距 4.0±0.1
空穴至穿孔距离(长度) 2.0±0.1
空穴长 10.85±0.1
空穴宽 18.34±0.1
空穴深
2.97±0.1
传输带厚度 0.35±0.01
覆盖带宽度
说明 尺寸
说明 说明
尺寸 (单位
尺寸 尺寸
单位::::mm)
单位 单位
1.5+0.1
1.5+0.25
21.3
Rev. 1.00 46 2005-08-24
盛群半导体股份有限公司
盛群半导体股份有限公司((((总公司
盛群半导体股份有限公司 盛群半导体股份有限公司
新竹市科学工业园区研新二路3号
电话
: 886-3-563-1999
传真
: 886-3-563-1189
网站
: www.holtek.com.tw
盛群半导体股份有限公司
盛群半导体股份有限公司((((台北业务处
盛群半导体股份有限公司 盛群半导体股份有限公司
台北市南港区园区街 3 之 2 号 4 楼之 2
电话: 886-2-2655-7070
传真: 886-2-2655-7373
传真: 886-2-2655-7383 (International sales hotline)
盛扬半导体有限公司
盛扬半导体有限公司((((上海
盛扬半导体有限公司 盛扬半导体有限公司
上海宜山路 889 号 2 号楼 7 楼 200233
电话: 021-6485-5560
传真: 021-6485-0313
网站: www.holtek.com.cn
盛扬半导体有限公司
盛扬半导体有限公司((((深圳
盛扬半导体有限公司 盛扬半导体有限公司
深圳市南山区科技园科技中三路与高新中二道交汇处生产力大楼 A 单元五楼 518057
电话: 0755-8616-9908,8616-9308
传真: 0755-8616-9533
ISDN: 0755-8615-6181
盛扬半导体有限公司
盛扬半导体有限公司((((北京
盛扬半导体有限公司 盛扬半导体有限公司
北京市西城区宣武门西大街甲 129 号金隅大厦 1721 室 100031
电话: 010-6641-0030, 6641-7751, 6641-7752
传真: 010-6641-0125
盛扬半导体有限公司
盛扬半导体有限公司((((成都
盛扬半导体有限公司 盛扬半导体有限公司
成都市东大街 97 号香槟广场 C 座 709 室 610016
电话: 028-6653-6590
传真: 028-6653-6591
Holmate Semiconductor, Inc. ((((北美业务处
46712 Fremont Blvd., Fremont, CA 94538
电话: 510-252-9880
传真: 510-252-9885
网站: www.holmate.com
Copyright 2006 by HOLTEK SEMICONDUCTOR INC.
使用指南中所出现的信息在出版当时相信是正确的,然而盛群对于说明书的使用不负任何责任。文中提
到的应用目的仅仅是用来做说明,盛群不保证或表示这些没有进一步修改的应用将是适当的,也不推荐
它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救生、维
生器件或系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请参考我们
的网址
http://www.holtek.com.tw
总公司))))
总公司 总公司
台北业务处))))
台北业务处 台北业务处
上海业务处
业务处))))
上海 上海
业务处 业务处
深圳业务处
业务处))))
深圳 深圳
业务处 业务处
北京业务处
业务处))))
北京 北京
业务处 业务处
成都业务处
业务处))))
成都 成都
业务处 业务处
北美业务处))))
北美业务处 北美业务处
HT46R53A/HT46R54A
Rev. 1.00 47 2005-08-24