HT49R30A-1, HT49R50A-1,
HT49R70A-1,HT49RU80
LCD 型单片机
使用手册
第二版
二○○六年二月
Copyright 2006 by HOLTEK SEMICONDUCTOR INC. 本使用手册版权为盛群半导体股份有限公司所有,非
经盛群半导体股份有限公司书面授权同意,不得透过任何形式复制、储存或传输。
目录
目录
第一部份 单片机概论 .................................................................. 1
第一章 硬件结构........................................................................................ 3
简介..............................................................................................................3
特性..............................................................................................................4
技术特性 .............................................................................................. 4
内核特性 .............................................................................................. 4
周边特性 .............................................................................................. 5
选择表..........................................................................................................6
系统框线图..................................................................................................7
引脚分配......................................................................................................8
引脚说明....................................................................................................10
极限参数....................................................................................................15
直流电气特性............................................................................................16
交流电气特性............................................................................................20
系统结构....................................................................................................22
时序和流水线结构(Pipelining) ......................................................... 22
程序计数器 ........................................................................................ 23
堆栈 ....................................................................................................26
算术及逻辑单位 – ALU ...................................................................27
程序存储器................................................................................................27
结构 ....................................................................................................27
特殊向量 ............................................................................................ 29
多 bank 管理 ......................................................................................30
查表 ....................................................................................................33
查表程序范例 .................................................................................... 34
i
LCD 型单片机使用手册
数据存储器................................................................................................37
结构 ....................................................................................................37
通用数据存储器 ................................................................................ 38
专用数据存储器 ................................................................................ 39
LCD 存储器 ....................................................................................... 40
特殊功能寄存器........................................................................................42
间接寻址寄存器 – IAR0, IAR1 .......................................................42
间接寻址指针 – MP0, MP1.............................................................. 42
存储区指针 – BP .............................................................................. 43
累加器 – ACC ................................................................................... 44
程序计数器低字节寄存器 – PCL .................................................... 44
查表寄存器 – TBLP, TBHP, TBLH..................................................45
实时时钟控制寄存器 – RTCC.........................................................45
状态寄存器 – STATUS.....................................................................46
中断控制寄存器 – INTC0, INTC1, MFIC.......................................47
定时/ 计数寄存器 ...............................................................................47
输入/ 输出口寄存器 ...........................................................................48
UART 寄存器-USR,UCR1,UCR2,TXR/RXR,BRG ...................... 48
输入/ 输出口 .............................................................................................. 48
上拉电阻 ............................................................................................ 49
PA 口的唤醒 ......................................................................................49
引脚共用功能 .................................................................................... 50
编程注意事项 .................................................................................... 53
液晶显示(LCD) 驱动器 .............................................................................. 54
LCD 存储器 ....................................................................................... 54
LCD 时钟 ........................................................................................... 56
LCD 驱动器输出 ............................................................................... 56
LCD 电压源与偏压 ........................................................................... 62
编程注意事项 .................................................................................... 65
定时/ 计数器 .............................................................................................. 66
配置定时/ 计数器输入时钟源 ........................................................... 66
定时/计数寄存器-TMR,TMR0,TMR1,TMR1L/TMR1H,
TMR2L/TMR2H ................................................................................69
定时/ 计数控制寄存器 – TMRC, TMR0C, TMR1C, TMR2C .........70
定时器模式 ........................................................................................ 73
事件计数模式 .................................................................................... 73
脉冲宽度测量模式 ............................................................................ 74
可编程分频器 – PFD ........................................................................75
输入/ 输出接口...................................................................................76
编程注意事项 .................................................................................... 76
中断............................................................................................................77
中断寄存器 ........................................................................................ 77
中断优先权 ........................................................................................ 83
外部中断 ............................................................................................ 84
定时/ 计数器中断 ...............................................................................84
ii
目录
时基中断 ............................................................................................ 85
实时时钟中断 .................................................................................... 87
UART 中断 .......................................................................................88
多功能中断 ........................................................................................ 88
编程注意事项 .................................................................................... 89
复位和初始化 ........................................................................................... 89
复位 ....................................................................................................90
异步串行口——UART.............................................................................95
UART 特性 .......................................................................................95
UART 外部引脚 ...............................................................................96
数据发送 ............................................................................................96
UART 状态和控制寄存器 ...............................................................96
波特率发送器 ..................................................................................103
UART 设置和控制 .........................................................................105
UART 发送器 .................................................................................106
UART接收器 ..................................................................................108
接收错误处理 ..................................................................................109
接收中断图解 .................................................................................. 111
地址检测模式 .................................................................................. 111
暂停模式下的 UART 功能 .............................................................112
UART 应用范例 .............................................................................112
振荡器...................................................................................................... 113
系统时钟配置 .................................................................................. 113
系统晶体/ 陶瓷振荡器 ..................................................................... 114
系统电阻电容振荡器 ......................................................................114
RTC 振荡器...................................................................................... 115
看门狗定时振荡器 .......................................................................... 116
内部时钟源 ...................................................................................... 116
暂停和唤醒.............................................................................................. 117
暂停 ..................................................................................................117
进入暂停 .......................................................................................... 117
静态电流 .......................................................................................... 118
唤醒 ..................................................................................................118
低电压检测器 − LVD............................................................................. 119
看门狗定时器.......................................................................................... 119
蜂鸣器......................................................................................................121
掩膜选项..................................................................................................122
应用电路..................................................................................................124
iii
LCD 型单片机使用手册
第二部份 程序语言 .................................................................. 129
第二章 指令集介绍................................................................................ 131
指令集......................................................................................................131
指令周期 .......................................................................................... 131
数据的传送 ...................................................................................... 132
算术运算 .......................................................................................... 132
逻辑和移位运算 .............................................................................. 132
分支和控制的转换 .......................................................................... 132
位运算 ..............................................................................................132
查表运算 .......................................................................................... 133
其它运算 .......................................................................................... 133
指令设定一览表......................................................................................134
惯例 ..................................................................................................134
第三章 指令定义.................................................................................... 137
第四章 汇编语言和编译器.................................................................... 151
常用符号..................................................................................................151
语句语法..................................................................................................152
名称 ..................................................................................................152
操作项 ..............................................................................................152
操作数项 .......................................................................................... 152
注解 ..................................................................................................152
编译伪指令..............................................................................................153
条件编译伪指令 .............................................................................. 153
文件控制伪指令 .............................................................................. 154
程序伪指令 ...................................................................................... 156
数据定义伪指令 .............................................................................. 160
宏指令 ..............................................................................................162
汇编语言指令..........................................................................................166
名称 ..................................................................................................166
助记符 ..............................................................................................166
操作数、运算子和表达式 ..............................................................166
其它..........................................................................................................169
前置引用 .......................................................................................... 169
局部标号 .......................................................................................... 169
汇编语言保留字 .............................................................................. 170
编译器选项..............................................................................................171
编译列表文件格式..................................................................................171
源程序列表 ...................................................................................... 171
编译总结 .......................................................................................... 172
iv
目录
其它 ..................................................................................................172
第三部份 开发工具 .................................................................. 175
第五章 单片机开发工具........................................................................ 177
HT-IDE 集成开发环境............................................................................177
盛群单片机仿真器(HT-ICE) ..................................................................179
HT-ICE 接口卡 ................................................................................179
OTP 烧录器 ......................................................................................179
OTP 转接座 ......................................................................................179
系统配置 ..................................................................................................180
HT-ICE 接口卡设定 ........................................................................ 181
安装..........................................................................................................183
系统需求 .......................................................................................... 183
硬件安装 .......................................................................................... 183
软件安装 .......................................................................................... 184
第六章 快速开始.................................................................................... 189
步骤一:建立一个新项目 ..............................................................189
步骤二:将源程序文件加到项目中 ..............................................189
步骤三:建立项目 .......................................................................... 189
步骤四:烧录 OTP 单片机.............................................................190
步骤五:传送程序与掩膜选项单至 Holtek ..................................190
第七章 LCD仿真器 .............................................................................. 191
简介..........................................................................................................191
LCD 面板配置文件.................................................................................191
面板文件的文件名和项目的关系 ..................................................192
选择 HT-LCDS.................................................................................192
LCD 面板图形文件.................................................................................194
建立 LCD 面板配置文件........................................................................ 195
建立面板的配置结构 ......................................................................195
选择图形并设定位置 ......................................................................196
加入新的图形 .................................................................................. 196
删除图形 .......................................................................................... 197
改变图形 .......................................................................................... 197
改变图形位置 .................................................................................. 197
如何加入用户定义的矩阵 ..............................................................198
使用 Panel Editor 定义图形 ............................................................199
使用批处理文件将图形加入面板 ..................................................200
选择 LCD 面板的颜色 ....................................................................200
LCD 仿真.................................................................................................201
停止仿真 .......................................................................................... 201
v
LCD 型单片机使用手册
附录 .............................................................................................. 202
附录A 特性曲线图.................................................................................. 203
附录B 封装信息...................................................................................... 218
vi
前言
前言
自从盛群半导体公司成立以来,即致力于单片机产品的设计与开发。虽然盛群
半导体提供给客户各式各样的半导体器件,但其中单片机仍是盛群的主要关键
产品,未来盛群半导体仍将继续扩展单片机产品系列完整性与功能性。通过长
期累积的单片机研发经验与技术,盛群半导体能为各式各样的应用范围开发出
高性能且低价位的单片机芯片。有些单片机内部集成了全双工的 UART 的功
能,使得它们很方便的与外部串行通信。盛群的 LCD 型单片机为客户提供了
绝佳的产品方案,大大地为顾客增强了他们以 LCD 为主的产品功能,当设计
者使用盛群所开发出的各式开发工具时,更可减少产品开发周期并大大的增加
他们的产品附加价值。
为了使用者阅读方便,本手册分成三部份。关于一般的单片机的规格信息可在
第一部份中找到。与单片机程序相关的信息,如指令集、指令定义和汇编语言
编译伪指令,可在第二部份找到。第三部份则是关于盛群半导体的开发工具有
关如何安装和使用的相关信息。
希望客户通过这本 LCD 型单片机使用手册,能以一种简单、有效、且完整的
方法,实现他们在单片机上的各种应用。由于盛群半导体将单片机规格、程序
规划和开发工具等信息结合在一本使用手册上,相信客户可充分利用盛群半导
体各种单片机的特性,获得最大的产品优势。建议客户随时访问盛群网站获得
最新手册,同时也欢迎提供宝贵的意见和建议,以作为我们未来的改进参考。
vii
LCD 型单片机使用手册
viii
第一部份
单片机概论
第一部份 单片机概论
1
LCD 型单片机使用手册
2
第一章 硬件架构
第一章
硬件结构
本章主要为 LCD 型单片机的规格信息,并且包含了所有参数和相关的硬件信
息,这些信息提供设计者此类单片机的主要硬件特性细节,结合程序部份的信
息将能够让使用者快速且成功地实现各种单片机的应用。参考本章中的相关部
份,也保证使用者可以充分利用 LCD 型单片机。
简介
HT49R30A-1/HT49C30-1/HT49C30L、 HT49R50A-1/HT49C50-1/HT49C50L 和
HT49R70A-1/HT49C70-1/HT49C70L,HT49RU80/HT49CU80 是 8 位高性能、高
效益的 RISC 结构单片机,适用于 LCD 控制产品的应用。内部的特殊特性,
如暂停、唤醒功能、振荡器选择、蜂鸣器驱动和 UART 等,增加了单片机的
灵活度,而这些特性也同时保证实际应用时只需要最少的外部组件,进而降低
了整个产品成本。有了低功耗、高性能、灵活控制的输入/ 输出和低成本等优
势,这些芯片具有许多功能,并适合被广泛应用在以 LCD 为主的场合,如天
平、电子万用表、气体计量器、定时器、计算器、遥控器以及许多其它以 LCD
为主的工业用品和家用电器上。所有的单片机都具有相同的特性,主要的不同
在于 LCD 段数、I/O 引脚数目、RAM 和 ROM 的容量,定时器数目和封装种
类等方面。另外 HT49RU80/HT49CU80 还集成了一个全双工的串行口。
HT49R30A-1 、HT49R50A-1 、HT49R70A-1 和 HT49RU80 都是属于一次可编
程(One-Time Programmable ,OTP )单片机,当配合使用盛群半导体的程序
开发工具时,可简单有效的更新程序。这提供了设计者快速有效的开发途径。
而对于那些已经设计成熟的应用,掩膜版的 HT49C30-1 、 HT49C50-1 、
HT49C70-1 、HT49CU80 ,HT49C30L 、HT49C50L 和 HT49C70L 则可满足大
量生产和低成本的需求。由于和 OTP 版的功能完全兼容,掩膜版对于已经设
1
3
特性
LCD 型单片机使用手册
计完成而想要降低成本的产品,提供了一个理想的解决方案。
HT49C30L, HT49C50L 和 HT49C70L 是 LCD 单片机系列的低电压版,它们
有在只有提供 1.2V 最小低电压功率下工作的能力,这些设备非常适合单一电
池的应用。虽然它们只有掩膜版可用,但和 OTP 相关的设备 HT49R30A-1 ,
HT49R50-1 和 HT49R70-1 在产品开发期间是完全适合且可用的。
技术特性
• 高性能 RISC 结构
• 低功率完全静态 CMOS 设计
• 工作电压:
对于 HT49R30A-1/HT49C30-1、 HT49R50A-1/HT49C50-1、
HT49R70A-1/ HT 49C70-1,HT49RU80/HT49CU80
在 4MHz 下,由 2.2V 到 5.5V
在 8MHz 下,由 3.3V 到 5.5V
对于 HT49C30L 、HT49C50L 、HT49C70L
在 500kHz 下,由 1.2V 到 2.2V
• 功率损耗:
在 5V/8MHz 下,典型值为 4mA
• 周期时间:
在 8MHz 系统时钟下指令周期达到 0.5µs ( HT49R30A-1/HT49C30-1、
HT49R50A-1/HT49C50-1、 HT49R70A-1/ HT 49C70-1,
HT49RU80/HT49CU80)
在 500KHz 系统时钟下指令周期达到 8µ s ( HT49C30L、 HT49C50L、
HT 49C70L)
• 温度范围
工作温度−40 °C 到 85 °C (工业级规格)
储存温度−50 °C 到 125 °C
内核特性
• 程序存储器
2K× 14 OTP/Mask ROM (HT49R30A-1/HT49C30-1/HT49C30L)
4K× 15 OTP/Mask ROM (HT49R50A-1/HT49C50-1/HT49C50L)
8K× 16 OTP/Mask ROM (HT49R70A-1/HT49C70-1/HT49C70L)
16K× 16 OTP/Mask ROM (HT49RU80/HT49CU80)
4
第一章 硬件架构
• 数据存储器
96× 8 RAM (HT49R30A-1/HT49C30-1/HT49C30L)
160× 8 RAM (HT49R50A-1/HT49C50-1/HT49C50L)
224× 8 RAM (HT49R70A-1/HT49C70-1/HT49C70L)
576× 8 RAM (HT49RU80/HT49CU80)
• LCD 驱动
18×4, 19×3 或 19× 2 (HT49R30A-1/HT49C30-1/HT49C30L)
32×4, 33×3 或 33× 2 (HT49R50A-1/HT49C50-1/HT49C50L)
40×4, 41×3 或 41× 2 (HT49R70A-1/HT49C70-1/HT49C70L)
47×4, 48×3 或 48× 2 (HT49RU80/HT49CU80)
• 表格读取功能
• 多层硬件堆栈
4-level (HT49R30A-1/HT49C30-1/HT49C30L)
6-level (HT49R50A-1/HT49C50-1/HT49C50L)
16-level (HT49R70A-1/HT49C70-1/HT49C70L, HT49RU80/HT49CU80)
• 位操作指令
• 63 条强大的指令
• 大多数指令执行时间只需要一个指令周期
周边特性
• 从 6 个到 8 个具有上拉电阻的输入引脚
• 从 8 个到 16 个具有上拉功能的双向输入输出口
• 7 个输出引脚 (HT49RU80/HT49CU80)
• 内部 LCD 驱动
• 内部专用的 LCD 存储器
• PA 端口具有唤醒功能
• 一个、二个或三个具内部中断的事件计数输入
• UART( 只有 HT49RU80/HT49CU80 具有 )
• 二个外部中断输入
• 具有预分频器(Prescaler) 及中断功能的定时器
• 看门狗定时器(WDT)
• 暂停与唤醒特性可以节省功耗
• PFD 输出
• 蜂鸣器驱动输出
• 芯片内置晶体、电阻电容振荡器和 32768Hz 晶体振荡器
• 32768Hz 实时时钟 (RTC)功能
• 具有低电压复位/ 检测(LVR/LVD)特性 (HT49C30L/HT49C50L/HT49C70L
除外 )
5
选择表
LCD 型单片机使用手册
• 具有烧录电路接口及程序代码保护功能
• 掩膜版单片机适用于大量生产
• 低电压版单片机适用于单个电池工作(只 HT49C30L/HT49C50L/HT49C70L
具有)
• 提供高效的软硬支持工具
这系列的 LCD 型单片机具有广泛的功能特性,其中有些是普通的,有些则是
独有的。大部份的特性对该系列所有的单片机来说是共通的,主要的区别在于
程序存储器、数据存储器的容量、LCD 段数和定时器功能。为了帮助使用者
在应用时能选择适当的单片机,以下的表格提供了各个单片机主要的特性概
述。
型号 VDD
HT49R30A-1
HT49C30-1
HT49C30L 1.2V~2.2V
HT49R50A-1
HT49C50-1
HT49C50L 1.2V~2.2V
HT49R70A-1
HT49C70-1
HT49C70L 1.2V~2.2V
HT49RU80
HT49CU80
2.2V~5.5V
2.2V~5.5V
2.2V~5.5V
2.2V~5.5V 16K× 16 576× 8 31
程序
存储器
2K× 14 96× 8 14
4K× 15 160× 8 20
8K× 16 224× 8 24
数据
存储器
I/O
LCD
19×2
19×3
18×4
33×2
33×3
32×4
41×2
41×3
40×4
48×2
48×3
47×4
定时器 中断 UART 堆栈
8-bit× 1 5 - 4 48SSOP
8-bit× 2 6 - 6
8-bit× 1
16-bit× 1
8-bit× 1
16-bit× 2
6 - 16 100QFP
√ 16 100QFP
8
封装
种类
48SSOP
100QFP
注意: 1. 型号部份包含“C”的为 Mask 版本,而“R”则是 OTP 版本。
2. 型号部份包含“ L”的为低电压 Mask 版本。
3. 对于 HT49R50A-1/HT49C50-1/HT49C50L,表格中说明的是 100-pin QFP 封装的数值。
对于 48-pin SSOP 的封装,它具有 8 个 I/O 和 6 个输入引脚,19× 3 或 18× 4 的 LCD 驱
动引脚。
6
系统框线图
以下的系统框线图为 LCD 型单片机系列的主要功能模块。
第一章 硬件架构
S y s t e m R C /
X ' t a l O s c i l l a t o r
O s c i l l a t o r
L C D D r i v e r s
C O M
R T C
O S C
W D T
A d d r e s s D e c o d e r
T i m i n g
G e n e r a t o r
L C D
M e m o r y
D a t a
M e m o r y
R e s e t &
L V R / L V D
S E G
A d d r e s s D e c o d e r
P o i n t e r
C o n f i g .
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
M
U
X
B a n k
M e m o r y
P o i n t e r
W a t c h d o g
T i m e r
I n s t r u c t i o n
R e g i s t e r
M U X
C o n f i g .
R e g i s t e r
A L U
S h i f t e r
T i m e r ( s ) /
C o u n t e r
A C C
P r o g r a m
M e m o r y
L o o k - u p
T a b l e
R e g i s t e r
P F D
B u z z e r
D r i v e r
L o o k - u p
T a b l e
P o i n t e r
C o n f i g .
R e g i s t e r
S t a c k P o i n t e r
U A R T
I n t e r r u p t
C i r c u i t
P r o g r a m
C o u n t e r
S t a c k
C o n f i g .
R e g i s t e r
P o r t s
I / O
T o P r o g r a m
M e m o r y
P r o g r a m m i n g
C o n f i g u r a t i o n
注意: 1 、本系统框线图为 OTP 单片机,至于 Mask 型单片机则没有 Device Programming Circuitry 。
2、只有在 HT49RU80/HT49CU80 中才具有 UART 功能。
O p t i o n
D e v i c e
C i r c u i t r y
7
引脚分配
LCD 型单片机使用手册
P A 0 / B Z
P A 1 / B Z
P A 2
P A 3 / P F D
P A 4
P A 5
P A 6
P A 7
P B 0 / I N T 0
P B 1 / I N T 1
P B 2 / T M R
P B 3
P B 4
P B 5
V S S
V L C D
C O M 0
C O M 1
C O M 2
C O M 3 / S E G 1 8
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
1 3
1 4
1 5
1 6
V 1
1 7
V 2
1 8
C 1
1 9
C 2
2 0
2 1
2 2
2 3
2 4
R E S
4 8
O S C 1
4 7
O S C 2
4 6
V D D
4 5
O S C 3
4 4
O S C 4
4 3
S E G 0
4 2
S E G 1
4 1
S E G 2
4 0
S E G 3
3 9
S E G 4
3 8
S E G 5
3 7
S E G 6
3 6
S E G 7
3 5
S E G 8
3 4
S E G 9
3 3
S E G 1 0
3 2
S E G 1 1
3 1
S E G 1 2
3 0
S E G 1 3
2 9
S E G 1 4
2 8
S E G 1 5
2 7
S E G 1 6
2 6
S E G 1 7
2 5
H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L
4 8 S S O P - A
P A 0 / B Z
P A 1 / B Z
P A 2
P A 3 / P F D
P A 4
P A 5
P A 6
P A 7
P B 0 / I N T 0
P B 1 / I N T 1
P B 2 / T M R 0
P B 3 / T M R 1
P B 4
P B 5
V S S
V L C D
C O M 0
C O M 1
C O M 2
C O M 3 / S E G 3 2
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
1 3
1 4
1 5
1 6
V 1
1 7
V 2
1 8
C 1
1 9
C 2
2 0
2 1
2 2
2 3
2 4
R E S
4 8
O S C 1
4 7
O S C 2
4 6
V D D
4 5
O S C 3
4 4
O S C 4
4 3
S E G 1 0
4 2
S E G 1 1
4 1
S E G 1 2
4 0
S E G 1 3
3 9
S E G 1 4
3 8
S E G 1 5
3 7
S E G 1 6
3 6
S E G 1 7
3 5
S E G 1 8
3 4
S E G 1 9
3 3
S E G 2 0
3 2
S E G 2 1
3 1
S E G 2 2
3 0
S E G 2 3
2 9
S E G 2 4
2 8
S E G 2 5
2 7
S E G 2 6
2 6
S E G 2 7
2 5
H T 4 9 R 5 0 A - 1 / H T 4 9 C 5 0 - 1 / H T 4 9 C 5 0 L
4 8 S S O P - A
8
第一章 硬件架构
P B 0 / I N T 0
P B 1 / I N T 1
P B 2 / T M R 0
P B 3 / T M R 1
P A 3 / P F D
P A 1 / B Z
P A 0 / B Z
P A 4
P A 2
1
P A 5
2
N C
3
N C
4
N C
5
N C
6
N C
7
P A 6
8
P A 7
9
1 0
1 1
1 2
1 3
P B 4
1 4
P B 5
1 5
H T 4 9 R 5 0 A - 1 / H T 4 9 C 5 0 - 1 / H T 4 9 C 5 0 L
P B 6
1 6
P B 7
1 7
P C 0
1 8
P C 1
1 9
P C 2
2 0
P C 3
2 1
N C
2 2
N C
2 3
N C
2 4
N C
2 5
N C
2 6
N C
2 7
N C
2 8
N C
2 9
N C
3 0
V S S
3 1
3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0
C 2
C 1
V 2
V 1
V L C D
P A 3 / P F D
P A 0 / B Z
P A 1 / B Z
P A 4
P A 2
O S C 1
R E S
C O M 1
C O M 0
O S C 1
R E S
O S C 3
O S C 2
V D D
1 0 0 Q F P - A
C O M 3 / S E G 3 2
C O M 2
S E G 3 1
O S C 3
O S C 2
V D D
P A 3 / P F D
P A 0 / B Z
O S C 4
N C
N C
N C
N C
S E G 3 0
S E G 2 9
S E G 2 8
S E G 2 7
S E G 2 6
O S C 4
S E G 0
S E G 1
S E G 2
S E G 3
S E G 0
N C
N C
N C
N C
8 18 28 38 48 58 68 78 88 99 09 19 29 39 49 59 69 79 89 9 1 0 0
S E G 1
8 0
S E G 2
7 9
S E G 3
7 8
N C
7 7
N C
7 6
N C
7 5
S E G 4
7 4
S E G 5
7 3
S E G 6
7 2
S E G 7
7 1
S E G 8
7 0
S E G 9
6 9
S E G 1 0
6 8
S E G 1 1
6 7
S E G 1 2
6 6
S E G 1 3
6 5
S E G 1 4
6 4
S E G 1 5
6 3
S E G 1 6
6 2
S E G 1 7
6 1
S E G 1 8
6 0
S E G 1 9
5 9
S E G 2 0
5 8
S E G 2 1
5 7
N C
5 6
N C
5 5
N C
5 4
N C
5 3
N C
5 2
N C
5 1
S E G 2 5
S E G 2 4
S E G 2 3
N C
S E G 2 2
S E G 4
S E G 5
S E G 6
S E G 7
S E G 8
P B 0 / I N T 0
P B 1 / I N T 1
P B 2 / T M R 0
P B 3 / T M R 1
P A 5
N C
N C
N C
N C
N C
P A 6
P A 7
P B 4
P B 5
P B 6
P B 7
P C 0
P C 1
P C 2
P C 3
P C 4
P C 5
P C 6
P C 7
N C
N C
N C
N C
N C
V S S
P A 1 / B Z
P A 4
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
V L C D
R E S
P A 2
H T 4 9 R 7 0 A - 1 / H T 4 9 C 7 0 - 1 / H T 4 9 C 7 0 L
3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0
C O M 0
C 2
C 1
V 2
V 1
O S C 2
O S C 1
V D D
1 0 0 Q F P - A
C O M 3 / S E G 4 0
C O M 2
C O M 1
O S C 4
O S C 3
S E G 0
S E G 1
S E G 2
S E G 3
S E G 4
S E G 3 9
S E G 3 8
S E G 3 7
S E G 3 6
S E G 3 5
S E G 3 4
S E G 3 3
S E G 5
S E G 6
S E G 7
S E G 8
8 18 28 38 48 58 68 78 88 99 09 19 29 39 49 59 69 79 89 9 1 0 0
8 0
S E G 9
7 9
S E G 1 0
7 8
S E G 1 1
7 7
N C
N C
7 6
N C
7 5
S E G 1 2
7 4
7 3
S E G 1 3
7 2
S E G 1 4
S E G 1 5
7 1
S E G 1 6
7 0
S E G 1 7
6 9
S E G 1 8
6 8
S E G 1 9
6 7
S E G 2 0
6 6
S E G 2 1
6 5
S E G 2 2
6 4
S E G 2 3
6 3
S E G 2 4
6 2
S E G 2 5
6 1
S E G 2 6
6 0
S E G 2 7
5 9
S E G 2 8
5 8
S E G 2 9
5 7
N C
5 6
N C
5 5
N C
5 4
N C
5 3
N C
5 2
N C
5 1
S E G 3 2
S E G 3 1
N C
S E G 3 0
8 18 28 38 48 58 68 78 88 99 09 19 29 39 49 59 69 79 89 9 1 0 0
8 0
S E G 9
7 9
S E G 1 0
7 8
S E G 1 1
7 7
N C
S E G 1 2
7 6
S E G 1 3
7 5
S E G 1 4
7 4
7 3
S E G 1 5
7 2
S E G 1 6
S E G 1 7
7 1
S E G 1 8
7 0
S E G 1 9
6 9
S E G 2 0
6 8
S E G 2 1
6 7
S E G 2 2
6 6
S E G 2 3
6 5
S E G 2 4
6 4
S E G 2 5
6 3
S E G 2 6
6 2
S E G 2 7
6 1
S E G 2 8
6 0
S E G 2 9
5 9
S E G 3 0
5 8
S E G 3 1
5 7
N C
5 6
S E G 3 2
5 5
S E G 3 3
5 4
S E G 3 4
5 3
S E G 3 5
5 2
S E G 3 6
5 1
P D 0 / S E G 4 0
S E G 3 9
S E G 3 8
N C
S E G 3 7
P B 0 / I N T 0
P B 1 / I N T 1
P B 2 / T M R 0
P B 3 / T M R 1
P B 4 / T M R 2
P C 0 / T X
P C 1 / R X
V M A X
1
P A 5
2
N C
3
N C
4
N C
5
N C
6
N C
7
P A 6
8
P A 7
9
1 0
1 1
1 2
1 3
1 4
P B 5
1 5
P B 6
1 6
P B 7
1 7
1 8
1 9
P C 2
2 0
P C 3
2 1
P C 4
2 2
P C 5
2 3
P C 6
2 4
P C 7
2 5
N C
2 6
N C
2 7
N C
2 8
N C
2 9
3 0
V S S
H T 4 9 R U 8 0 / H T 4 9 C U 8 0
1 0 0 Q F P - A
3 1
3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0
C 1
V 2
V 1
V L C D
C O M 3 / S E G 4 7
C O M 2
P D 6 / S E G 4 6
C O M 1
C O M 0
C 2
P D 5 / S E G 4 5
P D 4 / S E G 4 4
P D 3 / S E G 4 3
P D 2 / S E G 4 2
P D 1 / S E G 4 1
9
注意: 单片机的封装引脚具有兼容特性,使其在硬件应用时以最小的改变去提供设备直接升级到更
引脚说明
LCD 型单片机使用手册
高的功能。
HT49R30A-1/HT49C30-1/HT49C30L
引脚名称 I/O 掩膜选项 说明
PA 0/ BZ
PA 1/
PA 2
PA3/PFD
PA 4~ PA7
PB0/
PB1/
PB2/TMR
PB3~PB5
VLCD I
V2 I
V1, C1, C2 I 提供 LCD 的电压泵。
COM0~COM2
COM3/SEG18
SEG0~SEG17 O LCD 面板中 Segment 部分的 LCD 驱动输出。
OSC1
OSC2
OSC3
OSC4
RES
VDD 正电源供应。
VSS 负电源供应,接地。
8 位双向输入 /输出口,每个位可由掩膜选项配置成唤醒输入。
Wake-up
BZ
INT0
INT1
I 触发复位输入。低电平有效。
CMOS or NMOS
I/O
O
O
O
Pull-high
PA0/PA1 or BZ/
PA3 or PFD
I
1/2, 1/3 or 1/4
I
Crystal or RC
I
RTC or
System Clock
Duty
掩膜选项决定引脚 PA 0 ~PA 3 是配置成 CMOS 输出或 NMOS 输
入/ 输出引脚。如果 PA 0~ PA3 配置成 NMOS 输入/ 输出引脚,
则可以使用上拉电阻选项,而且是同时加到这 4 个引脚上,不
是加到单独的引脚。引脚 PA4 ~PA 7 是一直配置成具有上拉电
BZ
阻的 NMOS 输入/ 输出引脚。所有的输入都是斯密特触发器输
入。引脚 PA0 、PA1 和 PA 3 分别与 BZ、
该功能由掩膜选项选择。
6 位斯密特触发器输入口。每个输入引脚连接一个内部上拉电
阻。PB0、PB1 和 PB2 分别与
提供 HT49R30A-1/HT49C30-1 的 LCD 电源。
提供 HT49C30L 的 LCD 电压泵。
提供 HT49R30A-1/HT49C30-1 的 LCD 电压泵。
提供 HT49C30L 的 LCD 电源。
1/4 LCD 占空比周期掩膜选项决定在 LCD 面板上的引脚
COM3/SEG18 是配置成 SEG18 驱动还是 COM3 输出驱动。
COM0~COM2 是 LCD 的 common 输出。
OSC1、 OSC2 连接外部 RC 电路或晶体振荡器(由掩膜选项决
定)作为内部系统时钟。对于外部 RC 系统时钟的操作,OSC2
的输出端信号是系统时钟四分频。如果使用 OSC3 和 OSC4 引
脚上的 RTC 振荡器作为系统时钟,则 OSC1 和 OSC2 引脚应
该悬空。
OSC3 和 OSC4 连接一个 32768Hz 的晶体振荡器形成一个定时
用的实时时钟,或是形成一个系统时钟。
BZ
INT0、INT1
和 PFD 引脚共用,
和 TMR 引脚共用。
10
第一章 硬件架构
注意: 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能。
2. 只有引脚 PA 0~ PA3 具有上拉电阻掩膜选项,且只有当这四个引脚被配置成 NMOS 时,
才能选择此选项。如果选择了上拉选项,则所有的四个引脚都将被连接到上拉电阻,引脚不
能单独的选择上拉电阻。如果设定成 CMOS 输出,则上拉电阻掩膜选项无效。
HT49R50A-1/HT49C50-1/HT49C50L
引脚名称 I/O 掩膜选项 说明
8 位双向输入 /输出口,每个位可由掩膜选项配置成唤醒输入。
PA 0/ BZ
PA 1/
PA 2
PA3/PFD
PA 4~ PA7
PB0/
PB1/
PB2/TMR0
PB3/TMR1
PB4~PB7
PC0~PC3 I/O
VLCD I
V2 I
V1, C1, C2 I LCD 电压泵。
COM0~COM2
COM3/SEG32
SEG0~SEG31 O LCD 面板中 segment 部分的 LCD 驱动输出。
OSC1
OSC2
BZ
I/O
INT0
INT1
I
O
I
O
I 触发复位输入。低电平有效。
RES
Wake-up
CMOS or NMOS
Pull-high
PA0/PA1 or BZ/
PA3 or PFD
CMOS or NMOS
Pull-high
1/2, 1/3 or 1/4
Duty
Crystal or RC
掩膜选项决定引脚 PA 0 ~PA 3 是配置成 CMOS 输出或 NMOS
输入/ 输出引脚。如果 PA 0~ PA3 配置成 NMOS 输入/ 输出引脚,
则可以使用上拉电阻选项,而且是同时加到这 4 个引脚上,不
是加到单独的引脚。引脚 PA 4~ PA7 是一直配置成具有上拉电
BZ
阻的 NMOS 输入/ 输出引脚。所有的输入都是斯密特触发器输
入引脚 PA 0 、PA 1 和 PA 3 分别与 BZ 、
该功能由掩膜选项选择。
8 位斯密特触发器输入口。每个输入引脚连接一个内部上拉电
阻。引脚 PB0 和 PB1 分别与
和 PB3 分别与 TMR0 和 TMR1 引脚共用。
4 位双向输入/输出口。掩膜选项决定所有四个引脚 PC0~PC3
是配置成 CMOS 输出或 NMOS 输入/输出引脚。引脚不能单独
的被选择配置成 CMOS 输出或 NMOS 输入/输出引脚。如果
PC0~PC3 配置成 NMOS 输入/输出引脚,则上拉电阻选项是有
效的,但同样的,只能同时提供给所有的四个引脚,不能单独
的配置。所有的输入都是斯密特触发器输入
提供 HT49R50A-1/HT49C50-1 的 LCD 电源。
提供 HT49C50L 的 LCD 电压泵。
提供 HT49R50A-1/HT49C50-1 的 LCD 电压泵。
提供 HT49C50L 的 LCD 电源。
1/4 LCD 占空比周期掩膜选项决定在 LCD 面板上的引脚
COM3/SEG32 是配置成 SEG32 驱动还是 COM3 输出驱动。
COM0~COM2 是 LCD 的 common 输出。
OSC1、 OSC2 连接外部 RC 电路或晶体振荡器(由掩膜选项决
定)作为内部系统时钟。对于外部 RC 系统时钟的操作,OSC2
的输出端信号是系统时钟四分频。如果使用 OSC3 和 OSC4 引
脚上的 RT C 振荡器作为系统时钟,则 OSC1 和 OSC2 引脚应
该被悬空。
INT0和INT1
BZ
和 PFD 引脚共用,
引脚共用。引脚 PB2
11
LCD 型单片机使用手册
引脚名称 I/O 掩膜选项 说明
OSC3
OSC4
VDD 正电源供应。
VSS 负电源供应,接地。
注意: 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能。
2. 只有引脚 PA 0~ PA3 和 PC0~PC3 具有上拉电阻掩膜选项。且只有当四个引脚被配置成
NMOS 时,才能选择此选项。如果选择了上拉选项,则所有的四个引脚都将被连接到
上拉电阻,引脚不能单独的选择上拉电阻。如果设定成 CMOS 输出,则上拉掩膜选项
无效。
3. 由于 48-pin SSOP 封装的限制, I/O 引脚的 PB6 和 PB7 、PC 端口的引脚和 LCD 部分的
引脚 SEG0~SEG9 与 SEG28~SEG31 不存在。
HT49R70A-1/HT49C70-1/HT49C70L
引脚名称 I/O 掩膜选项 说明
PA 0/ BZ
PA 1/
BZ
PA 2
PA3/PFD
PA 4~ PA7
PB0/
INT0
PB1/
INT1
PB2/TMR0
PB3/TMR1
PB4~PB7
PC0~PC7 I/O
VLCD I
V2 I
I
O
I/O
I
RTC or
System Clock
Wake-up
CMOS or NMOS
Pull-high
PA0/PA1 or BZ/
PA3 or PFD
CMOS or NMOS
Pull-high
OSC3 和 OSC4 连接一个 32768Hz 的晶体振荡器形成一个定时
用的实时时钟,或是形成一个系统时钟。
8 位双向输入 /输出口,每个位可由掩膜选项配置成唤醒输入。
掩膜选项决定引脚 PA 0 ~PA 3 是配置成 CMOS 输出或 NMOS
输入/ 输出引脚。如果 PA 0~ PA3 配置成 NMOS 输入/ 输出引脚,
则可以使用上拉电阻选项,而且是同时加到这 4 个引脚上,不
是加到单独的引脚。引脚 PA 4~ PA7 是一直配置成具有上拉电
BZ
阻的 NMOS 输入/ 输出引脚。所有的输入都是斯密特触发器输
入引脚 PA 0 、PA 1 和 PA 3 分别与 BZ ,
该功能由掩膜选项选择。
8 位斯密特触发器输入口。每个输入引脚连接一个内部上拉电
阻。引脚 PB0 和 PB1 分别与
和 PB3 分别与 TMR0 和 TMR1 引脚共用。
8 位双向输入/输出口。两个掩膜选项决定 PC0~PC3 四个引脚
和 PC4~PC7 四个引脚是配置成 CMOS 输出或 NMOS 输入/输
出引脚。四个引脚必须作为一个整体被配置成 CMOS 输出或
NMOS 输入/输出引脚,不能单独的选择引脚。如果 PC0~PC3
或 PC4~PC7 配置成 NMOS 输入/输出引脚,则上拉电阻选项
是有效的,但同样的,只能同时提供给这四个引脚,不能单独
的配置。所有的输入都是斯密特触发器输入
提供 HT49R70A-1/HT49C70-1 的 LCD 电源。
提供 HT49C70L 的 LCD 电压泵。
提供 HT49R70A-1/HT49C70-1 的 LCD 电压泵。
提供 HT49C70L 的 LCD 电源。
INT0和INT1
和 PFD 引脚共用,
BZ
引脚共用。引脚 PB2
12
第一章 硬件架构
引脚名称 I/O 掩膜选项 说明
V1, C1, C2 I LCD 电压泵。
COM0~COM2
COM3/SEG40
SEG0~SEG39 O LCD 面板中 segment 部分的 LCD 驱动输出。
OSC1
OSC2
OSC3
OSC4
I 触发复位输入。低电平有效。
RES
VDD 正电源供应。
VSS 负电源供应,接地。
O
I
O
I
O
1/2, 1/3 or 1/4
Crystal or RC
System Clock
注意 : 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能。
2.
只有引脚 PA 0 ~PA 3、PC0~PC3 和 PC4~PC7 具有上拉电阻掩膜选项。且只有当四个引脚
被配置成 NMOS 时,才能选择此项。如果选择了上拉选项,则所有的的四个引脚都将被
连接到上拉电阻,引脚不能单独的选择上拉电阻。如果设定成 CMOS 输出,则上拉掩膜
选项无效。
HT49RU80/HT49U80
引脚名称 I/O 掩膜选项 说明
PA 0/ BZ
BZ
INT0
INT1
CMOS or NMOS
I/O
PA0/PA1 or BZ/
I
PA 1/
PA 2
PA3/PFD
PA 4~ PA7
PB0/
PB1/
PB2/TMR0
PB3/TMR1
PB4/TMR2
PB5~PB7
Duty
RTC or
Wake-up
Pull-high
PA3 or PFD
1/4 LCD 占空比周期掩膜选项决定在 LCD 面板上的引脚
COM3/SEG40 是配置成 SEG40 驱动还是 COM3 输出驱动。
COM0~COM2 是 LCD 的 common 输出。
OSC1、 OSC2 连接外部 RC 电路或晶体振荡器(由掩膜选项决
定)作为内部系统时钟。对于外部 RC 系统时钟的操作,OSC2
的输出端信号是系统时钟四分频。如果使用 OSC3 和 OSC4 引
脚上的 RTC 振荡器作为系统时钟,则 OSC1 和 OSC2 引脚应
该被悬空。
OSC3 和 OSC4 连接一个 32768Hz 的晶体振荡器形成一个定时
用的实时时钟,或是形成一个系统时钟。
8 位双向输入/ 输出口,每个位可由掩膜选项配置成唤醒输入。
掩膜选项决定引脚 PA 0 ~PA 3 是配置成 CMOS 输出或 NMOS
输入/ 输出引脚。如果 PA 0~ PA3 配置成 NMOS 输入/ 输出引脚,
则可以使用上拉电阻选项,而且是同时加到这 4 个引脚上,不
是加到单独的引脚。引脚 PA 4~ PA7 是一直配置成具有上拉电
BZ
阻的 NMOS 输入/ 输出引脚。所有的输入都是斯密特触发器输
入引脚 PA 0 、PA 1 和 PA 3 分别与 BZ ,
该功能由掩膜选项选择。
8 位斯密特触发器输入口。每个输入引脚连接一个内部上拉电
阻。引脚 PB0 和PB1 分别与
PB3 和 PB4 分别与 TMR0, TMR1 和 TMR2 引脚共用。
INT0和INT1
和 PFD 引脚共用,
BZ
引脚共用。引脚 PB2,
13
LCD 型单片机使用手册
引脚名称 I/O 掩膜选项 说明
8 位双向输入/ 输出口。两个掩膜选项决定 PC0~PC3 四个引脚
和 PC4~PC7 四个引脚是配置成 CMOS 输出或 NMOS 输入/ 输
PC0/TX
PC1/RX
PC2~PC7
PD0/SEG40~
PD6/SEG46
VLCD I
VMAX - -
V1,V2,C1,C2 I LCD 电压泵。
COM0~COM2
COM3/SEG47
SEG0~SEG39 O LCD 面板中 segment 部分的 LCD 驱动输出。
OSC1
OSC2
OSC3
OSC4
CMOS or NMOS
I/O
CMOS Output
O
Or SEG Output
1/2, 1/3 or 1/4
O
I
Crystal or RC
O
I
O
System Clock
Pull-high
Duty
RTC or
出引脚。四个引脚必须作为一个整体被配置成 CMOS 输出或
NMOS 输入/输出引脚,不能单独的选择引脚。如果 PC0~PC3
或 PC4~PC7 配置成 NMOS 输入/ 输出引脚,则上拉电阻选项
是有效的,但同样的,只能同时提供给这四个引脚,不能单独
的配置。所有的输入都是斯密特触发器输入。引脚 PC0 和 PC1
分别与 UART 的 TX 和 RX 引脚共用。
7 位输出口。每个引脚可由掩膜选项配置为 CMOS 输出或 SEG
提供 LCD 电源。这个脚位只是用于 LCD 电源。VLCD 的电平
可以高于或低于 VDD 。
IC 最大电压。连接到 VDD,VLCD 或 V1。
1/4 LCD 占空比周期掩膜选项决定在 LCD 面板上的引脚
COM3/SEG47 是配置成 SEG47 驱动还是 COM3 输出驱动。
COM0~COM2 是 LCD 的 common 输出。
OSC1、 OSC2 连接外部 RC 电路或晶体振荡器(由掩膜选项决
定)作为内部系统时钟。对于外部 RC 系统时钟的操作,OSC2
的输出端信号是系统时钟四分频。如果使用 OSC3 和 OSC4 引
脚上的 RTC 振荡器作为系统时钟,则 OSC1 和 OSC2 引脚应
该被悬空。
OSC3 和 OSC4 连接一个 32768Hz 的晶体振荡器形成一个定时
用的实时时钟,或是形成一个系统时钟。
I 触发复位输入。低电平有效。
RES
VDD 正电源供应。
VSS 负电源供应,接地。
注意: 1. PA 上的每个引脚可通过掩膜选项被设定成具有唤醒功能。
2.
被配置成 NMOS 时,才能选择此项。如果选择了上拉选项,则所有的的四个引脚都将被
连接到上拉电阻,引脚不能单独的选择上拉电阻。如果设定成 CMOS 输出,则上拉掩膜
选项无效。
14
只有引脚 PA 0 ~PA 3、PC0~PC3 和 PC4~PC7 具有上拉电阻掩膜选项。且只有当四个引脚
极限参数
第一章 硬件架构
供应电压(HT49C30L 、HT49C50L 、HT49C70L 除外) .....V SS−0.3V to V SS+6.0V
供应电压(对于 HT49C30L 、HT49C50L 、HT49C70L ) .....V
输入电压 ................................................................................V
储存温度 .............................................................................................. −50 °C~125 °C
工作温度 ................................................................................................ −40 °C~85 °C
这里只强调额定功率,超过极限参数功率的范围将对芯片造成损害,芯片在所
标示范围外的表现并不能预期,而长期工作在标示范围外条件下也可能影响芯
片的可靠性。
− 0.3V to VSS+2.5V
SS
− 0.3V to VDD+0.3V
SS
15
LCD 型单片机使用手册
直流电气特性
HT49RU80/HT49CU80 除外
V
=3V & VDD =5V( HT49C30L,HT49C50L、 HT49C70L 除外)
DD
=1.5V(对于 HT49C30L、 HT49C50L、 HT49C70L) Ta =2 5° C
V
DD
符号 参数
V
Operating Voltage
DD
V
DD
VLCD LCD Power Supply -
1.5V No load, f
3V 1 2 mA
5V
1.5V No load, f
3V 1 2 mA
5V
5V No load, f
1.5V 2.5 5 µA
3V 0.3 0.6 mA
5V
1.5V 0.1 0.5 µA
3V 1 µA
5V
1.5V 1 2 µA
3V 2.5 5 µA
5V
1.5V 0.5 1 µA
3V 2 5 µA
5V
I
DD1
I
DD2
I
DD3
I
DD4
I
STB1
I
STB2
I
STB3
Operating Current
(Crystal OSC)
Operating Current
(RC OSC)
Operating Current
(Crystal OSC, RC OSC)
Operating Current
= RTC OSC)
(f
SYS
Standby Current
=T1)
(f
S
Standby Current
= RTC OSC)
(f
S
Standby Current
= WDT RC OSC)
(f
S
测试条件
条件
f
=500kHz
SYS
(For HT49C30L,
HT49C50L, HT49C70L)
f
=4MHz
SYS
LVR disabled,
(Except HT49C30L,
HT49C50L, HT49C70L)
f
=8MHz
SYS
(ExceptHT49C30L,
HT49C50L, HT49C70L)
VA ≤ 5.5V(Except HT49C30L,
HT49C50L,HT49C70L)
=455kHz 60 100 µA
SYS
No load,f
No load, f
=4MHz
SYS
=400kHz 50 100 µA
SYS
=4MHz
SYS
=8MHz 4 8 mA
SYS
No load
No load, system HALT
LCD Off at HALT
No load, system HALT
LCD On at HALT, C type
No load, system HALT
LCD On at HALT, C type
最小 典型 最大 单位
1.2 2.2 V
2.2 5.5 V
3.3 5.5 V
2.2 - 5.5 V
3 5 mA
3 5 mA
0.6 1 mA
2 µA
10 20 µA
6 10 µA
16
第一章 硬件架构
符号 参数
Standby Current
I
STB4
I
STB5
I
STB6
I
STB7
V
V
V
V
IL1
IH1
IL2
IH2
= RTC OSC)
((f
S
Standby Current
= RTC OSC)
(f
S
Standby Current
= WDT RC OSC)
(f
S
Standby Current
= WDT RC OSC)
(f
S
Input Low Voltage for
I/O Ports, TMR and
Input High Voltage for
I/O Ports, TMR and
Input Low Voltage (
Input High Voltage (
INT
INT
) 0 0.4V DDV
RES
) 0.9V
RES
V
DD
3V 17 30 µA
5V
3V 13 25 µA
5V
3V 14 25 µA
5V
3V 10 20 µA
5V
0 0.3V
1.5V 0.4 0.8 mA
I
I/O Port Sink Current
OL1
3V 6 12 mA
5V
1.5V − 0.3 − 0.6 mA
I
I/O Port Source Current
OH1
3V − 2 − 4 mA
5V
I
I
OL2
OH2
LCD Common and
Segment Current
LCD Common and
Segment Current
3V 210 420 µA
5V
3V − 80 − 160 µA
5V
1.5V 75 150 300 kΩ
RPH Pull-high Resistance
3V 20 60 100 kΩ
5V
V
Low Voltage Reset Voltage 2.7 3.2 3.6 V
LVR
V
Low Voltage Detector Voltage
LVD
测试条件
条件
No load, system HALT
LCD On at HALT, R type,
1/2 bias
No load, system HALT
LCD On at HALT, R type,
1/3 bias
No load, system HALT
LCD On at HALT, R type,
1/2 bias
No load, system HALT
LCD On at HALT, R type,
1/3 bias
(For HT49C30L,HT49C50L,
HT49C70L)
(Except HT49C30L
,HT49C50L,HT49C70L)
VOL=0.1V
DD
VOH=0.9VDD
VOL=0.1VDD
VOH=0.9VDD
最小 典型 最大 单位
34 60 µA
26 50 µA
28 50 µA
20 40 µA
DD
VDDV
0.8V
DD
VDDV
0.7V
DD
VDDV
DD
10 25 mA
− 5 − 8 mA
350 700 µA
− 180 − 360 µ A
10 30 50 kΩ
3.0 3.3 3.6 V
V
17
LCD 型单片机使用手册
HT49RU80/HT49CU80 Ta =2 5° C
符号 参数
V
Operating Voltage -
DD
V
DD
VLCD LCD Power Supply - VA ≤ 5.5V 2.2 5.5 V
I
I
I
I
I
I
I
I
I
I
I
I
V
V
V
Operating Current
DD1
(Crystal OSC, RC OSC)
Operating Current
DD2
(Crystal OSC, RC OSC)
Operating Current
DD3
(Crystal OSC, RC OSC)
Operating Current
DD4
(Crystal OSC, RC OSC)
Operating Current
DD5
STB1
STB2
STB3
STB4
STB5
STB6
STB7
IL1
IH1
IL2
= RTC OSC)
(f
S
Standby Current
= T1)
(f
S
Standby Current
= RTC OSC)
(f
S
Standby Current
= WDT OSC)
(f
S
Standby Current
= RTC OSC)
(f
S
Standby Current
= RTC OSC )
(f
S
Standby Current
= WDT OSC)
(f
S
Standby Current
= WDT OSC)
(f
S
Input Low Voltage for I/O Ports,
TMR and
Input High Voltage for I/O
Ports, TMR and
Input Low Voltage (
INT
INT
) 0 0.4V
RES
3V 1 2 mA
5V
3V 2 4 mA
5V
5V
.5V
3V 0.3 0.6 mA
5V
3V 1 µA
5V
3V 2.5 5 µA
5V
3V 2 5 µA
5V
3V 17 30 µA
5V
3V 13 25 µA
5V
3V 14 25 µA
5V
3V 10 20 µA
5V
0 0.3V
0.7V
测试条件
条件
LVR disabled ,f
LVR disabled ,f
No load,f
=4MHz 2.2 5.5 V
sys
=8MHz 3.3 5.5 V
sys
=4MHz
SYS
UART Off
No load,f
=4MHz
SYS
UART On
No load,f
=8MHz
SYS
UART Off
No load,f
=8MHz
SYS
UART On
No load, UART Off
No load, system HALT
LCD Off at HALT, UART Off
No load, system HALT
LCD On at HALT, C type,
UART Off
No load, system HALT
LCD On at HALT, C type,
UART On
No load, system HALT
LCD On at HALT,R type,
1/2bias, UART Off
No load, system HALT
LCD On at HALT, R type,
1/3 bias,UART Off
No load, system HALT
LCD On at HALT, R type,
1/2 bias, UART Off
No load, system HALT
LCD On at HALT, R type,
1/3 bias, UART Off
最小 典型 最大 单位
3 5 mA
5 10 µA
4 8 mA
6 12 mA
0.6 1 mA
2 µA
10 20 µA
6 10 µA
34 60 µA
26 50 µA
28 50 µA
20 40 µA
V
DD
VDDV
DD
V
DD
18
第一章 硬件架构
符号 参数
V
Input High Voltage (
IH2
I
I/O Port Sink Current
OL1
I
I/O Port SourceCurrent
OH1
I
I
LCD Common and Segment
OL2
Current
LCD Common and Segment
OH2
Current
) 0.9V
RES
RPH Pull-high Resistance
V
Low Voltage Reset Voltage 2.7 3. 0 3.3V
LVR
V
Low Voltage Detector Voltage 3.0 3.3 3.6 V
LVD
V
DD
3V 6 12 mA
5V
3V -2 -4 mA
5V
3V 210 420 µA
5V
3V -80 -160 µA
5V
3V 20 60 100 kΩ
5V
测试条件
条件
VOL=0.1V
DD
VOH=0.9VDD
VOL=0.1VDD
VOH=0.9VDD
最小 典型 最大 单位
VDDV
DD
10 25
-5 -8 mA
350 700 µA
− 180 -360 µ A
10 30 50 kΩ
19
LCD 型单片机使用手册
交流电气特性
HT49RU80/HT49CU80 除外
VDD =3V & VDD =5V(HT49C30L、HT49C50L、HT49C70L 除外)
VDD =1.5V(对于 HT49C30L、 HT49C50L、 HT49C70L) Ta =2 5 ° C
符号 参数
测试条件
V
条件
DD
最小 典型 最大 单位
1.2V~2.2V
f
SYS1
System Clock
(Crystal OSC )
(For HT49C30L,
HT49C50L, HT49C70L)
2.2V~5.5V
(Except HT49C30L,
HT49C50L, HT49C70L)
400 500 kHz
400 4000 kHz
3.3V~5.5V
(Except HT49C30L,
HT49C50L, HT49C70L)
400 8000 kHz
1.2V~2.2V
(For HT49C30L,
HT49C50L, HT49C70L)
400 500 kHz
2.2V~5.5V
f
System Clock(RC OSC)
SYS2
(Except HT49C30L,
HT49C50L, HT49C70L)
400 4000 kHz
3.3V~5.5V
(Except HT49C30L,
HT49C50L, HT49C70L)
f
SYS3
f
RTC OSC
System Clock
(32768Hz Crystal OSC)
32768 Hz
RTC Frequency 32768 Hz
400 8000 kHz
1.2V~2.2V
f
TIMER
Timer I/P Frequency
(For HT49C30L,
HT49C50L, HT49C70L)
2.2V~5.5V
(Except HT49C30L,
HT49C50L, HT49C70L)
0 500 kHz
0 4000 kHz
3.3V~5.5V
t
WDTOSC
Watchdog Oscillator
Period
(Except HT49C30L,
HT49C50L, HT49C70L)
1.5V 35 70 140 µs
3V 45 90 180 µs
5V
0 8000 kHz
32 65 130 µs
20
第一章 硬件架构
符号 参数
External Reset Low Pulse
Width
System Start-up Timer
Period
Low Voltage Width to
Reset
Interrupt Pulse Width
=1/f
SYS1
, 1/f
SYS2
或 1/f
SYS3
*t
t
RES
t
SST
t
LVR
t
INT
SYS
HT49RU80/HT49CU80 Ta=25°C
测试条件
V
条件
DD
(For HT49C30L,
HT49C50L, HT49C70L)
(Except HT49C30L,
HT49C50L, HT49C70L)
Wake-up from
HALT
最小 典型 最大 单位
10
1 µ s
1024 *t
0.25 1 2 ms
(For HT49C30L,
HT49C50L, HT49C70L)
(Except HT49C30L,
HT49C50L, HT49C70L)
10 µ s
1 µ s
µ s
SYS
符号 参数
f
SYS1
f
SYS2
f
SYS3
f
RTC OSC
f
TIMER
t
WDTOSC
t
RES
t
SST
t
LVR
t
INT
*t
SYS
System Clock
(Crystal OSC)
System Clock(RC OSC)
System Clock
(32768Hz Crystal OSC)
RTC Frequency 32768 Hz
Timer I/P Frequency
( 50% Duty)
Watchdog Oscillator
Period
External Reset Low Pulse
Width
System Start-up Timer
Period
Low Voltage Width to
Reset
Interrupt Pulse Width 1 µs
=1/f
SYS1
, 1/f
SYS2
或 1/f
SYS
V
测试条件
条件
DD
最小 典型 最大 单位
2.2V~5.5V 400 4000 kHz
3.3V~5.5V 400 8000 kHz
2.2V~5.5V 400 4000 kHz
3.3V~5.5V 400 8000 kHz
32768 Hz
2.2V~5.5V 0 4000 kHz
3.3V~5.5V 0 8000 kHz
3V 45 90 180 µs
5V
32 65 130 µs
1 µ s
Wake-up from
HALT
1024 *t
0.25 1 2 ms
SYS
21
系统结构
LCD 型单片机使用手册
内部系统结构是盛群半导体公司 LCD 型单片机具有良好运行性能的主要因
素。由于采用 RISC 结构,此系列单片机具有高运算速度和高性能的特性。通
过流水线的方式,即指令的取得和执行同时进行,此举使得除了分支、调用和
查表指令外,其它指令都能在一个指令周期内完成。8 位的 ALU 参与指令集
中所有的运算,它可完成算术运算、逻辑运算、移位、加、减和分支等功能,
而内部的数据路径则以通过累加器或 ALU 的方式加以简化。有些寄存器在数
据存储器中被实现,且可以直接或间接寻址。简单的寄存器寻址方式和结构特
性,确保了在提供最大可靠度和灵活性的 LCD 控制系统时,仅需要少数的外
部器件。这使得这些单片机适合用在低成本高产量的控制应用上,可以提供
2K 至 16K 字的程序存储器和 96 至 576 字节数据储存。
时序和流水线结构(Pipelining)
系统时钟由晶体/ 陶瓷振荡器,或是由 RC 振荡器提供,细分为 T1~T4 四个内
部产生的非重叠时序。程序计数器在 T1 时自动加一并抓取一条新的指令。剩
下的 T2~T4 时钟完成解码和执行功能,因此一个 T1~T4 时钟组成一个指令周
期。虽然指令的取得和执行发生在连续的指令周期,但单片机流水线的结构会
保证指令在一个指令周期内被有效的执行。特殊的情况发生在程序计数器的内
容被改变的时候,如子程序的调用或跳转,在这情况下指令将需要多一个指令
周期的时间去执行。
注意: 当使用 RC 振荡器时,OSC2 可以如同一个 T1 相时钟同步引脚一样地被使用,这个 T1 相
时钟有 f
22
/4 的频率,具有 1:3 高/低的占空比。
SYS
第一章 硬件架构
O s c i l l a t o r C l o c k
( S y s t e m C l o c k )
P h a s e C l o c k T 1
P h a s e C l o c k T 2
P h a s e C l o c k T 3
P h a s e C l o c k T 4
P r o g r a m C o u n t e r
P i p e l i n i n g
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 )
系统时序和流水线
如果指令牵涉到分支,例如跳转或调用等指令,则需要两个指令周期才能完成
指令执行。需要一个额外周期的原因是程序先用一个周期取出当前指令地址的
下一条指令,再用另一个周期去实际执行分支动作,因此
程序设计师必须特别
考虑额外周期的问题,尤其是在执行时间要求比较严格的时候。
1
2
3
4
5
6
D E L A Y :
M O V A , [ 1 2 H ]
C A L L D E L A Y
C P L [ 1 2 H ]
:
:
N O P
F e t c h I n s t . 1 E x e c u t e I n s t . 1
F e t c h I n s t . 2
E x e c u t e I n s t . 2
F e t c h I n s t . 3
F l u s h P i p e l i n e
F e t c h I n s t . 6 E x e c u t e I n s t . 6
F e t c h I n s t . 7
程序计数器
程序执行期间,程序计数器用来指向下一条要执行的指令地址。除了 JMP
或 CALL 这些要求跳转到一个非连续的程序存储器地址之外,它会在每条指令
执行完后自动增加一。对于 LCD 系列的单片机,根据所选择的单片机型号不
同,程序计数器宽度会因程序程序存储器容量的不同而不同。然而必须要注意
只有较低的 8 位,即所谓的程序计数器低字节寄存器,是可以让使用者直接读
写的。
当执行的指令要求跳转到非连续的地址时,如跳转指令、子程序调用、中
断或复位等,单片机通过载入所需的地址到程序计数器来控制程序。对于条件
跳转指令,一旦条件符合,下一条在现在指令执行时所取得的指令即会被摒弃,
而由一个空指令周期来加以取代。
23
LCD 型单片机使用手册
程序计数器较低字节,即程序计数器低字节寄存器或 PCL ,可以通过程序控制
取得,且它是可以读取和写入的寄存器。通过直接传送数据到这寄存器,一个
程序短跳转可以直接被执行,然而因为只有低字节的运用是有效的,因此跳转
被限制在同页存储器,即 256 个存储器地址的范围内,当这样一个程序跳转要
执行时,需注意会插入一个空指令周期。
对于程序存储器分为两个 bank 的 HT49RU80/HT49CU80 ,由 BP 的第 5 位选
择 Bank 。Bank 选择位与程序计数器关系如图所示:
1 3 1 2
P r o g r a m C o u n t e r
B P
. 5
B a n k P o i n t e r ( B P )
注意: 程序计数器较低字节在程序控制下是完全可用的。PCL 的使用可能导致程序分支,所以
额外的周期需要预先取得。有关 PCL 寄存器更多的信息可在特殊功能寄存器部份中找到。
HT49RU80/HT49CU80 除外
模式
复位 0 0 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
外部中断 1 0 0 0 0 0 0 0 0 0 1 0 0 0
定时/计数器 0 溢出 0 0 0 0 0 0 0 0 0 1 1 0 0
定时/计数器 1 溢出
(HT49R30A-1/HT49C30-1/
HT49C30L 除外)
时基中断
(对于 HT49R30A-1/
HT49C30-1/HT49C30L)
时基中断
(HT49R30A-1/HT49C30-1/
HT49C30L 除外)
RTC 中断
(对于 HT49R30A-1/
HT49C30-1/HT49C30L)
b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 1 0 1 0 0
8 7 0
程序计数器
24
第一章 硬件架构
RTC 中断
(HT49R30A-1/HT49C30-1/
HT49C30L 除外)
条件跳转 Program Counter + 2
写入 PCL 寄存器 PC12 PC11 PC10 PC9 PC8 @7 @6 @5 @4 @3 @2 @1 @0
跳转或调用子程序 #12 #11 #10 #9 #8 #7 #6 #5 #4 #3 #2 #1 #0
HT49RU80/HT49CU80
0 0 0 0 0 0 0 0 1 1 0 0 0
模式
复位 0 0 0 0 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
外部中断 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
定时/计数器 0 溢出 0 0 0 0 0 0 0 0 0 0 1 1 0 0
定时/计数器 1 溢出 0 0 0 0 0 0 0 0 0 1 0 0 0 0
UART Bus interrupt
Multi-function
interrupt
条件跳转 Program Counter + 2(在同 bank 内)
写入 PCL 寄存器 PC13 PC12 PC11 PC10 PC9 PC8 @7 @6 @5 @4 @3 @2 @1 @0
跳转或调用子程序 BP.5 #12 #11 #10 #9 #8 #7 #6 #5 #4 #3 #2 #1 #0
由子程序返回 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0
b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 0 0 0 0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 0
程序计数器
注意: 1. PC13~PC8:目前程序计数器位
2. @7~@0:PCL 位
3. BP.5:Bank 选择位
4. #12~#0:指令码位
5. S13~S0:堆栈寄存器位
6. 对于 HT49RU80/HT49CU80,程序计数器有 14 位,即从 b13~b0。
7. 对于 HT49R70A-1/HT49C70-1/HT49C70L,程序计数器有 13 位,即从 b12~b0。
8. 对于 HT49R50A-1/HT49C50-1/HT49C50L,由于程序计数器只有 12 位,表格中的列 b12
是无效的。
9. 对于 HT49R30A-1/HT49C30-1/HT49C30L,由于程序计数器只有 11 位,表格中的列 b11
和 b12 是无效的。
10. 定时 / 计数器 1 溢出行只有 HT49R50A-1/HT49C50-1/HT49C50L , HT49R70A-1/
HT49C70-1/HT49C70L 和 HT49RU80/HT49CU80 可利用。
11. 对于 HT49R30A-1/HT49C30-1/HT49C30L,定时/计数器 0 即 TMR。
12. UART 和多功能中断只有在 HT49RU80/HT49CU80 中可用。
25
LCD 型单片机使用手册
堆栈
堆栈是存储器中一个特殊的部分,它只用来储存程序计数器中的内容。根据选
择的单片机,堆栈可介于 4 、6 或 16 层之间,它们既不是数据部份也不是程序
空间部份,且既不是可读取也不是可写入的。当前层由堆栈指针(Stack Pointer,
SP) 加以指示,同样也是不可读写的。在子程序调用或中断响应服务时,程序
计数器的内容被压入到堆栈中。当子程序或中断服务程序结束时,返回指令
(RET 或 RETI) 使程序计数器从堆栈中重新得到它以前的值。当一个芯片复位
之后,SP 将指向堆栈的顶部。
如果堆栈已满,且有非屏蔽的中断发生,中断请求标志位会被置位,但是中断
响应将被禁止。当堆栈指针减少(执行 RET 或 RETI),中断将被响应。这个特
性提供程序设计者简单的方法来预防堆栈溢出。然而即使堆栈已满,CALL 指
令仍然可以被执行,而造成堆栈溢出。使用时应避免堆栈溢出的情况发生,因
为这可能会造成不可预期的程序分支指令执行错误。
P r o g r a m C o u n t e r
T o p o f S T A C K
S t a c k
P o i n t e r
B o t t o m o f S T A C K
S t a c k L e v e l 1
S t a c k L e v e l 2
S t a c k L e v e l 3
S t a c k L e v e l N
P r o g r a m
M e m o r y
B a n k P o i n t e r
注意 : 1. 对 HT49R30A-1/HT49C30-1/HT49C30L 而言, N=4 ,即 4 层堆栈可用。
2. 对 HT49R50A-1/HT49C50-1/HT49C50L 而言, N=6,即 6 层堆栈可用。
3. 对 HT49R70A-1/HT49C70-1/HT49C70L 和 HT49RU80/HT49CU80 而言, N=16,即 16 层
堆栈可用。
26
算术及逻辑单位 − ALU
算术逻辑单元是单片机中很重要的部份,执行指令集中的算术和逻辑运算。
ALU 连结到单片机的数据总线,在接收相关的指令码后执行需要的算术与逻
辑操作,并将结果储存在指定的寄存器,当 ALU 计算或操作时,可能导致进
位、借位或其它状态的改变,而相关的状态寄存器会因此更新内容以显示这些
改变,ALU 所提供的功能如下:
• 算术运算:ADD 、ADDM 、ADC 、ADCM 、SUB 、SUBM 、SBC 、SBCM 、DAA
• 逻辑运算:AND 、OR 、XOR 、ANDM 、ORM 、XORM 、CPL 、CPLA
• 移位:RRA 、RR 、RRCA 、RRC 、RLA 、RL 、RLCA 、RLC
• 增加和减少:INCA 、INC 、DECA 、DEC
• 分支判断:JMP 、SZ 、SZA 、SNZ 、SIZ 、SDZ 、SIZA 、SDZA 、CALL 、RET 、RETI
程序存储器
程序存储器用来存放用户代码即储存程序。对于 LCD 型的单片机而言,有两
种程序存储器可供使用。第一种是一次可编程存储器(OTP) ,使用者可编程他
们的应用码到芯片中,具有 OTP 存储器的单片机在芯片名称上有“R ”做标示。
使用适当的烧录工具,OTP 单片机可以提供使用者以灵活的方式来自由开发
他们的应用,这对于除错或需要经常升级与改变程序的产品是很有帮助的。对
于中小型量产,OTP 亦为极佳的选择。另一种存储器为掩膜存储器,单片机
名称上有“C ”做标示,这些芯片对于大量生产提供最佳的成本效益。
第一章 硬件架构
结构
14 位的程序存储器的容量是 2K ,16 位的程序存储器的容量则是 16K ,这 取 决
于选用哪种单片机。程序存储器用程序计数器来寻址,其中也包含数据、表格
和中断入口。数据表格可以设定在程序存储器的任何地址,由表格指针来寻址。
对于 HT49RU80/HT49CU80 程序存储器分为两个 Bank ,每个 Bank 的容量为
8K ,它由 BP 的第 5 位来控制,清零选择 Bank0 ,置位选择 Bank1 。由于数据
存储器也由 BP 来控制,所以使用时必须注意。
27
LCD 型单片机使用手册
以下是 LCD 型单片机程序存储器结构图。
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
3 F F H
4 0 0 H
7 F F H
8 0 0 H
F F F H
1 0 0 0 H
1 F F F H
H T 4 9 R 3 0 A - 1
H T 4 9 C 3 0 - 1
H T 4 9 C 3 0 L
I n i t i a l i z a t i o n
V e c t o r
E x t e r n a l I N T 0
I n t e r r u p t V e c t o r
E x t e r n a l I N T 1
I n t e r r u p t V e c t o r
T i m e r / C o u n t e r
I n t e r r u p t V e c t o r
T i m e B a s e
I n t e r r u p t V e c t o r
R e a l T i m e C l o c k
I n t e r r u p t V e c t o r
N o t I m p l e m e n t e d
H T 4 9 R 5 0 A - 1
H T 4 9 C 5 0 - 1
H T 4 9 C 5 0 L
I n i t i a l i z a t i o n
V e c t o r
E x t e r n a l I N T 0
I n t e r r u p t V e c t o r
E x t e r n a l I N T 1
I n t e r r u p t V e c t o r
T i m e r / C o u n t e r 0
I n t e r r u p t V e c t o r
T i m e r / C o u n t e r 1
I n t e r r u p t V e c t o r
T i m e B a s e
I n t e r r u p t V e c t o r
R e a l T i m e C l o c k
I n t e r r u p t V e c t o r
H T 4 9 R 7 0 A - 1
H T 4 9 C 7 0 - 1
H T 4 9 C 7 0 L
I n i t i a l i z a t i o n
V e c t o r
E x t e r n a l I N T 0
I n t e r r u p t V e c t o r
E x t e r n a l I N T 1
I n t e r r u p t V e c t o r
T i m e r / C o u n t e r 0
I n t e r r u p t V e c t o r
T i m e r / C o u n t e r 1
I n t e r r u p t V e c t o r
T i m e B a s e
I n t e r r u p t V e c t o r
R e a l T i m e C l o c k
I n t e r r u p t V e c t o r
1 6 b i t s 1 5 b i t s 1 4 b i t s
B a n k 0
H T 4 9 R U 8 0
H T 4 9 C U 8 0
I n i t i a l i z a t i o n
V e c t o r
E x t e r n a l I N T 0
I n t e r r u p t V e c t o r
E x t e r n a l I N T 1
I n t e r r u p t V e c t o r
T i m e r / C o u n t e r 0
I n t e r r u p t V e c t o r
T i m e r / C o u n t e r 1
I n t e r r u p t V e c t o r
U A R T B u s
I n t e r r u p t V e c t o r
M u l t i - F u n c t i o n
I n t e r r u p t V e c t o r
1 6 b i t s
B a n k 1
28
第一章 硬件架构
特殊向量
程序存储器内部某些地址保留用做诸如复位和中断入口等特殊用途。
• 地址 000H
这个向量是芯片复位后的程序起始地址。在芯片复位之后,程序将跳到这个
地址并开始执行。
• 地址 004H
这个向量用做
平,而外部
INT0
始执行。
• 地址 008H
这个向量用做
电平,且外部
开始执行。
• 地址 00CH
此内部中断向量被定时/计数器所使用,当定时器发生溢出,而内部中断使
能且堆栈没有满的情况 下,程序将跳到这个地址并开始执行。对于
HT49R50A-1/HT49C50-1/HT49C50L 、 HT49R70A-1/HT49C70-1/HT49C70L
和 HT49RU80/HT49CU80,这个定时/计数器称为定时/计数器 0。
外部中断入口,假如单片机外部中断引脚
INT0
INT0
转成低电
中断使能且堆栈没有满的情况下,程序将跳到这个地址开
外部中断入口,假如单片机外部中断引脚
INT1
中断使能且堆栈没有满的情况下,程序将跳到这个地址
INT1
INT1
转成低
• 地址 010H
除了 HT49R30A-1/HT49C30-1/HT49C30L 只有一个内部定时/ 计数器外,这
个内部中断向量被定时/ 计数器 1 所使用。当定时器发生溢出,而内部中断
使能且堆栈没有满的情况下,程序将跳到这个地址并开始执行。而对于
HT49R30A-1/HT49C30-1/ HT49C30L ,这个向量被时基中断所使用。当产生
时基中断信号,而内部中断使能且堆栈没有满的情况下,程序将跳到这个地
址并开始执行。
• 地址 014H
除了 HT49R30A-1/HT49C30-1/HT49C30L 和 HT49RU80/HT49CU80 外,这
个内部中断向量被时基中断所使用。当产生时基中断信号,而内部中断使能
且堆栈没有满的情况下,程序将跳到这个地址并开始执行。而对于
HT49R30A-1/HT49C30-1/HT49C30L,这个向量被实时时钟中断所使用。当
29
LCD 型单片机使用手册
产生实时时钟中断信号,而内部中断使能且堆栈没有满的情况下,程序将跳
到这个地址并开始执行。对于 HT49RU80/HT49CU80 ,此内部中断向量被
UART 使用。当发送或接收结束产生中断信号,而内部中断使能且堆栈没有
满的情况下,程序将跳到这个地址并开始执行。
• 地址 018H
除了 HT49R30A-1/HT49C30-1/HT49C30L 和 HT49RU80/HT49CU80 外,这
个内部中断向量被实时时钟中断所使用。而对于
HT49R30A-1/HT49C30-1/HT49C30L ,它的实时时钟中断向量位于 014H ,这
个内部中断向量是无效的。当产生实时时钟中断信号,而内部中断使能且堆
栈没有满的情况下,程序将跳到这个地址并开始执行。而对于
HT49RU80/HT49CU80 而言此内部中断被多功能中断所使用,如果定时器 2 、
实时时钟或时基产生中断,而内部中断使能且堆栈没有满的情况下,程序将
跳到这个地址并开始执行。
多 Bank 管理
HT49RU80/HT49CU80 有多个程序存储 Bank ,一些特殊的事项需要注意。
首先,伪指令 ROMBANK 将程序段放置于不同的 Bank 中。当执行”CALL”
指令来调用位于不同 Bank 的子程序,或者执行”JMP” 指令来跳转到不同
Bank 的地址时,必须先正确设置 Bank 指针来确定目标 Bank。伪指令
ROMBANK 最佳用法如下所列。当执行”CALL”或”JMP”指令,BP 特殊寄存
器中的 Bank 指针会自动装载到程序计数器中。若子程序被位于另一个 Bank
的主程序调用,当执这个子程序的”RET” 指令时,程序会自动返回到原先主
程序所在的 Bank ,然而,BP 的值不会改变,它仍保持着子程序所在 Bank
的值。因此在不同的 Bank 之间的转移过程中,BP 必须小心处理。以下的范
例就是母体 HT49RU80/HT49CU80 的程序,说明了如何在不同的 Bank 之间
使用”CALL” 和”JMP” 指令。
include HT49RU80.inc
:
:
rombank 0 codesec0 ; define rombank 0
rombank 1 codesec1 ; define rombank 1
:
codesec0 .section at 000h ‘code’ ; locates the following program section
; into Bank 0
30
clr bp ; re-initializing the BP
jmp start
start:
lab0:
mov a, BANK routb1 ; routine routb1 is located in Bank 1
mov bp,a ; load bank number for routb1 into BP
call routb1 ; call subroutine located in Bank 1
clr bp ; program will return to this location
codesec1 .section at 000h ‘code’ ; locates following program section
routb1 proc
ret ; return program to Bank 0 but BP will
routb1 endp
中断处理时,Bank 指针的处理需十分小心。无论程序运行至哪个Bank ,一
旦中断发生,包括外部中断和内部中断,程序都会立刻跳转至相应的位于
Bank 0 的中断子程序入口。然而要注意的是,虽然无论什么情况下程序都会
跳转到Bank0 ,但是Bank 指针仍然保持原来的值,而不是指向Bank 0 。因为
这个原因,进入中断处理子程序后,除了保存累加器和状态寄存器之外,另
一个重要的动作就是,保存Bank 指针以及清Bank 指针让它指向Bank 0 ,尤 其
是在Bank 0 中执行调用子程序或跳转指令。在”RETI” 指令执行以前,Bank
指针和累加器、状态特殊寄存器一样必须被恢复,确保程序返回至正确的
Bank地址,并指向此地址。以下范例说明了如何处理中断子程序:
include HT49RU80.inc
:
第一章 硬件架构
:
:
:
:
:
:
; after RET in Bank 1
: ; but BP will retain Bank 1 value
: ; so clear the BP
; into Bank 1
:
:
:
:
; retain Bank 1 value
:
:
31
LCD 型单片机使用手册
:
rombank 0 codesec0 ; define rombank 0
rombank 1 codesec1 ; define rombank 1
:
:
codesec0 .section at 000h ‘code’ ; locates the following program section
; into Bank 0
clr bp ; clear Bank Pointer after power-on reset
:
:
org 004h ; jump here from any bank when ext0_int.
; occurs - BP retains original value
mov accbuf0,a ; backup accumulator
mov a,bp ; backup Bank Pointer
clr bp ; clear BP to indicate Bank 0 otherwise
; original BP value will remain and give
; rise to false jmp or call addresses
jmp ext0_int ; jump to external 0 interrupt subroutine
:
:
org 008h ; jump here from any bank when ext1_int.
; occurs - BP retains original value
mov accbuf1,a ; backup accumulator
mov a,bp ; backup Bank Pointer
clr bp ; clear BP to indicate Bank 0 otherwise
; original BP value will remain and give
; rise to false jmp or call addresses
jmp ext1_int ; jump to external 1 interrupt subroutine
:
:
org 00Ch ; jump here from any bank when Timer 0 int.
; occurs - BP retains original value
:
:
ext0_int: ; external 0 interrupt subroutine
mov bp_ext0,a ; backup Bank Pointer
mov a,status ; backup status register
mov statusbuf0,a ; backup status register
:
:
mov a,statusbuf0 ; restore status register
mov status,a
mov a,bp_ext0 ; restore Bank Pointer
mov bp,a
32
第一章 硬件架构
mov a,accbuf0 ; restore accumulator
reti ; return to main program and original
; calling bank
:
:
ext1_int: ; external 1 interrupt subroutine
mov bp_ext1,a ; backup Bank Pointer
mov a,status ; backup status register
mov statusbuf1,a
:
:
mov a,statusbuf1 ; restore status register
mov status,a
mov a,bp_ext1 ; restore Bank Pointer
mov bp,a
mov a,accbuf1 ; restore accumulator
reti ; return to main program and original
; calling bank
查表
程序存储器中的任何地址都可以定义成一个表格,以便储存固定的数据。使用
表格时,表格指针必须先行设定,其方式是将表格的低字节地址放在表格指针
寄存器 TBLP 中,这个寄存器定义表格较低的 8 位地址。在设定完表格指针后,
表格数据可以使用“TABRDC [m]”或“TABRDL [m]”指令从当前程序所在
的存储器页或存储器最后一页中来查表读取。当这些指令执行时,程序存储器
中表格数据的低字节,将被传送到使用者所指定的数据存储器,程序存储器中
表格数据的高字节,则被传送到 TBLH 特殊寄存器,而高字节中未使用的位将
被读取为“0 ”。
下图是除 HT49RU80/HT49CU80 以外的查表寻址/ 数据流程图:
P r o g r a m C o u n t e r
H i g h B y t e
T B L P
T B L H S p e c i f i e d b y [ m ]
H i g h b y t e o f t a b l e c o n t e n t s
33
P r o g r a m
M e m o r y
L o w b y t e o f t a b l e c o n t e n t s
LCD 型单片机使用手册
查表程序范例
以下范例说明 HT49R30A-1/ HT49C30-1/ HT49C30L LCD 单片机中,表格指针
和表格数据如何被定义和执行。这个例子使用的表格数据用 ORG 伪指令储存
在存储器的最后一页, 在此 ORG 伪指令中的值为 700H,即 2K 程序存储器
HT49R30A-1/ HT49C30-1/ HT49C30L 单片机中最后一页存储器的起始地址,
而表格指针的初始值则为 06H,这可保证从数据表格读取的第一笔数据位于程
序存储器地址 706H 即最后一页起始地址后的第六个地址。值得注意的是,假
如“TABRDC [m]”指令被使用,则表格指针指向当前页。在这个例子中,表
格数据的高字节等于零,而当“TABRDL [m]”指令被执行时,此值将会自动
的被传送到 TBLH 寄存器。
tempreg1 db ? ; temporary register #1
tempreg2 db ? ; temporary register #2
:
:
mov a,06h ; initialize table pointer – note that this address
; is referenced
mov tblp,a ; to the last page or present page
:
:
tabrdl tempreg1 ; transfers value in table referenced by table pointer
; to tempreg1
; data at prog. memory address 706H transferred to
; tempreg1 and TBLH
dec tblp ; reduce value of table pointer by one
tabrdl tempreg2 ; transfers value in table referenced by table pointer
; to tempreg2
; data at prog. memory address 705H transferred to
; tempreg2 and TBLH
; in this example the data ″1A″ is transferred to
; tempreg1 and data ″0F″ to register tempreg2
; the value ˝0˝ will be transferred to the high byte
; register TBLH
org 700h ; sets initial address of last page (for HT49R30A-1)
dc 00Ah, 00Bh, 00Ch, 00Dh, 00Eh, 00Fh, 01Ah, 01Bh
:
:
34
第一章 硬件架构
对于芯片 HT49RU80/HT49CU80 ,它们有两个表格指针寄存器 TBLP 和 TBHP ,
可以从中获取表格地址低字节和表格地址高字节,必须事先设定。不同于仅使
用表格地址低字节 TBLP 的芯片,增加的 TBHP 寄存器允许在任何地址定义表
格,并且允许连续直接访问任何地址任何页的表格数据。这类芯片中,当设定
了低字节表格指针和高字节表格指针后,就可以使用指令“TABRDC [m] ”获
取任何程序存储器地址的表格数据,或者使用指令“TAB R DL [ m ] ”获取最后
页的表格数据。无论使用何种指令,程序存储器中的低字节表格数据都会被送
往用户定义的数据寄存器[m] 中。程序存储器中高字节表格数据会被送往 TBLH
特殊寄存器。高字节中未使用的位将被读取为零。
下图是 HT49RU80/HT49CU80 的查表寻址/ 数据流程图:
T B H P
T B L P
H i g h b y t e o f t a b l e c o n t e n t s
P r o g r a m
M e m o r y
T B L H S p e c i f i e d b y [ m ]
L o w b y t e o f t a b l e c o n t e n t s
以下范例说明 HT49RU80/HT49CU80 如何定义表格指针、如何查表。这个例
子使用的表格数据用 ORG 伪指令储存在存储器中。在此 ORG 伪指令中的值
为 000H ,这是相对于 Bank 1 起始地址而言,绝对地址是“2000H ”。这里高字
节表格指针是 20H ,低字节表格指针的初值则为 05H 。这可以保证从数据表格
读取的第一笔数据位于程序存储器地址“2005H ”,即 ORG 伪指令定义地址后
五个地址。执行“TABRDC [m]”指令,表格数据低字节“FFH ”被送往指定
的“temp ”寄存器,而表格数据高字节“55H ”将会被传送到 TBLH 寄存器。
include HT49RU80.inc
:
:
data .section ‘data’
temp db ?
:
:
rombank 0 codesec0 ; Bank 0 definition
35
LCD 型单片机使用手册
rombank 1 codesec1 ; Bank 1 definition
:
:
codesec0 .section at 0 ‘code’
jmp start
:
org 010h
start:
:
:
mov a,020h ; setup table high byte address
mov tbhp,a
mov a,005h ; setup table low byte address
mov tblp,a ; table pointer address is now 2005H
tabrdc temp ; read table data from PC address 2005H
nop ; FFH will be placed in temp register
; and 55H will be placed in the TBLH
; register
codesec1 .section at 000h ‘code’ ; Bank 1 code located here
org 0000h ; this defines the offset from the
; start address of Bank 1 which is
; 2000H
dc 000AAh, 011BBh, 022CCh, 033DDh, 044EEh, 055FFh
:
:
因为 TBLH 寄存器是只读寄存器,不能重新储存,若主程序和中断服务程序都
使用表格读取指令,应该注意它的保护。使用表格读取指令,中断服务程序可
能会改变 TBLH 的值,若随后在主程序中再次使用这个值,则会发生错误。因
此建议避免同时使用表格读取指令。然而在某些情况下,如果同时使用表格读
取指令是不可避免的,则在执行任何主程序的表格读取指令前,中断应该先除
能,另外要注意的是所有与表格相关的指令,都需要两个指令周期去完成操作。
除 HT49RU80/HT49CU80
指令
TABRDC [m] PC12 PC11 PC10 PC9 PC8 @7 @6 @5 @4 @3 @2 @1 @0
TABRDL [m] 1 1 1 1 1 @7 @6 @5 @4 @3 @2 @1 @0
b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
表格地址
36
第一章 硬件架构
HT49RU80/HT49CU80
TABRDC [m] TBHP TBHP TBHP TBHP TBHP TBHP @7 @6 @5 @4 @3 @2 @1 @0
TABRDL [m] 1 1 1 1 1 1 @7 @6 @5 @4 @3 @2 @1 @0
注意: 1. PC12 ~ PC8 :当前程序计数器位
数据存储器
数据存储器是内容可更改的 8 位 RAM 内部存储器,用来储存临时数据,且分
为三部份。第一部份是特殊功能寄存器,这些寄存器有固定的地址且与单片机
的正确操作密切相关。大多数特殊功能寄存器都可在程序控制下直接读取和写
入,但有些被加以保护而不对用户开放。第二部份数据存储器是做一般用途使
用,都可在程序控制下进行读取和写入。第三部分为 LCD 存储器。数据存储
器的这个特殊区域直接映射到 LCD 显示器,写入这部分存储器的数据将直接
影响显示的数据。LCD 存储器区和通用数据存储器区的地址重叠,可以通过
设定正确的存储区指针值,对这两个区域进行切换。
指令
2. @7~@0:是表格指针 TBLP 位
3. 对于 HT49RU80/HT49CU80 ,表格地址是 14 位,从 b13~b0。
4. 对于 HT49R70A-1/HT49C70-1/HT49C70L,表格地址是 13 位,从 b12~b0。
5 对于 HT49R50A-1/HT49C50-1/HT49C50L,表格地址是 12 位,从 b11~b0。
6. 对于 HT49R30A-1/HT49C30-1/HT49C30L,表格地址是 11 位,从 b10~b0。
b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
表格地址
结构
专用和通用数据存储器位于连续的地址。全部 RAM 为 8 位宽度,但存储器长
度因所选择的单片机而不同。所有芯片的数据存储器的起始地址都是 00H 。常
见的寄存器,如 ACC 和 PCL 等,全都有相同的数据存储器地址。LCD 数据
存储器对应到数据存储器的存储区 1 ,然而只有较低四位可使用。如果通过程
序读取高四位的值,将会返回“0 ”。所有芯片的 LCD 数据存储器的起始地址
为 40H 。由于 LCD 数据存储器位于存储区 1 ,所以为了进入这个区域,存储
区指针必须先设定为 01H 。要注意的是,在上电后,数据存储器的内容,包括
37
LCD 型单片机使用手册
LCD 数据存储器,是未知的,因此程序设计者必须对数据存储器进行适当的
初始化。
0 0 H
S p e c i a l
S p e c i a l P u r p o s e
D a t a M e m o r y
G e n e r a l P u r p o s e
D a t a M e m o r y
C a p a c i t y i s
D e v i c e D e p e n d e n t
1 F H / 5 F H
2 0 H / 6 0 H
7 F H / F F H
H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L
H T 4 9 R 5 0 A - 1 / H T 4 9 C 5 0 - 1 / H T 4 9 C 5 0 L
H T 4 9 R 7 0 A - 1 / H T 4 9 C 7 0 - 1 / H T 4 9 C 7 0 L
B a n k 0
B a n k 1
4 0 H
L C D M e m o r y
C a p a c i t y i s
D e v i c e D e p e n d e n t
P u r p o s e
M e m o r y
B a n k 0
G e n e r a l
P u r p o s e
M e m o r y
注意: 除了少数专用的位,大部份数据存储器的位都可以直接使用“SET [m].i”和“ CLR [m].i”
加以操作。也可以通过间接寻址指针寄存器 MP0 和 MP1 对数据存储器进行存取。
D a t a
D a t a
0 0 H
3 F H
4 0 H
F F H
B a n k 0
B a n k 1
B a n k 2
B a n k 3
H T 4 9 R U 8 0 / H T 4 9 C U 8 0
B a n k 1
L C D
M e m o r y
B a n k 2 , 3
G e n e r a l P u r p o s e
D a t a M e m o r y
通用数据存储器
所有的单片机程序需要一个读/ 写的存储区,让临时数据可以被储存和再使用。
该 RAM 区域就是通用数据存储器。这个数据存储区可让使用者进行读取和写
入的操作。使用“SET [m].i ”和“CLR [m].i ”指令可对个别的位做置位或复
位的操作,方便用户在数据存储器内进行位操作。而对于
HT49RU80/HT49CU80 而言,通用数据存储器位于存储区 0 、存储区 2 和存储
区 3 。在对通用数据存储器进行存取操作之前,必须先正确的设定存储区指针
的值。当存储区指针设定为 01H 时,,将对 LCD 存储器进行存取。存储区 1 、
存储区 2 或存储区 3 必须使用间接寻址指针 MP1 和间接寻址寄存器 IAR1 进
行间接存取。任何直接寻址或使用间接寻址指针 MP0 和间接寻址缓存器 IAR0
进行的间接寻址,只会在存储区 0 存取数据。
以下是 LCD 型单片机通用数据存储器的详细结构图:
38
第一章 硬件架构
H T 4 9 R 3 0 A - 1
2 0 H
H T 4 9 C 3 0 - 1
H T 4 9 C 3 0 L
H T 4 9 R 5 0 A - 1
H T 4 9 C 5 0 - 1
H T 4 9 C 5 0 L
2 0 H
H T 4 9 R 7 0 A - 1
2 0 H
H T 4 9 C 7 0 - 1
H T 4 9 C 7 0 L
H T 4 9 R U 8 0
H T 4 9 C U 8 0
4 0 H
F F H
6 0 H
B a n k 0
F F H
B a n k 0
F F H
B a n k 0
B a n k 2
5 7 6 B y t e s
B a n k 3
B a n k 0
8 0 H
F F H
9 6 B y t e s 1 6 0 B y t e s 2 2 4 B y t e s
: U n u s e d , r e a d a s " 0 0 "
注意:HT49RU80/HT49CU80 中,通用数据存储器的 576 个字节储存在三个独立的存储区,即存
储区 0 、存储区 2 和存储区 3 。 在读取或写入数据到通用数据存储器之前,必须先确认是
否正确的设定了存储区指针,选择了正确的数据存储器区。存储区 1 、存储区 2 和存储区
3 必须使用间接寻址指针 MP1 和间接寻址寄存器 IAR1 进行间接存取。
专用数据存储器
这个区域的数据存储器是存放特殊寄存器的,这些寄存器和单片机的正确操作
密切相关。大多数的寄存器可进行读取和写入,只有一些是被保护而只能读取
的,相关细节的介绍请参看有关特殊功能寄存器的部份。要注意的是,任何读
取指令对存储器中未使用的地址进行读取将得到“00H ”的值。
以下是 LCD 型单片机中,专用数据存储器的详细结构图:
39
LCD 型单片机使用手册
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
H T 4 9 R 3 0 A - 1
H T 4 9 C 3 0 - 1
H T 4 9 C 3 0 L
I A R 0
M P 0
I A R 1
M P 1
B P
A C C
P C L
T B L P
T B L H
R T C C
S T A T U S
I N T C 0
T M R
T M R C
P A
P B
I N T C 1
: U n u s e d , r
H T 4 9 R 5 0 A - 1
H T 4 9 C 5 0 - 1
H T 4 9 C 5 0 L
I A R 0
M P 0
I A R 1
M P 1
B P
A C C
P C L
T B L P
T B L H
R T C C
S T A T U S
I N T C 0
T M R 0
T M R 0 C
T M R 1
T M R 1 C
P A
P B
P C
I N T C 1
e a d a s " 0 0 "
H T 4 9 R 7 0 A - 1
H T 4 9 C 7 0 - 1
H T 4 9 C 7 0 L
I A R 0
M P 0
I A R 1
M P 1
B P
A C C
P C L
T B L P
T B L H
R T C C
S T A T U S
I N T C 0
T M R 0
T M R 0 C
T M R 1 H
T M R 1 L
T M R 1 C
P A
P B
P C
I N T C 1
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
2 0 H
2 1 H
2 2 H
2 3 H
2 4 H
2 5 H
2 6 H
2 7 H
2 8 H
2 9 H
2 A H
2 B H
2 C H
2 D H
3 F H
H T 4 9 R U 8 0
H T 4 9 C U 8 0
I A R 0
M P 0
I A R 1
M P 1
B P
A C C
P C L
T B L P
T B L H
R T C C
S T A T U S
I N T C 0
T M R 0
T M R 0 C
T M R 1 H
T M R 1 L
T M R 1 C
P A
P B
P C
P D
I N T C 1
T B H P
T M R 2 H
T M R 2 L
T M R 2 C
M F I C
U S R
U C R 1
U C R 2
T X R / R X R
B R G
LCD 存储器
LCD 上显示的数据也是储存在一块可充分存取的数据存储器中。通过写入此
RAM 区域,LCD 的显示输出可以直接由应用程序控制。LCD 存储器位于存储
区 1,与通用数据存储器的地址形成映射,因此在存取 LCD 存储器之前,必
40
第一章 硬件架构
须先确定存储区指针是否被设为 01H 。LCD 存储器必须使用间接寻址指针 MP1
和间接寻址寄存器 IAR1 进行间接存取。当存储区指针设为存储区 1 时,是对
LCD 数据存储器进行存取,如果地址值小于 40H ,则是对存储区 0 的通用数
据存储器进行操作。同样的,如果存储区指针设为存储区 1 ,而读取到的地址
高于最大地址,则返回 00H 。
以下是 LCD 型单片机 LCD 存储器的详细结构图:
H T 4 9 R 3 0 A - 1
H T 4 9 C 3 0 - 1
H T 4 9 C 3 0 L
4 0 H
L C D M e m o r y
5 2 H
B a n k 1
4 0 H
6 0 H
H T 4 9 R 5 0 A - 1
H T 4 9 C 5 0 - 1
H T 4 9 C 5 0 L
L C D M e m o r y
B a n k 1
H T 4 9 R 7 0 A - 1
H T 4 9 C 7 0 - 1
H T 4 9 C 7 0 L
4 0 H
L C D M e m o r y
6 8 H
B a n k 1
4 0 H
6 F H
H T 4 9 R U 8 0
H T 4 9 C U 8 0
L C D M e m o r y
B a n k 1
41
LCD 型单片机使用手册
特殊功能寄存器
为了确保单片机能成功的操作,数据存储器中设置了一些内部寄存器。这些寄
存器确保内部功能(如定时器、中断等)和外部功能(如输入/输出数据控制)的正
确操作。在数据存储器中,这些寄存器以 00H 作为起始地址。在特殊功能寄
存器存储空间和通用数据存储器的起始地址之间,有一些未定义的数据存储
器,被保留用来做未来的扩充,若从这些地址读取数据将返回 00H 值。
间接寻址寄存器 – IAR0, IAR1
间接寻址的方法准许使用间接寻址指针做数据操作,以取代定义实际存储器地
址的直接存储器寻址方式。在间接寻址寄存器上的任何动作,将对间接寻址指
针(MP) 所指定的存储器地址产生对应的读/ 写操作。所有的 LCD 系列单片机均
含有两个间接寻址寄存器(IAR0 和 IAR1) 和两个间接寻址指针(MP0 和 MP1) 。
要注意的是,这些间接寻址寄存器并不是实际存在的,直接读取 IAR 寄存器
将返回 00H 的结果,而直接写入此寄存器则不做任何操作。
间接寻址指针 – MP0, MP1
所有的 LCD 系列单片机均含有两个间接寻址指针,即 MP0 和 MP1 。由于这
些指针在数据存储器中能象普通的寄存器一样被写入和操作,因此提供了一个
寻址和数据跟踪的有效方法。当对间接寻址寄存器进行任何操作时,单片机指
向的实际地址是由间接寻址指针所指定的地址。当存储区指针是设为从存储区
0 存取数据时,间接寻址指针 MP0 和 MP1 都可以用来从通用数据存储器存储
区 0 存取数据。不过请注意,当存储区指针设为从存储区 1 或在
HT49RU80/HT49CU80 设为从存储区 2 或存储区 3 ,即 LCD 数据存储器,存
取数据时,间接寻址指针 MP0 只能从存储区 0 存取数据,而只有间接寻址指
针 MP1 可以从存储区 1 ,存储区 2 或存储区 3 存取数据。
注意: 对 HT49R30A-1/HT49C30-1/HT49C30L 而言,间接寻址指针的第 7 位没有作用。可是,必
须注意当间接寻址指针被读取时,其值为 1 。
42
第一章 硬件架构
以下的例子说明如何清除一个具 4 个 RAM 地址的区块,它们已事先被定义成
地址 adres1 到 adres4
data .section ‘data’
adres1 db ?
adres2 db ?
adres3 db ?
adres4 db ?
block db ?
code .section at 0 ‘code’
org 00h
start:
mov a,04h ; setup size of block
mov block,a
mov a,offset adres1 ; Accumulator loaded with first RAM address
mov mp0,a ; setup Memory Pointer with first RAM address
loop:
clr IAR0 ; clear the data at address defined by MP0
inc mp0 ; increment Memory Pointer
sdz block ; check if last memory location has been cleared
jmp loop
continue:
在上面的例子中有一值得注意,即并没有确定 RAM 地址。
存储区指针 − BP
请注意,在数据存储器区域中,通用数据存储器和 LCD 存储器具有相同的数
据存储器地址。因此,当使用指令去存取 LCD 存储器或通用数据存储器的数
据时,必须先确定所选的区域是正确的。除了 HT49RU80/HT49CU80 ,其它单
片机的通用数据存储器位于存储区 0 ,而 HT49RU80/HT49CU80 的通用数据存
储器分为三个存储区块(存储区 0 、存储区 2 和存储区 3 )。对于所有单片机来
说,LCD 存储器均位于存储区 1 ,可以使用存储区指针 BP 来选择正确的数据
存储器区。如果要对存储区 1 ,存储区 2 或存储区 3 进行数据存取,存储区指
针 BP 的值必须先设置为“01H ”,“02H ”或“03H ”。请注意,这三个存储区
必须使用间接寻址指针 MP1 和间接寻址寄存器 IAR1 进行间接存取。任何的
直接寻址或使用 MP0 和 IAR0 的间接寻址,只会在存储区 0 存取数据。除了
在暂停模式下的 WDT 溢出复位,不会改变通用数据存储器的存储区号以外,
43
LCD 型单片机使用手册
其他情况下复位后,通用数据存储器都会初始化到存储区 0 。请注意,特殊功
能数据存储器不受存储区的影响,也就是说,不论是在存储区 0 、存储区 1 、
存储区 2 或存储区 3 ,都能对特殊功能寄存器进行读写操作。
对于 HT49RU80/HT49CU80 ,它的程序存储器分为两个 8K 的 Bank ,即 Bank0
和 Bank1 。存储区指针的第 5 位用来选择 Bank 。尽管存储区指针寄存器某些
位被用来指示存储区号,但该寄存器的 8 个位都可以使用。没有用到的那些位
复位为“0 ”。
b 7 b 0
B P 5 X X X B P 1 B P 0
X X
B a n k P o i n t e r
D a t a M e m o r y
B P 0
B P 1
0
0
1
1
N o t u s e d , m u s t b e r e s e t t o " 0 "
P r o g r a m M e m o r y
0 : B a n k 0 ( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
1 : B a n k 1 ( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
N o t u s e d , m u s t b e r e s e t t o " 0 "
B a n k 0
0
B a n k 1 L C D M e m o r y
1
B a n k 2 ( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
0
B a n k 3 ( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
1
累加器 – ACC
对任何单片机来说,累加器是相当重要的且与 ALU 所完成的运算有密切关系,
所有 ALU 得到的运算结果都会暂时储存在 ACC 累加器里。若没有累加器,
ALU 必须在每次进行如加法、减法和移位的运算时,将结果写入到数据存储
器,这样会造成程序编写和时间的负担。另外数据传送也常常牵涉到累加器的
临时储存功能,例如在一使用者定义的寄存器和另一个寄存器之间传送数据
时,由于两寄存器之间不能直接传送数据,因此必须通过累加器来传送数据。
程序计数器低字节寄存器 – PCL
为了提供额外的程序控制功能,程序计数器较低字节设置在数据存储器的特殊
功能区域内,程序员可对此寄存器进行操作,很容易的直接跳转到其它程序地
址。直接给 PCL 寄存器赋值将导致程序直接跳转到程序存储器的某一地址,
然而由于寄存器只有 8 位的长度,因此只允许在本页的程序存储器范围内进行
跳转,而当使用这种运算时,要注意会插入一个空指令周期。
44
第一章 硬件架构
查表寄存器 – TBLP,TBHP ,TBLH
这些特殊功能寄存器对储存在程序存储器中的表格进行操作。TBLP 为表格指
针的低字节,指向表格数据的地址。它的值必须在任何表格读取指令执行前加
以设定,由于它的值可以被如 INC 或 DEC 的指令所改变,这就提供了一种简
单的方法对表格数据进行读取。对于 HT49RU80/HT49CU80 ,还有一个表格指
针高字节 TBHP 。表格读取数据指令执行之后,表格数据高字节存储在 TBLH
中。其中要注意的是,表格数据低字节会被传送到使用者指定地址。
实时时钟控制寄存器 − RTCC
RTC C 寄存器控制数个内部功能,实时时钟(RTC)中断就是其中一个,它的
功能是提供一有周期固定的内部中断信号。RTC 中断的驱动时钟来自内部时
钟源,即 f
寄存器的第 0~2 位,即 RT2~RT0,用以确定分频系数。直接将值写入此 RTCC
寄存器位,可产生 2
荡器的快速启动功能。此振荡器具有固定的频率 32768Hz,通过设置第 4 位(即
QOSC 位)为“ 0”,可以以更快的速度启动。上电后,此位的值将被设置为“0”,
然而这样会加大功耗,约 2 秒后 QOSC 位应该被设置为“1”,以降低功耗。
低电压检测器是 RT CC 寄存器可以控制的另一个内部功能。通过把第 3 位(即
LVDC 位)置为“1”可以使能该功能。当电源供应的电压低于 DC 特性所标示
的 VLVD 值时,第 5 位(即 LVDO 位,此位为只读)将被设置为“1”。如 果 电 源
供应的电压高于这个值,则这个位会保持“0”。请注意,RTCC 寄存器的第 6
位和第 7 位未定义。
。它被进一步分频以获得更长的时间值,并由此产生中断信号。RTCC
S
8
/fS到 215/fS的溢出时间值。RTCC 寄存器也可控制 RTC 振
45
LCD 型单片机使用手册
b 7 b 0
L V D O
Q O S C L V D C
R T 2 R T 1 R T 0
R e a l T i m e C l o c k C o n t r o l R e g i s t e r R T C C
R T C I n t e r r u p t P e r i o d
R T 2
0
0
0
0
1
1
1
1
L o w V o l t a g e D e t e c t o r C o n t r o l
1 : e n a b l e
0 : d i s a b l e
R T C O s c i l l a t o r Q u i c k - s t a r t
1 : d i s a b l e
0 : e n a b l e
L o w V o l t a g e D e t e c t o r O u t p u t
1 : l o w v o l t a g e d e t e c t e d
0 : n o r m a l v o l t a g e
N o t i m p l e m e n t e d , r e a d a s " 0 "
R T 1
R T 0
P e r i o d
8
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
2
29/ f S
2
2
2
2
2
2
/ f
S
1 0
/ f S
1 1
/ f
S
1 2
/ f S
1 3
/ f
S
1 4
/ f
S
1 5
/ f S
状态寄存器 – STATUS
这 8 位寄存器(0AH) 包含零标志位(Z) 、进位标志位(C) 、辅助进位标志位(AC) 、
溢出标志位(OV) 、暂停标志位(PDF) 和看门狗溢出标志位(TO) 。它同时记录状
态数据和控制运算顺序。
除了 TO 和 PDF 标志位外,状态寄存器中的位像其它大部份寄存器一样可以
被改变,但任何数据写入到状态寄存器将不会改变 TO 或 PDF 标志位。另外,
执行不同的指令后,与状态寄存器有关的运算可能会得到不同的结果。TO 标
志位只会受系统上电、看门狗溢出、或执行“CLR WDT ”或“HALT ”指令影
响。PDF 标志位只会受执行“HALT”或“CLR WDT”指令或系统上电影响。
Z 、OV 、AC 和 C 标志位通常反映最近运算的状态
• 当加法运算的结果产生进位,或减法运算的结果没有产生借位时,则 C 被
置位,否则 C 被清零,同时 C 也会被带进位/ 借位的移位指令所影响。
• 当低半字节加法运算的结果产生进位,或高半字节减法运算的结果没有产
生借位时,AC 被置位,否则 AC 被清零。
• 当算术或逻辑运算结果是零时,Z 被置位,否则 Z 被清零。
• 当运算结果高两位的进位状态异或结果为 1 时,OV 被置位,否则 OV 被清
零。
46
第一章 硬件架构
• 系统上电或执行“CLR WDT ”指令会清零 PDF ,而执行“ HALT”指令则
会置位 PDF 。
• 系统上电或执行“CLR WDT ”或“ HALT”指令会清零 TO ,而当 WDT 溢
出则会置位 TO 。
另外当进入一个中断程序或执行子程序调用时,状态寄存器不会自动压入到堆
栈保存。假如状态寄存器的内容是重要的且子程序可能改变状态寄存器的话,
则需谨慎的去做正确的储存。
b 7 b 0
T O P D F O V Z A C C
S T A T U S R e g i s t e r
A r i t h m e t i c / L o g i c O p e r a t i o n F l a g s
C a r r y f l a g
A u x i l i a r y c a r r y f l a g
Z e r o f l a g
O v e r f l o w f l a g
S y s t e m M a n a g e m e n t F l a g s
P o w e r d o w n f l a g
W a t c h d o g t i m e - o u t f l a g
N o t i m p l e m e n t e d , r e a d a s " 0 "
中断控制寄存器 – INTC0, INTC1 ,MFIC
8 位的 INTC0 、INTC1 和 MFIC 寄存器用来控制外部和内部中断的动作。通过
使用标准的位操作指令来设定这寄存器的位的值,外部中断和内部中断的使能
和除能功能可分别被控制。寄存器中主中断位(EMI) 控制所有中断的使能/除
能,用来设定所有中断使能位的开或关。当一个中断程序被响应时,就会自动
屏蔽其它中断,EMI 位将被清零,而执行“RETI ”指令则会置位 EMI 位。
注意: 若遇到在当前中断服务程序中要再响应其它的中断程序时,可以在进入该中断服务程序
后,在程序中用手动的方式将 EMI 置为“1 ”。
定时/ 计数寄存器
该系列的单片机集成了一个,二个或三个8 位或16 位的定时/ 计数器,这取决于您
选择的型号。对于具有一个8 位定时器的HT49R30A-1/HT49C30-1/HT49C30L
而言,寄存器TMR 是8 位定时数值存放的位置。对应的控制寄存器TMRC ,含
有此定时/ 计数器的设定信息。对于具有两个8 位定时器的
HT49R50A-1/HT49C50-1/HT49C50
L而言,分别是TMR0和TMR1存放8位定时
47
LCD 型单片机使用手册
数据,而控制寄存器TMR0C 和TMR1C 分别含有定时/ 计数器的设定信息。对于
HT49R70A-1/HT49C70-1/HT49C70L 来说,具有一个8 位和一个16 位的定时/ 计
数器,定时数据分别存放在TMR0 和TMR1L/TMR1H, 相应的控制寄存器分别为
TMR0C 和TMR1C ,含有定时/ 计数器的设定信息。 HT49RU80/HT49CU80 具有
一个8 位和两个16 位的定时/ 计数器,定时数据分别存放在TMR0 ,
TMR1L/TMR1H和 TMR2L/TMR2H,它们相应的控制寄存器分别位 TMR0C,
TMR1C和 TMR2C。请注意,定时器寄存器可以预先写入固定的数据,以允许
设定不同的时间间隔。
输入/ 输出口寄存器
在特殊功能寄存器中,输入/ 输出寄存器很重要。所有的输入/ 输出端口都有相
对应的寄存器,且被标示为 PA 、PB 和 PC 等等。如数据存储器结构图中所示,
这些寄存器映射到数据存储器的特定地址,用以传送端口上的输入/ 输出数据。
在 LCD 型 MCU 系列中,端口 A 和端口 C 是输入/ 输出端口,其对应的寄存器
PA 和 PC 可以传送输入和输出的数据,而端口 B 只是输入端口,其对应的寄
存器 PB 只能读取数据。它们的一大灵活特性是可以使用“SET [m].i ”和“CLR
[m].i ”指令直接设置寄存器的某一位。
UART 寄存器 – USR,UCR1,UCR2,TXR/RXR,BRG
HT49RU80/HT49CU80 具有一个内部 UART 功能,有 5 个相关的寄存器。 USR
是 UART 的状态寄存器,UCR1 和 UCR2 是控制寄存器。通过串发送或接收的
数据存放在 TXR/RXR 寄存器中,而波特率的配置是通过寄存器 BRG 来实现
的。
输入/ 输出口
盛群单片机的输入/输出端口具有很大的灵活性。尽管端口 B 固定为输入和在
HT49RU80/HT49CU80 系列端口 D 固定为输出,但端口 A 和端口 C 的所有引
脚都可以设置为输入或输出。再加上其它选项,如 COMS 或 NOMS 输出型态、
上拉电阻和唤醒功能等,使得此类单片机在广泛应用上都能符合开发的要求。
依据所选单片机及封装类别的不同,LCD 型单片机提供从 14 到 31 个不等双
向输入/输出口。这些输入/输出口为 PA 和 PC,而 PB 则为纯输入口,PD 为纯
输出口。它们在数据存储器的对应指定地址如表所示。PA 和 PC 输入/输出口
48
第一章 硬件架构
可以作为输入及输出之用,然而,必须要注意,与其它系列单片机不同的是,
在 LCD 型单片机中没有端口控制寄存器。要设定某个输入/ 输出引脚为输入,
必须先输出高电平以取代 NMOS 晶体管的高阻抗状态,这样才能使该引脚作
为输入。请注意,只有先将引脚配置为 NMOS 输出引脚,这样的动作才会有
效。如果掩膜选项已经设置 CMOS 输出,则不能再作为输入使用。
作为输入操作时,输入/ 输出引脚不是锁存的,也就是输入数据必须在指令
“MOV A, [m] ”的 T2 上升沿准备好,m 表示端口地址。对于输出操作,所有
数据是锁存的,而且持续到输出锁存被重写。请注意,CMOS 或 NMOS 输出
类型选项只有 PA 的引脚 PA 0~ PA3 以及 PC 的引脚 PC0~PC3 和 PC4~PC7 才有。
CMOS 或 NMOS 输出类型选项同时作用于四个引脚,引脚不能单独的选择。
PB 只是输入口,没有输出功能。PB 的所有引脚都连接内部上拉电阻。没有与
PB 相关的掩膜选项。在 HT49RU80/HT49CU80 中附加的端口 PD 只能作为输
出,可以通过掩膜选项将它设为 CMOS 输出或 LCD SEGMENT 输出。
上拉电阻
很多产品应用在端口处于输入状态时需要外加一个上拉电阻来实现上拉的功
能。为了免去这个外加的电阻,当引脚规划为 NMOS 型态时,可由内部连接
到一上拉电阻,这些上拉电阻可通过掩膜选项来加以选择,它用一个 PMOS
晶体管来实现。上拉选项只对某些输入/ 输出引脚有效。对于 LCD 系列的单片
机,不能对单独的引脚进行上拉选项的选择,对于引脚 PA0 ~PA 3 、PC0~PC3
或 PC4~PC7 ,每次只能对四个引脚同时作用,而对于引脚 PA 4~ PA7 和 PB 输
入口的所有引脚,则一直连接内部上拉电阻。
PA 口的唤醒
本系列的单片机都具有暂停功能,使得单片机进入暂停模式以节省功耗,此功
能对于电池及低功率应用是很重要的。唤醒单片机有很多种方法,其中之一就
是使 PA 口其中的一只引脚从高电平转为低电平。当使用暂停指令“HALT”
迫使单片机进入暂停状态以后,单片机将保持闲置即低功率状态,直到 PA 口
上被选为唤醒输入的引脚电平发生下降沿跳变。这个功能特别适合于通过外部
开关来唤醒的应用。值得注意的是 PA 口的每个引脚都可单独的选择具有唤醒
的功能。
49
LCD 型单片机使用手册
引脚共用功能
引脚的共用功能可以增加单片机的灵活程度。有限的引脚个数会严重的限制设
计者,但是引脚的多功能特性,可以解决很多此类问题。多功能输入/ 输出引
脚的功能选择,有些是由掩膜选项进行设定,有些则是在应用程序中进行控制。
→ 蜂鸣器
蜂鸣器引脚 BZ 及
脚,则必须选择正确的掩膜选项。
→ PFD 输出
PFD 引脚与输入/ 输出引脚 PA 3 共用。如果定义为 PFD 输出,则必须选择正确
的掩膜选项。
→ 外部中断输入
外部中断引脚
断输入,这些引脚可当作一般输入引脚使用,此时 INTC0 寄存器中的外部中
断使能位必须除能。
→ 外部定时器时钟输入
每款 LCD 系列的单片机都包含一个,两个或三个定时器,定时器的个数取决
于选用的型号。每个定时器都有一个外部输入引脚,对于具有一个定时器的单
片机,称为 TMR。对于具有两个定时器的单片机,它们的外部定时器输入引
脚称为 TMR0 和 TMR1。HT49RU80/HT49CU80 有三个定时器,它们的外部定
时器输入引脚分别为 TMR0,TMR1 和 TMR2。对所有只具有一个定时器的单片
机来说,外部输入引脚 TMR 与输入引脚 PB2 共用。而对于具有两个定时器的
单片机,外部输入引脚 TMR0 和 TMR1 分别与输入引脚 PB2 和 PB3 共用。
HT49RU80/HT49CU80 的三个外部输入引脚分别与 PB2,PB3 和 PB4 共用。要
使这些共用引脚作为定时器输入,必须正确地设置定时器控制寄存器中对应的
控制位。在不需要外部定时器输入的场合,这些外部定时器引脚可以当作一般
输入引脚使用。对于此种应用,TMRC 寄存器中的定时器模式位必须选为定时
器模式(内部时钟源),以避免输入引脚与定时器操作的冲突。
BZ
INT0
与输入/ 输出引脚 PA0 及 PA 1 共用。假如定义为蜂鸣器引
和
与输入引脚 PB0 和 PB1 共用。如果不需要外部中
INT1
→ UART 引脚
HT49RU80/HT49CU80 具有一个内部的异步串行通信端口,它通过两个引脚与
外部芯片相连,这两个外部引脚 TX 和 RX 分别与引脚 PC0 和 PC1 共享。
50
第一章 硬件架构
→
COM/SEG 输出
COM 和 SEG 引脚用来直接驱动 LCD 上 segment 和 common 引脚。每款单片
机均有一个引脚即可用作 segment 驱动也可用作 common 驱动,根据选用的型
号,这些引脚称为 COM3/SEG18 、 COM3/SEG32 、 COM3/SEG40 和
COM3/SEG47 。由占空比掩膜选项决定这些引脚是作为 common 还是 segment
功能使用。如果选用 1/4 占空比掩膜选项,则该引脚作为 COM3 驱动,如果选
用 1/2 或 1/3 占空比掩膜选项,则选择作为 SEG 功能使用。在
HT49RU80/HT49CU80 中,有一个掩膜选项可以把 PD 口设为 SEG 输出或标
准的 CMOS 输出。
V
D D
D a t a B u s
W r i t e D a t a R e g i s t e r
C h i p R e s e t
P F D ( P A 3 o n l y )
B Z ( P A 1 o n l y )
B Z ( P A 0 o n l y )
D a t a B i t
D
C K
P u l l - H i g h O p t i o n
Q
Q
S
P F D o r B Z O p t i o n
C M O S / N M O S
O p t i o n
M
U
X
W e a k
P u l l - u p
P A 0 / B Z
P A 1 / B Z
P A 2
P A 3 / P F D
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
W a k e - u p O p t i o n
PA0~PA3 输入 /输出口
V
D D
W e a k
P u l l - u p
P A 4 ~ P A 7
D a t a B u s
W r i t e D a t a R e g i s t e r
C h i p R e s e t
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
D a t a B i t
D
C K
S
Q
Q
W a k e - u p O p t i o n
PA4~PA7 输入 /输出口
51
LCD 型单片机使用手册
V
D D
W e a k
P u l l - u p
P B 0 / I N T 0
P B 1 / I N T 1
D a t a B u s
R e a d I n p u t
T M R / T M R 0 ( P B 2 o n l y )
T M R 1 ( P B 3 o n l y )
T M R 2 ( P B 4 o n l y )
I N T 0 ( P B 0 o n l y )
I N T 1 ( P B 1 o n l y )
P B 2 / T M R ( H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L )
P B 2 / T M R 0 ( E x c e p t H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L )
P B 3 / T M R 1 ( E x c e p t H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L )
P B 4 / T M R 2 ( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 )
P B 4 ~ P B 7
D a t a B u s
W r i t e D a t a R e g i s t e r
C h i p R e s e t
R e a d D a t a R e g i s t e r
D a t a B u s
W r i t e D a t a R e g i s t e r
C h i p R e s e t
F o r m U A R T T X
U A R T E N & T X E N
PB输入口
D a t a B i t
D
C K
Q
Q
S
P u l l - H i g h O p t i o n
C M O S / N M O S
PC 输入 /输出口
D a t a B i t
Q
D
C K
Q
S
M
U
X
O p t i o n
P u l l - H i g h
O p t i o n
C M O S / N M O S
O p t i o n
V
D D
W e a k
P u l l - u p
V
W e a k
P u l l - u p
P C 0 ~ P C 7
D D
P C 0 / T X
R e a d D a t a R e g i s t e r
PC0/TX 输入 / 输出口- HT49RU80/HT49CU80
52
第一章 硬件架构
V
D D
D a t a B i t
D
C K
S
P u l l - H i g h
O p t i o n
C M O S / N M O S
O p t i o n
Q
Q
V
D D
P D 0 / S E G 4 0
P D 1 / S E G 4 1
P D 2 / S E G 4 2
P D 3 / S E G 4 3
P D 4 / S E G 4 4
P D 5 / S E G 4 5
P D 6 / S E G 4 6
W e a k
P u l l - u p
P C 1 / R X
D a t a B u s
W r i t e D a t a R e g i s t e r
C h i p R e s e t
U A R T E N & R X E N
R e a d D a t a R e g i s t e r
T o U A R T R X
PC1/RX 输入 /输出口- HT49RU80/HT49CU80
W r i t e D a t a R e g i s t e r
D a t a B i t
Q
D
C K
Q
S
D a t a B u s
C h i p R e s e t
PD 输出口-HT49RU80/HT49CU80
编程注意事项
在应用程序中,最先要考虑的是端口的初始化。复位之后,输入/ 输出口寄存
器 PA 和 PC 将被设定为逻辑高。请注意,如果掩膜选项选择为 NMOS 型态,
则 NMOS 晶体管将呈现高阻抗状况,而不是输出逻辑高,以允许引脚作为输
入使用。NMOS 的输出是否能形成逻辑高,要取决于它的外部连接电路以及
上拉选项是否被选择。如果掩膜选项是选择 CMOS 输出,则不会形成高阻抗
状况,因此不能作为输入使用。
当引脚作为输出使用时,可以通过载入一个字节宽度的数据到相应的端口寄存
器 PA 或 PC,或者是使用指令“SET [m].i”和“CLR [m].i”来设定端口寄存
器中个别的位。要注意的是当使用这些位控制指令时,一个读-修改-写的操作
将会发生。单片机必须先读入整个口上的数据,修改个别位的值,然后重新把
这些数据写入到输出端口。在 NMOS 引脚中,要注意一些特殊的状况。如果
单片机将 NMOS 引脚设定为逻辑高,也就是高阻抗状况,但又被外部连接的
电路拉低,则在“SET [m].i”和“CLR [m].i”指令的读取阶段会被读为逻辑
53
LCD 型单片机使用手册
低。在确定写入阶段,这个在读取阶段读作逻辑低的引脚,会因此而错误的设
为逻辑低。因此在使用 NMOS 输出型态的位控制指令时,要特别的谨慎。
T 1 T 2
S y s t e m C l o c k
P o r t D a t a
T 3 T 4
T 1 T 2
T 3 T 4
PA 口有唤醒的额外功能,当芯片在 HALT 状态时有很多方法去唤醒此单片机,
其中之一就是 PA 口任一个引脚电平由高到低的转换,PA 口的一个或多个引脚
都可被设定有这项功能。
液晶显示(LCD) 驱动器
对大多数包含 LCD 的设计应用而言,与较昂贵的以字符为基础的显示方式相
比,用户自定义的显示方式能有效地降低成本。但因为需要有可变增益和时间
的对应信号来驱动此类自定义显示器,因此为了适当的操作此类 LCD 需要有
特殊的考虑。盛群公司的 LCD 系列单片机有内部 LCD 信号产生电路及多种掩
膜选项,可以自动地产生时间与增益可变的信号直接驱动 LCD ,与用户 LCD
的接口连接也相当容易。
LCD 存储器
每款 LCD 系列单片机,都为 LCD 数据提供特殊的数据存储器。这样的数据区
域就是 LCD 存储器。任何写入此处的数据,会自动地被内部 LCD 驱动电路读
取,进而自动地产生所需的 LCD 驱动信号。因此任何写入 LCD 存储器的数据,
会立即映射到连接单片机的 LCD 显示器上。每款 LCD 系列单片机的 LCD 存
储器的起始地址为 40H 。根据所选单片机 LCD 存储器容量的不同,LCD 存储
器的结束地址在 52H 至 6FH 之间。
W r i t e t o p o r t R e a d f r o m p o r t
由于 LCD 数据存储器地址与通用数据存储器地址重迭,因此 LCD 数据存储器
储存在自已的数据存储区块。除了 HT49RU80/HT49CU80 ,其余单片机的通用
数据存储器均储存在存储区 0 。而 HT49RU80/HT49CU80 有三个通用数据存储
器 Bank0 、Bank2 和 Bank3。对于所有的单片机,LCD 数据存储器位于存储区
1。存储区的选择是通过使用存储区指针来完成,它是数据存储器中的一个特
54
第一章 硬件架构
殊功能寄存器,名为 BP。对于 HT49RU80/HT49CU80,当 BP 的最低两位为
二进制的“00”、“10”或“11”时,通用数据存储区才能被读写,LCD 存储
区不会有读写动作发生。对 LCD 存储区操作时,首先要将存储区指针 BP 的
低两位设为二进制的“01H”,以选中存储区 1。此后,可以通过使用间接寻址
指针 MP1 间接寻址来存取 LCD 存储器。存储区 1 被选中后,可以使用 MP1
读取或写入数据到范围为 40H~52H、40H~60H、40H~68H 或 40H~6FH (根据
选取的单片机)的存储器。直接寻址在 LCD 存储器中是不适用的,结果会是存
取存储区 0 的数据。
b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0
4 0 H
4 1 H
S E G 0
S E G 1
b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0
4 0 H
4 1 H
S E G 0
S E G 1
: U n u s e d
R e a d a s " 0 "
6 E H 6 E H
6 F H
( 1 / 2 o r 1 / 3 D u t y )
C O M 1
C O M 2
S E G 4 6
S E G 4 7
C O M 0
6 F H
C O M 3
( 1 / 4 D u t y )
C O M 2
C O M 0
C O M 1
LCD 存储器映射图 − HT49RU80/HT49CU80
以上为 HT49RU80/HT49CU80 LCD 存储器的结构,它具有 48 ×2 、48×3 或 47 ×4
格式的像素驱动能力,LCD 存储器结束地址为 6EH 或 6FH 。
HT49R70A-1/HT49C70-1/HT49C70L 具有 41 ×2,41×3 或 40 ×4 格式的像素驱动
能力,LCD 存储器结束地址为 68H 或 67H。HT49R50A-1/HT49C50-1/HT49C50L
具有 33 ×2 ,33 ×3 或 32 ×4 格式的像素驱动能力,LCD 存储器结束地址为 60H
或 5FH 。HT49R30A-1/ HT49C30-1/HT49C30L 具有 19 ×2 ,19 ×3 或 18 ×4 格式
的像素驱动能力,LCD 存储器结束地址为 52H 或 51H。对 所 有 LCD 型单片机
来说,当选择 1/4 占空比掩膜选项时,会自动地设定成 4-COM 格式,当选择
55
S E G 4 6
S E G 4 7
LCD 型单片机使用手册
1/2 或 1/3 占空比掩膜选项时,会自动地设定成 2-COM 或 3-COM 格式。
注意: 对所有 LCD 型单片机来说,若选择 1/2 或 1/3 占空比掩膜选项,则只提供 3-COM 连接,
且每个 LCD 存储器地址的第 3 位可以做为通用数据存储器使用。而选择 1/4 占空比掩膜
选项时,则提供 4-COM 连接,但是会少一个 segment 连接提供,LCD 存储器的最后地址
不使用且使用者无法存取,如果读取的话,将会返回“00 ”。
LCD 时钟
LCD 时钟由内部时钟源 f S驱动,它由 WDT 振荡器、 RTC 振荡器或 f
由掩膜选项决定。为了适于 LCD 操作,这个 f S内部时钟源通过一个分频器,
提供接近 4kHz 的 LCD 时钟源频率。
fS时钟源 LCD 时钟选择
WDT 振荡器 WDT/22
RTC 振荡器 RTC/23
/4 f
/4 f
~
f
SYS
/4
LCD 时钟频率选择
SYS
2
2
SYS
8
2
/4 提供,
SYS
分频比例的选择根据内部时钟源 f S而定。若时钟源 f S来自 WDT 振荡器,则分
频比例是固定的 f
/22,若时钟源fS来自 RTC 振荡器,分频比例则是固定的 fS /23,
S
若时钟源 f S来自 f S/4,则 LCD 时钟频率范围为 f S/22到 f S/28,由掩膜选项进一
步确定。这些分频比例可以保证 LCD 工作在接近 4kHz 的频率。对于具有 4kHz
的 LCD 时钟频率,单片机的 LCD 驱动电路将会产生 55Hz 到 62Hz 的 LCD 帧
频率。这与 25Hz 到 250Hz 之间的 LCD 操作频率范围是一致的。要注意的是,
若选择的 LCD 时钟频率太高,会产生高于所需的帧频率,引起较高的功耗,
而选择过低的频率又会导致不稳定。因此如果选择 f
/4 作为时钟源,正确的
SYS
选择掩膜选项,获得尽可能接近 4kHz 的 LCD 时频率是非常重要的。
LCD 驱动器输出
LCD 驱动器提供的 COM 和 SEG 输出数目,以及偏压和占空比选项,取决于
选用的单片机和配置选项的选择。下表列出每一款 LCD 型单片机的不同选项。
单片机型号 占空比 驱动数目 偏压 偏压类型
HT49R30A-1
HT49C30-1
1/2 19×2
1/3 19×3
1/4 18×4
1/2 或 1/3 C 或 R 类型
56
第一章 硬件架构
HT49R50A-1
HT49C50-1
HT49R70A-1
HT49C70-1
HT49RU80
HT49CU80
注意: 低电压版的 HT49C30L 、HT49C50L 、HT49C70L 不同于其它单片机,具有固定的 1/2 偏压
和 C 型偏压,但与其它 OTP 版具有相同的占空比和驱动数目选项。
由于 LCD 基本性质的缘故,它们的像素点只能加上 AC 电压,如果加上 DC
电压,将会引起永久性的损害。因此 LCD 显示器的对比度由提供到每个像素
的实际 RMS 电压控制,这个值相当于 COM 引脚上的 RMS 电压值减去 SEG
引脚上的电压值。RMS 电压必须大于 LCD 的饱和电压,以便能打开像素点,
但同时也要小于阈值电压,以便能关闭像素点。此要求限制 DC 电压为零并且
以最少数目的连接去控制尽可能多的像素,为此需要产生时间与增益都可变的
信号,以提供 LCD 应用。这些时间与增益都可变的信号由单片机内的 LCD 驱
动电路自动产生。占空比决定使用 common 口的个数,也称为底板或 COMs 。
由掩膜选项选择的占空比有 1/2 、1/3 或 1/4 的值,它代表 COM 的数目为 2 、3
或 4 ,定义了每个 LCD 信号帧内的时间分割数。下面的时序图描述单片机所产
生的对于各种占空比和偏压值的 LCD 信号。
1/2 33×2
1/3 33×3
1/4 32×4
1/2 41×2
1/3 41×3
1/4 40×4
1/2 48×2
1/3 48×3
1/4 47×4
LCD 驱动输出,占空比与偏压选项
1/2 或 1/3 C 或 R 类型
1/2 或 1/3 C 或 R 类型
1/2 或 1/3 C 或 R 类型
57
LCD 型单片机使用手册
D u r i n g R e s e t o r i n H A L T M o d e
C O M 0 , C O M 1 , C O M 2
A l l s e g m e n t o u t p u t s
N o r m a l O p e r a t i o n M o d e
C O M 0
C O M 1
C O M 2
A l l s e g m e n t s O F F
C O M 0 s e g m e n t s O N
C O M 1 s e g m e n t s O N
C O M 2 s e g m e n t s O N
C O M 0 , 1 s e g m e n t s O N
C O M 0 , 2 s e g m e n t s O N
C O M 1 , 2 s e g m e n t s O N
A l l s e g m e n t s O N
1 F r a m e
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
LCD 驱动输出(1/3 占空比,1/2 偏压)
注意: 1. 对 HT49R30A-1/HT49C30-1 、 HT49R50A-1/HT49C50-1 、 HT49R70A-1/HT49C70-1 和
HT49RU80/ HT49CU80 而言,R 与 C 型偏压的 VA = V L C D 、VB=VLCD× 1/2。
2. 对 HT49C30L、HT49C50L 和 HT49C70L 而言,VA = 2 V 2 、VB=V2、只有 C 型偏压可用。
58
第一章 硬件架构
D u r i n g R e s e t o r i n H A L T M o d e
C O M 0 , C O M 1
A l l s e g m e n t o u t p u t s
N o r m a l O p e r a t i o n M o d e
C O M 0
C O M 1
A l l s e g m e n t s O F F
C O M 0 s e g m e n t s O N
C O M 1 s e g m e n t s O N
A l l s e g m e n t s O N
LCD 驱动输出 (1/2 占空比, 1/2 偏压 )
1 F r a m e
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
V A
V B
V S S
注意: 1. 对 HT49R30A-1/HT49C30-1 、 HT49R50A-1/HT49C50-1 、 HT49R70A-1/HT49C70-1 和
HT49RU80/ HT49CU80 而言,R 与 C 型偏压的 VA = V L C D 、VB=VLCD× 1/2。
2. 对 HT49C30L、HT49C50L 和 HT49C70L 而言,VA = 2 V 2 、 VB=V2、只有 C 型偏压可用。
59
LCD 型单片机使用手册
D u r i n g R e s e t o r i n H A L T M o d e
C O M 0 , C O M 1 , C O M 2 , C O M 3
A l l s e g m e n t o u t p u t s
N o r m a l O p e r a t i o n M o d e
C O M 0
C O M 1
C O M 2
C O M 3
A l l s e g m e n t s O F F
C O M 0 s e g m e n t s O N
C O M 1 s e g m e n t s O N
C O M 2 s e g m e n t s O N
C O M 3 s e g m e n t s O N
C O M 0 , 1 s e g m e n t s O N
C O M 0 , 2 s e g m e n t s O N
C O M 0 , 3 s e g m e n t s O N
( o t h e r c o m b i n a t i o n s a r e o m i t t e d )
A l l s e g m e n t s O N
LCD 驱动输出 (1/4 占空比, 1/3 偏压 )
1 F r a m e
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
60
第一章 硬件架构
注意:1. 对 HT49R30A-1/HT49C30-1 、 HT49R50A-1/HT49C50-1 、 HT49R70A-1/HT49C70-1
HT49RU80/ HT49CU80 而言,R 型偏压的 VA = V L C D 、VB=VLCD× 2/3、VC=VLCD× 1/3。
C 型偏压的 VA = V L C D × 1.5、 VB=VLCD、 VC=VLCD× 1/2。
2. 对 HT49C30L、HT49C50L 和 HT49C70L 而言,不提供 1/3 偏压。
D u r i n g R e s e t o r i n H A L T M o d e
C O M 0 , C O M 1 , C O M 2
A l l s e g m e n t o u t p u t s
N o r m a l O p e r a t i o n M o d e
C O M 0
C O M 1
C O M 2
A l l s e g m e n t s O F F
C O M 0 s e g m e n t s O N
C O M 1 s e g m e n t s O N
C O M 2 s e g m e n t s O N
C O M 0 , 1 s e g m e n t s O N
C O M 0 , 2 s e g m e n t s O N
C O M 1 , 2 s e g m e n t s O N
A l l s e g m e n t s O N
LCD 驱动输出 (1/3 占空比, 1/3 偏压 )
V A
V B
V C
V S S
V A
V B
V C
1 F r a m e
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
V A
V B
V C
V S S
61
LCD 型单片机使用手册
注意: 1. 对 HT49R30A-1/HT49C30-1 , HT49R50A-1/HT49C50-1 、 HT49R70A-1/HT49C70-1 和
HT49RU80/ HT49CU80 而言,R 型偏压的 VA = V L C D 、VB=VLCDR× 2/3、VC=VLCD× 1/3。
C 型偏压的 VA = V L C D × 1.5、 VB=VLCD、 VC=VLCD× 1/2。
2. 对 HT49C30L、HT49C50L 和 HT49C70L 而言,不提供 1/3 偏压。
LCD 电压源与偏压
盛群 LCD 类型的单片机能产生时间与增益都可变的信号,此信号在操作时需
要几种电压值。信号使用的电压值数目取决于选用的单片机型号和偏压掩膜选
项。
LCD 偏压
HT49C30L、HT49C50L 和 HT49C70L 有固定的偏压值 1/2,而其它单片机则是
通过掩膜选项选择 1/2 偏压或 1/3 偏压。对于 1/2 偏压的掩膜选项,要用到三
个电压值,分别是 VSS、VA 和 VB。除了 HT49C30L、HT49C50L 和 HT49C70L,
在 R 型偏压中 VA 等于 VLCD,VLCD 是外部提供的电压源。这可以是单片机
的电压源或是其它的电压源。VB 由单片机内部产生且电压值等于 VLCD/2。
对于 1/3 偏压的掩膜选项,要用到四个电压值,分别是 VSS、VA 、VB 和 VC。
引脚 VLCD 上的外部 LCD 电压源用来产生这些电压。VA 、VB 和 VC 的实际
电压值由 R 或 C 偏压类型选项决定。要注意的是,C 型偏压会使用充电泵电
路,所以会产生比外部提供的 VLCD 还要高的电压。在单片机提供的电压小
于 LCD 所需电压时,这项特性相当有用。
对于 R 型 1/3 偏压选项,电压 VA 和外部提供的 VLCD 电压相同,电压 VB 和
VC 由内部电阻分压决定。对于 R 型 1/2 偏压选项,VC 是不需要的,也不需
要外部电阻,然而仍建议要连接外部电容到引脚 V1 和 V2 ,以稳定这些内部
产生的电压。在 C 型偏压中,为了要产生所需的电压值,必须要在引脚 C1 与
C2 之间连接充电泵电容,在引脚 V1 与 V2 之间连接的滤波电容。在 HT49C30L、
HT49C50L 和 HT49C70L 中,引脚 V2 作为 LCD 电压源的输入,可以省略这
个引脚上的电容,而在 VLCD 引脚上要额外接一个电容。
对于 HT49C30L 、HT49C50L 和 HT49C70L ,由于经常使用低电压电源或单一
电池电源,因此 LCD 所需的较高的供应电压是由内部充电泵倍压电路产生。
对这些单片机,外部电压供应连接到引脚 V2 ,通常情况下这就是单片机的供
应电源,但也可由其它电压源提供。供应到引脚 V2 的电压会通过内部充电泵
62
第一章 硬件架构
倍压电路,使电压值加倍以建立 VA 值。供应引脚 V2 的外部电压的实际值则
是根据 LCD 应用的需求而定。
V
A
( = V L C D )
V
B
( = V L C D´2 / 3 )
V
C
1 / 3 )
( = V L C D
´
L C D O n / O f f
V M A X
V L C D
R
R
R
( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
L C D
P o w e r S u p p l y
V
A
( = V L C D )
V
B
( = V L C D´1 / 2 )
L C D O n / O f f
V M A X
V L C D
R
R
( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
L C D
P o w e r S u p p l y
R t y p e 1 / 3 B i a s
E x c e p t H T 4 9 C 3 0 L , H T 4 9 C 5 0 L , H T 4 9 C 7 0 L
R t y p e 1 / 2 B i a s
E x c e p t H T 4 9 C 3 0 L , H T 4 9 C 5 0 L , H T 4 9 C 7 0 L
R 型偏压电压值
63
LCD 型单片机使用手册
V M A X V M A X
V L C D
V
A
( = V L C D´1 . 5 )
C h a r g e
V
B
( = V L C D )
( = V L C D
C t y p e 1 / 3 B i a s
E x c e p t H T 4 9 C 3 0 L , H T 4 9 C 5 0 L , H T 4 9 C 7 0 L
( = V 2´2 )
( = V 2 )
C t y p e 1 / 2 B i a s
H T 4 9 C 3 0 L , H T 4 9 C 5 0 L , H T 4 9 C 7 0 L o n l y
P u m p
V
C
. 5 )
´ 0
V
A
C h a r g e
P u m p
V o l t a g e
D o u b l e r
V
B
C 1
C 2
V 1
V 2
V L C D
C 1
C 2
V 1
V 2
( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
L C D
P o w e r S u p p l y
0 . 1mF
0 . 1mF
0 . 1mF
0 . 1mF
0 . 1mF
0 . 1mF
L C D
P o w e r S u p p l y
( n o r m a l l y c o n n e c t e d t o V D D )
V L C D
V
A
( = V L C D )
( = V L C D
C t y p e 1 / 2 B i a s
E x c e p t H T 4 9 C 3 0 L , H T 4 9 C 5 0 L , H T 4 9 C 7 0 L
C h a r g e
P u m p
V
B
. 5 )
´ 0
C 1
C 2
V 1
V 2
( H T 4 9 R U 8 0 / H T 4 9 C U 8 0 o n l y )
L C D
P o w e r S u p p l y
0 . 1mF
0 . 1mF
0 . 1mF
C 型偏压电压值
注意: 1. 对于 HT49C30L、HT49C50L 和 HT49C70L 而言,R 型和 1/3 偏压掩膜选项都是无效的。
2. 只有 HT49RU80/HT49CU80 具有 VMAX 脚
VMAX 脚连接-只有 HT49RU80/HT49CU80 具有
在 HT49RU80/HT49CU80 中有另一个引脚- VMAX ,它的连接方式取决于加
在 VLCD 上的电压。下面表格提供了 VMAX 引脚的正确连接方式:
偏压类型 VLCD 电压 VMAX 脚连接
1/3Bias
C Type
1/2Bias
R Type 1/2or1/3Bias
VDD>VLCD× 1.5 Connect VMAX to VDD
Otherwise Connect VMAX to V1
VDD>VLCD Connect VMAX to VDD
Otherwise Connect VMAX to VLCD
VDD>VLCD Connect VMAX to VDD
Otherwise Connect VMAX to VLCD
64
第一章 硬件架构
编程注意事项
规划 LCD 时要采取一些预防措施,其中之一就是在单片机上电后,要保证 LCD
存储器正确地初始化。与通用数据存储器一样,在上电后,LCD 存储器的内容
是未知的。由于 LCD 存储器的内容会映射到实际的 LCD,所以在上电后,为
获得正确的显示图形,初始化此存储器内容是非常重要的。
在实际应用中,必须要考虑 LCD 的实际电容性负载。通过 LCD 像素出现在单
片机中的负载,通常可以模式化成为电容性,一定要确保它不能过多,对可以
连接多个 LCD 像素点的 COM 的口来说,这一点尤其如此。接下来的流程图描
述 LCD 的等效电路。
S E G 0 S E G 1 S E G 2
C O M 0
C O M 1
C O M 2
C O M 3
S E G n
LCD 面板等效电路
在实际应用中,设置正确的 LCD 时钟频率是另外一个需要特别注意的地方。
为了使 LCD 工作在最佳帧频率,此频率通常在 25Hz 到 250Hz 之间,选择一
个合适的 LCD 时钟频率的掩膜选项是非常重要的。正确的选择必须使得 LCD
时钟频率尽可能地接近 4kHz 。选择这样的频率,单片机内部的 LCD 驱动电路
将会产生适当的 LCD 驱动信号,以获得合适的 LCD 帧频率。
另一个必须考虑的是单片机进入 HALT 状态时,究竟会发生什么?在 HALT
模式时,为了减少功耗,掩膜选项会允许 LCD 关闭电源。若选择此选项,则
在执行 HALT 指令后,LCD 驱动信号会停止,从而产生一个空白显示的图形,
减少任何与 LCD 有关的功耗。由于 HALT 指令的执行并不影响 LCD 存储器,
当单片机被唤醒、LCD 驱动信号重新开始后,将会恢复原来显示的图形。在
HALT 模式时,如果掩膜选项选择 LCD 显示器保持打开状态,则 LCD 驱动信
号会持续产生,LCD 图形保持不受干扰,然而应该注意的是,这样的话会导
致功耗。
65
定时/ 计数器
定时/ 计数器在任何单片机中都是一个很重要的部分,提供程序设计者一种实
现和时间有关功能的方法。在 LCD 型单片机中,通常包含一个、两个或三个
8 或 16 位的向上计数器,这取决于选用哪款单片机。第个定时/ 计数器有三种
不同的工作模式,可以被当作一个普通定时器、外部的事件计数器、或者脉冲
宽度测量器使用。
有两个和定时/ 计数器相关的寄存器。其中,一个寄存器是存储实际的计数值,
赋值给此寄存器可以设定初始值,读取此寄存器可获得定时/ 计数器的内容。
另一个寄存器是定时/ 计数器的控制寄存器,此寄存器设置定时/ 计数器的选项,
控制定时/ 计数器的使用。定时/ 计数器的时钟源可来自内部时钟源或在外部定
时器引脚,下列附表列举了对应定时/ 计数器寄存器的名称。
LCD 型单片机使用手册
8 位定时 /计数器编号 1 2 1 1
定时/ 计数器寄存器名称 TMR TMR0/TMR1 TMR0 TMR0
定时控制寄存器名称 TMRC TMR0C/TMR1C TMR0C TMR0C
16 位定时/ 计数器编号 - - 1 2
定时/计数器寄存器名称 - -
定时控制寄存器名称 - -
HT49R30A-1
HT49C30-1
HT49C30L
HT49R50A-1
HT49C50-1
HT49C50L
HT49R70A-1
HT49C70-1
HT49C70L
TMR1L/TMR1H TMR1L/TMR1H
TMR1C TMR1C
HT49RU80
HT49CU80
TMR2L/TMR2H
TMR2C
定时/ 计数器在事件计数模式下使用外部时钟源,而时钟源从外部计数器的引
脚输入,即 TMR 、TMR0 、 TMR1 或 TMR2 ,这取决于选用哪种型号的单片
机。这些外部引脚可能与 PB 输入引脚共用。每当外部定时/ 计数器输入引脚由
高电平到低电平或者由低电平到高电平(由 TE ,T0E ,T1E 或 T2E 位决定)
进行转换时,将使得计数器值增加一。
配置定时/ 计数器输入时钟源
内部定时/计数器的时钟源可以来自不同的时钟源,它取决于所用的芯片和使
用的定时/计数器。当定时/计数器在定时器模式或者在脉冲宽度测量模式时,
使用内部时钟作为时钟源。内部时钟源可以来自系统时钟、系统时钟/4、RTC
时钟、时基或 TMR0 溢出中的任何一种,这取决于定时器的选取(由掩膜选项
66
第一章 硬件架构
选择)以及应用程序对计数器的配置。
定时/ 计数器在事件计数模式时使用外部计时源,而时钟源是由外部定时/ 计数
器引脚 TMR 、TMR0 、TMR1 或 TMR2 来提供,这取决于那种型号的单片机
及哪一个定时/ 计数器被使用。每当外部引脚由高电平到低电平或者由低电平
到高电平(由 TE ,T0E ,T1E 或 T2E 位决定)进行转换时,将使得计数器值
增加一。
D a t a B u s
f
f
S Y S
S Y S
/ 4
C o n f i g u r a t i o n
O p t i o n
R T C I n t e r r u p t
T M R
M
U
X
T S
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
T O N
P r e l o a d R e g i s t e r
T i m e r / E v e n t
C o u n t e r
8 - B i t T i m e r / E v e n t C o u n t e r
R e l o a d
O v e r f l o w
t o I n t e r r u p t
2
¸
P F D
8 位定时 /计数器结构− HT49R30A-1/HT49C30-1/HT49C30L
f
S Y S
f
S Y S
/ 4
R T C I n t e r r u p t
C o n f i g u r a t i o n
O p t i o n
T M R 0
T 0 S
M
U
X
T i m e r / E v e n t C o u n t e r
T 0 E
T 0 M 1 T 0 M 0
M o d e C o n t r o l
T 0 O N
P r e l o a d R e g i s t e r
T i m e r / E v e n t
C o u n t e r 0
8 - B i t T i m e r / E v e n t C o u n t e r
D a t a B u s
R e l o a d
O v e r f l o w
t o I n t e r r u p t
2
¸
P F D
8位定时 /计数器 0 结构− HT49R50A-1/HT49C50-1/HT49C50L ,
HT49R70A-1/HT49C70-1/HT49C70L
HT49RU80/HT49CU80
67
LCD 型单片机使用手册
T i m e r / E v e n t C o u n t e r 0 O v e r f l o w
T i m e B a s e I n t e r r u p t
T i m e r / E v e n t C o u n t e r 0 O v e r f l o w
T i m e B a s e I n t e r r u p t
f
S Y S
C o n f i g u r a t i o n
O p t i o n
T M R 1
f
S Y S
M
U
X
/ 4
T 1 S
T 1 E
T 1 M 1 T 1 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
T 1 O N
8 - B i t T i m e r / E v e n t C o u n t e r
8 位定时 /计数器 1 结构− HT49R50A-1/HT49C50-1/HT49C50L
f
S Y S
C o n f i g u r a t i o n
O p t i o n
f
T M R 1
S Y S
M
U
X
/ 4
T 1 S
T 1 E
T 1 M 1 T 1 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
H i g h B y t e
T 1 O N
1 6 - B i t T i m e r / E v e n t C o u n t e r
P r e l o a d R e g i s t e r
T i m e r / E v e n t
C o u n t e r 1
L o w B y t e
B u f f e r
1 6 - B i t
P r e l o a d R e g i s t e r
L o w B y t e
D a t a B u s
R e l o a d
D a t a B u s
R e l o a d
O v e r f l o w
t o I n t e r r u p t
2
¸
P F D
O v e r f l o w
t o I n t e r r u p t
2
¸
P F D
16 位定时 /计数器 1 结构− HT49R70A-1/HT49C70-1/HT49C70L
HT49RU80/HT49CU80
D a t a B u s
L o w B y t e
B u f f e r
R e l o a d
O v e r f l o w
t o I n t e r r u p t
T M R 2
1 6 - B i t
T 2 M 1 T 2 M 0
/ 4
S Y S
f
T 2 E
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
T 2 O N
P r e l o a d R e g i s t e r
H i g h B y t e
1 6 - B i t T i m e r / E v e n t C o u n t e r
L o w B y t e
16 位定时 /计数器 2 结构− HT49RU80/HT49CU80
68
第一章 硬件架构
定时/ 计数寄存器 – TMR, TMR0, TMR1, TMR1L/TMR1H,
TMR2L/TMR2H
定时/ 计数器寄存器是位于专用数据存储器内的特殊功能寄存器,储存实际的
定时器值。对 8 位定时/ 计数器来说,这个寄存器是 HT49R30A-1/HT49C30-1/
HT49C30L 中的 TMR , HT49R70A-1/HT49C70-1/ HT49C70L 和
HT49RU80/HT49CU80 中的 TMR0,HT49R50A-1/HT49C50-1/ HT49C50L 中的
TMR1。对 于 16 位定时/计数器来说,需要用一对 8 位寄存器来储存 16 位定时
/计数器的值。这些成对的寄存器即为 HT49R70A-1/HT49C70-1/HT49C70L 中
TMR1L/TMR1H 和 HT49RU80/HT49CU80 中的 TMR1L/TMR1H 、
TMR2L/TMR2H。当用作内部定时器模式时收到一个内部计时脉冲时,或用作
外部计数模式时外部定时/ 计数器引脚发生电平转换时,定时/ 计数寄存器的值
将会加一。定时器从预置寄存器所载入的值开始向上计数,直到 8 位定时/ 计
数器计到 FFH 或 16 位定时/ 计数器计到 FFFFH ,此时定时器发生溢出且会产
生一个内部中断信号。定时器的值随后被预置寄存器的值重设,定时/ 计数器
继续计数。
注意当预置寄存器被清为零,就可以得到 8 位定时/ 计数器 FFH 或 16 位定时/
计数器 FFFFH 的最大计算范围。此时要注意的是,上电后预置寄存器中的数
值处于未知状态。定时/ 计数器在 OFF 条件下,如果把数据写入预置寄存器,
这数据将被立即写入实际的定时器。然而如果定时/ 计数器已经被打开且正在
计数,在这个周期内写入到预置寄存器的任何新数据将被保留在预置寄存器
中,等到下一个溢出发生时才会被写入实际的定时器。当定时/ 计数寄存器被
读取时,定时器计时时钟会停止以避免错误,然而这可能造成某些时序的错误,
因此程序设计者必须考虑到这点。
对于 16 位定时/ 计数器,它有低字节与高字节两个定时/ 计数寄存器,访问这些
寄存器需要以指定方式进行。必须要注意的是当使用指令载入数据到低字节寄
存器,即 TMR1L 或 TMR2L 时,数据只被载入到低字节缓冲器而不是直接送
到低字节寄存器。当数据写入相应高字节寄存器,即 TMR1H 或 TMR2H 时,
低字节缓冲器中的数据才真正被写入低字节寄存器。换句话说,写入数据到高
字节定时/ 计数寄存器时,数据会被直接写入到高字节寄存器。同时在低字节
缓冲器里的数据将被写入相应低字节寄存器。所以当载入数据到 16 位定时/
计数寄存器时,低字节数据应该先写入。另外要注意的是读取低字节寄存器的
内容时,必须先读取高字节寄存器的内容,相应低字节寄存器中的内容就会载
69
LCD 型单片机使用手册
入低字节缓冲器中并被锁存。在此动作执行之后,低字节寄存器中的内容可使
用一般的方式读取。请注意,读取定时/ 计数器低字节寄存器实际是读取先前
锁存在低字节缓冲器中的内容,而非定时/ 计数器低字节寄存器的实际内容。
定时/ 计数控制寄存器 – TMRC, TMR0C, TMR1C ,TMR2C
定时/ 计数器能工作在三种不同的模式,至于选择工作在哪一种模式则是由各
自的控制寄存器的内容决定。对于只有一个定时/ 计数器的单片机而言,定时/
计数控制寄存器即 TMRC ,而对于有两个定时/ 计数器的单片机而言,定时/ 计
数控制寄存器为 TMR0C 和 TMR1C 。对于有三个定时/ 计数器的单片机而言,
具有三个定时/ 计数控制寄存器,它们分别为 TMR0C ,TMR1C 和 TMR2C。定
时/ 计数器寄存器和定时/ 计数控制寄存器控制计时/ 事件计数器的全部操作。在
定时器使用之前必须先正确地设定定时/ 计数控制寄存器,以便保证定时器能
正确操作,而这个过程通常在程序初始化期间完成。
为了确定定时器工作在哪一种模式,位 TM1/TM0 、T0M1/T0M0,T1M1/T1M0
或 T2M1/T2M0 必须设定到要求的逻辑电平。定时器打开位 TON 、T0ON,T1ON
或 T2ON ,即定时/ 计数控制寄存器的第 4 位,是定时器控制的开关,设定逻辑
高时定时器开始计数,而清零时则定时器停止计数。如果定时器工作在事件计
数或脉冲宽度测量模式,TE 、T0E ,T1E 或 T2E 的逻辑电平即 TMRC 寄存器
的第 3 位将可用来选择上升或下降沿触发。
除了 HT49RU80/ HT49CU80 的定时/ 计数器 2 ,另一个时钟源位即 TS 、T0S 或
T1S 依据所使用的定时/计数器来决定定时/计数器使用何种内部时钟源。
70
第一章 硬件架构
b 7
T S
T E T O N T M 0 T M 1
b 7
T 0 S
T 0 E T 0 O N T 0 M 0 T 0 M 1
b 0
T i m e r / E v e n t C o u n t e r C o n t r o l R e g i s t e r
T M R C H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L
N o t i m p l e m e n t e d , r e a d a s " 0 "
E v e n t C o u n t e r A c t i v e E d g e S e l e c t
1 : c o u n t o n f a l l i n g e d g e
0 : c o u n t o n r i s i n g e d g e
P u l s e W i d t h M e a s u r e m e n t A c t i v e E d g e S e l e c t
1 : s t a r t c o u n t i n g o n r i s i n g e d g e , s t o p o n f a l l i n g e d g e
0 : s t a r t c o u n t i n g o n f a l l i n g e d g e , s t o p o n r i s i n g e d g e
T i m e r / E v e n t C o u n t e r C o u n t i n g E n a b l e
1 : e n a b l e
0 : d i s a b l e
T i m e r / E v e n t C o u n t e r C l o c k S o u r c e
1 : f
o r f
S Y S
0 : R T C i n t e r r u p t s i g n a l
O p e r a t i n g M o d e S e l e c t
T M 1
0
0
1
1
/ 4
S Y S
T M 0
n o m o d e a v a i l a b l e
0
e v e n t c o u n t e r m o d e
1
t i m e r m o d e
0
p u l s e w i d t h m e a s u r e m e n t m o d e
1
b 0
T i m e r / E v e n t C o u n t e r C o n t r o l R e g i s t e r
T M R 0 C H T 4 9 R 5 0 A - 1 / H T 4 9 C 5 0 - 1 / H T 4 9 C 5 0 L
N o t i m p l e m e n t e d , r e a d a s " 0 "
E v e n t C o u n t e r A c t i v e E d g e S e l e c t
1 : c o u n t o n f a l l i n g e d g e
0 : c o u n t o n r i s i n g e d g e
P u l s e W i d t h M e a s u r e m e n t A c t i v e E d g e S e l e c t
1 : s t a r t c o u n t i n g o n r i s i n g e d g e , s t o p o n f a l l i n g e d g e
0 : s t a r t c o u n t i n g o n f a l l i n g e d g e , s t o p o n r i s i n g e d g e
T i m e r / E v e n t C o u n t e r C o u n t i n g E n a b l e
1 : e n a b l e
0 : d i s a b l e
T i m e r / E v e n t C o u n t e r C l o c k S o u r c e
1 : f
0 : R T C i n t e r r u p t s i g n a l
O p e r a t i n g M o d e S e l e c t
T 0 M 1
H T 4 9 R 7 0 A - 1 / H T 4 9 C 7 0 - 1 / H T 4 9 C 7 0 L
H T 4 9 R U 8 0 / H T 4 9 C U 8 0
o r f
S Y S
0
0
1
1
/ 4
S Y S
T 0 M 0
n o m o d e a v a i l a b l e
0
e v e n t c o u n t e r m o d e
1
t i m e r m o d e
0
p u l s e w i d t h m e a s u r e m e n t m o d e
1
71
LCD 型单片机使用手册
b 7
T 1 S
T 1 E T 1 O N T 1 M 0 T 1 M 1
b 0
T i m e r / E v e n t C o u n t e r C o n t r o l R e g i s t e r
T M R 1 C H T 4 9 R 5 0 A - 1 / H T 4 9 C 5 0 - 1 / H T 4 9 C 5 0 L
N o t i m p l e m e n t e d , r e a d a s " 0 "
E v e n t C o u n t e r A c t i v e E d g e S e l e c t
1 : c o u n t o n f a l l i n g e d g e
0 : c o u n t o n r i s i n g e d g e
P u l s e W i d t h M e a s u r e m e n t A c t i v e E d g e S e l e c t
1 : s t a r t c o u n t i n g o n r i s i n g e d g e , s t o p o n f a l l i n g e d g e
0 : s t a r t c o u n t i n g o n f a l l i n g e d g e , s t o p o n r i s i n g e d g e
T i m e r / E v e n t C o u n t e r C o u n t i n g E n a b l e
1 : e n a b l e
0 : d i s a b l e
T i m e r / E v e n t C o u n t e r C l o c k S o u r c e
1 : f
0 : f
O p e r a t i n g M o d e S e l e c t
T 1 M 1
H T 4 9 R 7 0 A - 1 / H T 4 9 C 7 0 - 1 / H T 4 9 C 7 0 L
H T 4 9 R U 8 0 / H T 4 9 C U 8 0
S Y S
/ 4
o r T M R 0 o v e r f l o w o r t i m e b a s e i n t e r r u p t s i g n a l
S Y S
T 1 M 0
0
0
1
1
n o m o d e a v a i l a b l e
0
e v e n t c o u n t e r m o d e
1
t i m e r m o d e
0
1
p u l s e w i d t h m e a s u r e m e n t m o d e
b 7
T 2 E T 2 O N T 2 M 0 T 2 M 1
b 0
T i m e r / E v e n t C o u n t e r C o n t r o l R e g i s t e r
T M R 2 C H T 4 9 R U 8 0 / H T 4 9 C U 8 0
N o t i m p l e m e n t e d , r e a d a s " 0 "
E v e n t C o u n t e r A c t i v e E d g e S e l e c t
1 : c o u n t o n f a l l i n g e d g e
0 : c o u n t o n r i s i n g e d g e
P u l s e W i d t h M e a s u r e m e n t A c t i v e E d g e S e l e c t
1 : s t a r t c o u n t i n g o n r i s i n g e d g e , s t o p o n f a l l i n g e d g e
0 : s t a r t c o u n t i n g o n f a l l i n g e d g e , s t o p o n r i s i n g e d g e
T i m e r / E v e n t C o u n t e r C o u n t i n g E n a b l e
1 : e n a b l e
0 : d i s a b l e
N o t i m p l e m e n t e d , r e a d a s " 0 "
O p e r a t i n g M o d e S e l e c t
T 2 M 1
T 2 M 0
0
0
1
1
n o m o d e a v a i l a b l e
0
e v e n t c o u n t e r m o d e
1
t i m e r m o d e
0
p u l s e w i d t h m e a s u r e m e n t m o d e
1
72
第一章 硬件架构
定时器模式
在这个模式,定时/ 计数器可以用来测量固定时间间距,当定时器发生溢出时,
就会提供一个内部中断信号。要工作在这个模式,TMRC 寄存器中位
TM1/TM0 、T0M1/T0M0 ,T1M1/T1M0 或 T2M1/T2M0 必须分别设为“1 ”和
“0 ”。在这个模式,内部时钟源被用来当定时器的计时源。定时/ 计数器的输
入计时频率可以是 f
SYS、fSYS
取决于所使用的定时器,时钟源掩膜选项和 TS 、T0S 或者 T1S 位的逻辑状态。
定时器打开位 TON 、T0ON ,T1ON 或 T2ON 必须被设为逻辑高才能让定时器
开始工作。每次内部时钟由高到低的电平转换都会使定时器值增加一;当定时
器已满即溢出时,会产生中断信号且定时器会重新载入已经载入到预置寄存器
的值,然后继续向上计数。定时器溢出是中断的一种,也是唤醒暂停模式的一
种方法,但是如果相应特殊寄存器中的 ETI 、ET0I ,ETI1 或 ET21 位被置 0 ,
那么内部中断将被关闭。
T i m e r C l o c k
/4 ,f
,时基中断或定时/ 计数器 0 溢出中断,这
RTC
I n c r e m e n t
T i m e r C o n t r o l l e r
T i m e r + 1 T i m e r + 2
定时器模式时序图
T i m e r + N T i m e r + N + 1
事件计数模式
在这个模式,发生在外部引脚的外部逻辑事件改变的数目,可以通过内部定时
/计数器来记录。为使定时 /计数器工作于事件计数模式, TMRC 寄存器中位
TM1/TM0、 T0M1/T0M0, T1M1/T1M0 或 T2M1/T2M0 必须分别设为“0”和
“1 ”。定时器打开位 TON 、T0ON ,T1ON 或 T2ON 必须设为逻辑高,令定时
器开始计数。当 TE 、T0E ,T1E 或 T2E 为逻辑低时,每次外部定时/ 计数器引
脚接收到由低到高电平的转换将使计数器加一。而当 TE 、T0E ,T1E 或 T2E
为逻辑高时,每次外部定时/ 计数器引脚接收到由高到低电平的转换将使计数
器加一。与另外两个模式一样,当计数器计满时,将会发生溢出且产生一个内
部中断信号,同时定时/ 计数器重新载入一个已经载入到预置寄存器的值。由
于外部定时/ 计数器引脚与其它输入/ 输出引脚共用,为确保事件计数模式正常
工作,需要确定 TM1/TM0 、T0M1/T0M0,T1M1/T1M0 或 T2M1/T2M0 位将定
73
LCD 型单片机使用手册
时/ 计数器设定在事件计数模式。定时/ 计数器的溢出是中断的一种,也是唤醒
暂停模式的一种方法。
E x t e r n a l E v e n t
I n c r e m e n t
T i m e r C o u n t e r
T i m e r + 1
事件计数模式时序图
T i m e r + 2 T i m e r + 3
脉冲宽度测量模式
在这个模式,可以测量外部定时/ 计数器引脚的外部脉冲宽度。在脉冲宽度测
量模式中,定时/ 计数器时钟源由内部时钟提供,而位 TM1/TM0 、T0M1/T0M0,
T1M1/T1M0 或 T2M1/T2M0 则必须都设为逻辑高。如果 TE 、 T0E、T1E 或 T2E
位是逻辑低,当外部定时/ 计数器引脚接收到一个由高到低电平的转换时,定
时/ 计数器将开始计数直到外部定时/ 计数器引脚回到它原来的高电平,此时
TON 、T0ON 、T1ON 或 T2ON 位将自动清除为零且定时/ 计数器将停止计数。
而如果 TE 、T0E 、T1E 或 T2E 位是逻辑高,则当外部定时/ 计数器引脚接收到
一个由低到高电平的转换时,定时/ 计数器开始计数直到外部定时/ 计数器引脚
回到原来的低电平。请注意,在脉冲宽度测量模式,当外部定时/ 计数器引脚
的外部控制信号回到原来的低电平,TON 、T0ON 、T1ON 或 T2ON 位将自动
地清除为零,而在其它两种模式下,TON 、T0ON 、T1ON 或 T2ON 位要在程
序控制下才会被清除为零。这时定时/ 计数器中剩下的值被程序读取,可以由
此得知外部定时/ 计数器引脚接收到的脉冲的长度。当 TON 、T0ON、T1ON 或
T2ON 位被清零时,任何在外部定时/ 计数器引脚的进一步转换将被忽略,而直
到 TON 、T0ON 或者 T1ON 位再次被程序设定为逻辑高,定时/ 计数器才又开
始脉冲宽度测量。利用这种方法可以轻松完成单一脉冲测量,要注意的是在这
种模式下,定时/ 计数器是通过外部定时/ 计数器引脚上的逻辑转换来控制,而
不是通过逻辑电平。与另外两个模式一样,当定时/ 计数器已满,将溢出且产
生一个内部中断信号,定时/ 计数器也将清零并载入预置寄存器的值。由于外
部定时/ 计数器引脚与其它输入/ 输出引脚共用,为确保脉冲宽度测量模式正常
工作,需要确定 TM1/TM0 、T0M1/T0M 、T1M1/T1M0 或 T2M1/T2M0 位将定
时/ 计数器设定在脉冲宽度测量模式。定时/ 计数器的溢出是中断的一种,也是
唤醒暂停模式的一种方法。
74
第一章 硬件架构
E x t e r n a l T i m e r
P i n I n p u t
T O N , T 0 O N , T 1 O N o r T 2 O N
( w i t h T E , T 0 E , T 1 E o r T 2 E = 0 )
C l o c k S o u r c e
I n c r e m e n t
T i m e r C o u n t e r
T i m e r
S a m p l e d a t e v e r y f a l l i n g e d g e o f T 1 .
+ 1 + 2 + 3 + 4
脉冲宽度测量模式时序图
可编程分频器 - PFD
PFD 输出与输入/ 输出引脚 PA 3 共用。PFD 功能通过掩膜选项来选择,如果没
有选择这项功能,则 PA 3 可以作为一般的输入/ 输出引脚使用。定时/ 计数器的
溢出信号是 PFD 电路的时钟源。请注意,HT49R50A-1/HT49C50-1/HT49C50L,
HT49R70A-1/HT49C70-1/HT49C70L 和 HT49RU80/HT49CU80 具有一个以上
内部定时/ 计数器, PFD 的时钟源可以通过掩膜选项确定是来自定时/ 计数器 0
还是定时/ 计数器 1 。
定时器由内部系统时钟驱动,向预置寄存器内写值可以控制它的初始值。定时
器从预置寄存器内的值开始向上计数,直到溢出,并由此产生溢出信号而导致
PFD 改变输出状态。接下来定时器会自动重新载入预置寄存器内的值并继续计
数。PFD 的频率是定时/ 计数器溢出信号频率的一半。关于定时/ 计数器设置与
操作的详细内容,请参考相关章节。只有 PA 3 被清“0 ”,PFD 的输出才有效。
这个输出数据位相当于 PFD 输出的开/ 关控制位。请注意,如果 PA 3 输出数据
位被设为“1 ”,则 PFD 输出逻辑低。如果掩膜选项选择引脚 PA 3 的功能为 PFD
输出,则引脚 PA0 ~PA 3 将被配置为 CMOS 形式。
T i m e r O v e r f l o w
P F D C l o c k
P A 3 D a t a
P F D O u t p u t a t P A 3
75
LCD 型单片机使用手册
假如系统时钟使用晶体振荡器,则使用这种频率产生的方法可以产生非常精确
的频率值。
输入/ 输出接口
当运行在事件计数器或脉冲宽度测量模式时,定时/ 计数器需要使用外部定时/
计数器引脚以确保正确的动作。外部定时/ 计数器引脚与其它 PB 口输入引脚共
用,因此始终连接上拉电阻。定时器可以设置为驱动引脚共用的 PFD 。当 通 过
掩膜选项选择 PFD 引脚时,定时器可以根据定时控制寄存器的内容和时钟源
频率,以不同的频率来驱动 PFD 。
编程注意事项
当定时/ 计数器运行在定时器模式时,定时器的时钟源是使用内部系统时钟,
与单片机所有运算都能同步。在这个模式下,当定时器寄存器溢出时,单片机
将产生一个内部中断信号,使程序进入相应的内部中断向量。对于脉冲宽度测
量模式,计数器的时钟源也是使用内部系统时钟,但定时器只有在正确的逻辑
条件出现在外部定时/ 计数器输入引脚时才执行动作。当这个外部事件没有和
内部定时器时钟同步时,只有当下一个定时器时钟到达时,单片机才会看到这
个外部事件,因此在测量值上可能有小的差异,需要程序设计者在程序应用时
加以注意。同样的情况发生在定时器配置为外部事件计数模式时,它的时钟来
源是外部事件,和内部系统时钟或者定时器时钟不同步。
对于HT49R50A-1/HT49C50-1/HT49C50L、HT49R70A-1/HT49C70-1/HT49C70L
和HT49RU80/HT49CU80 具有两个或三个内部定时/ 计数器的单片机,有一项
掩膜选项使能定时/ 计数器 0 的溢出成为定时/ 计数器 1 的时钟源。通过这种串
联方式,HT49R50A-1/HT49C50-1/ HT49C50L 可以创造出一个 16 位的定时/ 计
数器,而HT49R70A-1/HT49C70-1/ HT49C70L 和HT49RU80/HT49CU80 可以创
造出一个 24 位的定时/ 计数器。如果以这种串联方式使用定时/ 计数器,则在初
始化程序时,定时/ 计数器 1 必须先使能,然后在使用前立刻除能。
下面的程序范例,是以 HT49R70A-1/HT49C70-1/HT49C70L 为例,表明如何初
始化中断和定时控制寄存器,以及定时器使能位如何控制定时/ 计数器的开/ 关。
在这个范例中,定时/ 计数器 0 作为定时/ 计数器 1 的时钟源,这是通过设定掩
膜选项将两个定时/ 计数器串联在一起,进而得到一个 24 位定时/ 计数器。请注
意在此配置中,定时/ 计数器 1 必须先使能,然后马上除能以确保正确的初始
化。
76
第一章 硬件架构
范例:使用定时/ 计数器 0 作为定时/ 计数器 1 的时钟源,配置一个 24 位计数
器
START:
mov a,09h ; Set ET0I & EMI bits to enable Timer 0 and global
; interrupt
mov intc0,a ;
mov a,01h ; Set the ET1I bit to enable the Timer 1 interrupt
mov intc1,a ;
mov a,80h ; Configure Timer 1 to operate in timer mode
mov tmr1c,a ; Timer 1 clock source depends on configuration option
mov a,0a0h ; Configure Timer 0 to operate in timer mode
mov tmr0c,a ; and select system clock/4 as Timer 0 clock source
set tmr1c.4 ; Enable then disable Timer 1
clr tmr1c.4 ; Necessary step for cascaded timers
mov a,00h ; Load a desired value into both the TMR0 and TMR1
; registers
mov tmr0,a ;
mov a,00h ;
mov tmr1l,a ;
mov tmr1h,a ;
set tmr0c.4 ;Turn Timer 0 on
set tmr1c.4 ;Turn Timer 1 on
END
中断
LCD 型单片机均具有一些外部和内部中断功能。外部中断由外部引脚
的动作控制。内部中断由不同的时钟源控制,如定时/ 计数器、时基和实
INT1
时时钟。另外,HT49RU80/HT49CU80 还具有 UART 中断和多功能中断。
中断寄存器
对于 LCD 型单片机而言,提供了三个中断控制寄存器-INTC0,INTC1 和 MFIC
来控制所有的中断控制特性。注意,只有 HT49RU80/HT49CU80 才具有 MFIC
寄存器。
一旦中断子程序被响应,由于 EMI 被自动清零,所有其它的中断将被屏蔽。
这个方式可以预防任何进一步的中断相互嵌套。然而,如果其它的中断请求可
77
INT0
和
LCD 型单片机使用手册
能发生在这个期间,但中断不会立即被响应,只有中断请求标志位会被记录。
如果某个中断服务子程序正在执行,此时有另一个中断要求响应,则在进入子
程序后应该置位 EMI 位,以允许中断嵌套。如果堆栈已满,即使此中断已经
被使能,中断请求也不会响应,直到状态指针减少为止。如果要求立刻动作,
堆栈必须避免成为储满状态。
在暂停模式中,所有的中断都具有唤醒单片机的能力。当中断被响应时,首先
将程序计数器的值压入堆栈,并跳转到程序存储器中特殊地址的子程序。只有
程序计数器的值会被压入堆栈。如果累加器、状态寄存器或是其它寄存器的内
容会被中断服务程序改变,而这些变化可能会破坏原先想要的控制顺序,则这
些内容应该预先加以储存。
b 7 b 0
E E I 1 E E I 0 E M I E I F 0
E T I E I F 1 T F
I N T C 0 R e g i s t e r H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L
M a s t e r I n t e r r u p t G l o b a l E n a b l e
1 : g l o b a l e n a b l e
0 : g l o b a l d i s a b l e
E x t e r n a l I n t e r r u p t 0 E n a b l e
1 : e n a b l e
0 : d i s a b l e
E x t e r n a l I n t e r r u p t 1 E n a b l e
1 : e n a b l e
0 : d i s a b l 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 E n a b l e
1 : e n a b l e
0 : d i s a b l e
E x t e r n a l I n t e r r u p t 0 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
E x t e r n a l I n t e r r u p t 1 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v 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 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
N o t i m p l e m e n t e d , r e a d a s " 0 "
78
第一章 硬件架构
b 7 b 0
b 7 b 0
E E I 1 E E I 0 E M I E I F 0
E T 0 I E I F 1 T 0 F
E R T I T B F E T B I R T F
I N T C 1 R e g i s t e r H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L
T i m e B a s e I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
R e a l T i m e C l o c k I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
N o t i m p l e m e n t e d , r e a d a s " 0 "
T i m e B a s e R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
R e a l T i m e C l o c k R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
N o t i m p l e m e n t e d , r e a d a s " 0 "
I N T C 0 R e g i s t e r E x c e p t H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L
M a s t e r I n t e r r u p t G l o b a l E n a b l e
1 : g l o b a l e n a b l e
0 : g l o b a l d i s a b l e
E x t e r n a l I n t e r r u p t 0 E n a b l e
1 : e n a b l e
0 : d i s a b l e
E x t e r n a l I n t e r r u p t 1 E n a b l e
1 : e n a b l e
0 : d i s a b l 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 E n a b l e
1 : e n a b l e
0 : d i s a b l e
E x t e r n a l I n t e r r u p t 0 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
E x t e r n a l I n t e r r u p t 1 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v 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 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
N o t i m p l e m e n t e d , r e a d a s " 0 "
79
LCD 型单片机使用手册
b 7 b 0
T B F
T 1 F
b 7 b 0
E R T I E T B I
E M F I E U R I E T 1 I T 1 F U R F M F F
E T 1 I R T F
I N T C 1 R e g i s t e r E x c e p t H T 4 9 R 3 0 A - 1 / H T 4 9 C 3 0 - 1 / H T 4 9 C 3 0 L
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 E n a b l e
1 : e n a b l e
0 : d i s a b l e
T i m e B a s e I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
R e a l T i m e C l o c k I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
N o t i m p l e m e n t e d , r e a d a s " 0 "
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 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
T i m e B a s e R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
R e a l T i m e C l o c k R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
N o t i m p l e m e n t e d , r e a d a s " 0 "
a n d H T 4 9 R U 8 0 / H T 4 9 C U 8 0
I N T C 1 R e g i s t e r H T 4 9 R U 8 0 / H T 4 9 C U 8 0
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 E n a b l e
1 : e n a b l e
0 : d i s a b l e
U A R T B u s I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
M u l t i - f u n c t i o n I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
N o t i m p l e m e n t e d , r e a d a s " 0 "
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 R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
U A R T B u s I n t e r r u p t R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
M u l t i - f u n c t i o n I n t e r r u p t R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
N o t i m p l e m e n t e d , r e a d a s " 0 "
80
第一章 硬件架构
b 7 b 0
E R T I E T B I E T 2 I T 2 F T B F R T F
M F I C R e g i s t e r H T 4 9 R U 8 0 / H T 4 9 C U 8 0
T i m e r / E v e n t C o u n t e r 2 I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
T i m e B a s e I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
R e a l T i m e C l o c k I n t e r r u p t E n a b l e
1 : e n a b l e
0 : d i s a b l e
N o t i m p l e m e n t e d , r e a d a s " 0 "
T i m e r / E v e n t C o u n t e r 2 I n t e r r u p t R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
T i m e B a s e I n t e r r u p t R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
R e a l T i m e C l o c k I n t e r r u p t R e q u e s t F l a g
1 : a c t i v e
0 : i n a c t i v e
N o t i m p l e m e n t e d , r e a d a s " 0 "
下图标明了各个中断的允许位,相关的请求标志位,以及中断优先顺序。
A u t o m a t i c a l l y C l e a r e d b y I S R
M a n u a l l y S e t o r C l e a r e d b y S o f t w a r e
E x t e r n a l I n t e r r u p t
R e q u e s t F l a g E I F 0
A u t o m a t i c a l l y D i s a b l e d b y I S R
C a n b e E n a b l e d M a n u a l l y
E E I 0 E M I
P r i o r i t y
H i g h
E x t e r n a l I n t e r r u p t
R e q u e s t F l a g E I F 1
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 R e q u e s t F l a g T F
T i m e B a s e
I n t e r r u p t R e q u e s t F l a g T B F
R e a l T i m e C l o c k
I n t e r r u p t R e q u e s t F l a g R T F
E E I 1
E T I
E T B I
E R T I
I n t e r r u p t
P o l l i n g
L o w
中断示意图-HT49R30A-1/ HT49C30-1/HT49C30L
81
LCD 型单片机使用手册
A u t o m a t i c a l l y C l e a r e d b y I S R
M a n u a l l y S e t o r C l e a r e d b y S o f t w a r e
E x t e r n a l I n t e r r u p t
R e q u e s t F l a g E I F 0
A u t o m a t i c a l l y D i s a b l e d b y I S R
C a n b e E n a b l e d M a n u a l l y
E E I 0 E M I
P r i o r i t y
H i g h
E x t e r n a l I n t e r r u p t
R e q u e s t F l a g E I F 1
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 R e q u e s t F l a g T 0 F
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 R e q u e s t F l a g T 1 F
T i m e B a s e
I n t e r r u p t R e q u e s t F l a g T B F
R e a l T i m e C l o c k
I n t e r r u p t R e q u e s t F l a g R T F
E E I 1
E T 0 I
E T 1 I
E T B I
E R T I
L o w
中断示意图- HT49R50A-1/HT49C50-1/HT49C50L
HT49R70A-1/HT49C70-1/HT49C70L
I n t e r r u p t
P o l l i n g
82
第一章 硬件架构
A u t o m a t i c a l l y C l e a r e d b y I S R
e x c e p t f o r T B F , R T F a n d T 2 F
M a n u a l l y S e t o r C l e a r e d b y S o f t w a r e
E x t e r n a l I n t e r r u p t
R e q u e s t F l a g E I F 0
E x t e r n a l I n t e r r u p t
R e q u e s t F l a g E I F 1
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 R e q u e s t F l a g T 0 F
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 R e q u e s t F l a g T 1 F
U A R T B u s
I n t e r r u p t R e q u e s t F l a g U R F
M u l t i - f u n c t i o n
I n t e r r u p t R e q u e s t F l a g M F F
T i m e B a s e
I n t e r r u p t R e q u e s t F l a g T B F
R e a l T i m e C l o c k
I n t e r r u p t R e q u e s t F l a g R T F
T i m e r / E v e n t C o u n t e r 2
I n t e r r u p t R e q u e s t F l a g T 2 F
中断示意图- HT49RU80/HT49CU80
A u t o m a t i c a l l y D i s a b l e d b y I S R
C a n b e E n a b l e d M a n u a l l y
E E I 0
E E I 1
E T 0 I
E T 1 I
E U R I
E M F I
E T B I
E R T I
E T 2 I
E M I
P r i o r i t y
H i g h
I n t e r r u p t
P o l l i n g
L o w
中断优先权
当中断是发生在两个连续的 T2 脉冲上升沿之间时,如果相应的中断请求被允
许,中断将在后一 T2 脉冲响应。下表指出在同时提出请求的情况下所提供的
优先权。
HT49R30A-1
中断源
HT49C30-1
HT49C30L
优先权
外部中断 0 1 1 1 1
外部中断 1 2 2 2 2
定时/ 计数器或定时计时器 0 溢出 3 3 3 3
定时/ 计数器 1 溢出 N/A 4 4 4
83
HT49R50A-1
HT49C50-1
HT49C50L
优先权
HT49R70A-1
HT49C70-1
HT49C70L
优先权
HT49RU80
HT49CU80
优先权
LCD 型单片机使用手册
定时 /计数器 2 溢出 N/A N/A N/A 6
UART 中断 N/A N/A N/A 5
时基中断 4 5 5 6
RTC 中断 5 6 6 6
多功能中断 N/A N/A N/A 6
注意: 1.对于 HT49R30A-1/HT49C30-1/HT49C30L 只具有一个定时/计数器。
HT49R50A-1/HT49C50-1/HT49C50L 和 HT49R70A-1/HT49C70-1/HT49C70L 具有两个内部
定时器 HT49RU80/HT49CU80 具有三个部内部定时器。
2. 只有 HT49RU80/HT49CU80 具有一个 UART 中断。
3. 在 HT49RU80/HT49CU80 中,定时/计数器 2、时基和实时时钟中断都包含在一个多功能
中断向量中。
假如外部和内部中断均使能且外部和内部中断同时发生,则外部中断优先处
理。使用 INTC0 ,INTC1 和 MFIC 寄存器适当屏蔽个别中断,可以防止同时发
和
INT1
分别与输入引脚 PB0 和 PB1 共用,如果
生的情总。外部中断引脚
INT0
寄存器的位正确的写值,可以配置为外部中断引脚。请注意,这些输入引脚一
直连接上拉电阻。
外部中断
每款 LCD 型单片机都具有两组外部中断,即外部中断 0 和外部中断 1 ,相应
的有两个外部输入共用引脚
INT0和INT1
。要使外部中断发生,相应的外部中
断使能位必须被置位。对于外部中断 0 ,为 INTC0 寄存器的第 1 位,即 EEI0 。
对于外部中断 1 ,为 INTC0 寄存器的第 2 位,即 EEI1 。外部中断 0 是通过
INT0
端口上由高到低的电平转换来触发,之后相应的中断请求标志位(EIF0 ;INTC0
的第 4 位)被置位。外部中断 1 是通过
端口由高到低的电平转换来触发,
INT1
之后相应的中断请求标志位(EIF1 ;INTC0 的第 5 位)被置位。当中断被使能
且堆栈没有满,而
如果是
发生由高到低的电平转换,将调用地址 08H 的子程序。中断请求
INT1
发生由高到低的电平转换,将调用地址 04H 的子程序。
INT0
标志位 EIF0 或 EIF1(取决于发生哪个外部中断)会被复位且 EMI 位会被清零以
除能其它中断。
定时/ 计数器中断
要使定时/ 计数器内部中断发生,相应的内部中断使能位必须被置位。对于具
有一组内部定时/ 计数器的的单片机,中断使能位是 INTC0 寄存器的第 3 位,
84
第一章 硬件架构
即 ETI 。对于具有两组内部定时/ 计数器的单片机,定时/ 计数器 0 的中断使能
位是 INTC0 寄存器的第 3 位,即 ET0I 。定 时 / 计数器 1 的中断使能位是 INTC1
寄存器的第 0 位。对于具有三组定时器的 HT49RU80/HT49CU80 ,定时器 0 的
中断使能位 ET0I 为 INTC0 寄存器的第三位,定时器 1 的中断使能位 ET1I 为
INTC1 寄存器的第 0 位,而定时器 2 的中断使能位 ET2I 为 MFIC 寄存器的第
0 位。当定时 /计数器溢出,会置位定时 /计数器中断请求标志位,定时 /计数器
中断发生。在只有一组定时/ 计数器的 HT49R30A-1/HT49C30-1/HT49C30L 中,
此位是 INTC0 寄存器的第 6 位,即 TF 。而在具有两组定时/ 计数器的
HT49R50A-1/HT49C50-1/HT49C50L, HT49R70A-1/HT49C70-1/HT49C70L 和
HT49RU80/HT49CU80 中,定时/计数器 0 的请求标志位是 INTC0 寄存器的第
6 位,即 T0F。定时/计数器 1 的请求标志位是 INTC1 寄存器的第 4 位,即 T1F。
对于有三组定时器的 HT49RU80/HT49CU80 ,定时器2 的请求标志 T2F 为 MFIC
寄存器的第 4 位。由于定时器 2 的中断向量包含在多功能中断向量中,所以
INTC1 寄存器中多功能中断允许位 EMFI 必须置位才能响应定时器 2 产生的中
断。当定时器 2 溢出时,INTC1 寄存器中的第六位多功能请求标志位 MFF 也
会被置位。
当主中断使能位被置位、堆栈未满且相应内部中断使能位置位,定时/ 计数器
溢出时会发生内部中断。对于具有一组定时器的单片机,该中断将产生地址
00CH 处的子程序调用。而对于具有两组定时器的单片机,由定时器 0 产生的
中断,调用地址 00CH 处的子程序,而由定时器 1 产生的中断,调用地址 010H
处的子程序。对于具有三组定时器的 HT49RU80/HT49CU80 ,由定时器 0 产生
的中断,调用地址 00CH 处子程序,由定时器 1 产生的中断,调用地址 010H
处子程序,而由定时器 2 产生的中断,调用地址 018H 处的子程序。需要注意
的是,定时器 2 和其它一些中断共享一个中断向量。当内部中断被响应时,中
断请求标志位 TF 、T0F 或 T1F 会被复位且 EMI 位会被清零以除能其它中断。
当 HT49RU80/HT49CU80 中的定时器 2 发生中断时,请求标志 MFF 会被复位
且 EMI 会被清零以除能其它中断,但是请求标志 T2F 不会被自动复位,必须
软件清零。
时基中断
要使时基中断发生,相应的内部中断使能位 ETBI 必须被置位。对于
HT49R30A-1/HT49C30-1/HT49C30L,此位为 INTC1 寄存器的第 0 位,而对于
HT49R50A-1/HT49C50-1/HT49C50L、HT49R70A-1/HT49C70-1/HT49C70L,则
85
LCD 型单片机使用手册
为 INTC1 寄存器的第 1 位,而对于 HT49RU80/HT49CU80 ,则为 MFIC 寄存
器的第一位。当时基产生暂停信号时,就会置位中断请求标志位 TBF ,产生时
基中断。在 HT49R30A-1/HT49C30-1/HT49C30L 中,此位为 INTC1 寄存器的
第 4 位,而在 HT49R50A-1/HT49C50-1/HT49C50L 和
HT49R70A-1/HT49C70-1/HT49C70L 中,则为 INTC1 寄存器的第 5 位。而在
HT49RU80/HT49CU80 中,则为 MFIC 寄存器的第 5 位。对于
HT49RU80/HT49CU80,由于时基的中断向量包含在多功能中断向量中,所以
INTC1 寄存器多功能中断向量允许位 EMFI 必须置位才能响应时基产生的中
断。当时基溢出时,INTC1 寄存器中的第 6 位多功能请求标志位 MFF 也会被
置位。当主中断使能位被置位、堆栈未满且对应的时基中断使能位被置位时,
一旦时基产生暂停信号,就会产生内部时基中断。对于
HT49R30A-1/HT49C30-1/HT49C30L,将调用地址 010H 的子程序,而对于
HT49R50A-1/HT49C50-1/HT49C50L 和 HT49R70A-1/HT49C70-1/HT49C70L,
将调用地址 14H 的子程序。而对于 HT49RU80/HT49CU80 ,将调用地址 018H
处的子程序,需要注意的是,时基和其它一些中断共享一个多功能中断向量。
除了 HT49RU80/HT49CU80 ,当时基中断被响应,中断请求标志位 TBF 会被
复位且 EMI 位将被清零以除能其它中断,而对于 HT49RU80/HT49CU80 时基
发生中断,请求标志 MFF 会被复位且 EMI 位会被清零以除能其它中断,但是
请求标志 TBF 不会自动复位,必须采用软件清零。
时基中断的目的是要提供一个具有固定时间周期的中断信号。时基中断的时钟
源是内部时钟 fS ,这个 fS 输入时钟先通过一个分频器,分频比例可通过掩膜
选项进行选择,以提供更长的时基中断周期。时基中断的暂停周期范围由
212/fS 至 215/fS 。产生 fS 的时钟源同时也决定时基中断的周期,它有三种不
同的来源,分别为 RTC 振荡器、看门狗定时振荡器或系统振荡器/4 ,至于选
择何种时钟源作为 fS 时钟源则是由掩膜选项来选择。请注意,如果选择 RTC
振荡器作为系统时钟,则 fS 和相应的时基中断也将使用 RTC 振荡器作为时钟
源。
时基中断的周期由掩膜选项控制,它同时决定内部时钟 fS 的来源和内部的分
频比例。
86
第一章 硬件架构
f
/ 4
S Y S
W D T O s c i l l a t o r
R T C O s c i l l a t o r
实时时钟中断
要使实时时钟中断发生,相应的内部中断使能位 ERTI 必须被置位。对于
HT49RU80/HT49CU80 此位为 MFIC 寄存器的第 2 位,对于
HT49R30A-1/HT49C30-1/HT49C30L,此位为 INTC1 寄存器的第 1 位,而对于
其他单片机,则为 INTC1 寄存器的第 2 位。当实时时钟产生暂停信号时,就
会置位中断请求标志位 RTF ,产生实时时钟中断。当主中断使能位被置位、堆
栈未满且相应的实时时钟中断使能位被置位时,一旦实时时钟产生暂停信号,
就是产生内部实时时钟中断,对于 HT49R30A-1/ HT49C30-1/HT49C30L ,将 调
用地址 014H 的子程序,而对于 HT49R50A-1/ HT49C50-1/HT49C50L 和
HT49R70A-1/HT49C70-1/HT49C70L,将调用地址 18H 的子程序。对于
HT49RU80/HT49CU80,由于实时时钟的中断向量包含在多功能中断向量中,
所以 INTC1 寄存器多功能中断允许位 EMFI 必须置位才能响应实时时钟产生
的中断。当实时时钟溢出时,INTC1 寄存器的第 6 位多功能请求标志位 MFF
也会被置位。除了 HT49RU80/HT49CU80,当实时时钟中断被响应,中断请求
标志位 RT F 会被复位且 EMI 位将被清零以除能其它中断,而
HT49RU80/HT49CU80 发生实时时钟中断,请求标志 MFF 会被复位且 EMI 位
会被清零以除能其它中断,但是请求标志 RTF 不会自动复位,必须软件清零。
不要混淆 RTC 中断与 RTC 振荡器。
C o n f i g u r a t i o n
O p t i o n
S e l e c t
f
S
C o n f i g u r a t i o n O p t i o n
D i v i d e b y 2
时基中断
1 2
1 5
~ 2
T i m e B a s e I n t e r r u p t
1 2
1 5
/ fS~ 2
/ f
2
S
相似于时基中断,RTC 中断的目的也是要提供一个具有固定时间周期的中断
信号。RTC 中断的时钟源来自于内部时钟源 f
,这个 f S输入时钟先通过一个
S
分频器,分频比例可通过写入数据到 RTC C 寄存器中适当的位,以获得更长的
RTC 中断周期,其范围由 2
8
/fS至 215/fS。产生 fS的时钟源同时也决定 RT C 中
断的周期,它有三种不同的来源,分别为 RTC 振荡器、看门狗定时振荡器或
系统振荡器/4 ,至于选择何种时钟源作为 f
注意,如果选择 RTC 振荡器作为系统时钟,则 f
时钟源则是由掩膜选项来选择。请
S
和相应的 RTC 中断也将使用
S
RTC 振荡器作为时钟源。
87
LCD 型单片机使用手册
f
/ 4
S Y S
W D T O s c i l l a t o r
R T C O s c i l l a t o r
C o n f i g u r a t i o n
O p t i o n
S e l e c t
f
S
D i v i d e b y 28~ 2
( S e t b y R T C C
R e g i s t e r s )
1 5
R T C I n t e r r u p t
8
1 5
/ fS~ 2
/ f
2
S
R T 2 ~ R T 0
RTC 中断
请注意,RTC 中断周期是由掩膜选项和内部寄存器 RTCC 控制。掩膜选项用
于选择内部时钟 f
8
选择 2
/fS至 215/fS的分频比例。对于 RT C 的中断周期,请参考 RTCC 寄存器
的时钟源,而 RTCC 寄存器的 RT 2、 RT1 和 RT0 位,则是
S
的章节。
注意: 在单片机被唤醒后,系统需要 1024 个时钟周期来恢复正常运行。如果 32768Hz 的 RTC 振
荡器被选择作为系统时钟,对于唤醒后对定时灵敏的 RTC 中断的应用程序而言,在选择 2 8、
9
2
和 2 10的 RTC 中断分频时必须特别小心。对于这些分频比例,在唤醒后的 1024 个时钟周
期内,接下来的 RTC 中断事件会被遗漏。
UART 中断
对于具有一个串行口的 HT49RU80/HT49CU80 ,要使 UART 中断发生,相应
的内部中断使能位 EURI 必须被置位,此位为 INTC1 的第一位。当 UART 产
生暂停信号时,就会置位中断请求标志 URF ,产生 UART 中断。当主中断使
能位被置位,堆栈未满且相应的 UART 中断使能位 EURI 被置位时,一旦 UART
产生请求,就会产生 UART 中断,将会调用地址 014H 处的子程序。当 UART
中断响应时,中断请求标志位 URF 会被复位且 EMI 位将被清零以除能其它中
断。
产生 UART 中断有多种情况,例如,发送接收数据、帧错误检测和自动地址
检测。这些状态反映在 UART 的状态寄存器 USR 中。UART 控制寄存器 UCR2
决定是否产生中断信号。更多关于这两个寄存器的介绍可查阅 UART 相关章
节。
多功能中断
对于 HT49RU80/HT49CU80 ,具有一个多功能中断。不像其它的中断,它没有
独立的中断源,而是由时基、实时时钟和定时器 2 这三个中断组成。要使多功
能中断发生,相应的中断允许位 EMFI 必须置位,此位为 INTC1 的第 2 位。
88
第一章 硬件架构
当多功能中断产生暂停信号,就会置位中断请求标志 MFF ,产生多功能中断。
当主设备的中断使能位被置位、堆栈未满且对应的中断使能位被置位时,一旦
时基、实时时钟或定时器 2 溢出,就会产生中断,该中断将调用地址 018H 处
的子程序。当多功能中断被响应,多功能中断请求标志位 MFF 会被复位且 EMI
位被清零以除能其它中断。需要注意的是,时基、实时时钟和定时器 2 的请求
标志不会自动复位需软件清零。
在 HT49RU80/HT49CU80 中,时基、实时时钟和定时器 2 没有独立的中断向
量,它们共享一个多功能中断向量。
编程注意事项
中断请求标志位 TF 、T0F、T1F、T2E、URF、MFF、EIF0、EIF1、TBF 和 RTF
与中断使能位 ETI 、ET0I 、ET1I 、ET2I 、EURI 、EMFI 、EEI0 、EEI1 、ETBI
和 ERTI 共同形成数据存储器中的中断控制寄存器 INTC0 ,NTC1 和 MFIC 。
通过除能中断使能位,可以屏蔽中断请求。然而,一旦中断请求标志位被设定,
它们会被保留在 INTC0 ,INTC1 和 MFIC 寄存器内,直到相应的中断服务子程
序执行或被软件指令清除。
建议各位使用者在中断服务子程序中不要使用“调用子程序”指令。中断通常
发生在不可预料的情况或是需要立刻执行的某些应用。假如只剩下一层堆栈且
没有控制好中断,当“调用子程序”在中断服务子程序中执行时,将破坏原来
的控制序列。
复位和初始化
复位功能是任何单片机中基本的部分,使得单片机可以设定一些与外部参数无
关的先置条件。最重要的是,复位条件在初次提供电源给单片机后,经短暂延
迟,内部电路将使得单片机被定义在良好的状态且准备执行第一条程序语句。
上电复位之后,在程序未开始执行前,部分重要的内部寄存器将会被预先设定
状态。程序计数器就是其中之一,它会被清除为零,使得单片机从最低的程序
存储器地址开始执行程序。
除了上电复位外,即使单片机正在执行状态,有些情况的发生也迫使单片机必
须加以复位。其中一个例子是当提供电源给单片机以执行程序后,
强制拉下至低电平。这个例子为正常操作复位,单片机中只有一些寄存器受影
RES
引脚被
89
LCD 型单片机使用手册
响,而大部分寄存器则是不受影响,以便复位引脚回复至高电平后,单片机仍
可以正常操作。复位的另一种形式是看门狗定时器溢出而复位单片机,所有复
位操作类型导致不同的寄存器条件被加以设定。
另外一种复位以低电压复位,即 LV R 的型态存在,在电源提供电压低于某一
临界值的情况下,一种和
复位
通过内部与外部事件触发复位,单片机共有五种复位方式:
→ 上电复位
这是最基本而不可避免的复位,发生在单片机上电后。除了保证程序存储器会
从起始地址开始执行,上电复位也使得其它寄存器被设定在预设条件,所有的
输入/ 输出口寄存器在上电复位时会保持高电平,以确保上电后所有引脚被设
为输入状态。
虽然单片机有一个内部 RC 复位功能,由于接通电源不稳定,还是推荐使用和
引脚连接的外部 RC 电路。由 RC 电路所造成的时间延迟使得
RES
电源供应稳定前的一段延长周期内保持在低电平。在这段时间内,单片机的正
常操作是被禁止的。
片机可开始进行正常操作。下图中 SST 是系统延迟周期 System Start-up Timer
的缩写。
引脚复位类似的完全复位将会被执行。
RES
引脚达到一定电压值后,再经过延迟时间 t
RES
RES
引脚在
RSTD
,单
→
S S T T i m e - o u t
I n t e r n a l R e s e t
引脚复位
RES
当单片机正常工作,而
V D D
R E S
上电复位时序图
引脚通过外部硬件(如外部开关)被强迫拉至低电平
RES
0 . 9 V
t
D D
R S T D
时,此种复位型式即会发生。这种复位形式与其它复位的例子一样,程序计数
器会被清除为零且程序从头开始执行。
90