欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于数字温度传感器的数字温度计.doc

    • 资源ID:849518       资源大小:2.41MB        全文页数:21页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于数字温度传感器的数字温度计.doc

    1、目 录1、原理分析- 3 -1.1设计需求和要求- 3 -1.2设计原理分析- 3 -2、设计方案选择- 4 -2.1方案一- 4 -2.2方案二- 4 -2.3最终实验方案- 4 -3、电路原理图绘制及Proteus仿真- 5 -3.1设计总原理图- 5 -3.2各电路/元件介绍- 6 -3.2.1温度传感器DS18B20介绍- 6 -3.2.2 LM1602显示屏介绍- 6 -3.2.3外部晶振电路- 8 -3.2.4按键电路- 8 -3.2.5报警电路- 8 -3.2.6 STC89C51单片机介绍- 9 -3.3仿真结果- 10 -4、综合调试- 11 -4.1 软件调试- 11 -4

    2、.1.1 软件流程图- 11 -4.1.2 软件子程序- 12 -4.2硬件调试- 12 -4.2.1实物图- 12 -4.2.2各模块设计和走线- 12 -4.2.3 正面电路设计- 13 -5、总结- 14 -附录- 15 -摘 要本小组选的题目是“基于数字温度传感器的数字温度计”。课题要求:(1)设计一款能够显示当前温度值的温度计;(2)通过切换按钮可以切换华氏度和摄氏度显示;(3)创新部分。通过讨论和查询资料,我们选择将报警功能加入该设计作为创新部分。所以我们的课题名称是“基于51单片机和DS18B20的温度显示和报警系统”,主要功能有(1)当前温度显示,显示范围为099摄氏度,开机默

    3、认上限报警温度为30;(2)华氏温度与摄氏温度的转换显示;(3)报警功能:可设置报警温度,达到设定的报警温度时,蜂鸣器报警;(4)可以通过按键控制,修改报警上限温度。关键词:89C51单片机,DS18B20,温度报警,温度转换1、原理分析(负责人:李敬玄,王云)1.1设计需求和要求温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命产生严重影响,极有可能造成严重的经济财产损失。而生活中,气温对于人们的生活生产也至关重要,温度是否舒适,直接关系到大家体感的舒适程度,比如空调中必须使用传感器对温度进行测控,所以无

    4、论工业生产和生活中对温度的测控都是很重要的。而我们还时常遇到温度达到一定警戒值,需要提醒和报警的需求,所以在设计过程中我们可以加入报警模块,或者加入自动降温模块实现整个测控、显示、报警、紧急处理降温一体化的温度检测处理系统。1.2设计原理分析本小组选的题目是“基于数字温度传感器的数字温度计”。课题要求:(1)设计一款能够显示当前温度值的温度计;(2)通过切换按钮可以切换华氏度和摄氏度显示;(3)创新部分。通过上面需求分析,我们可以看到,温度测量经常需要和报警功能匹配,并且还可以加入降温设施,在紧急报警情况下进行温度处理,比如步进电机作为风扇进行降温。通过讨论和查询资料,我们认为加步进电机不仅需

    5、要驱动芯片,而且电机本身所占面积比较大,在实验电路板上对所测定的气温的降温效果并不方便展现出来,所以我们放弃了加入步进电机的设计,而选择将报警功能加入该设计作为创新部分。所以我们的课题名称是“基于51单片机和 DS18B20的温度显示和报警系统”,主要功能设计为:(1)当前温度显示,液晶屏可显示范围为099摄氏度,开机默认上限报警温度为30;(2)华氏温度与摄氏温度的转换显示;(3)报警功能:可设置报警温度,达到设定的报警温度时,蜂鸣器报警;(4)可以通过按键控制,修改报警上限温度。2、设计方案选择(负责人:李敬玄,王云)2.1方案一由于本设计需要测温电路,可以使用热敏电阻之类的器件利用其感温

    6、效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。而且缺乏对数据的数字化处理,很难完成摄氏度和华氏度的转换。2.2方案二考虑到用温度传感器,在单片机电路设计中,偏向于使用数字化的传感器,所以可以采用功能强大的温度传感器DS18B20,此传感器可以很容易直接读取被测温度值,进行转换直接输出数字化信号,可满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。所以本课题设计的基于STC89C51的单片机和DS18B20

    7、传感器的温度控制系统与传统的温度控制相比具有操作方便、价价格便宜、扩展性强和兼容性强等优点。2.3最终实验方案利用数字温度传感器来测量温度,然后利用数字温度传感器测量的温度信号传给单片机,经过计算后在LCD液晶显示器上显示相应的温度值,如果测量值大于我们之前设定的温度报警值,则单片机会驱动蜂鸣器报警。数字温度计选择DS18B20,所测量的温度采用数字显示;控制器使用单片机STC89C51,功能强大;液晶屏使用常用的LM1602,性能稳定。选用数字温度传感器DS18B20直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,简化了电路,缩短系统的工作时间,降低系统的硬件成本,实现温度显示。

    8、同时单片机可以判断温度是否超过设定值,驱动报警系统,并且可以通过单片机的P1,P2口实现外部中断,使用按键修改报警温度(上调或者下调);同时51单片机可以实现对数据的计算,利用华氏度与摄氏度的转化关系,可以轻松转换温度显示。以上设计完全满足课程设计的要求。3、电路原理图绘制及Proteus仿真(负责人:李敬玄、李奕彤)3.1设计总原理图本设计以检测温度并显示温度提供上限报警为目的,按照系统设计功能的要求,确定系统由6个模块组成:主控器、测温电路,外部晶振电路,报警电路,按键电路及显示电路。系统以DS18B20为传感器用以将温度模拟量转化为电压数字量以总线传入单片机,以STC89C51为主芯片,

    9、在主芯片对DS18B20传入的温度值进行处理,由单片机程序控制,将经处理后的温度由LM1602液晶显示屏显示出来。原理框图如下:DS18B20测温电路单片机STC89C51主控部分按键电路LED显示温度值外部晶振电路报警电路 图1 数字温度计设计总体的原理框图在原理框图的基础上,我们基本可以确定使用的元器件,所以我们使用Proteus进行了整体的电路原理图绘制:图2 数字温度计Proteus电路原理图3.2各电路/元件介绍3.2.1温度传感器DS18B20介绍DS18B20是DALLAS单线数字温度传感器,体积更小,使系统设计更灵活、方便,支持3V 5V的电压范围,适用电压更宽,更经济。它是世

    10、界上第一片支持“一线总线”接口温度传感器,一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新的概念。DS18b20测量温度范围为-55 +125,在-10 +85范围内,精度为0.5。直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测量类消费电子产品等。DS18b20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B

    11、20的性能特点总结如下:n 独特的单线接口仅需要一个端口引脚进行通信;n 实际应用中不需要外部任何元器件即可实现测温;n 可通过数据线供电,电压范围为3.05.5V;图3 DS18B20引脚图n 在DS18B20中的每个器件上都有独一无二的序列号;n 温度以9或12位数字量读出;n 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;n 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能工作。DS18B20硬件连接图:图4 DS18B20与单片机连接通信3.2.2 LM1602显示屏介绍显示部分的LM1602是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X

    12、7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。LM1602L采用标准的16 脚接口分布如下:LCD1602模块的管脚分布功能管脚号 管脚名称状态管脚功能1Vss电源电源地2Vdd电源电源正极3V0电源液晶显示偏压信号4RS输入寄存器选着5RW输入读、写操作6E输入使能信号7DB0三态数据总线0(LSB)8DB1三态数据总线9DB2三态数据总线10DB3三态数据总线11DB4三态数据总线12DB5三态数据总

    13、线13DB6三态数据总线14DB7三态数据总线(MSB)15LEDA输入背光+5V16LEDK输入背光地图5 LM1602的16个引脚功能LM1602硬件连接图如下,其中LEDA和LEDK在仿真图中没有画出,但是实际焊接过程中必须接电源否则影响显示效果:图6 LM1602引脚图3.2.3外部晶振电路本设计采用的是12MHZ的晶振,晶振电路是提供系统时钟信号。为了各部分的同步应当引入公用的外部脉冲信号作为振荡脉冲。电容选择在1030pF之间,因为电容的大小影响振荡器振荡的稳定性和起振的速度。硬件连接图如下:图7 晶振电路连接图3.2.4按键电路本设计采用的按键电路共五个按键,功能分别是:C/F摄

    14、氏度华氏度转换;MODE进入设置;UP温度+1;DOWN温度1;OK确定。将按键的一端与单片机I/O口相连,一端与地连接,当按键按下时,可以由单片机内的程序检测到I/O口电平的变化。硬件连接图如下: 图8 按键电路连接图3.2.5报警电路本设计采用的报警电路原理简单,利用单片机引脚拉高电平,驱动三极管放大电流,启动蜂鸣器发出报警声。硬件连接图如下:图9 报警电路连接图3.2.6 STC89C51单片机介绍控制部分为89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。STC89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦

    15、除只读存储器可以反复擦除100次。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,所以89C51是一种高效微控制器,引脚图如下所示:图10 STC89C51引脚图本次课程设计所涉及的引脚及其功能简介如下:89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。P0/P1/ P2口:都是一个内部提供上拉电阻的8位双向I/O口,其缓冲器能接收输出4TTL门电流。P1/ P2管脚写入1后,被内部上拉为高,可用作输入;而

    16、当被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。用作输入时,均须先写入“1”;用作输出时,P0口应外接上拉电阻。P3口特殊功能如下:端口第二名称第二功能P3.2INT0外部中断0请求输入端P3.3INT1外部中断1请求输入端P3.6WR外RAM写选通信号输出端图11 STC89C51 P3口特殊功能3.3仿真结果在仿真过程中,可以正确地对DS18B20上设置的模拟温度进行测量和显示,显示温度可以实现华氏度与摄氏度的切换,温度显示可以精确到1C,并且在温度超过所设置的最高温度(默认30C)时,蜂鸣器将发出滴滴的报警的声音。图12 电路仿真 图13 30时摄氏度和华氏度显示图14 30

    17、时进入Set设置模式 图15 Set模式中上调和下调警报值4、综合调试(负责人:李敬玄,徐昌洪)4.1 软件调试4.1.1 软件流程图图16 软件程序流程图4.1.2 软件子程序(完整程序见附录)根据分析硬件结构,系统程序应该主要包括:DS1820初始化程序,向DS1820读字节程序,读取温度及转换程序,温度显示程序,报警程序等。(1) 主程序: 主程序的主要功能是负责初始化1602LCD显示屏和中断初始化参数。(2)1602显示程序: 完成向1602写一字节和从1602读取一字节功能。(3)DS1820的读字节子程序: 完成向18B20读取一字节数据,并完成读取温度数据的处理。(4)温度显示

    18、程序: 将读取到的温度数据进行处理,计算出数值大小,并在LCD上进行显示。(5)计时器中断程序: 判断显示华氏还是摄氏,并调用相应的温度显示程序。(6)设置警报值温度中断:进入中断程序,扫面加减按键并修改相应的警报温度值。(7)报警子程序:通过设定最高,然后将当前温度与所设温度进行比较,实现报警功能。4.2硬件调试4.2.1实物图图17 整体实物图4.2.2各模块设计和走线在设计过程中,我们的思路是将模块分块放置,下图中可以明显看到几大部分电路与其他电路之间都分离开,这样不仅整个电路板看上去简洁,而且方便修改,方便正面飞线,而且背面我们没有采用飞线的方式,完全使用直接焊锡连接的方式,每条连接都

    19、很短,不仅连接效果好,而且没有飞线的杂乱感,整体看上去很清爽干净,而正面使用排针走线的方式,十分方便修改,在硬件调试过程中出现了很多小问题,比如LCD显示正负极顺序接反,单片机负极没有连接主电源等等,检查发现后,只需要改变排线的连接顺序就可以轻松解决。按键电路电源电路报警电路DS18B20测温电路89C51单片机LCD显示电路图18 电路背面走线4.2.3 正面电路设计图19 报警电路和LCD数据线走线图20 测量电路和晶振电路走线5、总结(负责人:李敬玄)本次实验是我们利用单片机进行的课程设计,从设计到编程,从仿真再到焊接和调试,都是对我们的一次次挑战。而且由于我们能力有限,所以实验的程序借

    20、鉴了很多网上资料。但是我们在原理图设计、焊接以及调试过程中确实花了很多时间,费了很多功夫,最终调试成功,完全符合设计预期的效果,我们组对这个结果都感觉很满意。这是我们的一次成功尝试,让我们今后更加有能力也有信心去做更加复杂的设计。在整个过程中,我们遇到很多困难和问题,比如:在设计过程中,由于对于单片机I/O口功能的不熟悉,所以对P3口的运用出了一些问题,一开始就把P3口全部占用了,然后才发现中断和DS18B20的信息写入都必须要P3口的参与,所以在之后的设计当中才把其他输出平均分配到其他三个端口,方便焊接布线。在实际焊接和走线过程中,也遇到一些优化方面的问题,比如:由于排母位置焊接到最外一排,

    21、所以液晶显示器的方向只能转过180度,美观性有所下降;之前的设计中都有RESET键,但是鉴于可以方便上电复位,该功能意义不大,所以省略;仿真图中18B20信号线有上拉电阻,实际操作中发现,这个设计可以去掉;在按键的设计过程中,我们把五个按键焊接在一个区域内,降低了背面焊接的难度,并且任意更换排针和杜邦线的对应关系,方便用户自定义按键。以上这些都是我们设计过程中遇到的一些问题和解决办法,虽然看让去都是些细枝末节的小问题,但是却体现出我们设计过程中的进步和不足,有失误我们在今后要注意改正,有进步就要进一步发扬下去,这些都是我们的收获和经验,对我们设计能力和自信都是一种促进。通过这次课程设计,我们学

    22、到了很多东西,锻炼了自己的能力。首先是我们查阅资料的能力,不仅如此,还能把知识融会贯通,最终设计出原理图,这是很大的进步;其次我们自学了Proteus软件和Keil-UV2软件的使用,这两个软件功能很强大,不仅帮助我们提高了单片机的知识而且还帮助我们复习了C语言的知识;最后也是最重要的,就是我们从中学到了团结协作的精神,并且获得了信心。在今后的学习过程中我们更加要严格要求自己,只有这样才能获得真正的进步。附录:主程序#include#include#include18b20.h /18b20头文件#include1602.h /18b20头文件/宏定义#define uchar unsigne

    23、d char #define uint unsigned int/定义变量uint bai,shi,ge;uchar table=0123456789;uchar welcome=WELCOME;uchar alarm=Temp Alert ;uchar modification=Set ;uchar j; /1602显示的字符个数long int tem,tem1; /tem为摄氏温度,tem1为华氏温度,jingbao为警报温度值long int jingbao=30;int xuanze=1; /按键选择温度方式sbit speaker=P23;sbit jia=P10;sbit jia

    24、n=P11;sbit queren=P12;void beep(); /函数声明蜂鸣器函数 void display(void)/18b20显示摄氏温度 EX0=0; tem=duqu_wendu(); if(temjingbao) beep(); shi=tem/10;ge=tem%10; write1602(0x80+0x0b);read1602(tableshi);write1602(0x80+0x0c); read1602(tablege);write1602(0x80+0x0d);read1602(0xdf);write1602(0x80+0x0e);read1602(C); wri

    25、te1602(0x80+0x0f); read1602( ); EX0=1; void display1(void)/18b20显示华氏温度 EX0=0; tem1=duqu_wendu()*1.8+32; if(tem1(jingbao*1.8+32) beep(); bai=tem1/100;shi=(tem1%100)/10;ge=tem1%10; /ge=temp%10; write1602(0x80+0x0b);read1602(tablebai);write1602(0x80+0x0c); read1602(tableshi);write1602(0x80+0x0d);read16

    26、02(tablege);write1602(0x80+0x0e); read1602(0xdf);write1602(0x80+0x0f);read1602(F); EX0=1; void displayjingbao(void)/显示警报温度值 bai=jingbao/100; shi=jingbao/10;ge=jingbao%10; /ge=temp%10; write1602(0x80+0x4b);read1602(tablebai);write1602(0x80+0x4c); read1602(tableshi);write1602(0x80+0x4d);read1602(table

    27、ge);write1602(0x80+0x4e); read1602(0xdf);write1602(0x80+0x4f);read1602(C); void xianshi() /1602显示数组,显示welcome int i; write1602(0x80); for(i=0;i=6;i+) read1602(welcomei); delayms(5); void xianshi1() /1602显示 the alarm int i; write1602(0x80+0x40); for(i=0;i=9;i+) read1602(alarmi); delayms(5); void xian

    28、shi2() /1602显示 modification int i; write1602(0x80+0x40); for(i=0;i=9;i+) read1602(modificationi); delayms(5); void beep(void) /蜂鸣器子程序 uchar i; for(i=0;i=100;i+) speaker=1; delayus(80); speaker=0; delayus(80); void startinterrupt(void) TMOD=0x01; /T0模式1定时TH0=0xD8; /装入初值,定时20msTL0=0xF0;IT0=1; /外部中断0为边

    29、沿触发方式EA=1; /中断允许总控制位EX0=1; /外部中断0允许EX1=1;ET0=1; /定时器0允许中断ET1=1;TR0=1; /启动定时器0/主函数void main() inte1602();/1602初始化 xianshi(); delayms(10); xianshi1();displayjingbao(); delayms(1000);startinterrupt(); /zhongwhile(1)void counter(void) interrupt 0 /外部中断0,按键切换显示模式函数 EX0=0;if(xuanze=0)xuanze=1;elsexuanze=0

    30、;EX0=1;void timeer(void) interrupt 1 /定时器0处理函数 TR0=0;TH0=0xD8; /装入初值,定时20ms TL0=0xF0;if(xuanze=1)display();/18B20显示 elsedisplay1();TR0=1; /启动定时器计数void counter1(void) interrupt 2 /外部中断1,设置警报温度值 while(1)xianshi2(); if(jia=0) delayms(20); if(jia=0) jingbao+;displayjingbao(); while(jia=0); continue; if(jian=0) delayms(10); if(jian=0) jingbao-; displayjingbao(); while(jian=0); continue; if(queren=0) delayms(10); if(queren=0) xianshi1(); break; - 20 -


    注意事项

    本文(基于数字温度传感器的数字温度计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922