基于单片机饮水机温度控制系统.docx
《基于单片机饮水机温度控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机饮水机温度控制系统.docx(44页珍藏版)》请在冰豆网上搜索。
基于单片机饮水机温度控制系统
基于单片机的饮水机温度控制系统
摘要
随着计算机在社会领域的渗透,单片机的应用正在不断地深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及具体应用对象特点的软件结合,以作完善。
本论文从硬件和软件两方面来讲述单片机的温度控制系统,主要以AT89C51单片机为核心,温度信号AD590温度传感器采集,并以数字信号的方式传送给单片机,并通过两位数码管LED显示器显示实时温度的一种数字温度。
在软件方面,采用汇编语言来进行程序设计,汇编语言指令的执行速度快,节省存储空间。
为了便于为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。
系统的过程:
首先,通过设置按键,设定恒温运行时的温度值,并且用数码管显示这个温度值,然后,温度传感器AD590从周围环境的不同位置采集温度,再通过模数转换器,最后,通过单片机AT89C51获取采集的温度值,进一步控制报警装置和控制装置。
关键词:
温度传感器模数转换器单片机控制装置报警系统
Abstract
AlongwiththecomputerinthesocialsectorpenetrationandMCUapplicationiscontinuouslythorough,andpushthetraditionalcontroltestonthenewbeneficialupdate.Inrealtimedetectionandautomaticcontrolofthemicrocomputerapplicationsystem,theMCUisoftenasacorecomponenttouse,onlyMCUaspectsknowledgeisnotenough,shouldaccordingtothespecifichardwarestructure,andthespecificapplicationofthecharacteristicsoftheobjectsoftwarecombinationtobeperfect.
Fromtwoaspectsofhardwareandsoftwaretotellofthesinglechipmicrocomputertemperaturecontrolsystem,mainlyAT89C51asthecore,temperaturesignalchipAD590collectionbythetemperature,andthewaytodigitalsignaltransfertothesinglechipmicrocomputer,andthroughthefourLEDdisplayshowsreal-timedigitaltubetemperatureofadigitaltemperature.Insoftware,theassemblylanguageforprogramdesign,assemblylanguageinstructionexecutionspeed,savestoragespace.Inordertofacilitatetheexpansionandchange,thesoftwaredesignusingmodularstructure,maketheprogramdesignlogicalrelationshipmoreconciseandclear,makethehardwareinthesoftwareunderthecontroloftheharmoniousoperation.
Thesystemprocess:
first,bysettingupbutton,setthetemperatureconstanttemperatureoperation,andwithadigitalpipedisplaythetemperature,andthen,fromthesurroundingenvironmenttemperaturesensorAD590differentpositionsofthecollectiontemperature,againthroughtheadc,finally,throughthesingle-chipmicrocomputerAT89SC51obtaincollectionvalueandfurthercontrolalarmdeviceandrefrigerationequipment.
Keywords:
Temperaturesensor,A/Dconverter,MCU
controldevice,alarmsystem
目录
第1章绪论1
1.1课题的背景及其意义1
1.2课题研究的内容及要求6
1.3课题的研究方案图7
第2章理论基础7
2.1AD590温度传感器7
2.2ADC0809模数转换器9
2.3运算放大器OP0711
2.4单片机的发展历程12
2.5AT89C51系列单片机介绍14
2.5.1AT89C51系列基本组成及其功能14
2.5.2AT89C51系列引脚及其功能15
2.5.3AT89C51系列单片机的单元功能17
2.6数码显示管LED19
第3章硬件电路图设计20
3.1键盘控制单元20
3.2温度采样部分22
3.3模数转换部分22
3.4显示部分23
3.5报警部分25
3.6控制电路部分26
第4章软件流程图设计27
4.1主程序流程图27
4.2A/D转换程序流程图28
4.3按键流程图29
4.4控制子程序流图30
4.5显示子程序流图31
第5章系统调试及结论分析33
5.1硬件调试33
5.1.1硬件电路故障及解决方法33
5.1.2硬件调试方法33
5.2软件调试34
5.2.1软件电路故障及解决方法34
5.2.2软件调试方法35
5.3结论分析35
第6章总结36
总结36
参考文献37
第一章前言
1.1课题的背景及其意义:
二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。
因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。
如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。
在农业中,用于保证蔬菜大棚的恒温保产等。
温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。
温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。
由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。
而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。
在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。
因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。
在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。
但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。
温度控制无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,而当今,我国农村的锅炉取暖等大多数都没有温度监控系统,部分厂矿,企业还一直沿用简单的温度设备和纸质数据记录仪。
无法实现温度数据的测量与控制。
随着社会经济的高速发展,越来越多的生产部门和生产环节对温度控制精度的可靠性和稳定性等有了更高的要求。
传统的温度控制器控制精度普遍不高,不能满足对温度要求较为苛刻的生产环节。
此次的智能温度控制系统的设计基于此而设计,针对一些大型公共场合,为达到对其温度的良好控制,从实用的角度以AT89C51为核心设计一套温度智能控制系统。
其控制温度不是一个点,而是一个范围。
系统以AT89C51单片机为核心,组成一个集温度的采集、处理、显示、自动控制为一身的闭环控制系统。
该智能温度控制系统功耗低,本系统运行情况良好且经济可靠。
能利用最少的资源对不同温度进行高精度的测量,信息性能可靠、操作便利,复杂的工作通过软件编程来完成,可以方便的获取结果,在实际的使用中获得了理想的效果。
1.2课题研究的内容及要求:
1、课题的主要研究的内容:
本文所要研究的课题是基于单片机控制的温制系统的设计,主要是介绍了对温度的显示、控制及报警,实现了温度的实时显示及控制。
温度传感器DS18B20从设备环境采集温度,单片机AT89C51获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。
当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器),当采集的温度经处理后低于设定温度的下时,单片机通过三极管驱动继电器开启升温设备(加热器)。
2、设计要求:
设计基于单片计算机的温度控制器,用于控制温度。
具体要求如下:
1.温度连续可调,范围为0℃-90℃
2.超调量σ%≤20%
3.温度误差≤±1℃
4.人-机对话方便
1.3课题的研究方案图:
A
T单
8
9片
C
5机
1
温度采集
数据显示
报警装置
键盘设定
制冷和加热装置
第2章理论基础
2.1AD590温度传感器:
AD590是美国模拟器件公司生产的单片集成两端感温电流源。
它的主要特性如下:
1、流过器件的电流(A)等于器件所处环境的热力学温度(开尔文)度数,即:
A/K式中;
—流过器件(AD590)的电流,单位为A;T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。
电源电压可在4V~6V范围变化,电流
变化1A,相当于温度变化1K。
AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
4、输出电阻为710M。
AD590的管脚图及元件符号如下图所示:
AD590的输出电流值说明如下:
其输出电流是以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Iout=(273+25)=298μA。
AD590基本应用电路:
注意事项:
1、 Vo的值为Io乘上10K,以室温25℃而言,输出值为10K×298μA=2.98
2、 测量Vo时,不可分出任何电流,否则测量值会不准。
AD590温度传感器实际应用电路:
电路分析:
1、AD590的输出电流I=(273+T)μA(T为摄氏温度),因此测量的电压V为(273+T)μA×10K=(2.73+T/100)V。
为了将电压测量出来又务须使输出电流I不分流出来,我们使用电压跟随器其输出电压V2等于输入电压V。
2、由于一般电源供应教多器件之后,电源是带杂波的,因此我们使用齐纳二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调整至2.73V
3、接下来我们使用差动放大器其输出Vo为(100K/10K)×(V2-V1)=T/10,如果现在为摄氏28℃,输出电压为2.8V,输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线形比例关系。
2.2ADC0809模数转换器
ADC0809是位A/D转换芯片,它是采用逐次逼近的方法完成A/D转换的。
ADC0809由单+5V电源供电;片内带有锁存功能的8路模拟多路开关,可对8路0~5V的输入模拟电压分时进行转换,完成一次转换约需100µS;片内具有多路开关的地址译码器和锁存器、高阻抗斩波器、稳定的比较器,256电阻T型网络和树状电子开关以及逐次逼近寄存器。
ADC0809是引脚双列直插式封装,引脚及其功能:
1.D7~D0:
8位数字量输出引脚。
2.IN0~IN7:
8路模拟量输入引脚。
3.VCC:
+5V工作电压。
4.GND:
接地。
5.REF(+):
参考电压正端。
6.REF(-):
参考电压负端。
7.START:
A/D转换启动信号输入端。
8.A、B、C:
地址输入端。
9.ALE:
地址锁存允许信号输入端。
10.EOC:
转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
11.OE:
输出允许控制端,用以打开三态数据输出锁存器。
12.CLK:
时钟信号输入端,译码后可选通IN0~IN7八个通道中的一个进行转换。
A、B、C的输入与被选通道的通道关系
被选中的通道
C
B
A
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
ADC0809的管脚图
2.3运算放大器OP07
本次设计所用的运算放大器是OP07,OP07的功能介绍:
Op07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。
由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
工作电源电压范围是±3V~±18V;OP07完全可以用单电源供电,+5V,-5V绝对没有问题,用单+5V也可以供电,但是线性区间太小,单电源供电,模拟地在1/2VCC.建议电源最好>8V,否则线性区实在太小,放大倍数无法做大,一不小心,就充顶饱和了。
通常+12V,-12V双电源供电。
特点如下:
1.超低偏移:
150μV最大;
2.低输入偏置电流:
1.8nA;
3.低失调电压漂移:
0.5μV/℃;
4.超稳定,时间:
2μV/month最大;
5.高电源电压范围:
±3V至±22V。
OP07管脚图
OP07芯片引脚功能说明:
1和8为偏置平衡(调零端),2为反向输入端,3为正向输入端,4接地,5空脚6为输出,7接电源+。
输入失调电压调零电路
常用的电路图:
典型的偏置电压试验电路
典型的低频噪声放大电路
精密绝对值电路
2.4单片机的发展历程:
1970年微型计算机研制成功之后,随之即出现了单片机(即单片微型计算机)—美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,这也算是单片机的第一次公众亮相。
1976年Intel公司首先推出能称为单片机的MCS-48系列单片微型计算机。
它以体积小、功能全、价格低等特点,赢得了广泛的应用,同时一些与单片机有关公司都争相推出各自的单片机。
1978年下半年Motorola公司推出M6800系列单片机,Zilog公司相继推出Z8单片机系列。
1980年Intel公司在MCS-48系列基础上又推出高性能的MCS-51系列单片机。
这类单片机均带有串行I/O口,定时器/计数器为16位,片内存储容量(RAM,ROM)都相应增大,并有优先级中断处理功能,单片机的功能、寻址范围都比早期的扩大了,它们是当时单片机应用的主流产品。
1982年Mostek公司和Intel公司先后又推出了性能更高的16位单片机MK68200和MCS-96系列,NS公司和NEC公司也分别在原有8位单片机的基础上推出了16位单片机HPC16040和μPD783××系列。
1987年Intel公司又宣布了性能比8096高两倍的CMOS型80C196,1988年推出带EPROM的87C196单片机。
由于16位单片机推出的时间较迟、价格昂贵、开发设备有限等多种原因,至今还未得到广泛应用。
而8位单片机已能满足大部分应用的需要,因此,在推出16位单片机的同时,高性能的新型8位单片机也不断问世。
纵观这短短的20年,经历了4次更新换代,单片机正朝着集成化、多功能、多选择、高速度、低功耗、扩大存储容量和加强I/O功能及结构兼容的方向发展。
新一代的80C51系列单片机除了上述的结构特性外,其最主要的技特点是向外部接口电路扩展,以实现微控制器(microcontroller)完善的控制功能为己任。
这一系列单片机为外部提供了相当完善的总线结构,为系统的扩展和配置打下了良好的基础。
由于80C51系列单片机所具有的一系列优越的特点,获得广泛使用指日可待。
2.5AT89C51系列单片机介绍:
2.5.1AT89C51系列基本组成及其功能:
单片机即单片微型计算机,是把中央处理器、存储器、定时/计数器、输入输出接口都集成在一块集成电路芯片上的微型计算机。
与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。
它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。
由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器,但是目前在中国大陆仍多沿用“单片机”的称呼。
AT89C51基本功能描述如下:
AT89C51是一种低损耗、高性能、CMOS八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。
只要程序长度小于4k,四个I/O口全部提供给用户。
可用5V电压编程,而且写入时间仅10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
AT89C51芯片提供三级程序存储器锁定加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
另外,AT89C51还具有MCS-51系列单片机的所有优点。
128×8位内部RAM,32位双向输入输出线,两个十六位定时器/计时器,5个中断源,两级中断优先级,一个全双工异步串行口及时钟发生器等。
AT89C51有间歇、掉电两种工作模式。
间歇模式是由软件来设置的,当外围器件仍然处于工作状态时,CPU可根据工作情况适时地进入睡眠状态,内部RAM和所有特殊的寄存器值将保持不变。
这种状态可被任何一个中断所终止或通过硬件复位。
掉电模式是VCC电压低于电源下限,当振荡器停止振动时,CPU停止执行指令。
该芯片内RAM和特殊功能寄存器值保持不变,一直到掉电模式被终止。
只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位、掉电模式可被终止。
2.5.2AT89C51系列引脚及其功能:
AT89C51有40引脚双列直插(DIP)形式,其逻辑引脚图:
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的一些特殊功能口,如下表:
端口功能
第二功能
端口引脚
第二功能
RXD(P3.0)
串行输入口
T0(P3.4)
定时/计数器0外部输入
TXD(P3.1)
串行输出口
T1(P3.5)
定时/计数器1外部输入
INT0(P3.2)
外中断0
WR(P3.6)
外部数据存储器写选通
INT1(P3.3)
外中断1
RD(P3.7)
外部数据存储器读选通
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端保持高电平时