图书简介:
第1章 单片机概论 1
1.1 微处理器、微型计算机与单片机 1
1.2 单片机的结构与组成 2
1.3 单片机的分类和指标 3
1.4 常用的单片机系列 4
1.5 单片机的特点 6
1.6 单片机应用系统 6
1.7 单片机的应用领域 6
本章小结 8
习题1 8
第2章 单片机系统电路基础 9
2.1 数制与编码 9
2.1.1 进位计数制 9
2.1.2 进位计数制的相互转换 10
2.1.3 数码和字符的代码表示 11
2.2 单片机系统常用数字集成电路 13
2.2.1 常用的逻辑门电路 13
2.2.2 集电极开路门输出电路 16
2.2.3 常用组合逻辑电路 17
2.2.4 常用时序逻辑电路 22
2.3 单片机系统中的常用存储器电路 24
2.3.1 RAM存储器 25
2.3.2 ROM存储器 29
本章小结 31
习题2 32
第3章 单片机应用系统的研制与开发环境 34
3.1 单片机应用系统的研制步骤和方法 34
3.1.1 总体设计 35
3.1.2 硬件系统 35
3.1.3 软件系统 36
3.2 单片机应用系统开发的软、硬件环境 38
3.2.1 单片机应用系统开发的软、硬件环境构成 38
3.2.2 单片机应用系统开发工具选择原则 39
3.2.3 使用JTAG界面单片机仿真开发环境 39
3.2.4 单片机的在线编程 40
3.3 Keil C51高级语言集成开发环境——µVision3 IDE 40
3.3.1 µVision3 IDE主要特性 41
3.3.2 µVision3 IDE集成开发环境 42
3.3.3 µVision3 IDE的使用 45
3.3.4 Keil C51中printf库函数 54
3.4 基于Proteus的单片机系统仿真 54
3.4.1 Proteus 7 Professional界面介绍 55
3.4.2 绘制电路原理图 57
3.4.3 Proteus VSM与µVision3的联调 61
3.4.4 Proteus VSM中的电源、复位与时钟 64
本章小结 64
习题3 65
第4章 80C51单片机硬件基础知识 66
4.1 MCS-51系列及80C51系列单片机简介 66
4.1.1 MCS -51系列和80C51系列单片机 66
4.1.2 80C51系列单片机的三次技术飞跃 67
4.1.3 高性能80C51单片机的特点 68
4.2 80C51系列单片机外引脚功能 68
4.3 80C51单片机内部结构 72
4.3.1 中央处理器(CPU) 72
4.3.2 存储器组织 75
4.3.3 并行输入/输出端口结构 85
4.3.4 时钟电路 90
4.3.5 复位电路 92
4.4 低功耗运行方式 94
4.4.1 电源控制寄存器PCON 95
4.4.2 待机方式 95
4.4.3 掉电方式 95
4.5 80C51单片机最小系统 96
本章小结 97
习题4 98
第5章 80C51单片机软件基础知识 99
5.1 80C51单片机指令系统概述 99
5.1.1 指令的概念 99
5.1.2 指令系统说明 100
5.1.3 80C51指令系统助记符 100
5.1.4 指令系统中的特殊符号 102
5.2 80C51单片机寻址方式 102
5.2.1 寄存器寻址方式 103
5.2.2 直接寻址方式 103
5.2.3 寄存器间接寻址方式 103
5.2.4 立即寻址方式 104
5.2.5 变址间接寻址方式 105
5.2.6 相对寻址方式 105
5.2.7 位寻址方式 105
5.3 80C51单片机指令系统 107
5.3.1 数据传送类指令 107
5.3.2 算术运算类指令 111
5.3.3 逻辑运算类指令 114
5.3.4 控制转移类指令 116
5.3.5 位操作指令 119
5.4 80C51汇编语言程序设计 123
5.4.1 伪指令 124
5.4.2 汇编语言程序设计举例 124
5.5 80C51单片机C51程序设计语言 126
5.5.1 C51的标识符和关键字 127
5.5.2 C51编译器能识别的数据类型 129
5.5.3 变量的存储种类和存储器类型 132
5.5.4 绝对地址的访问 137
5.5.5 中断服务程序 139
5.6 C51的运算符和表达式 140
5.6.1 赋值运算符 140
5.6.2 算术运算符 141
5.6.3 关系运算符 141
5.6.4 逻辑运算符 142
5.6.5 位运算符 142
5.6.6 复合运算符 143
5.6.7 指针和地址运算符 143
5.7 C51的库函数 143
5.7.1 本征库函数和非本征库函数 143
5.7.2 几类重要的库函数 144
5.8 C51的应用技巧 148
本章小结 151
习题5 153
第6章 80C51单片机内部资源及应用 156
6.1 中断系统和外中断 156
6.1.1 中断技术概述 156
6.1.2 80C51单片机中断系统 158
6.1.3 C51中断服务函数 164
6.1.4 外部中断的应用实例 165
6.2 定时器/计数器 167
6.2.1 定时器/计数器0、1的结构及工作原理 168
6.2.2 定时器/计数器0、1的4种工作方式 170
6.2.3 定时器/计数器对输入信号的要求 175
6.2.4 定时器/计数器0、1的编程和应用实例 176
6.2.5 定时器/计数器2 181
6.3 串行通信 183
6.3.1 串行通信基础知识 183
6.3.2 80C51串行接口 186
6.3.3 应用实例 194
本章小结 199
习题6 201
第7章 单片机外部扩展资源及应用 203
7.1 单片机外部扩展资源和扩展编址技术概述 203
7.1.1 单片机外部扩展资源分类 203
7.1.2 单片机系统扩展结构与编址技术 204
7.1.3 单片机系统存储器扩展方法 206
7.2 并行I/O接口扩展 207
7.2.1 8255可编程并行I/O接口芯片 207
7.2.2 用74HC系列芯片扩展I/O接口 213
7.3 大容量闪速存储器的扩展 215
7.3.1 Super Flash 39SF040简介 215
7.3.2 89C52单片机和39SF040接口方法 216
7.4 单片机系统中的键盘接口技术 218
7.4.1 键盘工作原理及消抖 218
7.4.2 独立式键盘及其工作原理 219
7.4.3 行列式键盘及其工作原理 221
7.4.4 键盘扫描的控制程序 222
7.5 单片机系统中的LED数码显示器 222
7.5.1 LED显示器的结构与原理 222
7.5.2 LED静态显示接口 223
7.5.3 LED动态扫描显示接口 225
7.6 单片机系统中的LCD液晶显示器 227
7.6.1 字符型液晶显示模块的组成和基本特点 227
7.6.2 LCD1602模块接口引脚功能 228
7.6.3 LCD1602模块的操作命令 229
7.6.4 LCD1602与89C52单片机接口与编程 233
7.6.5 点阵式图形LCD显示器的组成和基本特点 237
7.7 日历时钟接口芯片及应用 241
7.7.1 并行接口日历时钟芯片DS12887 241
7.7.2 串行接口日历时钟芯片DS1302 245
7.8 单片机数据采集系统 248
7.8.1 并行A/D转换器ADC0809 249
7.8.2 串行A/D转换器TLC2543 251
7.9 I2C总线接口电路E2PROM及其应用 253
7.9.1 串行E2PROM电路CAT24WCXX
概述 254
7.9.2 串行E2PROM芯片的操作 255
7.9.3 串行E2PROM芯片与89C52的接口与编程 257
7.10 RS-232C和RS-485/422通信接口 258
7.10.1 RS-232C接口的物理结构、电气特性、信号内容 258
7.10.2 RS-485/422接口 265
本章小结 267
习题7 268
第8章 单片机应用系统设计实例 269
8.1 设计要求 269
8.2 总体方案 269
8.3 硬件电路设计 270
8.3.1 CPU单元 270
8.3.2 步进电机单元 270
8.3.3 电梯内部状态显示单元 271
8.3.4 电梯内部按键操作单元 271
8.3.5 电梯外部按键操作单元和电梯外部状态显示单元 271
8.3.6 电源供电模块 272
8.4 软件设计 272
8.4.1 主程序模块 273
8.4.2 每到一层的状态控制 274
8.4.3 内部按键扫描 274
8.4.4 外部按键扫描 274
8.5 仿真测试 275
8.5.1 测试正常功能 275
8.5.2 测试异常功能 276
本章小结 276
第9章 多任务实时操作系统RTX-51 277
9.1 RTX-51实时多任务操作系统简介 277
9.1.1 单任务程序与多任务程序的比较 277
9.1.2 使用RTX-51 TINY的软硬件要求 279
9.1.3 使用RTX-51 TINY的注意事项 280
9.2 RTX-51 TINY的任务管理 281
9.2.1 定时器滴答中断 281
9.2.2 任务 282
9.2.3 任务状态 282
9.2.4 事件 282
9.2.5 任务调度 283
9.2.6 任务切换 283
9.3 如何使用RTX-51 TINY 286
9.3.1 编写程序 286
9.3.2 编译和连接 287
9.3.3 调试 287
9.3.4 实例1——os_wait函数的使用 288
9.4 RTX-51 TINY提供的系统函数 290
9.5 RTX-51 TINY的配置 297
9.5.1 配置 297
9.5.2 库文件 299
9.5.3 优化 299
9.6 基于Proteus的RTX-51应用实例——交通信号灯控制器 299
9.6.1 交通信号灯控制器设计要求 299
9.6.2 总体方案 300
9.6.3 硬件电路 300
9.6.4 软件设计 302
9.6.5 功能使用说明 304
9.6.6 程序运行与测试 304
本章小结 305
习题9 306
附录A 指令速查表 307
参考文献 312
展开
前 言
单片机是微型计算机应用技术的一个重要分支,单片机应用系统在工业控制、生产自动化、机电一体化设备、电器、智能仪器仪表、家电、航空航天、通信导航、汽车电子、机器人等领域得到了广泛的应用。单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等相关专业的学生、技术人员必须掌握的技术。
各半导体公司推出的1T增强型80C51内核Flash单片机,指令代码完全兼容传统80C51,性能提高8~12倍,赋予了80C51单片机新的生命力。基于此,本书以80C51为背景介绍单片机软硬件构成及应用系统设计。
Keil C51高级语言和ISP技术在Flash单片机中的广泛应用,使得熟练掌握80C51的技术人员不再使用单片机仿真器之类的开发工具,但对于没有任何单片机开发经验的初学者,在学习之初有一定难度。
Proteus是英国Labcenter Electronics公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,实现了单片机仿真与SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及外围电路组成的系统的仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等功能;提供了多种虚拟仪器,如示波器、逻辑分析仪、信号发生器等,便于调试;支持主流单片机系统的仿真。由于Proteus VSM支持第三方集成开发环境IDE,两者联调可以提高开发效率,降低开发成本,尤其适合于单片机教学,实际上Proteus软件工具也提供了从仿真到构成实际硬件系统的全部解决方案。本书第3章开发环境重点介绍Keil C51的集成开发环境——µVision3 IDE和Proteus VSM软件工具的使用方法。
本书第1版于2004年出版,第2版于2008年底出版,至今已8年有余,在此期间,单片机的芯片技术、开发技术等发展迅速,许多读者和老师也以各种方式对本书提出了宝贵意见,正因为如此,使笔者更加感到责任重大,决心对本书再次修订。
第3版修订的内容主要有:
对全书的图、例题和练习做了部分调整,使之更适合教学要求。
在第7章中,7.3节介绍SST39SF040,其具有完整的三总线引脚,可直接配置到微处理器内存空间;7.6节增加了点阵式液晶显示模块LM12864的介绍及使用方法;7.10节介绍虚拟串口及串口仿真元件的使用方法。
第8章以电梯控制器作为单片机应用系统设计实例进行介绍,并给出仿真实例。
第9章介绍80C51系列单片机的多任务实时操作系统RTX-51,结合一个Proteus仿真电路的具体实例——交通信号灯控制器,阐述实时多任务操作系统RTX-51的应用。
本书的配套教材《单片机应用系统设计技术——仿真实验、题库、题解(第3版)》同步修订出版,供读者选用。
为了方便教师备课和读者学习,本书除提供PPT格式教学课件外,对于书中有阴影背景的程序,均配有与其相对应的Proteus格式的单片机仿真电路原理图、相应源程序及工程文件,请登录华信教育资源网www.hxedu.com.cn注册后免费下载。文件下载后,单击PPT课件中的CAI图标,即可打开相应的仿真电路。
本次修订工作由张齐和朱宁西共同完成。在成书过程中,岳亚涛、李蕾、武佳斌、何毅坤、张泽斌、胡恩慈、刘群、李攀登、曾令华、胡佳、张英彬、许志坚、王永光对本书的修订做了大量的工作,作者谨向他们表示衷心的感谢。本书修订又一次得到电子工业出版社的大力支持和帮助,编辑和工作人员们做了大量而细致的工作,在此对他们致以诚挚的谢意。
由于作者水平有限,修订后的教材一定还有不完善之处,书中误漏在所难免,殷切地期望读者给予批评指正。
编著者
2013年7月
展开