书籍详情
51单片机应用系统开发典型实例
作者:戴佳,苗龙,陈斌 编著
出版社:中国电力出版社
出版时间:2005-10-01
ISBN:9787508335025
定价:¥39.00
购买这本书可以去
内容简介
本书针对目前最通用流行的单片机51系列,介绍了单片机开发的基本知识,工作中的常用功能模块和大量 的实际应用案例。分为10章,前3章讲述了51单片机开发的基本知识、常用功能模块以及KEIL 8051 C 编 译器;第4章到第10章,重点介绍了7个实际的应用案例,内容涉及红外数据通信系统开发、光纤延迟线系 统开发、车俩行驶状态记录仪开发、SDH光端机支路单元盘开发、用单片机实现简单的Web服务器、基于 Keil RTX51Tiny的远程监控采集系统开发、Shell调试系统开发等。本书语言简洁,层次清晰,以大型实 例介绍为主线,遵照51单片机应用系统开发的基本步骤和思路,进行详细讲解,并穿插介绍了经验、技巧 与注意事项,有很强的工程性、实用性和指导性。光盘中附有丰富的实例硬件原图文件和程序源代码,读 者稍加修改,便可应用于自己的工作和课题设计中去。本书适合于初中级读者使用,特别适合于高校计算机、自动化、电子及硬件相关专业在校学生,以及从事51单片机开发的科研设计人员使用。
作者简介
暂缺《51单片机应用系统开发典型实例》作者简介
目录
丛书序
前 言
第1章 51单片机概述
1.1 51单片机系列特点 1
1.2 51单片机的应用领域 2
1.3 硬件结构和指令系统 3
1.3.1 51单片机的内部结构 3
1.3.2 51单片机的引脚说明 6
1.3.3 51单片机的工作方式 7
1.3.4 51单片机的指令系统 8
1.4 51单片机的应用系统 11
1.4.1 应用系统结构 11
1.4.2 应用系统开发过程 12
第2章 开发过程中的常用单元
2.1 单片机的键盘输入单元 15
2.1.1 行列式键盘 15
2.1.2 键识别方法 15
2.1.3 键识别法举例 16
2.1.4 程序代码 19
2.2 单片机数码显示单元 20
2.2.1 如何驱动8段数码管 21
2.2.2 8段数码管动态显示举例 21
2.2.3 程序代码 24
2.3 单片机液晶显示单元 25
2.3.1 液晶模块 25
2.3.2 液晶模块的电源设计 26
2.3.3 如何显示液晶模块 28
2.3.4 液晶显示模块举例 30
2.3.5 程序代码 31
2.4 单片机串行通信单元 38
2.4.1 单片机串行通信的原理 39
2.4.2 单片机串行通信举例 41
2.4.3 程序代码 43
2.5 数学运算 45
2.5.1 限幅滤波算法 45
2.5.2 中值滤波算法 46
2.5.3 算术平均滤波算法 46
2.5.4 加权平均滤波算法 47
2.5.5 滑动平均滤波算法 47
第3章 Keil 8051 C编译器
3.1 Keil 编译器简介 49
3.2 如何使用Keil开发 50
3.2.1 建立工程 50
3.2.2 工程的设置 53
3.2.3 编译与连接 55
3.3 dScope for Windows的使用 56
3.3.1 如何启动 56
3.3.2 如何调试 57
3.3.3 调试窗口 58
第4章 红外数据通信系统开发
4.1 红外数据通信 61
4.2 设计思路 62
4.2.1 如何实现红外通信 62
4.2.2 红外通信相关器件 63
4.2.3 设计注意事项 65
4.3 硬件设计 66
4.3.1 芯片的选取 66
4.3.2 看门狗电路 68
4.3.3 单片机部分电路 69
4.3.4 串口电平转换电路 69
4.3.5 红外通信电路 70
4.4 软件设计 71
4.4.1 软件工作流程 71
4.4.2 程序分析及代码 72
4.5 分析与总结 75
第5章 可编程光纤延迟线系统开发
5.1 系统介绍 77
5.1.1 光纤延迟线 77
5.1.2 可编程光纤延迟线系统 77
5.2 设计思路 78
5.2.1 总体结构 78
5.2.2 设计重点 79
5.3 硬件设计 79
5.3.1 供电模块 80
5.3.2 单片机模块 81
5.3.3 光纤延迟线光开关矩阵 85
5.3.4 可编程逻辑器件模块 88
5.4 软件设计 93
5.4.1 软件流程 93
5.4.2 串行通信的设计 93
5.4.3 子程序分析 95
5.5 分析与总结 100
第6章 汽车行驶状态记录仪开发
6.1 系统介绍 103
6.1.1 功能和技术指标 103
6.1.2 面板介绍和使用方法 104
6.2 设计思路 105
6.2.1 如何获取行驶状态信息 105
6.2.2 系统的总体结构 105
6.3 硬件设计 106
6.3.1 记录仪的供电 106
6.3.2 信号采集模块 107
6.3.3 单片机模块 108
6.3.4 可编程逻辑器件 111
6.3.5 日历时钟芯片 114
6.3.6 液晶显示模块LCD 117
6.3.7 信息的存储 119
6.4 软件设计 121
6.4.1 软件流程 121
6.4.2 中断子程序 122
6.4.3 获取状态信息 124
6.4.4 时间信息的设置和获取 124
6.4.5 键盘输入 125
6.4.6 液晶显示 127
6.4.7 IC卡操作 130
6.5 分析与总结 134
第7章 SDH光端机支路单元盘开发
7.1 SDH光端机介绍 135
7.1.1 什么是SDH光端机 135
7.1.2 功能介绍 136
7.2 系统设计思路 137
7.2.1 专用芯片的选取 137
7.2.2 可编程芯片的使用 138
7.2.3 51单片机的使用 139
7.3 硬件设计 139
7.3.1 系统的总体结构 140
7.3.2 供电模块 140
7.3.3 单片机电路 142
7.3.4 专用芯片电路 145
7.3.5 可编程逻辑器件 151
7.3.6 单片机与双口RAM的通信 155
7.4 软件设计 156
7.4.1 软件流程 157
7.4.2 中断处理 158
7.4.3 与双口RAM的通信 159
7.4.4 配置模块 162
7.4.5 告警上报模块 164
7.4.6 性能收集模块 167
7.5 分析与总结 172
第8章 继电保护测试仪开发
8.1 继电保护测试仪介绍 175
8.1.1 微机型继电保护设备 175
8.1.2 继电保护测试仪 175
8.2 设计思路 176
8.2.1 系统需求分析 176
8.2.2 芯片的选取 177
8.3 硬件设计 178
8.3.1 总体结构 178
8.3.2 P89C51单片机电路 178
8.3.3 存储扩展电路 180
8.3.4 串行口扩展电路 183
8.3.5 实时时钟电路 189
8.3.6 可编程逻辑器件 191
8.4 软件设计 193
8.4.1 软件流程 193
8.4.2 键盘处理模块 194
8.4.3 显示处理模块 196
8.4.4 实时时钟管理模块 199
8.4.5 串口通信模块 202
8.5 分析与总结 205
第9章 基于Keil RTX51 Tiny的远程监控采集系统从设备开发
9.1 Keil RTX51 Tiny 207
9.1.1 RTX51 简介 207
9.1.2 RTX51的任务、事件和中断 208
9.1.3 应用RTX51 Tiny 209
9.2 设计思路 212
9.2.1 如何实现远程监控与采集 212
9.2.2 Modbus协议简介 212
9.2.3 传输方式 214
9.2.4 协议内容 215
9.3 硬件设计 218
9.3.1 总体硬件框图 218
9.3.2 单片机电路设计 218
9.3.3 从设备地址配置电路设计 219
9.3.4 485接口设计 219
9.3.5 状态量采集电路 221
9.3.6 模拟量采集电路 221
9.4 软件设计 223
9.4.1 软件流程 223
9.4.2 初始化任务 224
9.4.3 定时采集任务 225
9.4.4 测试帧任务 226
9.4.5 轮询处理任务 227
9.4.6 状态量采集子程序 228
9.4.7 模拟量采集子程序 228
9.4.8 485发送、接收子程序 229
9.4.9 CRC校验 230
9.4.10 串口发送接收模块 231
9.5 分析与总结 234
第10章 简单Shell命令调试系统开发
10.1 系统功能介绍 235
10.1.1 为什么要使用调试系统 235
10.1.2 功能介绍 236
10.2 硬件环境 236
10.3 软件设计 236
10.3.1 工作流程 237
10.3.2 基本模块和数据结构 238
10.3.3 串口人机界面模块设计 238
10.3.4 命令解释程序模块设计 241
10.3.5 调试命令执行函数设计 243
10.4 简单Shell的调试应用实例 246
10.4.1 命令输入示例 246
10.4.2 调试命令debug示例 247
10.4.3 控制命令示例 250
10.5 分析与总结 251
第11章 单片机系统的电磁兼容性设计
11.1 电磁兼容概述及电磁干扰模型 253
11.2 单片机系统的电磁兼容问题 255
11.3 噪声来源与传输 256
11.3.1 信号线间交叉干扰 257
11.3.2 来自电源的噪声 258
11.4 元件的选择和电路设计 259
11.4.1 元件组 259
11.4.2 集成电路 263
11.5 印制电路板的EMC设计 267
11.5.1 高速单片机电路 267
11.5.2 布局与布线 268
11.5.3 电源线和地线的处理 270
11.5.4 多层板设计 271
11.6 常用抗干扰器件 273
11.6.1 去耦电容 273
11.6.2 磁性元件 273
11.6.3 瞬变干扰吸收器件 274
11.7 单片机自身的抗干扰措施 274
11.7.1 降低外时钟的频率 275
11.7.2 时钟监控电路 275
11.7.3 打开"看门狗"电路 275
11.7.4 电源电压监控 276
11.7.5 非法指令中断和剩余程序区处理 276
11.8 印制电路板EMC设计经验总结 276
11.8.1 控制噪声源 276
11.8.2 减小噪声的耦合 277
11.8.3 减小噪声接收 277
11.9 本章小结 278
附录A 51单片机开发中汇编语言与C语言的混合使用
A.1 段和局部变量 279
A.2 设置变量地址 280
A.3 汇编语言和C语言的结合 282
A.4 内联汇编语言代码 285
A.5 提高编译器的汇编能力 288
A.6 仿真多级中断 291
A.7 时序问题 293
A.8 混合编程需要注意的几点 297
附录B RTX51实时多任务操作系统用户指南
B.1 RTX51的概述 299
B.1.1 RTX51入门知识 299
B.1.2 单任务程序 300
B.1.3 时间片轮转程序 300
B.1.4 用RTX51进行循环调度 300
B.1.5 RTX51事件 301
B.1.6 编译和连接 303
B.2 要求和定义 306
B.2.1 开发工具 306
B.2.2 目标系统需求 306
B.2.3 中断处理 306
B.2.4 可重入功能 307
B.2.5 C51库函数和寄存器段 307
B.2.6 多数据指针和数学单元的用法 307
B.2.7 任务定义 307
B.2.8 任务管理 308
B.2.9 任务切换 308
B.2.10 事件 309
B.3 建立RTX51 Tiny应用程序 309
B.3.1 RTX51 Tiny配置 309
B.3.2 RTX51 Tiny程序的编译和连接 311
B.3.3 优化RTX51 Tiny程序 311
B.4 RTX51 Tiny系统函数 311
B.5 系统调试 317
B.5.1 堆栈管理 317
B.5.2 用dScope-51进行调试 318
B.6 应用程序例子 319
B.6.1 RTX_EX1:第一个RTX51程序 319
B.6.2 RTX_EX2:一个简单的RTX51应用程序 321
B.6.3 TRAFFIC:交通灯控制器 323
前 言
第1章 51单片机概述
1.1 51单片机系列特点 1
1.2 51单片机的应用领域 2
1.3 硬件结构和指令系统 3
1.3.1 51单片机的内部结构 3
1.3.2 51单片机的引脚说明 6
1.3.3 51单片机的工作方式 7
1.3.4 51单片机的指令系统 8
1.4 51单片机的应用系统 11
1.4.1 应用系统结构 11
1.4.2 应用系统开发过程 12
第2章 开发过程中的常用单元
2.1 单片机的键盘输入单元 15
2.1.1 行列式键盘 15
2.1.2 键识别方法 15
2.1.3 键识别法举例 16
2.1.4 程序代码 19
2.2 单片机数码显示单元 20
2.2.1 如何驱动8段数码管 21
2.2.2 8段数码管动态显示举例 21
2.2.3 程序代码 24
2.3 单片机液晶显示单元 25
2.3.1 液晶模块 25
2.3.2 液晶模块的电源设计 26
2.3.3 如何显示液晶模块 28
2.3.4 液晶显示模块举例 30
2.3.5 程序代码 31
2.4 单片机串行通信单元 38
2.4.1 单片机串行通信的原理 39
2.4.2 单片机串行通信举例 41
2.4.3 程序代码 43
2.5 数学运算 45
2.5.1 限幅滤波算法 45
2.5.2 中值滤波算法 46
2.5.3 算术平均滤波算法 46
2.5.4 加权平均滤波算法 47
2.5.5 滑动平均滤波算法 47
第3章 Keil 8051 C编译器
3.1 Keil 编译器简介 49
3.2 如何使用Keil开发 50
3.2.1 建立工程 50
3.2.2 工程的设置 53
3.2.3 编译与连接 55
3.3 dScope for Windows的使用 56
3.3.1 如何启动 56
3.3.2 如何调试 57
3.3.3 调试窗口 58
第4章 红外数据通信系统开发
4.1 红外数据通信 61
4.2 设计思路 62
4.2.1 如何实现红外通信 62
4.2.2 红外通信相关器件 63
4.2.3 设计注意事项 65
4.3 硬件设计 66
4.3.1 芯片的选取 66
4.3.2 看门狗电路 68
4.3.3 单片机部分电路 69
4.3.4 串口电平转换电路 69
4.3.5 红外通信电路 70
4.4 软件设计 71
4.4.1 软件工作流程 71
4.4.2 程序分析及代码 72
4.5 分析与总结 75
第5章 可编程光纤延迟线系统开发
5.1 系统介绍 77
5.1.1 光纤延迟线 77
5.1.2 可编程光纤延迟线系统 77
5.2 设计思路 78
5.2.1 总体结构 78
5.2.2 设计重点 79
5.3 硬件设计 79
5.3.1 供电模块 80
5.3.2 单片机模块 81
5.3.3 光纤延迟线光开关矩阵 85
5.3.4 可编程逻辑器件模块 88
5.4 软件设计 93
5.4.1 软件流程 93
5.4.2 串行通信的设计 93
5.4.3 子程序分析 95
5.5 分析与总结 100
第6章 汽车行驶状态记录仪开发
6.1 系统介绍 103
6.1.1 功能和技术指标 103
6.1.2 面板介绍和使用方法 104
6.2 设计思路 105
6.2.1 如何获取行驶状态信息 105
6.2.2 系统的总体结构 105
6.3 硬件设计 106
6.3.1 记录仪的供电 106
6.3.2 信号采集模块 107
6.3.3 单片机模块 108
6.3.4 可编程逻辑器件 111
6.3.5 日历时钟芯片 114
6.3.6 液晶显示模块LCD 117
6.3.7 信息的存储 119
6.4 软件设计 121
6.4.1 软件流程 121
6.4.2 中断子程序 122
6.4.3 获取状态信息 124
6.4.4 时间信息的设置和获取 124
6.4.5 键盘输入 125
6.4.6 液晶显示 127
6.4.7 IC卡操作 130
6.5 分析与总结 134
第7章 SDH光端机支路单元盘开发
7.1 SDH光端机介绍 135
7.1.1 什么是SDH光端机 135
7.1.2 功能介绍 136
7.2 系统设计思路 137
7.2.1 专用芯片的选取 137
7.2.2 可编程芯片的使用 138
7.2.3 51单片机的使用 139
7.3 硬件设计 139
7.3.1 系统的总体结构 140
7.3.2 供电模块 140
7.3.3 单片机电路 142
7.3.4 专用芯片电路 145
7.3.5 可编程逻辑器件 151
7.3.6 单片机与双口RAM的通信 155
7.4 软件设计 156
7.4.1 软件流程 157
7.4.2 中断处理 158
7.4.3 与双口RAM的通信 159
7.4.4 配置模块 162
7.4.5 告警上报模块 164
7.4.6 性能收集模块 167
7.5 分析与总结 172
第8章 继电保护测试仪开发
8.1 继电保护测试仪介绍 175
8.1.1 微机型继电保护设备 175
8.1.2 继电保护测试仪 175
8.2 设计思路 176
8.2.1 系统需求分析 176
8.2.2 芯片的选取 177
8.3 硬件设计 178
8.3.1 总体结构 178
8.3.2 P89C51单片机电路 178
8.3.3 存储扩展电路 180
8.3.4 串行口扩展电路 183
8.3.5 实时时钟电路 189
8.3.6 可编程逻辑器件 191
8.4 软件设计 193
8.4.1 软件流程 193
8.4.2 键盘处理模块 194
8.4.3 显示处理模块 196
8.4.4 实时时钟管理模块 199
8.4.5 串口通信模块 202
8.5 分析与总结 205
第9章 基于Keil RTX51 Tiny的远程监控采集系统从设备开发
9.1 Keil RTX51 Tiny 207
9.1.1 RTX51 简介 207
9.1.2 RTX51的任务、事件和中断 208
9.1.3 应用RTX51 Tiny 209
9.2 设计思路 212
9.2.1 如何实现远程监控与采集 212
9.2.2 Modbus协议简介 212
9.2.3 传输方式 214
9.2.4 协议内容 215
9.3 硬件设计 218
9.3.1 总体硬件框图 218
9.3.2 单片机电路设计 218
9.3.3 从设备地址配置电路设计 219
9.3.4 485接口设计 219
9.3.5 状态量采集电路 221
9.3.6 模拟量采集电路 221
9.4 软件设计 223
9.4.1 软件流程 223
9.4.2 初始化任务 224
9.4.3 定时采集任务 225
9.4.4 测试帧任务 226
9.4.5 轮询处理任务 227
9.4.6 状态量采集子程序 228
9.4.7 模拟量采集子程序 228
9.4.8 485发送、接收子程序 229
9.4.9 CRC校验 230
9.4.10 串口发送接收模块 231
9.5 分析与总结 234
第10章 简单Shell命令调试系统开发
10.1 系统功能介绍 235
10.1.1 为什么要使用调试系统 235
10.1.2 功能介绍 236
10.2 硬件环境 236
10.3 软件设计 236
10.3.1 工作流程 237
10.3.2 基本模块和数据结构 238
10.3.3 串口人机界面模块设计 238
10.3.4 命令解释程序模块设计 241
10.3.5 调试命令执行函数设计 243
10.4 简单Shell的调试应用实例 246
10.4.1 命令输入示例 246
10.4.2 调试命令debug示例 247
10.4.3 控制命令示例 250
10.5 分析与总结 251
第11章 单片机系统的电磁兼容性设计
11.1 电磁兼容概述及电磁干扰模型 253
11.2 单片机系统的电磁兼容问题 255
11.3 噪声来源与传输 256
11.3.1 信号线间交叉干扰 257
11.3.2 来自电源的噪声 258
11.4 元件的选择和电路设计 259
11.4.1 元件组 259
11.4.2 集成电路 263
11.5 印制电路板的EMC设计 267
11.5.1 高速单片机电路 267
11.5.2 布局与布线 268
11.5.3 电源线和地线的处理 270
11.5.4 多层板设计 271
11.6 常用抗干扰器件 273
11.6.1 去耦电容 273
11.6.2 磁性元件 273
11.6.3 瞬变干扰吸收器件 274
11.7 单片机自身的抗干扰措施 274
11.7.1 降低外时钟的频率 275
11.7.2 时钟监控电路 275
11.7.3 打开"看门狗"电路 275
11.7.4 电源电压监控 276
11.7.5 非法指令中断和剩余程序区处理 276
11.8 印制电路板EMC设计经验总结 276
11.8.1 控制噪声源 276
11.8.2 减小噪声的耦合 277
11.8.3 减小噪声接收 277
11.9 本章小结 278
附录A 51单片机开发中汇编语言与C语言的混合使用
A.1 段和局部变量 279
A.2 设置变量地址 280
A.3 汇编语言和C语言的结合 282
A.4 内联汇编语言代码 285
A.5 提高编译器的汇编能力 288
A.6 仿真多级中断 291
A.7 时序问题 293
A.8 混合编程需要注意的几点 297
附录B RTX51实时多任务操作系统用户指南
B.1 RTX51的概述 299
B.1.1 RTX51入门知识 299
B.1.2 单任务程序 300
B.1.3 时间片轮转程序 300
B.1.4 用RTX51进行循环调度 300
B.1.5 RTX51事件 301
B.1.6 编译和连接 303
B.2 要求和定义 306
B.2.1 开发工具 306
B.2.2 目标系统需求 306
B.2.3 中断处理 306
B.2.4 可重入功能 307
B.2.5 C51库函数和寄存器段 307
B.2.6 多数据指针和数学单元的用法 307
B.2.7 任务定义 307
B.2.8 任务管理 308
B.2.9 任务切换 308
B.2.10 事件 309
B.3 建立RTX51 Tiny应用程序 309
B.3.1 RTX51 Tiny配置 309
B.3.2 RTX51 Tiny程序的编译和连接 311
B.3.3 优化RTX51 Tiny程序 311
B.4 RTX51 Tiny系统函数 311
B.5 系统调试 317
B.5.1 堆栈管理 317
B.5.2 用dScope-51进行调试 318
B.6 应用程序例子 319
B.6.1 RTX_EX1:第一个RTX51程序 319
B.6.2 RTX_EX2:一个简单的RTX51应用程序 321
B.6.3 TRAFFIC:交通灯控制器 323
猜您喜欢