温度测量与报警系统设计_第1页
温度测量与报警系统设计_第2页
温度测量与报警系统设计_第3页
温度测量与报警系统设计_第4页
温度测量与报警系统设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书 题 目: 温度测量与报警系统设计 姓 名: 学 号: 指 导 教 师: 专 业 年 级: 所在学院和系: 完 成 日 期: 课 程 名 称: 机电一体系统设计 目 录1绪论11.1 背 景11.1 设计要求11.3 设计任务12系统总体方案设计22.1 设计思想22.2 方案论证22.2.1 电源模块22.2.2 温度检测模块32.2.3 控制模块32.2.4 显示模块32.2.5 报警模块42.2.6 按键模块42.3 芯片选择42.3.1电源模块42.3.2 温度检测模块42.3.3 控制模块52.3.4 显示模块53系统硬件设计63.1 单片机最小系统63.2 传感检测电

2、路63.3 显示模块73.4 报警模块83.5 按键模块83.6 总 电 路83.6.1 绘图软件简介83.6.2 电路原理图93.6.3 电路PCB图104系统软件设计124.1 程序设计思路124.2 主程序流程图124.3 获取温度程序流程图134.4 报警程序流程图144.5 显示程序流程图154.6 数据处理程序流程图154.7 编程软件简介165总结17参考文献18附录A 19附录B20附录C211绪论1.1 背 景温度温度是工业生产中主要的被控参数之一,与之相关的各种温度控制系统广泛应用于冶金、化工、机械、食品等领域。温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温

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

4、决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。1.1 设计要求设计要求:实现温度的测量与控制。 测温范围:01000C; 测量精度:0.10C; 设有上、下限报警温度; 数码显示;1.3 设计任务设计任务:硬件设计(元器件选择、电路原理图与电路板图绘制等)、软件设计。2系统总体方案设计2.1 设计思想本设计题目的设计要求是测量温度、报警及显示,根据设计要求要测量温度就需要有温度传感器以及相应的信号调理电路;报警信号可以通过视觉信号也可以是声音或二者兼备来告知用户;显示可以通过数码管、LED点阵、

5、LCD等;人机交互即极限温度设置可以用按钮或键盘来输入;有了这些之后,各部分的功能得以实现,但是要是他们有序地完成任务还需要一个控制器来协调和控制各部分的工作;系统要工作需要为系统供电,于是需要有电源部分。根据上述的设计思路绘制系统框图如下图1。图1 系统框图2.2 方案论证2.2.1 电源模块方案一:直接利用电池来提供一个合适的电压。由于干电池供电电压会因负载的不同以及会随着使用的过程而电压发生变化,这会影响到系统的正常工作。方案二:采用AC-DC的方式为系统供电,该方式是将交流电变为所需的直流电压,它需要有相应的变压器、整流电路、滤波电路和稳压电路等,该方案电路复杂,费用较高、对于这样一个

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

7、温度传感器的优异性能,且足够满足该系统的要求,故采用方案二。2.2.3 控制模块方案一:采用MCS-51系列单片机。传统的51 单片机具有价格低廉,使用简单等特点,但其运算速度低,功能单一,RAM、ROM空间小等缺点。 方案二:采用AT 89C52单片机单片机作为控制模块。具有丰富的资源:RAM,ROM空间大、超强抗干扰、超低功耗、可送 STC-ISP 下载编程器、指令周期短、低电压、易于编写和调试等优点。这些特点极大地提高了开发效率。鉴于AT89C52单片机价格便宜,功能齐全等特点,本系统采用AT89C52单片机为控制器。2.2.4 显示模块方案一:采用数码管显示LED显示器工作方式有两种:

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

9、线很明亮的情况下很容易看不清楚。用数码管完全可以满足该系统的要求,故采用方案一。2.2.5 报警模块方案一、采用用LED来显示报警信号,根据颜色的不同可以很清楚地知道是低于最低极限温度还是高于最高极限温度的情况,但是它需要人在现场。方案二、采用蜂鸣器报警,它的优点是当事人不必在现场,可以不受空间物体的阻碍作用而将报警信号传递给用户,但是至于是上述两种中的哪种情况不能很清楚的知道。根据两种方案的比较发现,二者具有互补的作用,所以选择方案一和方案二来共同实现报警功能。2.2.6 按键模块方案一、用键盘作为人机交互的接口。方案二、用独立按键来实现人机交互。根据系统的要求可知,只需三个键即可满足要求,

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

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

12、单片机最小系统通常有时钟电路和复位电路,时钟电路的晶振选择12MHz的频率,复位电路选用手动复位电路,因选用单片机内部的ROM存储器,所以EA引脚接高电平。其电路如图2所示。图2 单片机最小系统3.2 传感检测电路DS18B20温度传感器只有三个引脚,其中GND接地,DQ数据输入输出引脚经电阻上拉后接单片机P3.7引脚,VDD接外部电源。其电路如下图3所示。P3.7AT89C52VCCDS18B20GND DQ VDD5.1KK图3 传感器电路图3.3 显示模块显示部分用两个4位的数码管显示,位选是通过74LS138译码器来实现的,译码器的输入端A、B、C接单片机P2.2、P2.3、P2.4三

13、个端口,其数据输出引脚接数码管的位选引脚,因译码器输出的是低电平有效,故选用的数码管是共阴极的,段选通过74HC573锁存器来驱动,锁存器经上拉电阻后与单片机的P0口相连,锁存器的输出端接数码管的段选引脚,但是不能直接相接,必须串联上限流电阻,流入数码管的电流可以是20mA左右,其压降在2点几伏,接上100的电阻即可。其电路如下图4所示。图4 显示电路图3.4 报警模块报警电路有蜂鸣器电路和LED发光二极管电路两个不部分,蜂鸣器采用三极管来驱动,为了限制其流过电路,给它串上一个100的电阻,发光二极管直接接单片机的,同样需串上一个100的限流电阻来保护二极管。其电路如下图5所示。 图5 报警电

14、路图3.5 按键模块按钮的一端接地,当按下时,单片机相应的引脚被拉低,于是可以通过程序查询的方式来判断是否有哪一个按键按下,实现其功能,其电路简单,不单独画出。3.6 总 电 路3.6.1 绘图软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真

15、软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。3.6.2 电路原理图图6 系统电路原理图3.6.3 电路PCB图在用Proteus绘制电路板时,采用的是自动布局和手动调整,布线采用的是手动布线,手动布线时应注意电路布布线的规则,具体内容如下。1.电源线和地线的布线规则如下。· 在电源、地线之间加上去耦电容。· 尽量加宽电源线、地线宽度,最好是地线比电源线宽。· 数字电路的pcb可用宽的地导线组成一个回路,即构成一个地

16、网来使用,模拟电路的地不能这样使用。· 用大面积铜层作地线,在印制板上把没被用上的地方都与地相连接作为地线用,或是做成多层板,电源和地线各占用一层。2.PCB要合理分区,单片机系统通常可分三区,即模拟电路区(怕干扰),数字电路区(即怕干扰、又产生干扰),功率驱动区(干扰源)。3.时钟振荡电路、特殊高速逻辑电路部分用地线圈起来。让周围电场趋近于零。4.IO驱动器件、功率放大器件尽量靠近印制板的边,靠近引出接插件。5.使用45°的折线布线,不要使用90°折线,以减小高频信号的发射。6.单面板、双面板,电源线、地线要尽量粗。信号线的过孔要尽量少。7.关键的线尽量短并要尽

17、量粗,并在两边加上保护地。将敏感信号和噪声场带信号通过一条扁带电缆引出的话,要用地线-信号-地线方式引出。8.石英振荡器下面、噪声敏感器件下面要加大地的面积而不应该走其它信号线。9.任何信号线都不要形成环路,如不可避免,环路应尽量小。图7 系统PCB图4系统软件设计4.1 程序设计思路本系统主要是测量温度、设定极限温度值及其显示和报警,于是设计思路为:首先是系统初始化,然后从传感器中读数、进行数据处理,处理结果存储,如有用户设定极限温度值则将其存储覆盖之前的极限温度值,将处理的结果与设定值比较并决定是否报警,将数据输出给用户。其设计思路框图如图8所示。温 度 获 取数据处理数据存储温度值判断显

18、示报警从传感器读温度值用户设定极限温度值图8 程序设计思路框图4.2 主程序流程图主程序主要完成单片机定时器的初始化,调用温度获取程序,温度显示存储区数据刷新,温度报警判断、温度显示的功能,主程序采用了一个死循环,程序运行的过程中,不断地执行主程序,从而实现显示不断更新。流程图如图9所示。图9 主程序流程图4.3 获取温度程序流程图该程序主要完成从DS18B20传感器获取温度值和人机交互的功能即对极限温度进行设置,此程序是该系统实现温度测量的主要功能块,它同时会调用温度传感器的底层驱动程序,实现将温度传感器中的数据读入到单片机中,问数据处理程序提供原始数据。流程图如图10所示。图10 获取温度

19、程序流程图4.4 报警程序流程图报警程序的控制对象主要是蜂鸣器和红绿灯,根据主程序传给的实参,可以判断是超过上限温度还是低于下限温度,进而执行不同的操作,告诉用户报警状态。超过最高极限温度则蜂鸣器响和红灯亮;低于最小极限温度则蜂鸣器响,同时绿灯亮。流程图如图11所示。图11 报警程序流程图4.5 显示程序流程图显示程序是用来显示当前温度值和极限温度值的,共有八位要显示,采用的是动态扫描方式,从左到右逐位显示,采用一个循环8次的程序,一次将显存数组变量中的数据输出给对应位,这样就可以显示所要显示的内容,程序流程图如图12所示。图12 显示程序流程图4.6 数据处理程序流程图从DS18B20获取的

20、温度值必须进行一定的转换才能得到真正的温度数值,DS18B20 的温度操作是使用16 位,也就是说分辨率是0.0625,将读取到的两字节温度值乘以0.0625即为实际温度值,直接相乘后得到的值将会约去小数部分,但是该系统要求获取0.1的精确度,这样是不合理的,为此,可以用0.625去乘,这得到的温度值扩大了十倍,保留了个分位上的数值,然后在显示的时候在相应位上将点点亮即可。图13 数据处理程序流程图4.7 编程软件简介KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功

21、能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。uVision3提供对多种最新的8051类微处理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等。系统程序代码请见附录C.5总结参考文献1喻宗泉,喻晗,李建民.单片机原理与应用技术M.西安:西安电子科技大学出版社,20062黄智玮.全国大学生电子设计竞赛电路设计M.

22、北京:北京航空航天大学出版社,20063段玉生.电工电子技术与EDA基础M.北京:清华大学出版社,20044胡向东,刘京诚.传感器与检测技术M.北京:机械工业出版社,20105徐国华.电子技能实训M.北京:北京航空航天大学出版社,20076周灵彬,任开杰,张靖武.基于Proteus的电路与PCB设计M.北京:电子工业出版社,20107周润景,张丽娜,刘印群.PROTEUS入门实用教程M.北京:机械工业出版社,20078黄智伟.全国大学生电子设计竞赛常用电路模块制作M.北京:北京航空航天大学出版 社,20069李华,MCU-51系列单片机实用接口技术M.北京:北京航空航天大学出版社, 19931

23、0 张胜全.D18B20数字温度计在微机温度采集系统中的序编制M. 南京:南京大学出版 社,199811 马田华等.可编程单总线数字式温度传感器DS18B2的原理与应用J.电子质量2004,712 于永学.1-Wire总线数字温度传感器DS18B20及应用J.电子产品世界,2003,1213 周晗晓,袁慧梅.单片机系统的印制板设计与抗干扰技术J.电子工艺技术,2004,6附录A 材料清单器件名称单片机温度传感器晶体谐振器12M瓷片电容数目111 2型号AT89C52DS18B20HC-49US HC-49U22P器件名称电解电容电解电容钽电容按钮开关数目1114型号100U/50V1

24、0U/50V0.1u/35vTS0611 -6*6*4.3器件名称碳膜电阻碳膜电阻碳膜电阻蜂鸣器数目19111型号100R/0.5W1K/0.5W10K/0.5WHUT-1203器件名称三极管LEDLED共阴极数码管数目1112型号2N3904REDGREEN0.36寸/四位器件名称接线端子接线端子三端稳压38译码器数目1111型号HB9500-2P KF508 3位L7805CV74LS138器件名称锁存器数目1型号74HC573附录B 单片机引脚分配表P3.7接DS18B20的DQ引脚P1.0-P1.1接红绿灯P1.5接蜂鸣器P2.5-P2.7接按键P0接74HC573D0-D7

25、P2.3-P2.4接74LS138译码器A、B、C端附录C 程序代码头文件18B20.h如下typedef unsigned int uint;typedef unsigned char uchar;extern bit horl; /报警温度最小最大极限值标志,默认最小值extern bit zhf_flag; /正负标志extern uint temperature;/存温度的变量extern void delay(uchar idata us);/ 短延时程序extern void fwei(void);/ 复位程序extern void writebyte(uchar idata wr

26、b);/ 单字节写程序extern uchar readbyte (void) ;/ 单字节读程序extern void read_bytes(uchar idata num);/ 多字节读程序extern void get_temp(void);/ 提取温度值程序extern void ds18b20_temp(void);/DS18B20主控程序extern void shx(void);/ 温度0.5s值刷新一次程序主功能程序代码如下:#include<reg52.h>#include"18b20.h" /* 定义显示字段码表*/ Unsigned cha

27、r code Disp_Tab= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /* 定义引脚程序*/sbit A138=P22;/138译码器引脚sbit B138=P23;sbit C138=P24;sbit fmq=P15;/蜂鸣器引脚sbit redled=P10; /红绿灯引脚sbit greenled=P11;/* 定义变量程序*/uchar display_num8; / 数码管显示数据存储区bit h,l;/定义报警标志uint htemp=60,ltemp=10;/上下限报警温度 /* 初始化程序*/void sys_s

28、tart() TMOD=0X01; TH0 = 0xD8; /10ms初值 TL0 = 0xF0;IE = 0x82;TR0 = 1;/* 延时1ms程序*/void delay1ms(uint j)uint i;for(j;j>0;j-)for(i=120;i>0;i-);/* 报警程序*/void alarm1(void)if(h) redled=0;fmq=1; if(l)greenled=0;fmq=1; delay1ms(10);fmq=0;redled=1;greenled=1;void main()uchar i; sys_start();/初始化while(1)fm

29、q=0;shx(); if(zhf_flag) /负温度值超出范围输出-display_num0=0x40;/百位display_num1=0x40;/十位display_num2=0x40;/个位display_num3=0x40; /小数位else/存正温度值display_num0=Disp_Tabtemperature%10000/1000;/百位display_num1=Disp_Tabtemperature%1000/100;/十位display_num2=Disp_Tabtemperature%100/10;/个位display_num3=Disp_Tabtemperature%

30、10; /小数位if(horl=1)display_num4=0x78; /显示上限温度值display_num5=Disp_Tabhtemp%1000/100;/百位display_num6=Disp_Tabhtemp%100/10; /十位display_num7=Disp_Tabhtemp%10; /个位else /显示下限温度值display_num4=0x71;display_num5=Disp_Tabltemp%1000/100;/百位display_num6=Disp_Tabltemp%100/10; /十位display_num7=Disp_Tabltemp%10; /个位/当

31、前温度与极限温度比较并标识if(temperature>=(htemp*10)h=1;elseh=0;if(temperature<=(ltemp*10)l=1;elsel=0;if(l=1|h=1) alarm1();/* 显示程序* for(i=0;i<8;i+) P0=display_numi;/段点亮if(i=2) P0=P0|0x80;switch(i) /位扫描case 0:A138=0;B138=0;C138=0;break;case 1:A138=1;B138=0;C138=0;break;case 2:A138=0;B138=1;C138=0;break;c

32、ase 3:A138=1;B138=1;C138=0;break;case 4:A138=0;B138=0;C138=1;break;case 5:A138=1;B138=0;C138=1;break;case 6:A138=0;B138=1;C138=1;break;case 7:A138=1;B138=1;C138=1;break;delay1ms(2);DS18B20温度获取程序代码:#include<reg52.h>#include<intrins.h>#define nop() _nop_() /定义空指令typedef unsigned int uint;t

33、ypedef unsigned char uchar;extern uint htemp,ltemp;/报警温度极限值外部变量说明 /* 函数头说明*/void delay(uchar idata us);/ 短延时程序void fwei(void);/复位程序void writebyte(uchar idata wrb);/ 单字节写程序uchar readbyte (void) ;/ 单字节读程序void read_bytes(uchar idata num);/ 多字节读程序void get_temp(void);/ 提取温度值程序void ds18b20_temp(void);/DS1

34、8B20主控程序void shx(void);/ 温度0.5s值刷新一次程序/* 变量定义*/uchar idata dq_read_bytes9;/读取的ds18b20的ram的数据uchar tim;uint temperature=0;/存温度的变量bit horl=0;/报警温度最小最大极限值标志,默认最小值/* 位变量定义*/sbit dq=P37;/定义DS18B20的数据I/O引脚bit ask;/定义应答信号变量bit zhf_flag; /正负标志sbit fun_chse=P27;/进行最大或最小温度功能的切换sbit atdel=P26;/温度减sbit atadd=P25;/温度加/* 短延时程序*/void delay(uchar idata us)while(us-);/* 复位程序*/void fwei(void)dq=1;nop();dq=0;delay(85);/延时513usnop();dq=1;delay(20);/延时123usnop();nop();nop();if(dq=0) /应答判断ask=1;elseask=0;delay(20);nop();nop();dq=1; /* 单字节写程序*/void writebyte(uchar idata wrb)uchar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论