第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 温度测量模块 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章 电热水器控制系统设计实例 188
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章 无线智能抄表系统设计实例 209
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章 汽车行驶状态记录仪系统设计 237
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智能嵌入式网关设计实例 268
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