HOLTEK HT48R54A User Manual

HT48R54A
16
××××
16
大电流
大电流
大电流大电流
盛群知识产权政策
盛群知识产权政策
盛群知识产权政策盛群知识产权政策
专专专专利利利利权权权权
盛群半导体公司在全球各地区已核准和申请中之专利权至少有 160 件以上,享有绝对之合法权益。与盛群 公司 MCU 或其它产品有关的专利权并未被同意授权使用,任何经由不当手段侵害盛群公司专利权之公司、 组织或个人,盛群将采取一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨盛群公司因侵权行为 所受之损失、或侵权者所得之不法利益。
商标权
商标权
商标权商标权
盛群之名称和标识、Holtek 标识、HT-IDE、HT-ICE、Marvel Speech、 Music Micro、 Adlib Micro、 Magic Voice Green Dialer、 PagerPro、 Q-Voice Turbo Voice、 EasyVoice 和 HandyWriter 都是盛群半导体公 司在台湾地区和其它国家的注册商标。
著作权
著作权
著作权著作权
LED
驱动八位驱动八位
OTP
单片机
单片机
单片机单片机
Copyright 2010 by HOLTEK SEMICONDUCTOR INC.
规格书中所出现的信息在出版当时相信是正确的,然而盛群对于规格内容的使用不负责任。文中提到的应 用其目的仅仅是用来做说明,盛群不保证或不表示这些应用没有更深入的修改就能适用,也不推荐它的产 品使用在会由于故障或其它原因可能会对人身造成危害的地方。盛群产品不授权使用于救生、维生器件或 系统中做为关键器件。盛群拥有不事先通知而修改产品的权利,对于最新的信息,请参考我们的网址
http://www.holtek.com.tw; http://www.holtek.com.cn
Rev. 1.20 1 2010-04-28
技术相关信息
技术相关信息
技术相关信息技术相关信息
· 工具信息
· FAQs
· 应用范例
HT0002S MCU 大型表格的读取
HT0007S MCU 查表指令的使用
HT0019S HT48 MCU WDT 的使用
HT0020S HT48 MCU 定时/计数器的使用
HT0075S MCU 重置电路和振荡电路应用
特性
特性
特性特性
HT48R54A
· 工作电压:
f
= 32768Hz2.2V5.5V
SYS
f
= 4MHz2.2V5.5V
SYS
f
= 8MHz3.3V5.5V
SYS
· 4k×15 程序存储器 ROM
· 192×8 数据存储器 RAM
· 8 个双向输入/输出口
· 最多 16×16 LED 驱动输出
· 8 个复用的 LED 输入输出口
· 24 个 LED 输出口
· 1 个外部中断输入
· 2 个内部中断
· 2 个 8 位可编程定时/计数器
· 32768 实时时钟功能
· 6 层硬件堆栈
· 看门狗定时器(WDT)
· 低电压复位功能(LVR)
概述
概述
概述概述
HT48R54A 是八位高性能精简指令集单片机,专为多输入输出控制的产品设计。拥有低功耗、I/O 使 用灵活、定时器功能、振荡选择、省电和唤醒功能、看门狗定时器以及低价位等优势,使此款多功能芯片 可以广泛地适用于各种应用,例如工业控制、消费类产品、子系统控制器等。
· PFD/Buzzer 驱动输出
· 外部 RC/XTAL 和 32768Hz 振荡器
· 双时钟系统提供 3 种工作模式 —常规模式:RC/XTAL 和 32768Hz 时钟都工 作 —慢速模式:只有 32768Hz 时钟工作 —暂停模式:由看门狗时钟溢出周期性唤醒
· HALT 和唤醒功能可降低功耗
· 查表指令,表格内容字长 15 位
· 63 条功能强大的指令
· 一个指令周期:4 个系统时钟周期
· 所有指令执行时间皆为 1 或 2 个指令周期
· 位操作指令
· 系统频率为 8MHz 时,指令周期为 0.5µs
· 44/52-pin QFP 和 44-pin LQFP 封装
Rev. 1.20 2 2010-04-28
方框图
P A 7 / P F D
P E 0 P E 1 P E 2
V S S E
P E 3 P E 4 P E 5 P E 6 P E 7
P D 0 / I N T
P D 1 P D 2
V S S P B 7 P B 6 P B 5 P B 4 V D D B V D D B P B 3 P B 2 P B 1 P B 0 P C 7 P C 6
1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3
1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2
3 4
3 5
3 6
3 7
3 8
3 9
4 84 95 05 15 2
2 3 2 4 2 5 2 6
2 7
2 8
2 9
3 0
3 1
3 2
3 3
H T 4 8 R 5 4 A 5 2 Q F P - A
4 04 14 24 34 44 54 64 7
O S C 3
O S C 4
V D D
O S C 2
O S C 1
R E S
P A 0 / B Z
P A 1 / B Z
P A 2 / T M R 0
P A 3 / T M R 1
P A 4
P A 5
P A 6
P C 5
P C 4
V D D C
P C 3
P C 2
P C 1
P C 0
P D 7
P D 6
P D 5
V S S D
P D 4
P D 3
P A 5 P A 6
P A 7 / P F D
P E 0 P E 1 P E 2
V S S E
P E 3 P E 4 P E 5 P E 6
V S S P B 7 P B 6 P B 5 P B 4 V D D B V D D B P B 3 P B 2 P B 1 P B 0
H T 4 8 R 5 4 A
4 4 Q F P - A
O S C 3
O S C 4
V D D
O S C 2
O S C 1
R E S
P A 0 / B Z
P A 1 / B Z
P A 2 / T M R 0
P A 3 / T M R 1
P A 4
P C 7
P C 6
P C 5
P C 4
V D D C
P C 3
P C 2
P C 1
P C 0
V S S D
P D 0 / I N T
1 2 3 4 5 6 7 8 9 1 0 1 1
1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
3 0
3 1
3 2
3 3
3 43 53 63 73 83 94 04 14 24 34 4
方框图
方框图方框图
P r o g r a m
C o u n t e r
A d d r e s s D e c o d e r
P r o g r a m M e m o r y
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
R C o r C r y s t a l
O s c i l l a t o r
S t a c k
S t a c k P o i n t e r
O s c i l l a t o r
M U X
R T C
L o o k u p T a b l e
P o i n t e r
L o o k u p T a b l e
R e g i s t e r
A C C
A L U
S h i f t e r
M U X
A d d r e s s D e c o d e r
P r o g r a m M e m o r y
O s c i l l a t o r
R e s e t &
I n t e r r u p t
C i r c u i t
M e m o r y
P o i n t e r
W D T
L V R
I N T C
T M R 1 C
T M R 1
W D T
C o u n t e r
T M R 0
T M R 0 C
P A C
P A
P B C
P B
P C
P D
M U X
P O R T A
P O R T B
P O R T C
P O R T D
HT48R54A
T 1 S
M
R T C O S C
U
M U X
M U X
X
P A 3 / T M R 1
P r e s c a l e r
f
/ 4
S Y S
P A 0 / B Z
P A 1 / B Z
P A 2 / T M R 0
P A 3 / T M R 1
P A 4 ~ P A 6
P A 7 / P F D
P B 0 ~ P B 7
P C 0 ~ P C 7
P D 0 / I N T
P D 1 ~ P D 7
f
S Y S
f
/ 4
S Y S
M U
R T C O S C
X
W D T O S C
P O R T E
P E
O S C 4
R E S , V D D
V D D B , V D D C
V S S , V S S D
V S S E
O S C 1 O S C 3
引脚图
引脚图
引脚图引脚图
Rev. 1.20 3 2010-04-28
O S C 2
P E 0 ~ P E 7
引脚说明
引脚说明
引脚说明引脚说明
引脚名称
引脚名称 输入
引脚名称引脚名称
PA0/BZ PA1/BZ
PA2/TMR0 PA3/TMR1 PA4~PA6 PA7/PFD
PB0~ PB7
PC0~PC7
PD0/——INT
PD1~PD7
PE0~PE7 ——
RES
OSC1 OSC2
OSC3 OSC4
VDD
V
DDB
V
DDC
VSS
V
SSD
V
SSE
输入/输出
输出 掩膜选项
输入输入
输出输出
输入/输出
输入/输出
输出 PC0~PC7 是 PMOS 输出。
输入/输出
输出 PD1~PD7 是 NMOS 输出。 输出 PE0~PE7 是 NMOS 输出。
输入 斯密特触发复位输入端,低电平有效。 输入
输出 输入 输出
正电源。 — 正电源,供 PB 口使用。 — 正电源,供 PC 口使用。 — 负电源,接地。
负电源,供 PD、PE 口使用,接地。
掩膜选项
掩膜选项掩膜选项
8 位双向输入/输出端口,可由软件指令设置为 CMOS 输出或斯
上拉电阻
唤醒
Buzzer
PFD
8 位双向输入/输出口,用作输出时为 PMOS 输出。
RC
或晶体
密特触发输入,可由掩膜选项设置是否带上拉电阻,每一位可 由掩膜选项设置为唤醒输入。
BZ BZ分别与 PA0 PA1 共用引脚。 TMR0 TMR1 分别与 PA2 PA3 共用引脚。 PFD PA7 共用引脚,并由掩膜选项设置。
外部中断输入,和 PD0 共用引脚,在上升沿或下降沿触发外部 中断。PD0 NMOS 输出。
OSC1、OSC2 连接 RC 或晶体(由掩膜选项确定)以产生内部系统 时钟。在 RC 振荡方式下,OSC2 是系统时钟四分频的输出口。 实时时钟振荡器。OSC3 和 OSC4 连接到一个 32768Hz 的晶体 振荡器来产生实时系统时钟。
说说说说 明明明明
HT48R54A
极限参数
极限参数
极限参数极限参数
电源供应电压 …… VSS - 0.3V 至 Vss + 6.0V 储存温度 …… -50℃至 125℃ 端口输入电压 …… Vss - 0.3V V 端口总灌电流 ………………………. 300mA 端口总源电流 …………. -200mA 总功耗 ……………………………. 500mW
注:这里只强调额定功率,超过极限参数所规定的范围将对芯片造成损害,无法预期芯片在上述标示范围外的工作状态,而
且若长期在标示范围外的条件下工作,可能影响芯片的可靠性。
Rev. 1.20 4 2010-04-28
+ 0.3V 工作温度 ……... -40℃至 85
DD
直流电气特性
直流电气特性
直流电气特性直流电气特性
符号
符号
符号符号
V
工作电压
DD
工作电流
I
DD1
(晶体振荡,RC 振荡) 工作电流
I
DD2
(晶体振荡,RC 振荡) 工作电流
I
(*RTC 振荡打开,晶体振荡关
DD3
闭,RC 振荡关闭) 静态电流
I
STB1
(看门狗打开,*RTC 振荡打开) 静态电流
I
STB2
(看门狗关闭,*RTC 振荡打开) 静态电流
I
STB3
(看门狗打开,RTC 振荡关闭) 静态电流
I
STB4
(看门狗关闭,RTC 振荡关闭)
V
输入/输出口的低电平输入电压 —
IL1
V
输入/输出口的高电平输入电压 —
IH1
HT48R54A
Ta=25
测试条件
测试条件
参数
参数
参数参数
V
— — —
3V 5V
5V
3V
5V
3V 5V 3V 5V 3V 5V 3V 5V
DD
测试条件测试条件
条件
条件
条件条件
f
=4MHz 2.2
SYS
f
=8MHz 3.3
SYS
f
=32768Hz
SYS
无负载 f
=4MHz
SYS
无负载 f
=8MHz
SYS
无负载 f
=32768Hz
SYS
无负载 系统暂停模式
无负载 系统暂停模式
无负载
系统暂停模式
无负载
系统暂停模式
最小
最小 典型
最小最小
典型 最大
典型典型
2.2
— —
— — — — — — — — —
0
0.7V
DD
最大 单位
最大最大
— — —
5.5
5.5
5.5
1.2 2
2.5 5
4 8 mA
20 40
50 100
3 5 6 10 1 2 2 4 2 4 4 8
1 2
0.3V
— —
DD
VDD V
单位
单位单位
V
mA
μA
μA
μA
μA
μA
V
V
低电平输入电压(——RES)
IL2
V
高电平输入电压(——RES)
IH2
V
低电压复位
LVR
I
输入/输出口灌电流 PA
OL1
I
输入/输出口灌电流 PDPE
OL2
I
输入/输出口源电流 PA
OH1
I
输入/输出口源电流 PBPC
OH2
RPH
上拉电阻
注:*RTC 振荡是慢起振振荡器
2.1V 选项
3.15V 选项
4.2V 选项
3V 4 8 5V 3V 8 16 5V 3V -2 -4 5V 3V -4 -8 5V
3V 20 60 100 5V
VOL=0.1VDD
VOL=0.1VDD
VOH=0.9VDD
VOH=0.9VDD
0
0.9V
DD
1.98 2.1 2.22
2.98 3.15 3.32
3.98 4.2 4.42
10 20
20 40
-5 -10
-10 -20
10 30 50
0.4V
VDD V
- - - - - - - -
DD
V
V
mA
mA
mA
mA
kΩ
Rev. 1.20 5 2010-04-28
HT48R54A
交流电气特性
交流电气特性
交流电气特性交流电气特性
测试条件
测试条件
符号
符号 参数
符号符号
f
SYS
f
TIMER
t
WDTOSC
t
FSP1
t
FSP2
t
RES
t
SST
t
LVR
t
INT
系统时钟 (晶体振荡,RC 振荡)
定时器的输入频率
看门狗振荡器周期
fSP溢出周期 (时钟来源:WDT 振荡) fSP溢出周期 (时钟来源:RTC 振荡)
外部复位低电平脉冲宽度
系统启动延时周期
低电压复位 - 中断脉冲宽度
参数
参数参数
VDD
- - - -
3V 5V
测试条件测试条件
条件
条件
条件条件
2.2V~5.5V 400
3.3V~5.5V 400
2.2V~5.5V 0
3.3V~5.5V 0
- -
预分频
fs/4096
预分频
fs/4096
上电或从暂 停状态唤醒
最小
最小 典型
最小最小
典型 最大
典型典型
- - - -
最大 单位
最大最大
4000 8000 4000
8000 45 90 180 32 65 130
1
221
221
μs
1024
0.25 1 2 m s 1
μs
Ta=25℃
单位
单位单位
kHz
kHz
μs
t
WDTOSC
*t
RTC
t
SYS
注:t
=1/ f
SYS
*t
30.5μs
RTC
SYS
Rev. 1.20 6 2010-04-28
HT48R54A
T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4
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 )
P C P C + 1 P C + 2
S y s t e m C l o c k
O S C 2 ( R C o n l y )
P C
系统功能说明
系统功能说明
系统功能说明系统功能说明
指令执行时序
指令执行时序
指令执行时序指令执行时序
系统时钟由晶体振荡器、RC 振荡或 RTC 振荡器产生,系统内部将此频率分为四个不重叠的时钟,一
个指令周期为四个系统时钟周期。
指令执行
指令执行时序
指令执行指令执行
时序
时序时序
指令的读取和执行是以流水线方式进行的, 这种方式在一个指令周期进行读取指令操作,而在下一个 指令周期进行解码与执行该指令。因此,流水线方式使多数指令能在一个周期内执行完成。但如果渉及到 的指令要改变程序计数器的值,就需要花两个指令周期来完成这一条指令。
程序计数器
程序计数器
程序计数器程序计数器
程序计数器(PC)控制程序存储器 ROM 中指令执行的顺序,它可寻址整个 ROM 的范围。
取得指令码以后,程序计数器会自动加一,指向下一个指令码的地址。但如果执行跳转、条件跳跃、 向 PCL 赋值、子程序调用、初始化复位、内部中断、外部中断、子程序返回等操作时,PC 会载入与指令 相关的地址而非下一条指令地址。
当遇到条件跳跃指令且符合条件时,当前指令执行过程中读取的下一条指令会被丢弃,取而代之的是 一个空指令周期,随后才能取得正确的指令。反之,就会顺序执行下一条指令。
程序计数器的低字节(PCL)是一个可读写的寄存器(06H)。对 PCL 赋值将产生一个短跳转动作,跳 转的范围为当前页 256 个地址。
当遇到控制转移指令时,系统也会插入一个空指令周期。
程序计数器
程序计数器
模式
模式
模式模式
初始化复位 外部中断
定时/计数器 0 溢出 定时/计数器 1 溢出 条件跳转 装入 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 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
*11 *10 *9 *8 @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
程序计数器程序计数器
PC+2
注: *11~*0:程序指针位
#11~#0:指令指针位
Rev. 1.20 7 2010-04-28
程序计数器
程序计数器
程序计数器程序计数器
S11~S0:堆栈指针位 @7~@0PCL 字节
HT48R54A
0 0 0 H
T i m e r / E v e n t C o u n t e r 1 I n t e r r u p t S u b r o u t i n e
F F F H
n 0 0 H
n F F H
F 0 0 H
P r o g r a m M e m o r y
L o o k - u p T a b l e ( 2 5 6 w o r d s )
N o t e : n r a n g e s f r o m 0 t o 7
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
0 0 4 H
0 0 8 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 0 I n t e r r u p t S u b r o u t i n e
0 0 C H
程序存储器
程序存储器
程序存储器程序存储器
程序存储器用来存储待执行的程序指令,还包括数据、表格、中断入口地址。程序存储器由 4096×15 个位组成,由 PC 和表格指针确定其地址。
以下列出的程序存储器地址是系统专为特殊用途而保留的:
· 地址 000H
该地址保留给程序初始化。当系统复位时,程序会从 000H 地址开始执行。
· 地址 004H
该地址保留给外部中断服务程序。当
会跳转到 004H 地址,开始执行中断服务程序。
· 地址 008H
该地址保留给定时/计数器 0 中断服务。如果中断允许,且堆栈未满,一旦定时/计数器 0 发生溢出,
就会产生中断,程序将会跳转到 008H 地址,开始执行中断服务程序。
· 地址 00CH
该地址保留给定时/计数器 1 中断服务。如果中断允许,且堆栈未满,一旦定时/计数器 1 发生溢出,
就会产生中断,程序将会跳转到 00CH 地址,开始执行中断服务程序。
表格区
ROM 空间的任何地址都可作为查表使用。查表指令“TABRDC [m](查当前页表格,1 =256 个字)
和“TABRDL [m]”(查最后页表格),会把表格内容低字节传送给[m],而表格内容高字节传送到 TBLH 寄 存器(08H)。只有表格内容的低字节被传送到目标地址中,而高字节被传送到表格内容高字节寄存器 TBLH, 并且 TBLH 的最高位始终为“0”。表格内容高字节寄存器 TBLH 是只读寄存器。表格指针(TBLP)是可读/ 写寄存器(07H),用来指明表格地址。在查表之前,要先将表格地址写入 TBLP 中。如果主程序和中断服务 程序(ISR)都用到查表指令,主程序中 TBLH 的值可能会因为 ISR 中执行的查表指令而发生变化,产生错误。 也就是说,要避免在主程序和中断服务程序中都使用查表指令。但如果必须这样做的话,我们可以在查表 指令前先将中断禁止,在保存了 TBLH 的值后再开放中断以避免发生错误。所有与表格有关的指令都需要 两个指令周期的执行时间。这里提到的表格区都可以做为正常的程序存储器来使用。
引脚有触发信号输入,如果中断允许,且堆栈未满,程序将
INT
Rev. 1.20 8 2010-04-28
指令
指令
指令指令
程序存储器
程序存储器
程序存储器程序存储器
表格地址
表格地址
表格地址表格地址
*11 *10 *9 *8 *7 *6 *5 *4 *3 *2 *1 *0
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:表格指针位
表格区
表格区
表格区表格区
HT48R54A
S p e c i a l P u r p o s e D a t a M e m o r y
0 0 H
0 1 H
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
: U n u s e d
R e a d a s " 0 0 "
G e n e r a l P u r p o s e
D a t a M e m o r y
( 1 9 2 B y t e s )
F F H
2 0 H
I A R 0
M P 0
I A R 1
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 0
T M R 0 C
T M R 1
T M R 1 C
P A
P A C
P B
P B C
P C
P D
P E
M O D E
4 0 H
堆栈寄存器
堆栈寄存器
堆栈寄存器堆栈寄存器
堆栈寄存器是特殊的存储器空间,用来保存 PC 的值。系统提供 6 层堆栈,堆栈寄存器既不是数据存 储器的一部分,也不是程序存储器的一部分,而且它既不能读出,也不能写入。堆栈的使用是通过堆栈指 针(SP)来指示的,堆栈指针也不能读出或写入。当发生子程序调用或中断响应时,程序计数器(PC)的 值会被压入堆栈;在子程序调用结束或中断响应结束时(执行指令 RET RETI),堆栈将原先压入堆栈的 内容弹出,重新装入程序计数器中。在系统复位后,堆栈指针会指向堆栈顶部。
如果堆栈已满,并且发生了非屏蔽中断,那么只有中断请求标志会被记录下来,而中断响应会被禁止, 直到堆栈指针发生递减(执行 RET RETI 指令),中断才会被响应。这个功能可以防止堆栈溢出,使得 程序员易于使用这种结构。同样,如果堆栈已满,并且发生了子程序调用,那么堆栈会发生溢出,首先进 入堆栈的内容将会丢失,只有最后的 6 个返回地址会被保留。
数据存储器
数据存储器
数据存储器数据存储器
数据存储器分为两个功能区间,特殊功能寄存器和通用数 据存储器(192×8),数据存储器单元大多数是可读/写的,但 有些为只读。
所有的 RAM 都可以直接执行算术、逻辑、递增、递减和 移位等运算。除了一些少数指定的位之外,RAM 的每个位都可 以由 SET[m].i CLR[m].i 指令来置位和复位。这些 RAM 地址 可以通过 MP 间接调用。
间接寻址寄存器
间接寻址寄存器
间接寻址寄存器间接寻址寄存器
地址 00H 02H 是间接寻址寄存器,但并没有实际的物理 地址。任何对[00H][02H])的读/写操作,将对 MP0MP1) 所指定的存储器地址产生相应的读/写操作。直接读取地址 00H02H),将返回 00H 的结果,而直接写入此地址,则不做任何 操作。
间接寻址指针寄存器(MP0 MP1)是一个 8 位的寄存器。
累加器
累加器
累加器累加器
累加器(ACC)与算术逻辑单元(ALU)紧密联系。它对 应于 RAM 的地址 05H,并能与立即数进行操作,存储器间的 数据传送都必须经过累加器。
算术逻辑单元
算术逻辑单元 ---- ALU
算术逻辑单元算术逻辑单元
算术逻辑单元(ALU)执行 8 位的算术及逻辑运算,提供 下列功能:
· 算术运算(ADDADCSUBSBCDAA
· 逻辑运算(ANDORXOR,CPL)
· 移位(RLRRRLCRRC
· 递增及递减(INCDEC
· 分支判断(SZSNZSIZ,SDZ 等)
数据
数据存储器
存储器
数据数据
存储器存储器
ALU 不仅可以储存数据运算的结果,还会改变状态寄存器的值。
Rev. 1.20 9 2010-04-28
HT48R54A
,
状态寄存器
状态寄存器 ---- STATUS
状态寄存器状态寄存器
状态寄存器(0AH)由零标志位(Z)、进位标志位(C)、辅助进位标志位(AC)、溢出标志位(OV)、 暂停标志位(PDF)和看门狗定时器溢出标志位(TO)组成。该寄存器不仅记录状态信息,而且还控制操 作顺序。
除了 PDF TO 标志外,状态寄存器的其它位都可以用指令改变。任何对状态寄存器的写操作都不会 改变 PDF TO 的值。对状态寄存器的操作可能会导致与预期不一样的结果。TO 标志只受系统上电、看 门狗溢出、“CLR WDT”指令或“HALT”指令的影响。PDF 标志只受系统上电、“CLR WDT”指令或“HALT 指令的影响。
标志位 ZOVAC C 反映的是最近一次操作的状态。
位位位位 符号
0 C
1 AC
2 Z
3 OV
4 PDF
5 TO
67 未用,读出为“0
符号 功能
符号符号
如果在加法运算中结果产生了进位或在减法运算中结果不产生借位 则 C 被置位;反之,C 被清除。它也可被循环移位指令影响。 如果在加法运算中低 4 位产生了进位或减法运算中低 4 位不产生借 位,则 AC 被置位;反之,AC 被清除。 如果算术或逻辑运算的结果为零,则 Z 被置位;反之,Z 被清除。 如果运算结果向最高位进位,但最高位并不产生进位输出,则 OV 被 置位;反之,OV 被清除。 系统上电或执行“CLR WDT”指令,PDF 被清除; 执行“HALT”指令,PDF 被置位。 系统上电、执行“CLR WDT”或“HALT”指令,TO 被清除;WDT 定时溢出,TO 被置位。
功能
功能功能
STATUS(0AH) 寄存器
在进入中断程序或子程序调用时,状态寄存器不会被自动压入堆栈。如果状态寄存器的内容是重要的, 而且子程序会影响状态寄存器的内容,那么程序员必须事先将 STATUS 的值保存好。
寄存器
寄存器寄存器
Rev. 1.20 10 2010-04-28
HT48R54A
中中中中 断断断断
HT48R54A 提供一个外部中断和内部定时/计数器中断。中断控制寄存器(INTC0BH)包含了中断 控制位和中断请求标志,中断控制位用来设置中断允许/禁止。
一旦有中断子程序被响应,所有其它的中断将被禁止(通过清零 EMI 位)。这种机制能防止中断嵌套, 这时如有其它中断请求发生,这个中断请求的标志会被记录下来。如果在一个中断服务程序中有另一个中 断需要响应的话,可以设置 EMI 位及 INTC 所对应的位来允许中断嵌套服务。如果堆栈已满,该中断请求 将不会被响应,即使相关的中断被允许,也要到堆栈指针发生递减时才会响应。如果需要立即得到中断响 应,必须避免使堆栈饱和。
所有的中断都具有唤醒功能。当一个中断被响应时,会将程序计数器(PC)压入堆栈,然后转移到中 断服务程序的入口。只有程序计数器的内容能压入堆栈。如果寄存器和状态寄存器的内容会被中断服务程 序改变,从而破坏主程序的预定流程,必须事先将这些数据保存起来。
外部中断是由——INT 脚上的上升沿或下降沿触发的,相关的中断请求位(EIFINTC 的第 4 位)会被置 位。当中断允许,堆栈也未满,外部中断触发时,将会产生地址 04H 的子程序调用。中断请求标志位(EIF) 和 EMI 位将被清除,以禁止其他中断的发生。
内部定时/计数器 0 中断是由定时/计数器 0 溢出触发的,相关的中断请求位(T0F;INTC 的第 5 位)会 被置位。当中断允许,堆栈也未满,定时/计数器 0 中断触发时,将会产生地址 08H 的子程序调用。中断 请求标志位(T0F)和 EMI 位将被清除,以禁止其他中断的发生。
内部定时/计数器 1 中断是由定时/计数器 1 溢出触发的,相关的中断请求位(T1F;INTC 的第 6 位)会 被置位。当中断允许,堆栈也未满,定时/计数器 1 中断触发时,将会产生地址 0CH 的子程序调用。中断 请求标志位(T1F)和 EMI 位将被清除,以禁止其他中断的发生。
在执行中断子程序期间,其他的中断响应会被屏蔽,直到执行 RETI 指令,或者 EMI 位和相关的中断 控制位都被置为 1(当堆栈未满时)。若要从中断子程序返回,只要执行 RET RETI 指令即可。RETI 指 令将会自动置位 EMI 来再次允许中断服务,而 RET 则不会。
如果中断在两个连续的 T2 脉冲的上升沿之间发生,且中断响应允许,那么在下一个 T2 脉冲,该中 断会被服务。如果同时发生中断请求,其优先级如下表示;这种优先级也可以通过 EMI 位的复位来屏蔽。
中断源
中断源 优先级
中断源中断源
外部中断 定时/计数器 0 中断 定时/计数器 1 中断
中断控制寄存器(INTC)(0BH)由定时/计数器 0 中断请求标志位(T0F)、定时/计数器 1 中断请求 标志位(T1F)、外部中断请求标志位(EIF)、定时/计数器 0 允许位(ET0I)、定时/计数器 1 允许位(ET1I), 外部中断允许位(EEI),和主中断控制允许位(EMI)组成。EMI、EEI,ET0I 和 ET1I 都是用来控制中断 的允许/禁止。这些控制位可以用来屏蔽正在进行中断服务程序时发生的其它中断请求。一旦中断请求标志 位被置位(T0F,T1F 和 EIF), 它们将在 INTC 寄存器中被保留下来,直到相关的中断被响应或由软件指 令来清除。
优先级 中断
优先级优先级
1 04H 2 08H 3 0CH
中断
中断中断
Rev. 1.20 11 2010-04-28
HT48R54A
位位位位 符号
符号
符号符号
0 EMI 1 EEI 2 ET0I 3 ET1I 4 EIF
5 T0F
6 T1F 7
建议不要在中断服务程序中使用“CALL”指令来调用子程序。因为中断随时都可能发生,而且在一 些应用中需要立刻给予响应。如果只剩下一层堆栈,而中断使能不能被很好地控制,原先的控制序列很可 能因为在中断子程序中执行“CALL”指令而使堆栈溢出,从而破坏原先的控制序列。
总中断控制位(1=允许, 0=禁止) 外部中断控制位(1=允许, 0=禁止) 定时/计数器 0 中断控制位(1=允许, 0=禁止) 定时/计数器 1 中断控制位(1=允许, 0=禁止) 外部中断请求标志位(1=有,0=无) 定时/计数器 0 中断请求标志位(1=有,0=无) 定时/计数器 1 中断请求标志位(1=有,0=无)
未用,读出为零
中断控制寄存器
中断控制寄存器————INTC((((0BH))))
中断控制寄存器中断控制寄存器
功功功功 能能能能
Rev. 1.20 12 2010-04-28
HT48R54A
3 2 7 6 8 H z
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
O S C 1
4 7 0 p F
V
D D
R
O S C
O S C 3
O S C 4
1 0 p F
C r y s t a l O s c i l l a t o r
O S C 1
O S C 2
O S C 2
f
S Y S
/ 4
4 - B i t D i v i d e r 8 - S t a g e P r e s c a l e r
8 - t o - 1 M U X W D T T i m e - o u t
P S C 2 ~ P S C 0
O p t i o n S e l e c t
S y s t e m C l o c k / 4
W D T O S C
3 2 7 6 8 H z
f
S
9 - B i t C o u n t e r
振荡器
振荡器
振荡器振荡器
HT48R54A 提供三种振荡电路:外部晶体振荡、外部 RC 振荡和 32768Hz 晶体振荡。由掩膜选项设定 为外部 RC 振荡和外部晶体振荡。
如果使用外部 RC 型振荡,在 OSC1 VSS之间需要一个外部电阻,其阻值范围为 130kΩ~2.5MΩ。 RC 振荡方式是一种低成本方案,但是振荡频率会随着 VDD、温度和制造漂移而不同。因此,在需要非常 精确时基场合,不建议使用 RC 振荡。
另外一个振荡电路是专为实时时钟而设计。这种情况下,只能使用 32768Hz 的晶振。晶振需连接在 OSC3 OSC4 之间。
系统振荡器
系统振荡器
系统振荡器系统振荡器
RTC 振荡器可以通过设置“QOSC”位(MODE 的第 4 位)来控制快速振荡。建议在系统上电时启动 快速振荡功能,直到 RTC 振荡器稳定,再过 2 秒钟后关闭,以降低能量消耗。
WDT 振荡器是 IC 内部 RC 型振荡器,不需要任何外部元件。即使系统进入暂停模式时,系统时钟关
闭,WDT 振荡器仍然会运作。在 5V 工作电压下,其振荡周期大约为 65μsWDT 振荡器可在掩膜选项 中设置为关闭,以降低系统功耗。
看门狗计时器
看门狗计时器
看门狗计时器看门狗计时器
WDT 的时钟源有三种:WDT 振荡器、RTC 振荡器或是指令时钟(系统时钟 4 分频),由掩膜选项选 择设置。看门狗主要用来避免程序因为运行故障和跳入死循环而导致不可预测的结果。看门狗可用掩膜选 项设置为打开或关闭,如果在关闭状态,所有的 WDT 指令都是不起作用。
如果单片机工作在干扰很大的环境中,建议使用片内的 RC 振荡器(WDT OSC)或是 32768Hz 的晶
体振荡器(RTC OSC),因为 HALT 模式会使系统时钟停止,看门狗也就失去了保护的功能。
如果选择了内部 WDT 振荡器,这个频率会先除以 164 级),再经过 TMR0C 8 级预分频器,最 后再除以 512(9 级)产生溢出时间。使用 TMR0C 预分频器,可延长 WDT 溢出时间。设置 PSC2PSC1, PSC0 会产生不同的溢出时间。WDT 振荡器振荡周期为 65µs,但会因为温度、VDD以及芯片参数的漂移而 变化。WDT 振荡器可以在芯片的任何工作模式下工作。
WDT 的时钟来源也可为指令时钟(系统时钟 4 分频)和 32768Hz 实时时钟,其工作方式与 WDT 振 荡器一样。
看门狗定时器
看门狗定时器
看门狗定时器看门狗定时器
在常规和慢速工作模式下,WDT 溢出会使系统复位并置 TO 标志位。但在暂停模式下,WDT 溢出将 产生“热复位”,只能使程序计数器 PC 和堆栈指针 SP 复位。
清除 WDT 的值(不包括 4 位分频器和 8 级预分频器),有外部复位(低电平输入到——RES引脚),清除 看门狗指令和 HALT 指令三种方法。
清除看门狗指令有“CLR WDT”和“CLR WDT1”、“CLR WDT2”两组指令。这两组指令中,只能 选择其中一组,由掩膜选项决定。如果“CLR WDT”被选择(即 CLR WDT 次数为 1),那么只要执行“CLR WDT 指令就会清除 WDT。“CLR WDT1”和“CLR WDT2”被选择的情况下(即 CLR WDT 次数为 2), 那么二条指令要交替使用才会清除 WDT,否则,WDT 会由于溢出而使系统复位。
Rev. 1.20 13 2010-04-28
Loading...
+ 30 hidden pages