技术标签: c++ java 51单片机 php 嵌入式硬件 课程设计 单片机
序
毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机多点温度检测系统的设计
系统底层电路的功能主要包括:多点温度测试及其相关处理,实时显示温度信息,与上位机通讯传输温度数据。硬件设计主要包括以下几个模块:电源以及看门狗电路, 键盘以及显示电路,温度测试电路,串口通讯电路。下面对电路分模块进行说明
a.电源电路
因为单片机工作电源为+5V,且底层电路功耗很小。采用7805三端稳压片即可满足要求。
具体电路图如下:
b.看门狗电路
考虑到底层电路板的工作环境相对恶劣,单片机会受到周围环境的干扰,而出现程序跑飞,死机…等一些不可预知的不正常工作现象。工作人员也不可能到现场对单片机重起,本设计为单片机电路添加一个外部看门狗电路。定时查询单片机的工作状态,一但发现异常即对单片机延时重起。保证系统安全可靠的运行。
NE56604能为多种微处理器和逻辑系统提供复位信号,其门限电平为4.2V 。在电源突然掉电或电源电压下降到低于门限电平时。NE56604将产生精确的复位信号。NE56604内置一个看门狗定时器,用于监控微处理器,以确保微处理器的正常运行。看门狗能产生一个系统复位信号用来终止任何由于微处理器故障而引发的不正常的系统操作。NE56604的看门狗的监控周期为100mS(典型值)。
特性
.正负双逻辑输出的有效复位信号。
.精准的门限电平监测。
.上电复位内部延时。
.可利用外部电阻调节的内部看门狗定时器。
.看门狗定时器的监控周期为100mS 典型值。
.VCC=0.8VDC时产生有效的复位信号典型值。
.仅需很少的外围元件。
具体电路图如下:
键盘电路
单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。键盘有编码和非编码两种。非编码键盘硬件电路极为简单。故本系统采用拨码开关来控制。具体电路如下:
A. 开关状态的可靠输入
键开关状态的可靠输入有两种解决方法。一种是软件去抖动:它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。另一种为硬件去抖动:即为按键添加一个锁存器。两种方法都简单易行,本设计采用的是硬件去抖。
B. 对按键进行编码给定键值或给出键号
对于按键无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的散转转移。为使编码间隔小,散转入口地址安排方便,常采用依次序排列的键号。
拨码开关值 |
含义 |
0000 |
实时显示通道一的温度值 |
0001 |
实时显示通道二的温度值 |
0010 |
实时显示通道三的温度值 |
0011 |
实时显示通道四的温度值 |
0100 |
实时显示通道五的温度值 |
0101 |
实时显示通道六的温度值 |
0110 |
实时显示通道七的温度值 |
0111 |
实时显示通道八的温度值 |
1*** |
自动循环显示所有通道的温度 |
C. 选择键盘监测方法
对是否有键按下的信息输入方式有中断方式与查询方式两种。本设计采用的查询法,即在在CPU空闲时调用键盘扫描子程序。
温度显示电路
设计采用的是共阴极七段数码管。显示方式有动态扫描和静态显示,两种方法在本设计中皆可。由于静态扫描要用到多片串入并出芯片,考虑到电路板成本计算。本人采用是节约硬件资源的动态扫描方式。即用两块芯片就可以完成显示功能。显示数据由4511译码器输出,ULN2003为位驱动扫描信号。
具体电路图如下:
这里我们用到温度芯片DS18B20。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式。测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
DS18B20支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
DS18B20内部结构
(1) DS18B20的内部结构如下图所示。
DS18B20内部结构图
DS18B20有4个主要的数据部件:
① 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。
② 温度灵敏元件。
③ 非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。
④ 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图所示。
|
||||||||||
MSB |
DS18B20配置寄存器结构图 |
LSB |
其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
配置寄存器与分辨率关系表 :
R0 |
R1 |
温度计分辨率/bit |
最大转换时间/us |
0 |
0 |
9 |
93.75 |
0 |
1 |
10 |
187.5 |
1 |
0 |
11 |
375 |
1 |
1 |
12 |
750 |
(2) 高速暂存存储器
高速暂存存储器由9个字节组成,其分配如下图所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
|
|||||||||||
LSB |
DS18B20 存储器映像图 |
MSB |
温度值格式图DS18B20 温度数据表:
23 |
22 |
21 |
20 |
2-1 |
2-2 |
2-3 |
2-4 |
MSB |
LSB |
||||||
S |
S |
S |
S |
S |
26 |
25 |
24 |
典型对应的温度值表:
温度/℃ |
二进制表示 |
十六进制表示 |
+125 |
00000111 11010000 |
07D0H |
DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。
硬件连接电路如下图:
本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但时间应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。另外单总线长度也不宜超过80M,否则也会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。
对DS18B20的设计,需要注意以下问题
(1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。
(2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。
(3)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0 ℃的温度值。
(4)实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。
AT89C51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。
具体电路如下:
我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示。通信线采用交叉接法,即两者信号线对应成为R—T,T—R。
具体连接电路如下:
1、测试环境及工具
测试温度:0~100摄氏度。(模拟多点不同温度值环境)
测试仪器及软件:数字万用表,温度计0~100摄氏度,串口调试助手。
测试方法:目测。
2、测试方法
使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,键盘电路,显示电路,温度测试电路等)。系统自带测试表格数据,观察显示数据是否相符合即可。
采用温度传感器和温度计同时测量多点水温变化情况(取温度值不同的多点),目测显示电路是否正常。并记录各点温度值,与实际温度值比较,得出系统的温度指标。
使用串口调试助手与单片机通讯,观察单片机与串口之间传输数据正确否。
3、测试结果分析
自检正常,各点温度显示正常,串口传输数据正确。
因为芯片是塑料封装,所以对温度的感应灵敏度不是相当高,需要一个很短的时间才能达到稳定。
将硬件及软件结合起来进行系统的统一调试。实现PC机与单片机通讯,两者可以实时更新显示各点温度值。
温度测试子程序流程图
电路原理图
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!
文章浏览阅读44次。最近一直在看Deep Learning,各类博客、论文看得不少但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox只是跟着Andrew Ng的UFLDL tutorial写了些已有框架的代码(这部分的代码见github)后来发现了一个matlab的Deep Learning的toolbox,发现其代码很简单,感觉比较适合用来学习算法再一个就是..._matlab deep learning 工具箱算例
文章浏览阅读1.8k次。2020/5/27更新:大家现在可以直接从Saleem Abdulrasool的Azure Pipeline中下载打包好的Swift Windows SDK了,在他的GitHub中找到swift-build项目,里面的CI链接里找到Artifacts就可以直接下载(类似windows-toolchain-amd64.msi这样的文件)。考虑到5.3版本的Swift将支持Windows平台,因此以下文章也许已经成为历史,大家看看就好了。-----------------------------------_windows 无法编译swift
文章浏览阅读66次。用户管理:一.用户的配置文件:用户配置文件的路径:/etc/passwd/etc/passwd的一部分内容:每一行都是一个用户的信息(内容如下):用户名 :密码 :uid :gid :用户的备注 :用户的家目录 :和根交互使用的shell路径 二.用户超级用户root ----- uid为 0系统用户 ----- 使用的shell的路径为 /sbin/nologin ,uid为 201 —— 999,添加系统用户不会默认创建家目录和邮箱普通用户 ----- uid为 1000 ——
文章浏览阅读6.9k次。心田花开为大家分享了二年级语文上册黄山奇石练习题,本部分练习题包括了看拼音,写词语;选择合适的字;填空题;造句子及句子赏析,最后附加课文原文,希望能对大家学习有帮助。【原文】黄山奇石闻名中外的黄山风景区在我国安徽省南部。那里景色秀丽神奇,尤其是那些怪石,有趣极了。就说“仙桃石”吧,它好像从天上飞下来的一个大桃子,落在山顶的石盘上。在一座陡峭的山峰上,有一只“猴子”。它两只胳膊抱着腿,一动不动..._黄山奇石阅读题及答案二年级
文章浏览阅读3.2k次,点赞45次,收藏7次。tab导航的中间开始然后向两边过渡的动画效果,增加页面的美观性..._css过度动画从中间向两边移动
文章浏览阅读175次。S7-1515-2pn 带pn总线设备有 库卡机器人 西门子S120伺服驱动器 sew伺服驱动器 pn绝对值编码器 SSI编码器应用 7个触摸屏包含程序 一个上位机组态画面包含程序 包含graph语言编写的程序 STL SCL语言编写的程序 模拟量采集 是学习西门子工艺对象组态运动控制 机器人等不可多得呢学习资料 全部程序均调试通过可以立即应用。通过对S7-1515-2pn带pn总线设备的应用,我们可以实现各种工业自动化控制,比如各种机器人的控制、数控机床的控制等等。_pn总线伺服
文章浏览阅读111次。一、nosql背景互联网时代背景下大机遇,为什么用nosql1单机MySQL的美好年代在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。上述架构下,我们来看看数据存储的瓶颈是什么? 1.数据量的总大小 一个机器放不下时 2.数据的索引(B+ Tree)一个机器的内存放不下时 3.访问量..._redis 理论基础学习
文章浏览阅读3.6k次,点赞2次,收藏15次。一、使用netsh命令设置IP/DNS(1)自动获取IP地址:(其中中括号内容可省略)netsh interface ip set address [name=]“以太网” [source=]dhcp(2)手动设置IP地址:例如设置 IP 为 192.168.1.198,掩码为255.255.255.0,网关为192.168.0.254,那么 cmd 命令为:netsh interface ip set address [name=]“本地连接” [source=]static [addr=]_dos设置ip地址命令
文章浏览阅读1.3k次,点赞23次,收藏23次。Rebalance负载均衡组件, 他负责相对均匀的给消费者分配需要拉取的队列信息。我们此时可能会有以下问题:一个Topic下可能会有很多逻辑队列,而消费者又有多个,这样不同的消费者到底消费哪个队列呢?如果消费者或者队列扩缩容,Topic下的队列又该分配给谁呢?这些时候负载均衡策略就有他的用武之地了。RocketMQ在处理上面的问题是统一处理的,也就是逻辑是一致的,它都是通过这个类来完成负载均衡的工作,看完本文我们就可以明白RocketMQ消费者负载均衡的核心逻辑。消费端的负载均衡是指。_rebalance mq
文章浏览阅读912次。K. 20182018 的约数只有 4 个,可以算出区间内和 2018 的最⼤公约数是1, 2, 1009, 2018 的各有⼏个,之后 4 × 4 枚举统计答案。#include <iostream>using namespace std;int main (){ int a,b,c,d; while(cin>>a>>b>>c..._湘潭邀请赛 2018 k.2018
文章浏览阅读4.5k次,点赞2次,收藏21次。通信技术基础知识汇总智能网(Intelligentized Network)的思想起源于美国。20世纪80年代初,AT&T公司就采用集中数据库方式提供800号(被叫付费)业务和电话记帐卡业务,这是智能网的雏形。后来国际电联ITU-T (International Telecommunications Union)在1992年正式命名了智能网一词。智能网是在现有交换与传输的基础网络结构上,为快速、方便、经济地提供电信新业务(或称增值业务)而设置的一种附加网络结构。智能网提供新业务的突出优点是可以做到快_isdn传输距离
文章浏览阅读2w次,点赞2次,收藏10次。把应用程序拉取到桌面上。_matlab激活后报错error8