HOLTEK HT48R01

HT48R01/HT48R02/HT48R03
微型封装输入
微型封装
输入/输出型八位单片机
盛群知识产权政策
专利权
盛群半导体公司在全球各地区已核准和申请中之专利权至少有 160 件以上,享有绝对之合法权益。与
盛群公司 MCU 或其它产品有关的专利权并未被同意授权使用,任何经由不当手段侵害盛群公司专利
权之公司、组织或个人,盛群将采取一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨盛群
公司因侵权行为所受之损失、或侵权者所得之不法利益。
商标权
商标权
盛群之名称和标识、Holtek 标识、HT-IDE、HT-ICE、Marvel Speech、 Music Micro、 Adlib Micro、
Magic Voice、 Green Dialer、 PagerPro、 Q-Voice、 Turbo Voice、 EasyVoice 和 HandyWriter 都是
盛群半导体公司在台湾地区和其它国家的注册商标。
著作权
Copyright  2007 by HOLTEK SEMICONDUCTOR INC.
规格书中所出现的信息在出版当时相信是正确的,然而盛群对于规格内容的使用不负责任。文中提到
的应用其目的仅仅是用来做说明,盛群不保证或不表示这些应用没有更深入的修改就能适用,也不推
荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救
生、维生器件或系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请
参考我们的网址 http://www.holtek.com.tw; http://www.holtek.com.cn
Rev.1.20
1
2007-06-21
HT48R01/HT48R02/HT48R03
技术相关信息
·
·
·
工具信息
FAQs
应用范例
-HA0003S HT48 & HT46 MCU 与 HT93LC46 的通信
-HA0016S HT48读写 HT24 EEPROM
-HA0018S HT48控制 HT1621 LCD
-HA0049S HT48读写控制 HT1380
特性
·
·
·
·
·
工作电压:
fSYS = 4MHz :2.2V – 5.5V
fSYS = 8MHz :3.3V – 5.5V
fSYS = 12MHz :4.5V – 5.5V
7 个双向输入/输出口和一个输入口
与输入/输出引脚复用的外部中断输入
4 种振荡方式
--外部晶体振荡器
--外部 RC 振荡器
--内部 RC+输入/输出口(PA5,PA6)
--内部 RC+RTC 振荡(32768Hz)
内部 RC 振荡器
--三种频率选择:4MHz/8MHz/12MHz
--4MHz 有±5%的误差(2.7V~5.5V,25℃)
--8MHz 有±5%的误差(3.3V~5.5V,25℃)
--12MHz 有±5%的误差(4.5V~5.5V,25℃)
·
·
·
·
·
·
·
·
·
·
·
·
看门狗定时器
程序空间:最大 4096×15
数据空间:最大 160×8
支持蜂鸣器驱动和 PFD
HALT 和唤醒功能可降低功耗
在 VDD=5V,系统时钟为 8MHz 时,指
令周期为 0.5 µs
所有指令在 1 或 2 个指令周期内完成
查表指令,表格内容字长 14 位或 15 位
8 层硬件堆栈
位操作指令
低电压复位功能
10-pin MSOP 封装
概述
HT48R01/HT48R02/HT48R03 是一款八位高性能精简指令集单片机,专为经济型多输入输出控制的
产品设计。
拥有低功耗、I/O 口灵活、定时功能、振荡选择、省电和唤醒功能、看门狗定时器、蜂鸣器驱动、
以及低价位等优势,使此款多功能芯片可以广泛地适用于各种应用,例如工业控制、消费类产品、子系
统控制器等。
选型表
型号
VDD
程序
存储器
存储器
数据
存储器
HT48R01
2.2V~5.5V
1K×14
64×8
HT48R02
2.2V~5.5V
2K×14
96×8
HT48R03
2.2V~5.5V
4K×15
160×8
Rev.1.20
输入/
输入
输出
7 个输入输出口
一个输入口
7 个输入输出口
一个输入口
7 个输入输出口
一个输入口
2
定时器
外部
中断
蜂
鸣
器
堆
栈
封装
种类
8-bit×1
1
√
4
10MSOP
8-bit×2
1
√
6
10MSOP
8-bit×2
1
√
8
10MSOP
2007-06-21
HT48R01/HT48R02/HT48R03
设备型号
HT48R01/02/03 分别具有三种不同的内部 RC 振荡频率 4MHz、8MHz 和 12MHz 分别用后缀 1、2
和三表示,如下表所示:
型号
内部 RC
振荡频率
4MHz
8MHz
12MHz
4MHz
8MHz
12MHz
4MHz
8MHz
12MHz
设备型号
HT48R01-1
HT48R01-2
HT48R01-3
HT48R02-1
HT48R02-2
HT48R02-3
HT48R03-1
HT48R03-2
HT48R03-3
HT48R01
HT48R02
HT48R03
方框图
P A 3 /IN T
P ro g ra m
R O M
P ro g ra m
C o u n te r
M
U
X
M
D a ta
M e m o ry
O S C 2
P A 5
Rev.1.20
O S
P A
R E
V D
V S
6
S
S
D
S T A T U S
A L U
P A C
S h ifte r
C 1
A C C
P A 2 /T M R 0
X
U
fS
Y S
X
M
U
fS
X
Y S
/4
W D T O S C
R T C
O S C
P A 1 , P A 3
M U X
T im in g
G e n e ra to r
U
M
P r e s c a le r
B Z 0
W D T
p r e s c a le r
In s tr u c tio n
D e c o d e r
/4
X
P A 4 /T M R 1
X
Y S
IN T C
T M R 0
M P
fS
U
B Z 1
T M R 0 C
In s tr u c tio n
R e g is te r
U
T M R 1
In te rru p t
C ir c u it
S T A C K
M
M
T M R 1 C
P A
L V R
P o rt A
P A 0
P A 1
P A 2
P A 3
P A 4
P A 5
P A 6
P A 7
/B Z
/B Z
/T M
/IN T
/T M
/O S
/O S
/R E
R 0
R 1
S
C 2
C 1
In te rn a l
R C O S C
3
2007-06-21
HT48R01/HT48R02/HT48R03
引脚图
P A 3 /IN T
1
1 0
P A 1 /B Z
3
8
P A 0 /B Z
V S S
P A 4
9
P A 2 /T M R 0
2
P A 6 /O S C 1
7
4
5
P A 5 /O S C 2
6
H T 4 8 R 0 1
1 0 M S O P -A
P A 3 /IN T
1
1 0
P A 4 /T M R 1
P A 1 /B Z
3
8
P A 6 /O S C 1
9
P A 2 /T M R 0
P A 0 /B Z
P A 7 /R E S
V S S
V D D
2
4
5
P A 5 /O S C 2
7
6
H T 4 8 R 0 2 /H T 4 8 R 0 3
1 0 M S O P -A
P A 7 /R E S
V D D
引脚说明
引脚名称
输入输出
掩膜选项
PA0/BZ
PA1/ BZ
输入/输出
—
PA2/TMR0
输入/输出
—
PA3/ INT
输入/输出
—
PA4/TMR1
输入/输出
—
OSC1/PA6
OSC2/PA5
输入
输出
RC 振荡,
晶体振荡
RTC 振荡或
输入输出口
PA7/ RES
VDD
VSS
输入
—
—
PA7 或 RES
—
—
说明
2 位双向输入/输出口。每位脚可通过软件设置为唤醒输入。
可由软件指令设置为 CMOS 输出或斯密特触发输入。可通
过软件指令设置上拉电阻。PA0/PA1 分别与 BZ 和 BZ 复用
1 位双向输入/输出口。PA2 可通过软件指令设置为唤醒输
入。可由软件指令设置为 CMOS 输出或斯密特触发输入。
可通过软件设置上拉电阻。此脚与 TMR0 复用。
1 位双向输入/输出口。PA2 可通过软件指令设置为唤醒输
入。可由软件指令设置为 CMOS 输出或斯密特触发输入。
可通过软件设置上拉电阻。此脚与 INT 复用。
1 位双向输入/输出口。PA4 可通过软件指令设置为唤醒输
入。可由软件指令设置为 CMOS 输出或斯密特触发输入。
可通过软件设置上拉电阻。此脚与 TMR1 复用。
2 位双向输入/输出口或振荡器引脚。如设定为输入/输出
脚,可通过软件指令设置为 CMOS 输出或斯密特触发输
入。可通过软件设置上拉电阻。可通过掩模选项决定是振荡
器模式或输入/输出口。四种振荡模式为:
1. 内部 RC 晶振:这两个脚同时被设置为输入/输出口
2. 外部晶体振荡:这两个脚同时被设置为 OSC1/OSC2
3. 内 部 RC + RTC 晶 振 : 这 两 个 脚 同 时 被 设 置 为
OSC1/OSC2
4. 外部 RC 晶振+PA5:PA6 被设置为晶振输入脚,PA5
被设置为输入/输出口
注:当系统频率是内部 RC 晶振时,频率可有三种选择:
(12MHz,8MHz,4MHz),由设备型号决定。
PA7 输入或斯密特触发复位输入(低电平有效)。
正电源
负电源,接地
*所有的上拉电阻通过寄存器选项控制。
极限参数
电源供应电压 ….. VSS -0.3V 至 Vss +6.0V
端口输入电压 .…. Vss -0.3V 至 VDD +0.3V
IOL 总电流…………. ………. ……….150mA
总消耗电流………. ………. ……….500mW
储存温度 ……… -50℃至 125℃
工作温度 ……… -40℃至 85℃
IOH 总电流…………. …. -100mA
注意:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作状
态,而且若长期在标示范围外的条件下工作,可能影响芯片的可靠性。
Rev.1.20
4
2007-06-21
HT48R01/HT48R02/HT48R03
D.C.特性
特性
符号
VDD
IDD1
IDD2
IDD3
IDD4
IDD5
IDD6
IDD7
ISTB1
ISTB2
ISTB3
VIL1
VIH1
VIL2
VIH2
Ta=25℃
参数
工作电压
工作电流
(晶体振荡,RC 振荡)
工作电流
(晶体振荡,RC 振荡)
工作电流
(晶体振荡,RC 振荡)
工作电流
( 内 部 RC + RTC 振
荡,正常模式)
工作电流
( 内 部 RC + RTC 振
荡,正常模式)
工作电流
( 内 部 RC + RTC 振
荡,正常模式)
工作电流
( 内 部 RC + RTC 振
荡,低速模式)
静态电流
( 看 门 狗 打 开 , RTC
关闭)
静态电流
( 看 门 狗 关 闭 , RTC
关闭)
静态电流
( 看 门 狗 关 闭 , RTC
打开)
PA0~PA6,TMR0,TM
R1, INT 低 电 平 输 入
电压
PA0~PA6,TMR0,TM
R1, INT 高 电 平 输 入
电压
低 电 平 输 入 电 压
(PA7/ RES )
高 电 平 输 入 电 压
(PA7/ RES )
典型
最大
单位
2.2
3.3
4.5
—
—
—
—
—
—
—
1
2.5
2
4
5.5
5.5
5.5
2
5
4
8
V
V
V
—
6
12
mA
—
1
2
mA
—
2.5
5
mA
—
2
4
mA
—
4
8
mA
—
6
12
mA
无负载
fSYS =32768Hz
—
10
20
μA
—
20
40
μA
无负载
暂停模式
—
—
5
—
—
10
无负载
暂停模式
—
—
1
—
—
2
无负载
暂停模式
—
—
5
—
—
10
—
—
0
—
0.3VDD
V
—
—
0.7VDD
—
VDD
V
—
—
0
—
0.4VDD
V
—
—
0.9VDD
—
VDD
V
3.98
4.2
4.42
V
2.98
3.15
3.32
V
5V
3V
5V
3V
5V
5V
3V
5V
3V
5V
3V
5V
3V
5V
VLVR1
低电压复位 1
—
VLVR2
低电压复位 2
—
Rev.1.20
测试条件
条件
fSYS =4MHz
fSYS =8MHz
fSYS =12MHz
无负载
fSYS =4MHz
无负载
fSYS =8MHz
无负载
fSYS =12MHz
最小
VDD
—
—
—
3V
5V
3V
5V
无负载
fSYS =4MHz
无负载
fSYS =8MHz
无负载
fSYS =12MHz
掩模选项:
4.2V
掩模选项:
3.15V
5
mA
mA
μA
μA
μA
2007-06-21
HT48R01/HT48R02/HT48R03
低电压复位 3
—
IOL
输入/输出口灌电流
IOH
输入/输出口源电流
RPH
上拉电阻
3V
5V
3V
5V
3V
5V
VLVR3
掩模选项:
2.1V
VOL=0.1VDD
VOH=0.9VDD
—
1.98
2.1
2.22
4
10
-2
-5
20
10
8
20
-4
-10
60
30
—
—
—
—
100
50
A.C.特性
特性
符号
fSYS1
fSYS2
测试条件
参数
系统时钟(晶体振
荡,RC 振荡)
系 统 时 钟 ( 内 部 RC
振荡)(±5%)
系统时钟(32768Hz)
fTIMER
定 时 器 输 入 频 率
(TMR)
mA
kΩ
最小
典型
最大
单位
2.2V~5.5V
3.3V~5.5V
4.5V~5.5V
400
400
400
—
—
—
4000
8000
12000
kHZ
12MHz,Ta=25℃
11400
12000
12600
8MHz,Ta=25℃
7600
8000
8400
4MHz,Ta=25℃
3800
4000
4200
—
2.2V~5.5V
3.3V~5.5V
4.5V~5.5V
—
0
0
0
45
32
1
-
0.25
-
0.035
32768
—
—
—
90
65
-
1024
1
-
-
—
4000
8000
12000
180
130
-
-
2
100
-
VDD
条件
—
—
—
4.5V~
5.5V
3.3V~
5.5V
2.7V~
5.5V
—
—
看门狗振荡周期
tRES
外部复位低电平脉宽
tSST
系统启动延时周期
tLVR
低电压复位周期
VPOR
上电复位电压
RPOR
上电复位电压速率
备注: tSYS=1/fSYS1 ,1/fSYS2或1/fSYS3
Rev.1.20
mA
Ta=25℃
fSYS3
tWDTOSC
V
—
3V
5V
-
-
-
-
-
—
-
HALT 模式唤醒
-
-
-
6
kHZ
Hz
KHZ
μs
μs
tSYS
ms
mV
V/ms
2007-06-21
HT48R01/HT48R02/HT48R03
系统功能说明
指令系统
系统时钟由晶体振荡器或 RC 振荡器产生,系统内部将此频率分为四个不重叠的时钟(一般称为 T
状态,分别为 T1、T2、T3、T4),一个指令周期包含了四个 T 状态,即一个指令周期为四个系统时钟
周期。
S y s te m
O S C 2 (R C
C lo c k
T 1
T 2
T 3
T 4
T 1
T 2
T 3
T 4
T 1
T 2
T 3
T 4
o n ly )
P C
P C
P C + 1
F e tc h IN S T (P C )
E x e c u te IN S T (P C -1 )
P C + 2
F e tc h IN S T (P C + 1 )
E x e c u te IN S T (P C )
F e tc h IN S T (P C + 2 )
E x e c u te IN S T (P C + 1 )
指令执行时序
指令的读取与执行是以流水线方式来进行的。这种方式允许在一个指令周期进行读取指令操作,而
在下一个指令周期里进行解码与执行该指令。这种流水线方式能在一个指令周期里有效地执行一个指
令。但是,如果渉及到的指令要改变程序计数器(如 JMP,CALL 等),就需要花两个指令周期来完
成这一条指令。
程序计数器(
)
程序计数器(PC)
程序计数器是作为程序存储器寻址之用,控制了程序的流程单片机通过 PC 指向的程序存储器的地
址取得一条指令码后, PC 会自动地指向下一条指令的地址(PC 值自动加 1)。
但是若执行的是如下指令:跳转、条件跳跃、读取 PCL 的值、子程序调用、初始复位、内部或外
部中断响应、子程序返回等,则 PC 要根据每一条指令获得其相应的地址来控制程序的转向。
模式
初始化复位
外部中断
定时/计数器溢出中断
条件跳越
装入 PCL
跳转、子程序调用
从子程序返回
程序计数器内容
*11
*10
*9
*8
*7
*6
*5
*4
*3
*2
*1
*0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
@7
#7
S7
0
0
0
0
0
0
PC+2
@6
@5
#6
#5
S6
S5
@4
#4
S4
@3
#3
S3
@2
#2
S2
@1
#1
S1
@0
#0
S0
*11
*10
*9
*8
#11
S11
#10
S10
#9
S9
#8
S8
程序计数器
注意:*11 ~ *0 :程序计数器位
S11 ~ S0 :堆栈寄存器位
#11 ~ #0 :指令代码位
@7 ~ @0:PCL 位
对 HT48R01 来说,PC 指针是 10 位,从*9~*0
对 HT48R02 来说,PC 指针是 11 位,从*10~*0
对 HT48R03 来说,PC 指针是 12 位,从*11~*0
Rev.1.20
7
2007-06-21
HT48R01/HT48R02/HT48R03
程序存储器(
)
程序存储器(ROM)
程序存储器被用来存放要执行的指令代码还包括数据、表格和中断入口。 HT48R01 为 1024 × 14
位,HT48R02 为 2048×14 位或 HT48R03 为 4096×15 位,可以由程序计数器或表格指针来寻址。
在程序存储器中某几个地址被保留作为特殊用途。
·
地址 000H
此地址保留给程序初始化之用。当系统复位时,程序会从 000H 地址开始执行。
·
地址 004H
该地址为外部中断服务程序保留。当 INT 引脚有触发信号输入,如果中断允许且堆栈未满,则程序
会跳转到 004H 地址开始执行。服务程序。
·
地址 008H
此地址保留给定时/计数器 0 中断服务使用。当定时/计数器 0 溢出,如果中断允许且堆栈又未满,
则程序会从 008H 地址开始执行中断服务程序。
·
0 0 0 H
0 0 4 H
0 0 8 H
地址 00CH
此地址保留给定时/计数器 1 中断服务使用。当定时/计数器 1 溢出,如果中断允许且堆栈又未满,
则程序会从 00CH 地址开始执行中断服务程序。
H T 4 8 R 0 1
0 0 0 H
D e v ic e In itia liz a tio n P r o g r a m
0 0 4 H
E x te r n a l In te r r u p t S u b r o u tin e
0 0 8 H
T im e r /E v e n t C o u n te r 0 In te r r u p t S u b r o u tin e
0 0 C H
P ro g ra m
M e m o ry
n 0 0 H
L o o k - u p T a b le ( 2 5 6 w o r d s )
1 4 b its
N o te : n ra n g e s fro m 0 to 3
0 0 4 H
0 0 8 H
T im e r /E v e n t C o u n te r 0 In te r r u p t S u b r o u tin e
0 0 C H
T im e r /E v e n t C o u n te r 1 In te r r u p t S u b r o u tin e
H T 4 8 R 0 3
D e v ic e In itia liz a tio n P r o g r a m
E x te r n a l In te r r u p t S u b r o u tin e
T im e r /E v e n t C o u n te r 0 In te r r u p t S u b r o u tin e
T im e r /E v e n t C o u n te r 1 In te r r u p t S u b r o u tin e
P ro g ra m
M e m o ry
n 0 0 H
3 0 0 H
0 0 0 H
E x te r n a l In te r r u p t S u b r o u tin e
L o o k - u p T a b le ( 2 5 6 w o r d s )
n F F H
3 F F H
H T 4 8 R 0 2
D e v ic e In itia liz a tio n P r o g r a m
n F F H
7 0 0 H
7 F F H
L o o k - u p T a b le ( 2 5 6 w o r d s )
n 0 0 H
n F F H
L o o k - u p T a b le ( 2 5 6 w o r d s )
P ro g ra m
M e m o ry
L o o k - u p T a b le ( 2 5 6 w o r d s )
1 4 b its
N o te : n ra n g e s fro m 0 to 7
F 0 0 H
F F F H
L o o k - u p T a b le ( 2 5 6 w o r d s )
1 5 b its
N o te : n ra n g e s fro m 0 to F
程序寄存器
表格区(Table Location)
ROM 内的任何地址都可被用来作为查表地址使用。查表指令为 TABRDC [m] 与 TABRDL [m]。
TABRDC [m]是查表当前页的数据 [ 1 页=256 个字 ( word )]。TABRDL [m]是查表最后一页的数据。[m]
为数据被存入的地址。在执行 TABRDC [m]指令(或 TABRDL [m] 指令)后,将会传送当前页(或最
后一页)上的一个字的低位字节到[m],而这个字的高位字节传送到 TBLH(08H)。只有表格中的低位
字节被定义到目标地址中,而高位字节传送到表格的高位字节寄存器(TBLH),TBLH 高 2 位读出为
“0”。TBLH 为只读寄存器。而表格指针(TBLP;07H)是可以读写的寄存器,用来指明表格地址。
在访问表格以前,通过对 TBLP 寄存器赋值来指明表格低位地址。高位字节寄存器 TBLH 只能读出,
不能写入。如果主程序和中断服务程序(ISR)同时使用查表指令,那么主程序读取的高位字节(即存
Rev.1.20
8
2007-06-21
HT48R01/HT48R02/HT48R03
放于高位字节寄存器 TBLH 之中)可能会被中断服务程序的查表指令改写而产生错误。因此,应该避免
主程序和中断服务程序(ISR)同时使用查表指令。但是,如果主程序和中断服务程序必须同时使用查
表指令的话,那么,主程序在使用查表指令之前,必须先关闭所有使用查表指令的相关中断,直到高位
字节寄存器 TBLH 的内容被备份好再开放这些中断。查表指令要花两个指令周期来完成这一条指令的操
作。按照用户的需要,表格地址这些位置可以作为正常的程序存储器来使用。
指令
TABRDC [m]
TABRDL [m]
*11
P11
1
*10
P10
1
*9
P9
1
*8
P8
1
表格地址
*6
*5
@6
@5
@6
@5
*7
@7
@7
*4
@4
@4
*3
@3
@3
*2
@2
@2
*1
@1
@1
*0
@0
@0
表格区
注意:
@7 ~ @0 :表格指针位
*11 ~ *0:表格地址位
P11~P8 :当前程序计数器位
对于 HT48R01 来说,表格地址有 10 位,*9~*0
对于 HT48R02 来说,表格地址有 11 位,*10~*0
对于 HT48R03 来说,表格地址有 12 位,*11~*0
堆栈寄存器(
)
堆栈寄存器(STACK)
堆栈寄存器(STACK)是一个用来保存 PC 值的特殊存储空间。堆栈有八级组成,堆栈寄存器既不
是数据存储器的一部分,也不是程序存储器的一部分,而且它既不能读出,也不能写入。任何一级堆栈
的使用是由堆栈指针(SP)来确定。堆栈指针也不能读出与写入。一旦发生子程序调用或中断响应时,
程序计数器(PC)的值会被压入堆栈。在子程序调用结束时, 通过执行一条返回指令(RET),堆栈将
原先压入堆栈的内容弹出,重新装入程序计数器中。在系统复位后,堆栈指针会指向堆栈顶部。
如果堆栈已满,并且发生了非屏蔽的中断,那么只有中断请求标志会被记录下来,中断响应会被禁
止,当堆栈指针发生递减(执行 RET 或 RETI),中断才会被响应。这种防止堆栈溢出的特点使程序设
计者更容易使用堆栈。相同情况下,如果堆栈满了接着又执行一个子程序调用(CALL),那么堆栈会
产生溢出,而使首先进入堆栈的内容将会丢失(只有最后的返回地址会被保留着)。
数据存储器(
)
数据存储器(RAM)
数 据 存 储 器 成 两 个 功 能 组 : 特 殊 功 能 寄 存 器 和 通 用 数 据 存 储 区 64 × 8 ( HT48R01 ) , 96 × 8
(HT48R02)或 160×8 (HT48R03)。这两个功能组的大部分单元可以读写,而某些单元只能读出,
不能写入。
20H 以前剩余的单元都被保留为将来进一步扩展使用。读取这些被保留单元的值,都将返回 00H。
通用寄存器地址 20H~5FH(HT48R01),20~7FH(HT48R02)或 20H~BFH(HT48R03),作为程序数据和控
制性息使用。
所有的 RAM 区单元都能直接执行算术,逻辑,递增,递减和移位等运算。除了某些特殊的位以
外,RAM 中的每一位都可以由 SET[m].i 和 CLR[m].i 指令来置位和复位。它们都可通过存储器指
针寄存器(MP;01H) 间接寻址来存取。
间接寻址寄存器
地址 00H/02H 是作为间接寻址寄存器。它没有实际的物理空间。任何对[00H]/ [02H]的读/写操作,
都会访问由 MP0(01H)/MP1(03H)所指向的 RAM 单元。间接地读取[00H],将会返回 00H,而间接地写
入 00H 单元,则不会产生任何结果。
7 位宽度的间接寻址指针 (HT48R01/HT48R02)或 8 位宽度的间接寻址指针(HT48R03)。7 位 MP
(HT48R01/HT48R02)的第 7 位是没有定义的。若读它,将返回“1”。而任何对 MP 写的操作只能将低
7 位数据传送到 MP。
累加器 (ACC)
)
累加器(ACC)与算术逻辑单元(ALU)紧密联系。它对应于 RAM 的地址 05H,并能与立即数行
操作,在存储器间的数据传送都必须经过累加器。
Rev.1.20
9
2007-06-21
HT48R01/HT48R02/HT48R03
算术逻辑单元 (ALU)
)
算术逻辑单元是执行 8 位算术逻辑运算的电路。它提供如下的功能:
· 算术运算
( ADD,ADC,SUB,SBC,DAA )
· 逻辑运算
( AND,OR,XOR,CPL )
· 移位运算
( RL,RR,RLC,RRC )
· 递增和递减运算
( INC,DEC )
· 分支跳转
( SZ,SNZ,SIZ,SDZ 等)
算术逻辑单元 ALU 不仅会保存运算的结果而且会改变状态寄存器。
H T 4 8 R 0 1
H T 4 8 R 0 2
H T 4 8 R 0 3
0 0 H
In d ir e c t A d d r e s s in g R e g is te r 0
0 0 H
In d ir e c t A d d r e s s in g R e g is te r 0
0 0 H
In d ir e c t A d d r e s s in g R e g is te r 0
0 2 H
In d ir e c t A d d r e s s in g R e g is te r 1
0 2 H
In d ir e c t A d d r e s s in g R e g is te r 1
0 2 H
In d ir e c t A d d r e s s in g R e g is te r 1
0 1 H
0 3 H
0 4 H
A C C
0 7 H
T B L P
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 2 H
1 3 H
1 4 H
T B L H
T B L P
S T A T U S
0 A H
T M R 0
0 C H
0 D H
0 B H
IN T C 0
T M R 0 C
S p e c ia l P u r p o s e
D a ta M e m o ry
P A
P A P U
1 7 H
W C O N
T M R 0
0 C H
0 D H
1 1 H
T M R 1 C
1 3 H
P A C
0 9 H
0 B H
S p e c ia l P u r p o s e
D a ta M e m o ry
P A
P A W K
1 7 H
W C O N
1 A H
T M R 1 C
1 3 H
P A C
1 7 H
W C O N
1 9 H
1 E H
1 E H
5 F H
1 D H
7 F H
C T R L
1 A H
1 E H
: U n u s e d ,
re a d a s "0 0 "
P A P U
P A W K
1 B H
1 C H
G e n e ra l P u rp o s e
D a ta M e m o ry
(6 4 B y te s )
S p e c ia l P u r p o s e
D a ta M e m o ry
P A
1 5 H
1 B H
1 C H
1 F H
2 0 H
T M R 0
1 1 H
1 B H
1 C H
1 F H
2 0 H
IN T C 0
T M R 1
1 8 H
1 A H
1 D H
S T A T U S
1 0 H
0 F H
1 6 H
1 9 H
T B L H
W D T S
T M R 0 C
1 4 H
C T R L
P C L
0 E H
1 2 H
P A P U
1 5 H
1 8 H
1 9 H
0 A H
T M R 1
1 6 H
C T R L
T B L P
S T A T U S
1 0 H
1 4 H
0 7 H
0 8 H
IN T C 0
M P 1
A C C
T B L H
W D T S
M P 0
0 5 H
0 6 H
T M R 0 C
0 F H
0 4 H
P C L
0 E H
1 2 H
P A C
P A W K
1 8 H
0 7 H
0 9 H
0 3 H
M P 1
A C C
0 8 H
0 1 H
M P 0
0 5 H
0 6 H
W D T S
1 5 H
1 6 H
0 4 H
P C L
1 0 H
1 1 H
0 3 H
M P 1
0 5 H
0 6 H
0 1 H
M P 0
1 D H
G e n e ra l P u rp o s e
D a ta M e m o ry
(9 6 B y te s )
: U n u s e d ,
re a d a s "0 0 "
1 F H
2 0 H
B F H
G e n e ra l P u rp o s e
D a ta M e m o ry
(1 6 0 B y te s )
: U n u s e d ,
re a d a s "0 0 "
数据存储器
Rev.1.20
10
2007-06-21
HT48R01/HT48R02/HT48R03
状态寄存器 (STATUS)
)
8位的状态寄存器( 0AH),由零标志位(Z),进位标志位(C),辅助进位标志位(AC),溢出标志位
(OV),暂停标志位(PDF),看门狗定时器溢出标志位(TO)组成。该寄存器不仅记录状态信息,而且还控
制运算顺序。
除了 TO 和 PDF 以外,状态寄存器中的位都可用指令来改变,这种情况与其它寄存器一样。任何
写到状态寄存器的数据不会改变 TO 或 PDF 标志位。但是与状态寄存器有关的运算会导致状态寄存器
的改变。系统上电,看门狗定时器溢出或执行“CLR WDT”或“HALT”指令,能改变看门狗定时器
溢出标志位(TO)。系统上电,或执行“CLR WDT”或“HALT”指令,能改变暂停标志位(PDF)。
Z,OV,AC 和 C 标志位都反映了当前的运算状态。
位
符号
0
C
1
AC
2
Z
3
OV
4
PDF
5
TO
6~7
—
功
能
在加法运算中结果产生了进位或在减法运算中结果不产生借位,那么 C
被置位;反之,C 被清零。它也可被一个循环移位指令而影响。
在加法运算中低四位产生了进位或减法运算中在低四位不产生借位,
AC 被置位;反之,AC 被清零。
算术运算或逻辑运算的结果为零则 Z 被置位;反之,Z 被清零。
如果运算结果向最高位进位,但最高位并不产生进位输出,那么 OV
被置位;反之,OV 被清零。
系统上电或执行了 CLR WDT 指令,PDF 被清零。执行 HALT 指令
PDF 被置位。
系统上电或执行了 CLR WDT 指令或 HALT 指令,TO 被清零。WDT
溢出,TO 被置位。
未定义,读出为零
状态寄存器(
)
状态寄存器(0AH)
另外,在进入中断或执行子程序调用时,状态寄存器的内容不会自动压入堆栈。如果状态寄存器的
内容是重要的,而且子程序会改变状态寄存器的内容,那么程序员必须事先将其保存好,以免被破坏。
系统控制寄存器
位
标号
0
CLKMOD
功能
时钟模式选择-选择系统时钟来源
0:高速系统时钟-内部 RC
1:低速系统时钟-32.768KHz,RC 振荡停止
注意:该选项只能应用在内部 RC+RTC 模式
1
QOSC
2
3
BZEN0
BZEN1
4~5
6
7
—
BZCS
—
32768Hz 快速起振设置
0:快速起振
1:慢速起振
BZ/ BZ 打开/关闭
00:同时关闭
01:保留
10:只打开 BZ
11:同时打开
当 BZ/ BZ 为 关 闭 , 此 输 入 / 输出 口为普通的 输入 / 输 出功能。 当
BZ/ BZ 为打开,BZ/ BZ 输出仍受到输入/输出口的控制和数据设置。
详细资料请参考输出/输出章节。
未定义,读出为“0”
BZCS,蜂鸣器时钟来源,0/1:定时器 0/定时器 1
未定义,读出为“0”
CTRL 寄存器(
)
寄存器( 16H)
注意:对于 HT48R01,BZCS 只能写入“0”,蜂鸣器时钟来源只有定时器 0
Rev.1.20
11
2007-06-21
HT48R01/HT48R02/HT48R03
中 断—INT
本单片机提供一个外部中断和内部定时/计数器中断。中断控制寄存器(INTC;0BH)包含了中断
控制位和中断请求标志,中断控制位用来设置中断允许/禁止。
一旦有中断子程序被服务,所有其它的中断将被禁止(通过清除 EMI 位)。这种机制能防止中断
嵌套。这时如有其它中断请求发生,这个中断请求的标志会被记录下来。如果在一个中断服务程序中有
另一个中断需要服务的话,程序员可以设置 EMI 位及 INTC 所对应的位来允许中断嵌套服务。如果堆
栈已满,该中断请求将不会被响应。即使相关的中断被允许,也要到堆栈指针发生递减时才会响应。如
果需要立即得到中断服务,则必须避免让堆栈饱和。
所有的中断都具有唤醒功能。当一个中断被服务时,会将程序计数器(PC)压入堆栈,然后转移
到中断服务程序的入口。只有程序计数器的内容能压入堆栈。如果寄存器和状态寄存器的内容会被中断
服务程序改变,从而破坏主程序的预定控制,那么程序员必须事先将这些数据保存起来。
外部中断是由 INT 脚上的下降沿触发的,相关的中断请求位(EIF,INTC.4)被置位。当中断允
许,堆栈也没有满,一个外部中断触发时,那么将会产生地址 04H 的子程序调用。中断请求标志
(EIF)和 EMI 位将也会被清除,以禁止其他中断发生。
内部定时/计数器中断是由定时/计数器溢出触发的,其中断请求标志(TF;INTC 的第 5 位)会被置
位。当中断允许,堆栈又未满,当发生定时/计数器中断时,就会产生地址 08H 的子程序调用。该中断
请求标志位(TF)和 EMI 位将被清除,以便禁止其他中断。
在执行中断子程序期间,其他的中断响应会被屏蔽,直到执行 RETI 指令或是 EMI 位和相关的中
断控制位都被置为 1(当堆栈是未满时)。若要从中断子程序返回时,只要执行 RET 或 RETI 指令即
可。RETI 指令将会自动置位 EMI 来再次允许中断服务,而 RET 则不会。
如果中断在内部二个连续的 T2 脉冲上升沿间发生,而且中断响应被允许的话,那么在第二个 T2
脉冲,该中断会被服务。如果同时发生中断服务请求,那么下列表中列出了中断服务优先等级。这种优
先级也可以通过 EMI 位的复位来屏蔽。
NO
1
2
中断源
外部中断
定时/计数器中断
优先级
优先级
1
2
中断
04H
08H
HT48R01 中断向量
NO
1
2
3
中断源
外部中断
定时/计数器中断 0
定时/计数器中断 1
优先级
1
2
3
中断
04H
08H
0CH
HT48R02/03 中断向量
中断控制寄存器(INTC)由定时/计数器中断请求标志位(TF),外部中断请求标志位(EIF),
定时/计数器允许位(ETI),外部中断允许位(EEI),和主中断控制允许位(EMI)组成。EMI、EEI
和 ETI 都是用来控制中断的允许/禁止状态的。这些控制位可以用来屏蔽正在进行中断服务程序时发生
的其它中断请求。一旦中断请求标志位被置位(TF,EIF), 它们将在 INTC 寄存器中被保留下来,直到
相关的中断被服务或由软件指令来清除。
Rev.1.20
12
2007-06-21
HT48R01/HT48R02/HT48R03
建议不要在中断子程序中使用“CALL”指令来调用子程序,因为中断随时都可能发生,而且在许多
应用场合需要立刻给予响应。基于上述情况,如果只剩下一个堆栈,若此时中断不能很好地被控制,而
且在这个中断服务程中又执行了 CALL 子程序调用,则会造成堆栈溢出,而破坏原先的控制序列。
INTC0
(0BH)
位
0
1
2
3
4
5
6
7
符号
功
能
EMI 总中断控制位(1=允许, 0=禁止)
EEI 外部中断控制位(1=允许, 0=禁止)
ET0I 定时/计数器中断控制位(1=允许, 0=禁止)
—
未用,读出为零
EIF
外部中断请求标志位(1=有,0=无)
TF
定时/计数器中断请求位(1=有,0=无)
—
未使用位,读出为零
—
未使用位,读出为零
HT48R01 中断控制寄存器—
)
中断控制寄存器—INTC0 (0BH)
INTC1
(0BH)
位
0
1
2
3
4
5
6
7
符号
EMI
EEI
ET0I
ET1I
EIF
T0F
T1F
—
功
能
总中断控制位(1=允许, 0=禁止)
外部中断控制位(1=允许, 0=禁止)
定时/计数器 0 中断控制位(1=允许, 0=禁止)
定时/计数器 1 中断控制位(1=允许, 0=禁止)
外部中断请求标志位(1=有,0=无)
定时/计数器 0 中断请求位(1=有,0=无)
定时/计数器 1 中断请求位(1=有,0=无)
未使用位,读出为零
HT48R02/HT48R03 中断控制寄存器—
)
中断控制寄存器—INTC1 (0BH)
Rev.1.20
13
2007-06-21
HT48R01/HT48R02/HT48R03
振荡器
通过掩膜选项,可以选择外部 RC 振荡
(ERC),外部晶体振荡(ECRY),内部
RC 振荡加输入输出口和内部 RC 振荡加
RTC 晶振。四种都可作为系统时钟。不管
用哪种振荡器,其信号都支持系统时钟。
HALT 模式会停止系统振荡器,除 RTC 振
荡并忽略任何外部信号,由此来节省功
耗。
V
D D
O S C 1
O S C 1
O S C 2
P A 6
P A 5
C r y s ta l O s c illa to r
( In c lu d e 3 2 7 6 8 H z )
P A 5
R C O s c illa to r
In te r n a l R C O s c illa to r
如果采用内部 RC+RTC 振荡方式,系统支持两种不同的系统时钟。当系统进入 HALT 模式,可选
择三种不同工作模式。两种系统频率可通过 CTRL 寄存器的 CLKMOD 位来选择为内部 RC 振荡或 RTC
晶振(32768Hz)。三种工作模式是正常模式,低速模式或 HALT 模式。下面的表格说明了关系:
HALT 指令
在运行状态(不运行 HALT)
在运行状态(运行 HALT)
CLKMOD
RC 振荡
32768Hz
系统时钟
模式
0
On
On
RC 振荡
正常
1
Off
On
32768Hz
慢速
×
Off
On
HALT
HALT
如果采用 RC 振荡方式,那么在 VDD 与 OSC1 之间要接一个外部电阻。其阻值范围为 24KΩ~1.5M
Ω。在 OSC2 端可获得系统时钟四分频信号,它可以用于同步系统外部逻辑。RC 振荡器是一种低成本
的方案,但是振荡频率由于 VDD ,温度及芯片自身参量的漂移而产生误差。因此,对计时敏感的场
合,要求精确度高的振荡器频率,RC 振荡器是不适用的。
如果选用的是晶体振荡器,那么在 OSC1 和 OSC2 之间需要连接一个晶体,用来提供晶体振荡器所
需要的反馈和相移。另外,在 OSC1 和 OSC2 之间还可以用谐振器代替晶体振荡器,来产生系统时钟,
但是在 OSC1 和 OSC2 需要多连接两个电容器至地。如果使用的是内部的 RC 振荡器,那么 OSC1 和
OSC2 可以选择作为通用的输入/输出引脚或者是作为 32768Hz 晶体连接口(RTC OSC)。内部的 RC
振荡器的频率可以选择 4MHz、8MHz 和 12MHz(由设备型号选择)。
WDT 振荡器是 IC 内部 RC 型振荡器,不需要任何外部元件。即使在系统进入暂停模式,系统时钟
被停止,但这个 RC 振荡器仍会运作。在 5V 其振荡周期大约为 65μs。在掩膜时,如欲节省电源,可
在掩膜选项中关闭 WDT 振荡器。
Rev.1.20
14
2007-06-21
HT48R01/HT48R02/HT48R03
看门狗定时器 (WDT)
)
WDT 的时钟源是有三种:看门狗振荡器(WDT 振荡器)、RTC 振荡器或是指令时钟(系统时钟 4
分频),由掩膜选项设置。看门狗主要用来避免程序运行故障和程序跳入一死循环而导致不可预测的结
果。看门狗可用掩膜选项设置为打开或关闭,如果在关闭状态,所有的 WDT 指令都是没有作用的。
RTC 时钟只有在内部 RC+RTC 模式时才能工作。
WDT 时钟(fS)通过一个内部计数器提供更长的溢出时间。分频系数为 215。
如果选择了内部 WDT 振荡器(RC 振荡周期一般为 65µs)的话,这个频率会先除以 256(8 级)
产生 17ms/5V 的溢出时间,这个溢出时间会因为温度,VDD ,以及芯片参数的漂移而变化。如果使用
WDT 的预分频器,则可实现延长 WDT 溢出时间。设置 WS2,WS1,WS0 (WDTS 的第 2、1、0 位)会
产生不同的溢出时间。举例来说,如果 WS2,WS1,WS0 的位都为 1,其分频级数最大为 1:128,得
到最长的 WDT 溢出周期 2.1s/5V。如果 WDT 振荡器被禁止,那么 WDT 的时钟来源可为指令时钟,其
运作与 WDT 振荡器一样。但当在 HALT 状态时,WDT 会停止计数而失去保护功能。在这种情况下,
只能由外部逻辑复位来重新启动系统。WDTS 的高四位及其第 3 位保留给用户定义标志来使用,程序员
可以利用这些标志来指示某些特殊的状态。
fS
Y S
/4
fR T C
W D T O S C
R O M
C o d e
O p tio n
fS
W D T P r e s c a le r
8 - b it C o u n te r
7 - b it C o u n te r
8 -to -1 M U X
W S 0 ~ W S 2
W D T T im e - o u t
看门狗定时器
如果单片机工作在干扰很大的环境中,那么强烈建议使用片内 RC 振荡器(WDT OSC),因为
HALT 模式会使系统时钟终止运作。
位
0~2
3~7
符号
WS0~
WS2
—
功能
WDT 频率分频选择
未定义,读出为“0”
在正常运作下,WDT 溢出会使系统复位并设置 TO 状态位。但在 HALT 模式下,溢出只产生一个
“热复位”,只能使 PC 程序计数器和堆栈指针 SP 复位到零。要清除 WDT 的值(包括 WDT 预分频
器)可以有三种方法:外部复位(低电平输入到 RES 端),用软件指令和 HALT 指令。软件指令由
CLR WDT 和另一组指令 CLR WDT1 及 CLR WDT2 组成。这两组指令中,只能选取其中一种。选择的
方式由掩膜选项的 CLR WDT 次数选项决定。如果“CLR WDT”被选择(即 CLR WDT 次数为 1),那么
只要执行 CLR WDT 指令就会清除 WDT。在 CLR WDT1 和 CLR WDT2 被选择的情况下(即 CLR
WDT 次数为 2),那么要执行二条指令才会清除 WDT。否则,WDT 会由于溢出而使系统复位。
WS2
0
0
0
0
1
1
1
1
WS1
0
0
1
1
0
0
1
1
WS0
0
1
0
1
0
1
0
1
分频率
1:1
1:2
1:4
1:8
1:16
1:32
1:64
1:128
看门狗定时器预置寄存器(09H)
看门狗定时器预置寄存器
Rev.1.20
15
2007-06-21
HT48R01/HT48R02/HT48R03
WDT 控制寄存器其中 4 位控制 WDT 的打开和关闭。WDT 的打开和关闭可通过掩模选项或 WDT
控制寄存器(WDTEN[3:0]=0101B)来选择。
位
0~3
4~5
符号
WDTEN0~
WDTEN3
—
功能
3~0 位,WDTEN3~WDTEN0=1010B:WDT 关闭
其他:打开(在干扰很大的环境中,强烈建议使用
0101B 打开 WDT)
未定义,读出为“0”
外部中断边沿触发选择(默认=10)
00:关闭
6~7
INTES0~
INTES1
01:上升沿触发
10:下降沿触发
11:上升沿下降沿同时触发
WCON(
( 17H)
) 寄存器
暂停模式(
)
暂停模式(HALT)
暂停模式是由 HALT 指令来实现的,产生如下结果:
·
关闭系统振荡器,但 WDT 振荡器继续工作(如果 WDT 时钟来源是 WDT 振荡器)。
·
RAM 及寄存器的内容保持不变。
·
WDT 和 WDT 预分频器被清除并再次重新计数(如果 WDT 时钟来源是 WDT 振荡器)。
·
所有的输入/输出口都保持其原先状态。
·
PDF 标志位被置位,TO 标志位被清零。
外部复位、中断或 PA 口下降沿信号或 WDT 溢出均可使系统脱离暂停状态。外部复位能使系统初
始化,而 WDT 溢出能执行“热复位”。通过检测 TO 和 PDF 标志,即可了解系统复位的原因。PDF 标
志位是由系统上电复位和执行 CLR WDT 指令被清除,而它的置位是由于执行了 HALT 指令。如 WDT
产生溢出,使 TO 标志位置位,同时产生唤醒,使得程序计数的 PC 和堆栈指针复位。其他都保持原状
态。
PA 口的唤醒和中断唤醒看作为正常运行的继续,PA 口的每一位都可以通过掩膜选项来设定为唤醒
功能。如果唤醒是来自于输入/输出口的信号变化,程序会继续执行下一条命令。如果唤醒是来自中断
的话,则会产生二种情况:如果相关的中断被禁止或中断是允许的,但堆栈已满,那么程序将继续执行
下条指令,如果中断允许并且堆栈未满,那么这个中断响应就发生了。当唤醒事件发生时,要花
1024tsys(系统时钟周期)后,系统重新正常运行。这就是说,在唤醒后被插入了一个等待时间。如果
唤醒是来自于中断响应,那么实际的中断程序执行就被延迟了一个以上的周期。但是如果唤醒导致下一
条指令执行,那么在一个等待周期结束后指令就立即被执行。进入 HALT 模式前,如果中断请求标志
位被置“1”,那么相关的中断唤醒功能被禁止。
为了减小功耗,在进入 HALT 模式之前必须要小心处理输入/输出口的状态。但在 HALT 模式时,
RTC 振荡器仍然运作(如果选用 RTC 振荡器)。
Rev.1.20
16
2007-06-21
HT48R01/HT48R02/HT48R03
V
复位 (RESET)
)
D D
0 .0 1 m F *
有三种方法可以产生复位
——
· 在正常运行时由 RES 脚产生复位。
——
· HALT 期间由 RES 脚产生复位。
· 正常运行时,WDT 溢出复位。
1 0 0 k W
R E S
1 0 k W
0 .1 m F *
REST 电路
暂停模式中的看门狗定时器溢出与其它系统复位状况不同,因为看门狗定时器溢出会执行热复位,
热复位只复位程序计数器 PC 和堆栈指针 SP,而系统其它部分都保持原有状态。在其它复位状态下,某
些寄存器不会改变。在初始复位时,大部分寄存器会复位成初始的状态。通过检测 PDF 和 TO 标志,
即可判断出各种不同的复位原因。
H A L T
W a rm
R e s e t
W D T
R E S
V D D
R E S
tS
S T
C h ip
S S T
1 0 - b it R ip p le
C o u n te r
O S C 1
S S T T im e - o u t
R e s e t
S y s te m
复位时序
C o ld
R e s e t
R e s e t
复位电路结构
复位条件
电源上电复位
TO
0
PDF
0
u
u
正常运作时由 RES发生复位
0
1
1
1
u
1
由 RES唤醒暂停模式
正常运作时看门狗定时器溢出
暂停模式看门狗定时器唤醒
注意:
注意: u 表示不变
——
为了保证系统振荡器起振并稳定运行,当系统复位时(上电、WDT 定时器溢出或是 RES 引脚复
位)或是 HALT 模式唤醒时,SST(系统启动定时器)会提供额外的 1024 个系统时钟周期的延迟。
系统复位时,SST 被加到复位延时中。任何来自 HALT 的唤醒都将产生 SST 延迟。
当系统上电、正常运行时 WDT 溢出或 RES脚复位,系统需要额外增加一个加载掩模选项的时间。
系统复位时各功能单元的状态如下所示:
程序计数器(PC)
中断
预分频器
看门狗定时器
定时/计数器
输入/输出口
堆栈指针
Rev.1.20
000H
禁止
清除
清除,复位后看门狗定时器开始计数
关闭
输入模式
指向堆栈的顶端
17
2007-06-21
HT48R01/HT48R02/HT48R03
有关寄存器的状态如下:
有关寄存器的状态如下:
寄存器
PC
MP0
(HT48R01/02)
MP1
(HT48R01/02)
MP0
(HT48R03)
MP1
(HT48R03)
ACC
TBLP
TBLH
WDTS
STATUS
INTC0
(HT48R01)
INTC0
(HT48R02/03)
TMR0
TMR0C
TMR1
TMR1C
PA
PAC
PAPU
PAWK
CTRL
WCON
上电复位
000H
正常运行期间
WDT 溢出
RES 端复位
000H
000H
暂停模式
WDT 溢出*
溢出*
RES 端复位
000H
000H
1xxx xxxx
1uuu uuuu
-uuu uuuu
-uuu uuuu
1uuu uuuu
1xxx xxxx
1uuu uuuu
-uuu uuuu
-uuu uuuu
1uuu uuuu
xxxx xxxx
xxxx xxxx
xxxx xxxx
xxxx xxxx
uuuu uuuu
xxxx xxxx
xxxx xxxx
xxxx xxxx
xxxx xxxx
uuuu uuuu
xxxx
xxxx
--xx
-----00
uuuu
uuuu
--uu
-----1u
uuuu
uuuu
--uu
-----uu
uuuu
uuuu
--uu
-----01
uuuu
uuuu
--uu
-----11
xxxx
xxxx
xxxx
-111
xxxx
uuuu
uuuu
uuuu
-111
uuuu
uuuu
uuuu
uuuu
-111
uuuu
uuuu
uuuu
uuuu
-111
uuuu
uuuu
uuuu
uuuu
-uuu
uuuu
--00 -000
--00 -000
--00 -000
--00 -000
--uu –uuu
-000 0000
-000 0000
-000 0000
-000 0000
-uuu uuuu
xxxx
0000
xxxx
0000
1111
1111
-000
-000
-0-10--
xxxx
0000
xxxx
0000
1111
1111
-000
-000
-0-10--
xxxx
0000
xxxx
0000
1111
1111
-000
-000
-0-10--
xxxx
0000
xxxx
0000
1111
1111
-000
-000
-0-10--
uuuu uuuu
uuuu uuuu
uuuu uuuu
uuuu u--uuuu uuuu
uuuu uuuu
-uuu uuuu
-uuu uuuu
-u—uuuu
uu-- uuuu
xxxx
1000
xxxx
1--1111
1111
0000
0000
0000
1010
xxxx
1000
xxxx
1--1111
1111
0000
0000
0000
1010
xxxx
1000
xxxx
1--1111
1111
0000
0000
0000
1010
xxxx
1000
xxxx
1--1111
1111
0000
0000
0000
1010
注意:“*”表示“热复位”。
“-”表示未定义
“U”表示不变化。
“×”表示不确定。
Rev.1.20
18
2007-06-21
HT48R01/HT48R02/HT48R03
定时/计数器
定时 计数器
HT48R01/02/03 提供一个或两个定时/计数器。该定时/计数器是一个 8 位可编程的向上计数的计数
器,该定时/计数器的时钟来源可以是外部信号输入、系统时钟或是 RTC 时钟。
如果外部时钟输入,可以用来计数外部事件、测量时间间隔、脉冲宽度或产生一个精确的时基。当
采用内部时钟输入,产生一个精确的时基。
无论是外部还是内部时钟来源,定时/计数器可以产生蜂鸣器信号。
位
符号
T0PSC0~
0~2
T0PSC2
3
T0E
4
T0ON
5
T0S
6
7
T0M0
T0M1
功能
定义预分频器级数,T0PSC2,T0PSC1,T0PSC2=
000:fINT= fTP
001:fINT= fTP/2
010:fINT= fTP/4
011:fINT= fTP/8
100:fINT= fTP/16
101:fINT= fTP/32
110:fINT= fTP/64
111:fINT= fTP/128
定义定时/计数器 TMR 触发方式
计数模式(T0M1,T0M0)=(0,1):
1:下降沿计数
0:上升沿计数
测量脉宽模式(T0M1,T0M0)=(1,1)
1:上升沿计数,下降沿停止
0:下降沿计数,上升沿停止
打开或关闭定时/计数器(0=关闭;1=打开)
时钟来源选择
0:fsys
1:RTC
定义工作模式(T0M1,T0M0)
01=外部事件计数模式(外部时钟来源)
10=定时器模式(内部时钟来源)
11=脉宽测量模式
00=未定义
TMR0C(0EH)寄存器
寄存器
Rev.1.20
19
2007-06-21
HT48R01/HT48R02/HT48R03
位
符号
0~2
—
功能
未定义,读出为“0”
3
T1E
4
T1ON
5
T1S
6
7
T1M0
T1M1
定义定时/计数器 TMR 触发方式
计数模式(T1M1,T1M0)=(0,1):
1:下降沿计数
0:上升沿计数
测量脉宽模式(T1M1,T1M0)=(1,1)
1:上升沿计数,下降沿停止
0:下降沿计数,上升沿停止
打开或关闭定时/计数器(0=关闭;1=打开)
时钟来源选择
0:fsys/4
1:RTC
定义工作模式(T0M1,T0M0)
01=外部事件计数模式(外部时钟来源)
10=定时器模式(内部时钟来源)
11=脉宽测量模式
00=未定义
TMR1C(
( 11H)
) 寄存器
有两个寄存器与定时 / 计数器相关联,即 TMR0 [0DH] 和 TMR0C [0EH] ( TMR1 [10H],TMR1C
[11H]。TMR 有两个物理空间。写入 TMR0(TMR1)会将初始值装入到定时/计数器的预置寄存器中,
而读 TMR 则会获得定时/计数器的内容。TMR0C(TMR1C)是定时/计数器控制寄存器。
fS
Y S
R T C O S C
M
U
fT
P
7 - s ta g e P r e s c a le r
X
f IN
8 -1 M U X
T 0 S
T 0 P S C 2 ~ T 0 P S C 0
T
T 0 M 1
T 0 M 0
T M R 0
D a ta B u s
8 - b it T im e r /E v e n t C o u n te r R e lo a d
P r e lo a d R e g is te r
T 0 E
T 0 M 1
T 0 M 0
T 0 O N
8 - b it T im e r /E v e n t
C o u n te r 0 (T M R 0 )
P u ls e W id th
M e a s u re m e n t
M o d e C o n tro l
1 /2
O v e r flo w
to In te rru p t
B Z 0
定时/计数器
定时 计数器 0
fS
Y S
/4
R T C O S C
M
U
T 1 M 1
T 1 M 0
X
T 1 S
D a ta B u s
T M R 1
8 - b it T im e r /E v e n t C o u n te r R e lo a d
P r e lo a d R e g is te r
T 1 E
T 1 M 1
T 1 M 0
T 1 O N
8 - b it T im e r /E v e n t
C o u n te r 1 (T M R 1 )
P u ls e W id th
M e a s u re m e n t
M o d e C o n tro l
1 /2
O v e r flo w
to In te rru p t
B Z 1
定时计数器 1(
( HT48R02/HT48R03)
)
Rev.1.20
20
2007-06-21
HT48R01/HT48R02/HT48R03
T0M0 和 T0M1(T1M0,T1M1)用来定义工作模式。外部事件计数模式用来记录外部事件,它的
时钟来自外部 TMR0(TMR1)引脚输入。定时器模式是一个常用模式,它的时钟源来自 fINT 时钟。脉
冲宽度测量模式用来计算引脚 TMR0(TMR1)上的高/低电平的宽度。计数是基于 fINT 时钟。
在外部事件计数或定时器模式中,一旦定时/计数器开始计数,它将会从当前定时/计数器中的数值
向上计数到 0FFH。一旦产生溢出,计数器会从定时/计数器预置寄存器重新装载初值,并且同时产生相
应的中断请求状态位(T0F ;INTC0 的第 5 位或 T1F;INTC0 的第 6 位)。
在脉冲宽度测量中,将 T0ON 和 T0E(T1ON 和 T1E)置为“1”,如果 TMR0(TMR1)接收到上升
沿(如果 T0E(T1E)位是零,下降沿),就开始计数,直到 TMR0(TMR1)返回到原来的电平,同
时复位 T0ON(T1ON)位。测量的结果被保留在定时/计数器中,甚至电平跳变再一次发生也不会改
变。换句话说,一次只能测量一个脉冲宽度。当 T0ON(T1ON)重新被置位,只要再接到跳变信号,
那么测量过程会再次执行。要注意在这个操作模式中,定时/计数器的启动计数不是根据逻辑电平,而
是依据信号的边沿跳变触发。一旦发生计数器溢出,计数器会从定时/计数器的预置寄存器重新装入,
并引发出中断请求,这种情况与其另外两个模式一样。要使得计数运行,只要将定时器启动位 T0ON
(T1ON)置 1。在脉宽测量模式中,T0ON(T1ON)在测量周期结束后自动被清零。但在另外两个模
式中,T0ON(T1ON)只能由指令来复位。定时/计数器的溢出是唤醒的信号之一。不管任何模式,若
写 0 到 ETI 位即可禁止相应的中断服务。
在定时/计数器为关闭的状态下,写数据到定时/计数器的预置寄存器之中,同时也会将数据装入定
时/计数器中。但若是定时/计数器已经开启,写到定时/计数器的数据只会被保留在定时/计数器的预置寄
存器中,直到定时/计数器发生计数溢出为止,再由预置寄存器加载新的值。当定时/计数器的数据被读
取时,计数会被停止,以防出错。停止计数会导致计数错误,所以程序员必须仔细加以考虑。
TMR0C 的 0~2 位被用于定义定时/计数器的内部时钟源的预分频级数。定义如表所示。定时/计数
器的溢出信号可用于产生驱动蜂鸣器的信号。
Rev.1.20
21
2007-06-21
HT48R01/HT48R02/HT48R03
输入/输出口
输入 输出口
单片机具有 7 个双向输入输出口和一个输入口,标号为 PA,其分别对应的 RAM 的[12H]。所有的
输入 / 输出口都能被作为输入或输出使用。就输入而言这些口不具有锁存功能,即,输入数据必须在
“MOV A,[m]”(m=12H) 指令的 T2 上升沿被准备好。对输出而言,所有的数据被锁存并保持不变,
直到输出锁存器重新被改写。
V
D a ta B u s
W r ite C o n tr o l R e g is te r
C o n tr o l B it
Q
D
Q
C K
S
C h ip R e s e t
R e a d C o n tr o l R e g is te r
W r ite D a ta R e g is te r
S
/B Z
/B Z
/T M
/IN T
/T M
/O S
/O S
R 0
R 1
C 2
C 1
Q
(P A 1 , P A 0 )
(B Z , B Z )
M
M
R e a d D a ta R e g is te r
S y s te m
P A 0
P A 1
P A 2
P A 3
P A 4
P A 5
P A 6
D a ta B it
Q
D
C K
D D
P A P U 6 ~ P A P U 0
W a k e - u p ( P A 0 ~ P A 6 o n ly )
U
X
U
X
B Z E N (P A 0 /P A 1 )
P A W K 6 ~ P A W K 0
IN T fo r P A 3 o n ly
T M R fo r P A 2 o n ly
输入输出口(
)
输入输出口( PA0~PA6)
R e a d D a ta
D a ta B u s
P A 7
R E S fo r P A 7 o n ly
输入输出口(
)
输入输出口( PA7)
每个输入输出口都有其自己的控制寄存器(PAC),用来控制输入/输出模式(PA7 只能作为输入
口)。使用控制寄存器,可对 CMOS 输出或斯密特触发输入(带或不带上拉电阻)在软件下动态地进
行改变(PA7 口只能作为输入口使用)。作为输入时,相应的控制寄存器必须写“1”。信号源的输入
也取决于控制寄存器。如果控制寄存器的某位值为“1”那么输入信号是读取自这个引脚的状态,但是
如果控制寄存器的某位值为“0”,那么锁存器的内容将会被送到内部总线。后者,可以在“读改写”
指令中发生。
对于输出功能,只能设置为 CMOS 输出。这些控制寄存器是对应于内存的 13H 地址。
芯片复位后,这些输入/输出口都会是高电平或浮空状态(取决于上拉电阻的选项)。每一个输入/
输出锁存位都能被 SET [m].i 或 CLR [m].i 指令置位或清零(m=12H)。
某些指令会首先输入数据然后进行输出操作。例如,SET [m].i ,CLR [m].i,CPL [m]和 CPLA [m]
指令,读取输入口的状态到 CPU,执行这个操作(位操作),然后将数据写回锁存器或累加器。
Rev.1.20
22
2007-06-21
HT48R01/HT48R02/HT48R03
•
唤醒和上拉电阻功能:
PA(除 PA.7)的每个端口都具有唤醒和上拉电阻功能分别由 PAWK,PAPU 寄存器控制。PA7 不带唤
醒功能和上拉电阻。
位
0~6
符号
功能
PAWK0~
PAWKn=0,PAn 口关闭唤醒功能
PAWK6
PAWKn=1,PAn 口打开唤醒功能
—
7
未定义,读出为“0”
PAWK(
(15H)
)寄存器
位
0~6
符号
功能
PAPU0~
PAPUn=0,PAn 口不带上拉电阻
PAPU6
PAWKn=1,PAn 口带上拉电阻
7
—
未定义,读出为“0”
PAPU(
(14H)
) 寄存器
•
蜂鸣器功能:
PA0/PA1 分别与 BZ/ BZ 管脚复用。如蜂鸣器被选择,那么 PA0 ( PA1 )被设为输出脚, PA0
(PA1)上的信号将成为蜂鸣器信号。如果设为输入口,那么 PA0(PA1)保持原来的功能。
蜂鸣器的输出信号(在输出模式)只受 PA0 数据寄存器控制。PA0/BZ 和 PA1/ BZ 输出功能如下表
格所示。PA 口同样具有 COMS 输出或斯密特触发输入功能选择。PA0/BZ 和 PA1 BZ 输入输出功能如
下。
PA0 输入/输出
输入 输出
PA1 输入/输出
输入 输出
PA0 模式
PA1 模式
PA0 数据
PA1 数据
PA0 Pad 状态
PA1 Pad 状态
I
I
x
x
x
x
I
I
I
O
x
C
x
D
I
D
I
O
x
B
0
x
I
0
I
O
x
B
1
x
I
B
O
I
C
x
D
x
D
I
O
I
B
x
0
x
0
I
O
I
B
x
1
x
B
I
O
O
C
C
D0
D1
D0
D1
O
O
B
C
0
D
0
D
O
O
B
C
1
D
B
D
O
O
B
B
0
x
0
0
O
O
B
B
1
x
B
B
注意:I:输入;O:输出;D, D0 , D1 ,:数据
B:蜂鸣器选项,BZ 或 BZ ;x:任意值
C:COMS 输出
Rev.1.20
23
2007-06-21
HT48R01/HT48R02/HT48R03
低电压复位 — LVR
为了监控器件的工作电压,单片机提供低电压复位功
能。如果工作电压在 0.9V~VLVR 之间,例如电池电压的变
化,那么 LVR 会自动使器件产生内部复位。
LVR 功能说明如下:
· 低电压(0.9V~VLVR)的状态必须持续 1ms 以上。如果
低电压的状态没有持续 1ms 以上,那么 LVR 会忽视它而不
去执行复位功能。
· LVR 通过与外部 RES信号的“或”的功能来执行系统
V D D
5 .5 V
2 .1 V
V
V D D
5 .5 V
O P R
5 .5 V
V
L V R
2 .2 V
3 .1 5 V
V
V D D
5 .5 V
O P R
5 .5 V
V
L V R
2 .2 V
0 .9 V
4 .2 V
V
O P R
5 .5 V
V
L V R
2 .2 V
0 .9 V
0 .9 V
复位。
注:V
为系统时钟 4MHz 时一
OPR
般芯片正常工作电压的范围。
VDD 与 VLVR 之间的关系如下所示:
V
D D
5 .5 V
V
L V R
L V R
D e te c t V o lta g e
0 .9 V
0 V
R e s e t S ig n a l
R e s e t
N o r m a l O p e r a tio n
*1
R e s e t
*2
低电压复位
注:*1:要保证系统振荡器起振并稳定运行,在系统进入正常运行以前,SST 提供额外的 1024 个系统时钟周期的延迟。
*2:低电压状态必须保持 tLVR 以上,进入复位模式就要有 tLVR 的延迟。
掩膜选项
以下的表格,列出了这种单片机的各种类型的掩膜选项。所有的掩膜选项必须正确定义。
编号
1
2
3
4
5
6
7
8
Rev.1.20
选
项
系统振荡器选择
•
内部 RC+PA5/PA6
•
内部 RC+RTC
•
外部晶振
•
外部 RC+PA5
内部 RC 频率选择:4MHz,8MHz,12MHz
WDT 功能:打开或关闭
WDT 时钟来源:WDTOSC,fSYS/4 或者 RTC 晶振
清除看门狗指令条数:1 或 2 条清除 WDT
LVR 功能:打开或关闭
LVR 选择:2.1V/3.15V/4.2V
RES或 PA7 选择
24
2007-06-21
HT48R01/HT48R02/HT48R03
应用电路
V
D D
R
O S C
O S C 1
4 7 0 p F
P A 5
C 1
V
D D
1 0 0 k W
0 .1 m F
O S C 1
C 2
0 .0 1 m F *
1 0 k W
0 .1 m F *
R 1
V D D
R E S /P A 7
V S S
P A 0 /B Z
1 0 p F
P A 1 /B Z
P A 2 /T M R 0
S e e R ig h t S id e
O S C 2
O S C 1
3 2 7 6 8 H z
O S C 2
C r y s ta l S y s te m O s c illa to r
F o r C 1 , C 2 a n d R 1 v a lu e s ,
s e e ta b le b e lo w
In te r n a l R C O s c illa to r
+ E x te rn a l R T C O S C
P A 3 /IN T
P A 4 /T M R 1
O S C
C ir c u it
R C S y s te m O s c illa to r
2 4 k W < R O S C < 1 .5 M W
P A 5
O S C 1
P A 6
O S C 2
H T 4 8 R 0 1 /H T 4 8 R 0 2 /H T 4 8 R 0 3
O S C
In te r n a l R C O s c illa to r
T w o p in s a r e c o n fig u r e d
a s I/O p in
C ir c u it
注:电阻和电容值选取的原则是使 VDD 保持稳定并在 RES 置为高以前把工作电压保持在允许的范围内。
“*”为了避免噪声干扰,连接 RES 引脚的线请尽可能的短
下表所示为根据不同的晶振值选择 R1、C1、C2(仅供参考)
晶体振荡或谐振器
C1,
,C2
R1
35pF
8MHz 晶振和谐振器
3.9kΩ
10pF
4MHz 晶振
10kΩ
10pF
4MHz 谐振器
12kΩ
10pF
3.58MHz 晶振
12kΩ
10pF
3.58MHz 谐振器
12kΩ
35pF
2MHz 晶振和谐振器
12kΩ
68pF
1MHz 晶振
18kΩ
300pF
480KHz 谐振器
10kΩ
455KHz 谐振器
300pF
10kΩ
300pF
429KHz 谐振器
10kΩ
300pF
400KHz 谐振器
10kΩ
电阻 R1 保证了在低电压状态下,晶振被关闭。这里的低电压,是指低于
MCU 正常工作电压范围。请注意,当启动了 LVR 功能,R1 可以不接。
Rev.1.20
25
2007-06-21
HT48R01/HT48R02/HT48R03
指令集摘要
助记符
算术运算
ADD
A,[m]
ADDM A,[m]
ADD
A,x
ADC
A,[m]
ADCM A,[m]
SUB
A,x
SUB
A,[m]
SUBM A,[m]
SBC
A,[m]
SBCM A,[m]
DAA
[m]
逻辑运算
AND
A,[m]
OR
A,[m]
XOR
A,[m]
ANDM A,[m]
ORM
A,[m]
XORM A,[m]
AND
A,x
OR
A,x
XOR
A,x
CPL
[m]
CPLA
[m]
递增和递减
INCA
[m]
INC
[m]
DECA
[m]
DEC
[m]
移位
RRA
[m]
RR
[m]
RRCA
[m]
RRC
[m]
RLA
[m]
RL
[m]
RLCA
[m]
RLC
[m]
数据传送
MOV
A,[m]
MOV
[m],A
MOV
A,x
位运算
CLR
[m].i
SET
[m].i
Rev.1.20
说明
指令周期
影响标志位
ACC 与数据存储器相加,结果放入 ACC
ACC 与数据存储器相加,结果放入数据存储器
ACC 与立即数相加,结果放入 ACC
ACC 与数据存储器、进位标志相加,结果放入 ACC
ACC 与数据存储器、进位标志相加,结果放入数据存储器
ACC 与立即数相减,结果放入 ACC
ACC 与数据存储器相减,结果放入 ACC
ACC 与数据存储器相减,结果放入数据存储器
ACC 与数据存储器、进位标志相减,结果放入 ACC
ACC 与数据存储器、进位标志相减,结果放入数据存储器
将加法运算中放入 ACC 的值调整为十进制数,并将结果放
入数据存储器
1
1(1)
1
1
1(1)
1
1
1(1)
1
1(1)
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
Z,C,AC,OV
1(1)
C
ACC 与数据存储器做“与”运算,结果放入 ACC
ACC 与数据存储器做“或”运算,结果放入 ACC
ACC 与数据存储器做“异或”运算,结果放入 ACC
ACC 与数据存储器做“与”运算,结果放入数据存储器
ACC 与数据存储器做“或”运算,结果放入数据存储器
ACC 与数据存储器做“异或”运算,结果放入数据存储器
ACC 与立即数做“与”运算,结果放入 ACC
ACC 与立即数做“或”运算,结果放入 ACC
ACC 与立即数做“异或”运算,结果放入 ACC
对数据存储器取反,结果放入数据存储器
对数据存储器取反,结果放入 ACC
1
1
1
1(1)
1(1)
1(1)
1
1
1
1(1)
1
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
递增数据存储器,结果放入 ACC
递增数据存储器,结果放入数据存储器
递减数据存储器,结果放入 ACC
递减数据存储器,结果放入数据存储器
1
1(1)
1
1(1)
Z
Z
Z
Z
数据存储器右移一位,结果放入 ACC
数据存储器右移一位,结果放入数据存储器
带进位将数据存储器右移一位,结果放入 ACC
带进位将数据存储器右移一位,结果放入数据存储器
数据存储器左移一位,结果放入 ACC
数据存储器左移一位,结果放入数据存储器
带进位将数据存储器左移一位,结果放入 ACC
带进位将数据存储器左移一位,结果放入数据存储器
1
1(1)
1
1(1)
1
1(1)
1
1(1)
无
无
C
C
无
无
C
C
将数据存储器送至 ACC
将 ACC 送至数据存储器
将立即数送至 ACC
1
1(1)
1
无
无
无
清除数据存储器的位
置位数据存储器的位
1(1)
1(1)
无
无
26
2007-06-21
HT48R01/HT48R02/HT48R03
助记符
转移
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
WDT
CLR
WDT1
CLR
WDT2
SWAP
[m]
SWAPA [m]
HALT
说明
指令周期
影响标志位
无条件跳转
如果数据存储器为零,则跳过下一条指令
数据存储器送至 ACC,如果内容为零,则跳过下一条指令
如果数据存储器的第 i 位为零,则跳过下一条指令
如果数据存储器的第 i 位不为零,则跳过下一条指令
递增数据存储器,如果结果为零,则跳过下一条指令
递减数据存储器,如果结果为零,则跳过下一条指令
递增数据存储器,将结果放入 ACC,如果结果为零,则跳
过下一条指令
递减数据存储器,将结果放入 ACC,如果结果为零,则跳
过下一条指令
子程序调用
从子程序返回
从子程序返回,并将立即数放入 ACC
从中断返回
2
1(2)
1(2)
1(2)
1(2)
1(3)
1(3)
无
无
无
无
无
无
无
1(2)
无
1(2)
无
2
2
2
2
无
无
无
无
读取当前页的 ROM 内容,并送至数据存储器和 TBLH
读取最后页的 ROM 内容,并送至数据存储器和 TBLH
2(1)
2(1)
无
无
空指令
清除数据存储器
置位数据存储器
清除看门狗定时器
预清除看门狗定时器
预清除看门狗定时器
交换数据存储器的高低字节,结果放入数据存储器
交换数据存储器的高低字节,结果放入 ACC
进入暂停模式
1
1(1)
1(1)
1
1
1
1(1)
1
1
无
无
无
TO,PDF
TO(4),PDF(4)
TO(4),PDF(4)
无
无
TO,PDF
注: x:立即数
m:数据存储器地址
A:累加器
i:第 0~7 位
addr:程序存储器地址
√:影响标志位
—:不影响标志位
(1)
:如果数据是加载到 PCL 寄存器,则指令执行周期会被延长一个指令周期(四个系统时钟)。
(2)
:如果满足跳跃条件,则指令执行周期会被延长一个指令周期(四个系统时钟);否则指令执行周期不会被延
长。
(3) (1) (2)
: 和
(4)
:如果执行 CLR WDT1 或 CLR WDT2 指令后,看门狗定时器被清除,则会影响 TO 和 PDF 标志位;否则不
会影响 TO 和 PDF 标志位。
Rev.1.20
27
2007-06-21
HT48R01/HT48R02/HT48R03
ADC
A, [m]
说明:
运算过程:
影响标志位
累加器与数据存储器、进位标志相加,结果放入累加器
本指令把累加器、数据存储器值以及进位标志相加,结果存放到累加器。
ACCACC+[m]+C
TO
—
ADCM A, [m]
说明:
运算过程:
影响标志位
PDF
—
OV
√
Z
√
AC
√
C
√
PDF
—
OV
√
Z
√
AC
√
C
√
PDF
—
OV
√
Z
√
AC
√
C
√
PDF
—
OV
√
Z
√
AC
√
C
√
累加器与数据存储器做“与”运算,结果放入累加器
本指令把累加器值、数据存储器值做逻辑与,结果存放到累加器。
ACCACC “AND” [m]
TO
—
Rev.1.20
C
√
累加器与数据存储器相加,结果放入数据存储器
本指令把累加器、数据存储器值相加,结果存放到数据存储器。
[m]ACC+[m]
TO
—
AND
A, [m]
说明:
运算过程:
影响标志位
AC
√
累加器与立即数相加,结果放入累加器
本指令把累加器值和立即数相加,结果存放到累加器。
ACCACC+x
TO
—
ADDM A, [m]
说明:
运算过程:
影响标志位
Z
√
累加器与数据存储器相加,结果放入累加器
本指令把累加器、数据存储器值相加,结果存放到累加器。
ACCACC+[m]
TO
—
ADD
A, x
说明:
运算过程:
影响标志位
OV
√
累加器与数据存储器、进位标志相加,结果放入数据存储器
本指令把累加器、数据存储器值以及进位标志相加,结果存放到存储器。
[m]ACC+[m]+C
TO
—
ADD
A, [m]
说明:
运算过程:
影响标志位
PDF
—
PDF
—
OV
—
Z
√
28
AC
—
C
—
2007-06-21
HT48R01/HT48R02/HT48R03
累加器与立即数做“与”运算,结果放入累加器
本指令把累加器值、立即数做逻辑与,结果存放到累加器。
ACCACC “AND” x
AND
A, x
说明:
运算过程:
影响标志位
TO
—
ANDM A, [m]
说明:
运算过程:
影响标志位
addr
运算过程:
OV
—
Z
√
AC
—
C
—
累加器与数据存储器做“与”运算,结果放入数据存储器
本指令把累加器值、数据存储器值做逻辑与,结果存放到数据存储器。
[m]ACC “AND” [m]
TO
—
CALL
说明:
PDF
—
PDF
—
OV
—
Z
√
AC
—
C
—
子程序调用
本指令直接调用地址所在处的子程序,此时程序计数器加一,将此程序计数器值存到堆栈
寄存器中,再将子程序所在处的地址存放到程序计数器中。
StackPC+1
PC addr
影响标志位
TO
—
CLR [m]
说明:
运算过程:
影响标志位
运算过程:
Z
—
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
AC
—
C
—
将数据存储器的第 i 位清“0”
本指令将数据存储器内第 i 位值清零。
[m].i 0
TO
—
CLRWDT
说明:
OV
—
清除数据存储器
本指令将数据存储器内的数值清零。
[m] 00H
TO
—
CLR [m] . i
说明:
运算过程:
影响标志位
PDF
—
PDF
—
OV
—
Z
—
清除看门狗定时器
本指令清除 WDT 计数器(从 0 开始重新计数),暂停标志位(PDF)和看门狗溢出标志位(TO)
也被清零。
WDT 00H
PDF&TO 0
影响标志位
TO
0
Rev.1.20
PDF
0
OV
—
Z
—
29
AC
—
C
—
2007-06-21
HT48R01/HT48R02/HT48R03
CLRWDT1
说明:
运算过程:
预清除看门狗定时器
必须搭配 CLR WDT2 一起使用,才可清除 WDT 计时器(从 0 开始重新计数)。当程序只执
行过该指令,没有执行 CLR WDT2 时,系统只会不会将暂停标志位(PDF)和计数溢出位
(TO)清零,PDF 与 TO 保留原状态不变。
WDT 00H*
PDF&TO 0*
影响标志位
TO
0*
CLRWDT2
说明:
运算过程:
PDF
0*
OV
—
Z
—
AC
—
C
—
预清除看门狗定时器
必须搭配 CLR WDT1 一起使用,才可清除 WDT 计时器(从 0 开始重新计数)。当程序只执
行过该指令,没有执行 CLR WDT1 时,系统只会不会将暂停标志位(PDF)和计数溢出位
(TO)清零,PDF 与 TO 保留原状态不变。
WDT 00H*
PDF&TO 0*
影响标志位
TO
0*
CPL
[m]
说明:
运算过程:
影响标志位
Z
—
AC
—
C
—
PDF
—
OV
—
Z
√
AC
—
C
—
对数据存储器取反,结果放入累加器
本指令是将数据存储器内保存的值取反后,结果存放在累加器中。
ACC [ m ]
TO
—
Rev.1.20
OV
—
对数据存储器取反,结果放入数据存储器
本指令是将数据存储器内保存的数值取反。
[m] [ m ]
TO
—
CPLA
[m]
说明:
运算过程:
影响标志位
PDF
0*
PDF
—
OV
—
Z
√
30
AC
—
C
—
2007-06-21
HT48R01/HT48R02/HT48R03
DAA
说明
[m]
操作
将加法运算后放入累加器的值调整为十进制数,并将结果放入数据存储器
本指令将累加器高低四位分别调整为 BCD 码。如果低四位的值大于“9”或 AC=1,那么
BCD 调整就执行对原值加“6”,并且内部进位标志 AC1= AC ,即 AC 求反;否则原值保
持不变。如果高四位的值大于“9”或 C=1,那么 BCD 调整就执行对原值加“6”再加
AC1,并把 C 置位;否则 BCD 调整就执行对原值加 AC1,C 的值保持不变。结果存放到
数据存储器中,只有进位标志位(C)受影响。
如果 ACC.3~ACC.0 > 9 或 AC=1
那么 [m].3~[m].0 (ACC.3~ACC.0 )+6,AC1= AC
否则 [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
影响标志位
TO
—
DEC [m]
说明:
运算过程:
影响标志位
运算过程:
Z
—
AC
—
C
√
PDF
—
OV
—
Z
√
AC
—
C
—
数据存储器的内容减 1,结果放入累加器
本指令将存储器内的数值减一,再放到累加器。
ACC [m]-1
TO
—
HALT
说明:
OV
—
数据存储器的内容减 1,结果放入数据存储器
本指令将数据存储器内的数值减一再放回数据存储器。
[m] [m]-1
TO
—
DECA
[m]
说明:
运算过程:
影响标志位
PDF
—
PDF
—
OV
—
Z
√
AC
—
C
—
进入暂停模式
本指令终止程序执行并关掉系统时钟,RAM 和寄存器内的数值保持原状态,WDT 计数器
清“0”,暂停标志位(PDF)被设为 1, WDT 计数溢出位(TO)被清为 0。
PC PC+1
PDF 1
TO 0
影响标志位
TO
0
Rev.1.20
PDF
1
OV
—
Z
—
31
AC
—
C
—
2007-06-21
HT48R01/HT48R02/HT48R03
INC
[m]
说明:
运算过程:
影响标志位
数据存储器的内容加 1,结果放入数据存储器
本指令将数据存储器内的数值加一,结果放回数据存储器。
[m] [m]+1
TO
—
INCA
[m]
说明:
运算过程:
影响标志位
PDF
—
OV
—
Z
√
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
AC
—
C
—
将累加器送至数据存储器
本指令是将累加器值送到数据存储器内。
[m] ACC
TO
—
Rev.1.20
C
—
将立即数送至累加器
本指令是将立即数送到累加器内。
ACC x
TO
—
MOV
[m], A
说明:
运算过程:
影响标志位
AC
—
将数据存储器送至累加器
本指令是将数据存储器内的数值送到累加器内。
ACC [m]
TO
—
MOV
A, x
说明:
运算过程:
影响标志位
Z
√
无条件跳转
本指令是将要跳到的目的地直接放到程序计数器内。
PC addr
TO
—
MOV
A, [m]
说明:
运算过程:
影响标志位
OV
—
数据存储器的内容加 1,结果放入累加器
本指令是将存储器内的数值加一,结果放到累加器。
ACC [m]+1
TO
—
JMP
addr
说明:
运算过程:
影响标志位
PDF
—
PDF
—
OV
—
Z
—
32
2007-06-21
HT48R01/HT48R02/HT48R03
NOP
说明:
运算过程:
影响标志位
空指令
本指令不作任何运算,而只将程序计数器加一。
PC PC+1
TO
—
OR
A, [m]
说明:
运算过程:
影响标志位
C
—
PDF
—
OV
—
Z
√
AC
—
C
—
PDF
—
OV
—
Z
√
AC
—
C
—
PDF
—
OV
—
Z
√
AC
—
C
—
从子程序返回
本指令是将堆栈寄存器中的程序计数器值送回程序计数器。
PC Stack
TO
—
RET
A, x
说明:
运算过程:
AC
—
累加器与数据存储器做“或”运算,结果放入数据存储器
本指令是把累加器值、存储器值做逻辑或,结果放到数据存储器。
[m]ACC “OR” [m]
TO
—
RET
说明:
运算过程:
影响标志位
Z
—
累加器与立即数做“或”运算,结果放入累加器
本指令是把累加器值、立即数做逻辑或,结果放到累加器。
ACCACC “OR” x
TO
—
ORM
A, [m]
说明:
运算过程:
影响标志位
OV
—
累加器与数据存储器做“或”运算,结果放入累加器
本指令是把累加器、数据存储器值做逻辑或,结果放到累加器。
ACCACC “OR” [m]
TO
—
OR
A, x
说明:
运算过程:
影响标志位
PDF
—
PDF
—
OV
—
Z
—
AC
—
C
—
从子程序返回,并将立即数放入累加器
本指令是将堆栈寄存器中的程序计数器值送回程序计数器,并将立即数送回累加器。
PC Stack
ACC x
影响标志位
TO
—
Rev.1.20
PDF
—
OV
—
Z
—
33
AC
—
C
—
2007-06-21
HT48R01/HT48R02/HT48R03
RETI
说明:
运算过程:
从中断返回
本指令是将堆栈寄存器中的程序计数器值送回程序计数器,与 RET 不同的是它使用在中
断程序结束返回时,它还会将中断控制寄存器 INTC 的 0 位(EMI)中断允许位置 1,允许中
断服务。
PC Stack
EMI 1
影响标志位
TO
—
RL
[m]
说明:
运算过程:
影响标志位
运算过程:
影响标志位
运算过程:
Z
—
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
数据存储器左移一位,结果放入累加器
本指令是将存储器内的数值左移一位,第 7 位移到第 0 位,结果送到累加器,而数据存储
器内的数值不变。
ACC.0 [m].7, ACC.(i+1) [m].i;
(i=0~6)
TO
—
RLC[m]
说明:
OV
—
数据存储器左移一位,结果放入数据存储器
本指令是将数据存储器内的数值左移一位,第 7 位移到第 0 位,结果送回数据存储器。
[m].0 [m].7, [m].(i+1) [m].i; (i=0~6)
TO
—
RLA[m]
说明:
PDF
—
PDF
—
OV
—
Z
—
AC
—
C
—
带进位将数据存储器左移一位,结果放入数据存储器
本指令是将存储器内的数值与进位标志左移一位,第 7 位取代进位标志,进位标志移到第
0 位,结果送回数据存储器。
[m].(i+1) [m].i; (i=0~6)
[m].0 C
C [m].7
影响标志位
TO
—
RLCA
说明:
[m]
运算过程:
PDF
—
OV
—
Z
—
AC
—
C
√
带进位将数据存储器左移一位,结果放入累加器
本指令是将存储器内的数值与进位标志左移一位,第七位取代进位标志,进位标志移到第
0 位,结果送回累加器。
ACC.(i+1) [m].i;(i=0~6)
ACC.0 C
C [m].7
影响标志位
TO
—
Rev.1.20
PDF
—
OV
—
Z
—
34
AC
—
C
√
2007-06-21
HT48R01/HT48R02/HT48R03
RR
[m]
说明:
运算过程:
影响标志位
数据存储器右移一位,结果放入数据存储器
本指令是将存储器内的数值循环右移,第 0 位移到第 7 位,结果送回数据存储器。
[m].7 [m].0, [m].i [m].(i+1);
(i=0~6)
TO
—
RRA
说明:
[m]
运算过程:
影响标志位
[m]
运算过程:
OV
—
Z
—
AC
—
C
—
数据存储器右移一位,结果放入累加器
本指令是将数据存储器内的数值循环右移,第 0 位移到第 7 位,结果送回累加器,而数据
存储器内的数值不变。
ACC.7 [m].0, ACC.i [m].(i+1);
(i=0~6)
TO
—
RRC
说明:
PDF
—
PDF
—
OV
—
Z
—
AC
—
C
—
带进位将数据存储器右移一位,结果放入数据存储器
本指令是将存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志移到第
7 位,结果送回存储器。
[m].i [m].(i+1); (i=0~6)
[m]. 7 C
C [m].0
影响标志位
TO
—
RRCA
说明:
[m]
运算过程:
PDF
—
OV
—
Z
—
AC
—
C
√
带进位将数据存储器右移一位,结果放入累加器
本指令是将数据存储器内的数值加进位标志循环右移,第 0 位取代进位标志,进位标志移
到第 7 位,结果送回累加器,数据存储器内的数值不变。
ACC.i [m].(i+1);
(i=0~6)
ACC.7 C
C [m].0
影响标志位
TO
—
SBC
A,[m]
说明:
运算过程:
影响标志位
OV
—
Z
—
AC
—
C
√
累加器与数据存储器、进位标志相减,结果放入累加器
本指令是把累加器值减去数据存储器值以及进位标志的取反,结果放到累加器。
ACCACC+[ m ]+ C
TO
—
Rev.1.20
PDF
—
PDF
—
OV
√
Z
√
35
AC
√
C
√
2007-06-21
HT48R01/HT48R02/HT48R03
SBCM A,[m]
说明:
运算过程:
影响标志位
累加器与数据存储器、进位标志相减,结果放入数据存储器
本指令是把累加器值减去数据存储器值以及进位标志取反,结果放到数据存储器。
[m]ACC+[ m ]+C
TO
—
SDZ
说明:
[m]
运算过程:
影响标志位
[m]
运算过程:
OV
√
Z
√
AC
√
C
√
数据存储器减 1,如果结果为“0”,则跳过下一条指令
本指令是把数据存储器内的数值减 1,判断是否为 0,若为 0 则跳过下一条指令,即如果
结果为零,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正
确的指令(二个指令周期)。否则执行下一条指令(一个指令周期)。
如果[m]-1=0,跳过下一条指令执行再下一条。
TO
—
SDZA
说明:
PDF
—
PDF
—
OV
—
Z
—
AC
—
C
—
数据存储器减 1,将结果放入累加器,如果结果为“0”,则跳过下一条指令
本指令是把数据存储器内的数值减 1,判断是否为 0,为 0 则跳过下一行指令并将减完后
数据存储器内的数值送到累加器,而数据存储器内的值不变,即若结果为 0,放弃在目前指
令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指令周
期)。否则执行下一条指令(一个指令周期)。
如果[m]-1=0,跳过下一条指令执行再下一条。
ACC ([m]-1)
影响标志位
TO
—
SET
[m]
说明:
运算过程:
影响标志位
Z
—
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
AC
—
C
—
将数据存储器的第 i 位置“1”
本指令是把存储器内的数值的第 i 位置为 1。
[m].i 1
TO
—
Rev.1.20
OV
—
置位数据存储器
本指令是把存储器内的数值每个位置为 1。
[m] FFH
TO
—
SET
[m]. i
说明:
运算过程:
影响标志位
PDF
—
PDF
—
OV
—
Z
—
36
2007-06-21
HT48R01/HT48R02/HT48R03
SIZ
说明:
[m]
运算过程:
影响标志位
数据存储器加 1,如果结果为“0”,则跳过下一条指令
本指令是把数据存储器内的数值加 1,判断是否为 0。若为 0,跳过下一条指令,即放弃在
目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指令
周期)。否则执行下一条指令(一个指令周期)。
如果 ([m]+1=0),跳过下一行指令;[m] [m]+1
TO
—
SIZA
说明:
运算过程:
影响标志位
[m]. i
运算过程:
影响标志位
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
PDF
—
OV
√
Z
√
AC
√
C
√
累加器与立即数相减,结果放入累加器
本指令是把累加器值、立即数相减,结果放到累加器。
ACCACC+ x +1
TO
—
Rev.1.20
AC
—
累加器与数据存储器相减,结果放入累加器
本指令是把累加器值、数据存储器值相减,结果放到累加器。
ACCACC+[ m ]+1
TO
—
SUB
A, x
说明:
运算过程:
影响标志位
Z
—
如果数据存储器的第 i 位不为“0”,则跳过下一条指令
本指令是判断数据存储器内的数值的第 i 位,若不为 0,则程序计数器再加 1,跳过下一行
指令,放弃在目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的
指令(二个指令周期)。否则执行下一条指令(一个指令周期)。
如果 [m].i≠0,跳过下一行指令。
TO
—
SUB
A, [m]
说明:
运算过程:
影响标志位
OV
—
数据存储器加 1,将结果放入累加器,如果结果为“0”,则跳过下一条指令
本指令是把数据存储器内的数值加 1,判断是否为 0,若为 0 跳过下一条指令,即放弃在
目前指令执行期间所取得的下一条指令,并插入一个空周期用以取得正确的指令(二个指
令周期),并将加完后存储器内的数值送到累加器,而数据存储器的值保持不变。否则执
行下一条指令(一个指令周期)。
如果[m]+1=0,跳过下一行指令;ACC ([m]+1)
TO
—
SNZ
说明:
PDF
—
PDF
—
OV
√
Z
√
37
AC
√
C
√
2007-06-21
HT48R01/HT48R02/HT48R03
SUBM A, [m]
说明:
运算过程:
影响标志位
累加器与数据存储器相减,结果放入数据存储器
本指令是把累加器值、存储器值相减,结果放到存储器。
[m]ACC+[ m ]+1
TO
—
SWAP
[m]
说明:
运算过程:
影响标志位
OV
√
Z
√
AC
√
C
√
交换数据存储器的高低字节,结果放入数据存储器
本指令是将数据存储器的低四位和高四位互换,再将结果送回数据存储器。
[m].7~[m].4 ↔[m].3~[m].0
TO
—
SWAPA [m]
说明:
运算过程:
PDF
—
PDF
—
OV
—
Z
—
AC
—
C
—
交换数据存储器的高低字节,结果放入累加器
本指令是将数据存储器的低四位和高四位互换,再将结果送回累加器。
ACC.3~ACC.0 [m].7~[m].4
ACC.7~ACC.4 [m].3~[m].0
影响标志位
TO
—
SZ
说明:
[m]
运算过程:
影响标志位
[m]
运算过程:
影响标志位
Z
—
AC
—
C
—
PDF
—
OV
—
Z
—
AC
—
C
—
数据存储器送至累加器,如果内容为“0”,则跳过下一条指令
本指令是判断存储器内的数值是否为 0,若为 0 则跳过下一行指令,即放弃在目前指令执
行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。并把
存储器内值送到累加器,而存储器的值保持不变。否则执行下一条指令(一个指令周期)。
如果[m] = 0,跳过下一行指令,并 ACC [m]。
TO
—
Rev.1.20
OV
—
如果数据存储器为“0”,则跳过下一条指令
本指令是判断数据存储器内的数值是否为 0,为 0 则跳过下一行指令,即放弃在目前指令
执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。否
则执行下一条指令(一个指令周期)。
如果 [m] = 0, 跳过下一行指令。
TO
—
SZA
说明:
PDF
—
PDF
—
OV
—
Z
—
38
AC
—
C
—
2007-06-21
HT48R01/HT48R02/HT48R03
SZ
说明:
[m]. i
运算过程:
影响标志位
如果数据存储器的第 i 位为“0”,则跳过下一条指令
本指令是判断存储器内第 i 位值是否为 0,若为 0 则跳过下一行指令,即放弃在目前指令
执行期间所取得的下一条指令,并插入一个空周期用以得正确的指令(二个指令周期)。否
则执行下一条指令(一个指令周期)。
如果 [m].i = 0,跳过下一行指令。
TO
—
TABRDC [m]
说明:
运算过程:
PDF
—
OV
—
Z
—
AC
—
C
—
读取 ROM 当前页的内容,并送至数据存储器和 TBLH
本指令是将表格指针指向程序寄存器当前页,将低位送到存储器,高位直接送到 TBLH 寄
存器内。
[m] 程序存储器低字节
TBLH程序存储器高字节
影响标志位
TO
—
TABRDL [m]
说明:
运算过程:
PDF
—
OV
—
Z
—
AC
—
C
—
读取 ROM 最后一页的内容,并送至数据存储器和 TBLH
本指令是将 TABLE 指针指向程序寄存器最后页,将低位送到存储器,高位直接送到
TBLH 寄存器内。
[m] 程序存储器低字节
TBLH程序存储器高字节
影响标志位
TO
—
XOR
A, [m]
说明:
运算过程:
影响标志位
AC
—
C
—
PDF
—
OV
—
Z
√
AC
—
C
—
PDF
—
OV
—
Z
√
AC
—
C
—
累加器与数据存储器做“异或”运算,结果放入累加器
本指令是把累加器值与立即数做逻辑异或,结果放到累加器。
ACCACC “XOR” x
TO
—
Rev.1.20
Z
—
累加器与数据存储器做“异或”运算,结果放入数据存储器
本指令是把累加器值、数据存储器值做逻辑异或,结果放到数据存储器。
[m]ACC “XOR” [m]
TO
—
XOR
A, x
说明:
运算过程:
影响标志位
OV
—
累加器与立即数做“异或”运算,结果放入累加器
本指令是把累加器值、 数据存储器值做逻辑异或,结果放到累加器。
ACCACC “XOR” [m]
TO
—
XORM A, [m]
说明:
运算过程:
影响标志位
PDF
—
PDF
—
OV
—
Z
√
39
AC
—
C
—
2007-06-21
HT48R01/HT48R02/HT48R03
封装信息:
封装信息:
10-pin MSOP 外形尺寸
6
1 0
E 1
5
1
D
A
R
A 2
e
0 .1 0
B
A 1
L
E
C
L 1
q
(4 C O R N E R S )
标号
A
A1
A2
B
C
D
E
E1
e
L
L1
θ
Rev.1.20
尺寸(
)
尺寸(mm)
Min
Nom
Max
—
0
0.75
0.17
—
—
—
—
—
0.4
—
0°
—
—
—
—
—
3
4.9
3
0.5
—
0.95
1.1
0.15
0.95
0.27
0.25
—
—
—
—
0.8
—
8°
40
2007-06-21
HT48R01/HT48R02/HT48R03
盛群半导体股份有限公司(
盛群半导体股份有限公司 (总公司)
总公司)
新竹市科学工业园区研新二路 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  2007 by HOLTEK SEMICONDUCTOR INC.
使用指南中所出现的信息在出版当时相信是正确的,然而盛群对于说明书的使用不负任何责任。文中
提到的应用目的仅仅是用来做说明,盛群不保证或表示这些没有进一步修改的应用将是适当的,也不
推荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救
生、维生器件或系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请
参考我们的网址 http://www.holtek.com.tw
Rev.1.20
41
2007-06-21