本书从实践的角度、采用模块化的思想,详细阐述51单片机的接口模块及其应用,主要包含电源与单片机最小系统、显示与键盘、信号调理、A/D和D/A、红外与无线收发、数据有线通信、传感器、时钟、语音和存储等模块及应用; 多功能电子时钟、基于电话网的多功能密码锁、基于74LS04的参数测试仪的设计;Keil C51的应用技巧。
书名 | 51单片机开发实战精讲--从模块到项目 | 作者 | 薛小铃、刘志群、贾俊荣 |
---|---|---|---|
ISBN | 9787302374275 | 定价 | 55元 |
出版社 | 清华大学出版社 | 出版时间 | 2015.01.01 |
51单片机最小系统,就是使单片机正常运行的最低配置,它由一系列模块组成:1、复位系统: &...
加减一加法器,通过P1口输入一个八位无符号数,P2口输入另
基于 51单片机的电子时钟设计 摘要 本电子时钟以 STC89C52单片机作为主控芯片,采用 DS12C887时钟芯片, 使用 1602液晶作为显示输出。该时钟走时精确,具有闹钟设置,以及可同时显 示时间、日期等多种功能。本文将详细介绍该电子时钟涉及到的一些基本原理, 从硬件和软件两方面进行分析。 【关键词】 STC89C52单片机 DS12C887时钟芯片 1602液晶 蜂鸣器 目 录 一、绪论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 1.1 电子时钟功能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 1.2 设计方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 二、硬件设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 2.1 51单片机部分设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 2.2 USB 供电电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 5 2.3 串行通信电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 6
摘 要 本次的课程设计基于单片机技术原理,以美国 ATMEL公司开发的 AT89S52 芯片作为核心控制器。 通过硬件电路的制作及软件程序的编制, 设计制作了一种 具有复位、校时功能的数字时钟系统。利用 1602液晶同时显示提示信息和时间 信息,用户可通过系统上的按键对时间进行调整, 实现实时的时钟显示。 本次设 计的硬件由主控模块、 复位模块以及显示模块构成。 复位模块主要由电阻、 电容、 按键和发光二极管组成而显示模块则由 1602字符液晶构成,用于显示提示信息 和实时时钟。 关键词: AT89S52;LCD 1602; 实时时钟 桂林电子科技大学课程设计(论文)报告用纸 Abstract The curriculum design is based on the principles of microcomputer technology and has adapted the
全书结构合理、定位精准,从单片机发展历程到环境搭建及开发语言,拾级而上,顺利进入典型模块篇,内容简单而实用,键盘、显示器、D/A转换等,面面俱到;最后通过3个大型综合实例,汇总前面所学知识,使读者融会贯通,学以致用。
《51单片机开发应用从入门到精通》面向单片机及其编程语言的初学者,其中典型模块的设计思想与方法对于相关方向的大学课程毕业设计有非常好的指导意义。同时,《51单片机开发应用从入门到精通》也可作为单片机爱好者及单片机开发人员的实用参考书。
第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
第1章51单片机开发的基础知识
1.151单片机的硬件结构
1.1.1功能模块
1.1.2CPU
1.1.3并行I/O端口
1.1.4存储嚣结构
1.1.5定时/计数器
1.1.6串行口
1.1.7中断系统
1.251单片机的指令系统
1.2.1寻址方式
1.2.2指令说明
1.2.3指令系统表
1.3本章总结
第2章C语言程序各语句用法与意义
2.1数据结构
2.1.1数据类型
2.1.2变量与常量
2.1.3数组
2.1.4指针
2.1.5结构
2.1.6共用体
2.1.7枚举
2.2运算符与表达式
2.2.1运算符分类与优先级
2.2.2算术运算符与表达式
2.2.3关系运算符与表达式
2.2.4逻辑运算符与表达式
2.2.5位操作运算符与表达式
2.2.6赋值运算符与表达式
2.3程序结构与函数
2.3.1程序结构
2.3.2函数
2.4流程控制语句
2.4.1选择语句
2.4.2循环语句
2.4.3转移语句
2.5本章总结
第3章Keil8051C编译器
3.1Keil编译器简介
3.2使用Keil开发应用软件
3.2.1建立工程
3.2.2工程的设置
3.2.3编译与连接
3.3dScopeforWindows的使用
3.3.1如何启动
3.3.2如何调试
3.3.3调试窗口
3.4本章总结
第4章单片机实现液晶显示
4.1实例说明
4.2设计思路分析
4.2.1液晶显示模块
4.2.2液晶显示工作原理
4.2.3设计思路
4.3硬件电路设计
4.3.1器件选取
4.3.2电源模块
4.3.3液晶显示模块
4.3.4单片机模块
4.4软件设计
4.4.1液晶控制驱动嚣指令集
4.4.2程序说明
4.5实例总结
第5章基于MAX7219的8位数码管显示
5.1实例说明
5.2设计思路分析
5.2.1LED显示驱动芯片的选取
5.2.2MAX7219的工作原理
5.3硬件电路设计
5.3.1主要器件
5.3.2电路原理图
5.4软件设计
5.4.1MAX7219的工作时序和寄存器描述
5.4.2程序说明
5.5实例总结
第6章键盘输入实例——实现4x4键盘
6.1实例说明
6.2设计思路分析
6.3硬件电路设计
6.4软件设计
6.5实例总结
第7章单片机实现语音录放
7.1实例说明
7.2设计思路分析
7.2.1语音芯片选取
7.2.2语音芯片1SD2560简介
7.3硬件电路设计
7.3.1主要器件
7.3.2电路原理图及说明
7.4软件设计
7.4.1程序流程
7.4.2程序说明
7.5实例总结
第8章基于MAX197的并行A/D转换
8.1实例说明
8.2设计思路分析
8.2.1A/D转换原理
8.2.2如何选择A/D转换器件
8.2.3A/D转换器对电源电路的要求
8.3硬件电路设计
8.3.1主要器件
8.3.2电路原理图及说明
8.4软件设计
8.4.1MAX197控制字
8.4.2程序流程
8.4.3程序说明
8.5实例总结
第9章基于TLC549的串行A/D转换
9.1实例说明
9.2设计思路分析
9.2.1芯片选取
9.2.2工作原理
9.3硬件电路设计
9.3.1主要器件
9.3.2电路原理图及说明
9.4软件设计
9.4.1转换过程和时序要求
9.4.2程序流程
9.4.3程序说明
9.5实例总结
第10章基于MAX527的并行D/A转换
10.1实例说明
10.2设计思路分析
10.2.1D/A转换原理
10.2.2如何选择D/A转换器件
10.2.3D/A转换器对电源电路的要求
10.3硬件电路设计
10.3.1主要器件
10.3.2电路原理图及说明
10.4软件设计
10.4.1MAX527的地址和重要引脚
10.4.2程序流程
10.4.3程序说明
10.5实例总结
第11章基于MAX517的串行D/A转换
11.1实例说明
11.2设计思路分析
11.2.1芯片选取
11.2.2工作原理
11.3硬件电路设计
11.3.1主要器件
11.3.2电路原理图及说明
11.4软件设计
11.4.1时序要求和转换过程
11.4.2程序说明
11.5实例总结
第12章基于SHT71数字温/湿度传感器的采集实现
12.1实例说明
12.2设计思路分析
12.2.1SHT71性能概述
12.2.2SHT71的功能说明
12.2.3SHT71的引脚尺寸和说明
12.3硬件电路设计
12.4软件设计
12.4.1SHT71的操作方法
12.42程序流程
12.4.3源程序清单
12.5实例总结
第13章基于DS1624的数字温度计设计
13.1实例说明
13.1.2设计思路分析
13.2.1DS1624简介
13.2.2DS1624基本特性
13.2.3DS1624工作原理
13.2.4DS1624工作方式
13.2.5DS1624的指令集
13.3硬件电路设计
13.3.1硬件设计
13.3.2原理科及其说明
13.4软件设计
13.4.1程序流程
13.4.2程序说明
13.5实例总结
第14章基于DS12C887的实时日历时钟显示系统设计
14.1实例说明
14.2设计思路分析
14.2.1选择合适的日历时钟芯片7
14.2.2如何由DS12C887芯片获取时间信息
14.3硬件电路设计
14.3.1结构框图
14.3.2主要器件
14.3.3电路原理图及说明
14.4软件设计
14.4.1DS12C877的内存空间
14.4.2程序流程
14.4.3程序代码及说明
14.5实例总结
第15章单片机控制的步进电机系统
15.1实例说明
15.2设计思路分析
15.2.1步进电机的工作原理
15.2.2步进电机的控制
15.2.3脉冲分配与驱动芯片的选取
15.3硬件电路设计
15.3.1结构框图
15.3.2主要器件
15.3.3电路原理图厦说明
15.4软件设计
15.4.1程序流程
15.4.2程序说明
15.5实例总结
第16章基于MAX1898的智能充电器设计
16.1实例说明
16.2设计思路分析
16.2.1为何需要实现充电器的智能化
16.2.2如何选择电池充电芯片
16.2.3MAX1898的充电工作原理
16.3硬件电路设计
16.3.1主要器件
16.3.2电路原理图及说明
16.4软件设计
16.4.1程序流程
16.4.2程序说明
16.5实例总结
第17章基于NORFlashAM29LV320的数据存储
17.1实例说明
17.2设计思路分析
17.2.1芯片AM29LV320
17.2.2具体设计思路
17.3硬件电路设计
17.4软件设计
17.4.1AM29LV320的命令与状态
17.4.2串行异步数据传输
17.4.3程序代码说明
17.5实例总结
第18章基于XC95144的串口扩展
18.1实例说明
18.2设计思路分析
18.2.1串口发送的设计
18.2.2串口接收的设计
18.2.3串口模块的设计l
18.3硬件电路设计
18.4软件设计
18.4.1CPLD的设计原理图
18.4.2C51单片机程序代码说明
18.5实例总结
第19章基于8255扩展并行口
19.1实例说明
19.2设计思路分析
19.2.1并行口扩展的原理
19.2.2芯片选择
19.3硬件电路设计
19.4软件设计
19.5实例总结
第20章单片机实现智能信号发生器
第21章单片机实现步进式PWM信号输出
第22章单片机实现CRC算法
第23章单片机实现软件滤波
第七篇通信传输系统设计
第24章单片机实现点对点的数据传输
第25章单片机实现点对多点的数据传输
第26章单片机实现以太网接口
第27章单片机实现1C总线通信
第28章单片机实现RS-485总线现场监测系统
第29章CAN总线接口通信设计
第八篇电源监控与抗干扰设计
第30章单片机监控电路设计
第31章光电隔离电路设计
附录A汇编语言与C语言的混合编程
附录B实例配套实验箱