第1章 绪论 1
1.1 单片机的特点及应用领域 1
1.1.1 单片机的特点 1
1.1.2 单片机的应用领域 2
1.2 常用单片机系列介绍 3
1.2.1 Intel公司MCS-51系列单片机 3
1.2.2 51系列单片机命名规则 4
1.2.3 AT89系列单片机 4
思考题与习题 6
第2章 89C51单片机的结构及原理 7
2.1 89C51单片机的主要特性 7
2.2 89C51单片机的内部总体结构 7
2.3 89C51单片机的引脚功能 9
2.3.1 89C51单片机引脚功能 9
2.3.2 三总线结构 11
2.4 89C51单片机的主要组成部分 12
2.4.1 CPU 12
2.4.2 存储器 12
2.4.3 并行I/O口 18
2.5 时钟电路与CPU的时序 20
2.5.1 振荡器和时钟电路 21
2.5.2 CPU的时序及有关概念 21
2.5.3 CPU的取指令和执行指令时序 22
2.5.4 访问外部ROM的操作时序 24
2.5.5 访问外部RAM的操作时序 24
2.6 单片机的复位状态与复位电路 25
2.6.1 单片机的复位状态 25
2.6.2 单片机的复位电路 26
2.7 低功耗工作方式 28
2.7.1 低功耗工作方式 28
2.7.2 低功耗工作方式的进入与退出 29
思考题与习题 30
第3章 89C51单片机的指令系统 31
3.1 指令系统简介 31
3.1.1 指令概述 31
3.1.2 指令格式 31
3.1.3 指令中常用符号说明 32
3.2 寻址方式 33
3.2.1 立即寻址 33
3.2.2 直接寻址 33
3.2.3 寄存器寻址 33
3.2.4 寄存器间接寻址 34
3.2.5 变址寻址 34
3.2.6 相对寻址 35
3.2.7 位寻址 35
3.3 数据传送类指令 36
3.3.1 内部RAM数据传送指令 36
3.3.2 访问外部RAM的数据传送指令 38
3.3.3 程序存储器向累加器A传送数据指令 39
3.3.4 数据交换指令 40
3.3.5 堆栈操作指令 41
3.4 算术运算类指令 41
3.4.1 加法指令 41
3.4.2 带进位加法指令 42
3.4.3 带借位减法指令 43
3.4.4 加1指令 44
3.4.5 减1指令 44
3.4.6 乘、除法指令 44
3.4.7 十进制调整指令 45
3.5 逻辑运算及移位类指令 47
3.5.1 逻辑与运算指令 47
3.5.2 逻辑或运算指令 47
3.5.3 逻辑异或运算指令 48
3.5.4 累加器清零、取反指令 48
3.5.5 循环移位指令 49
3.6 控制转移类指令 50
3.6.1 无条件转移指令 50
3.6.2 条件转移指令 52
3.6.3 子程序调用及返回指令 55
3.6.4 空操作指令 58
3.7 位操作类指令 58
3.7.1 位变量传送指令 58
3.7.2 位置位、清零指令 59
3.7.3 位逻辑运算指令 59
3.7.4 位控制转移指令 60
思考题与习题 61
第4章 汇编语言程序设计 65
4.1 程序设计概述 65
4.1.1 程序设计语言简介 65
4.1.2 汇编语言程序设计步骤 66
4.2 汇编语言源程序的编辑和汇编 66
4.2.1 伪指令 67
4.2.2 源程序的编辑和汇编 68
4.3 汇编语言程序设计 69
4.3.1 顺序程序设计 70
4.3.2 分支程序设计 71
4.3.3 循环程序设计 76
4.3.4 子程序设计 83
4.3.5 运算类程序设计 90
思考题与习题 103
第5章 定时/计数器 106
5.1 定时/计数器的结构和工作原理 106
5.1.1 定时/计数器的结构 106
5.1.2 定时/计数器的工作原理 107
5.2 定时/计数器的控制 108
5.2.1 工作模式寄存器TMOD 108
5.2.2 控制寄存器TCON 108
5.3 定时/计数器的工作模式 109
5.3.1 模式0 109
5.3.2 模式1 110
5.3.3 模式2 110
5.3.4 模式3 111
5.4 定时/计数器的应用 112
5.4.1 定时/计数器使用方法 112
5.4.2 定时/计数器模式0的应用 113
5.4.3 定时/计数器模式1的应用 113
5.4.4 定时/计数器模式2的应用 114
5.4.5 定时/计数器门控位GATE的应用 114
5.4.6 运行中读定时/计数器 115
思考题与习题 116
第6章 串行接口 118
6.1 串行通信的基础知识 118
6.1.1 串行通信的两种基本方式 118
6.1.2 串行通信的数据传送方式 119
6.1.3 串并转换和串行接口 120
6.2 89C51单片机的串行接口 120
6.2.1 89C51单片机串行口的结构 120
6.2.2 89C51单片机串行口的控制 121
6.2.3 波特率设计 123
6.3 串行口工作模式 125
6.3.1 模式0 125
6.3.2 模式1 125
6.3.3 模式2 126
6.3.4 模式3 127
6.4 串行口应用举例 127
6.4.1 用串行口扩展I/O口 127
6.4.2 单片机双机通信技术 130
6.4.3 单片机多机通信技术 137
思考题与习题 138
第7章 中断系统 139
7.1 中断概述 139
7.1.1 中断的概念 139
7.1.2 中断技术的优点 139
7.1.3 中断系统的功能 140
7.2 89C51单片机的中断系统 141
7.2.1 中断源 141
7.2.2 中断请求标志 142
7.2.3 中断允许控制寄存器IE 143
7.2.4 中断优先级控制寄存器IP 144
7.3 中断处理过程 144
7.3.1 中断响应 145
7.3.2 中断处理 146
7.3.3 中断返回 146
7.3.4 中断请求的撤除 147
7.3.5 中断响应时间 148
7.4 中断系统的应用 149
思考题与习题 166
第8章 89C51单片机的系统扩展 168
8.1 程序存储器的扩展 168
8.1.1 程序存储器的分类 168
8.1.2 典型程序存储器芯片介绍 169
8.1.3 典型程序存储器的扩展方法 175
8.1.4 典型程序存储器扩展电路 178
8.2 数据存储器的扩展 185
8.2.1 典型数据存储器的扩展方法 185
8.2.2 典型数据存储器的扩展电路 186
8.3 89C51单片机片选方法简介 189
8.3.1 线选法 189
8.3.2 译码法 190
8.4 Flash存储器的扩展 192
8.4.1 Flash存储器的分类 193
8.4.2 典型Flash存储器芯片简介 193
8.4.3 典型Flash存储器的扩展 196
8.5 并行I/O接口的扩展 198
8.5.1 I/O接口电路的功能 198
8.5.2 简单并行I/O接口的扩展 199
8.5.3 可编程接口电路的扩展 201
思考题与习题 211
第9章 89C51单片机的接口技术 212
9.1 人机通信接口技术 212
9.1.1 键盘接口技术 212
9.1.2 显示接口技术 219
9.1.3 键盘、显示器组合接口举例 224
9.2 A/D转换器 228
9.2.1 A/D转换器技术指标与选择原则 228
9.2.2 A/D转换器MAX197 230
9.2.3 A/D转换器ADC 0809 235
9.2.4 A/D转换器TLV2548 239
9.3 D/A转换器 247
9.3.1 D/A转换器技术指标 247
9.3.2 D/A转换器DAC 0832 248
9.3.3 D/A转换器 MAX508 254
9.3.4 D/A转换器TLV5630 256
9.4 开关量输入/输出接口 261
9.4.1 开关量输入接口 261
9.4.2 开关量输出接口 262
思考题与习题 266
第10章 12C串行总线及单总线技术 267
10.1 12C串行总线扩展技术 267
10.1.1 12C串行总线概述 267
10.1.2 12C总线的数据传送 269
10.1.3 12C总线数据传送的模拟 274
10.1.4 12C总线应用程序设计实例 281
10.2 单总线及其应用 283
10.2.1 单总线简介 283
10.2.2 单总线温度传感器DS18B20 284
10.2.3 DS18B20构成的测温系统 291
思考题与习题 294
第11章 89C51单片机应用举例 295
11.1 单片机应用系统的一般设计过程 295
11.1.1 硬件系统设计原则 295
11.1.2 应用软件设计特点 295
11.1.3 应用系统开发过程 296
11.2 应用系统结构及其设计内容 297
11.2.1 应用系统的结构特点 297
11.2.2 应用系统的典型通道接口 298
11.2.3 应用系统设计内容 299
11.3 水塔水位控制 299
11.3.1 水塔水位控制原理 299
11.3.2 水塔水位控制电路与软件设计 300
11.4 交通信号灯模拟控制 302
11.4.1 交通信号灯模拟控制的硬件设计 302
11.4.2 交通信号灯模拟控制的软件设计 303
11.5 火灾报警控制系统 304
11.5.1 火灾报警控制系统工作原理 304
11.5.2 火灾报警控制电路与软件设计 305
11.6 步进电动机控制 307
11.6.1 步进电动机控制原理 307
11.6.2 步进电动机接口技术与软件设计 309
11.7 电力系统负载电流的数据采集与远端再现 314
11.7.1 电力系统负载电流的数据采集 314
11.7.2 电力系统负载电流的远端再现 316
11.8 倒计时器的设计 317
11.8.1 实时日历时钟芯片DS12C887简介 318
11.8.2 倒计时器的硬件电路设计 321
11.8.3 倒计时器的软件设计 322
11.9 数字温度计的设计 324
11.9.1 数字温度计的硬件电路设计 324
11.9.2 数字温度计的软件设计 325
思考题与习题 329
第12章 单片机应用系统的抗干扰技术设计 330
12.1 干扰源 330
12.1.1 串模干扰 330
12.1 2共模干扰 331
12.1.3 电源干扰 332
12.2 硬件抗干扰设计 332
12.2.1 共串模干扰的抑制 332
12.2.2 共模干扰的抑制 334
12.2.3 输入/输出通道干扰的抑制 335
12.2.4 电源与电网干扰的抑制 337
12.2.5 地线系统干扰的抑制 337
12.3 软件抗干扰设计 338
12.3.1 程序执行过程中的软件抗干扰 338
12.3.2 系统的恢复 342
思考题与习题 344
附录A ASCII表 345
附录B 89C51单片机指令系统表 347
附录C常用芯片引脚图 353
参考文献 357