基于单片机的饮水机温度控制系统2讲解.docx

上传人:b****8 文档编号:10920478 上传时间:2023-02-23 格式:DOCX 页数:36 大小:481.42KB
下载 相关 举报
基于单片机的饮水机温度控制系统2讲解.docx_第1页
第1页 / 共36页
基于单片机的饮水机温度控制系统2讲解.docx_第2页
第2页 / 共36页
基于单片机的饮水机温度控制系统2讲解.docx_第3页
第3页 / 共36页
基于单片机的饮水机温度控制系统2讲解.docx_第4页
第4页 / 共36页
基于单片机的饮水机温度控制系统2讲解.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

基于单片机的饮水机温度控制系统2讲解.docx

《基于单片机的饮水机温度控制系统2讲解.docx》由会员分享,可在线阅读,更多相关《基于单片机的饮水机温度控制系统2讲解.docx(36页珍藏版)》请在冰豆网上搜索。

基于单片机的饮水机温度控制系统2讲解.docx

基于单片机的饮水机温度控制系统2讲解

计算机控制技术

 

题目:

____基于单片机的饮水机温度控制__

 

姓名:

_________

学号:

_____

专业:

_______

 

 

2015年12月31日

 

摘要

随着计算机在社会领域的渗透, 单片机的应用正在不断地深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及具体应用对象特点的软件结合,以作完善。

本论文从硬件和软件两方面来讲述单片机的温度控制系统,此系统要可以实时检测饮水机水箱的水温,并且可以通过数码管显示水箱水温度数,可以通过键盘或开关选择制冷或加热,可以任意设置水温的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷。

温度检测范围0~95ºC,当温度超过设定值时具有示警功能。

关键词:

饮水机;单片机;温度传感器

 

Abstract

Along with the computer in the social sector penetration and MCU application is continuously thorough, and push the traditional control test on the new beneficial update. In real time detection and automatic control of the microcomputer application system, the MCU is often as a core component to use, only MCU aspects knowledge is not enough, should according to the specific hardware structure, and the specific application of the characteristics of the object software combination to be perfect. themainpurposeofthissubjectistodesignamicrocontroller-baseddrinkingfountainstemperaturecontrolsystem.Thissystemcanreal-timedetectofwaterdispensertankwatertemperature.Thissystemcanreal-timedetectionofwaterdispensertankwatertemperature,anddigitaldisplaywatertemperatureindegreescoolingorheating,youcanselectviathekeyboardorswitch,youcansetthewatertemperatureintheupperandlowerlimits.Whenthetemperaturewithinthelimitssetbythedrinkingfountainswillworkproperly.Suchasheating,Whenthewatertemperatureislowerthanlimit,itcontrolsheater;suchasrefrigerationcompressorcooling,whenthetemperatureishigherthanthewatertemperaturelimitcontrol.Temperaturedetectionrangeof0~95ºC,accuracyof-1to+1°C,hasawarningfunctionwhenthetemperatureexceedsthesetvalue.

Keywords:

drinkingfountain ;SCM ;sensor.

 

目录

摘要1

Abstract1

2.前言2

2.1概论3

2.1.1设计任务3

2.1.2设计分析3

2.2系统方案设计4

3.系统硬件电路设计4

3.1单片机最小系统设计4

3.1.1单片机选择5

3.1.2时钟电路6

3.1.3复位电路7

3.2温度采集电路设计8

3.3A/D转换电路设计10

3.3.1A/D转换器选择10

3.4显示电路设计13

3.5键盘电路设计15

3.6报警电路设计17

3.7控制电路设计17

4.系统软件设计18

4.1主程序流程图及简要说明18

4.2A/D转换子程序19

4.3键盘子程序20

4.4控制子程序22

4.5显示子程序23

5.结论24

附录1:

系统硬件原理图25

附录2:

软件程序清单26

 

2.前言

二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。

因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。

如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。

在农业中,用于保证蔬菜大棚的恒温保产等。

 

在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。

因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。

在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。

但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。

 

温度控制无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,而当今,我国农村的锅炉取暖等大多数都没有温度监控系统,部分厂矿,企业还一直沿用简单的温度设备和纸质数据记录仪。

无法实现温度数据的测量与控制。

随着社会经济的高速发展,越来越多的生产部门和生产环节对温度控制精一个集温度的采集、处理、显示、自动控制为一身的闭环控制系统。

该智能温度控制系统功耗低,本系统运行情况良好且经济可靠。

能利用最少的资源对不同温度进行高精度的测量,信息性能可靠、操作便利,复杂的工作通过软件编程来完成,可以方便的获取结果,在实际的使用中获得了理想的效果

温度不是一个点,而是一个范围。

系统以AT89C51单片机为核心,组成

 

2.1.1题目任务

设计一个基于单片机的饮水机温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷,温度检测范围0~95°C,精度-1~+1°C,当温度超过设定值时具有示警功能。

2.1.2设计分析

该系统要完成饮水机水箱的水温度控制系统的设计。

要达到题目设计的要求,设计时需要解决以下几个方面的问题:

一、如何实现0~95°C的温度检测范围和精度为1°C的温度测量;二、如何将水箱的温度控制在设定的范围内;三、如何选择器件及设计电路使整个系统稳定、有效的工作。

2.2系统方案设计

方案:

以单片机为核心的控制方案,其原理图如图所示。

本方案通过温度传感器将温度信号转换为电流信号,信号放大后,经A/D转换器,A/D转换器将进来的模拟信号转换成数字信号,然后送到单片机处理,并将采集的温度与键盘设定的温度值进行比较,根据比较的结果,单片机输出相应的信号来控制外部设施,达到控制加热器加热或压缩机制冷的目的。

还具有显示、报警等功能。

 

 

 

该方案是采用以单片机为核心的控制系统,尤其对温度控制,它可达到模拟控制所打不到的控制效果,并且可实现显示,键盘设定,报警等功能,大大提高了系统的智能化,也使得系统的测量结果精度大大提高。

同时,以单片机为核心的控制系统,它的软件编程比较灵活,易于实现。

3.系统硬件电路设计

3.1单片机最小系统设计

本论文设计最小系统如图3.1所示,由主控器AT89C51、时钟电路和复位电路三部分组成。

单片机AT89C51作为核心控制器控制着整个系统的工作,而始终电路负责产生单片机工作所必须的时钟信号,复位电路使得单片机能够正常、有序、稳定地工作。

图3.1单片机最小系统

3.1.1单片机选择

AT89C51单片机是ATMEL公司的AT89系列中的一种,该系列是当今世界上最新型的电擦写八位单片机之一,和51系列完全兼容,低电压、低电流、低功耗,价格低廉,很受到用户欢迎。

其管脚图如图3.2所示。

图3.2AT89C51管脚图

AT89C51的引脚功能说明:

·Vcc:

电源电压

·GND:

·P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

·P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

Flash编程和程序校验期间,P1接受低8位地址。

·P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位四肢的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据,在访问8位地址的外部数据存储器(例如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。

Flash编程和程序校验时,P2也接收高位地址和其他控制信号。

·P3口:

P3是一个带有内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

·RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

·ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元D0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

·PSEN:

程序存储允许输出是外部程序存储器的读选通型号,当89C51由外部存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。

·EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12v的编程允许电源Vpp,当然这必须是该器件使用12v编程电压Vpp。

·XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

·XTAL2:

振荡器反相放大器的输出端。

鉴于AT89C51单片机所具有的特性及本论文设计控制的复杂性和兼顾显示、报警、键盘控制等较高要求,本论文设计选用AT89C51单片机作为中心控制器。

3.1.2时钟电路

时钟电路用于产生AT89C51单片机工作时所必需的时钟信号。

其电路与AT89C51的连接如图3.1所示。

AT89C51单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,AT89C51单片机应在唯一的时钟信号控制下,严格按时序执行指令进行工作,而时序所研究的是指令执行中各个信号的关系。

在执行指令时,CPU首先要到指令存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。

CPU发出的时序信号有两种,一是用于片内对各个功能部件的控制。

另一种是对片外存储器或I/O口的控制,这种时序对于分析、设计硬件接口电路至关重要。

这也是单片机应用设计者最关心的问题。

时钟是单片机的心脏,单片机各个功能部件的运行都是以时钟频率为基准,有条不紊地工作。

因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚X1,输出引脚X2。

这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。

虽然AT89C51有内部振荡电路,但要形成时钟,必须外接元件。

外接晶体以及X1和X2构成并联谐振电路。

电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。

除使用晶体振荡器外,如对时钟频率要求不高,还可以用陶瓷振荡器来代替。

电路中的电容容值通常选择为30PF左右,本电路选择的是20PF,这并不影响系统的工作和控制的结果。

晶体的振荡的频率的范围通常是在1.2MHZ到12MHZ之间。

晶体的频率越高,则系统的时钟频率就越高,单片机的运行速度也就越快。

但反过来运行速度越快对存储器的速度要求就越高,对印刷电路板的工艺要求也高。

AT89C51单片机常选择振荡频率6MHZ或12MHZ的石英晶体,随着集成电路制造工艺技术的发展,单片机的时钟频率也在逐步提高,现在的高速单片机芯片的时钟频率已经达到40MHZ。

考虑到本设计所用的各种器件对时钟频率的要求及整体电路的简洁性,本课题选用的是振荡频率为6MHZ的石英晶体。

3.1.3复位电路

AT89C51的复位是由外部的复位电路来实现的。

单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。

许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。

因此选用一个适合本系统的复位电路极其重要。

常用的复位电路有四种方式:

(1)上电复位电路

(2)按键复位电路(3)脉冲复位电路(4)兼有上电复位与按键复位的电路。

由于考虑到结构和成本等原因,在很多设计里面,复位电路通常采用上电复位和按键复位两种。

根据本系统的特性,决定选用最简单的上电复位电路。

上电复位是通过外部复位电路的电容充电来实现的。

只要Vcc的上升时间不超过10ms,就可以实现自动上电复位。

当时钟频率选用6MHZ,电容C选用22F,电阻R选用1K。

该复位电路工作原理为:

在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,保证RST引脚出现10ms以上稳定的高电平,从而使单片机复位。

3.2温度采集电路设计

本设计中的温度采集系统由DS18B20传感器负责。

其型号如图3.2.1所示:

图3.2.1

DS18B20工作原理为DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。

DS18B20测温原理如图3.2.2所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

图3.2.2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

 

DS18B20内部结构图如图3.2.3所示:

 

3.3A/D转换电路设计

A/D转换部分电路的功能主要是将采集部分采集来的模拟信号转换成数字信号,然后输送到单片机进行数据处理。

主要器件有ADC0809、74LS02、74LS74等。

ADC0809与AT89C51连接电路如图3.3所示。

图3.3A/D转换电路

A/D转换器ADC0809共有八路模拟输入端,由于温度采集只有两路,因此只用到两路模拟输入端,其输入通道为IN0、IN1。

这两个通道的数据分别是温度采集电路的输出信号V01、V02,也就是转换为电压值的饮水机两个水箱水的温度值。

选择这两个通道需要通过设置ADC0809的ADDA、B、C的值,因为它对应的是八路模拟信号,而本系统只有两路模拟信号输入,因此,只需要将低位ADDA连到AT89C51的P2.2口,并根据P2.2口的电压是低电平或高电平来选择要检测哪个通道,当ADDA值为0时选的是IN0通道,当ADDA为1时选的是IN1通道。

而ADDB、ADDC只需接地即可。

3.3.1A/D转换器选择

A/D转换器的功能是将连续变化的模拟量转换成一个离散的数字量。

每一个数字量都是数字代码的按位组合,每一位数字代码都是一定的“权”,对应一定大小的模拟量。

为了将数字量转换成模拟量应该将其每一位都转换成响应的模拟量,然后求和即可得到与数字量成正比的模拟量。

目前,市面上有很多类型的A/D转换器,如:

ADC0804、ADC0809、AD574等,根据本控制的特点,选用ADC0809作为A/D转换器。

ADC0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位的模/数转化器,8通道多路转换器和与微处理器兼容的控制逻辑。

8通道多路转换器能直接连通8个单端模拟信号中的任何一个。

片内带有锁存功能的8路模拟多路开关,可以对8路0~5V的输入模拟电压信号分时进行转换,片内具有多路开关的地址译码和锁存电路、比较器、256RT型网络、树状电子开关、逐次逼近寄存器SAR、控制与时序电路等。

输出具有TTL三态锁存缓冲器,可以直接连接到单片机数据总线上。

1.ADC0809功能如下:

(1)分辨率为8位。

(2)最大不可调误差小于1LSB。

(3)单一+5V供电,模拟输入范围0~5V

(4)具有锁存控制的8路模拟开关。

(5)可锁存三态输出,输出与TTL兼容。

(6)功耗为15mW。

(7)不必进行零点和满度调整。

(8)转换速度取决于芯片的时钟频率。

时钟频率范围:

10~1280KHZ,当CLK=500kHZ时,转换速度为128S。

2.ADC0809管脚及功能

A/D转换器ADC0809的引脚图如图3.3.1所示。

图3.3.1ADC0809引脚图

IN0~IN7:

8路输入通道的模拟量输入端口。

2-1~2-8:

8位数字量输出端口。

START,ALE:

START为启动控制输入端口,ALE为锁存控制信号端口。

这两个信号端可连接在一起,当通过软件输入一个正脉冲,便立即启动模/数转换。

EOC,OE:

EOC为转换结束信号脉冲输出端口,OE为输出允许控制端口。

这两个信号也可连接在一起表示模/数转换结束。

OE端的电平由低变高,打开三态输出锁存器,将转换结果的数字量输出到数据总线上。

REF(+),REF(-),Vcc,GND:

REF(+)和REF(-)为参考电压输入端,Vcc为主电源输入端,GND为接地端。

一般REF(+)与Vcc连接在一起,REF(-)与GND连接在一起。

CLK:

时钟输入端口。

ADDA,B,C:

8路模拟开关的三位地址选通输入端,以选择对应的输入通道。

其地址码与对应通道关系如表3.3所示。

表3.3地址码与输入通道对应关系表

强调说明一点:

ADC0809虽然有八路模拟通道可以同时输入八路模拟信号,但每一个瞬间只能转换一路模拟信号,各路之间的切换由软件变换通道地址实现。

A/D转换器采用的转换方法主要有逐次逼近型A/D转换、双积分型A/D转换、并行A/D转换、串-并行A/D转换等,其中逐次逼近型A/D转换既照顾了转换的速度,又具有一定的精度,本系统中,传输数据的频率不高,对精度的要求也不是很高,因此,我们选用了常用的逐次逼近型A/D转换ADC0809。

3.4显示电路设计

大多数的单片机应用系统,都要配置输入设备和输出设备。

本系统的输出设备是显示器,根据本系统的设计特点,采用七段LED数码管作为显示器。

而本系统设计要求温度检测范围0℃~95℃,精度±1℃。

数码管只需显示两位即可达到要求,因此,显示部分电路采用两个一位的LED数码管来组成显示器,没有要求显示小数点,LED数码管的dp脚悬空。

本设计显示电路的应用有两点,一是实时显示引水机水箱的水温值,另一个是显示键盘设定的温度上、下限值。

其电路连接如图3.4所示。

图3.4显示部分电路

通过一个74LS47连接7个100欧姆的电阻来驱动数码管显示。

数码管的VCC脚分别连接到两个三极管的共射极,而三极管的共基极连到一起接到+5V电源上。

共集极分别连接两个4.7K的电阻接到单片机AT89C51的P1.4、P1.5管脚。

LED显示块是由发光二极管显示字段的显示器件。

在单片机应用系统中应用非常普遍,通常使用的是七段LED,这种显示器有共阳极和共阴极两种,本设计选用的是共阳极。

共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压5V。

当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

使用LED显示器时,为了显示数字或符号,要为LED显示器提供代码,因为这些代码是通过各段亮与灭来

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1