智能温度控制系统设计说明.docx
《智能温度控制系统设计说明.docx》由会员分享,可在线阅读,更多相关《智能温度控制系统设计说明.docx(61页珍藏版)》请在冰豆网上搜索。
智能温度控制系统设计说明
2012届毕业设计(论文)
题目
温度智能控制系统设计
专 业 班 级
2008自动化05
学 号
2008500260
姓 名
苗青
指导教师
述斌教授
学院名称
电气信息学院
2011年5月27日
温度智能控制系统设计
Intelligenttemperaturecontrolsystemdesign
学生姓名:
苗青
指导教师:
述斌教授
摘要
随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。
为了更好地推广单片机在实际生活和生产中的应用,本文介绍一种基于单片机AT89C51设计的温度控制系统,以实现系统能自主调节温度的功能。
该温度系统采用温度传感器DS1820来获得当前温度,并以数字信号的方式传送给单片机。
采集的温度与从4X2矩阵键盘输入的温度值进行比较,并通过液晶显示器LCD显示出来。
如果采集温度低于设置温度,系统将通过继电器模块自动控制升温;如果采集温度高于设置温度,系统将通过继电器模块自动控制降温。
文中介绍了该控制系统的硬件部分,包括:
温度采集电路、温度设置电路、温度显示电路、继电器电路等。
文中还着重介绍了软件设计部分。
里采用模块化结构,主要模块有:
温度采集模块、键盘扫描及按键处理模块、温度显示模块、温度比较模块、继电器控制模块。
经实际制作表明该温度控制系统具有体积小、操作灵活、可靠性高、实用、成本低等特点,具有一定的实际意义。
关键词:
单片机AT89C51;温度控制;温度传感器DS1820;液晶显示器LCD
Abstract
Withtheelectronicproductsdevelopingtointelligentandminiaturization,singlechiphasbecomethefirstchosencontrollerwhichisusedtodevelopandexploretheelectronicproduct.Inordertopromotesinglechipapplicatinginreallifeandproduction,thepaperwillintroduceatemperaturecontrolsystemwhichisbasedonakindofsinglechipAT89C51,anditcanachievethefunctionthatthesystemcanregulatethetemperatureindependently.
ThetemperaturesystemadoptsthetemperaturesensorDS1820togetthecurrenttemperature,andtransferittothemicrocontrollerwiththewayofdigitalsignal.Theacquisedtemperaturewillbecomparedwiththetemperaturewhichisputinby4X2matrixkeyboard,andwillbedisplayedbyliquidcrystaldisplay.Ifcollectedtemperaturebelowthesettemperature,thesystemwillautomaticallycontroltoheatupbytherelaymodules.Ifcollectedtemperaturehigherthanthesettemperature,thesystemwillautomaticallycontroltoreducebytherelaymodules.
Thepaperintroducesthehardwarewhichispartofthecontrolsystem,including:
temperatureacquisitioncircuit,temperaturesettingofthecircuit,temperaturedisplaycircuit,relaycircuitandsoon.Thepaperhasalsomainlyintroducedthedesignofsoftware.Hereusemodularconstruction,themainmodule:
temperatureacquisitionmodule,keyboardscanandkeyprocessingmodule,temperaturedisplaymodule,temperaturecomparisonmodule,relaycontrolmodule.
Accordingtomakeitactually,Ifindithasthesecharacteristics:
smallvolume,flexibleoperation,highreliability,practical,lowcostandsoon.Ithaspracticalsignificance.
II
Keywords:
SingleChipAT89C51; TemperatureControl; TemperatureSensorDS1820; LiquidCrystalDisplay;
第一章绪论
1.1选题背景与意义
在生产过程中,温度的控制是十分常见的。
国已相继出现各种以微机为核心的温度控制系统。
这种系统控制精度高、重复性好、自动化程度高。
在日常生活中,人们为了拥有一个更舒适的生活环境,往往需要室拥有一个合适的温度,而单片机的准确性高、价格低、功耗低等一系列优点,可结合升温和降温设备,有效的应用到实际生活中。
单片机温度控制系统是单片机控制的一项简单应用。
近几年来单片机因其独特的,方便,快捷的优势被广泛的应用于各个领域之中。
1.2选题简介
课题名称:
温度智能控制系统设计
主要任务:
将温度控制在设定的温度值,设定围为0-99度,针对在生产和日常生活中温度智能化控制系统的实现。
开发环境:
本环境温度控制系统的软件部分是通过KEIL进行编译,Proteus7Professional进行仿真测试,开发板作为实际测试。
技术指标:
(1)以AT89C52系列单片机为核心部件
(2)以数字电路和模拟电路为硬件基础
(3)以C语言为软件实现语言
功能概述:
在该环境温度控制系统中,单片机作为核心部件进行检测控制,增强了设计的通用性,适时性。
在该环境温度控制系统中温度检测采用DS18B20温度传感器,它不仅具有较高的精度,而且适用电压宽。
同时采用了4X2矩阵扫描键盘输入,显示设备等外围扩展芯片。
温度控制分为升温和降温控制,升温控制和降温控制分别采用继电器来控制外部的升温和降温设备。
软件部分采用流程图来表示。
第二章系统总体设计方案
本设计是一个数字温度测量及控制系统,能测柜的温度,并能在超限的情况下进行控制、调整,并报警。
保证环境保持在限定的温度中。
2.1系统工作原理
温度控制系统采用单片机作为微处理单元进行控制。
采用温度传感器将温度采集到单片机,采用键盘按键把设定温度的值存入单片机的数据存储器。
通过显示器将2者温度显示出来,然后再将两者温度进行比较。
如果采集温度比设定温度要低,则加热指示灯亮起,继电器电路中的直流电机开始转动加热;如果采集温度比设定温度要高,则降温指示灯亮起,继电器电路中的风冷器开始运转降温。
系统原理图如图2-1所示:
图2-1系统总体设计框图
根据系统的设计要求,选择DS18B20温度传感器作为采集模块,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示、等功能,选择LCD液晶显示器作为显示模块。
2.2单片机简介
随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时/计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机[1]。
2.2.1单片机的特点
1.具有优异的性能价格比
2.集成度高、体积小、可靠性高、控制功能强
3.低电压、低功耗
2.2.2单片机的选择
微处理器是本系统的核心,其性能的好坏直接影响系统的稳定,鉴于本系统为实时控制系统,系统运行时需要进行大量的运算,所以单片机采用INTEL公司的高效微控制器AT89C51[2]。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术,与工业标准的MCS-5指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51外形及引脚如图2-1-2所示
图2-2-2AT89C51外形及引脚
1.主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片振荡器和时钟电路
2.管教说明
·VCC:
供电电压。
·GND:
接地。
·P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
·P1口:
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
·P2口:
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于
部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
·P3口:
P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口[3]。
如表2-1-3所示:
引脚
作用
P3.0RXD
P3.1TXD
P3.2/INT0
P3.3/INT1
P3.4T0
P3.5T1
P3.6/WR
P3.7/RD
串行输入口
串行输出口
外部中断0
外部中断1
记时器0外部输入
记时器1外部输入
外部数据存储器写选通
外部数据存储器读选通
表2-1-3P3口引脚功能表
·RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
·/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
·/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间为部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
·XTAL1:
反向振荡放大器的输入及部时钟工作电路的输入。
·XTAL2:
来自反向振荡器的输出。
3.振荡特性
·/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)
·XTAL1:
反向振荡放大器的输入及部时钟工作电路的输入。
·XTAL2:
来自反向振荡器的输出。
4.芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
5.串口通讯
SBUF数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。
有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?
而不是收发各用一个寄存器。
”实际上SBUF包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。
CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。
发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。
操作SBUF寄存器的
方法则很简单,只要把这个99H地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfrSBUF=0x99;当然你也可以用其它的名称。
通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。
SCON串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。
SCON就是51芯片的串行口控制寄存器。
它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。
51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。
它的各个位的具体定义为:
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位。
该位可能是奇偶位,地址/数据标识位。
在模式0中,RB8为保留位没有被使用。
在模式1中,当SM2=0,RB8是已接收数据的停止位。
·TI发送中断标识位。
在模式0,发送完第8位数据时,由硬件置位。
其它模式中则是在发送停止位之初,由硬件置位。
TI置位后,申请中断,CPU响应中断后,发送下一帧数据。
在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。
·RI接收中断标识位。
在模式0,接收第8位结束时,由硬件置位。
其它模式中则是在接收停止位的半中间,由硬件置位。
RI=1,申请中断,要求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个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。
5个中断源的符号、名称及产生的条件如下:
·INT0:
外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
·INT1:
外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
·T0:
定时器/计数器0中断,由T0计满回零引起。
·T1:
定时器/计数器l中断,由T1计满回零引起。
·TI/RI:
串行I/O中断,串行端口完成一帧字符发送/接收后引起。
第三章硬件模块
3.1温度采集模块
温度采集模块硬件图如图3-1所示
图3-1温度采集模块
3.1.1DS18B20简介
传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40℃至90℃测量围,但热敏电阻可靠性差,测量温度准确率低,对小于1℃的温度信号不适合,还得经过专门接口电路转换成数字信号才能由微处理器进行处理[5]。
DS18B20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度。
同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。
部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这就缩短开发的周期。
3.1.2DS18B20的特点
·采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络。
·测量温度围宽,测量精度高。
DS18B20的测量围为-55℃~+125℃;在-10~+85℃围,精度为±0.5℃。
·在使用中不需要任何外围元器件即可实现测温。
·多点组网功能。
多个DS18B20可以并联在惟一的三线上,实现多点测温。
·供电方式灵活。
DS18B20可以通过部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外电源,从而使系统结构更趋简单,可靠性更高。
·测量参数可配置。
DS18B20的测量分辨率可通过程序设定9~12位。
·负压特性。
电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
·掉电保护功能。
DS18B20部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值[9]。
3.1.3DS18B20的引脚介绍
DS18B20实物图与管脚图如图3-1-3所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端,电源供电3.0~5.5V(寄生电源接线方式时接地)。
图3-1-3DS1820实物图和管脚图
3.1.4DS18B20部结构和原理
DS18B20的部结构如图3-1-4所示,主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(地址:
28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,并且每个DS18B20的序列号都不相同,因此它可以看作是该DS18B20的地址序列码;最后8位则是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
由于每一个DS18B20的ROM数据都各不相同,因此微控制器就可以通过单总线对多个DS18B20进行寻址,从而实现一根总线上挂接多个DS18B20的目的[10]。
图3-1-4DS18B20部结构图
64位ROM的位结构如表3-1-5所示。
开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。
非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限数据。
图3-1-564位ROM的位结构图
DS18B20温度传感器的部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。
高速暂存RAM的结构为9字节的存储器,结构如图3-1-7所示。
前2字节包含测得的温度信息。
第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5字节为配置寄存器,其容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。
该字节各位的定义如图3-1-6所示,其中,低5位一直为1;TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用
户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率。
R1
R0
分辨率/位
温度最大
转换时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
图3-1-6DS18B20分辨率的定义和规定
TM
R1
R0
1
1
1
1
1
1