第1章 概述 1
1.1 单片机的结构组成、特点和指标 1
1.1.1 微型计算机的基本结构 1
1.1.2 单片机的基本结构 2
1.1.3 单片机的特点 3
1.1.4 单片机的重要指标 3
1.2 单片机的发展历史和产品类型 4
1.2.1 单片机的发展历史 4
1.2.2 单片机的产品类型 5
1.2.3 80C51系列单片机 5
1.2.4 其他系列单片机 9
1.3 单片机的应用 9
1.3.1 单片机应用领域 9
1.3.2 单片机应用举例 10
1.4 单片机技术相关网站 14
习题与思考题1 15
第2章 MCS-51单片机硬件结构和原理 16
2.1 MCS-51系列单片机的分类 16
2.2 单片机硬件结构 16
2.2.1 单片机的引脚功能 16
2.2.2 单片机的内部结构 18
2.3 中央处理器(CPU) 19
2.3.1 运算器 19
2.3.2 控制器 20
2.3.3 布尔(位)处理器 21
2.4 存储器 21
2.4.1 程序存储器 22
2.4.2 数据存储器 22
2.5 并行输入/输出(I/O)端口 26
2.5.1 P1口 27
2.5.2 P2口 27
2.5.3 P3口 28
2.5.4 P0口 29
2.5.5 并行口的应用 30
2.6 时钟电路和时序 32
2.6.1 时钟电路 32
2.6.2 时序 33
2.7 单片机的工作方式 35
2.7.1 复位方式 35
2.7.2 程序执行方式 36
2.7.3 低功耗运行方式 36
习题与思考题2 37
第3章 MCS-51单片机指令系统 38
3.1 指令系统简介 38
3.1.1 指令系统的分类 38
3.1.2 指令格式 39
3.1.3 指令中的常用符号 39
3.1.4 寻址方式 40
3.2 指令系统 44
3.2.1 数据传送指令 44
3.2.2 算术运算指令 48
3.2.3 逻辑运算指令 52
3.2.4 控制转移指令 55
3.2.5 位操作指令 59
习题与思考题3 61
第4章 MCS-51汇编语言程序设计 64
4.1 程序设计概述 64
4.1.1 程序设计的步骤 64
4.1.2 程序设计的方法 65
4.1.3 汇编语言的规范 65
4.1.4 汇编语言程序编辑和汇编 68
4.2 结构化程序设计方法 69
4.2.1 顺序结构程序 69
4.2.2 分支结构程序 70
4.2.3 循环结构程序 71
4.2.4 查表程序 74
4.2.5 子程序 75
4.3 汇编语言程序设计实例 78
4.3.1 算术运算程序 78
4.3.2 数据排序程序 82
4.3.3 数制转换程序 83
4.3.4 线性标度变换程序 86
习题与思考题4 86
第5章 MCS-51单片机C51程序设计 88
5.1 C51概述 88
5.2 C51语法基础 89
5.2.1 标识符和关键字 89
5.2.2 数据类型 90
5.2.3 C51运算符和表达式 92
5.2.4 程序结构 93
5.3 C51对MCS-51单片机的访问 94
5.3.1 存储类型 94
5.3.2 存储模式 95
5.3.3 对特殊功能寄存器的访问 96
5.3.4 对存储器和并行口的访问 97
5.3.5 位地址访问 100
5.4 C51函数 100
5.4.1 函数的分类 101
5.4.2 函数的定义 101
5.4.3 函数的调用 102
5.4.4 对被调函数的说明 102
5.4.5 中断函数 103
5.5 C51结构化程序设计 104
5.5.1 顺序结构程序 104
5.5.2 选择结构程序 104
5.5.3 循环结构程序 107
5.6 C51程序设计实例 109
5.6.1 查表程序 109
5.6.2 单片机内/外部资源应用程序设计 110
5.6.3 C51语言和MCS-51汇编语言混合编程 116
5.6.4 编程优化的概念 118
习题与思考题5 118
第6章 MCS-51单片机中断系统 120
6.1 中断概述 120
6.1.1 CPU与外设的输入/输出方式 120
6.1.2 中断的概念 121
6.2 MCS-51中断系统 123
6.2.1 中断系统的内部结构 123
6.2.2 中断源与中断方式 123
6.2.3 中断控制寄存器 125
6.2.4 中断响应 129
6.3 中断应用举例 131
6.3.1 中断服务程序设计 131
6.3.2 中断系统应用实例 132
习题与思考题6 136
第7章 MCS-51单片机定时/计数器和串行接口 137
7.1 定时/计数器 137
7.1.1 定时/计数器的结构与原理 137
7.1.2 定时/计数器的工作方式 139
7.1.3 定时/计数器对输入信号的要求 142
7.1.4 定时/计数器的应用 142
7.2 串行通信接口 149
7.2.1 串行通信基础知识 149
7.2.2 MCS-51串行通信接口 151
7.2.3 串行通信接口的应用 155
习题与思考题7 162
第8章 单片机系统基本并行扩展技术 164
8.1 概述 164
8.2 外部总线扩展 164
8.3 外部存储器扩展 165
8.3.1 外部程序存储器扩展 165
8.3.2 外部数据存储器扩展 170
8.3.3 多片存储器芯片扩展 172
8.4 并行接口扩展 173
8.4.1 并行接口的简单扩展方法 173
8.4.2 8155可编程并行I/O接口扩展 175
8.5 显示器与键盘扩展 179
8.5.1 LED显示器接口扩展 179
8.5.2 LCD显示器接口扩展 181
8.5.3 键盘接口扩展 183
8.5.4 键盘和显示器接口设计实例 187
8.6 打印机扩展 189
8.6.1 TPμP-16A/40A微型打印机 189
8.6.2 打印机接口扩展方法 190
习题与思考题8 192
第9章 单片机系统常用串行扩展技术 194
9.1 常用串行总线协议 194
9.1.1 I2C串行总线 194
9.1.2 SPI总线 198
9.1.3 单线总线 201
9.2 串行存储器扩展 204
9.2.1 I2C接口EEPROM的存储器扩展 204
9.2.2 SPI接口的大容量Flash存储器扩展 209
9.3 串行转并行I/O接口扩展 214
9.3.1 串行转并行I/O扩展芯片的工作原理 214
9.3.2 串行总线扩展I/O接口实例 216
9.4 串行键盘和LED显示器扩展 218
9.4.1 串行键盘和LED显示器控制芯片的工作原理 218
9.4.2 串行键盘和LED显示器扩展实例 221
9.5 串行总线扩展实例简介 226
习题与思考题9 228
第10章 单片机系统模拟量及其他扩展技术 229
10.1 A/D转换扩展 229
10.1.1 并行A/D转换扩展 229
10.1.2 串行A/D转换扩展 231
10.2 D/A转换扩展 241
10.2.1 并行D/A转换扩展 241
10.2.2 串行D/A转换扩展 244
10.3 日历时钟芯片扩展 248
10.3.1 日历时钟芯片8563 248
10.3.2 单片机与日历时钟芯片的接口方法 250
10.4 IC卡扩展 251
10.4.1 SLE4442 IC卡 251
10.4.2 SLE4442 IC卡数据传送协议 252
10.4.3 SLE4442 IC卡操作命令 254
10.4.4 单片机与SLE4442 IC卡的接口方法 255
习题与思考题10 256
第11章 单片机系统无线扩展技术 257
11.1 点对点无线通信 257
11.1.1 nRF905芯片介绍 257
11.1.2 应用nRF905扩展单片机无线接口 261
11.2 ZigBee无线网络技术简介 265
11.2.1 ZigBee网络框架 266
11.2.2 ZigBee网络中的设备 266
11.2.3 ZigBee网络拓扑结构 266
11.2.4 ZigBee技术的特点和应用领域 267
11.3 ZigBee无线网络技术应用实例 268
11.3.1 支持ZigBee无线网络的单片机选择 268
11.3.2 串行总线接口的数字式温湿度传感器选择 272
11.3.3 ZigBee无线网络节点的硬件电路设计 276
11.3.4 软件设计 277
习题与思考题11 280
第12章 单片机系统电源设计 281
12.1 单片机系统电源设计的考虑因素 281
12.2 线性稳压供电电源 281
12.2.1 三端固定输出集成稳压器电源电路 282
12.2.2 三端可调输出集成稳压器电源电路 282
12.2.3 低压差线性稳压器(LDO)电源电路 283
12.3 DC/DC供电电源 284
12.3.1 降压型DC/DC电源电路 284
12.3.2 升压型DC/DC电源电路 286
12.3.3 DC/DC模块电源的选择与应用 288
12.4 AC/DC供电技术 289
12.4.1 AC/DC电源技术 289
12.4.2 AC/DC模块电源 291
12.5 基准电源的产生方法 292
12.5.1 稳压管基准电压源电路 292
12.5.2 集成块基准电压源电路 292
习题与思考题12 295
第13章 单片机应用系统抗干扰技术 296
13.1 干扰源及其分类 296
13.1.1 干扰的定义 296
13.1.2 干扰的种类 296
13.2 干扰对单片机应用系统的影响 298
13.3 硬件抗干扰技术 299
13.3.1 无源滤波 299
13.3.2 有源滤波 299
13.3.3 去耦电路 299
13.3.4 屏蔽技术 300
13.3.5 隔离技术 300
13.3.6 接地技术 302
13.4 软件抗干扰技术 304
13.4.1 软件抗干扰的一般方法 304
13.4.2 指令冗余技术 305
13.4.3 软件陷阱技术 305
13.4.4 “看门狗”技术 308
13.5 数字滤波技术 310
13.5.1 一阶低通滤波法 310
13.5.2 程序判断滤波法 311
13.5.3 算术平均滤波法 311
13.5.4 中位值平均滤波法 312
13.5.5 中值滤波法 313
13.5.6 递推平均滤波法 313
13.5.7 防脉冲干扰平均值滤波法 314
习题与思考题13 315
第14章 单片机系统开发工具与设计实例 316
14.1 单片机应用系统开发环境 316
14.1.1 开发系统的功能 316
14.1.2 开发系统的分类 316
14.2 Keil C51开发工具及仿真调试方法 317
14.2.1 Keil C51开发工具 317
14.2.2 应用Keil C51进行单片机软件开发调试的方法 319
14.2.3 应用Keil C51调试C51应用程序举例 322
14.3 Proteus电路分析与实物仿真软件及调试方法 325
14.3.1 Proteus仿真软件 325
14.3.2 应用Proteus进行单片机应用系统仿真调试的方法 326
14.3.3 应用Proteus进行单片机系统仿真调试举例 327
14.4 单片机应用系统设计举例 331
14.4.1 需求分析 331
14.4.2 功能说明 332
14.4.3 体系结构设计 332
14.4.4 硬件系统设计 334
14.4.5 软件系统设计 335
14.4.6 系统调试 339
习题与思考题14 339
第15章 实验及课程设计 340
15.1 概述 340
15.2 实验 340
15.2.1 实验1——BCD码/十六进制码转换 340
15.2.2 实验2——排序程序 341
15.2.3 实验3——定时/计数器 343
15.2.4 实验4——基本输入/输出 347
15.2.5 实验5——外部中断 349
15.2.6 实验6——并行接口扩展 351
15.2.7 实验7——A/D转换 354
15.2.8 实验8——D/A转换 355
15.2.9 实验9——单片机与PC通信 356
15.2.10 实验10——综合实验(温度控制系统设计实例) 360
15.3 课程设计 364
15.3.1 课程设计的目的 364
15.3.2 课程设计要求 364
15.3.3 课程设计题目及要求 365
附录A MCS-51汇编指令-机器码对照表 369
附录B ASCII编码表 371
参考文献 372