简易温度计设计Word下载.docx
- 文档编号:18487321
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:21
- 大小:1.83MB
简易温度计设计Word下载.docx
《简易温度计设计Word下载.docx》由会员分享,可在线阅读,更多相关《简易温度计设计Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。
本设计能完成的温度测量范围是-55°
C~+125°
C,可以手动校准温度,并能实现报警功能。
2.系统设计
图2-1基于热敏电阻的系统结构框图
2.1由热敏电阻构成的简易温度计
传统的测温元件使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计方法需要比较多的外部硬件支持,硬件电路复杂,软件调试也复杂,制作成本高。
同时,传统的温度计还有反应速度慢、读数麻烦、测量精度不高、误差大等缺点。
所以我们排除了这个方案。
图2-2基于DS18B20的系统结构框图
2.2由DS18B20构成的简易温度计
数字温度计采用智能温度传感器DS18B20作为检测元件,测温范围为-55°
C至+125°
C,最大分辨率可达0.0625°
C。
DS18B20可以直接读出被测量的温度值,而采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
基于以上原因,我们采用了这一方案。
3.硬件设计
硬件系统整体功能描述(结合电路图描述)
图3_1数字温度计硬件结构框图
如图3-1:
要实现本系统,需显示电路、扫描驱动电路、DS18B20温度采集电路、主控制电路,单元电路主要包括晶振电路,复位电路,显示电路,DS18B20温度采集电路,扫描驱动电路等。
3.1主要器件介绍
3.1.1DS18B20芯片介绍[2]
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
如图3-2所示:
图3_2DS18B20器件图
DS18B20的主要特点如下:
1.独特的单线接口仅需要一个端口引脚进行通信;
2.多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
3.无须外部器件;
4.可通过数据线供电,电压范围为3.0~5.5V;
5.零待机功耗;
6.温度以9或12位数字;
7.用户可定义报警设置;
8.报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
9.负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20的测温原理:
器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;
高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
图3-3DS18B20测温原理图
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
DS18B20有两种供电方式,一种是电源供电,一种是寄生电源供电。
电源供电方式是DS18B20的三脚直接接电源,一脚接地,二脚接单片机P3.4口,将采集到的温度转化成数字信号送到CPU,由CPU进行处理。
寄生电源供电方式的连接方式如下:
图3-4DS18B20的寄生供电方式
3.1.2ULN2003芯片介绍
ULN2003是反向的芯片,管脚1-7作为输入,接单片机引脚,8脚接地,16-10作为输出,9脚接12V电源,基本工作原理:
如果1脚输入高电平1,则16脚输出低电平0,反之一样。
2003的内部是一组达林顿管,你可以理解为放大倍数很高的三极管,你用到的控制极就是其基极,所以,它有0.7V电压就可以工作了。
但一般在使用时,还是要保证提供2V以上,不然可能会不可靠。
51单片机的I/O口(不是P0口),直接和ULN2003连,ULN2003有16个脚共7路驱动.ULN2003的8脚接5V电源地,9脚接+5V电源,因为ULN2003里面有续流二极管从9脚引出.假如你用P1.0驱动一个电机,那么P1.0接ULN2003的1脚,ULN2003的16脚接电机线圈的一端,电机线圈的另一端接+5V电源.P1.0为高电平,电机就转,P1.0为低电平,电机就停.ULN2003驱动电流500MA.。
器件用起来很简单,它是一个不能输出高电平的反相器,就是说你输入高电平的时候,输出低电平,你输入低电平的时候它就成高阻态(就是电阻很大,可以看成短路,这时如果你加上拉电阻的话输出就会拉成高电平)。
图3-4ULN2003芯片
一般的用法就当成电子开关用,就是你输入高电平的时候它相应的端口会输出低电平,而且这个低电平能吸收的电流达500mA。
所以一般就是电机或者其他用电器的一端接ULN2003的输出口(像接了一个开关然后再接到地)。
还有一端接高电平或者电源。
使用的时候就把相应的端口置高电平就会打开开关,让电机形成对地的回路,从而让电机运行;
如果相应的端口为低电平,输出为高阻态,就像断开了对地的开关,从而不形成回路让电机关闭。
在本次实训中ULN2003作为反相驱动使用。
它的芯片框图如下:
3.2单元电路
3.2.1晶振电路
图3-3晶振电路
如图3-3电路中,C3、C4为30pF的电容,Y1为11.0592MHz的晶振。
其中电容C3、C4的作用是稳定频率和快速起振,在电路总体设计中,先从片内程序储存器取指还是从内部程序储存器取指的选择信号。
当EA\Vpp接高电平时,先从片内程序存储器读取指令,读完4KB后,自动改为片外取指。
若EA\Vpp接低电平,则所有指令均从片外程序存储器读取。
ALE脚用于输出允许地址所存信号。
PSEN脚用于外部程序存储器选通信号,在对外部程序存储器取指操作时此引脚置低电平有效。
在执行片内程序存储器取指时PESN脚无效。
本设计无片外程序储存区扩展,所以将EA\Vpp接高电平,ALE及PSEN脚悬空。
图3-4复位电路
3.2.2复位电路
如图3-3所示电路可实现上电复位与手动复位。
手动复位时,按键按下后,RST引脚上会出现10ms以上稳定的高电平,就可以可靠地实现复位功能。
上电复位时,接通电源后,单片机自动实现复位操作。
上点瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平逐渐下降。
只要RST引脚保持两个机器周期的高电平单片机就可以进行复位操作。
3.2.3显示电路
图3-5LED显示电路
为了焊接时电路的美观和电线的不交叉,我们对引脚的排列做了相应的变化,改变后的P2口位码与相对应的二进制数的关系如表3-1:
表3-1P2口位码与对应的二进制表示表
显示:
相应位:
I/O接口
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
B
F
A
E
D
DP
C
G
1
0x5f
0x41
2
0x9d
3
0xd5
4
0xc3
5
0xd6
6
0xde
7
0x45
8
0xdf
9
0xd7
P3口接段码,1H到4H分别接P3.6、P3.5、P3.4、P3.7。
单片机将处理好的数据传送
给LED显示。
3.2.4温度控制电路
图3-6温度控制电路
当采集到的温度与实际温度有偏差时,可以通过按键调节大小,使温度更加趋近真实值,S2每按下一次,温度升高1℃,S3每按下一次,温度降低1℃。
图3-7温度采集电路
3.2.5温度采集电路
DS18B20将采集到的环境温度初步处理后经P3.4口传送给单片机做进一步的处理。
DS18B20是单总线器件,只要接一个上拉电阻就可与单片机连接上。
图3-7报警电路
3.2.6报警电路
报警信号从P3.2口输入,如果温度超过设定温度,LED灯亮,即出现报警信号。
3.2.7端口配置
以上各单元电路的端口配置见表3-2:
表3-2单片机端口配置表
编号
端口配置
输入\输出
功能描述
P2.0~P2.7
输出
LED数码段码
P3.0
LED数码管位码4H
P3.1
LED数码管位码1H
P3.2
LED数码管位码2H
P3.3
P3.4
输入
DS18B20传感信号
P3.5
LED报警灯
P3.6
按键控制
P3.7
3.3器件清单
表3-2主要器件清单
名称
型号/参数
数量
备注
万能板
5cm*7cm
集成电路
AT89S51
集成电路插座
DIP40
电阻
1K
100
瓷片电容
104
30pF
电解电容
10uF/16V
红色发光二极管
LED
接插件
CON2
10
IDC10
11
双排针8*2
HEADER8X2
12
微动按钮
SW
13
晶振
11.0592MHz
14
MAX232ESE
*
15
DIP16
16
电容
1uF
17
DB9
18
LED数码管(四合一)
共阴极
1
19
5K
3
20
集成电路
ULN2003L
21
插槽
DIP16
22
温度采集芯片
DS18B20
4.软件设计
图4-1软件功能模块图
如图4-1系统软件功能包括:
一共有3个组成模块,主要由DS18B20进行温度的采集转换,温度显示的范围为-55~125摄氏度,由LED数码管进行显示,可以通过按键调整LED数码管显示的数值,精度调整为0.1,按键1为上升调整,按键2为下降调整。
4.1软件功能模块划分
4.1.1DS18B20的温度的采集和测量
图4-2温度测量程序流程图
如图4-2流程图中,首先进行初始化DS18B20,对其复位,加入一些延时,判断复位不成功则重新复位,若成功就写ROM命令0xCC跳过ROM匹配写ROM命令0x44启动温度转换,其次加入复位延时,再写ROM命令0xCC跳过ROM匹配,写ROM命令0XBE进行读温度,然后将转换的温度值从RAM中读出。
核心源码分析:
//读取温度
intRead_Temperature(void)
{
unsignedchari=0;
unsignedcharcrc_data=0;
union
{
bytec[2];
intx;
}temp;
ow_reset();
write_byte(0xCC);
//跳过ROM匹配
write_byte(0xBE);
//写ROM命令(开始进行温度转化)
for(i=0;
i<
9;
i++)
temp_buf[i]=read_byte();
crc_data=crc_table[crc_data^temp_buf[i]];
}
if(crc_data==0)
temp.c[1]=temp_buf[0];
temp.c[0]=temp_buf[1];
//跳过ROM匹配
write_byte(0x44);
//写ROM命令(读温度)
returntemp.x;
}
4.1.2LED数码显示
图4-3LED数码显示程序流程图
如图4-3流程图中,首先对位码和段码进行定义,根据位码判断所要显示的数码管,然后进行显示。
(为了方便硬件电路的焊接,段码没有按通用顺序焊接,具体焊接见表3-2)
图4-3按键校准程序流程图
4.1.3按键校准
如图4-3流程图中,首先判断有无按键按下,若无按键则不执行程序直接结束,若有
按键按下判断是否为按键1按下,若是则温度增加0.1,若不是按键1按下则为按键2按下温度减少0.1。
voidpanduan_ud(void)
if(up==0)
{while(up==0&
&
down==1);
count1++;
temp+=count1;
if(down==0)
while(down==0&
up==1);
count1--;
5.系统调试
5.1硬件调试
硬件调试用到了万用表,示波器等工具,主要检查电路是否接通等基础问题。
在硬件调试的过程中,由于焊接经验的不足和对实训内容的不完全掌握,我们出现了不少大大小小问题,具体分析如下:
1.虚焊:
电路板上有一些引脚看似焊上去了,但其实没焊劳,导致焊接处电阻增大,CPU这些引脚电压在2~3V之间,使得电压不足,LED灯亮度不够。
2.CPU电源指示LED灯烧掉:
因为电源的保护电阻在焊接时不小心短路了,导致LED两端电压过高而烧掉。
这个问题一直没有检查出来,直到烧掉了两个电阻后把电路板拆开后才发现问题。
这提醒了我们在以后的焊接过程中细节很重要,锡稍微多一点就会出问题。
并且这些问题基本检查不出来。
3.接地:
电路板四周的地不是连通的,要全部接起来才可以实现接地功能。
4.漏接导线:
开始测试时电源有一段不通,其他的完好,通过万用表检测后发现少连一根导线到电源。
5.位码与段码的排列:
因为我们要使后面的排线尽量简单,所以在接位码和段码时,我们更改了连接方式,没有按顺序连,编程时就出现了很多问题,对着电路板研究了很久才搞定。
6.DB18B20芯片接入:
DB18B20芯片的引脚再接入电路时出现了引脚排列错误的问题,原因是在网上寻找这种芯片时,错误的理解了看的方向。
我们是从上面往下俯视的,而书上标注的引脚是从下往上看的。
7.数码管的LED较暗:
电压不够,数码管驱动不足。
硬件电路连接如图5-1,5-2:
图5-1实物图
图5-2实物背面图
5.2软件调试
软件开发环境采用STVisualDevelopVersion4.1.4,界面见图5-3。
开发步骤包括编辑、编译、连接、下载运行等步骤。
图5-3软件开发环境界面图
图5-4USBISP开发工具图
开发工具采用如图5-4所示的USBISP,采用USB方式进行下载与调试。
5.3设计效果
烧入程序后,实现对实时温度的采集和转化,加入了按键校准功能,对于温度变化有较快的反应。
系统实物与运行效果图间图5-5
图5-5系统实物与运行效果图
结束语
本次的课程设计中,我们设计了基于DS18B20的简易温度计,在这一周的时间内,我们进一步巩固了书本上的知识,做到了学以致用。
这是我们第二次自己动手设计的电路,通过系统仿真软件protues和编译软件keil,使我们进一步了解了单片机的设计制作过程,其中最大四位问题是硬件电路的设计与实现,我们上网找了好多资料,虽然经过自己的修改,但还是有很多功能不能实现,如温度上下限设置。
在焊接的过程中,因为老师要求不止于功能的实现,还要求美观,这就导致了我们不断地在否定方案,直到找到我们所能达到的最简连接方法才动手焊接。
而且由于实际实际动手能力较差,使得我们电路板上的焊点不是非常美观,但我们真的尽力了。
在焊接时我们还出现了像烧掉发光二极管之类的错误。
错误原因包括了像选用了错误的电阻等。
软件方面由于SmartDrawProfessional软件和AltiumDesigner软件的运用不很熟练,花费了大量的时间熟悉它们的应用,今后应该在这方面多多努力。
总结经验的时候我们得出这样的结论,学习应该学以致用,有目的的去学习,如果学了不用等于没学。
其次,要学以致用,理论联系实际,这样才会取得事半功倍的效果。
设计达到的效果包括实时温度的显示,温度的校准,复位,温度过高时报警等。
实验中由于时间和精力的关系,原本设想的功能还有通过按键实现摄氏温度到华氏温度的切换,报警系统中没有加入蜂鸣器等。
参考文献
[1]陈立元,范逸之,廖锦棋.VisualBasic2005与自动化系统监控[M].北京:
清华大学出版社.2008
[2]吴银琴,陈锟.51单片机实践教程[M].北京:
科学出版社.2011
[3]谢宜仁,谢炜,谢东辰.单片机实用技术问答[M].北京:
人民邮电出版社.2003
[4]夏继强,沈德金,邢春香.单片机实验与实验教程[M].北京:
航空航天大学出版社.2006
[5]李广飞,李良儿,楼然苗.单片机C程序设计实例指导[M].北京:
航空航天大学出版社.2005
课程设计独创性声明:
我们郑重承诺,这次实训的所有相关内容都是我们自主完成,包括硬件设计,软件编程,报告书写,以及整个调试过程。
期间参考了大量的书籍并请教了他人,最终顺利完成了实训。
谢谢老师和同学的指导和帮助。
学生签名:
、
年月日
指导教师评语:
学生:
成绩:
指导教师签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 温度计 设计