第1章 单片机概述 1
1.1 单片机的定义 1
1.2 单片机的发展概况及发展趋势 1
1.2.1 单片机的发展概况 1
1.2.2 单片机的发展趋势 2
1.3 单片机的结构特点与应用 3
1.3.1 单片机的结构特点 3
1.3.2 单片机的应用 4
1.4 常用单片机系列简介 4
1.5 MCS-51系列单片机介绍 9
1.6 单片机系统的设计方法与要点 10
1.7 单片机的选择与学习方法 12
1.7.1 单片机的选择 12
1.7.2 单片机课程的学习方法 13
1.7.3 单片机开发技能的提高 13
思考题与习题 15
第2章 MCS-51系列单片机的硬件结构与工作原理 16
2.1 MCS-51系列单片机的基本组成 16
2.1.1 MCS-51系列单片机的基本功能特性 16
2.1.2 MCS-51系列单片机的硬件组成 16
2.2 MCS-51系列单片机的管脚与功能 19
2.2.1 8051型管脚与功能 19
2.2.2 其他与8051兼容的单片机管脚排列与功能 21
2.3 MCS-51系列单片机存储器的结构 23
2.3.1 程序存储器 24
2.3.2 片内数据存储器 24
2.3.3 片外数据存储器 28
2.4 单片机I/O端口逻辑结构 29
2.4.1 P0口逻辑结构 29
2.4.2 P1口逻辑结构 30
2.4.3 P2口逻辑结构 31
2.4.4 P3口逻辑结构 31
2.4.5 I/O口的“读—修改—写”操作 32
2.5 单片机的工作时序及时钟电路 33
2.5.1 时序的基本概念 33
2.5.2 典型的时序 34
2.5.3 CPU对外部存储器操作的时序 35
2.5.4 MCS-51系列单片机的时钟电路 37
2.6 MCS-51系列单片机的复位及省电方式 37
2.6.1 复位方式 37
2.6.2 复位电路 38
2.6.3 省电方式 39
思考题与习题 41
第3章 MCS-51系列单片机指令系统 43
3.1 指令系统概述 43
3.1.1 指令的表示形式 43
3.1.2 指令的格式 44
3.2 指令系统的寻址方式 45
3.3 MCS-51指令系统 49
3.3.1 数据传送类指令 49
3.3.2 算术操作类指令 57
3.3.3 逻辑操作类指令 64
3.3.4 控制转移类指令 68
3.3.5 布尔操作类指令 73
思考题与习题 76
第4章 汇编语言程序设计 79
4.1 程序设计语言概述 79
4.2 汇编语言程序设计要点 80
4.3 常用的伪指令 80
4.4 汇编程序的基本设计 83
4.4.1 顺序结构程序设计 83
4.4.2 分支程序设计 85
4.4.3 循环程序设计 88
4.4.4 查表程序设计 91
4.4.5 子程序设计与调用 93
4.4.6 算术程序设计 99
4.4.7 数码转换程序设计 102
4.5 汇编语言实用子程序 105
4.5.1 二进制乘除运算子程序 105
4.5.2 十进制(BCD码)运算子程序 110
4.5.3 数码转换子程序 116
思考题与习题 119
第5章 C51程序设计 121
5.1 C51语言特点 121
5.2 标识符与关键字 122
5.3 C51程序设计的基本规则 124
5.3.1 数据类型与存储模式 124
5.3.2 对硬件主要资源的定义 128
5.3.3 运算符与表达式 130
5.4 基本语句 135
5.4.1 说明与表达式语句 135
5.4.2 复合语句 136
5.4.3 条件语句 136
5.4.4 开关与跳转语句 138
5.4.5 循环语句 140
5.4.6 函数调用语句与返回语句 141
5.4.7 空语句 142
5.5 函数 142
5.5.1 函数的定义 142
5.5.2 函数的调用 144
5.5.3 main函数 146
5.5.4 C51中断函数 146
5.5.5 C51库函数 147
5.6 C51数据结构 148
5.6.1 数组 148
5.6.2 指针 151
5.6.3 结构 155
5.7 预处理 157
5.7.1 文件包含指令 157
5.7.2 宏定义 157
5.7.3 条件编译 158
5.7.4 其他预处理命令 160
思考题与习题 160
第6章 MCS-51系列单片机的中断系统 162
6.1 中断的概念 162
6.1.1 中断的过程 162
6.1.2 中断源 163
6.1.3 中断的优点 164
6.2 MCS-51系列单片机的中断系统 164
6.2.1 中断系统的结构与控制 164
6.2.2 MCS-51系列单片机中断响应与返回 168
6.3 中断程序的设计与应用 170
6.3.1 中断服务程序的设计结构 170
6.3.2 中断的应用举例 172
思考题与习题 175
第7章 MCS-51系列单片机定时/计数器 177
7.1 定时/计数器的工作原理 177
7.2 定时/计数器所用到的寄存器 178
7.3 定时/计数器的控制 179
7.3.1 定时/计数器的设置 179
7.3.2 定时/计数器的工作模式 180
7.3.3 8052定时/计数器2的设置 183
7.4 定时/计数器的应用 185
7.4.1 应用注意事项 185
7.4.2 应用举例 186
思考题与习题 189
第8章 MCS-51系列单片机的串行接口 191
8.1 串行通信的基本知识 191
8.1.1 异步通信和同步通信 191
8.1.2 数据传送方向与波特率 192
8.2 MCS-51系列单片机的串行接口 193
8.2.1 MCS-51系列单片机串行接口的结构 193
8.2.2 串行口的4种工作模式 195
8.2.3 波特率的设置 198
8.3 串口多机通信 199
8.4 RS232通信电平 200
8.5 串行通信的应用举例 202
思考题与习题 210
第9章 单片机系统的扩展与接口技术 212
9.1 单片机系统扩展的原理 212
9.2 外部存储器的扩展 215
9.2.1 外部程序存储器的扩展 215
9.2.2 外部数据存储器的扩展 218
9.2.3 多片存储器的扩展与地址分配 221
9.3 输入/输出接口的扩展 223
9.3.1 用74系列器件扩展I/O口 223
9.3.2 用专用芯片扩展I/O口 227
9.4 键盘的接口技术 233
9.4.1 键盘工作原理 234
9.4.2 键盘与单片机的接口 235
9.5 显示器接口技术 238
9.5.1 LED数码管显示器的结构 239
9.5.2 LED数码管显示器的原理与接口 240
9.6 A/D转换器接口技术 247
9.6.1 双积分A/D转换器及接口 248
9.6.2 逐次逼近式A/D转换器及接口 252
9.7 D/A转换器接口技术 257
9.7.1 D/A转换器的基本原理 257
9.7.2 串行D/A转换器的接口 258
9.8 开关电路及驱动电路接口 260
9.8.1 开关电路接口 261
9.8.2 光电耦合器接口 262
思考题与习题 263
第10章 单片机应用系统的设计与开发 265
10.1 单片机应用系统的开发过程 265
10.1.1 总体设计 265
10.1.2 硬件与软件设计 266
10.2 单片机系统的可靠性设计 268
10.2.1 干扰来源 268
10.2.2 硬件抗干扰方法 268
10.2.3 软件抗干扰方法 270
10.3 Keil C51开发工具简介 271
10.4 应用系统的调试 274
10.4.1 硬件与软件的调试方法 275
10.4.2 通过串口工具调试方法 276
10.4.3 目标代码的下载 276
思考题与习题 277
第11章 单片机应用与实践指导 278
11.1 基本实践指导 278
11.1.1 流水灯功能的实现与编程 278
11.1.2 按键与数码管显示功能与编程 280
11.1.3 串行口接口实验 283
11.1.4 A/D转换接口与实验 286
11.1.5 D/A转换器接口与编程实验 288
11.1.6 I2C、SPI接口实验 292
11.1.7 数字钟接口实验 302
11.1.8 微型打印机接口实验 308
11.2 综合实践指导 310
11.2.1 点阵LED显示器驱动与接口实验 310
11.2.2 点阵LCD显示器接口实验 321
11.2.3 温度测量与控制实验 332
思考题与习题 335
参考文献 337