第一章 绪论 1
1.1 单片机与嵌入式系统 1
1.1.1 计算机技术发展与嵌入式系统兴起 1
1.1.2 单片机技术发展史 3
1.1.3 单片机技术发展方向 5
1.2 单片机的应用模式 7
1.2.1 单片机应用系统结构 7
1.2.2 单片机种类与供应状态 8
1.2.3 单片机的应用模式 10
1.3 单片机应用系统开发过程 11
1.4 本教程特点及教学安排 11
1.4.1 教程编写的指导思想 11
1.4.2 教程体系结构 14
1.4.3 教学组织要求 14
练习与思考 15
第二章 单片机基本结构与工作原理 16
2.1 单片机的典型结构及应用特性 16
2.1.1 单片机的典型结构 16
2.1.2 典型单片机的结构特点 18
2.1.3 单片机的运行管理方式 19
2.1.4 单片机应用的扩展方式 20
2.2 80C51系列单片机基础结构与资源配置 20
2.2.1 80C51系列基础结构 20
2.2.2 80C51系列的内部资源扩展 22
2.2.3 80C51系列的内部资源删减 24
2.3 80C51单片机的外部特性 25
2.3.1 引脚分配及功能描述 25
2.3.2 引脚功能分类 26
2.3.3 引脚应用特性 27
2.4 80C51的SFR运行管理模式 28
2.4.1 80C51的SFR 28
2.4.2 SFR的寻址方式 31
2.4.3 SFR的复位状态 32
2.5 80C51的I/O端口及应用特性 32
2.5.1 I/O端口的结构 32
2.5.2 I/O端口应用特性 33
2.6 80C51的存储器系统及操作方式 34
2.6.1 存储器系统结构 34
2.6.2 程序存储器及其操作 34
2.6.3 数据存储器及其操作 35
练习与思考 37
第三章 80C51系列单片机指令系统 39
3.1 指令系统基础 39
3.1.1 指令格式与符号约定 39
3.1.2 CPU时序与指令操作 40
3.1.3 指令系统的寻址方式 42
3.2 指令系统分类与速解 44
3.2.1 指令分类图解 44
3.2.2 指令系统速解表 51
3.2.3 指令系统速查表 56
3.3 典型指令的应用 58
3.3.1 查表与查表指令操作 58
3.3.2 程序散转与散转指令 60
3.3.3 十进制调整与调整指令 61
3.3.4 比较指令的分支转移 61
3.3.5 逻辑指令与字节状态操作 62
3.3.6 移位指令与串行数据传送 63
练习与思考 64
第四章 80C51基本功能单元结构与操作原理 65
4.1 定时器/计数器的基本结构与操作方式 65
4.1.1 定时器/计数器的基本组成 65
4.1.2 定时器/计数器的SFR 65
4.1.3 定时器/计数器的工作方式 66
4.1.4 定时器/计数器应用指导与基本练习 68
4.2 中断系统基本结构与操作方式 72
4.2.1 中断系统的基本组成 72
4.2.2 中断系统中的SFR 73
4.2.3 中断响应的自主操作过程 74
4.2.4 中断系统应用指导与基本练习 75
4.3 串行口基本结构与操作方式 80
4.3.1 串行口的基本组成 80
4.3.2 串行口的SFR 81
4.3.3 串行口的工作方式 81
4.3.4 串行口应用指导与基本练习 83
练习与思考 89
第五章 单片机最小应用系统设计 90
5.1 典型单片机应用系统结构设计 90
5.1.1 单片机应用系统的典型结构 90
5.1.2 单片机的广泛选择 92
5.1.3 应用系统中的系统扩展和系统配置 95
5.2 80C51系列单片机的广泛选择 97
5.2.1 80C51系列单片机的兼容性 97
5.2.2 80C51系列单片机的类型选择 98
5.2.3 80C51系列单片机供应状态选择 101
5.3 80C51单片机最小系统设计 103
5.3.1 最小系统结构 103
5.3.2 时钟系统设计 105
5.3.3 复位电路设计 109
练习与思考 112
第六章 单片机的并行扩展技术 113
6.1 并行外围扩展方式 113
6.1.1 并行I/O口与并行扩展总线 113
6.1.2 并行I/O口的扩展特性 114
6.1.3 并行总线的扩展特性 114
6.2 并行I/O口外围扩展技术 114
6.2.1 并行I/O口扩展方式 114
6.2.2 并行I/O口扩展的键盘电路 116
6.2.3 并行I/O口扩展的LED显示电路 121
6.3 并行总线外围扩展技术 125
6.3.1 并行总统扩展基本问题 125
6.3.2 80C51并行扩展总线 126
6.3.3 80C51程序存储器扩展 128
6.3.4 80C51外围设备(器件)扩展 130
练习与思考 135
第七章 单片机的串行扩展技术 136
7.1 单片机的串行扩展方式 136
7.1.1 串行扩展总线与串行扩展接口 136
7.1.2 单片机串行扩展的虚拟技术 138
7.2 移位寄存器的串行扩展技术 139
7.2.1 80C51 UART方式0的归一化子程序 139
7.2.2 80C51I/O口虚拟的归一化子程序 141
7.2.3 移位寄存器串行扩展基本练习 144
7.3 I2C总线的串行扩展技术 154
7.3.1 I2C总线的串行外围扩展 154
7.3.2 主方式下的I2C总线虚拟技术 156
7.3.3 主方式下的虚拟I2C总线软件包 159
7.4 虚拟I2C总线应用实例 168
7.4.1 虚拟I2C总线实验演示系统 168
7.4.2 E2PROM的读写应用练习 169
7.4.3 LED显示应用练习 172
7.4.4 I/O口扩展应用练习 176
7.4.5 ADC、DAC应用练习 180
练习与思考 183
第八章 应用程序设计技术 184
8.1 概述 184
8.1.1 应用程序设计内容 184
8.1.2 系统应用程序结构 186
8.2 汇编语言程序设计基础 192
8.2.1 汇编语言语句格式 193
8.2.2 汇编程序设计中的编辑与汇编 194
8.2.3 汇编语言程序调试 196
8.3 子程序设计技术 197
8.3.1 任务模块与子程序 197
8.3.2 子程序的规范化设计 199
8.3.3 子程序的应用技巧 204
8.4 中断程序设计技术 207
8.4.1 中断程序设计的一般方法 207
8.4.2 限制响应点的中断程序设计 213
8.4.3 中断服务程序中的散转操作 215
练习与思考 218
第九章 最小功耗系统设计 220
9.1 概述 220
9.1.1 最小功耗系统设计的意义 220
9.1.2 应用系统的功耗分析 220
9.1.3 最小功耗系统设计内容 222
9.1.4 最小功耗系统中的功耗测试 223
9.2 CMOS电路的功耗特性 223
9.2.1 CMOS电路的功耗分析 223
9.2.2 CMOS电路中的功耗异常 227
9.2.3 CMOS器件的本质功耗与功耗管理 227
9.3 最小功耗系统的器件选择 229
9.3.1 数字逻辑器件选择 229
9.3.2 单片机选择 229
9.3.3 外围器件选择 232
9.4 最小功耗系统的电路设计 234
9.4.1 系统中的防异常功耗设计 234
9.4.2 CMOS电路功耗管理设计 235
9.4.3 实现供电管理的电源设计 237
9.4.4 微功耗值守电路设计 240
9.5 最小功耗系统的软件设计 243
9.5.1 适合功耗管理的任务划分 244
9.5.2 单片机的低功耗管理程序设计 244
9.5.3 外围电路的功耗管理设计 249
练习与思考 250
第十章 应用系统可靠性设计 252
10.1 可靠性设计概述 252
10.1.1 可靠性与可靠性设计 252
10.1.2 单片机应用系统的可靠性等级 254
10.1.3 应用系统的可靠性模型 255
10.2 硬件系统的可靠性设计 257
10.2.1 总体方案的可靠性设计 257
10.2.2 器件选择的可靠性设计 258
10.2.3 电路系统的可靠性设计 269
10.2.4 电源系统的可靠性设计 262
10.3 PCB的可靠性设计 265
10.3.1 PCB可靠性设计概述 265
10.3.2 PCB中的电磁干扰 266
10.3.3 PCB的总体设计 268
10.3.4 电源地线设计 268
10.3.5 去耦设计 271
10.3.6 布线设计常规 274
10.4 软件的可靠性设计 274
10.4.1 本质可靠性的软件设计 275
10.4.2 可靠性控制的软件设计 278
练习与思考 287
参考文献 288