前 言
第 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
本章小结 26V
思考题与习题 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 中断系统结构与中断源 92VII
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 产生波特率的计算 129VIII
单片机原理及接口技术
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 单片机与 LCD1602 液晶显示接口 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 的接口 196IX
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 ?Vision4 IDE 界面介绍 206
10.2.3 ?Vision4 IDE 的举例使用 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 Proteus ISIS 与?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