首页 温度报警器传感器课程设计报告

温度报警器传感器课程设计报告

举报
开通vip

温度报警器传感器课程设计报告----word.zl-----word.zl-摘要随着时代的进步和开展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比拟成熟的技术,本文主要介绍了一个基于89S51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进展了详尽分析,特别是数字温度传感器DS18B20的数据采集过程。对各局部的电路也一一进展了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,...

温度报警器传感器课程设计报告
----word.zl-----word.zl-摘要随着时代的进步和开展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比拟成熟的技术,本文主要介绍了一个基于89S51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进展了详尽分析,特别是数字温度传感器DS18B20的数据采集过程。对各局部的电路也一一进展了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C51结合实现最简温度检测系统,该系统构造简单,抗干扰能力强,适合于恶劣环境下进展现场温度测量,有广泛的应用前景。关键词:单片机报警系统DS18B20温度传感器数字温度计AT89S52----word.zl-目录1、概述..................................................................................................11.1课程设计的意义.......................................................................11.2设计的任务和要求...................................................................12、系统总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 及硬件设计............................................................22.1数字温度计设计方案论证.......................................................22.1.1方案一..............................................................................22.1.2方案二..............................................................................22.2系统总体设计.............................................................................32.3系统模块.....................................................................................42.3.1主控制器..........................................................................42.3.2显示电路..........................................................................52.3.3温度传感器......................................................................52.3.4报警温度调整按键..........................................................63、系统软件算法分析........................................................................73.1主程序流程图.............................................................................73.2读出温度子程序.........................................................................73.3温度转换命令子程序.................................................................83.4计算温度子程序.......................................................................83.5显示数据刷新子程序.................................................................83.6按键扫描处理子程序.................................................................94、实验仿真.........................................................................................105、 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 与体会.....................................................................................11查考文献.............................................................................................12附1源程序代码.............................................................................132实物图.......................................................................................20----word.zl-1概述1.1课程设计的意义本次课程设计是对于我们所学的传感器原理知识所进展的一次实际运用,通过自主的课程设计和实际操作,可增加我们自身的动手能力。特别是对温度传感这方面的知识有了实质性的了解,对进一步学习传感器课程起到很大的作用。本课程设计通过查阅相关资料,在教师和同学的帮助下完成,在锻炼了自我的同时也增强了自己的团队意识和团队协作精神。1.2设计的任务和要求1、根本围-50℃-110℃2、精度误差小于0.5℃3、LED数码直读显示4、可以任意设定温度的上下限报警功能----word.zl-2系统总体方案及硬件设计2.1数字温度计设计方案论证2.1.1方案一2.1.1由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进展A/D转换后,就可以用单片机进展数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比拟麻烦。而且在对采集的信号进展放大时容易受温度的影响出现较大的偏差。2.1.2方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进展转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比拟简单,费用较低,可靠性高,软件设计也比拟简单,故采用了方案二。----word.zl-2.2系统总体设计温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。LED显示单片机复位蜂鸣器,指示灯AT89S51报警温度调整键DS18B20时钟振荡温度传感器图2.2—1总体设计方框图图2.2—2系统仿真图----word.zl-2.3系统模块系统由单片机最小系统、显示电路、按键、温度传感器等组成。2.3.1主控制器2.3.1单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。晶振采用12MHZ。复位电路采用上电加按钮复位。图2.3.1—1晶振电路图2.3.1—2复位电路----word.zl-2.3.2显示电路2.3.2显示电路采用4位共阴极LED数码管,P0口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。P2口的低四位作为数码管的位选端。采用动态扫描的方式显示。图2.3.2数码管显示电路2.3.3温度传感器2.3.3DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:1、独特的单线接口仅需要一个端口引脚进展通信;2、多个DS18B20可以并联在惟一的三线上,实现多点组网功能;3、无须外部器件;4、可通过数据线供电,电压围为3.0~5.5V;5、零待机功耗;6、温度以9或12位数字;7、用户可定义报警设置;8、报警搜索命令识别并标志超过程序限定温度〔温度报警条件〕的器件;9、负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。----word.zl-图2.3.3温度传感器与单片机的连接2.3.4报警温度调整按键本系统设计三个按键,采用查询方式,一个用于选择切换设置报警温度和当前温度,另外两个分别用于设置报警温度的加和减。均采用软件消抖----word.zl-3系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序,按键扫描处理子程序等。3.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进展一次。这样可以在一秒之测量一次被测温度,其程序流程见图3.1所示。初始化读取温度读出温度值温度计算处理显示数据刷新发温度转换开场命令调用显示子程序NSET键是否按下Y设置报警温度图3.1主程序流程图3.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进展CRC校验,校验有错时不进展温度数据的改写。其程序流程图如图3.2示----word.zl-3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开场命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图3.3所示发DS18B20复位命令发DS18B20复位命令发跳过ROM命令发跳过ROM命令发温度转换开场命令发读取温度命令完毕读取操作,CRC校验图3.3温度转换流程图YN9字节完?YCRC校验正?N移入温度暂存器完毕图3.2读温度流程图3.4计算温度子程序计算温度子程序将RAM中读取值进展BCD码的转换运算,并进展温度值正负的判定,其程序流程图如图3.4所示。3.5显示数据刷新子程序显示数据刷新子程序主要是对别离后的温度显示数据进展刷新操作,当标志位位为1时将符号显示位移入第一位。程序流程图如图3.5。----word.zl-开场N温度零下?Y温度值取补码置“1〞标志置“0〞标志温度数据移入显示存放器别离显示温度Y标志位为1?NY计算小数位温度BCD值最高位显示“—〞计算整数位温度BCD值最高为显示分理出的数据完毕完毕图3.4计算温度流程图图3.5显示数据刷新流程图3.6按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否那么显示当前温度。如下列图3.6示。SET键按下ADD键是否按下NDEC键是否按下NY报警温度加1Y报警温度减1N显示切换标志位是否为“0〞Y调用显示子程序图3.6按键扫描处理子程序----word.zl-4实验仿真进入protuse后,连接好电路,并将程序下载进去。将DS18B20的改为0.1,数码管显示温度与传感器的温度一样。图4—1温度显示仿真当按下SET键一次时,进入温度报警上线调节,此时显示软件设置的温度报警上线,ADD按或DEC分别对报警温度进展加一或减一。当再次按下SET键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,ADD按或DEC分别对报警温度进展加一或减一。图4—2温度调试仿真当第三次按下SET键时,退出温度报警线设置。显示当前温度。----word.zl-5总结与体会本次基于“ds18b20数字温度报警器〞的传感器课程设计大致可以分为:资料收集→程序编辑→电路设计→模拟仿真→电板焊接。每个过程相辅相成,却又相互独立。通过这次对数字温度计的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字温度计的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。通过一个一个步骤的跟进,让我对很多电子元器件的构造和根本特性有了一定的了解,对电路的实际操作让我对电路有了深刻的理解。焊接过程是一个很有趣的过程,通过小心翼翼的一个个引脚的焊接,最终成就我们的温度传感器,每一步都那么的慎重以防与相邻的电路短接。在很大的程度上锻炼了我的耐心,同时也能够对整个电路设计及走向有一个深刻的了解、理解。当然,由于种种原因:元器件缺失、系统本身及电路的影响等导致所得的结果不够准确,无法到达预想的理想状态,让人很是遗憾。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习传感器更是如此,任何元件、程序等只有在反复的学习和使用过程中才能在运用过程中得心应手,这就是我在这次课程设计中的最大收获。----word.zl-人民邮电2003【6】恢先黄辉先单片机原理及应用参考文献【5】云经稳春强常用电子元器件及应用电路电子工业2011【4】迎春叶湘滨传感器原理设计与应用国防科技大学1998【3】廖常初.现场总线概述[J].电工技术,航天航空大学2000【2】薛庆军,秀娟,单片机原理实验教程航空航天大学1999【1】马忠梅,凯单片机的C语言应用程序设计(第四版)人民----word.zl-附1源程序代码//DS18B20的读写程序,数据脚P2.7//温度传感器18B20汇编程序,采用器件默认的12位转化//为0.1度,显示采用4位LED共阳显示测温值//P0口为段码输入,P34~P37为位选//////最大转化时间750微秒,显示温度-55到+125度,显示精度///////***************************************************/#include"reg51.h"#include"intrins.h"#definedmP0#defineucharunsignedchar#defineuintsbitDQ=P2^7;sbitw0=P2^0;sbitw1=P2^1;sbitw2=P2^2;sbitw3=P2^3;sbitbeep=P1^7;sbitset=P2^6;sbitadd=P2^4;sbitdec=P2^5;inttemp1=0;uinth;uinttemp;ucharr;ucharhigh=35,low=20;ucharsign;ucharq=0;uchartt=0;ucharscale;//**************温度小数局部用查表法***********//ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//小数断码表ucharcodetable_dm[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};//共阴LED段码表"0""1""2""3""4""5""6""7""8""9""不亮""-"unsignedint//温度输入口//数码管4//数码管3//数码管2//数码管1//蜂鸣器和指示灯//温度设置切换键//温度加//温度减//显示当前温度和设置温度的标志位为0时显示当前温度//_nop_();延时函数用//段码输出口uchartable_dm1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//个位带小数点的断码表uchardatatemp_data[2]={0x00,0x00};uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//读出温度暂放//显示单元数据,共4个数据和一个运算暂用/*****************11us延时函数*************************/----word.zl-voiddelay(uintt){for(;t>0;t--);}voidscan(){intj;for(j=0;j<4;j++){switch(j){case0:dm=table_dm[display[0]];w0=0;delay(50);w0=1;//xiaoshucase1:dm=table_dm1[display[1]];w1=0;delay(50);w1=1;//geweicase2:dm=table_dm[display[2]];w2=0;delay(50);w2=1;//shiweicase3:dm=table_dm[display[3]];w3=0;delay(50);w3=1;//baiwei//}}}//***************DS18B20复位函数************************/ow_reset(void){charpresence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();//从高拉倒低DQ=0;delay(50);DQ=1;delay(6);presence=DQ;}delay(45);presence=~DQ;}DQ=1;}/****************DS18B20写命令函数************************///向1-WIRE总线上写1个字节//拉高电平//延时500us//66us//presence=0复位成功,继续下一步//550uselse{dm=table_dm[b3];w3=0;delay(50);w3=1;}----word.zl-voidwrite_byte(ucharval){uchari;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();_nop_();DQ=val&0x01;delay(6);val=val/2;}DQ=1;delay(1);}/****************DS18B20读1字节函数************************///从总线上取1个字节ucharread_byte(void){uchari;ucharvalue=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_();DQ=1;_nop_();_nop_();_nop_();_nop_();if(DQ)value|=0x80;delay(6);}DQ=1;return(value);}/*****************读出温度函数************************/read_temp(){ow_reset();delay(200);write_byte(0xcc);write_byte(0x44);ow_reset();delay(1);write_byte(0xcc);write_byte(0xbe);//发命令//发命令//发转换命令//总线复位//66us//4us//4us//从高拉倒低//5us//最低位移出//66us//右移1位----word.zl-temp_data[0]=read_byte();temp_data[1]=read_byte();temp=temp_data[1];temp<<=8;temp=temp|temp_data[0];returntemp;}//读温度值的第字节//读温度值的高字节//两字节合成一个整型变量。//返回温度值/****************温度数据处理函数************************///二进制高字节的低半字节和低字节的高半字节组成一字节,这个//字节的二进制转换为十进制后,就是温度值的百、十、个位值,而剩//下的低字节的低半字节转化成十进制后,就是温度值的小数局部/********************************************************/work_temp(uinttem){ucharn=0;if(tem>6348){tem=65536-tem;n=1;}display[4]=tem&0x0f;display[0]=ditab[display[4]];display[4]=tem>>4;display[3]=display[4]/100;display[1]=display[4]%100;display[2]=display[1]/10;display[1]=display[1]%10;//温度值正负判断//负温度求补码,标志位置1//取小数局部的值//存入小数局部显示值//取中间八位,即整数局部的值//取百位数据暂存//取后两位数据暂存//取十位数据暂存//个位数据r=display[1]+display[2]*10+display[3]*100;/////符号位显示判断/////if(!display[3]){display[3]=0x0a;if(!display[2]){display[2]=0x0a;}}if(n){display[3]=0x0b;}}//负温度时最高位显示"-"//次高位为0时不显示//最高位为0时不显示voidBEEP(){if((r>=high&&r<129)||r128){horl=256-horl;n=1;}display[3]=horl/100;display[3]=display[3]&0x0f;display[2]=horl%100/10;display[1]=horl%10;display[0]=0;if(!display[3]){display[3]=0x0a;if(!display[2]){display[2]=0x0a;}}if(n){display[3]=0x0b;//负温度时最高位显示"-"}//次高位为0时不显示//最高位为0时不显示}//*********按键查询程序**************//voidkeyscan(){inttemp1;if(set==0){while(1){delay(500);//消抖if(set==0){temp1++;//最高温度和最低温度标志位----word.zl-while(!set)scan();}if(temp1==1){xianshi(high);scan();if(add==0){while(!add)scan();high+=1;}if(dec==0){while(!dec)scan();high-=1;}}if(temp1==2){xianshi(low);if(add==0){while(!add)scan();low+=1;}if(dec==0){while(!dec)scan();low-=1;}scan();}if(temp1>=3){temp1=0;break;}}----word.zl-}}/****************主函数************************/voidmain(){dm=0x00;w0=0;w1=0;w2=0;w3=0;for(h=0;h<4;h++){display[h]=0;}ow_reset();write_byte(0xcc);write_byte(0x44);for(h=0;h<100;h++){scan();}while(1){if(temp1==0){//初始化端口//开机显示"0000"//开机先转换一次//SkipROM//发转换命令//开机显示"0000"work_temp(read_temp());BEEP();scan();keyscan();}elsekeyscan();}}//处理温度数据//显示温度值//***********************完毕**************************//
本文档为【温度报警器传感器课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥18.4 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
wdggjmm
从事建筑施工管理与质量安全、方案设计、可行性研究报告
格式:doc
大小:915KB
软件:Word
页数:0
分类:教育学
上传时间:2021-10-15
浏览量:77