版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.专业.整理.2012届毕业设计(论文)题目温度智能控制系统设计专业班级2008自动化05学号2008500260姓名苗青指导教师述斌教授学院名称电气信息学院2011年5月27日温度智能控制系统设计Intelligenttemperaturecontrolsystemdesign指导教师:述斌教授摘要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。为了更好地推广单片机在实际生活和生产中的应用,本文介绍一种基于单片机AT89C51设计的温度控制系统,以实现系统能自主调节温度的功能。该温度系统采用温度传感器DS1820来获得当前温度,并以数字信号的方式传送给单
2、片机。采集的温度与从4X2矩阵键盘输入的温度值进行比较,并通过液晶显示器LCD显示出来。如果采集温度低于设置温度,系统将通过继电器模块自动控制升温;如果采集温度高于设置温度,系统将通过继电器模块自动控制降温。文中介绍了该控制系统的硬件部分,包括:温度采集电路、温度设置电路、温度显示电路、继电器电路等。文中还着重介绍了软件设计部分。里采用模块化结构,主要模块有:温度采集模块、键盘扫描及按键处理模块、温度显示模块、温度比较模块、继电器控制模块。经实际制作表明该温度控制系统具有体积小、操作灵活、可靠性高、实用、成本低等特点,具有一定的实际意义。关键词:单片机AT89C51;温度控制;温度传感器DS1
3、820;液晶显示器LCDAbstractWiththeelectronicproductsdevelopingtointelligentandminiaturization,singlechiphasbecomethefirstchosencontrollerwhichisusedtodevelopandexploretheelectronicproduct.Inordertopromotesinglechipapplicatinginreallifeandproduction,thepaperwillintroduceatemperaturecontrolsystemwhichisbased
4、onakindofsinglechipAT89C51,anditcanachievethefunctionthatthesystemcanregulatethetemperatureindependently.ThetemperaturesystemadoptsthetemperaturesensorDS1820togetthecurrenttemperature,andtransferittothemicrocontrollerwiththewayofdigitalsignal.Theacquisedtemperaturewillbecomparedwiththetemperaturewhi
5、chisputinby4X2matrixkeyboard,andwillbedisplayedbyliquidcrystaldisplay.Ifcollectedtemperaturebelowthesettemperature,thesystemwillautomaticallycontroltoheatupbytherelaymodules.Ifcollectedtemperaturehigherthanthesettemperature,thesystemwillautomaticallycontroltoreducebytherelaymodules.Thepaperintroduce
6、sthehardwarewhichispartofthecontrolsystem,including:temperatureacquisitioncircuit,temperaturesettingofthecircuit,temperaturedisplaycircuit,relaycircuitandsoon.Thepaperhasalsomainlyintroducedthedesignofsoftware.Hereusemodularconstruction,themainmodule:temperatureacquisitionmodule,keyboardscanandkeypr
7、ocessingmodule,temperaturedisplaymodule,temperaturecomparisonmodule,relaycontrolmodule.Accordingtomakeitactually,Ifindithasthesecharacteristics:smallvolume,flexibleoperation,highreliability,practical,lowcostandsoon.Ithaspracticalsignificance.Keywords:SingleChipAT89C51;TemperatureControl;TemperatureS
8、ensorDS1820;LiquidCrystalDisplay;第一章绪论1.1选题背景与意义在生产过程中,温度的控制是十分常见的。国已相继出现各种以微机为核心的温度控制系统。这种系统控制精度高、重复性好、自动化程度高。在日常生活中,人们为了拥有一个更舒适的生活环境,往往需要室拥有一个合适的温度,而单片机的准确性高、价格低、功耗低等一系列优点,可结合升温和降温设备,有效的应用到实际生活中。单片机温度控制系统是单片机控制的一项简单应用。近几年来单片机因其独特的,方便,快捷的优势被广泛的应用于各个领域之中。1.2选题简介课题名称:温度智能控制系统设计主要任务:将温度控制在设定的温度值,设定围为0
9、-99度,针对在生产和日常生活中温度智能化控制系统的实现。开发环境:本环境温度控制系统的软件部分是通过KEIL进行编译,Proteus7Professional进行仿真测试,开发板作为实际测试。技术指标:(1)以AT89C52系列单片机为核心部件(2)以数字电路和模拟电路为硬件基础(3)以C语言为软件实现语言功能概述:在该环境温度控制系统中,单片机作为核心部件进行检测控制,增强了设计的通用性,适时性。在该环境温度控制系统中温度检测采用DS18B20温度传感器,它不仅具有较高的精度,而且适用电压宽。同时采用了4X2矩阵扫描键盘输入,显示设备等外围扩展芯片。温度控制分为升温和降温控制,升温控制和降
10、温控制分别采用继电器来控制外部的升温和降温设备。软件部分采用流程图来表示。第二章系统总体设计方案本设计是一个数字温度测量及控制系统,能测柜的温度,并能在超限的情况下进行控制、调整,并报警。保证环境保持在限定的温度中。2.1系统工作原理温度控制系统采用单片机作为微处理单元进行控制。采用温度传感器将温度采集到单片机,采用键盘按键把设定温度的值存入单片机的数据存储器。通过显示器将2者温度显示出来,然后再将两者温度进行比较。如果采集温度比设定温度要低,则加热指示灯亮起,继电器电路中的直流电机开始转动加热;如果采集温度比设定温度要高,则降温指示灯亮起,继电器电路中的风冷器开始运转降温。系统原理图如图2-
11、1所示:图2-1系统总体设计框图根据系统的设计要求,选择DS18B20温度传感器作为采集模块,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示、等功能,选择LCD液晶显示器作为显示模块。2.2单片机简介随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时/计数器和多种1/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机1。2.2.1单片机的特点1.具有优异的性能价格比2集成度高、体积小、可靠性高、控制功能强3.低电压、低功耗2.2.2单片机的选择微处理器是本系统的核心,其性能的好坏直接影响系统的稳定,鉴于本系
12、统为实时控制系统,系统运行时需要进行大量的运算,所以单片机采用INTEL公司的高效微控制器AT89C5112AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术,与工业标准的MCS-5指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51外形及引脚如图2-1-2所示
13、U139-im1A.I-1ru.UJAM-JUHU.1/ALJnXTAL2piJ.d/ALJJI-PO.G/ADGRSTFO.IP2.0.IAS尸2.1P2.2/10PSENALE議P23M11P2.4M12P2.6/14P1P27/15PS.OyRXDP12F3.2/1NF0P13P3.3/1NF1Pl.4P15P3.4/T0P3.5JT1P1BP3BM/RP17P3.7RDAT89C51VI1535io113493图2-2-2AT89C51外形及引脚1主要特性:与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁
14、定128*8位部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片振荡器和时钟电路2管教说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向1/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1
15、口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:
16、P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口如表2-1-3所示:引脚作用P3.0RXD串行输入口P3.1TXD串行输出口P3.2/INT0外部中断0P3.3/INT1外部中断1P3.4T0记时器0外部输入P3.5T1记时器1外部输入P3.6/WR外部数据存储器写选通P3.7/RD外部数据存储器读选通表2-1-3P3口引脚功能表RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的
17、高电平时间ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有
18、效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间为部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3振荡特性/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/E
19、A端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)XTAL1:反向振荡放大器的输入及部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。4芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的容并
20、且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。5串口通讯SBUF数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址一99H。CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送
21、中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfrSBUF=0 x99;当然你也可以用其它的名称。通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。SCON串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器
22、。它的各个位的具体定义为:SM0SM1SM2RENTB8RB8TIRI。SM2在模式2、模式3中为多处理机通信使能位。在模式0中要求该位为0。REM为允许接收位,REM置1时串口允许接收,置0时禁止接收。REM是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0来禁止接收,在子程序结束处加入REM=1再次打开串口接收。大家也可以用上面的实际源码加入REM=0来进行实验。RB8接收数据位8,在模式2和3是已接收数据的第9位。该位可能
23、是奇偶位,地址/数据标识位。在模式0中,RB8为保留位没有被使用。在模式1中,当SM2=0,RB8是已接收数据的停止位。TI发送中断标识位。在模式0,发送完第8位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI置位后,申请中断,CPU响应中断后,发送下一帧数据。在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。RI接收中断标识位。在模式0,接收第8位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求
24、CPU取走数据。但在模式1中,SM2=1时,当未收到有效的停止位,则不会对RI置位。同样RI也必须要靠软件清除。常用的串口模式1是传输10个位的,1位起始位为0,8位数据位,低位在先,1位停止位为1。它的波特率是可变的,其速率是取决于定时器1或定时器2的定时值(溢出速率)AT89C51和AT89C2051等51系列芯片只有两个定时器,定时器0和定时器1,而定时器2是89C52系列芯片才有的。6中断系统8051单片机的中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中
25、断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。5个中断源的符号、名称及产生的条件如下:INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。T0:定时器/计数器0中断,由T0计满回零引起。T1:定时器/计数器l中断,由T1计满回零引起。TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。第三章硬件模块3.1温度采集模块温度采集模块硬件图如图3-1所示-CQ-:-a-WAL1murst:厂打P1DP1.1-Pli-P1JP14-P15-P1J&PITP3DAD0Pl.tWDIK12AD2KlftD3
26、RWUHPClSftDSrajQADCpa.moT卩2W畑卩2W9P22ft1DP22fl11P2.WM2P2Sfl13P2JWHP2.T.i5P3HRDP3.1ID.p?-2.iNmpintTP34/TOP35H1F3.&ytRP3J/ECT37g11132221222321莹26273SID11-IS-OLEOL1OL2013OUOL5曲;::ORMB-OB:D-OINTBft-HLED-lJ-o&io-TOH2&LCDRG-TLCDRWtlcden-7刚占.H;T:J4LUIT图3-1温度采集模块DS18B20简介传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40C至90C测
27、量围,但热敏电阻可靠性差,测量温度准确率低,对小于1C的温度信号不适合,还得经过专门接口电路转换成数字信号才能由微处理器进行处理5DS18B20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度。同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这就缩短开发的周期。DS18B20的特点采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。单总
28、线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络。测量温度围宽,测量精度高。DS18B20的测量围为-55C+125C;在-10+85C围,精度为0.5C。在使用中不需要任何外围元器件即可实现测温。多点组网功能。多个DS18B20可以并联在惟一的三线上,实现多点测温。供电方式灵活。DS18B20可以通过部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外电源,从而使系统结构更趋简单,可靠性更高。测量参数可配置。DS18B20的测量分辨率可通过程序设定912位。负压特性。电源极性接反时,温度计不会因发热而烧毁,但
29、不能正常工作。掉电保护功能。DS18B20部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值9。DS18B20的引脚介绍DS18B20实物图与管脚图如图3-1-3所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端,电源供电3.05.5V(寄生电源接线方式时接地)。DALLASDSlflBZfl3.1.4DS18B20DS18B20的图3-1匸3DS18部结构和原一口图3-1-4所示20度传感器、非挥发的结构温度报警触发器tH组成:6匚器。光实物图和管脚图NC主要由四部分和TL、配置寄彳NC1位光刻ROM、温刻ROM中的64位的地址痛列码。64位光接
30、着的48位是序列号是出厂前开始8位(地址:刻ROM的排列口号,光刻好的,它可以看作是该DS18B20:28H)是产品类型标该DS18B20自身的序列号,并且每个DS18B20的序列号都不相同,因此它可以看作是该DS18B20的地址序列码;最后8位则是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。由于每一个DS18B20的ROM数据都各不相同,因此微控制器就可以通过单总线对多个DS18B20进行寻址,从而实现一根总线上挂接多个DS18B20的目的10。图3-1-4DS18B20部结构图64位ROM的位结构如表3-1-5所示。开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有
31、48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限数据。8位检验CRC48位序列号8位工厂代码(10H)MSBLSBMSBLSBMSBLSB图3-1-564位ROM的位结构图DS18B20温度传感器的部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。高速暂存RAM的结构为9字节的存储器,结构如图3-1-7所示。前2字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,其容用于确定温度值的数字转换分辨率,DS1
32、8B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图3-1-6所示,其中,低5位一直为1;TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率。R1R0分辨率/位温度最大转换时间/ms00993.750110187.510113751112750图3-1-6DS18B20分辨率的定义和规定TMR1R0111111图3-1-7DS18B20配置寄存器由表可见,DS18B20温度转换的时间比较长,而且设置的分辨率越高,所需温度数据转换时间就越长。因此
33、,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前面8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。单片机可以通过单线接口读出该数据11。读数据时,低位在先,高位在后,数据格式以0.0625C/LSB形式表示。温度值格式如图3-1-8所示:232221202-12-22-32-4SSSSS262524图3-1-8配置寄存器DS18B20测温原理如图3-1-9所示。图中低温度系数
34、晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在一55C所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图3-1-9DS18B20测温原理
35、图3.1.5DS18B20使用中注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:(1)每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500us,然后释放,DS18B20收到信号后等待1660us左右,后发出60240us的存在低脉冲,主CPU收到此信号表示复位成功。(所有的读写时序至少需要60us,且每个独立的时序之间至少需要1us的恢复时间。在写时序时,主机将在下拉低总线15us之释放总线,并向单总线器
36、件写1;若主机拉低总线后能保持至少60us的低电平,则向单总线器件写0。单总线仅在主机发出读写时序时才向主机传送数据,所以,当主机向单总线器件发出读数据指令后,必须马上产生读时序,以便单总线器件能传输数据。)(2)在写数据时,写0时单总线至少被拉低60us,写1时,15us就得释放总线。转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。较小的硬件开销需要相对复杂的软件进行补偿,由于DS
37、1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线
38、带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予重视1
39、2。3.2显示模块显示模块采用LCD液晶显示器来完成显示功能。液晶显示器,或称LCD(LiquidCrystalDisplay),为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗很低,因此倍受工程师青睐。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管组成画面。LCD与LED比有以下优点:1、造价比LED低廉;2、制造工艺比LED简单;3、技术臻于成熟;4、维修或更换发光件非常简单,价格相对较低;5、省电,不产生高温;6、低辐射,益健康,画面柔和,不伤眼。显示模块硬件电路图如图3-2所示8C2isi2UhzcTE-rTh;7rtL17r
40、TAL2RffTpinpi.iP1JPUP1.4PISFDWPvDdFn.lJHDIFD.UW*FQ&WSPDMD5pn.iAorF2BWJF2JA&帕HRTEl肚却也312.5-11P2JJA.15P3E工口PZLVTKnP3i?fiUP371MTIPJJJTIPISLURFJT/ffF图3-2显示模块3.3键盘模块本论文采用4X4的矩阵按键,实现对温度的设定。如图3-4所示P1JP1.IPUA1JKTALIFnDftrcHltftCn汕丽HDTTAL2tUsUKrAFEim:eiruRSFFI1F畑TA1.LP1J?P2-LM*吃企芒PZW13PZW14P2TJP.H-R3JM1HDP3.
41、liDJD叽TUF3IW1旳门朮7图3-3键盘模块图中,按键1控制温度数值的加法,按一下加1;按键2控制温度数值的减法,按一下减1;按键5控制LCD显示的光标移动,按一下向左移一位;按键6也控制LCD显示的光标移动,按一下向右移一位。由此来实现对温度的设定。3.4继电器模块如图3-4所示,继电器模块有2个开关,2个发光二级管组成。当采集温度低于设置温度时,二极管D3管发光,提示温度过低,开关RL1闭合,电直流电机开始转动加热;当采集温度高于设置温度时,二极管D4管发光,提示温度过第四章软件设计本系统软件主要由主流程、功能子程序组成。采用主程序调用功能子程序,子程序尽可能少的调用其它子程序,以保
42、证系统的稳定运行。4.1主程序主程序由初始化,温度采集,温度显示,温度设定和继电器子程序组成,为系统软件的主干部分,其流程图如图4-1所示7图4-1主程序流程图4.2温度采集子程序温度采集子程序主要负责驱动外部的温度传感器DS18B20进行工作,通过串口通信方式向DS18B20写入ROM命令,并读取当前温度值,将读取的数据存放在26H-2EH存储单元,其中26H单元存放温度值的低位,27H单元存放温度值的高位,程序流程图如图4-2所示。图4-2温度采集子程序流程图4.3温度显示子程序在温度控制系统中采用了LCD液晶显示器的左4位来显示采集温度,右4位显示键盘设定温度,这样便于两者进行比较。流程
43、图如图4-3所示图4-3温度显示子程序流程图4.4键盘子程序这里主要判断键盘是否按下以及去抖。流程图如图4-4所示图4-4键盘子程序流程图4.5温度比较子程序温度比较子程序的任务是将采集温度和设置温度两者进行比较。如果采集温度比设定温度要低,则加热指示灯D3亮起,继电器电路中的直流电机开始转动加热;如果采集温度比设定温度要高,则指示灯D4亮起,继电器电路中的风冷器开始运转降温。温度比较子程序流程图如图4-5所示图4-5温度比较子程序流程图4.6继电器子程序当采集温度低于设置温度时,二极管D3管发光,提示温度过低,开关RL1闭合,电直流电机开始转动加热;当采集温度高于设置温度时,二极管D4管发光
44、,提示温度过高,开关RL2闭合,风冷器开始转动降温。继电器流程图比较简单,这里就不给出。第五章仿真结果与结论分析5.1仿真结果通过结合硬件电路以及程序,在开发板上实现了仿真,仿真结果与理论较一致。仿真结果如图5-1和图5-2所示。在图5-1中,LCD液晶显示器左上角显示的是DS1820采集的室温度,在右下角显示的是由图右下方4X2的黑色按键设置的温度。K5表示温度加1,K6表示温度减1,K7表示光标左移,K8表示光标右移。采集温度显示的是28C,而设置的是20C,小于采集温度。这时指示灯D1亮起,电机开始工作加热。在图5-2中,LCD液晶显示器左上角显示的是DS1820采集的室温度,在右下角依
45、然显示的是由图右下方4X2的黑色按键设置的温度。采集温度显示的是28C,而设置温度是40C。这时指示灯D4亮起,电机开始工作降温。图5-1温度过低图5-2温度过高5.1结论分析本系统的核心技术表现在温度采集、4X2矩阵键盘输入和LCD显示部分,其中温度采集的硬件部分使用温度传感器DS18B20,通过软件控制与DS18B20的串口通讯来进行温度采集;4X2矩阵键盘输入采用键码的扫描来实现;LCD则通过数据手册来对其进行位设置。为了实现这一系列功能我主动与指导老师交流,并且查阅了大量相关的书籍,在此过程中进一步锻炼了自己思考问题与解决问题的能力,巩固并提高了自己的单片机、数字电路、模拟电路等相关知
46、识。该系统实现的最终功能是控制外界温度,使温度恒定在一定的围,统所能测量温度的围在0-99度之间,能自动的将采集温度与设置温度进行比较,自动的控制温度的升高和降低,十分的便利可靠,而且所需成本很低。但如果温度围过大,则该系统就不适用了,这也是论文需要完善的地方。致谢在论文完成之际,回顾大学的成长道路,我在学业和生活上得到了众多老师、同学和朋友们的热心帮助和大力支持。在此,我要向你们表示我最诚挚的谢意!本论文是在述斌教授的悉心指导下完成的,在此我首先对教授表示诚挚的谢意。在我的整个学习阶段,无论在专业学习,还是在课题研究和论文撰写上,教授都给予了极大的关心、指导和鼓励。教授求真务实的治学精神、渊
47、博的知识、丰富的实践经验、勇于开拓的科学精神和平易近人的态度,是我终身难忘,并将深深影响我以后的工作和学习,再次感谢教授对我不倦的栽培!在毕业设计期间,教研组的所有老师都给予我非常大的关心和指导,感谢你们。感谢轩同学及其他大学阶段认识的同学,他们在我课题完成过程中给予了极大的帮助和支持。衷心感谢我的父母,是他们在不断鼓励我,安慰我,使我能顺利的完成毕业论文。最后感谢所有对我有过帮助在我人生中知遇的许许多多匆匆过客,愿他们能心想事成!参考文献秦实宏,徐春辉.MCS-51单片机原理及应用M:华中科技大学,2010.明荧.8051单片机课程设计实训教材M北京:清华大学出版,2004.凌玉华.单片机原
48、理与应用系统设计M:中南大学,2006.军.检测技术及仪表M.北京:中国轻工业,2002.栾桂东,金欢阳.传感器及其应用M:电子科技大学,2002.康华光.电子技术基础模拟部分(第四版)M.北京:高等教育,1999.谭浩强.C程序设计(第三版)M.北京:清华大学.2005-7-3.侯玉宝.基于Proteus的51系列单片机设计与仿真M.电子工业.2008鸣,车立新,兴梧,煜.温度传感器DS18B20的特性及程序设计方法J.电测与仪表,2001,(10)周月霞,传友.DS18B20硬件连接及软件编程J.传感器世界,2001,(12)涛.DS18B20芯片与单片微控制器的接口设计与应用J.煤炭科技
49、.2002,(03).跃东.DS18B20集成温度传感器原理及其应用J.工程科技学院学报,2002(04).淑荣,丁录军基于单片机控制的温度智能控制系统J.微计算机信息,2002,(12)MCS-51FamilyofSingleChipMicrocomputerUsersManualJ.1990-3-9.ZhangChunzhiFengHaiming.DesignofMicro-controllersControlSystemofElectricRefrigeratorJ.JournalofBeijingVocational&TechnicalInstituteofIndustry.2002,
50、(03).NordicVLSIASAInc.nRF905DatasheetJ.rev1-22005-1-22附录1系统硬件电路图C;DQCum.et.?TandSettirrnsAdministraro/A1:XDSN”AvyziOp-icOP1TLCD11M电CHI?:JTE:.l.-L.i.-uR5TWJLFWIPJMIFtllPflmvrF11W4ms-wms-wFuiprr4flY山L-lBWLlIflfL1!FFFFF-O-OFPT-:!-*A?.|.P2OK代踽e吃肿11F2-.4*ifPfJ6*i3PfJ6*i+憎和ERDflXDHVDCDMflfflTP3.?flITT和诃na
51、flnrmrW_u_._H_.附录2程序代码#include#includetypedefbitBOOL;typedefunsignedcharBYTE;sbitLCD_RS=P2飞;sbitLCD_RW=P2“5;sbitLCD_EP=P27;sbitK5=P23;sbitK6二P22;sbitK7=P21;sbitK8=P20;sbitmotor二Pl;sbitw=P35;sbitz=P36;intunsigneds10=0 x30,0 x31,0 x32,0 x33,0 x34,0 x35,0 x36,0 x37,0 x38,0 x39;inti;intc;intx;inty;bitK5
52、_flag;bitK6_flag;bitK7_flag;bitK8_flag;bitK5_stage;bitK6_stage;bitK7_stage;bitK8_stage;externvoidGetTemp();externunsignedintTemperature;unsignedlongLcdOut5,LedNumVal;voidsystem_Ini()TMOD|=0 x11;TH1=0 xD8;/10TL1=0 xF0;IE=0 x8A;TR1=1;voiddelay(intms)/延时子程序inti;while(ms-)for(i=0;i250;i+)_nop_();_nop_()
53、;_nop_();_nop_();voidkey5()if(K5_flag=1)if(K5=0)delay(1);if(K5=0)K5_flag=0;K5_stage=0;if(K5=1)K5_flag=1;voidkey6()if(K6_flag=1)if(K6=0)delay(1);if(K6=0)K6_flag=0;K6_stage=0;if(K6=1)K6_flag=1;voidkey7()if(K7_flag=1)if(K7=0)delay(1);if(K7=0)K7_flag=0;K7_stage=0;if(K7=1)K7_flag=1;voidkey8()if(K8_flag=1
54、)if(K8=0)delay(1);if(K8=0)K8_flag=0;K8_stage=0;if(K8=1)K8_flag=1;BOOLlcd_bz()/测试LCD忙碌状态BOOLresult;LCD_RS=0;LCD_RW=1;LCD_EP=1;_nop_();_nop_();_nop_();_nop_();result=(BOOL)(P0&0 x80);LCD_EP=0;returnresult;/写入指令数据到LCDlcd_wcmd(BYTEcmd)while(lcd_bz();LCD_RS=0;LCD_RW=0;LCD_EP=0;_nop_();_nop_();P0=cmd;_nop
55、_();_nop_();_nop_();_nop_();LCD_EP=1;_nop_();_nop_();_nop_();_nop_();LCD_EP=0;lcd_pos(BYTEpos)/设定显示位置lcd_wcmd(pos|0 x80);/写入字符显示数据到LCDlcd_wdat(BYTEdat)while(lcd_bz();LCD_RS=1;LCD_RW=0;LCD_EP=0;P0=dat;_nop_();_nop_();_nop_();_nop_();LCD_EP=1;_nop_();_nop_();_nop_();_nop_();LCD_EP=0;lcd_init()lcd_wcmd
56、(0 x38);delay(1);lcd_wcmd(0 x0E);delay(1);/LCD初始化设定/16*2显示,5*7点阵,8位数据/显示开,关光标/lcd_wcmd(0 x06);delay(1);lcd_wcmd(0 x01);delay(1);/移动光标/清除LCD的显示容main()charj;system_Ini();lcd_init();/初始化LCDdelay(10);c=0 x4A;lcd_pos(c);/设置显示位置为第一行的第1个字符j=0;K5_flag=1;K5_stage=1;K6_flag=1;K6_stage=1;K7_flag=1;K7_stage=1;K
57、8_flag=1;K8_stage=1;lcd_wdat(sj);while(1)key5();key6();key7();key8();GetTemp();LcdOut0=Temperature%10000/1000+0 x30;LcdOut1=Temperature%1000/100+0 x30;LcdOut2=Temperature%100/10+0 x30;/十位LcdOut3=Temperature%10+0 x30;/个位lcd_wcmd(0 x80);for(i=0;i9)j=0;K5_stage=1;lcd_wdat(sj);lcd_pos(c);if(c=0 x4B)x=x/
58、10;x=x*10;x=x+j;if(c=0 x4A)x=x%10;x=x+j*10;if(K6_stage=0)lcd_pos(c);j-;if(j0 x4B)c=0X4B;K7_stage=1;lcd_pos(c);if(K8_stage=0)c-;if(cTemperature)w=0;z=1;motor=1;elsew=1;z=0;motor=0;#include#include#defineucharunsignedchar#defineuintunsignedintsbitD18B20二P37;/18b20的引脚定义sbitrs=P24;/1602引脚定义sbitrw=P25;sb
59、ite=P26;#defineNOP()_nop_()/*定义空指令*/#define_Nop()_nop_()/*定义空指令*/voidTempDelay(ucharus);/18b20的函数声明voidInit18b20(void);voidWriteByte(ucharwr);/单字节写入voidread_bytes(ucharj);ucharCRC(ucharj);voidGemTemp(void);voidTemperatuerResult(void);voiddelay(uchara);/1602分函数声明voidlcd_mang();voidwrite_lcd1602(uchar
60、cmd,uchari);voidini_lcd1602();bitflag;uintTemperature;/用来存放读出温度后的值uchartemp_buff9;/存储读取的字节,readscratchpad为9字节,readromID为8字节uchar*p,TIM;/*Function:延时处理*parameter:*Return:*Modify:*/voidTempDelay(ucharus)while(us-);/*Function:18B20初始化*parameter:*Return:*Modify:*/voidInit18b20(void)D18B20=1;_nop_();D18B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车客运站营运客车安全例行检查规范培训
- 2026安检培训面试题及答案解析
- 电气设备到货验收制度培训
- 腕关节炎的全面护理策略(科室内部业务学习专用)
- 塔机司机劳务外包合同
- 网约车公司外包合同
- 四川省德阳市旌阳区2025-2026学年七年级上学期语文期末试卷(含答案)
- 宜宾《西式面点师制作》岗位冲刺押题卷
- 2026届高考语文作文预测6篇
- 《中小企业内部控制与风险管理》AB卷期末试卷及答案
- 2026版《特种作业目录》深度解读
- 2026重庆市涪陵区人民政府龙桥街道办事处选聘本土人才2人笔试参考题库及答案解析
- 炎性肠病患者饮食指南
- 2026年“安全生产月活动”《安全知识》培训考试题库及答案
- 2026年中招科技特长测试题及答案
- 浙江名校新高考研究联盟(Z20+名校联盟)2026届高三第三次学情诊断数学试卷(含答案)
- 总体取值规律的估计课件(二)2025-2026学年高一下学期数学人教A版必修第二册
- 香港雇佣合同范本
- 管道试压与严密性检测方案
- 2026春季学期国开机电专科《可编程控制器应用实训》一平台在线形考形成任务1至6答案
- TCHNRISC耐火材料单位产品能源消耗限额
评论
0/150
提交评论