标题：51单片机典型系统开发实例精讲
内 容 简 介
本书通过大量系统实例精讲形式，介绍了51单片机应用系统开发的流程与方法。全书包括11章，首先讲述51系列的硬件结构、指令系统、开发过程中的常用单元、Keil 8051 C 编译器、51系统设计流程，引导读者进行基础知识学习。然后安排了7个典型实用的51单片机系统设计实例，具体为实时日历时钟系统、网络监控与采集系统、工厂环境监测系统、电热水器控制系统、无线智能抄表系统、汽车行驶状态记录仪系统、智能嵌入式网关设计等，读者通过学习，可以快速提高设计能力，步入高级工程师的行列。
本书语言简洁，层次清晰，内容从零开始、循序渐进。不但详细讲述了硬件系统设计及软件调试方法与流程，而且提供了综合系统设计思路，对实例的所有程序代码做了详细注释，利于读者理解和巩固知识点。配套光盘包含了本书所有实例的硬件原理图和软件代码，方便读者学习。本书适合计算机、自动化、电子及相关专业的大中专院校学生，以及从事51单片机设计应用的工程师、科研人员使用。
丛书说明
工程技术的电子化、集成化和系统化促进了电子工程技术的发展，同时也促进了电子工程技术在社会各行业中的广泛应用，从近年的人才招聘市场来看，电子工程师的人才需求更是一路走高。
电子工程师如此紧俏，除需求不断走高，人才供不应求外，另一重要原因则是电子工程师的门槛相对而言比较高，这个高门槛则来自于工程师的“经验”和“实践”！
因此，为了满足读者学习和工作需要，解决各种工作中的专业问题，我们紧紧围绕“经验”和“实践”，精心策划组织了此套丛书。
1．丛书范围现代电子科学技术的一个特点是多学科交叉，因此，工程师应当了解、掌握两门以上的相关学科，知识既精深又广博是优秀的工程师成长为某领域专家的重要标志。本丛书内容涉及软件开发、研发电子以及嵌入式项目开发等，包括单片机、USB接口、ARM、CPLD/FPGA、DSP和移动通信系统等。
2．读者对象本套书面向各领域的初、中级用户，具体为高校计算机、电子信息、通信工程、自动化控制专业在校大学生，以及从事电子开发和应用行业的科研人员。
3．内容组织形式本套书紧紧围绕“经验”和“实践”，首先介绍一些相关的基础知识，然后根据不同的模块或应用领域，分篇安排应用程序实例的精讲。基础知识用来为一些初级读者打下一定的知识功底；基础好一点的读者则可以跳过这一部分，直接进入实例的学习。
4．实例特色在应用实例的安排上，着重突出“应用”和“实用”两个基本原则，安排具有代表性、技术领先性以及应用广泛的典型实例，让读者学习借鉴。这些实例是从作者多年程序开发项目中挑选出的，也是经验的归纳与总结。
在应用实例的讲解上，既介绍了设计原理、基本步骤和流程，也穿插了一些经验、技巧与注意事项。特别在程序设计思路上，在决定项目开发的质量和成功与否的细节上，尽可能地用简洁的语言来清晰阐述大众易于理解的概念和思想；同时，程序代码部分做了很详细的中文注释，有利于读者举一反三，快速应用和提高。
5．光盘内容本套书的光盘中包含了丰富的实例原图文件和程序源代码，读者稍加修改便可应用于自己的工作中或者完成自己的课题（毕业设计），物超所值。读者使用之前，最好先将光盘内容全部复制到电脑硬盘中，以便于以后可以直接调用，而不需要反复使用光盘，提高操作速度和学习效率。
6．学习指南对于有一定基础的读者，建议直接从实例部分入手，边看边上机练习，这样印象会比较深，效果更好。基础差一点的读者请先详细学习书中基础部分的理论知识，然后再进行应用实例的学习。在学习中，尽量做到反复理解和演练，以达到融会贯通、举一反三的功效；特别希望尽量和自己的工作设计联系起来，以达到“即学即会，学以致用”的最大化境界。
本套丛书主要偏重于实用性，具有很强的工程实践指导性。期望读者在学习中顺利、如意！
目 录
第1章 51单片机入门基础1.1 51单片机的发展与应用领域 1
1.1.1 发展阶段 1
1.1.2 应用领域 2
1.2 51单片机产品兼容系列 3
1.2.1 Intel公司产品系列 3
1.2.2 Atmel公司产品系列 4
1.2.3 Philips公司产品系列 6
1.3 51单片机的硬件结构 7
1.3.1 引脚及其功能 7
1.3.2 内部结构 9
1.4 51单片机工作方式和指令系统 29
1.4.1 单片机的工作方式 29
1.4.2 单片机指令系统简介 34
1.4.3 单片机的寻址方式 34
1.4.4 单片机的指令格式与符号 37
1.5 分析与总结 54
第2章 51单片机开发的常用单元2.1 单片机的键盘输入单元 55
2.1.1 行列式键盘 55
2.1.2 键识别方法 56
2.1.3 键识别法举例 56
2.1.4 程序代码与注释 60
2.2 单片机数码显示单元 61
2.2.1 如何驱动8段数码管 61
2.2.2 8段数码管动态显示举例 62
2.2.3 程序代码与注释 64
2.3 单片机液晶显示单元 65
2.3.1 液晶模块 65
2.3.2 液晶模块的电源设计 67
2.3.3 如何显示液晶模块 68
2.3.4 液晶显示模块举例 70
2.3.5 程序代码与注释 71
2.4 单片机串行通信单元 78
2.4.1 单片机串行通信的原理 78
2.4.2 单片机串行通信举例 81
2.4.3 程序代码与注释 83
2.5 数学运算 84
2.5.1 限幅滤波算法 85
2.5.2 中值滤波算法 85
2.5.3 算术平均滤波算法 86
2.5.4 加权平均滤波算法 86
2.5.5 滑动平均滤波算法 87
第3章 Keil 8051 C编译器3.1 Keil编译器简介 88
3.2 如何使用Keil开发 89
3.2.1 建立工程 90
3.2.2 工程的设置 92
3.2.3 编译与连接 95
3.3 dScope for Windows的使用 95
3.3.1 如何启动 95
3.3.2 如何调试 97
3.3.3 调试窗口 98
第4章 单片机应用系统开发流程4.1 单片机系统设计分析 101
4.2 单片机软件开发流程 103
4.3 单片机硬件开发流程 109
4.4 分析与总结 112
第5章 实时日历时钟系统设计实例5.1 实例说明 113
5.2 设计思路分析 115
5.2.1 日历时钟芯片SD2000A 115
5.2.2 电源电路设计 116
5.3 硬件电路设计 117
5.4 软件设计 118
5.4.1 接口时序与操作指令 118
5.4.2 寄存器 120
5.4.3 程序代码说明 124
5.5 分析与总结 129
第6章 网络远程监控与采集系统设计实例6.1 实例功能说明 130
6.2 Keil RTX51 Tiny介绍 130
6.2.1 RTX51的概述 131
6.2.2 系统要求和任务定义 134
6.2.3 建立RTX51 Tiny应用程序 137
6.2.4 RTX51 Tiny系统函数详解 139
6.2.5 RTX51 Tiny系统调试 145
6.3 系统设计思路 146
6.3.1 远程监控与采集连接图 146
6.3.2 Modbus协议简介 146
6.3.3 传输方式 148
6.3.4 协议内容 150
6.4 硬件电路设计 152
6.4.1 总体硬件框图 152
6.4.2 单片机电路设计 152
6.4.3 从设备地址配置电路设计 153
6.4.4 485接口设计 154
6.4.5 状态量采集电路 155
6.4.6 模拟量采集电路 155
6.5 软件设计与代码分析 157
6.5.1 软件流程 158
6.5.2 初始化任务 159
6.5.3 定时采集任务 159
6.5.4 测试帧任务 160
6.5.5 轮询处理任务 161
6.5.6 状态量采集子程序 162
6.5.7 模拟量采集子程序 162
6.5.8 485发送、接收子程序 163
6.5.9 CRC校验 164
6.5.10 串口发送接收模块 165
6.6 分析与总结 168
第7章 工厂环境智能监测系统设计实例7.1 系统功能说明 169
7.2 系统整体设计方案 170
7.3 硬件设计 171
7.3.1 微控制器模块 171
7.3.2 温度测量模块 174
7.3.3 湿度测量模块 175
7.3.4 LCD显示模块 177
7.3.5 通信模块 179
7.4 软件设计 181
7.4.1 温度测量软件 181
7.4.2 湿度测量软件 184
7.4.3 LCD显示软件 185
7.5 分析与总结 187
第8章 电热水器控制系统设计实例8.1 系统功能说明 188
8.2 系统整体设计方案 189
8.3 硬件设计 191
8.3.1 微控制器模块 191
8.3.2 温度测量 192
8.3.3 实时时钟 195
8.3.4 看门狗复位电路 196
8.3.5 LED显示电路 198
8.4 软件设计 199
8.4.1 模数转换软件设计 199
8.4.2 实时时钟软件设计 202
8.4.3 LED显示软件设计 205
8.5 分析与总结 208
第9章 无线智能抄表系统设计实例9.1 系统功能说明 209
9.2 系统整体设计方案 210
9.3 硬件设计 211
9.3.1 楼栋集中器硬件结构 211
9.3.2 微控制器模块 211
9.3.3 存储模块 212
9.3.4 人机接口模块 214
9.3.5 抄表接口模块 217
9.3.6 无线模块 218
9.4 软件设计 222
9.4.1 楼栋集中器系统软件流程 222
9.4.2 SPI与UART转换 224
9.4.3 中断程序 226
9.4.4 FM3130的读写 227
9.4.5 键盘输入 230
9.4.6 LCD显示 232
9.5 分析与总结 235
第10章 汽车行驶状态记录仪系统设计10.1 实例说明 237
10.1.1 功能和技术指标 237
10.1.2 面板介绍和使用方法 238
10.2 设计思路分析 239
10.2.1 获取行驶状态信息 239
10.2.2 系统总体结构 239
10.3 硬件设计 240
10.3.1 记录仪的供电 240
10.3.2 信号采集模块 242
10.3.3 单片机模块 243
10.3.4 可编程逻辑器件 245
10.3.5 日历时钟芯片 248
10.3.6 液晶显示模块LCD 252
10.3.7 信息的存储 254
10.4 软件设计 256
10.4.1 软件流程 256
10.4.2 中断子程序 257
10.4.3 获取状态信息 258
10.4.4 时间信息的设置和获取 259
10.4.5 键盘输入 260
10.4.6 液晶显示 261
10.4.7 IC卡操作 264
10.5 分析与总结 267
第11章 RS485-CAN智能嵌入式网关设计实例11.1 系统功能说明 268
11.2 系统整体设计方案 269
11.3 硬件设计 270
11.3.1 RS485-CAN智能嵌入式网关硬件结构 270
11.3.2 微控制器模块 271
11.3.3 CAN接口模块 272
11.3.4 RS485接口模块 277
11.3.5 存储模块 278
11.4 软件设计 279
11.4.1 CAN接口软件设计 279
11.4.2 RS485接口软件设计 287
11.4.3 AT93C46存储器读写 290
11.4.4 参数配置 292
11.5 分析与总结 292
附录A C与汇编语言混合编程 294