第1章 单片微型计算机概述 1
1.1 微型计算机概述 1
1.1.1 微型计算机的组成及应用形态 1
1.1.2 单片机内部结构及单片机应用系统组成 3
1.1.3 80C51单片机系列 3
1.2 单片机的发展过程及产品近况 6
1.2.1 单片机的发展过程 6
1.2.2 单片机的产品近况 6
1.3 单片机的特点及应用领域 7
1.3.1 单片机的特点 7
1.3.2 单片机的应用领域 7
1.4 单片机的发展趋势 8
本章小结 8
思考题与习题 9
第2章 80C51单片机的结构及原理 10
2.1 80C51单片机的结构与原理 10
2.1.1 80C51单片机系列 10
2.1.2 80C51单片机的结构 11
2.1.3 80C51单片机的内部结构 11
2.1.4 80C51单片机的引脚及功能 12
2.2 80C51单片机的存储器组织 14
2.2.1 80C51单片机的程序存储器ROM 15
2.2.2 80C51 ROM低地址特殊单元 16
2.2.3 80C51单片机的数据存储器RAM 17
2.2.4 特殊功能寄存器(SFR)简介 19
2.3 80C51的并行输入/输出端口结构与操作 23
2.3.1 80C51 P0~P3接口功能简介 23
2.3.2 P0口 23
2.3.3 P1口 25
2.3.4 P2口 25
2.3.5 P3口 26
2.3.6 P口带负载能力及注意事项 27
2.3.7 P口应用实例 27
2.4 80C51时钟电路与时序 28
2.4.1 时钟电路 28
2.4.2 时序 29
2.5 80C51复位电路 31
2.5.1 80C51复位电路 31
2.5.2 80C51单片机复位后的状态 32
2.6 常用8位单片机系列介绍 32
2.6.1 AT系列单片机 32
2.6.2 Motorola公司的8位单片机 34
2.6.3 Microchip(微芯)PIC系列单片机 36
2.6.4 台湾Winbond(华邦)公司W78E51系列单片机 37
2.7 16位单片机介绍 38
2.7.1 Intel公司的16位单片机 38
2.7.2 Motorola公司的16位单片机 39
2.8 32位单片机介绍 39
2.8.1 Motorola公司的32位单片机 39
2.8.2 Hitachi公司的32位单片机 40
本章小结 40
思考题与习题 41
第3章 80C51的指令系统和程序设计 42
3.1 指令概述 42
3.1.1 指令分类 42
3.1.2 指令的格式 43
3.1.3 指令中的符号意义说明 44
3.2 寻址方式 44
3.2.1 立即寻址 45
3.2.2 直接寻址 45
3.2.3 寄存器寻址 46
3.2.4 寄存器间接寻址 46
3.2.5 变址寻址 47
3.2.6 相对寻址 47
3.2.7 位寻址 48
3.3 80C51的指令系统 48
3.3.1 数据传送类指令 49
3.3.2 算术运算类指令 53
3.3.3 逻辑操作类指令 57
3.3.4 控制转移类指令 59
3.3.5 位操作指令 64
3.3.6 常用伪指令 66
3.4 80C51汇编程序设计 68
3.4.1 顺序结构程序设计 69
3.4.2 分支结构程序设计 71
3.4.3 循环结构程序设计 74
3.4.4 子程序设计 77
本章小结 81
思考题与习题 82
第4章 80C51的定时器/计数器与中断系统 85
4.1 80C51定时器/计数器 85
4.1.1 定时器/计数器的结构 85
4.1.2 80C51定时器/计数器的原理 86
4.2 80C51定时器/计数器的控制 87
4.2.1 定时器/计数器方式寄存器TMOD 87
4.2.2 定时器/计数器控制寄存器TCON 88
4.2.3 定时器/计数器的初始化 89
4.3 80C51定时器/计数器的工作方式及应用 90
4.3.1 方式0 90
4.3.2 方式1 91
4.3.3 方式2 92
4.3.4 方式3 92
4.3.5 定时器/计数器的编程应用 93
4.4 80C51的中断系统 97
4.4.1 中断的概念 97
4.4.2 中断的特点及功能 97
4.4.3 80C51中断系统的结构及中断源 99
4.4.4 80C51中断的控制 100
4.5 80C51中断处理过程 102
4.5.1 中断响应与中断响应时间 103
4.5.2 中断响应过程 104
4.5.3 中断处理 104
4.5.4 中断返回 105
4.6 80C51外部中断扩展与中断系统的应用 106
4.6.1 用定时器作外部中断源 107
4.6.2 中断和查询相结合 107
4.6.3 中断系统的应用 108
本章小结 113
思考题与习题 113
第5章 80C51单片机的串行接口技术 115
5.1 串行通信概述 115
5.1.1 串行通信的分类 116
5.1.2 串行通信制式 117
5.1.3 串行通信接口标准 118
5.2 80C51的串行接口及工作方式 123
5.2.1 80C51的串行接口的结构 123
5.2.2 80C51的串行接口的控制寄存器 123
5.3 80C51串行口的工作方式及波特率 125
5.3.1 方式0 125
5.3.2 方式1 128
5.3.3 方式2和方式3 129
5.3.4 串行口的初始化 130
5.3.5 串行口的应用编程方法 130
5.4 80C51之间的通信 131
5.4.1 MCS-51双机通信技术 132
5.4.2 MCS-51多机通信技术 135
5.5 PC与80C51的通信 139
5.5.1 MSComm控件的属性 140
5.5.2 MSComm控件的通信处理方法 141
5.6 I2C串行扩展总线 144
5.6.1 I2C总线的结构原理 144
5.6.2 I2C串行扩展应用实例 145
5.7 SPI串行扩展接口 151
5.7.1 SPI总线的结构原理 151
5.7.2 SPI总线的软件模拟 152
本章小结 153
思考题与习题 153
第6章 80C51单片机的系统扩展 155
6.1 程序存储器扩展 155
6.1.1 扩展总线 155
6.1.2 常用程序存储器芯片 156
6.1.3 程序存储器扩展实例 160
6.2 数据存储器扩展 164
6.2.1 常用数据存储器芯片 164
6.2.2 数据存储器扩展实例 165
6.3 简单并行I/O接口的扩展 168
6.3.1 简单I/O接口扩展芯片 168
6.3.2 简单并行I/O接口扩展实例 169
6.4 8255可编程并行接口扩展 170
6.4.1 Intel 8255A的结构与功能 170
6.4.2 Intel 8255A的控制字 173
6.4.3 Intel 8255A的工作方式 174
6.4.4 8255A与单片机89S51的连接 175
6.4.5 8255A可编程并行接口扩展应用实例 177
6.5 8155/8156可编程并行接口扩展 178
6.5.1 8155的结构和引脚 178
6.5.2 8155的工作方式 180
6.5.3 80C51单片机与8155的连接 182
6.5.4 8155可编程并行接口扩展应用实例 182
本章小结 184
思考题与习题 185
第7章 80C51单片机接口技术 186
7.1 键盘接口技术 186
7.1.1 键的特性 187
7.1.2 独立键盘接口技术 189
7.1.3 编码键盘接口技术 192
7.1.4 键盘扩展技术 194
7.2 数码显示接口技术 198
7.2.1 数码显示原理 198
7.2.2 静态显示技术 200
7.2.3 动态显示技术 203
7.3 液晶显示接口技术 206
7.3.1 液晶显示器简介 206
7.3.2 LCD1602液晶显示器与单片机接口 207
7.4 D/A转换器与单片机接口技术 213
7.4.1 D/A转换器概述 213
7.4.2 D/A转换器的主要技术指标 215
7.4.3 DAC0832接口芯片 216
7.4.4 DAC0832与单片机接口 218
7.4.5 DAC0832应用实例 220
7.5 A/D转换器与单片机接口技术 225
7.5.1 A/D转换器的工作原理 225
7.5.2 A/D转换器的主要技术指标 226
7.5.3 ADC0809接口芯片 227
7.5.4 ADC0809与单片机的接口 229
7.5.5 ADC0809应用实例 231
7.5.6 AD574A芯片与单片机接口 232
7.5.7 ADC芯片与单片机接口小结 235
本章小结 237
思考题与习题 238
第8章 80C51单片机的C51程序设计 239
8.1 单片机的C语言 240
8.1.1 C51程序开发概述 240
8.1.2 C51程序结构 241
8.2 C51的数据类型 241
8.2.1 C51的标识符和关键字 241
8.2.2 数据与数据类型 243
8.2.3 C51数据的存储类型 244
8.2.4 80C51硬件结构的C51定义 245
8.3 C51的运算符、表达式及其规则 247
8.3.1 算术运算符和算术表达式 248
8.3.2 关系运算符、关系表达式及优先级 249
8.3.3 逻辑运算符和逻辑表达式及优先级 249
8.3.4 C51位操作及其表达式 250
8.4 C51流程控制语句 251
8.4.1 C51的顺序结构 252
8.4.2 C51的选择结构 252
8.4.3 C51的循环结构 253
8.5 C51的数组 254
8.5.1 一维数组 254
8.5.2 二维数组 255
8.5.3 字符数组 256
8.5.4 查表 257
8.6 指针 257
8.6.1 指针的基本概念 257
8.6.2 指针变量的使用 258
8.6.3 数组指针和指向数组的指针变量 260
8.6.4 指向多维数组的指针和指针变量 262
8.6.5 关于Keil C51的指针类型 262
8.7 C51的函数 264
8.7.1 函数的分类 264
8.7.2 函数的参数传递和函数值 266
8.7.3 函数的调用 267
8.7.4 C51函数的定义 269
8.8 C51编程实例 269
8.8.1 80C51内部资源的编程 269
8.8.2 8051输出控制的C编程 276
8.8.3 8051数据采集的C编程 278
8.8.4 8051人机交互的C编程 280
本章小结 284
思考题与习题 286
第9章 单片机工程应用技术 288
9.1 单片机应用系统的抗干扰技术 288
9.1.1 单片机应用系统硬件抗干扰的设计 289
9.1.2 单片机应用系统软件抗干扰的设计 295
9.1.3 单片机自身的抗干扰措施 301
9.2 模拟信号放大器和线性参数标度变换 303
9.2.1 模拟信号放大器 303
9.2.2 标度变换 308
9.3 常用接口驱动电路 312
9.3.1 光电耦合隔离器接口电路 312
9.3.2 三极管驱动电路 313
9.3.3 继电器驱动电路 314
9.3.4 可控硅(SCR)驱动电路 316
9.3.5 固态继电器驱动电路 317
9.3.6 电机控制接口电路 319
9.3.7 步进电机控制接口电路 321
9.4 温度传感器检测电路 325
9.4.1 集成温度传感器μPC616及其应用 325
9.4.2 AD590温度传感器简介 327
9.5 三端集成稳压器 328
9.5.1 三端集成稳压器外型、符号及引脚 328
9.5.2 三端集成稳压器的典型用法 329
9.5.3 三端集成稳压器的扩展用法 330
本章小结 331
思考题与习题 332
第10章 单片机应用系统工程设计与实例 333
10.1 单片机应用系统概述 333
10.1.1 单片机应用系统的结构 333
10.1.2 单片机应用系统工程设计的基本要求 335
10.2 单片机应用系统工程设计的步骤和方法 335
10.2.1 单片机应用系统工程设计的步骤 335
10.2.2 单片机应用系统工程设计的方法 336
10.3 单片机温度控制系统工程设计实例 340
10.3.1 明确要设计应用系统的功能和技术指标 340
10.3.2 确定单片机应用系统总体方案 340
10.3.3 硬件设计 340
10.3.4 软件设计 343
10.3.5 系统调试 348
10.4 单片机控制步进电机实例 349
10.4.1 明确要设计应用系统的功能和技术指标 349
10.4.2 确定单片机应用系统总体方案 349
10.4.3 硬件设计 349
10.4.4 软件设计 351
本章小结 353
思考题与习题 353
第11章 Proteus ISIS和Keil μVision2的使用与实例 356
11.1 Proteus软件概述 357
11.2 Proteus ISIS编辑环境 357
11.2.1 操作界面 358
11.2.2 菜单栏和工具栏 359
11.2.3 编辑环境的设置 360
11.3 电路图的绘制 362
11.4 电路分析与仿真 368
11.4.1 实时仿真 368
11.4.2 微处理器的仿真 371
11.5 Keil C51集成开发环境 377
11.5.1 建立一个Keil C51程序 378
11.5.2 新建A51汇编工程 382
11.6 在Keil C51下调试程序 384
11.6.1 进入仿真状态 384
11.6.2 认识各个仿真窗口 385
11.6.3 程序的运行控制 387
11.6.4 外围设备访问 387
11.7 Proteus 6.9与Keil C51 V7.50的联调 388
11.7.1 Proteus 6.9与Keil C51 V7.50的整合 388
11.7.2 Keil C51与Proteus 6.9联调举例 389
本章小结 391
思考题与习题 391
第12章 80C51单片机实验与工程应用实例 393
12.1 单片机实验与工程应用开发环境介绍 393
12.1.1 Lab6000P仿真实验系统 393
12.1.2 基于Proteus的ISIS虚拟仿真环境 398
12.2 WAVE6000集成开发环境介绍 398
12.3 工程设计实例 401
12.3.1 体育比赛计分显示控制系统 401
12.3.2 基于80C51的数据采集控制系统 404
12.4 实验指导 405
12.4.1 利用Lab6000仿真实验系统 405
12.4.2 利用Proteus ISIS虚拟仿真系统 415
附录A MCS-51指令表 416
附录B ASCII码(美国信息交换标准码)表 422
附录C 常用集成芯片引脚图 424
参考文献 427