ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:61.13KB ,
资源ID:500984      下载积分:5 金币
已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温度测量与报警系统设计.docx)为本站会员(夺命阿水)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(发送邮件至doc331@126.com或直接QQ联系客服),我们立即给予删除!

温度测量与报警系统设计.docx

1、课程设计说明书题目:温度测量与报警系统设计姓名:学号:指导教师:专业年级:所在学院和系:完成日期:课程名称:机电一体系统设计目录1绪论11.1背景11.1设计要求11.3设计任务12系统总体方案设计12.1设计思想12.2方案论证21.1.1 2.1电源模块21.1.2 温度检测模块21.1.3 控制模块21.1.4 显示模块31.1.5 报警模块31.1.6 按键模块32. 3芯片选择42.1.1 电源模块42.1.2 温度检测模块42.1.3 控制模块42.1.4 显示模块43系统硬件设计42.1.5 机最小系统42.1.6 检测电路53. 3显示模块54. 4报警模块55. 5按键模块5

2、6. 6总电路53. 6.1绘图软件简介54. 6.2电路原理图65. 6.3电路PCB图64系统软件设计错误!未定义书签。5.1 程序设计思路75.2 主程序流程图75.3 获取温度程序流程图错误!未定义书签。5.4 报警程序流程图76. 5显示程序流程图87. 6数据处理程序流程图88. 7编程软件简介85总结8参考文献8附录A9附录Blo附录Clo1绪论1.l背景温度温度是工业生产中主要的被控参数之一,与之相关的各种温度控制系统广泛应用于冶金、化工、机械、食品等领域。温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量;同时,温度超过了系统工作正

3、常范围将直接影响系统的寿命,甚至损坏系统;甚至可以说任何一个系统都必须工作在一定的温度范围内,因而设计一种较为理想的温度控制系统是非常有价值的。自18世纪工业革命以来,工业的飞速开展离不开温度参量在控制系统中的应用。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。在工业生产中人们都需要对各类加热炉、热处理炉、反响炉和锅炉中的温度进行检测和控制,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,

4、难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。1.1设计要求设计要求:实现温度的测量与控制。测温范围:0100C;测量精度:0.I0C;设有上、下限报警温度;数码显示;1. 3设计任务设计任务:硬件设计(元器件选择、电路原理图与电路板图绘制等)、软件设计。2系统总体方案设计1.1 设计思想本设计题目的设计要求是测量温度、报警及显示,根据设计要求要测量温度就需要有温度传感器以及相应的信号调理电路;报警信号可以通过视觉信号也可以是声音或二者兼备来告知用户;显示可以通过数码管、LED点阵、LCD等;人机交互即极限温度设置可以用按钮或键盘来输入;有了这些之后,各局部的

5、功能得以实现,但是要是他们有序地完成任务还需要一个控制器来协调和控制各局部的工作;系统要工作需要为系统供电,于是需要有电源局部。根据上述的设计思路绘制系统框图如下列图1。图1系统框图2. 2方案论证1.1.1 2.1电源模块方案一:直接利用电池来提供一个适宜的电压。由于干电池供电电压会因负载的不同以及会随着使用的过程而电压发生变化,这会影响到系统的正常工作。方案二:采用AC-DC的方式为系统供电,该方式是将交流电变为所需的直流电压,它需要有相应的变压器、整流电路、滤波电路和稳压电路等,该方案电路复杂,费用较高、对于这样一个小系统不经济。方案三、采用DCTC的方式,该方式是将直流电转换为系统所需

6、的电压,采用该方案可以用干电池作为也可以用开关电源适配器来作为DC输入,可以简化系统的电源电路,提高系统的便携性能、降低本钱。根据上述的对三种方案的分析比拟后,该系统采用方案三比拟合理。1.1.2 温度检测模块方案一、采用普通的温度传感器,该方案需要设计相应的信号放大电路、滤波电路、AD转换电等。方案二、采用DS18B20智能温度传感器,该传感器内置相应的信号调理电路,直接输出数字量,而且才I-Wire的方式与控制器进行信号交流,简化了硬件电路的设计,同时其转换精度也很高,价格实惠,性价比高,应用非常广。由于DS18B20温度传感器的优异性能,且足够满足该系统的要求,故采用方案二。1.1.3

7、控制模块方案一:采用UCS-51系列单片机。传统的51单片机具有价格低廉,使用简单等特点,但其运算速度低,功能单一,RAU、ROM空间小等缺点。方案二:采用AT89C52单片机单片机作为控制模块。具有丰富的资源:RAM,ROM空间大、超强抗干扰、超低功耗、可送STC-ISP下载编程器、指令周期短、低电压、易于编写和调试等优点。这些特点极大地提高了开发效率。鉴于AT89C52单片机价格廉价,功能齐全等特点,本系统采用AT89C52单片机为控制器。1.1.4 显示模块方案一:采用数码管显示1.ED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线

8、来保持显示的字形码。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。根据系统要求该系统应采用动态显示方式,采用数码管显示。方案二:采用1602液晶显示,1602液晶模块内部的字符发生存储器(CGROM)己经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。数码管消耗电力比液晶多一点,但是数码管显示更加清晰,更加适合在白天等强光条件下显示。液晶极其省电,但是使用有温度范围限制,且因是反光式的,在外界光线很明亮的情况下很容易看不清楚。用数码管完全可以满足该系统的要求,故采用方案一。1

9、1.5 报警模块方案一、采用用LED来显示报警信号,根据颜色的不同可以很清楚地知道是低于最低极限温度还是高于最高极限温度的情况,但是它需要人在现场。方案二、采用蜂鸣器报警,它的优点是当事人不必在现场,可以不受空间物体的阻碍作用而将报警信号传递给用户,但是至于是上述两种中的哪种情况不能很清楚的知道。根据两种方案的比拟发现,二者具有互补的作用,所以选择方案一和方案二来共同实现报警功能。1.1.6 按键模块方案一、用键盘作为人机交互的接口。方案二、用独立按键来实现人机交互。根据系统的要求可知,只需三个键即可满足要求,故从经济的角度来看,选择方案二比拟合理。2. 3芯片选择2.1.1 电源模块系统要

10、求输入5V的直流电压,于是选择5V的三端直流稳压器L7805CV芯片,7805是X78XX系列中的一种,它能固定地输出的电压,能够保证系统工作的稳定性。2.1.2 温度检测模块温度传感器选择DALLAS公司生产DS18B20数字温度计,它具有线路简单,体积小,抗干扰能力强,精度高的特点。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。233控制模块控制器选用ATMEL公司生产的8位单片机一一AT89C52,片内含8kbytes

11、的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。2.3.4 显示模块系统采用两个4位的数码管显示,如果直接与单片机相连,既占引脚又驱动能力不够,应选用74LS138译码器来进行位选以减少引脚占用数量,采用74HC573锁存器来提高驱动能力。3系统硬件设计2.3.5 机最小系统单片机最小系统通常有时钟电路和复位电路,时钟电路的晶振选择12MHZ的频率,复位电路选用手动复位电路,因选

12、用单片机内部的ROM存储器,所以EA引脚接高电平。其电路如图2所示。2.3.6 检测电路DS18B20温度传感器只有三个引脚,其中GND接地,DQ数据输入输出引脚经电阻上拉后接单片机P3.7引脚,VDD接外部电源。其电路如下列图3所示。AT89C52DS18B20GND DQ Vdd图3传感器电路图3. 3显示模块显示局部用两个4位的数码管显示,位选是通过74LS138译码器来实现的,译码器的输入端A、B、C接单片机P2.2、P2.3、P2.4三个端口,其数据输出引脚接数码管的位选引脚,因译码器输出的是低电平有效,应选用的数码管是共阴极的,段选通过74HC573锁存器来驱动,锁存器经上拉电阻后

13、与单片机的PO口相连,锁存器的输出端接数码管的段选引脚,但是不能直接相接,必须串联上限流电阻,流入数码管的电流可以是20A左右,其压降在2点几伏,接上IOoQ的电阻即可。其电路如下列图4所示。图4显示电路图3. 4报警模块报警电路有蜂鸣器电路和LED发光二极管电路两个不局部,蜂鸣器采用三极管来驱动,为了限制其流过电路,给它串上一个100Q的电阻,发光二极管直接接单片机的,同样需串上一个IoOQ的限流电阻来保护二极管。其电路如下列图5所示。图5报警电路图3. 5按键模块按钮的一端接地,当按下时,单片机相应的引脚被拉低,于是可以通过程序查询的方式来判断是否有哪一个按键按下,实现其功能,其电路简单,

14、不单独画出。3.6总电路3.6.1 绘图软件简介Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术),它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。ProteUS是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚

15、拟模型仿真软件三合一的设计平台。3.6.2 电路原理图图6系统电路原理图3.6.3 电路PCB图在用ProteUS绘制电路板时,采用的是自动布局和手动调整,布线采用的是手动布线,手动布线时应注意电路布布线的规那么,具体内容如下。1 .电源线和地线的布线规那么如下。 在电源、地线之间加上去耦电容。 尽量加宽电源线、地线宽度,最好是地线比电源线宽。 数字电路的PCb可用宽的地导线组成一个回路,即构成一个地网来使用,模拟电路的地不能这样使用。 用大面积铜层作地线,在印制板上把没被用上的地方都与地相连接作为地线用,或是做成多层板,电源和地线各占用一层。2 .PCB要合理分区,单片机系统通常可分三区,即

16、模拟电路区(怕干扰),数字电路区(即怕干扰、又产生干扰),功率驱动区(干扰源)。3 .时钟振荡电路、特殊高速逻辑电路局部用地线圈起来。让周围电场趋近于零。4 .I/O驱动器件、功率放大器件尽量靠近印制板的边,靠近引出接插件。5 .使用45。的折线布线,不要使用90。折线,以减小高频信号的发射。6 .单面板、双面板,电源线、地线要尽量粗。信号线的过孔要尽量少。7 .关键的线尽量短并要尽量粗,并在两边加上保护地。将敏感信号和噪声场带信号通过一条扁带电缆引出的话,要用地线-信号-地线方式引出。8 .石英振荡器下面、噪声敏感器件下面要加大地的面积而不应该走其它信号线。9 .任何信号线都不要形成环路,如

17、不可防止,环路应尽量小。4系统软件设计4.1程序设计思路本系统主要是测量温度、设定极限温度值及其显示和报警,于是设计思路为:首先是系统初始化,然后从传感器中读数、进行数据处理,处理结果存储,如有用户设定极限温度值那么将其存储覆盖之前的极限温度值,将处理的结果与设定值比拟并决定是否报警,将数据输出给用户。其设计思路框图如图8所示。图8程序设计思路框图4.2主程序流程图主程序主要完成单片机定时器的初始化,调用温度获取程序,温度显示存储区数据刷新,温度报警判断、温度显示的功能,主程序采用了一个死循环,程序运行的过程中,不断地执行主程序,从而实现显示不断更新。流程图如图9所示。图9主程序流程图4. 3

18、获取温度程序流程图该程序主要完成从DS18B20传感器获取温度值和人机交互的功能即对极限温度进行设置,此程序是该系统实现温度测量的主要功能块,它同时会调用温度传感器的底层驱动程序,实现将温度传感器中的数据读入到单片机中,问数据处理程序提供原始数据。流程图如图10所示。图10获取温度程序流程图4.4报警程序流程图报警程序的控制对象主要是蜂鸣器和红绿灯,根据主程序传给的实参,可以判断是超过上限温度还是低于下限温度,进而执行不同的操作,告诉用户报警状态。超过最高极限温度那么蜂鸣器响和红灯亮;低于最小极限温度那么蜂鸣器响,同时绿灯亮。流程图如图11所图11报警程序流程图4.5显示程序流程图显示程序是用

19、来显示当前温度值和极限温度值的,共有八位要显示,采用的是动态扫描方式,从左到右逐位显示,采用一个循环8次的程序,一次将显存数组变量中的数据输出给对应位,这样就可以显示所要显示的内容,程序流程图如图12所示。图12显示程序流程图4.6数据处理程序流程图从DS18B20获取的温度值必须进行一定的转换才能得到真正的温度数值,DS18B20的温度操作是使用16位,也就是说分辨率是0.0625,将读取到的两字节温度值乘以0.0625即为实际温度值,直接相乘后得到的值将会约去小数局部,但是该系统要求获取0.1的精确度,这样是不合理的,为此,可以用0.625去乘,这得到的温度值扩大了十倍,保存了个分位上的数

20、值,然后在显示的时候在相应位上将点点亮即可。图13数据处理程序流程图4.7编程软件简介KeilSoftware公司推出的uVision3是一款可用于多种8051MCl的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改良的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。uVision3提供对多种最新的8051类微处理器的支持,包括

21、AnalogDevices的ADuC83x和ADUC84x,以及InfinCOn的XC866等。系统程序代码请见附录C.5总结参考文献1喻宗泉,喻啥,李建民.单片机原理与应用技术M.西安:西安电子科技大学出版社,20062黄智玮.全国大学生电子设计竞赛电路设计M.北京:北京航空航天大学出版社,20063段玉生.电工电子技术与EDA根底IXI.北京:清华大学出版社,20044胡向东,刘京诚.传感器与检测技术M.北京:机械工业出版社,20105徐国华.电子技能实训M.北京:北京航空航天大学出版社,20076周灵彬,任开杰,张靖武.基于Proteus的电路与PCB设计IXl.北京:电子工业出版社,2

22、0107周润景,张丽娜,刘印群.PROTEUS入门实用教程IxI.北京:机械工业出版社,20078黄智伟.全国大学生电子设计竞赛常用电路模块制作M.北京:北京航空航天大学出版社,20069李华,MCU-51系列单片机实用接口技术闺.北京:北京航空航天大学出版社,199310张胜全.D18B20数字温度计在微机温度采集系统中的序编制IxI.南京:南京大学出版社,199811马田华等.可编程单总线数字式温度传感器DS18B2的原理与应用J.电子质量2004,712于永学.1Tire总线数字温度传感器DS18B20及应用J.电子产品世界,2003,1213周哈晓,袁慧梅.单片机系统的印制板设计与抗干

23、扰技术J.电子工艺技术,2004,6附录A材料清单器件名称单片机温度传感器晶体谐振器12M瓷片电容数目1112型号T89C52DS18B20HC-49USHC-49U22P器件名称电解电容电解电容留电容按钮开关数目1114型号100U/50V10U/50V0.lu35vTS06116*6*4.3器件名称碳膜电阻碳膜电阻碳膜电阻蜂鸣器数目19111型号100R0.5W1K/0.5W10K0.5WHUT-1203器件名称三极管LEDLED共阴极数码管数目1112型号2N3904REDGREEN0.36寸/四位器件名称接线端子接线端子三端稳压38译码器数目1111型号HB9500-2PKF5083位

24、L7805CV74LS138器件名称锁存器数目1型号74HC573附录B单片机引脚分配表P3.7接DS18B20的DQ引脚接红绿灯PL5接蜂鸣器接按键PO接74HC573D0-D7接74LS138译码器A、B、C端附录C程序代码头文件18B20.h如下typedefunsignedintuint;typedefunsignedcharuchar;externbithorl;报警温度最小最大极限值标志,默认最小值externbitzhf_flag;/正负标志externuinttemperature;存温度的变量externvoiddelay(ucharidataus);/短延时程序extern

25、voidfwei(void);/复位程序externvoidwritebyte(ucharidatawrb);/单字节写程序externucharreadbyte(void);/单字节读程序externvoidread_bytes(ucharidatanum);/多字节读程序externvoidgettemp(void);/提取温度值程序externvoidds18b20IenlP(Void);DS18B20主控程序externvoidshx(void);/温度O.5s值刷新一次程序主功能程序代码如下:#include#include/z18b20.h定义显示字段码表Unsignedcharc

26、odeDispTab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;定义引脚程序sbitA138=P22138译码器引脚sbitB138=P23;sbitC138=P24;sbitfmq=P5;蜂鸣器引脚sbitredled=PlO;红绿灯引脚sbitgreenled=Pl1;定义变量程序uchardisplaynum8;/数码管显示数据存储区bith,1;定义报警标志uinthtemp=60,Itemp=IO;上下限报警温度初始化程序voidsys_start()(TMOD=OXOi;THO=0xD8;IOnlS初值TLO=OxFO;IE

27、0x82;TRO=1;)延时Ims程序voiddelaylms(uintj)(uinti;for(j;j0;j)for(i=120;i0;i)t)报警程序voidalarml(void)if(h)(redled=0;fmq=l;)if(greenlod=0;fmq=l;)delaylms(10);fmq=O;redled=l;greenled=l;)voidmain()(uchari;sys_start();初始化while(1)(fmq=0;shx();if(zhf_flag)负温度值超出范围输出一(disp1ay_num0=0x40;百位display_num1=0x40;十位displ

28、ay_num2=0x40;个位displaynm3=0x40;小数位)else存正温度值display_num0=Disp_Tabtemperature%10000/1000;百位display_numl=DiSP一Tabtemperature%1000/100;/十位display_num2=Disp_Tabtempcrature%100/10;个位display_num3=Disp_Tabteniperature%10;小数位if(horll)(display_num4=0x78;显示上限温度值display_num5=Disp_Tabhtcmp%1000/100;百位display_nu

29、m6=Disp_Tabhtemp%100/10;十位displaynum7=DispTabhtemp%10;个位else显示下限温度值(displaynum4=0x71;displaynum5=Disp_Tabltcmp%1000/100;百位disp1aynum6=Disp_Tab11cmp%100/10:/十位displaynum7=DispTabltcmp%10;/个位)当前温度与极限温度比拟并标识if(tcmperature=(htemp*10)h=l;elseh=0;if(tcmperature=(ltemp*10)1=1;else1=0;if(1=11h=l)alarml();显示

30、程序for(i=0;i8;i+)(PO=display_numi;段点亮if(i=2)PO=PO10x80;switch(i)位扫描caseO:A138=0;B138=0;C138=0;break;case1:A138=1;B138=0;C138=0;break;case2:A138=0;B138=l;C138=0;break;case3:A138=1;B138=1;C138=0;break;case4:A138=0;B138=0;C138=l;break;case5:A138=1;B138=0;C138=l;break;case6:A138=0;B138=l;C138=1;break;cas

31、e7:A138=1;B138=1;C138=1;break;)delaylms(2);)DS18B20温度获取程序代码:ttincludeincludedefinenop()_nop_()定义空指令typedefunsignedintuint;typedefunsignedcharchar;externuinthtcmp,ltcmp;报警温度极限值外部变量说明函数头说明voiddelay(ucharidataus);/短延时程序voidfwei(void);复位程序voidwritebyte(ucharidatawrb);/单字节写程序ucharreadbyte(void);/单字节读程序vo

32、idreadbytes(ucharidatanum);/多字节读程序voidget_temp(void);/提取温度值程序voiddsl8b20_temp(void);DS18B20主控程序voidshx(void);/温度0.5s值刷新一次程序变量定义ucharidatadq_read_bytes9;/读取的dsl8b20的ram的数据uchartim;uinttemperature=。;存温度的变量bithorl=0;报警温度最小最大极限值标志,默认最小值位变量定义sbitdq=P37;定义DS18B20的数据I/O引脚bitask;定义应答信号变量bitzhfflag;正负标志sbitf

33、un_chsc=P27;进行最大或最小温度功能的切换sbitatdel=P2c6;温度减sbitatadd=P2c5;温度加短延时程序voiddelay(ucharidataus)(while(us一);)复位程序voidfwei(void)dq=l;nop();dq=O;delay(85);延时513usnop();dq=l;delay(20);延时123usnop();nop();nop();if(dq=O)应答判断ask=l;elseask=0;delay(20);nop();nop();dq=l;单字节写程序voidwritebyte(ucharidatawrb)ucharidatan

34、b;for(nb=0;nb=l;)单字节读程序ucharreadbyte(void)(ucharidatanb,rdb=0;for(nb=0;nb=l;dq=l;if(dq=l)读数rdb=rdb0x80;delay(2);延时20usnop();return(rdb);)多字节读程序voidreadbytes(ucharidatanum)/num=9ucharidatai;for(i-0;i=248)负温度值(zhf_fIag=I;)ClSe正温度值(zhffIag=O;temperature=temperature+dq_read_bytesl;temperature=temperature=50)/50xl0ms=0.5s(tim=0;dsl8b20_tcmp();/温度显示对应存储区的内容刷新P2=0XFF;if(fun_chse=0)horl=horl;if(horl)(if(!atdel)htemp一;if(!atadd)(if(htemp=100)上限温度不超过100,elsehtemp+;)elseif(!atdel)if(Itemp=O)下限温度不低于0elseItemp;)if(!atadd)Itemp+;)定时器TO中断效劳程序voidttO(void)interrupt1THO=0xD8;延时IOms初值TLO=OxFO;tim+;

宁ICP备18001539号-1