第1章 51单片机入门基础 1
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单片机开发的常用单元 55
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编译器 88
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章 单片机应用系统开发流程 101
4.1 单片机系统设计分析 101
4.2 单片机软件开发流程 103
4.3 单片机硬件开发流程 109
4.4 分析与总结 112
第5章 实时日历时钟系统设计实例 113
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章 网络远程监控与采集系统设计实例 130
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章 工厂环境智能监测系统设计实例 169
7.1 系统功能说明 169
7.2 系统整体设计方案 170
7.3 硬件设计 171
7.3.1 微控制器模块 171
7.3.2 温度测量模块
1