第1章 单片机概述 1
1.1 嵌入式系统与单片机 1
1.1.1 嵌入式系统的概念 1
1.1.2 单片机的概念 2
1.1.3 单片机的优点 2
1.1.4 单片机的应用领域 3
1.1.5 单片机应用系统结构 4
1.2 单片机的历史与发展 5
1.2.1 单片机的发展概况 5
1.2.2 单片机的发展趋势 6
1.3 常用MCS-51单片机及兼容机简介 7
1.3.1 Intel公司MCS-51系列单片机 7
1.3.2 Atmel公司MCS-51系列兼容单片机 8
1.3.3 Philips公司MCS-51系列兼容单片机 10
1.3.4 Dallas公司MCS-51系列兼容单片机 11
1.3.5 Winbond公司MCS-51系列兼容单片机 12
第2章 MCS-51单片机结构组成 14
2.1 单片机的硬件结构 14
2.1.1 硬件结构的特点 14
2.1.2 MCS-51单片机片内总体结构 17
2.2 单片机的引脚功能 19
2.2.1 电源及时钟引脚 19
2.2.2 控制引脚 20
2.2.3 接口引脚 20
2.3 单片机外部结构 22
2.4单片机的中央处理器 23
2.4.1 运算器 23
2.4.2 定时控制部件 23
2.4.3 专用寄存器组 24
2.5 单片机的存储器配置 25
2.5.1 存储器空间 26
2.5.2 程序存储器 26
2.5.3 数据存储器 27
2.6 单片机的时钟电路与时序 33
2.6.1 时钟电路 33
2.6.2 CPU时序 35
2.7 单片机的工作方式 38
2.7.1 复位与复位电路 38
2.7.2 程序执行方式 39
2.7.3 掉电保护方式 40
2.7.4 CHMOS型单片机节电工作方式 41
2.7.5 编程和校验方式 43
第3章 MCS-51单片机指令系统 44
3.1 指令格式 44
3.1.1 数据操作 44
3.1.2 指令类型 44
3.1.3 常用符号说明 45
3.2 寻址方式 45
3.2.1 直接寻址 46
3.2.2 立即寻址 46
3.2.3 寄存器寻址 47
3.2.4 寄存器间接寻址 47
3.2.5 基址寄存器加变址寄存器间接寻址 48
3.2.6 位寻址 48
3.2.7 相对寻址 49
3.3 MCS-51单片机指令系统 49
3.3.1 数据传送指令 49
3.3.2 算术运算指令 54
3.3.3 逻辑运算指令 58
3.3.4 布尔(位)操作指令 61
3.3.5 控制转移指令 63
第4章 内部并行I/O口 70
4.1 P0口的结构和功能 70
4.1.1 结构 70
4.1.2 P0口作通用I/O口 70
4.1.3 P0口作地址/数据总线 71
4.2 P1口的结构和功能 72
4.2.1 结构 72
4.2.2 功能 72
4.3 P2口的结构和功能 73
4.3.1 结构 73
4.3.2 P2口作通用I/O口 73
4.3.3 P2口作地址总线 73
4.4 P3口的结构和功能 74
4.4.1 结构 74
4.4.2 P3口作通用I/O口 74
4.4.3 P3口作第二功能使用 74
4.5 并行I/O口的应用 75
4.5.1 作为通用I/O口的应用 75
4.5.2 简单I/O口的扩展应用 75
4.5.3 复杂I/O口的扩展应用 76
4.6 接口的使用原则 76
第5章 单片机的中断系统和定时器/计数器 78
5.1 中断、中断源及中断请求标志 78
5.1.1 中断的概念 78
5.1.2 中断源 79
5.1.3 中断请求标志所在的特殊功能寄存器 80
5.2 中断控制寄存器 82
5.2.1 中断允许寄存器IE 82
5.2.2 中断优先级寄存器IP 83
5.3 中断优先级结构和中断工作过程 83
5.3.1 中断优先级结构 83
5.3.2 中断系统的工作过程 85
5.4外部中断的响应时间 85
5.5 定时器/计数器 85
5.5.1 定时器/计数器的功能 86
5.5.2 定时器/计数器的结构 86
5.5.3 定时器/计数器方式选择寄存器TMOD 87
5.5.4 定时器/计数器控制寄存器TCON 88
5.6 定时器/计数器的4种工作方式 88
5.6.1 方式0 88
5.6.2 方式1 90
5.6.3 方式2 90
5.6.4 方式3 91
5.7 定时器/计数器应用 92
5.7.1 初始化步骤 92
5.7.2 定时器/计数器初值计算方法 93
5.7.3 应用举例 93
第6章 串行通信 95
6.1 串行口通信基础 95
6.1.1 串行通信的分类 95
6.1.2 串行通信的制式 97
6.2 串行口的结构和功能 98
6.3 串行口控制寄存器 99
6.3.1 串行口控制寄存器SCON的格式 99
6.3.2 SCON各位的定义 99
6.3.3 串行口电源控制寄存器PCON的格式 100
6.4 串行口的工作方式 101
6.4.1 方式0 101
6.4.2 方式1 102
6.4.3 方式2和方式3 103
6.4.4 常用波特率表 103
第7章 MCS-51汇编语言程序设计 104
7.1 编语言程序设计 104
7.1.1 程序设计过程 104
7.1.2 汇编语言程序设计格式 105
7.1.3 MCS-51的伪指令 105
7.1.4 汇编语言源程序的编程和汇编 107
7.2 汇编语言程序的结构 107
7.2.1 程序总体构成 108
7.2.2 顺序结构程序 110
7.2.3 分支程序 111
7.2.4 循环程序 113
第8章 汇编语言程序举例 116
8.1 数码转换程序 116
8.1.1 二进制码转换为ASCII码 116
8.1.2 ASCII码转换为二进制码 118
8.1.3 二进制码到BCD码的转换 118
8.1.4 BCD码到二进制码的转换 120
8.2 定点数运算程序 124
8.2.1 定点数表示方法 124
8.2.2 定点数加减运算 127
8.2.3 定点数乘法运算 129
8.2.4 定点数除法 134
8.3 查表程序 138
8.4 输入输出程序 143
8.4.1 并行接口应用程序 143
8.4.2 定时器应用程序 146
8.5 散转程序 147
8.5.1 使用转移指令 147
8.5.2 使用地址偏移量表的散转程序 148
8.5.3 使用转向地址表的散转程序 149
第9章 单片机高级语言C51的应用 150
9.1 C51编程语言简介 150
9.1.1 C51的程序结构 151
9.1.2 C51的数据类型与运算 151
9.1.3 数据的存储器类型和存储器模式 154
9.1.4 C51对SFR、可寻址位、存储器和I/O接口的定义 158
9.1.5 C51的运算符 159
9.1.6 函数 163
9.2 C51程序的开发过程 164
9.2.1 Keil C51集成开发环境介绍 166
9.2.2 C51单片机程序编写举例 170
9.2.3 汇编语言与C语言混合编程 176
第10章 MCS-51系统扩展技术 180
10.1 MCS-51系统扩展原理 180
10.1.1 线选法 181
10.1.2 全译码法 183
10.1.3 部分译码法 184
10.1.4 扩展存储器时应考虑的几个问题 186
10.2 程序存储器的扩展 187
10.2.1 常用的程序存储器 187
10.2.2 常用的译码器、锁存器 191
10.2.3 MCS-51程序存储器的扩展 193
10.3 数据存储器的扩展 196
10.3.1 常用的静态数据存储器 197
10.3.2 MCS-51数据存储器扩展 198
10.3.3 非易失性数据存储器(NVRAM)的扩展 200
10.4 并行接口的扩展 202
10.4.1 可编程并行I/O接口芯片8255A的扩展 202
10.4.2 可编程芯片8155/8156的扩展 203
10.4.3 用串行口扩展并行口 204
10.4.4 用74LSTTL扩展并行I/O接口 206
10.5 串行接口的扩展 207
10.5.1 8251介绍 208
10.5.2 8251与单片机的接口方法 209
10.5.3 8251串行口的应用 210
10.6 定时器/计数器的扩展 212
10.6.1 8253介绍 212
10.6.2 8253/8254与MCS-51单片机的接口方法 214
10.6.3 定时器/计数器的应用 215
第11章 MCS-51单片机常用接口技术 217
11.1 A/D转换器接口技术 217
11.1.1 A/D转换器的原理 218
11.1.2 常用A/D转换器 220
11.2 D/A转换器接口技术 230
11.2.1 D/A转换器原理 231
11.2.2 常用D/A转换器 232
11.3 键盘接口技术 237
11.3.1 键盘工作原理 237
11.3.2 键盘的接口电路 239
11.3.3 键盘工作方法和扫描方式 240
11.3.4 矩阵键盘识别举例 242
11.3.5 键盘的编码 249
11.3.6 常用的专用键盘芯片 249
11.4 LED显示接口技术 249
11.4.1 LED显示器的结构和原理 250
11.4.2 LED显示器的接口及显示方式 251
11.4.3 8×8点阵式LED 253
11.4.4 专用芯片BC7281键盘显示器接口实例 256
11.5 液晶显示接口技术 264
11.5.1 段式液晶显示器 264
11.5.2 点阵式液晶显示器 270
11.6 打印机接口技术 277
11.6.1 RD-D型热敏打印机的主要技术性能 277
11.6.2 RD-D型打印机的并行接口 278
11.6.3 RD-D型打印机的串行接口 278
11.6.4 字符代码及打印命令 279
11.6.5 RD系列打印机MCS-51单片机接口 279
11.6.6 示例程序 280
第12章 单片机常用串行总线 282
12.1 RS-232C串行总线 282
12.1.1 RS-232C串行通信标准及应用 282
12.1.2 MCS-51的RS-232C通信接口 284
12.1.3 RS-232C应用举例 284
12.2 RS-422/485标准总线及应用 285
12.3 CAN总线 286
12.4 I2C总线 290
12.5 SPI总线 295
第13章 单片机应用系统的设计方法和技术 297
13.1 单片机应用系统开发的一般方法 297
13.1.1 总体设计 297
13.1.2 硬件设计 298
13.1.3 软件设计 299
13.1.4 系统调试 300
13.2 单片机应用系统的低功耗设计 301
13.3 加密技术 302
13.4 可靠性与抗干扰技术 305
13.4.1 应用系统的可靠性 305
13.4.2 抗干扰技术概述 309
13.4.3 单片机系统的硬件抗干扰技术 312
13.4.4 单片机系统的软件抗干扰技术 321
第14章 单片机开发系统 338
14.1 单片机开发系统概述 338
14.2 仿真器介绍 338
14.2.1 仿真开发系统的种类 338
14.2.2 仿真器的功能 340
14.3 单片机应用系统的调试 343
14.3.1 硬件的调试方法 343
14.3.2 软件调试方法 344
14.4 单片机开发系统举例 345
第15章 单片机实验部分 354
15.1 定时器/计数器的应用训练 354
15.1.1 实验内容 354
15.1.2 实验方法 354
15.1.3 实验程序 355
15.2 中断的应用及编程 357
15.2.1 实验内容 357
15.2.2 实验方法 357
15.2.3 实验原理图 357
15.2.4 实验程序 358
15.3 串行口的扩展应用 359
15.3.1 串行口扩展显示器 359
15.3.2 串行口扩展键盘 360
15.4 串行通信的应用 362
15.4.1 中断方式下的双机通信 362
15.4.2 计算机与单片机的通信 364
15.5 单片机与红外设备接口 371
15.5.1 实验内容 371
15.5.2 实验方法 371
15.5.3 实验原理图 372
15.5.4 实验程序 375
15.6 可燃性气体报警仪的设计 376
15.6.1 实验内容 376
15.6.2 实验方法 377
15.7 实现简单的音乐发生器 385
15.7.1 实验内容 385
15.7.2 实验方法 386
15.7.3 实验原理图 387
15.7.4 实验程序 389
15.8 用单片机实现语音录放 392
15.8.1 实验内容 392
15.8.2 实验方法 392
15.8.3 实验原理图 393
15.8.4 实验程序 398