第1章 绪论 1
1.1 单片机及其特点概述 1
1.1.1 微处理器、微机和单片机的概念 1
1.1.2 单片机的一般结构及特点 2
1.2 单片机的发展与常用系列简介 2
1.2.1 单片机的发展概况 2
1.2.2 常用单片机系列简介 3
1.3 单片机的应用领域 7
1.3.1 单片机在实时控制系统中的应用 7
1.3.2 单片机在智能仪器仪表中的应用 7
1.3.3 单片机在家用电器中的应用 8
1.3.4 单片机在网络通信中的应用 8
1.3.5 单片机在智能机器人中的应用 8
本章小结 9
思考题与习题 9
第2章 MCS-51单片机的硬件结构与工作原理 10
2.1 MCS-51系列单片机的基本组成 10
2.1.1 硬件组成 10
2.1.2 MCS-51单片机的引脚功能 12
2.1.3 振荡器、时钟电路及时序 13
2.2 存储器组织与操作 15
2.2.1 MCS-51程序存储器地址空间 15
2.2.2 MCS-51数据存储器地址空间 16
2.2.3 特殊功能寄存器地址空间 17
2.3 并行I/O接口 20
2.3.1 并行I/O接口的内部结构 20
2.3.2 并行I/O接口的“读一改一写”操作 23
2.3.3 并行I/O接口的负载能力 23
2.4 MCS-51单片机的复位 23
本章小结 25
思考题与习题 25
第3章 MCS-51单片机指令系统与程序设计 26
3.1 MCS-51单片机指令概述 26
3.2 MCS-51单片机的寻址方式 27
3.2.1 立即寻址 27
3.2.2 直接寻址 28
3.2.3 寄存器寻址 28
3.2.4 寄存器间接寻址 28
3.2.5 变址寻址 28
3.2.6 相对寻址 28
3.2.7 位寻址 28
3.3 MCS-51单片机指令系统 29
3.3.1 数据传送与交换类指令 29
3.3.2 算术运算类指令 33
3.3.3 逻辑运算类与循环移位指令 36
3.3.4 控制程序转移类指令 38
3.3.5 位操作类指令 41
3.4 程序设计方法 43
3.4.1 MCS-51伪指令简介 43
3.4.2 汇编语言程序的基本结构 44
3.4.3 子程序及其调用程序设计 48
3.5 应用程序设计举例 50
3.5.1 非数值运算程序设计举例 50
3.5.2 算术运算程序设计举例 52
3.5.3 I/O口控制程序设计 53
本章小结 58
思考题与习题 58
第4章 MCS-51中断系统及应用示例 60
4.1 MCS-51中断系统概述 60
4.1.1 单片机系统访问外部设备的方式 60
4.1.2 MCS-51中断系统的功能 61
4.2 MCS-51中断系统 61
4.2.1 MCS-51中断系统结构 61
4.2.2 MCS-51的中断源 62
4.3 MCS-51中断控制 64
4.3.1 MCS-51中断控制寄存器 64
4.3.2 响应中断的条件及过程 65
4.4 中断应用示例 67
4.4.1 中断程序设计的一般方法 67
4.4.2 MCS-51中断程序设计示例 68
本章小结 70
思考题与习题 70
第5章 MCS-51定时器/计数器及其应用 71
5.1 定时器/计数器的结构与工作原理 71
5.1.1 定时器/计数器的逻辑结构 71
5.1.2 定时器/计数器的工作原理 71
5.2 定时器/计数器的控制与工作方式 72
5.2.1 定时器/计数器的管理与控制 72
5.2.2 定时器/计数器的工作方式 73
5.3 定时器/计数器的应用 76
5.3.1 定时器/计数器计数初始化 76
5.3.2 定时器/计数器计数应用举例 78
5.4 52系列单片机的定时器/计数器及其应用 86
5.4.1 定时器/计数器T2的管理与控制 86
5.4.2 定时器/计数器T2的三种工作模式 87
5.4.3 可编程时钟输出 90
5.4.4 定时器/计数器T2的应用 90
本章小结 92
思考题与习题 92
第6章 MCS-51单片机的串行接口 94
6.1 串行通信概述 94
6.1.1 并行通信与串行通信 94
6.1.2 串行通信的数据传送方向 94
6.1.3 同步通信和异步通信 95
6.1.4 串行通信的波特率 96
6.1.5 串行通信中数据的差错检测与校正 96
6.1.6 串行通信中常用的接口电路 97
6.2 MCS-51的串行通信接口 98
6.2.1 MCS-51串行口结构及工作原理 98
6.2.2 MCS-51串行口的控制与管理 99
6.3 MCS-51串行通信接口的工作方式 100
6.3.1 方式0 100
6.3.2 方式1 101
6.3.3 方式2和方式3 102
6.4 串行通信的波特率设计 104
6.5 串行口的应用程序设计举例 106
6.5.1 方式0应用举例 106
6.5.2 方式1应用举例 107
6.5.3 用方式2作双机点对点通信 109
6.5.4 多机通信程序设计 111
本章小结 117
思考题与习题 117
第7章 单片机C语言程序设计与应用 118
7.1 C51的特点及其结构 118
7.2 C51语言的编程基础 119
7.2.1 C51语言中的常用标识符和关键字 119
7.2.2 C51语言中的数据类型 120
7.2.3 C51的常量和变量、存储器类型及存储区 120
7.2.4 绝对地址访问 122
7.2.5 C51语言常用运算符 123
7.3 C51语言程序设计 126
7.3.1 C51语句和程序结构 126
7.3.2 C51语言中常用库函数 128
7.3.3 C51语言程序常用编译预处理命令 129
7.3.4 C51程序的常用仿真调试工具 130
7.4 C51程序应用举例 130
7.4.1 并行输入/输出口 130
7.4.2 中断服务程序设计 135
7.4.3 定时器/计数器C51程序设计 137
7.4.4 串行接口C51程序设计举例 141
7.4.5 直流电动机控制 148
7.4.6 步进电动机控制 150
本章小结 154
思考题与习题 154
第8章 单片机系统总线与资源扩展 155
8.1 单片机系统扩展的一般方法 155
8.1.1 系统扩展的基本内容与意义 155
8.1.2 系统并行扩展的三总线构造 155
8.1.3 I2C总线的串行扩展技术 157
8.2 程序存储器的扩展 160
8.2.1 程序存储器扩展的基本方法 160
8.2.2 程序存储器扩展实例分析 161
8.3 数据存储器的扩展 162
8.3.1 数据存储器扩展的基本方法 162
8.3.2 数据存储器扩展举例 164
8.4 串行EEPROM的扩展与编程方法 165
8.4.1 虚拟I2 C总线扩展串行EEPROM的方法 165
8.4.2 串行EEPROM扩展举例 167
8.5 I/O口的扩展 170
8.5.1 单片机系统I/O口扩展的基本概念 170
8.5.2 一般I/O口的扩展 172
本章小结 179
思考题与习题 179
第9章 单片机系统人机接口技术 181
9.1 显示器接口技术 181
9.1.1 单片机应用系统中常用的显示器 181
9.1.2 LED显示器及其接口设计 181
9.1.3 LCD及其接口设计 186
9.2 键盘接口技术 191
9.2.1 键盘接口的特点与监控管理程序的任务 191
9.2.2 独立式键盘接口 193
9.2.3 矩阵式键盘接口 194
本章小结 201
思考题与习题 201
第10章 数-模与模-数转换接口 203
10.1 D-A转换器及其接口电路 203
10.1.1 D-A转换器的主要技术参数 203
10.1.2 D-A转换器与单片机的接口方法 204
10.1.3 并行D-A转换器接口电路的设计与应用 205
10.1.4 串行D-A转换器与单片机的接口与应用 212
10.2 A-D转换器及其接口电路 216
10.2.1 A-D转换器的主要技术参数 217
10.2.2 A-D转换器与单片机的接口方法 217
10.2.3 并行A-D转换器接口电路的设计与应用 219
10.2.4 串行A-D转换器与单片机的接口与应用 223
本章小结 232
思考题与习题 233
第11章 单片机应用系统设计与项目实例 234
11.1 单片机应用系统设计概述 234
11.1.1 明确任务要求及确定设计方案 234
11.1.2 应用系统的硬件设计 235
11.1.3 应用系统的软件设计 235
11.2 项目设计示例1——数字温度测量系统设计 236
11.2.1 系统设计要求与方案确定 236
11.2.2 硬件电路设计与器件选择 237
11.2.3 系统软件设计 242
11.3 项目设计示例2——红外遥控避障小车应用系统设计 257
11.3.1 系统设计要求与方案确定 257
11.3.2 硬件电路设计与器件选择 258
11.3.3 系统软件设计 262
11.4 应用系统调试与运行 271
11.4.1 系统硬件制作及硬件调试方法 272
11.4.2 软件调试方法 272
11.5 提高单片机应用系统可靠性的方法与措施 274
11.5.1 单片机应用系统中常见的干扰现象及影响 274
11.5.2 单片机应用系统的抗干扰设计 274
本章小结 277
思考题与习题 277
附录 278
附录A MCS-51单片机指令表 278
附录B ASCII码表 282
附录C ANSI C标准的关键字 282
参考文献 284