意法(ST)半导体公司的ST系列单片机近年来刚被引入我国,其在综合性能方面有一定特色。本书主要介绍意法(ST)半导体公司的ST7系列单片机中的通用型号:ST7FLITE和ST72324子系列。全书共7章,主要内容包括ST7通用系列单片机的基本组成、结构、工作原理、存储器模块、片上外设(如I/O口、模/数转换、串行口、定时器等)、指令系统、汇编语言程序设计、开发环境及应用实例等。
本书内容通俗易懂、丰富全面,可供从事单片机开发的技术人员学习、参考,也可作为高等院校计算机、自动化及电子技术类专业的教学参考书。
第1章 ST7通用单片机简介
1.1 概述1
1.1.1 ST公司单片机产品介绍1
1.1.2 ST系列单片机的命名规则1
1.2 ST公司8位单片机简介2
1.2.1 ST公司8位单片机的特点2
1.2.2 ST5系列单片机4
1.2.3 ST6系列单片机4
1.2.4 ST7系列单片机4
1.2.5 ST9系列单片机5
1.3 ST7通用系列单片机5
1.3.1 ST7通用系列单片机的特点5
1.3.2 ST7FLITE0系列单片机7
1.3.3 ST7FLITE1/2系列单片机8
1.3.4 ST72324系列单片机9
第2章 ST7系列单片机结构及原理
2.1 单片机的基本结构11
2.1.1 ST7系列单片机的基本组成11
2.1.2 引脚定义及功能14
2.1.3 基本工作条件22
2.2 中央处理器CPU22
2.2.1 程序计数器PC22
2.2.2 状态寄存器CC23
2.2.3 累加器A24
2.2.4 索引寄存器X和Y25
2.2.5 堆栈指针SP25
2.2.6 堆栈的操作过程26
2.3 寄存器与存储器的分配27
2.3.1 存储器的空间分配27
2.3.2 HW寄存器29
2.4 闪存程序存储器33
2.4.1 主要特性33
2.4.2 编程模式33
2.4.3 ICC接口34
2.4.4 闪存保护36
2.5 数据EEPROM37
2.5.1 主要特点37
2.5.2 EEPROM控制与状态寄存器37
2.5.3 存储器的操作38
2.5.4 电源节电模式39
2.5.5 读/写时可能产生的错误 40
2.5.6 对EEPROM的读保护40
2.5.7 EEPROM存储器的工作时间40
2.5.8 EEPROM数据存储器应用举例41
2.6 时钟管理41
2.6.1 ST7FLITE0/1/2的时钟管理42
2.6.2 ST72324的时钟管理45
2.6.3 内部RC振荡器的调节48
2.6.4 锁相环PLL48
2.7 复位管理49
2.7.1 复位来源49
2.7.2 复位过程50
2.7.3 异步外部复位51
2.7.4 内部低电压检测复位52
2.7.5 内部看门狗复位52
2.8 系统可靠性管理52
2.8.1 SICSR寄存器53
2.8.2 低电压检测器LVD54
2.8.3 辅助电压检测器AVD55
2.9 ST7单片机的选择字节56
2.9.1 ST7FLITE0系列的选择字节57
2.9.2 ST7FLITE1/2子系列的选择字节59
2.9.3 ST72324子系列的选择字节60
2.10 ST7的中断系统61
2.10.1 中断的概念62
2.10.2 中断技术的优点62
2.10.3 中断源62
2.10.4 中断系统的功能63
2.10.5 ST7的中断系统结构64
2.10.6 中断处理过程69
2.10.7 中断的优先级管理和低功耗模式71
2.11 ST7的低功耗方式72
2.11.1 慢速模式72
2.11.2 等待模式72
2.11.3 活跃暂停和暂停模式73
2.11.4 自动唤醒模式76
第3章 指令系统
3.1 ST7指令系统简介79
3.2 寻址方式80
3.2.1 符号注释80
3.2.2 寻址方式81
3.2.3 机器码的前缀字节90
3.3 数据传送类指令91
3.3.1 传送指令91
3.3.2 半字节交换指令94
3.3.3 堆栈操作指令95
3.4 算术运算类指令96
3.4.1 加法指令96
3.4.2 减法指令97
3.4.3 无符号乘法指令97
3.4.4 加1/减1指令98
3.5 逻辑操作类指令99
3.5.1 逻辑“与”指令99
3.5.2 逻辑“或”指令99
3.5.3逻辑“异或”指令100
3.5.4 移位指令100
3.5.5 取反与求补指令102
3.5.6 清0指令102
3.6 控制转移类指令102
3.6.1 无条件转移指令103
3.6.2 条件跳转指令103
3.6.3 调用子程序及返回指令104
3.6.4 其他控制类指令106
3.7 位操作指令106
3.7.1 位修正指令107
3.7.2 位测试转移指令108
3.8 比较和测试指令109
3.8.1 比较指令109
3.8.2 逻辑位比较指令110
3.8.3 测试指令110
第4章 汇编语言程序设计
4.1 概述111
4.1.1 程序设计语言111
4.1.2 汇编语言源程序的格式112
4.1.3 汇编语言程序设计步骤113
4.2 基本汇编伪指令114
4.2.1 段伪指令SEGMENT114
4.2.2 汇编结束指令END116
4.2.3 定义变量伪指令DS116
4.2.4 定义常量伪指令DC 117
4.2.5 赋值伪指令EQU和CEQU119
4.2.6 定义伪指令#DEFINE120
4.2.7 外部符号指令EXTERN120
4.2.8 公共符号指令PUBLIC121
4.2.9 默认类型指令122
4.2.10 数字表达方式123
4.3 汇编程序中地址的定位123
4.3.1 一般程序的地址定位123
4.3.2 重定位 125
4.3.3 段的定位 126
4.3.4 关于变量的初始化与定位127
4.4 条件编译130
4.4.1 条件编译的句法格式130
4.4.2 条件编译举例130
4.5 宏的应用132
4.5.1 宏伪指令的格式与作用132
4.5.2 可替换参数133
4.5.3 局部符号LOCAL134
4.5.4 宏定义中的条件表达式136
4.6 程序设计实例138
4.6.1 顺序程序设计138
4.6.2 循环程序设计139
4.6.3 分支程序设计140
4.6.4 查表程序设计141
4.6.5 子程序设计141
4.6.6 综合编程举例143
第5章 片上外围电路
5.1 输入/输出端口148
5.1.1 I/O端口简介148
5.1.2 输入模式151
5.1.3 输出模式151
5.1.4 复用功能151
5.1.5 I/O端口的外部中断功能152
5.1.6 I/O端口设置153
5.1.7 I/O端口的引脚特性参数154
5.2 LITE定时器155
5.2.1 主要特性155
5.2.2 LITE定时器的结构和原理156
5.2.3 LITE定时器中的寄存器157
5.2.4 时钟功能说明158
5.2.5 看门狗功能159
5.2.6 输入捕获功能160
5.2.7 LITE定时器的中断161
5.3 12位自动重装载定时器AT161
5.3.1 AT的主要特点161
5.3.2 AT的结构及工作原理161
5.3.3 AT定时器的寄存器162
5.3.4 PWM工作模式166
5.3.5 输出比较方式167
5.3.6 中断168
5.3.7 低功耗模式下的AT定时器168
5.4 LT2定时器168
5.4.1 主要特点169
5.4.2 LT2定时器的组成与原理169
5.4.3 寄存器说明170
5.4.4 功能介绍171
5.4.5 中断与低功耗模式172
5.5 看门狗定时器WDG172
5.5.1 主要特性172
5.5.2 看门狗定时器的组成172
5.5.3 看门狗的寄存器 173
5.5.4 看门狗的工作174
5.5.5 设计看门狗的复位时间间隔174
5.5.6 低功耗模式176
5.6 12位自动重装载定时器2(AT2)176
5.6.1 主要特性176
5.6.2 AT2的功能结构177
5.6.3 AT2的寄存器178
5.6.4 功能说明183
5.6.5 中断185
5.7 16位定时器186
5.7.1 主要特性186
5.7.2 16位定时器的组成187
5.7.3 16位定时器的寄存器188
5.7.4 定时器功能192
5.7.5 输入捕获功能194
5.7.6 输出比较功能195
5.7.7 单脉冲模式198
5.7.8 脉宽调制模式199
5.7.9 低功耗模式200
5.7.10 中断201
5.8 SPI串行外围接口201
5.8.1 主要特性201
5.8.2 基本组成与功能202
5.8.3 SPI的寄存器203
5.8.4 主模式操作206
5.8.5 从模式操作208
5.8.6 时钟相位和时钟极性209
5.8.7 错误标志及处理209
5.8.8 SPI系统配置与功能介绍210
5.8.9 低功耗模式211
5.8.10 SPI的中断212
5.9 SCI串行通信接口212
5.9.1 主要特性212
5.9.2 SCI接口的结构及组成213
5.9.3 串行数据的帧格式214
5.9.4 SCI的寄存器215
5.9.5 发送器221
5.9.6 接收器222
5.9.7 常规波特率的设置223
5.9.8 扩展波特率的设置223
5.9.9 接收暂停和唤醒功能224
5.9.10 奇偶控制225
5.9.11 低功耗模式226
5.9.12 中断226
5.10 8位A/D转换器226
5.10.1 主要特点及技术指标226
5.10.2 模/数转换器的结构与原理227
5.10.3 模/数转换器的寄存器228
5.10.4 A/D转换的操作过程230
5.10.5 输入电压放大器230
5.10.6 A/D转换结果230
5.10.7 A/D转换时序231
5.10.8 低功耗模式231
5.11 10位A/D转换器232
5.11.1 主要特点232
5.11.2 结构与原理232
5.11.3 模/数转换寄存器234
5.11.4 A/D转换结果236
5.11.5 A/D转换操作过程236
5.11.6 低功耗模式237
第6章 开发工具和开发方法
6.1 inDARTST7FLITE0简介238
6.1.1 inDARTST7FLITE0的主要优点238
6.1.2 inDARTST7FLITE0的工作原理239
6.1.3 ICP在线编程239
6.1.4 IDBST7FLITE0演示面板240
6.1.5 STVD7综合开发环境242
6.2 inDARTST7FLITE0的安装242
6.2.1 inDARTST7FLITE0系统的配置242
6.2.2 硬件安装243
6.2.3 软件安装243
6.3 STVD7开发工具244
6.3.1 STVD7简介244
6.3.2 编译连接过程244
6.3.3 汇编命令ASM246
6.3.4 连接命令 LYN247
6.3.5 格式化命令OBSEND248
6.3.6 库命令LIB248
6.4 STVD7应用指南249
6.4.1 启动运行STVD7249
6.4.2 建立或进入工作区250
6.4.3 文件编辑252
6.4.4 编译连接253
6.4.5 配置MCU254
6.4.6 断点说明256
6.4.7 执行命令说明256
6.4.8 inDARTST7FLITE0的应用限制257
6.4.9 ICP编程功能258
6.5 调试应用实例258
6.5.1 例题说明259
6.5.2 调试前的准备259
6.5.3 建立工作区259
6.5.4 编写程序源文件259
6.5.5 建立批处理命令文件261
6.5.6 编译连接程序262
6.5.7 调试程序262
6.6 故障处理266
6.6.1 inDARTST7FLITE0不能通信266
6.6.2 运行速度太慢266
6.6.3 用户程序执行时中途停止266
6.6.4 未执行中断处理程序267
6.6.5 程序工作不正常267
6.6.6 显示通信错误267
第7章 ST7系列单片机应用实例
7.1 I/O应用举例268
7.2 定时器应用举例270
7.3 A/D转换应用举例276
7.4 ST7和PC机间的SCI串行通信278
7.4.1 系统组成278
7.4.2 配置ST72324279
7.4.3 PC机的串行通信280
7.4.4 软件设计281
7.5 ST7单片机的SPI通信287
7.5.1 系统组成287
7.5.2 ST7FLITE0的配置287
7.5.3 M95040 EEPROM简介289
7.5.4 ST7与EEPROM的通信软件说明291
7.5.5 ST7单片机与多个EEPROM通信295
附录AST公司8位单片机部分产品参数表
附录BST7指令表
附录CST7指令指令操作码简表
参考文献
为适应社会发展的需要,20多年来,单片机不断地更新换代,新产品层出不穷,发展极为迅速。目前,单片机已成为工控领域、尖端武器、日常生活中最广泛使用的计算机。在单片机的大家族中,不是一枝独秀,而是百花齐放。近年来在国际上较有名、有较大影响的公司的单片机既有很多共性,又各具特色,因而在国际市场上都占有一席之地。本书将为用户介绍这个大家族中的一位中国用户还不熟悉的成员,此即ST7系列单片机,是意法半导体公司的产品。
意法半导体公司是1987年6月在意大利的SGS微电子公司和法国的汤姆逊微电子公司合并后产生的。1998年5月,公司由原来的SGS汤姆逊(SGSTHOMSON)微电子公司改名为意法半导体公司(STMicroelectronics),简称ST公司。自成立以来,公司已显著地扩大和提高了产品范围和技术,在2002年被世界市场研究机构Gartner Dataquest评为全球第四大芯片生产厂商。意法半导体公司是单片机世界的一支生力军,虽然起步较晚,但发展迅速,在2001年的最终排榜中,该公司分别被iSuppli和IC权威工业分析家排名第二和第三。
1996年,ST发布了一项重要的被称为超级FLASH的新存储器技术。这是一项结合了FLASH和EEPROM创新的非易失性存储器技术,可有效地使用标准FLASH技术提供全部EEPROM的功能。
意法半导体公司生产的半导体范围很广,从单个的晶体管到将成百万电路元件集成到一个硅片上的微处理器。可提供3 000多种主要产品类型,产品种类覆盖了主要的半导体设备:专门的IC、微处理器、存储器、标准的IC器件以及离散器件。它们被应用到各种不同的产品中,主要是无线电通信和网络、数字电子、计算机外设、智能卡及汽车电子。
ST公司单片机产品的主要特点是有较高的性能价格比,较强的抗电磁干扰能力,多种可编程低功耗方式等。特别是它们有很多产品是针对用户需要,专门设计的定制化芯片,应用效率很高。
ST公司的ST5、ST6、ST7、ST9等均为8位单片机产品,我们在本书中介绍的ST7FLITE和ST72324系列属于ST7系列。除8位单片机外,ST还有其他系列的高位单片机产品:
ST10系列是16位单片机,时钟频率为40 MHz,指令通常的执行速度为20 MIPS(百万条指令/秒) 。它的功能强,速度快,功耗低。
ST20系列是32位单片机,可以与其他电路结合成为拥有强大计算能力的综合电路。可用于通过卫星(GPS)系统的全球定位系统上。
ST40系列是32位单片机,主机频率为200 MHz,执行速度为360 MIPS。每秒浮点运算次数高达12 000次,总线支持2MB存储器,具有32位通用设接口等。
ST100系列用于数字信号处理器、无线终端、网络、宽带调制解调器、IP语音、数据存储和移动多媒体应用等。
STPC系列是32位微处理器,用于功能强大的X86核心和有多个外设单元选择的32位嵌入式微处理器系列。
μPSD系列是可编程系统器件,其核心是8032微控制器,外围辅以双片闪存、可编程逻辑器件、输入/输出和各种外设。闪存和SRAM的容量分
别达到288KB和8KB。
本书以ST7FLITE和ST72324系列单片机为主线进行介绍。
全书共7章:第1章概括介绍意法半导体公司的ST7系列单片机;第2章介绍ST7FLITE和ST72324系列单片机的结构及原理;第3章介绍ST7指令系统;第4章介绍汇编语言程序设计;第5章介绍ST7FLITE和ST72324系列单片机的片上外围电路(如定时器、A/D、SPI等);第6章介绍开发工具;第7章介绍应用实例。
意法半导体公司提供了全部技术资料。为能更深入地了解这种单片机,笔者从网上查阅、翻译了大量英文资料。本书是在对原文消化、理解的基础上,重新整理、编写而成的。为使我国读者更容易接受本书的内容,为能更好地说明问题,在编写过程中加进了笔者在以往单片机著作(见参考文献)中对某些问题的论述,并编写了应用例题。
本书由张迎新主编,雷文编写了第2章、5.1~5.3节,陈胜编写了第4章、7.4节,迟明华编写了第3章、6.5节,程龙编写了5.4~5.6节,余明明编写了5.7~5.9节,王旭编写了5.10、5.11节,刘嘉璐编写了7.4节,张帆编写了1.3节,其余由张迎新统一编写、审校。迟明华、张帆、王旭帮助画了本书的插图。
在本书的编写过程中,得到了意法半导体公司亚太地区单片机部梁平经理和刘海洋工程师的大力支持和帮助,特别是梁平经理为本书初稿做了大量认真细致的修订工作,在此一并表示诚挚的感谢。
由于水平所限,错误和不妥之处,请读者批评指正。
编者
2004.5