第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章 AT89S52单片机的结构及原理 7
2.1 AT89S52单片机的主要特性 7
2.2 AT89S52单片机的内部总体结构 7
2.3 AT89S52单片机的引脚功能 9
2.3.1 AT89S52单片机引脚功能 9
2.3.2 三总线结构 11
2.4 AT89S52单片机的主要组成部分 12
2.4.1 CPU 12
2.4.2 存储器 12
2.4.3 并行I/O口 19
2.5 时钟电路与CPU的时序 21
2.5.1 振荡器和时钟电路 22
2.5.2 CPU的时序及有关概念 22
2.5.3 CPU的取指令和执行指令时序 23
2.5.4 访问外部ROM的操作时序 25
2.5.5 访问外部RAM的操作时序 25
2.6 单片机的复位状态与复位电路 26
2.6.1 单片机的复位状态 26
2.6.2 单片机的复位电路 27
2.7 低功耗工作方式 29
2.7.1 低功耗工作方式的机理 29
2.7.2 低功耗工作方式的进入与退出 30
思考题与习题 31
第3章 AT89S52单片机的指令系统 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 数据传送类指令 38
3.3.1 内部RAM数据传送指令 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 逻辑运算及移位类指令 49
3.5.1 逻辑与运算指令 49
3.5.2 逻辑或运算指令 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
思考题与习题 106
第5章 定时器/计数器 108
5.1 定时/计数器0和1的结构和工作原理 108
5.1.1 定时/计数器0和1的结构 108
5.1.2 定时/计数器0和1的工作原理 109
5.2 定时/计数器0和1的控制 110
5.2.1 工作模式寄存器TMOD 110
5.2.2 控制寄存器TCON 110
5.3 定时/计数器0和1的工作模式 111
5.3.1 模式0 111
5.3.2 模式1 112
5.3.3 模式2 112
5.3.4 模式3 113
5.4 定时/计数器0和1的应用 114
5.4.1 定时/计数器0和1的使用方法 114
5.4.2 定时/计数器模式0的应用 115
5.4.3 定时/计数器模式1的应用 115
5.4.4 定时/计数器模式2的应用 116
5.4.5 定时/计数器0和1的门控位GATE应用 117
5.4.6 运行中读定时/计数器 118
5.5 定时/计数器T2 118
5.5.1 T2控制寄存器 119
5.5.2 T2模式寄存器 120
5.5.3 T2的工作模式 120
5.6 定时监视器 124
5.6.1 AT89S52的定时监视器 124
5.6.2 辅助功能寄存器AUXR 125
思考题与习题 126
第6章 串行接口 127
6.1 串行通信的基础知识 127
6.1.1 串行通信的两种基本方式 127
6.1.2 串行通信的数据传送方式 128
6.1.3 串并转换和串行接口 129
6.2 AT89S52单片机的串行接口 129
6.2.1 AT89S52单片机串行口的结构 129
6.2.2 AT89S52单片机串行口的控制 130
6.2.3 波特率设计 132
6.3 串行口工作模式 134
6.3.1 模式0 134
6.3.2 模式1 134
6.3.3 模式2 135
6.3.4 模式3 136
6.4 串行口应用举例 136
6.4.1 用串行口扩展I/O口 136
6.4.2 单片机双机通信技术 139
6.4.3 单片机多机通信技术 146
思考题与习题 147
第7章 中断系统 148
7.1 中断概述 148
7.1.1 中断的概念 148
7.1.2 中断技术的优点 148
7.1.3 中断系统的功能 149
7.2 AT89S52单片机的中断系统 150
7.2.1 中断源 150
7.2.2 中断请求标志 152
7.2.3 中断允许控制寄存器IE 153
7.2.4 中断优先级控制寄存器IP 153
7.3 中断处理过程 154
7.3.1 中断响应 154
7.3.2 中断处理 155
7.3.3 中断返回 156
7.3.4 中断请求的撤除 157
7.3.5 中断响应时间 158
7.4 中断系统的应用 158
思考题与习题 177
第8章 AT89S52单片机的系统扩展 178
8.1 程序存储器的扩展 178
8.1.1 程序存储器的分类 178
8.1.2 典型程序存储器芯片介绍 179
8.1.3 典型程序存储器的扩展方法 185
8.1.4 典型程序存储器扩展电路 188
8.2 数据存储器的扩展 192
8.2.1 典型数据存储器的扩展方法 193
8.2.2 典型数据存储器的扩展电路 193
8.3 AT89S52单片机片选方法简介 201
8.3.1 线选法 201
8.3.2 译码法 202
8.4 Flash存储器的扩展 204
8.4.1 Flash存储器的分类 205
8.4.2 典型Flash存储器芯片简介 205
8.4.3 典型Flash存储器的扩展 208
8.5 并行I/O接口的扩展 210
8.5.1 I/O接口电路的功能 210
8.5.2 简单并行I/O接口的扩展 211
8.5.3 可编程接口电路的扩展 213
思考题与习题 223
第9章 AT89S52单片机的接口技术 224
9.1 人机通信接口技术 224
9.1.1 键盘接口技术 224
9.1.2 显示接口技术 232
9.1.3 键盘、显示器组合接口举例 237
9.2 A/D转换器 241
9.2.1 A/D转换器技术指标与选择原则 241
9.2.2 A/D转换器MAX197 243
9.2.3 A/D转换器ADC 0809 248
9.2.4 A/D转换器TLV2548 252
9.3 D/A转换器 260
9.3.1 D/A转换器技术指标 260
9.3.2 D/A转换器DAC 0832 261
9.3.3 D/A转换器MAX508 267
9.3.4 D/A转换器TLV5630 270
9.4 开关量输入/输出接口 274
9.4.1 开关量输入接口 275
9.4.2 开关量输出接口 275
思考题与习题 279
第10章 AT89S52单片机应用举例 281
10.1 单片机应用系统的一般设计过程 281
10.1.1 硬件系统设计原则 281
10.1.2 应用软件设计特点 281
10.1.3 应用系统开发过程 282
10.2 应用系统结构及其设计内容 283
10.2.1 应用系统的结构特点 283
10.2.2 应用系统的典型通道接口 284
10.2.3 应用系统设计内容 285
10.3 交通信号灯模拟控制 285
10.3.1 交通信号灯模拟控制的硬件设计 286
10.3.2 交通信号灯模拟控制的软件设计 286
10.4 步进电动机控制 287
10.4.1 步进电动机控制原理 288
10.4.2 步进电动机接口技术与软件设计 289
10.5 电力系统负载电流的数据采集与远端再现 295
10.5.1 电力系统负载电流的数据采集 295
10.5.2 电力系统负载电流的远端再现 297
10.6 倒计时器的设计 299
10.6.1 实时日历时钟芯片DS12C887简介 299
10.6.2 倒计时器的硬件电路设计 303
10.6.3 倒计时器的软件设计 303
思考题与习题 305
第11章 I2C串行总线及单总线技术 306
11.1 I2C串行总线扩展技术 306
11.1.1 I2C串行总线概述 306
11.1.2 I2C总线的数据传送 308
11.1.3 I2C总线数据传送的模拟 313
11.1.4 I2C总线应用程序设计实例 320
11.2 单总线及其应用 322
11.2.1 单总线简介 322
11.2.2 DS18B20构成的单总线测温系统 323
思考题与习题 332
第12章 单片机应用系统的抗干扰技术设计 334
12.1 干扰源 334
12.1.1 串模干扰 334
12.1.2 共模干扰 335
12.1.3 电源干扰 336
12.2 硬件抗干扰设计 336
12.2.1 共串模干扰的抑制 336
12.2.2 共模干扰的抑制 338
12.2.3 输入/输出通道干扰的抑制 339
12.2.4 电源与电网干扰的抑制 341
12.2.5 地线系统干扰的抑制 341
12.3 软件抗干扰设计 342
12.3.1 程序执行过程中的软件抗干扰 342
12.3.2 系统的恢复 346
思考题与习题 348
附录A ASCⅡ表 349
附录B AT89S52单片机指令系统表 351
附录C 常用芯片引脚图 357
参考文献 361