基于单片机的多路温度测控系统设计-毕业论文_第1页
基于单片机的多路温度测控系统设计-毕业论文_第2页
基于单片机的多路温度测控系统设计-毕业论文_第3页
基于单片机的多路温度测控系统设计-毕业论文_第4页
基于单片机的多路温度测控系统设计-毕业论文_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的多路温度测控系统设计毕业论文基于单片机的多路温度测控系统设计摘要随着社会的发展,温度的测量及控制变得越来越重要,温度是生产过程和科学实验中普遍而且重要的物理参数。本文利用单片机结合传感器技术而开发设计了这一多路温度监控系统。本文详细地讲述了基于AT89S52单片机和温度传感器DS18B20的温度监控系统的设计方案与软硬件实现方案。温度采集采用数字温度传感器DS18B20采集环境温度,采集到的温度通过LCD1602液晶显示器显示温度数据,数据显示精度达到0.1?,通过按键可以1?的步进改变温度设定值,设置温度的上下限。当温度低于设定的下限温度或者高于设定的上限温度时蜂鸣器发声和LED发光报警。本文设计出了系统总体框架,电路图及程序,经过调试并在硬件平台上实现了所设计的功能。关键词单片机多路温度测量温度控制DS18B20温度传感器temperaturedetectingsystemdesignBasedonMCUWiththesociety’sdevelopment,controlandmeasuringtemperatureisbecomingAbstractmoreandmoreimportantastemperatureisangeneralandsignalphysicalparameter.Thisarticleexploitsanddesignsatemperaturemonitoringsystemthroughthetechnologyofcombinedwithsensor.Itdescribesthedesign&achievingschemeoftemperaturemonitoringsystembasingonAT89S52andtemperaturesensorDS18B20.devicetakesuseofdigitaltemperaturesensorDS18B20.ThemainfromshowsthefigurethroughLCD1602,andchange?thesetvalueoftemperatureby1viakeytosetthebound.Whentheactualtemperaturevalueislowerthanthelowerlimitorhigherthantheupperlimit,buzzersoundswithLEDflashes.Theessaygivesageneralfameworkofthesystem,circuitdiagramandprocedure,andafterdebuggingitachievesalldesignedfunctionsonhardwareplatform.KeywordsMCU,temperaturemonitoringsystem,temperaturedetection,temperaturesensorDS18B20,目录1引言...................................................................................................................................52概述.................................................................................................................................62(1课题背景与研究意义..............................................62(2系统设计要求....................................................62(3系统设计方案....................................................72.3.1系统设计方案论证............................................72.3.2系统设计方案硬件实现框图....................................73系统硬件电路设计.............................................................................................................93(1系统元器件选型及参数介绍........................................93.1.1系统单片机选型..............................................93.1.2系统温度传感器选型与介绍...................................103.1.3系统显示器的选型与介绍.....................................123(2系统硬件电路分析................................................133.2.1系统单片机主控电路分析.....................................133.2.2系统温度采集部分电路分析...................................153.2.3系统显示部分电路分析.......................................153.2.4系统报警提示部分电路分析...................................163(3系统硬件电路绘制与PCB线路板制作................................183.3.1Protel99SE软件介绍........................................183.3.2系统原理图绘制与印刷线路板制作.............................184系统软件设计分析...........................................................................................................214(1系统软件编程环境介绍............................................214(2系统软件实现功能要求............................................214(3系统主程序流程图................................................224(4系统温度采集的实现..............................................234.4.1DS18B20初始化时序.........................................234.4.2DS18B20写时序..............................................244.4.3DS18B20读时序..............................................244(5系统液晶显示部分的实现..........................................255系统的制作安装于调试................................................................................................275.1实物电路的绘制与PCB板的制作......................................275.2实物元件的安装与焊接..............................................28结论.................................................................................................................................29致谢.................................................................................................................................30参考文献........................................................................................................................31引言微电子技术、自动控制技术与计算机技术的发展将人类社会带入了一个电子信息世界。各种电子控制系统应用于生活的每一个角落。温度的测量与控制已经渗透到了工农业生产及人们的日常生活中,工业上锅炉加热、水温控制、烤炉温度控制等诸多场合对温度的测量与控制要求越来越多。农业上仓库温度监控、花房温度检测、孵化室温度控制等方面对温度的自动控制的要求越来越高,传统的以人工来测温及调节温控设备已经不能满足人们的要求。采用单片机及传感技术实现对温度测量与控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高控制效率、节约劳动力。因此,如何很好的实现温度自动测量与控制是当前摆在科技工作者面前亟待解决的问题。随着各式各样的传感器的出现,传感技术的应用也逐渐成熟,伴随着传感器价格的逐步降低,其应用领域越来越广泛,从航天科技到工业控制再到农业生产,传感器的应用水平已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。当前传感器的被测信号来自于各个应用领域,在诸多领域中温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用范围之广我们已经有目共睹,其技术革新及成本节俭同样是技术工作者不断攻克的难题。本着节约设计成本及合理应用温度传感器实现温度测量、温度调节与控制、报警控制等功能,本文利用单片机结合传感器技术而开发设计了多路温度测控系统。文中传感器理论与单片机实际应用有机结合,详细地讲述了基于单片机AT89S52和温度传感器DS18B20的温度控制系统的设计方案与软硬件实现方案。系统包括4路数据采集模块、电源系统模块、单片机控制模块、人机交互液晶显示模块、温度设置模块、输出控制模块及报警电路七个部分组成。文中对每个部分功能、实现过程作了详细介绍。本设计应用性比较强,系统稍微改装便可作为生物培养液温度监控系统,可以做热水器温度调节系统、实验室温度监控系统等等。设计后的系统具有操作方便,控制灵活等优点。2概述2(1课题背景与研究意义随着科技的发展及生活水平的提高,人们对环境参数的要求也越来越高,温度做为环境参数的一个重要因素,从人们对生活环境的要求,家用空调、电冰箱、烤箱等温度参数的控制极大的影响着人们的生活环境,正是有了这些温度测量及控制设备,人们的生活水平才能得到逐步的提高;从工农业生产来看,现代温室大棚、粮仓、工业恒温控制箱等对温度参数的要求至关重要,因此对温度的精确测量及温度的精确控制是使得工农业生产顺利进行的先决条件。在工业生产过程中为了高效地进行生产,简单的温度测量已经不能满足日益高效的生产节拍,随着科技的进步,智能控制已经得到了广泛的应用,如何把温度的测量与智能控制相结合已经成为大家关注的焦点。由于现代工艺越来越多的实现智能控制,以降低日益提高的劳动力成本。所以国内外科技工作者无不关注如何更好的使温度测量与自动控制结合一起,本文正是本着这一思想,采用集成温度传感器与单片微处理器像结合实现温度的测量与控制,由于单片微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显。本课题采用数字温度传感器,,,,,,,采集温度,51单片机来对温度数据进行处理显示并自动控制报警及降温装置。采用此方案设计不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、传感器原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。2(2系统设计要求设计并制作一个基于单片机的多路温度监控系统,要求能够对4个测量点的温度进行采集,显示、判断,当温度超出设定的温度范围时系统具备报警提示功能,同时系统应具备自动调节温度功能,当检查点温度超出范围应能通过相应的装置使温度自动回到合理范围内,保证温度在设定的范围内工作,同时系统报警上下限范围可通过人工按键设定。具体设计指标如下:1:四路温度采集与显示,显示界面采用LCD1602液晶,要求同时显示4路温度值,显示精度+/-0.5?。2:温度调节控制部分采用单片机控制四路继电器的通断来实现,继电器控制风扇,用来调节温度,风扇的开与关通过判定温度值自动开关。3:温度超出设定值,系统应具备紧急报警功能,报警模式采用声光报警,具体实现采用蜂鸣器与LED发光二极管实现。4:具备按键设置与调整功能,可通过按键设置报警警戒温度,风扇开启温度点。2(3系统设计方案2.3.1系统设计方案论证结合所学知识,通过查找资料和论证,可通过以下方案来实现课题要求实现的指标,各方案介绍如下所述。方案一:采用纯硬件的闭环控制系统。该系统的优点在于速度较快,但可靠性比较差、控制精度比较低、灵活性小、线路复杂、调试安装都不方便。且要实现题目所有的要求难度较大。方案二:FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,设计成本较高。方案三:采用单片机与高精度数字温度传感器相结合的方式。即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集。这种方案克服了方案一、二的缺点,所以本课题任务是“基于单片机的多路温度测控系统设计”。2.3.2系统设计方案硬件实现框图4路温度的采集采用数字型温度传感器DS18B20,采集到的温度值送单片机进行处理,通过LCD1602液晶进行显示;系统电源电路采用宽电压直流输入,通过集成三端稳压芯片LM7805进行稳压后供单片机及液晶显示模块用电;温度调节控制电路通过继电器控制小风扇的方案实现,使设计简单化,既能验证设计功能又能很好的降低设计成本。系统主控部分采用单片机AT89S52配以外围电路实现。系统硬件实现框图如图2-1所示。4路DS18B2温度传感感器LCD1602液晶温度调节控AT89S52单片机最小系统显示界面制电路按键输入电路系统电源电路图2-13系统硬件电路设计3(1系统元器件选型及参数介绍3.1.1系统单片机选型单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,本课题选择AT89S52作为主控芯片。AT89S52是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S524,,可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52芯片具有以下特性:?指令集和芯片引脚与Intel公司的8051兼容;?4KB片内在系统可编程Flash程序存储器;?时钟频率为0,33MHz;?128字节片内随机读写存储器(RAM);?32个可编程输入/输出引脚;?2个16位定时/计数器;?6个中断源,2级优先级;?全双工串行通信接口;?监视定时器;?2个数据指针。AT89S52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,45,,个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。AT89S52单片机引脚图如图3-1所示:图3-13.1.2系统温度传感器选型与介绍早期常见的温度控制系统多数是模拟电路设计,主要是使用热敏电阻或使用铂电阻,或使用热电偶等,其温度控制的准确度和精确度都不太好。如今,数字技术高速发展,早先的温度控制系统也被基于数字技术的新一代产品所替代。其中温度传感器DS18B20应用非常广泛,它在测温精度、转换时间、传输距离、分辨率等方面有很大的改进。而随着高性能和低成本的单片机的不断发展,新式无线温度控制系统的应用也越来越广泛,它的功能强大,体积小,重量轻,灵活耐用,备受大家青睐。因此,本系统选用的是美国DALLAS半导体公司生产的DS18B20温度传感器。选用该传感器的原因有:?DS18B20与微处理器仅需要一条线即可实现双向通讯,简化连接难度;?无需其他的AD转化器件,降低成本,也减少了硬件制板的费用;?可供使用电压范围大:3.0V到5.5V都可以使用,器件的功耗较低;?测温分辨率高,最高可达0.1258,,度,便于温度精确控制。DS18B20的管脚排列如图3-2所示。图3-2DS18B20高速暂存器共9个存存单元,如表3-1所示:表3-1DS18B20高速暂存器序号寄存器名称作用序号寄存器名称作用0温度低字节以16位补码形式存放4、5保留字节1、21温度高字节以16位补码形式存放6计数器余值2TH/用户字节1存放温度上限7计数器/?3HL/用户字节2存放温度下限8CRC当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。DS18B20有六条控制命令,如表3-2所示:表3-2DS18B20控制命令指令约定代码操作说明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节2复制暂存器RAM中48H把暂存器的TH、TL字节写到E22重新调ERAMB8H把ERAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPUDS18B20的工作流程是:首先对DS18B20进行初始化,然后对ROM进行读写操作。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。3.1.3系统显示器的选型与介绍方案一数码管显示数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。虽然,数码管显示亮度高,体积大,可远距离观看,非常直观,但是只能显示数字和个别英文,不能满足本系统的要求。方案二LCD字符液晶显示采用LCD液晶显示器显示,画面好,抗干扰能力强,可以节省软、硬件资源,功耗低,成本也不高。现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。LCD1602可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个[10]控制端口。工作电压为5V,并且带有字符对比度调节和背光。具体引脚说明如表2-3所示。表3-3LCD1602液晶显示器引脚说明LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。最后综合了多方面因素的考虑采用了方案二,选择LCD1602显示器作为系统的显示界面。3(2系统硬件电路分析3.2.1系统单片机主控电路分析系统单片机主控电路是整个设计方案的核心,温度数据的处理,报警及温度数据的显示控制以及温度调节设备的控制都有该部分控制实现。本系统单片机控制模块电路由单片机AT89S52及晶振电路、复位电路组成,该部分电路如图3-3所示。图3-3系统主控电路由单片机、时钟振荡电路与复位电路组成。AT89S52中有一个构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端,这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C2,C3接在放大器的反馈回路中构成并联振荡电路。对外接电容C2,C3虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度的稳定性。如果使用石英晶体,推荐电容使用30pF士l0pF,如果使用陶瓷谐振器建议选择40pF士l0pF。复位电路采用上电复位与按键复位来实现,S1为复位按键。通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过电阻对电容C1充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。当S1被按下后,电容C1迅速放电,使RST引脚为高电平,从而实现复位。当S1弹起后,电源通过10KΩ的电阻对电容C1重新充电,RST引脚端出现复位正脉冲。在运行中,外界干扰等因素可使单片机7,,的程序陷入死循环状态或跑飞。为摆脱困境,可将单片机复位,以重新启动。3.2.2系统温度采集部分电路分析温度采集部分由DALLAS公司生产的一线式数字温度传感器DS18B20组成。DS18B20是独特的一线接口,CPU只需一根端口线就能与诸多DS18B20通信,简化了分布式温度传感应用,无需外部元件,可用数据总线供电,电压范围为3.0V至5.5V。测量温度范围为-55?至+125?,华氏相当于是-67到257华氏度,-10?至+85?范围内精度为?0.5?。可编程的分辨率为9,12位,对应的可分辨温度分别为0.5?、0.25?、0.125?和0.0625?,可实现高精度测温。本设计采用三引脚PR-35封装的DS18B20,其与单片机接口电路的连接方式如图3-4所示。Vcc接外部+5V电源,GND接地,I/O与单片机的P1.0(T2)引脚相连,同时I/O口通过10K上拉电阻接到+5V。图3-4系统温度采集部分电路3.2.3系统显示部分电路分析显示部分采用LCD1602液晶显示模块,液晶板上排列着若干5×7或5×10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。其与单片机的连接电路如图3-5所示图3-5液晶显示接口电路1脚和2脚分别为LCD1602地和电源引脚,3脚为背光调节引脚,通过1K电位器接地,背光可通过电位器来调节亮度;4脚、5脚、6脚为液晶片选控制引脚,分别连接到单片机的P1.3、P1.4、P1.5端口,7~14脚为数据接口,与单片机的P0口相连实现数据[9]的传输,15、16、脚为液晶的背光控制脚,分别接到电源和地。3.2.3系统报警提示部分电路分析系统报警指示电路由声光报警两种方式实现,声音报警由单片机控制压电式有源蜂鸣器来实现声音的报警指示,蜂鸣器报警部分电路由PNP三极管9012驱动蜂鸣器来实现,单片机IO口控制三极管的基极,当单片机的IO口输出为低电平时,三极管导通,蜂鸣器的正极与电源接通,蜂鸣器通电发出报警声,当单片机IO口输出高电平时,三极管截止,蜂鸣器停止报警。蜂鸣器报警指示电路如图3-6所示。图3-6报警指示电路光源报警由单片机控制LED指示灯来实现,其控制原理为当控制LED的单片机端口赋低电平时,LED点亮,赋高电平时LED熄灭。其应用电路如图3-7所示。图3-7LED报警指示电路电阻R8、R9、R10、R11实现限流作用,保证LED在正常工作电流范围内点亮,避免LED过流烧坏。3.2.4系统按键设置部分电路分析按键设置部分采用独立式按键。K1是4路输出选择按键,K2是上下限温度调节选择键,按下可分别对温度的上下限进行设定,K3为温度值加1按键,K4为温度减1键,它们分别与单片机的P3.4到P3.7口相连。当某一按键按下时,相应的I/O线变为低电平,这样通过键盘上的高低电平来检测有无按键被按下,从而读入相应的数值。按键设置电路如图3-8所示。图3-8系统按键设置电路3(3系统硬件电路绘制与PCB线路板制作3.3.1Protel99SE软件介绍本文在硬件电路的设计过程中,原理图和PCB的绘制采用Protel99SE软件,Protel99SE是应用于各个操作系统下的EDA设计软件,该软件以其简单易操作的优势一直以来备受电子工程师的喜爱,因而也成了很多高校电子相关专业EDA工具的必选课程。3.3.2系统原理图绘制与印刷线路板制作采用Protel99SE软件绘制原理图和PCB的主要步骤如下所述:1.建立系统所需原件库;2.加载所建原件库到工程项目中;3.在原理图页面中放置所需元器件并按照电气性能连接各元件;4.建立原件封装库并加载到工程文件中;5.绘制好电路后进行ERC电气检测,并生成网络表;6.在工程中建立PCB文件,导入生成的网络表;[13]7.按照网络飞线提示绘制PCB,最后完成DRC检测。按照如上步骤最终完成绘制的电路图与PCB线路板图分别如图3-9与3-10所示。图3-9系统原理图图3-10系统PCB印刷线路板图4系统软件设计分析4(1系统软件编程环境介绍系统软件设计采用C语言编程,编译环境为keil。keilc51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,和汇编相比,C在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keilc51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keilc51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。KeilC51可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件,然后分别有C51及A51编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX文件烧入单片机内。软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。4(2系统软件实现功能要求系统软件要实现的功能如下:1、完成4路温度的采集及传感器与单片机之间的数据传输与处理;2、利用LCD液晶显示屏显示4路温度数据和各路温度设定的上下限范围。3、按键调节功能;要软件实现4个按键的调节功能,第一个按键实现温度显示路数的切换;第二个按键是温度上下限的选择按键;第三个按键是温度上升按钮以1?步进增加;第四个按键是温度减小键,每按下一次以1?递减。4、当温度超过设定的温度范围时进行声光报警;当温度低于设定值时LED发光报警同时蜂鸣器鸣笛提示,当温度高于设定值时蜂鸣器鸣笛提示同时继电器打开阀门,风扇控制电路接通,风扇自动打开以及时降低温度,当温度降到设定范围内时阀门自动断开。4(3系统主程序流程图系统主程序完成采集到的温度数据处理及温度值与设定值之间的比较等功能,具体软件实现流程图如图4-1所示。开始系统初始化显示当前路数温度值及设定参数是是否有按键执行按键处理按下,否显示当前路数温度值及设定参数否当前温度是否超出设定范围是是报警提示,输出控制否温度是否回到设定范围,图4-14(4系统温度采集的实现系统温度采集传感器DS18B20工作过程中的协议如下:(1)初始化——(2)ROM操作命令——(3)存储器操作命令——(4)处理数据4.4.1DS18B20初始化时序-2所示。主机总线发送复位脉冲(最短为480μS,最高时间为DS18B20时序如图4960μS的低电平信号),接着再释放总线(置总线为高电平)并进入接收状态。DS18B20在检测到总线的上升沿后等待15—60μS发出器件存在脉冲(低电平持续60—240μS)。初始化程序如下所示:voidDS18b20_reset(void){bitflag=1;while(flag){while(flag){DQ=1;delay(1);DQ=0;delay(50);//550usDQ=1;//delay(6);//66usflag=DQ;//presence="0继续下一步"}delay(45);//延时500usflag=~DQ;}DQ=1;}60-240μS单片机主15-60μS480-960μ动释放S图4-2DS18B20初始化时序图此初始化程序功能为:检测DS18B20是否存在,如存在,将位地址38H置1;如不存在,将位地址38H清零。4.4.2DS18B20写时序单片机写DS18B20的时序如图4-3所示,当主机总线从高拉至低电平时就产生写时间隙,DS18B20在检测到下降沿后15μS时开始采样总线上的电平,所以15μS之内应将所需写的位送到总线上,DS18B20再15—60μS间对总线采样,每写一位总时间必须在60—120μS之间完成。若低电平写入的位是0,高电平写入的位是1,连续写时位间的间隙应大于1μS。程序如下所示:voidwrite_byte(uint8val){uint8i;for(i=0;i<8;i++){DQ=1;_nop_();DQ=0;nops();//4usDQ=val&0x01;//最低位移出delay(6);//66usval>>=1;//右移一位}DQ=1;delay(1);}写0写1,DS18B20在检测到下降沿15μS后采样,采样时间为15-60μDS18B20检测到下1515μSS降沿15μS后采样60-120μS60-120μS图4-3单片机写DS18B20时序图4.4.3DS18B20读时序单片机读DS18B20的时序如图4-4所示,单片机主动产生一个下降沿的启动信号,并维持低电平大于1μS后释放总线,15μS后DS18B20占主动权,DS18B20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60μS内完成。当需要读取下一位时再产生下降沿启动信号。uint8read_byte(void){uint8i,value=0;for(i=0;i<8;i++){DQ=1;_nop_();value>>=1;DQ=0;nops();//4usDQ=1;nops();//4usif(DQ)value|=0x80;delay(6);//66us}DQ=1;return(value);}启动脉冲单片机采样第一位启动脉冲单片机采样第二位T<60μST<60μS图4-4单片机读DS18B20时序图此程序功能为:读取DS18B20A/D转换后的温度值,转换后的二进制存入36H、35H单元,默认为12位转换,低8位存入36H单元,高8位存入35H单元(35H单元的高5位均为符号位,所以判断符号只需判断低12位数据的最高位即可)。1表示为零度以下,0表示零度以上,实际有效位为11位。4(5系统液晶显示部分的实现LCD液晶显示器驱动主要是通过单片机控制液晶读写的时序来实现数据的传递与显示,单片机控制LCD显示器读写时序图如图4-5所示。图4-5单片机控制LCD1602显示数据的程序流程图如图4-6所示。系统上电初始化初始化LCD控制器读LCD1602否判断LCD是否闲,是往LCD1602写数据显示数据图4-65系统的制作安装于调试5.1实物电路的绘制与PCB板的制作把系统的电路原理图设计好以后。下一步工作就是进行实物制作了,而实物制作的第一步就是对电路进行排版布线;虽然PROTEL99SE软件有自动布局布线的功能,但是,我还是选择了手动布线。虽然可能布的不是很漂亮,但是很多问题是只有亲自动手了,才会发现。PCB板制作遇到以下几个方面。1.电路原理图的布局在器件布局的过程中应注意以下几点:(1)一个模块及其附属的一些分离元器件应尽量放到一起;(2)不同的电路模块尽量划分清晰,使得在调试过程中多电路的检查能够一目了然;(3)较容易发热的元器件尽量放到电路的边缘,有利于散热。2.布线PCB布线的好坏对系统性能有直接的影响,在高频电路表现的尤为突出,所以,在进行电路布线时还需注意以下几点:(1)模拟地和数字地应分开接地,避免数字信号和模拟信号会相互干扰;(2)每一根走线,能短则短,不要为了盲目追求少跳线而绕远路,因为线越短电阻越小,干扰也会越小;(3)电源线和地线尽量从电路板的边缘走线,且电源线尽量画的比一般线宽略粗一些;(4)走线在改变方向时应该走45?角或曲线,避免直角的拐角。3.打印与转印打印时要注意油纸不能折叠,打印的设置必须准确,只留下底层的走线和焊盘。而在转印时首先覆铜板要刷洗干净,以免在转印时油墨不能完全的转印;其次,转印机必须预热到机器发出提示音,这表明,转印机已经准备好转印了;第三,转印机的转印速度档位应放在“正常”档位,板子的类型应放在“印刷板”档位。第四,在转印时,注意油纸上的走线图必须能够完整的附在覆铜板上,一块板子最好转印两次,确保把油墨完全的转印到覆铜板上。4.腐蚀将油纸上的电路图转印到覆铜板后,接着就要把多余的铜腐蚀掉。不过在刚转印好的时候,首先应检查是否转印完整,若有断线、走线空心的问题,必须用油墨笔将断线补起来,空心的走线填完整。确保转印工序完成后,就可以将电路板放入FeCl3溶液里进行腐蚀了,俗称“烂板”。如果有条件,可以将腐蚀液加热,再放入电路板,这样能够有效的提高腐蚀的速度。5.打孔腐蚀好的板子,在洗净之后就可以打孔了,打孔时尤其要注意孔的大小不能将焊盘的铜箔完全打掉,否则焊接时,焊盘没有铜箔就无法进行焊接了。最后,打孔完成,用砂纸将毛糙磨平,这样电路图的绘制与PCB板的制作就顺利完成了。5.2实物元件的安装与焊接1.元件在安装时,注意事项如下:1)为避免因元器件发热而减弱铜箔对基板的附着力,并防止元器件的裸露部分同印制导线短路,安装时元器件应离开面板约1,2mm。2)装配时,应该先安装那些需要机械固定元器件,在此装置中如稳压管、中心芯片插座。3)各种元器件的安装,应该使它们的标记(用色码或字符标注的数值,精度等)朝上面或易于是辨认的方向,并注意标记的读书方向一致(从左到右或从上到下)。2.元件在焊接时,应注意以下几个方面:在元器件焊接之前应该先用纱布将电路板打磨一遍,这样可以将铜箔氧化的部分去除掉,以便于焊接;在焊接过程中还要注意焊锡的量要得当,过多可能造成电路短路,过少有可能造成虚焊;元器件焊完后,给发热量大的元器件装上散热片,这用有利于散热增加系统的稳定;最后可以在板子的四个角上安装四个铜柱,一方面可以增加整个结构的美观,另一方面也可以使避免电路板放在导电体上发生短路的危险。通过以上步骤,一个完整的电路硬件部分就制作完成了,这时可以再检查一下是否有元器件漏焊、焊错的情况,以确保电路的正确。最终焊接完成的实物图如图5-1所示。结论本文详细介绍了基于单片机AT89S52的4路温度监控系统的设计方案与软硬件实现。系统包括4路数据采集模块、电源系统模块、单片机控制模块、人机交互液晶显示模块、温度设置模块、输出控制模块及报警电路七个部分组成。文中对每个部分功能、实现过程作了详细介绍。完成了课题既定的任务,达到了预期的目标。系统具有如下特点:1、采用智能温度传感器DS18B20采集温度数据,简化了硬件电路设计,温度采集数据更加精准;2、人机交互界面采用LCD液晶显示界面显示内容丰富无闪烁,蓝色背光更加温和;3、主控部分采用AT89S52单片机设计成本低,设计方案成熟风险低;4、温度调节控制部分采用继电器控制小风扇的方式实现,以此实现温度控制的自行调节同时实现与工业控制的接轨;5、报警提示部分采用声光报警的模式实现,具体采用LED和蜂鸣器的方式实现,设计成本低廉。本系统没有增加外部存储器,设定温度不能保存,断电复位后必须重新设置温度;采用LCD液晶显示方式,显示界面简单易操作。本课题软件和硬件相结合,有相当大的难度,同时也有很大的实用性。在做毕业设计的过程中,我的理论和实践水平都有了较大的提高。在本课题的设计中,我熟练掌握了单片机硬件设计和接口技术,同时对温度传感器的原理及应用有了一定的了解,掌握了各种控制电路及其相关元器件的使用。通过这次毕业设计,我不仅学会如何将所学专业知识运用到实际生活中,还学会如何克服未知的困难,解决难题的方法。由于时间太仓促,经验不足,理论方面也相应的存在不足,加上条件有限,仍存在着一些设计方面的问题,个人技能也有待提高。理论知识还要巩固加强。但是宝贵的实践经验还是对自己的提高有着极大的帮助。致谢四年的本科学习生涯即将结束,在本人做毕业设计中,得到了我的导师的悉心指导和无私帮助。他严谨的治学态度和谦和的为人给我留下了深刻的印象。虽然老师公务繁忙,教学任务重,但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期检查,后期详细设计,实物制作等整个过程中都给予了我悉心的指导。在课题实施阶段,感谢实验室的老师对我的帮助和实验器材、场地的支持。其次要感谢大学四年来所有的授课老师,为我们打下电子专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种种困难,顺利的完成大学学习。还有许许多多给予我学业上鼓励和帮助的师长、朋友,在此无法一一列举,在此也表示忠心地感谢~大学生活的结束,也是我人生新的生活起点,我将谨记老师们的教诲,将自己的所学奉献给社会。参考文献[1]李朝青(单片机原理及接口技术[M](北京:北京航空航天大学出版社,2005([2]康华光(电子技术基础模拟部分(第五版)[M](北京:高等教育出版社,2005([3]阎石(数字电子技术基础(第四版),M,(北京:高等教育出版社,2005([4]白延敏(51单片机典型系统开发实例精讲[M](北京:电子工业出版社,2009([5]张齐,杜群贵.单片机应用系统设计技术[M].北京:电子工业出版社,2007.[6]杨金岩等.8051单片机数据传输接口扩展技术与应用实例[M](北京:人民邮电出版社,2005([7]求是科技(单片机通信技术与工程实践[M](北京:人民邮电出版社,2005.[8]郭永贞主编.数字电子技术[M].西安电子科技大学出版社,2000.[9]李广弟.单片机基础[M].北京:北京航空航天大学出版社,2001.[10]张洪润.电子线路与电子技术[M].清华大学出版社[M],2005.[11]张齐,杜群贵.单片机应用系统设计技术[M].电子工业出版社,2004.[12]张伟(基于8051单片机的无线温控系统设计[J](北京:中国高新技术企业,2010,34(7)([13]孙凯(分布式温室智能控制系统[J](江苏:科学大众,2006,20(4)([14]JulianW.Gamder,IntelligentDataAcquisitionSystemB,2005,4:109-115.[15]XingruiLiuandGuohongGao.TemperatureMonitoringSystemBasedonAT89C51[J].BerlinHeidelberg:Springer-Verlag,2011,105(1):601—605.附录A系统电路图附录B系统源程序#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar//********显示LCD1602******************sbitrs=P2^5;sbitwela=P2^6;sbitlcden=P2^7;sbitS1=P2^0;sbitS2=P2^1;sbitS3=P2^2;sbitS4=P2^3;sbitDQ1=P1^0;//温度传感器sbitDQ2=P1^1;sbitDQ3=P1^2;sbitDQ4=P1^3;sbitLED1=P1^4;//LEDsbitLED2=P1^5;sbitLED3=P1^6;sbitLED4=P1^7;sbitBUZZ=P3^0;//蜂鸣器sbitSW1=P3^4;//控制sbitSW2=P3^5;sbitSW3=P3^6;sbitSW4=P3^7;bitHL_flag;ucharchn;//通道选择//DQ通道ucharDQ1_SET[2];//DQ1上下限设置DQ1_SET[0]下限DQ1_SET[1]上限;ucharDQ2_SET[2];//DQ1上下限设置DQ1_SET[0]下限DQ1_SET[2]上限;ucharDQ3_SET[2];//DQ1上下限设置DQ1_SET[0]下限DQ1_SET[3]上限;ucharDQ4_SET[2];//DQ1上下限设置DQ1_SET[0]下限DQ1_SET[4]上限;ucharchn;//通道选择//--------LCD1602-------------------//--------------温度传感器DS18B20----------------------------ucharng;//负号标志ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0xFF};/*0123456789C无*/ucharcodedf_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};//温度小数位对照表ucharCurrentT=0;//当前读取的温度整数部分ucharTemp_Value[]={0x00,0x00};//从DS18B20读取的温度值ucharDisplay_Digit[]={0,0,0,0};//待显示的各温度数位bitDS18B20_IS_OK=1;//传感器正常//--------------温度传感器DS18B20----------------------------//--------LCD1602-------------------voidDelayMS(uintms)//延时Nms{uchari;while(ms--){for(i=0;i<113;i++);}}//--------LCD1602-------------------voiddelay(uintz)//延时Nms{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom)//1602液晶写指令{rs=0;lcden=0;P0=com;delay(1);lcden=1;delay(1);lcden=0;}voidwrite_date(uchardate)//1602液晶写数据{rs=1;lcden=0;P0=date;delay(1);lcden=1;delay(1);lcden=0;}voidinit_lcd()//初始化液晶,及画面初始化{wela=0;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);}//--------LCD1602-------------------//************************18b20************************//延时voidDelay_18b20(uintx){while(--x);}ucharInit_DS18B20(){ucharstatus;switch(chn){case0:break;case1:{DQ1=1;Delay_18b20(8);//延时DQ1=0;Delay_18b20(90);//延时DQ1=1;Delay_18b20(8);status=DQ1;Delay_18b20(100);DQ1=1;return(status);break;}case2:{DQ2=1;Delay_18b20(8);//延时DQ2=0;Delay_18b20(90);//延时DQ2=1;Delay_18b20(8);status=DQ2;Delay_18b20(100);DQ2=1;return(status);break;}case3:{DQ3=1;Delay_18b20(8);//延时DQ3=0;Delay_18b20(90);//延时DQ3=1;Delay_18b20(8);status=DQ3;Delay_18b20(100);DQ3=1;return(status);break;}case4:{DQ4=1;Delay_18b20(8);//延时DQ4=0;Delay_18b20(90);//延时DQ4=1;Delay_18b20(8);status=DQ4;Delay_18b20(100);DQ4=1;return(status);break;}default:break;}}//读一个字节ucharReadOneByte(){uchari,dat=0;switch(chn){case0:break;case1:{DQ1=1;_nop_();for(i=0;i<8;i++){DQ1=0;dat>>=1;DQ1=1;_nop_();_nop_();if(DQ1)dat|=0X80;Delay_18b20(30);DQ1=1;}return(dat);break;}case2:{DQ2=1;_nop_();for(i=0;i<8;i++){DQ2=0;dat>>=1;DQ2=1;_nop_();_nop_();if(DQ2)dat|=0X80;Delay_18b20(30);DQ2=1;}return(dat);break;}case3:{DQ3=1;_nop_();for(i=0;i<8;i++){DQ3=0;dat>>=1;DQ3=1;_nop_();_nop_();if(DQ3)dat|=0X80;Delay_18b20(30);DQ3=1;}return(dat);break;}case4:{DQ4=1;_nop_();for(i=0;i<8;i++){DQ4=0;dat>>=1;DQ4=1;_nop_();_nop_();if(DQ4)dat|=0X80;Delay_18b20(30);DQ4=1;}return(dat);break;}default:break;}}//写一个字节voidWriteOneByte(uchardat){uchari;switch(chn){case0:break;case1:{for(i=0;i<8;i++){DQ1=0;DQ1=dat&0x01;Delay_18b20(5);DQ1=1;dat>>=1;}}case2:{for(i=0;i<8;i++){DQ2=0;DQ2=dat&0x01;Delay_18b20(5);DQ2=1;dat>>=1;}}case3:{for(i=0;i<8;i++){DQ3=0;DQ3=dat&0x01;Delay_18b20(5);DQ3=1;dat>>=1;}}case4:{for(i=0;i<8;i++){DQ4=0;DQ4=dat&0x01;Delay_18b20(5);DQ4=1;dat>>=1;}}default:break;}}//读温度值voidRead_Temperature(){if(Init_DS18B20()==1)DS18B20_IS_OK=0;else{WriteOneByte(0xcc);//跳过序列号WriteOneByte(0x44);//启动温度转换Init_DS18B20();WriteOneByte(0xcc);//跳过序列号WriteOneByte(0xbe);//读取温度寄存器Temp_Value[0]=ReadOneByte();//温度低8位Temp_Value[1]=ReadOneByte();//温度高8位DS18B20_IS_OK=1;}}//处理温度值voidDisplay_Temperature(){//uchari;uchart=150;//,延时ng=0;//与负值标志if((Temp_Value[1]&0xf8)==0xf8){Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_Value[0]+1;if(Temp_Value[0]==0x00)Temp_Value[1]++;ng=1;}else{ng=0;}Display_Digit[0]=df_Table[Temp_Value[0]&0x0f];//查表得温度小数部分CurrentT=((Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0x07)<<4);//温度整数部分Display_Digit[3]=CurrentT/100;//百Display_Digit[2]=CurrentT%100/10;//十Display_Digit[1]=CurrentT%10;//个write_com(0x80+5);write_date('T');write_date('e');write_date('m');write_date('p');write_date('');if(ng==1){write_date('-');}else{write_date(Display_Digit[3]+'0');}//负温度//正温度write_date(Display_Digit[2]+'0');//十write_date(Display_Digit[1]+'0');//个write_date('.');//点write_date(Display_Digit[0]+'0');//小数位write_date('C');}//************************温度显示************************voidDIS_SET(ucharx,uintd_timer)//显示设置采样时间{ucharbai,shi,ge;bai=d_timer%1000/100;shi=d_timer%100/10;ge=d_timer%10;write_com(0x80+0x40+x);write_date(0x30+bai);write_date(0x30+shi);write_date(0x30+ge);write_date('C');}//***************************************************voidDIS_CHN(ucharadd,uchardate)//显示CHN{ucharbai,shi,ge;bai=date%1000/100;shi=date%100/10;ge=date%10;write_com(0x80+add);write_date('D');write_date('Q');write_date(0x30+date);}voidinit()//定时器初始化{TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//开中断ET0=1;//TR0=0;//BUZZ=1;//关蜂鸣器}voidKEY_SCAN(void)//键盘扫描{if(S1==0)//通道切换{DelayMS(100);chn++;if(chn>4){chn=1;}while(!S1){;}//等待按键释放}if(S2==0)//上限或者下限切换{DelayMS(100);if(S2==0)HL_flag=0下限HL_flag=~HL_flag;//HL_flag=1;上限while(!S2){;}//等待按键释放}if((S3==0)&&(HL_flag==0))//加下限{delay(50);if(S3==0)switch(chn){case0:break;case1:DQ1_SET[0]++;break;//显示设置下限case2:DQ2_SET[0]++;break;//显示设置下限case3:DQ3_SET[0]++;break;//显示设置下限case4:DQ4_SET[0]++;break;//显示设置下限default:break;}}else//加上限{delay(50);if(

温馨提示

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

评论

0/150

提交评论