第1章 概述 1
1.1 单片机的概念 1
1.2 单片机的特点及发展概况 1
1.3 单片机的基本组成 2
1.3.1 中央处理器 3
1.3.2 存储器 3
1.3.3 输入/输出部件 3
1.4 常用单片机系列介绍 4
1.5 单片机的应用领域 5
1.5.1 单片机的应用 5
1.5.2 单片机应用系统的结构 6
本章小结 7
思考题与习题 7
第2章 单片机的硬件结构 8
2.1 单片机的基本结构 8
2.1.1 单片机的内部结构 8
2.1.2 单片机的封装及引脚定义 12
2.2 单片机的存储器组织 14
2.2.1 程序存储器 14
2.2.2 数据存储器 15
2.3 单片机的并行口结构与操作 18
2.3.1 并行输入/输出端口结构 18
2.3.2 并行输入/输出端口编程举例 19
2.4 单片机的时钟电路与时序 21
2.4.1 振荡器与时钟电路 21
2.4.2 CPU的工作时序 22
2.5 单片机的复位电路 24
2.5.1 复位电路设计 24
2.5.2 复位状态 24
2.6 单片机的低功耗方式 25
2.6.1 电源控制寄存器 25
2.6.2 待机方式 25
2.6.3 掉电方式 25
本章小结 26
思考题与习题 26
第3章 51系列单片机的指令系统和程序设计方法 27
3.1 指令概述 27
3.1.1 指令分类 27
3.1.2 指令格式 27
3.1.3 指令中常用缩写符号的意义 28
3.2 寻址方式 29
3.2.1 立即寻址 29
3.2.2 直接寻址 29
3.2.3 寄存器寻址 29
3.2.4 寄存器间接寻址 30
3.2.5 变址寻址 30
3.2.6 相对寻址 31
3.2.7 位寻址 31
3.3 数据传送类指令 32
3.3.1 内部RAM数据传送指令 32
3.3.2 访问外部RAM数据传送指令 35
3.3.3 程序存储器向累加器A传送数据指令 35
3.3.4 数据交换指令 37
3.3.5 堆栈操作指令 38
3.4 算术运算类指令 39
3.4.1 加法指令 39
3.4.2 减法指令 41
3.4.3 乘法指令 42
3.4.4 除法指令 43
3.5 逻辑运算类指令 43
3.5.1 累加器A的逻辑运算指令 43
3.5.2 两个操作数的逻辑操作运算指令 44
3.6 位操作指令 46
3.6.1 位变量传送指令 46
3.6.2 位变量修改指令 47
3.6.3 位变量逻辑操作指令 47
3.7 控制转移类指令 47
3.7.1 无条件转移指令 48
3.7.2 条件转移指令 49
3.7.3 调用与返回指令 53
3.8 汇编语言程序设计 55
3.8.1 汇编语言程序设计概述 55
3.8.2 常用伪指令 56
3.8.3 顺序结构程序设计 58
3.8.4 分支结构程序设计 59
3.8.5 循环结构程序设计 60
3.8.6 子程序设计 63
本章小结 67
思考题与习题 68
第4章 C51程序设计基础 71
4.1 单片机的C语言概述 71
4.1.1 C51程序开发流程 71
4.1.2 C51程序结构 71
4.2 C51的数据类型与数据存储类型 73
4.2.1 C51的标识符与关键字 73
4.2.2 C51的数据类型 74
4.2.3 C51的数据存储类型 77
4.3 C51的运算符、表达式与规则 79
4.3.1 C51的算术运算符与算术表达式 79
4.3.2 C51的关系运算符、关系表达式与优先级 79
4.3.3 C51的逻辑运算符、逻辑表达式与优先级 80
4.3.4 C51的赋值运算符与表达式 80
4.3.5 C51的位操作及表达式 80
4.3.6 逗号表达式与条件表达式 81
4.4 C51流程控制语句 81
4.4.1 C51的顺序结构 82
4.4.2 C51的选择结构 82
4.4.3 C51的循环结构 83
4.5 C51的数组与结构 83
4.5.1 一维、二维数组 83
4.5.2 结构 84
4.6 C51的指针与函数 85
4.6.1 C51的指针概述 85
4.6.2 C51函数的定义 88
本章小结 90
思考题与习题 90
第5章 中断系统 91
5.1 中断系统概述 91
5.1.1 中断的概念 91
5.1.2 中断系统的功能及特点 91
5.2 51系列单片机的中断系统 92
5.2.1 中断系统结构与中断源 92
5.2.2 中断控制 93
5.3 中断处理过程 97
5.3.1 中断响应与过程 97
5.3.2 中断处理 98
5.3.3 中断返回 99
5.3.4 中断请求撤销 99
5.3.5 中断响应时间 100
5.4 中断系统应用举例 100
本章小结 107
思考题与习题 107
第6章 单片机的定时器/计数器 108
6.1 定时器/计数器的结构及工作原理 108
6.1.1 MCS-51系列单片机定时器/计数器功能 108
6.1.2 定时器/计数器的结构 108
6.1.3 定时器/计数器的控制字 109
6.2 定时器/计数器的工作模式 110
6.2.1 模式0 110
6.2.2 模式1 111
6.2.3 模式2 111
6.2.4 模式3 111
6.3 计数器模式下对输入信号的要求 112
6.4 定时器/计数器的编程和应用 112
6.4.1 定时器/计数器的初始化 112
6.4.2 定时器/计数器的应用 114
本章小结 121
思考题与习题 121
第7章 51系列单片机的串行通信 122
7.1 串行口的结构 122
7.1.1 串行口控制寄存器 122
7.1.2 电源控制寄存器 123
7.2 串行口的4种工作方式 123
7.2.1 方式0 123
7.2.2 方式1 127
7.2.3 方式2 128
7.2.4 方式3 128
7.3 波特率的设定方法 128
7.3.1 波特率的定义 128
7.3.2 定时器T1产生波特率的计算 128
7.3.3 定时器T2产生波特率的计算 129
7.4 串行口的编程和应用 129
7.4.1 双机串行通信硬件接口 130
7.4.2 双机串行通信软件编程 131
本章小结 135
思考题与习题 135
第8章 51系列单片机的存储器和I/O外部扩展 136
8.1 并行扩展技术 136
8.1.1 并行扩展总线 136
8.1.2 扩展方法 137
8.2 串行扩展技术 139
8.2.1 SPI总线 139
8.2.2 I2C总线 141
8.2.3 1-wire总线 141
8.3 存储器扩展 142
8.4 I/O扩展 147
8.4.1 并行扩展I/O 149
8.4.2 串行扩展I/O 155
本章小结 159
思考题与习题 159
第9章 51系列单片机接口技术 160
9.1 键盘接口技术 160
9.1.1 键盘工作原理 160
9.1.2 独立式键盘接口技术 161
9.1.3 矩阵式键盘接口技术 163
9.2 LED显示器接口技术 165
9.2.1 LED显示器的结构与原理 165
9.2.2 静态显示接口技术 166
9.2.3 动态显示接口技术 171
9.3 液晶显示接口技术 174
9.3.1 LCD概述 174
9.3.2 单片机与LCD 1602液晶显示接口 175
9.4 单片机与DAC的接口 182
9.4.1 DAC概述 182
9.4.2 单片机与串行DAC TLC5615的接口设计 183
9.4.3 单片机与并行DAC0832的接口设计 188
9.5 单片机与ADC的接口 191
9.5.1 ADC概述 191
9.5.2 单片机与串行ADC ADC0832的接口设计 192
9.5.3 单片机与并行ADC ADC0809的接口 196
9.5.4 单片机与数模/模数转换器PCF8591的接口设计 199
本章小结 202
思考题与习题 202
第10章 51系列单片机应用系统的开发环境 204
10.1 51系列单片机应用系统开发的软、硬件环境 204
10.1.1 单片机应用系统开发的软、硬件环境构成 204
10.1.2 使用JTAG界面的单片机开发环境 204
10.1.3 单片机的在线编程 205
10.2 Keil C51高级语言集成开发环境——μVision4 IDE 205
10.2.1 Keil C51软件简介 205
10.2.2 μVision4IDE界面介绍 206
10.2.3 μVision4IDE的举例使用 207
10.2.4 Keil C51中printf函数 214
10.3 基于Proteus的单片机系统仿真 214
10.3.1 Proteus软件简介 214
10.3.2 ISIS 7 Professional界面介绍 214
10.3.3 ISIS 7 Professional的举例使用 216
10.3.4 ProteusISIS与μVision4的联调 220
本章小结 222
思考题与习题 222
第11章 51系列单片机应用系统设计 223
11.1 单片机应用系统结构及设计过程 223
11.1.1 硬件设计 224
11.1.2 软件设计 225
11.2 单片机应用系统的抗干扰技术 226
11.2.1 干扰源 226
11.2.2 硬件抗干扰方法 226
11.2.3 软件抗干扰方法 227
11.3 基于单片机的温室温度控制系统 228
11.3.1 系统简介 228
11.3.2 硬件设计 228
11.3.3 软件设计 229
本章小结 233
思考题与习题 233
附录 234
附录A ASCII码对照表 234
附录B MCS-51系列单片机汇编语言指令表(A) 235
附录C MCS-51系列单片机汇编语言指令表(B) 239
参考文献 242