标题：51单片机应用开发实战手册
图书信息
华清远见嵌入式培训中心  袁东  等编著  ISBN 978-7-121-12858-5
2011年4月出版
定价：59.00元（含DVD光盘1张）
16开
496页
宣传语
深入浅出，依靠深厚行业经验讲透技术原理
循序渐进，详解典型应用案例提升实战能力
内 容 简 介
本书通过30个案例的设计过程详细介绍了51单片机开发的相关软件、工具、应用系统设计方法等。
全书共10章。前3章为单片机系统开发基础，内容涉及51单片机的硬件结构、原理介绍、软硬件开发环境的建立、单片机应用系统设计的必备知识等。第4~7章以Keil+Proteus作为开发工具，详细介绍了20个简单案例的设计过程，内容包括了单片机应用系统设计所必须的一些基本知识和相关模块的编程。第8~10章在第4~7章的基础上，以keil+Protel 作为开发工具，详细介绍了10个综合应用系统的设计过程。这30个案例均含有完整详细的硬件原理图和软件代码。
本书的特点是语言简洁、图表丰富、案例代码完整且有详细的注释。案例覆盖了单片机开发过程中常见的模块设计和接口技术，部分案例已经经过了实际项目的验证并已规模应用。
本书可作为已有单片机C语言开发相关知识并想学习系统级设计技术的学生学习，也可供相关专业学生课程设计、毕业设计参考，还可以供单片机开发工程技术人员及爱好者阅读参考。
前  言
当前，单片机作为嵌入式微控制器在工业测控系统、智能仪器和家用电器中得到广泛应用。虽然单片机的品种很多，但MCS-51系列单片机仍不失为单片机中的主流机型。在众多的MCS-51系列单片机中，以Atmel公司的AT89Sxx系列单片机应用最为广泛。本书所有案例项目的设计均以AT89S52单片机作为核心来介绍。
单片机的编程语言主要有汇编语言和C语言两种。其中，由于C语言在易用性、可读性、可移植性、代码开发效率等诸多方面的优势，已被越来越多的单片机开发人员所选用。鉴于此，本书所有案例均以C51语言开发。
单片机系统开发工具有多种，在硬件设计方面，本书选择简单易用的Protel99SE作为电路和PCB设计软件；在软件设计方面，选择KeilC51集成开发环境作为软件开发平台。同时，选择目前十分流行的Proteus 单片机仿真软件作为简单应用系统设计的软件仿真平台，读者可在第4~10章的案例中系统学习这方面的知识。
本书通过对30个单片机应用系统案例设计过程的详细介绍，向读者全面地讲解单片机应用系统的设计过程、设计方法、注意事项等，每个案例均给出了完整的电路原理图说明，软件源码及代码注释。希望读者学习本书后能在系统设计和单片机编程方面有所提高，并能进行实际项目的开发。
本书共分10章，各章内容介绍如下：
第1章主要介绍MCS-51单片机的基础知识。通过简明扼要的介绍，使读者对51单片机的硬件结构、各个组成系统有一个完整的认识，以便在后面的案例学习中能从整体上把握单片机的系统设计。同时本章还详细介绍了本书使用的AT89S52单片机的引脚图和引脚说明。
第2章主要介绍51单片机开发环境的建立。分别介绍了硬件设计环境的建立，包括Protel99SE的使用，开发工具的选择，硬件开发所需的仪器等。软件开发环境的建立，包括KeilC51集成开发环境的整体结构，KeilC51的使用。同时本章还介绍了如何使用KeilC51+Proteus搭建单片机开发的软件仿真平台及其使用方法。
第3章主要介绍单片机应用系统设计的必备知识。分别介绍了单片机应用系统的结构，单片机系统硬件的设计原则及方法和注意事项，单片机软件系统的设计原则及方法和注意事项等。另外，本章还详细介绍了单片机应用系统的软硬件抗干扰设计技术。
第4~7章主要介绍20个单片机简单应用系统的设计。这20个案例覆盖了单片机系统设计的常见模块设计和接口技术。内容包括单片机的定时器/计数器的应用、单片机的串行通信技术、单片机的系统扩展技术、单片机应用系统的接口技术、A/D与D/A转换技术。这些技术是后续进行单片机复杂应用系统设计的基础，读者务必熟练掌握。另外，为方便读者学习，这4章所有案例均可以在Keil + Proteus中进行系统仿真测试。
第8~10章主要介绍10个单片机综合应用系统的设计。这10个综合案例，均是在第4~7章的基础上进行一些模块的功能整合或扩充而成，由浅入深重点介绍了一些新模块的设计和新技术的应用，着重教会读者如何进行大规模系统的综合设计。这些案例，有些已经通过了实际项目的检验并运行良好。
本书的特点是语言简洁、图表丰富、案例代码完整且有详细的注释。案例覆盖了单片机开发过程中常见的模块设计和接口技术，部分案例已经经过了实际项目的验证并已规模应用。
本书可作为已有单片机C语言开发相关知识并想学习系统级设计技术的学生学习，也可供相关专业学生课程设计、毕业设计参考，还可以供单片机开发工程技术人员及爱好者阅读参考。
本书主要由袁东编写，另外参与本书编写的还有高淑娟、袁东、王丽娜、周毅、林小峰、刘刚、马海波、李强、吴慧、马玉刚、冯浩、唐爱琴、李子龙、王明明、蒋志等同志，在此感谢他们的辛勤劳动，以及所有在本书编写过程中给予帮助的人。
本书取材于编者实际的项目工作，案例丰富，图表清晰，代码翔实，内容覆盖面广。希望本书能对想进一步学习单片机系统设计的读者有所帮助。由于时间紧迫，案例复杂，程序和图表较多，加之编者水平有限，难免有误漏之处，恳请读者批评指正。
编   者
2011年3月
目  录
第1章  MCS-51单片机基础 1
1.1  概述 2
1.2  MCS-51单片机硬件结构 2
1.2.1  MCS-51单片机的基本组成 2
1.2.2  AT89S52单片机的引脚图及各引脚功能说明 2
1.3  MCS-51单片机的复位 5
1.4  MCS-51的存储系统 6
1.4.1  MCS-51程序存储器 6
1.4.2  MCS-51数据存储器 7
1.4.3  特殊功能寄存器（SFR） 7
1.5  MCS-51的中断系统 8
1.5.1  MCS-51的中断源 8
1.5.2  MCS-51的中断请求标志 9
1.5.3  MCS-51的中断控制 9
1.5.4  MCS-51的中断处理过程 11
第2章　51单片机软硬件开发环境 12
2.1  硬件开发环境的建立 13
2.1.1  Protel 99SE 13
2.1.2  开发工具的选择 13
2.1.3  硬件开发所需仪器 13
2.2  软件开发环境的建立 14
2.2.1  系统概述 14
2.2.2  Keil C51单片机软件开发系统的整体结构 14
2.2.3  Keil C51 的使用 14
2.3  Keil C51+ Proteus 实现单片机的软件仿真 18
第3章  单片机应用系统设计的必备知识 22
3.1  单片机应用系统的结构 23
3.1.1  单机系统结构 23
3.1.2  多机系统结构 23
3.2  单片机应用系统的开发过程 24
3.3  单片机应用系统的硬件设计 24
3.4  单片机应用系统的软件设计 26
3.4.1 系统定义 26
3.4.2  软件结构设计 26
3.4.3  程序设计技术 27
3.4.4  程序设计 27
3.5  单片机应用系统的抗干扰设计 28
3.5.1  单片机应用系统硬件抗干扰设计 28
3.5.2  单片机应用系统软件抗干扰设计 30
第4章　简单应用系统设计案例——I/O使用 31
4.1  单片机键盘显示系统设计（一） 32
4.1.1 系统设计要求与方案确定 32
4.1.2 系统硬件电路设计 32
4.1.3  系统软件设计 34
4.1.4  设计小结 46
4.2  单片机键盘显示系统设计（二） 46
4.2.1  系统设计要求与方案确定 46
4.2.2  系统硬件电路设计 47
4.2.3  系统软件设计 48
4.2.4  设计小结 53
4.3  音乐播放器设计 53
4.3.1  系统设计要求与方案确定 54
4.3.2  系统硬件电路设计 54
4.3.3  系统软件设计 55
4.3.4  设计小结 61
4.4  电子琴设计 61
4.4.1  系统设计要求与方案确定 61
4.4.2  系统硬件电路设计 62
4.4.3  系统软件设计 63
4.4.4  设计小结 71
4.5  电子门铃设计 71
4.5.1  系统设计要求与方案确定 71
4.5.2  系统硬件电路设计 72
4.5.3  系统软件设计 73
4.5.4  设计小结 75
4.6  数控电压源系统设计 76
4.6.1  系统设计要求与方案确定 76
4.6.2  系统硬件电路设计 76
4.6.3  系统软件设计 77
4.6.4  设计小结 80
第5章　简单应用系统设计案例——定时器和中断使用 81
5.1  电子时钟系统设计 82
5.1.1  系统设计要求与方案确定 82
5.1.2  系统硬件电路设计 83
5.1.3  系统软件设计 84
5.1.4  设计小结 99
5.2  正弦波发生器设计 99
5.2.1  系统设计要求与方案确定 99
5.2.2  系统硬件电路设计 100
5.2.3  系统软件设计 101
5.2.4  设计小结 103
5.3  单片机模拟DDS低频信号发生器设计 104
5.3.1  系统设计要求与方案确定 104
5.3.2  系统硬件电路设计 104
5.3.3  系统软件设计 105
5.3.4  设计小结 108
5.4  数字频率计设计 108
5.4.1  系统设计要求与方案确定 108
5.4.2  系统硬件电路设计 109
5.4.3  系统软件设计 109
5.4.4  设计小结 117
5.5  电子秒表设计 117
5.5.1  系统设计要求与方案确定 117
5.5.2  系统硬件电路设计 118
5.5.3  系统软件设计 119
5.5.4  设计小结 128
第6章　简单应用系统设计——串行通信类 129
6.1  单片机与PC机串行通信系统设计 130
6.1.1  系统设计要求与方案确定 130
6.1.2  系统硬件电路设计 130
6.1.3  系统软件设计 131
6.1.4  设计小结 135
6.2  双机通信系统设计 135
6.2.1  系统设计要求与方案确定 135
6.2.2  系统硬件电路设计 136
6.2.3  系统软件设计 137
6.2.4  设计小结 153
6.3  多机通信系统设计 153
6.3.1  系统设计要求与方案确定 153
6.3.2  系统硬件电路设计 154
6.3.3  系统软件设计 155
6.3.4  设计小结 177
第7章　简单应用系统设计——控制类 178
7.1  电子抢答器系统设计 179
7.1.1  系统设计要求与方案确定 179
7.1.2  系统硬件电路设计 180
7.1.3  系统软件设计 181
7.1.4  设计小结 193
7.2  数字电压表设计 193
7.2.1  系统设计要求与方案确定 194
7.2.2  系统硬件电路设计 194
7.2.3  系统软件设计 195
7.2.4  设计小结 202
7.3  PWM输出控制系统设计 202
7.3.1  系统设计要求与方案确定 202
7.3.2  系统硬件电路设计 203
7.3.3  系统软件设计 204
7.3.4  设计小结 214
7.4  交通信号灯系统设计 214
7.4.1  系统设计要求与方案确定 214
7.4.2  系统硬件电路设计 215
7.4.3  系统软件设计 215
7.4.4  设计小结 223
7.5  电子密码锁设计 223
7.5.1  系统设计要求与方案确定 223
7.5.2  系统硬件电路设计 224
7.5.3  系统软件设计 225
7.5.4  设计小结 251
7.6  基于单片机的步进电机控制系统设计 251
7.6.1  系统设计要求与方案确定 251
7.6.2  系统硬件电路设计 252
7.6.3  系统软件设计 253
7.6.4  设计小结 275
第8章　综合应用系统设计案例——基础篇 276
8.1  基于ISP技术的单片机实验系统设计 277
8.1.1  系统需求分析 277
8.1.2  系统总体设计 278
8.1.3  系统硬件电路设计 279
8.1.4  系统软件设计 289
8.1.5  设计小结 314
8.2  智能小车系统设计 314
8.2.1  系统需求分析 314
8.2.2  系统总体设计 314
8.2.3  系统硬件电路设计 315
8.2.4  系统软件设计 317
8.2.5  设计小结 329
8.3  多功能万年历时钟系统设计 329
8.3.1  系统需求分析 329
8.3.2  系统总体设计 329
8.3.3  系统硬件电路设计 330
8.3.4  系统软件设计 331
8.3.5  设计小结 374
第9章　综合应用系统设计案例——提高篇 375
9.1  单片机无线多路温度采集系统设计 376
9.1.1  系统需求分析 376
9.1.2  系统总体设计 376
9.1.3  系统硬件电路设计 377
9.1.3  系统软件设计 381
9.1.4  设计小结 419
9.2  基于单片机的超声波测距系统设计 419
9.2.1  系统需求分析 419
9.2.2  系统总体设计 419
9.2.3  系统硬件电路设计 420
9.2.4  系统软件设计 422
9.2.5  设计小结 433
9.3  基于单片机+TDA5767的收音机系统设计 433
9.3.1  系统需求分析 433
9.3.2  系统总体设计 433
9.3.3  系统硬件电路设计 433
9.3.4  系统软件设计 436
9.3.5  设计小结 447
第10章　综合应用系统设计案例——实践篇 448
10.1  基于单片机的门禁系统设计 449
10.1.1  系统需求分析 449
10.1.2  系统总体设计 449
10.1.3  系统硬件电路设计 449
10.1.4  系统软件设计 453
10.1.5  书设计小结 456
10.2  基于单片机的MiniPOS系统设计 457
10.2.1  系统需求分析 457
10.2.2  系统总体设计 457
10.2.3  系统硬件电路设计 457
10.2.4  系统软件设计 460
10.2.5  设计小结 470
10.3  基于单片机的GPS全球定位系统设计 470
10.3.1  系统需求分析 471
10.3.2  系统总体设计 471
10.3.3  系统硬件电路设计 471
10.3.4  系统软件设计 473
10.3.5  设计小结 477
10.4  基于AT89S52+GPRS的远程控制系统设计 477
10.4.1  系统需求分析 478
10.4.2  系统总体设计 478
10.4.3  系统硬件电路设计 479
10.4.4  系统软件设计 482
10.4.5  设计小结 486