为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

空调温度控制单元设计

2017-09-19 27页 doc 330KB 71阅读

用户头像

is_079973

暂无简介

举报
空调温度控制单元设计     昆明工业职业技术学院 毕业设计 设计题目: 空调温度控制单元设计 班    级:                          学生姓名:                          学    号:                                                    指导教师:         职 称:          指导小组组长:                 教学班负责人:                   设计时间:2012年12月 摘要 温度是...
空调温度控制单元设计
    昆明工业职业技术学院 毕业设计 设计目: 空调温度控制单元设计 班    级:                          学生姓名:                          学    号:                                                    指导教师:         职 称:          指导小组组长:                 教学班负责人:                   设计时间:2012年12月 摘要 温度是日常生活中无时不在的物理量,温度的控制在各个领域都有积极的意义。很多行业中都有大量的用电加热设备,如用于热处理的加热炉,用于融化金属的坩锅电阻炉及各种不同用途的温度箱等,采用单片机对它们进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量。因此,智能化温度控制技术正被广泛地采用。 本温度设计采用现在流行的AT89S51单片机,配以集成温度传感器AD590。单片机将检测到的温度信号与输入的温度上、下限进行比较,由此作出判断是否启动继电器以开启设备。 本设计还加入了常用的数码管显示及状态灯显示灯常用电路,使得整个设计更加完整,更加灵活。该设计已应用于花房,可对花房温度进行智能监控。 关键词:  温度箱;AT89S51;单片机;控制;模拟 目录 1 引言    4 1.1 温度控制系统设计的背景、发展历史及意义    4 1.2 温度控制系统的目的    4 1.3 温度控制系统完成的功能    4 2 功能概述    5 2.1系统的主要要求    5 2.2系统的工作原理    5 2.3系统的主要技术指标    5 3  系统的结构框图    6 4  硬件单元方案设计与选择    6 4.1 温度传感部分温度控制    6 4.2  A/D转换部分    7 4.3  数字显示部分    8 4.4 加热降温驱动控制电路    9 4.5 键盘输入部分    9 5  温度控制系统的单元电路设计    10 5.1 温度采集电路    10 5.2 A/D转换电路    11 5.3 显示电路    12 5.4 驱动控制电路    13 5.5 键盘电路    13 5.6 电源电路    14 6 温度控制系统的软件设计    15 6.1 主程序图及子程序流程图    15 6.1.1 主程序设计    15 6.1.2 A/D转换子程序设计    16 6.1.3显示子程序设计    17 6.2 温控程序流程图    18 6.2.1 键盘扫描和温度显示程序设计    19 6.2.2 温度采样    20 6.2.3温度标度转换算法    23 6.3  PID控制算法    25 6.3.1  PID算法基本原理    25 6.3.2  PID算法及子程序    26 7 特殊器件介绍    28 7.1温度传感器AD590    28 7.2 模/数转换器ADC0809    30 8 结论与展望    33 附录    34 附录1    34 附录2    - 35 - 附录3    36 参考文献    41 1 引言 1.1 温度控制系统设计的背景、发展历史及意义 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。 温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。 单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生。 1.2 温度控制系统的目的 本设计的内容是温度测试控制系统,控制对象是温度。温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。 1.3 温度控制系统完成的功能 本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,系统自动启动加热继电器加温,使温度上升,同时绿灯亮。当温度上升到下限温度以上时,停止加温;当温度高于设定上限温度时,系统自动启动风扇降温,使温度下降,同时红灯亮。当温度下降到上限温度以下时,停止降温。温度在上下限温度之间时,执行机构不执行。三个数码管即时显示温度,精确到小数点一位。 2 功能概述 结合本设计的要求和技术指标,通过对系统大致程序量的估计和系统工作速度的估计,考虑价格因素。选定AT89S51单片机作为系统的主要控制芯片,8位数模转换器AD0809。采用AD0809进行温度采集,温度设定范围为-10℃~ 45℃,通过温度采集系统,对温度进行采样并进行A、D转换,再输给单片机。以空调为执行器件,通过单片机程序完成对室内温度控制。 2.1系统的主要要求 (1)温度设定范围为-10--45C,最小区分温度为1C,标定温差小于≤1C。 (2)用二位十进制数码显示当前温度 (3)能根据设定的温度进行加热或降温处理。 (4)设计出系统控制单元 2.2系统的工作原理 在温度控制系统中,需要对温度的变换转换为对应的电信号的变化,选用89S51单片机为中央处理器,通过温度传感器对空气温度进行温度采集,将采集到的温度信号传输给单片机,再有单片机控制显示器,并比较采集温度与设定温度是否一致,然后驱动空调机的加热或降温循环对空气进行处理,从而模拟实现空调温度控制单元的动作情况。 工作流程说明如下   开始,先接通电源,四段数码显示器就自动显示当前温度,并且显示出设置温度的缺省值000.   按下S1键,功能转换键,按此键则开始键盘控制。   此时通过键盘输入预设值的温度,按下S2加,按此键则温度设定加一度。按下S3减,按此键则设定温度减一度。S4复位键,使系统复位。   就这样通过温度芯片的反馈信息,实现温度保持在设定温度上,从而达到自动控制温度的功能。 2.3系统的主要技术指标 测温范围:-55℃- +100℃   温度分辨率:±0.5V LED显示位数:4 3  系统的结构框图 系统的硬件电路有温度传感器、A/D转换、LED显示等部分组成,总体方案结构见下图所示 A/D转换器 图  2-1 空调温度控制单元结构图 实现方案的技术路线为:用按钮输入温度值,用LED实时显示环境温度,用驱动电路控制完成加热和制冷调节。用汇编语言完成软件编程。 4  硬件单元方案设计与选择   硬件设计部分将先寻找电源电路最合适的设计方案,在进行单元电路设计。最后介绍所用到的两个特殊元件。 4.1 温度传感部分温度控制 要求对温度和与温度有关的参量进行检测,应考虑用热电阻传感器。按照热电阻的性质可分为半导体热电阻和金属热电阻两大类,前者通常称为热敏电阻,后者称为热电阻。 方案1:采用热敏电阻,这种电阻是利用对温度敏感的半导体材料制成,其阻值随温度变化有明显的改变。负温度系数热敏电阻器通常是由锰,钴的氧化物烧制成半导体陶瓷制成。其特点是在工作温度范围内电阻阻值随温度的上升而降低。可满足40℃~ 90℃测量范围,但热敏电阻精度、重复性、可靠性较差,不适用于检测小于1℃的信号;而且线性度很差,不能直接用于A/D转换,应该用硬件或软件对其进行线性化补偿。 方案2:采用温度传感器铂电阻Pt1000.铂热电阻的物理化学性能在高温和氧化性介质中很稳定,他能用作工业测温元件,且此元件线性较好。在0℃~ 100℃时最大非线性偏差小于0.5℃铂热电阻与温度的关系是,Rt=R0(1+At+Bt*t);其中Rt是温度为t摄氏度时的电阻;R0是温度为0℃时电阻;t为任意温度值,A、B为温度系数。但其成本太贵,不适合做普通设计。 方案3:采用集成温度传感器,如常用的AD590和LM35。AD590是电流型温度传感器。这种器件是以电流作为输出量指示温度,其典型的电流温度敏感度是1µA/K.它是二端器件,使用非常方便,作为一种高阻电流源,他不需要严格考虑传输线上的电压信号损失噪声干扰问题,因此特别适合作为远距测量或控制用。另外,AD590也特别适用于多点温度测量系统,而不必考虑选择开关或CMOS多路转换开关所引起的附加电阻造成的误差。由于采用了一种独特的电路结构,并利用最新的薄膜电阻激光微调技术校准,使得AD590具有很高的精度。并且应用电路简单,便于设计。 方案选择:选择方案3。理由:电路简单稳定可靠,无需调试,与A/D连接方便。 4.2  A/D转换部分   模/数转化器是一种将连续的模拟量转化成离散的数字量的一种电路或器件模拟信号转换为数字信号一般需要经过采样保持和量化编码两个过程。针对不同的采样对象,有不同的A/D转换器(ADC)可供选择,其中有通用的也有专用的。有些ADC还包含有其他功能,在选择ADC器件时需要考虑多种因素,除了关键参数、分辨率和转换速度以外,还应考虑其他因素,如静态与动态精度、数据接口类型、控制接口与定时、采样保持性能、基本要求、校准能力、通道数量、功耗、使用环境要求、封装形式以及与软件有关的问题。ADC按功能划分,可分为直接转换和非直接转换两大类,其中非直接转换又有逐次分级转换、积分式转换等类型。 A/D转换器在实际应用时,除了要设计适当的采样/保持电路、基准电路和多路模拟开关等电路外,还应根据实际选择的具体芯片进行模拟信号极性转换等的设计。 方案1:采用分级式转换器,这种转换器采用两步或多步进行分辨率的闪烁式转换,进而快速地完成“模拟-数字”信号饿转换,同时可以实现较高的分辨率。例如在利用两步分级完成n位转换的过程中,首先完成m位的粗转换,然后使用精度至少为m位的数/模转换器(ADC)将此结果转换达到1/2的精度并且与输入信号比较。对此信号用一个k位转换器(k+m<=n)转换,最后将两个输出结果合并。 方案2:采用双积分型A/D装换器,如ICL7135等。双积分型A/D转换器转换精度高,但是转换速度不太快,若用于温度测量,不能及时地反应当前温度值,而且多数双击分型A/D转换器其输出端多不是而二进制码,而是直接驱动数码管的。所以若直接将其输出端接I/O接口会给软件设计带来极大的不方便。 方案3:采用逐次逼近式转换器,对于这种转换方式,通常是用一个比较输入信号与作为基准的n位DAC输出进行比较,并进行n次1位转换。这种方法类似于天平上用二进制砝码称量物质。采用逐次逼近寄存器,输入信号仅与最高位(MSB)比较,确定DAC的最高位(DAC满量程的一半)。确定后结果(0或1)被锁存,同时加到DAC上,以决定DAC的输出(0或1/2)。 逐次逼近式A/D转换器,如ADC0809、AD574等,其特点是转换速度快,精度也比较高,输出为二进制码,直接接I/O口,软件设计方便。ADC0809芯片内包含8位模/数转换器、8通道多路转换器与微机控制兼容的控制逻辑。8通道多路转换器能直接连通8个单端输入信号中的任何一个。由于ADC0809设计时考虑到若干种模/数转换技术的优点,所以该芯片非常适合于过程控制、微控制器输入通道的结合口电路、智能仪器和机床控制等应用场合,并且价格低廉,降低设计成本。   方案选择:选择方案3。理由:用ADC0809采样速度快,配合温度传感器应用方便,价格低廉,降低设计成本。 4.3  数字显示部分 通常用的LED显示器有7段或8段“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的工作原理也一样。 方案1:采用静态显示方式。在这种方式下,各位LED显示器的共阳极(或共阴极)连接在一起并接地(或电源正),每位的段选线分别与一8位的锁存器输出相连,各个LED的显示字符一旦确定,相应锁存器的输出将维持不变,直到显示另一个字符为止,正因为如此静态显示器的亮度都较高。若用I/O口接口,这需要占用N*8位I/O口(LED显示器的个数N)。这样的话,如果显示器的个数较多,那使用的I/O接口就更多,因此在显示位数较多的情况下,一般都不用静态显示。 方案2:采用动态显示方式。当多位LED显示时通常将所有位的段选线相应的并联在一起,由一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别有相应的I/O口线控制,实现各位的分时选通。其中段选线占用一个8位I/O口,而位选线占用N个I/O口(N为LED显示器的个数)。由于各位的段选线并联,段码的输出对各位来说都是相同的,因此,同一时刻,如果各位选线都处于选通状态的话,那LED显示器将显示相同的字符。若要各位LED能显示出与本为相同的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。 这种显示方式占用的I/O口个数为8+N(N为LED显示器的个数),相对静态显示少了很多,但需要占用大量的CPU资源,当CPU处理别的事情时,显示可能出现闪烁或者不显示的情况。 方案3:采用移位寄存器扩展I/O口,只需要占用3个I/O口即数据(DATA)、时钟(CLOCK)、输出使能(OUTPUT ENABLE),从理论上讲就可以无限制地扩展I/O口,而且显示数据为静态显示,几乎不占用CPU资源。 采用扩展口后,又能采用静态显示,这样,既解决了静态显示占用I/O口多的问题,也解决了动态显示不稳定、容易闪烁、占用CPU资源过多的问题。 方案选择:选择方案3。理由:非常节约I/O口,又有静态显示的特点,亮度高,节约CPU的使用率。 4.4 加热降温驱动控制电路 采用光耦合双向可控硅驱动电路。它能够达到加热效果,开关量控制容易,驱动简单,驱动系统的抗干扰能力强。由于买不到元件,在该电路的实际焊接中用发光二极管代替。这里就不做详细介绍。 4.5 键盘输入部分 常用的键盘接口分为独立式按键接口和矩阵式键盘接口。 方案1:采用4*4矩阵键盘输入,这种接口方式适用于按键数量较由行线和列线组成,按键位于行、列的交叉点上。矩阵键盘的工作原理是按键设置在行、列交叉点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态由与此电平相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平为高,则行线电平为高。这是识别矩阵键盘是否被按下的关键所在。由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平,因此,各按键彼此将相互发生影响,所以不必将行、列线信号配合起来并作适当处理,才能决定闭合键位置。 对于矩阵式键盘,矩阵的键盘由行号和列号唯一决定,所以分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。但这种编码对于不同行的键,离散性大,并且编码的复杂度与键盘的个数成正比,因此不适合在出入量较小的设计中。 方案2:采用独立式按键接口。这种方式是各种键盘相互独立。每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。 独立式按键电路配置灵活,软件简单。但每个按键需占用一根输入口线,在按键数量较多时需要较多的输入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。独立式按键电路按键直接与单片机的I/O口线相接,通过读I/O口,判定各I/O口线的电平状态,即可识别出按下的按键。 方案选择:选择方案2。理由:减少单片机的I/O口的使用,设计简单。配置灵活,软件简单。虽然每个按键需占用一根输入口线,但该设计所用按键较少。 5  温度控制系统的单元电路设计 5.1 温度采集电路 温度采集系统主要由AD590、OP-07。ICL8069组成,如图4-1所示 图 4-1  温度采集系统电路 选用温度传感器AD590,AD590具有较高精度和重复性(重复性优于0.1℃,其良好的非线形可以保证优于0.1℃的测量精度,利用其重复性较好的特点,通过非线形补偿,可以达到0.1℃测量精度)。超低温漂移高精度运算放大器OP-07将“温度-电压”信号放大。便于A/D进行转换,以提高温度采集电路的可靠性。 集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温度25℃时输出为2.982V。电流输出型的灵敏度为1µA/K。这样便于A/D转换器采集数据。 5.2 A/D转换电路 选用89S51作为中央处理器,A/D转换器选用ADC0809,其连接电路如图4-2所示。 图4-2 单片机与A/D转换连接电路 用单片机控制ADC时,多数采用查询和中断控制两种方式。查询法是在单片机把启动命令送到ADC之后,执行别的程序,同时对ADC的状态进行查询,以检查ADC变换是否已经完成,如查询到变换已结束,则读入转换完毕的数据。中断控制是在启动信号送到ADC之后,单片机执行别的程序。当ADC转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换数据,并进行必要的数据处理,然后返回到原程序。这种方法单片机无需进行转换时间管理,CPU效率高,所以特别适合于变换时间较长的ADC。本设计采用查询方式进行数据收集。由于ADC0809片内无时钟,故运用8051提供的地址锁存使能信号ALE经D触发器二分频后获得时钟。因为ALE信号的频率是单片机时钟频率的1/6,如果时钟频率为6MHz,则ALE信号的频率为1MHz,经二分频后为500kHz,与AD0809时钟频率的典型值吻合。由于AD0809具有三态输出锁存器,故其数据输出引角可直接与单片机的总线相连。地址码引脚ADDA~C分别与地址总线的低3位A0、A1、A2相连,以选通IN0~IN7中的一个通道。采用单片机的P2.7(地址总线最高位A15)作为A/D的片选信号。并将A/D的ALE和START脚连在一起,以实现在锁存通道地址的同时启动ADC0809转换。启动信号由单片机的写信号和P2.7经或非门而产生。在读取转换结果时,用单片机的读信号和P2.7经或非门加工得到的正脉冲作为OE信号去打开三态输出锁存器。编写的软件按下列顺序动作:令P2.7=A15=0,并用A0、A1、A2的组合指定模拟通道的地址;执行一条输出指令,启动A/D转换;然后根据所选用的是查询、中断、等待延时三种方式之一的条件去执行一条输入指令,读取A/D转换结果。 ADC0809是一个8路8位逐次逼近的A/D转换器。AD0809的转换时间为100µs。在CPU启动A/D命令后,便执行一个固定的延时程序,延时时间应略大于A/D的转换时间;延时程序一结束,便执行数据读入指令,读取转换结果。我们只用了其一路AD转换,参考电压2.56V,即一位数字量对应10mV即1℃。所以用起来很方便。 5.3 显示电路 采用74LS164与单片机相连,如图4-3所示。 进行I/O口扩充,并通过74LS164与LED连接达到显示的目的。74LS164是8位串入并出移位寄存器,当单片机串行口工作在方式0的发送状态时,串行数据由P3.0(RXD)送出,移位时钟由P3.1(TXD)送出。在移位时钟的作用下,串行口发送缓冲器的数据一位一位的移入74LS164中。需要指出的是,由于74LS164无并行输出控制端,因而在串行输入过程中,其输出端的状态会不断的变化,故在某些固定场合。在74LS164的输出端应加接输出三态控制。 其传输方式采用串行口方式0的数据传送,可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。串行发送时,可以靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI为1就结束查询,发送下一帧数据。在串行接收时,则由RI引起中断或对RI查询来确定何时接收下一帧数据。无论采用什么方式,在开始通讯之前,都要先对控制寄存器SCON进行初始化。在方式0中,将00H送SCON就可以了。        显示采用3位共阳LED静态显示方式,显示方式有温度值的十位、个位及负位,这样就可以只用P3.0(RXD)口来输出显示数据,从而节省单片机端口资源,在P3.1(TXD)的控制下通过74LS164来实现3位静态显示。就是每一个显示器都占用单独的具有锁存功能的I/O接口用于笔划段字形代码。只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形代码,因此,使用这种方法单片机中CPU的开销较小。 图4-3 显示电路 5.4 驱动控制电路 光耦合双向可控硅驱动器是一种单片机是输出和双向可控硅之间较理想的接口器件,它由输入和输出两部分组成,输入部分为砷化镓发光二极管,该二极管在5mA~15mA正向电流作用下发出足够强度的红外光,触发输出部分。输出部分为硅光敏双向可控硅,在红外线作用下可双向导通。该器件为六引脚双列直插式封装。(由于买不到元件,在该电路的实际焊接中用发光二极管代替,这里就不做详细介绍)。 5.5 键盘电路 采用独立式按键设计,如图4-5所示。 图 4-5 键盘电路 每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。软件设计采用查询方式和外部中断相结合的方法来设计,低电平有效。按键直接与89S51的I/O口线相连接。通过读I/O口的电平状态,即可识别出按下的按键。 4个按键分别接到P1.0、P1.1、P1.2和RST。对于这种键各程序可以采用中断查询的方法,功能就是:检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的键处理。其功能很简单,4个键定义如下。 P1.0:S1 功能转换键,按此键则开始键盘控制。 P1.1:S2加,按此键则温度设定加1度。 P1.2:S3减,按此键则温度设定减1度。 P1.4:S4复位键,使系统复位。 5.6 电源电路 电源也不能小视,每一个系统的电源都不容马虎,电源虽然简单,但需要功能可靠。通过对电路的观察,发现设计所有电源都是直流电源+5V.可由直流稳压电源提供。 6 温度控制系统的软件设计 6.1 主程序流程图及子程序流程图 软件设计从主程序流程图设计开始,一次编制出各子程序。 6.1.1 主程序设计 本程序主程序流程图如图5-1所示。 程序启动后,首先清理系统内存,然后进行采集,并通过A/D转换后,传输到单片机,再由单片机控制显示设备,显示现在的温度,然后系统进入待机状态,等待键盘输入设定为温度,然后系统将设定温度与现在温度进行比较,得出结果后,启动制冷系统或是加热系统。 否 图 5-1 主程序流程图 6.1.2 A/D转换子程序设计 图5-2是A/D转换子程序流程图。89S51给出一个脉冲信号启动A/D转换后,ADC0809对接受到的模拟信号进行转换,这个转换过程大约需要100µs,系统采用的是固定延时程序,所以在预先设定的延时后,89S51直接从ADC0809中读取数据。 子程序结果 图 5-2 A/D转换子程序 6.1.3显示子程序设计 当系统传送一个字节数给74LS164时,利用UART模式0。把DISPLAY_DATA中的初始数显示到LED1和LED2,十位数值显示到LED1,个位数值显示到LED2;当十位数值为0时LED1不显示。每位数值的显示时间由DISPLAY_TIME确定。程序流程图如图5-3所示。 是 图 5-3  显示子程序流程图 6.2 温控程序流程图 温度控制程序的设计应考虑如下问题: 1 温度采样,程序 2 键盘扫描,键码识别和温度显示程序 3 温度标高度AD590以及转换程序 为简化起见,本设计思想只给出有关89S51本身的初始化,温度显示和键盘扫描等程序,详细见附录源程序清单,程序框图如图5-4所示                Y 图 5- 4主程序流程简图 6.2.1 键盘扫描和温度显示程序设计 1. 为了简化电路,降低成本,将所有的段选线并联在一起,由一个8位I/O口控制,而选通断采用分时选通,LED显示器工作于共阳极动态显示,显示子程序流程图如图5-5所示。 2. 本设计采用独立式按键设计,单片机对它的控制采用程序扫描即中断查询方式,A口为选通口,B口为显示口,C口为查询输入口。 键盘扫描子程序功能如下: (1)判断键盘上有无键按下,方法为:每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。软件设计采用查询方式和外部中断相结合的方法来设计,低电平有效。按键直接与89S51的I/O口线相连接。通过读I/O口的电平状态,即可识别出按下的按键。4个按键分别接到P1.0、P1.1、P1.2和RST。 (2)去键的机械抖动影响:在判断有键按下后,软件延时一断时间(5ms—10ms)后再判断键盘状态,如果仍为有键按下状态,则认为确实有键被按下;否则,按照键抖动处理。 (3)判别闭合键的键号:对键盘的列线进行扫描,扫描口为PA0—PA7,依次输出扫描字为FEH,FDH,FBH,F8H,EFH,DFH,BFH,7FH,读出PC口的状态,若全为1则列线输出为0的 这一列上没有键闭合;否则,这一列有键闭合。闭合键的键号等于处于低电平的列号加上低电平的行的首键号,例如:PA口的输出为11111101,读出PC1—PC0为01,则1行1列的键闭合, (4)CPU对键的一次闭合仅作一次处理,采用的方法是等待键释放后再将键号送入累加器A中。键盘扫描子程序流程图如图5-5所示。                N 图5-5  键盘扫描子程序流程图  6.2.2 温度采样 采样子程序:流程图如图5-6所示。 N 图5-6 采样子程序流程图 一般微机应用系统前向通道中,输入信号均含有个中噪音和干扰,它们来自被测信号源、传感器、外界干扰。为了进行准确的测量和控制,必须消除被测信号中的噪音和干扰,噪音有两大类:一类为周期性的,另一类为不规则随机的 。前者的典型代表为50HZ的工作干扰。对于这类信号要采用硬件滤波电路能有效地消除影响。后者为随机信号,可采用数字滤波方法予于消除。所谓数字滤波,就是通过程序计算或判断来减少干扰在信号中的比重,故实际上它是一中程序滤波。经常采用的是中值滤波、去极值法可对采样的信号进行数字滤波,以消除常态干扰。 数字滤波子程序FILTER:用滤波来控制对现场的采样值的干扰。数字滤波程序的算法很多,现以中值滤波为例作说明。 中值滤波原理得很简单,只需对2CH 、2DH 、2EH中三次采样值进行比较取中间值存放到2AH单元内,以作为温度标度转换时使用。图5-7为数字滤波程序流程图。 Y 图5-7 数字滤波程序流程 6.2.3温度标度转换算法 A/D转换器输出的数码虽然代表参数值的大小,但是并不代表有量纲的参数值,必须转换成有量纲的数值才能进行显示,标度转换有线性转换和非线性转换两种,本设计使用的传感器线性好,在测量的量程制内基本能与温度成线性关系。 温度标度转换程序TRAST:目的是要把实际采样的二进制值转换的温度值转换成BCD形式的温度值,然后存放到显示缓冲区78H—7DH。对一般的线性仪表来说,标度转换公式为: =+                          (5-1) 式中,为一次仪表的下限, 为一次量程仪表的上限;为实际测量值(工程量); 为仪表下限所对应的数字量; 为仪表上限所应的数字量; 为测量所得数字量。 例如:若某热处理仪表量程为200—800℃,在某一时刻计算机采样得到的二进制值U(K)=CDH则相应的温度值为: =+=200+(800-200)=682℃ 根据上述算法,只要设定热电偶的量程,则相应的温度转换子程序TARST很容易编写,只要把这一算式变成程序,将A/D转换后经数字滤波处理后的值代入,即可计算出真实的温度值。具体算法如图5-8所示。 返 回 图5-8 标度转换程序 6.3  PID控制算法 6.3.1  PID算法基本原理 通常,以电炉炉温为例。电炉炉温的控制采用偏差控制算法。偏差控制的原理是先求出实测炉温对所需炉温的偏差值,然后对偏差处理,从而获得控制信号去调节电炉的加热功率,以实现对炉温的控制。 在工业上,偏差控制又称为PID(Proportional Integral and Differential,比例积分与微分)。这是工业控制过程中应用广泛的一种控制形式,一般都能收到令人满意的效果。 控制论告诉我们,PID控制的理想微分方程为: U(t)=                        (5-2) 其中e(t)=r(t)-y(t)称为偏差值,可作为温度调节器的输入信号,其中r(t)为给定值,y(t)为被测变量的值;为比例系数;为积分时间常数;为微分时间常数;u(t)为调节器的输出控制器输出控制信号。 但计算机只能处理数字信号,故上述数学方程必须加以变换。若设温度的采样周期为T,第n次的采样得到的输入偏差为,调节器输出为 ,则有:   (微分用差分代换)   (积分用求和代替) 这样式5-2便可写为:                               (5-3) 写成递推式为:                                 +                     = 把上式改写为:     U(n)=u(n-1)+{E(n)-E(n-1)+               =U(n-1)+                           (5-4) 式5-4可以改写成: 返 回 图5-9     PID算法流程图 6.3.2  PID算法及子程序 PID控制算法要用到双字节加法程序DSUM,完成R4R5+R3R2→R7R6。 双字节求补程序CPL1对R3R2求补,双字节带符号乘法子程序MULT1,因加法和求补算法比较简单,仅对双字节带符号乘法作详细介绍。入口条件:R7R6=被乘数               R5R4=乘数     出口条件:积为32位,按R0存入     标志位  :SIGN1 为地址5CH               SIGN2  为地址5DH 具体算法如图5-10 带符号双字节乘法程序 N 图 5-10 带符号双字节乘法程序流程图 7 特殊器件介绍 7.1温度传感器AD590  一、简介 AD590温度传感器是一种已经IC化的温度传感器,它会将温度转换为电流,其规格如下: 1、温度每增加1℃,它会增加1μA输出电流 2、可测量范围为-55℃至150℃ 3、供电电压范围为+4V至+30V AD590的输出电流值说明见表6-1。 其输出电流是以绝对温度零度(-273℃)为基准,温度每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Iout=(273+25)=298μA。    AD590温度与电流的关系 表6-1 温度与电流的关系 摄氏温度 AD590电流 经10KΩ电压 0℃ 273.2 uA 2.732V 10℃ 283.2 uA 2.832 V 20℃ 293.2 uA 2.932 V 30℃ 303.2 uA 3.032 V 40℃ 313.2 uA 3.132 V 50℃ 323.2 uA 3.232 V 60℃ 333.2 uA 3.332 V 100℃ 373.2 uA 3.732 V 二、主要特性如下 (1) 流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,;  (2)AD590的测温范围为-55℃~+150℃。  (3)AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流变化1mA,相当于温度变化1℃。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。  (4)输出电阻为710MΩ。  (5)精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。  AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补 三、AD590实际应用电路举例: 图6-1  AD590实际应用电路 图6-1: (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转换输出的数字量就和摄氏温度成线形比例关系。 四、结束语       AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。 7.2 模/数转换器ADC0809         ADC0809引脚图 一.ADC0809的内部逻辑结构 由图6-2可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。有3位地址输入线ADDA、ADDB、ADDC决定8路模拟输入中的一路进入8位A/D转换器,A/D转换值进入三态锁存输出缓冲器暂存。在CPU发来输出允许控制信号OE后,三态门打开,经DB7~DB0进入CPU数据总线,完成一次A/D转换全过程。即三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据[17]。 图6-2 ADC0809的内部逻辑结构图 二.ADC0809的特点 ADC0809是NS(National Semiconductor,美国国家半导体)公司生产的逐次逼近型A/D转换器。ADC0809具有以下特点: (1)分辨率为8位; (2)误差±1LSB,无漏码; (3)转换时间为100us(当外部适中输入频率fc=640kHZ时); (4)很容易与微处理器连接; (5)单一电源+5V,采用单一电源+5V供电时量程为0~5V; (6)无需零位或满量程调整; (7)带有锁存控制逻辑的8通道多路转换开关,便于选择8 路中的任意路进行转换; (8)DPI28封装 (9)使用5V或采用经调整模拟间距的电压基准工作; (10)带锁存器的三态数据输出。 三. ADC0809 引脚功能 ADC0809位DIP28封装,芯片引脚如图所示,引脚的功能及含义如下: (1)VCC:工作电源输入。典型值+5V,极限值6.5V. VREF(+):参考电压(+)输入,一般与VCC相连。 VREF(-) :参考电压(-)输入,一般与GND相连. (2)GND:模拟和数字地。 (3)START:A/D 启动转换输入信号,正脉冲有效。脉冲上升沿清除逐次逼近寄存器;下降沿启动A/D 转换。 (4)ALE:为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。 (5)EOC:转换结束输出引脚。启动转换后自动变低电平,转变结束后挑变为高电平。 (6)OE:输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7~D0为数字量输出线。 (7)CLK:时钟输入信号线,时钟频率允许范围10kHZ~1280kHZ,典型值640kHZ,当时钟频率为典型值时,转换速度为100us(128us~50us)。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。 (8)C,B,A:选通输入,选通IN7~IN0中的一路模拟亮。其中,C为高位。 2-8~2-1:8位数据输出。其中,2-1为数据高位,2-8为数据低位。 (9)IN0~IN7:8条模拟量输入通道 ,ADC0809一次只能选通IN0~IN7种的某一路进行转换,选通的通道由ALE上升沿时送入的C,B,A引脚信号决定。A,B和C为地址输入线,用于选通IN0~IN7上的一路模拟量输入。通道选择如表6-2所示。 表6-2  信号选通端 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 ADC0809对输入模拟量要求:信号单极性,电压范围是0~5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。     由于ADC0809输出含三态锁存,所以其数据输出可以直接连接AT89S51单片机的数据总线P0口(无三态锁存的芯片是不允许直接连接数据总线的)。可通过外部中断或查询方式读取A/D转换结果。 写P2.7口有两个作用:其一,写P2.7口脉冲的上升沿使ALE信号有效,将送入C,B,A的低三位地址A2,A1,A0锁存,并由此选通IN0~IN7种的一路进行转换,其二,写P2.7口脉冲下降沿,清除逐次逼近寄存器,启动A/D转换。 读P2.7口时(C,B,A低三位地址已无任何意义),OE 信号有效,保存A/D转化结果输出三态锁存器的“门”打开,将数据送到数据线。注意,只有在EOC信号有效后,读P2.7口才有意义。 CLK时钟输入信号频率的典型值为640kHZ,鉴于640kHZ频率的获取比较复杂,在工程实际中多采用单片机的ALE信号的基础上分频的方法。例如,但单片机fosc=6MHZ时,ALE引脚上的频率大约为1MHZ,经2分频后为500KHZ,使用该频率信号作为ADC0809的时钟,基本上可以满足要求。该处理方法与使用精确的640KHZ时钟输入相比,仅仅是转换时间比典型的略长100us (ADC0809转换需要64个CLK时钟周期)。 8 结论与展望 AT89S51单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,本文的温度控制系统,只是单片机广泛应用于各行各业中的一例。 本设计仅以空调温度为例进行恒温控制,稍加改动后,可以广泛应用于铸造、热处理等电热恒温及保温控制场合。 设计实现了温度实时测量、显示、控制系统。本设计温度控制电路具有较高的抗干扰性,实时性;在使用键盘与显示器接口时,为了节省I/O口线常常把键盘和显示电路接在一起,构成实用键盘和显示电路;控制算法采用传统的PID控制算法。方案具有较高的测量精度,温度控制实时性更高。在设计过程中,首先在老师的指导下熟悉了系统的工艺,进行对象的分析,按照要求确定方案。然后进行硬件和软件的设计。通过设计使我掌握了微型机控制系统I/O接口的使用方法,模拟量输入/输出通道的设计,常用控制程序的设计方法,数据处理及线性标度技术,基本算法的设计思想。 在做毕业设计之前,我对单片机的基本知识了解甚少,而汇编语言虽是接触过,可是没有具体的设计和编辑过,所以花了大量的时间去做准备工作。在老师的指导和帮助下,克服了一系列困难终于完成了本设计,基于本人能力有限,该设计还有许多不足之处有待改进。 针对本课题目前的研究进展,作以下几点展望: 1、本课题所设计的硬件电路和软件程序,目前还处于理论设计阶段,所有的功能模块有待实验室调试通过。 2、本设计的所用到的PID控制算法有待优化。基于PID控制,神经网络控制,模糊控制的神经网络模糊PID控制算法对存在滞后性、非线性、时变性、不确定随机干扰的系统的控制将会收到良好的效果。 3、为了能实现更精确的控制,可设置多个温度采样点。 附录 附录1 电源线插接说明: 所提供的电池盒,红线为正,黑线为负。板子所留出来的电源插口用VCC(表示电源正)和GND(表示电源负)标明。若没有标明,我们会刻有记号,刻有+号处为电源正。 附录2 主板电路图 附录3 程序代码 ORG 0000H TEMPER_L EQU 29H TEMPER_H EQU 28H FLAG1 EQU 38H;是否检测到DS18B20标志位 A_BIT EQU 20H ;数码管个位数存放内存位置 B_BIT EQU 21H ;数码管十位数存放内存位置 XS    EQU 30H MOV A,#00H MOV P2,A MAIN:LCALL GET_TEMPER;调用读温度子程序 MOV A,29H MOV B,A CLR C RLC A CLR C RLC A CLR C RLC A CLR C RLC A SWAP A MOV 31H,A MOV A,B MOV C,40H;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 29H,A LCALL DISPLAY;调用数码管显示子程序 AJMP MAIN; 这是DS18B20复位初始化子程序 INIT_1820:SETB P1.0 NOP CLR P1.0;主机发出延时537微秒的复位低脉冲 MOV R1,#3 TSR1:MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB P1.0;然后拉高数据线 NOP NOP NOP MOV R0,#25H TSR2:JNB P1.0,TSR3;等待DS18B20回应 DJNZ R0,TSR2 LJMP TSR4 ; 延时 TSR3:SETB FLAG1 ; 置标志位,表示DS1820存在 LJMP TSR5 TSR4:CLR FLAG1 ; 清标志位,表示DS1820不存在 LJMP TSR7 TSR5:MOV R0,#117 TSR6:DJNZ R0,TSR6 ; 时序要求延时一段时间 TSR7:SETB P1.0 RET; 读出转换后的温度值 GET_TEMPER:SETB P1.0 LCALL INIT_1820;先复位DS18B20 JB FLAG1,TSS2 RET ; 判断DS1820是否存在?若DS18B20不存在则返回 TSS2:MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H ; 发出温度转换命令 LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒 LCALL DISPLAY LCALL INIT_1820;准备读温度前先复位 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820 LCALL READ_18200; 将读出的温度数据保存到35H/36H RET;写DS18B20的子程序(有具体的时序要求) WRITE_1820:MOV R2,#8;一共8位数据 CLR C WR1:CLR P1.0 MOV R3,#6 DJNZ R3,$ RRC A MOV P1.0,C MOV R3,#23 DJNZ R3,$ SETB P1.0 NOP DJNZ R2,WR1 RET; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据 READ_18200:MOV R4,#2 ; 将温度高位和低位从DS18B20中读出 MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H) RE00:MOV R2,#8;数据一共有8位 RE01:CLR C SETB P1.0 NOP NOP CLR P1.0 NOP NOP NOP SETB P1.0 MOV R3,#9 RE10: DJNZ R3,RE10 MOV C,P1.0 MOV R3,#23 RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET DISPLAY:CLR  C SUBB  A,  #30 JNB  CY, T1 MOV  A,  B CLR  C SUBB  A,#25 JNB  CY, XIANSHI CLR  P1.1 LJMP  XIANSHI T1:CLR P1.2 XIANSHI:MOV A,B MOV B,#10 ;10进制/10=10进制 DIV AB MOV B_BIT,A ;十位在A MOV A_BIT,B ;个位在B MOV R0,#4 CLR C;多加的 DPL1: MOV R1,#250 ;显示1000次 DPLOP:MOV DPTR,#NUMTAB1 MOV A,A_BIT ;取个位数 MOVC A,@A+DPTR ;查个位数的7段代码 MOV P0,A ;送出个位的7段代码 CLR P2.1 ;开个位显示 ACALL D1MS ;显示1MS SETB P2.1 MOV DPTR,#NUMTAB MOV A,B_BIT ;取十位数 MOVC A,@A+DPTR ;查十位数的7段代码 MOV P0,A ;送出十位的7段代码 CLR P2.2 ;开十位显示    ACALL D1MS ;显示1MS SETB P2.2 JC XSW;多加的 MOV A,31H MOV B,#160 DIV AB MOV XS,B XSW:MOV A,XS MOVC A,@A+DPTR MOV P0,A CLR P2.0 ACALL D1MS SETB P2.0 SETB C;多加的 DJNZ R1,DPLOP ;250次没完循环 DJNZ R0,DPL1 ;4个250次没完循环 RET;1MS延时(按12MHZ算) D1MS: MOV R7,#80 DJNZ R7,$ RET NUMTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,7FH,7FH,7FH,7FH,7FH,7FH NUMTAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH END 参考文献 [1].李朝青,单片机原理及接口技术(简明修订版)[M]. 北京:北京航空航天大学出版社, 1998 [2].李广弟.单片机基础[M]. 北京:北京航空航天大学出版社,1994 [3].金伟正.单线数字温度传感器的原理与应用[J].电子技术与应用,2000 [4].李 钢.1-Wire总线数字温度传感器DS18B20原理及应用.现代电子技术 [5]. 陈跃东.DS18B20集成温度传感器原理与应用[J].安徽机电学院学报,2002 [6  ]. 阎石.数字电子技术基础(第三版)[M]. 北京:高等教育出版社,1989 毕业设计()成绩评定 指导教师评语: 指导教师                    2012年 月  日 成绩评定等级                            2012年 月  日 文档已经阅读完毕,请返回上一页!
/
本文档为【空调温度控制单元设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索