第1章 绪论 1
1.1 计算机的产生和发展 1
1.2 单片机的特点及发展情况 2
1.3 常用单片机系列介绍 4
1.3.1 Intel公司MCS系列单片机 5
1.3.2 与MCS-51系列兼容的单片机 6
思考题及习题 8
第2章 MCS-51系列单片机的结构及原理 9
2.1 MCS-51系列单片机的主要特性 9
2.2 MCS-51系列单片机的内部总体结构 9
2.3 MCS-51系列单片机的引脚功能 11
2.3.1 MCS-51系列单片机引脚功能 11
2.4 MCS-51系列单片机的主要组成部分 13
2.3.2 三总线结构 13
2.4.1 CPU 14
2.4.2 存储器 14
2.4.3 并行I/O口 20
2.5 时钟电路与CPU的时序 22
2.5.1 振荡器和时钟电路 23
2.5.2 CPU的时序及有关概念 23
2.5.3 CPU的取指令和执行指令时序 24
2.5.4 访问外部ROM的操作时序 26
2.5.5 访问外部RAM的操作时序 26
2.6 单片机的复位状态与复位电路 27
2.6.1 单片机的复位状态 27
2.6.2 单片机的复位电路 28
2.7 掉电保护和低功耗设计 30
2.7.1 掉电保护 30
2.7.2 80C51的低功耗设计 31
思考题与习题 32
第3章 MCS-51系列单片机的指令系统 33
3.1 指令系统简介 33
3.1.1 指令概述 33
3.1.2 指令格式 33
3.1.3 指令中常用符号说明 34
3.2 寻址方式 35
3.2.1 立即寻址 35
3.2.2 直接寻址 35
3.2.3 寄存器寻址 35
3.2.4 寄存器间接寻址 36
3.2.5 变址寻址 36
3.2.6 相对寻址 37
3.2.7 位寻址 37
3.3.1 内部RAM数据传送指令 38
3.3 数据传送类指令 38
3.3.2 访问外部RAM的数据传送指令 40
3.3.3 程序存储器向累加器A传送数据指令 41
3.3.4 数据交换指令 42
3.3.5 堆栈操作指令 43
3.4 算术运算类指令 43
3.4.1 加法指令 43
3.4.2 带进位加法指令 44
3.4.3 带借位减法指令 45
3.4.4 加1指令 46
3.4.5 减1指令 46
3.4.6 乘、除法指令 46
3.4.7 十进制调整指令 47
3.5.1 逻辑与运算指令 49
3.5.2 逻辑或运算指令 49
3.5 逻辑运算及移位类指令 49
3.5.3 逻辑异或运算指令 50
3.5.4 累加器清零、取反指令 50
3.5.5 循环移位指令 51
3.6 控制转移类指令 52
3.6.1 无条件转移指令 52
3.6.2 条件转移指令 54
3.6.3 子程序调用及返回指令 57
3.6.4 空操作指令 60
3.7 位操作类指令 60
3.7.1 位变量传送指令 60
3.7.2 位置位、清零指令 61
3.7.3 位逻辑运算指令 61
3.7.4 位控制转移指令 62
思考题与习题 63
第4章 汇编语言程序设计 67
4.1 程序设计概述 67
4.1.1 程序设计语言简介 67
4.1.2 汇编语言程序设计步骤 68
4.2 汇编语言源程序的编辑和汇编 68
4.2.1 伪指令 69
4.2.2 源程序的编辑和汇编 70
4.3 汇编语言程序设计 71
4.3.1 顺序程序设计 72
4.3.2 分支程序设计 73
4.3.3 循环程序设计 78
4.3.4 子程序设计 85
4.3.5 运算类程序设计 92
思考题与习题 105
5.1.1 定时/计数器的结构及功能 108
第5章 定时/计数器 108
5.1 定时/计数器0和1 108
5.1.2 定时/计数器0和1的控制和状态寄存器 109
5.1.3 T0和T1的4种工作模式 111
5.2 定时/计数器2 113
5.2.1 T2控制寄存器T2CON 113
5.2.2 定时/计数器T2的工作方式 115
5.3 定时/计数器的应用 116
5.3.1 定时/计数器模式0的应用 117
5.3.2 定时/计数器模式1的应用 117
5.3.3 定时/计数器模式2的应用 118
5.3.4 定时/计数器门控位GATE的应用 118
5.3.5 运行中读定时/计数器 119
思考题与习题 120
6.1.1 串行通信的两种基本方式 121
6.1 串行通信的基础知识 121
第6章 串行接口 121
6.1.2 串行通信的数据传送方式 122
6.1.3 串并转换和串行接口 123
6.2 MCS-51系列单片机的串行接口 123
6.2.1 MCS-51系列单片机串行口的结构 123
6.2.2 MCS-51单片机串行口的控制 124
6.2.3 波特率设计 126
6.3 串行口工作模式 128
6.3.1 模式0 128
6.3.2 模式1 129
6.3.3 模式2 130
6.3.4 模式3 130
6.4 串行口应用举例 130
6.4.1 用串行口扩展I/O口 131
6.4.2 单片机双机通信技术 133
6.4.3 单片机多机通信技术 140
思考题与习题 141
第7章 中断系统 143
7.1 中断的概念 143
7.2 中断技术的优点 143
7.3 中断系统的功能 144
7.4 中断源类型 145
7.4.1 外部中断类 145
7.4.2 定时中断类 145
7.4.3 串行中断类 145
7.5 MCS-51的中断系统 145
7.5.1 中断请求标志 146
7.5.2 中断允许控制寄存器IE 147
7.5.3 中断优先级控制寄存器IP 148
7.6.1 中断响应 149
7.6 中断处理过程 149
7.6.2 中断处理 150
7.6.3 中断返回 150
7.6.4 中断请求的撤除 151
7.6.5 中断响应时间 152
7.7 MCS-51外部中断源的扩展 152
7.8 中断系统的应用 155
思考题与习题 173
第8章 MCS-51单片机的系统扩展 174
8.1 程序存储器的扩展 174
8.1.1 程序存储器的分类 174
8.1.2 典型程序存储器芯片介绍 175
8.1.3 典型程序存储器的扩展方法 181
8.1.4 典型程序存储器扩展电路 184
8.2.1 典型数据存储器的扩展方法 191
8.2 数据存储器的扩展 191
8.2.2 典型数据存储器的扩展电路 192
8.3 MCS-51单片机片选方法简介 195
8.3.1 线选法 195
8.3.2 译码法 196
8.4 Flash存储器的扩展 198
8.4.1 Flash存储器的分类 199
8.4.2 典型Flash存储器芯片简介 199
8.4.3 典型Flash存储器的扩展 202
8.5 并行I/O接口的扩展 204
8.5.1 I/O接口电路的功能 204
8.5.2 简单并行I/O接口的扩展 205
8.5.3 可编程接口电路的扩展 207
思考题与习题 217
9.1.1 键盘接口技术 218
9.1 人机通信接口技术 218
第9章 MCS-51单片机的接口技术 218
9.1.2 显示接口技术 225
9.1.3 键盘、显示器组合接口举例 230
9.2 微型打印机接口技术 234
9.2.1 TpμP-40A主要性能、接口要求及时序 234
9.2.2 字符代码及打印命令 236
9.2.3 TpμP-40A/16A与MCS-51系列单片机的接口电路设计 238
9.3 A/D转换与A/D转换器 239
9.3.1 A/D转换接口设计要点 239
9.3.2 A/D转换器MC14433 241
9.3.3 A/D转换器MAX197 246
9.3.4 A/D转换器ADC0809 251
9.3.5 A/D转换器TLV2548 255
9.4.1 D/A转换接口设计要点 263
9.4 D/A转换与D/A转换器 263
9.4.2 D/A转换器DAC0832 265
9.4.3 D/A转换器MAX508 271
9.4.4 D/A转换器TLV5630 274
思考题与习题 278
第10章 MCS-51单片机应用举例 279
10.1 单片机应用系统的一般设计过程 279
10.1.1 硬件系统设计原则 279
10.1.2 应用软件设计特点 279
10.1.3 应用系统开发过程 280
10.2 应用系统结构及其设计内容 281
10.2.1 应用系统的结构特点 281
10.2.2 应用系统的典型通道接口 282
10.3 交通信号灯模拟控制 283
10.2.3 应用系统设计内容 283
10.3.1 交通信号灯模拟控制的硬件设计 284
10.3.2 交通信号灯模拟控制的软件设计 284
10.4 步进电机控制 285
10.4.1 步进电机控制原理 286
10.4.2 步进电机接口技术与软件设计 287
10.5 电力系统负载电流的数据采集与远端再现 292
10.5.1 电力系统负载电流的数据采集 292
10.5.2 电力系统负载电流的远端再现 294
10.6 倒计时器的设计 296
10.6.1 实时日历时钟芯片DS12C887简介 296
10.6.2 倒计时器的硬件电路设计 300
10.6.3 倒计时器的软件设计 300
思考题与习题 302
11.1 Atmel89系列单片机 303
11.1.1 AT89C52 303
第11章 AT89系列单片机、I2C串行总线及单总线技术 303
11.1.2 AT89C2051 309
11.2 I2C串行总线扩展技术 314
11.2.1 I2C串行总线概述 314
11.2.2 I2C总线的数据传送 315
11.2.3 I2C总线数据传送的模拟 321
11.2.4 I2C总线应用程序设计实例 328
11.3 单总线及其应用 329
11.3.1 单总线简介 330
11.3.2 DS18B20构成的单总线测温系统 330
思考题及习题 340
第12章 单片机应用系统的抗干扰技术设计 342
12.1 干扰源 342
12.1.1 串模干扰 342
12.1.2 共模干扰 343
12.1.3 电源干扰 344
12.2 硬件抗干扰设计 344
12.2.1 共串模干扰的抑制 344
12.2.2 共模干扰的抑制 346
12.2.3 输入输出通道干扰的抑制 347
12.2.4 电源与电网干扰的抑制 349
12.2.5 地线系统干扰的抑制 349
12.3 软件抗干扰设计 350
12.3.1 程序执行过程中的软件抗干扰 350
12.3.2 系统的恢复 354
思考题与习题 356
附录A ASCII表 357
附录B MCS-51系列单片机指令系统表 359
附录C 常用芯片引脚图 365
参考文献 369