收藏 分销(赏)

基于单片机温度控制系统的设计.doc

上传人:天**** 文档编号:1885888 上传时间:2024-05-11 格式:DOC 页数:35 大小:830KB 下载积分:12 金币
下载 相关 举报
基于单片机温度控制系统的设计.doc_第1页
第1页 / 共35页
基于单片机温度控制系统的设计.doc_第2页
第2页 / 共35页


点击查看更多>>
资源描述
天 津 大 学 网 络 教 育 学 院 本科毕业设计(论文) 题目:基于单片机温度控制系统的设计 完成期限:2016年1月8日 至 2016年5月10日 学习中心:选择一项。 专业名称:选择一项。 学生姓名:[此处键入学生姓名] 学生学号:[此处键入学生学号] 指导教师:[此处键入教师姓名] 摘 要 无论是在现代化的城市生活中,还是在落后的乡镇生活中,温度都扮演着极其重要的角色,我们几乎所有的日常生活都与温度息息相关。自18世纪工业革命发展以来,工业的发展与人类掌握对温度的控制有着密切的联系,都离不开对温度的掌握。 随着单片机技术的飞速发展,单片机的一系列优点越发惹人注目,其工作稳定可靠等优点已经被很多企业接受。本设计基于AT89C51单片机和温度传感器实现温度控制系统,不仅控制简便而且高效率控制,大大提高温度控制系统的灵活性,扩大基于单片机温度控制系统的适用范围。 本设计在具体介绍温度控制系统整体的设计方案之后,详细介绍了温度控制系统硬件设计、温度控制系统软件设计和相关接口的电路设计,讨论基于单片机温度控制系统的相关应用,最后总结本设计的合理性和有效性。 关键词:单片机; 温度传感器; 温度控制 目 录 第一章 绪论 1 1.1 温度控制系统概况 1 1.2 国内外研究现状 1 1.3 课题的主要工作 2 第二章 总体设计 3 2.1总体设计方案 3 2.2功能描述 3 2.3温度控制系统硬件电路框图 4 第三章 温度控制系统硬件设计 5 3.1硬件设计方案 5 3.2单片机系统介绍 5 3.3 温度信号采集模块的设计 9 3.3.1温度传感器的选择 9 3.3.2 信号放大电路 10 3.3.3 A/D转换电路 10 3.4键盘控制电路的设计 11 3.5液晶显示电路的设计 12 3.6蜂鸣器警报电路的设计 13 3.7加热模块电路的设计 14 第四章 系统软件设计 16 4.1软件设计方案 16 4.2温度控制部分程序的设计 17 4.3键盘部分程序的设计 18 4.4数据采集模块程序设计 18 4.5液晶显示部分温度程序的设计 19 第五章 总结与展望 21 参考文献 22 附 录 23 致 谢 29 天津大学网络教育学院本科毕业设计(论文) 第一章 绪论 1.1 温度控制系统概况 本课题主要是基于单片机的温度控制系统的设计和研究,研究中的控制对象为温度。温度在我们的日常生活中很常见,也是很熟悉的东西,很多场所都需要控制温度来提供生产,比如火力发电厂、浴室、植物的培植室等场所的温度控制。纵观电气时代以来的人类发展史,很多温度控制都只是人工操作的,且不够重视,也因此发生了很多意外。随着电子技术的快速发展,智能化实现对温度的控制已经可以实现。本课题以芯片为核心,对温度传感器感测到的温度进行分析、数值显示和数据存储,从而有效实现单片机对温度的智能控制。 1.2 国内外研究现状 相对而言,国外比我国对温度控制系统的研究要早的多。国外从20世纪70年代开始,通过模拟组合的方式,采集信号并发出指令和存贮。80年代开始进行分布式控制方式的研究[1]。现代世界各国的温度控制系统发展的非常迅速,很多国家开始实现由半自动化向完全自动化的方向发展。 我国对于温度控制系统的研究起步较晚,很大部分都只是借鉴一些发达国家的成熟技术,真正自己研究的东西并不多。整体的温度控制技术设施简单,控制因素单一。当然我国的温度控制技术正在由简单到实用化、综合性应用方向发展,虽然我国温度控制和温度测量技术远没有达到工厂化的程度,与欧美一些发达国家相比还存在很大差距,但是近几年国家开始重视自动化设备控制系统的研究,很多科研人员开始着手自动化控制设备的研究,制定很多成功的案例。但是理论研究始终停留在理论研究的层次,无法适用于工厂生产,很多研究方案,要么太过理论化、理想化,要么太过复杂,费用太过昂贵。 同样,近年来温度的检测在理论上发展比较成熟,但在实际测量和控制中,如何保证快速实时地对温度进行采样,确保数据的正确传输,并能对所测温度场进行较精确的控制,仍然是目前需要解决的问题[2]。因此,设计一款比较实用的温度控制系统十分有必要,关于基于单片机的温度控制系统的设计和研究课题也十分有意义。 1.3 课题的主要工作 本研究主要是对温度的实时检测和有效控制。首先设定密闭空间温度,通过温度传感器感测密闭空间温度,由信号放大电路将温度信号放大,然后经过A/D转换电路转换将转换信号传递给芯片,假如感测器感测到密闭空间温度高于设定温度,系统立即停止加热,使温度达到密闭空间设定值温度;假如感测器感测到密闭空间温度低于设定温度,系统立即启动加热器,对密闭空间升温,使密闭空间温度升高。任意一模块不工作或工作出错,蜂鸣器会发出报警信号,从而达到智能化目的。液晶显示器可以实时显示密闭空间温度。 课题研究主要包括如下一些方面: (1) 单片机的选择; (2) 温度传感器的选择及温度传感器信号处理电路的设计; (3) 液晶显示器电路的设计; (4) 蜂鸣器报警模块的设计; (5) 加热模块控制电路的设计; (6) 键盘电路的设计。 第二章 总体设计 课题研究主要包括六个部分:单片机、温度传感器及信号处理电路、液晶显示器电路、蜂鸣器报警模块、加热模块控制电路和键盘电路。其中,如何有效实现温度控制系统的控制,关键在于温度传感器的选择和驱动电路的设计,键盘电路可以实现对温度上限值和下限值的输入。 2.1总体设计方案 本研究主要包括两个方面的研究:硬件设计和软件设计。想要实现完整的功能,必须选择合适的元器件,对于整体设计的硬件部分主要包括驱动电路的设计,软件部分主要包括程序的编写。本系统采用热电偶温度自动控制系统,具体系统设计流程图如图2-1所示: 图2-1 系统设计流程图 2.2功能描述 (1)通过温度传感器感测密闭空间温度,将感测到的温度信号经过信号处理电路,传递给单片机接口,控制系统单片机对整个控制系统进行解析; (2) 当人在键盘上输入温度设定值后,芯片接收输入信号,单片机开始控制加热模块,判断是否对系统进行加热,假如没有设定值,系统不给密闭空间加热,密闭空间温度不变化; (3) 本系统带有报警装置,假如温度控系统的任意一模块不工作,即密闭空间在控制的情况下,偏离设定值过大,系统便会发生报警; (4) 液晶显示器会显示密闭空间不同的温度值,因为键盘上的温度设置值不同,整个系统控制的密闭空间温度也不同。 2.3温度控制系统硬件电路框图 本研究能够实现单片机对密闭空间内温度的有效控制的功能,通过单片机对温度的智能控制,从而实现温度智能化控制的目的。系统结构框图如图2-2所示 液晶显示电路 AT89C51 控制器 信号处理电路 温度信号采集 蜂鸣器警报模块 键盘电路 加热模块控制 图2-2 系统结构框图 第三章 温度控制系统硬件设计 3.1硬件设计方案 根据设计需求构建原理图,选择合适的控制芯片,分别实现对温度传感器的选择及温度传感器信号处理电路的设计;液晶显示器电路的设计;蜂鸣器报警模块的设计;加热模块控制电路的设计;键盘电路的设计。其中主要包括电路的设计,电子器件的选择。目前在现有的设计中,温度传感器的选择及温度传感器信号处理电路的设计、液晶显示器电路的设计和加热模块控制电路的设计参考线路图样本较多,选择难度不大,而蜂鸣器报警模块的设计难度较大,如何选择误差,让大众更容易接受,比较有技术含量。 3.2单片机系统介绍 在整个系统的控制中,采用单片机处理芯片对课题的设计对象进行控制,主要有一下一些特性[3]: (1)芯片面向的控制对象为8位CPU; (2)芯片内有4KB ROM 的程序存储器; (3)芯片内有128B的片内数据存储器; (4)可寻址64KB的片外程序存储器和片外数据存储器控制电路; (5)在芯片中有2个16位的定时/计数器; (6)芯片中共有32条可以单独编程的接口,4个并行I/O接口; (7)芯片中有2个中断优先级,5个中断源; (8)在芯片中还可有掉电保护模式和低功耗的闲置; 单片机除了以上一些特征外,而且物美价廉,外围电路相对而言较为简单。在实际应用中,此款单片机的工作频率比较低,但是对于整个设计系统,此工作频率足以满足整个系统的控制。单片机有32个I/O端口,这样便于整体设计,如图3-1所示为单片机控制系统。 图3-1 单片机控制系统 在如图3-1所示的单片机控制系统中,AT89C51单片机拥有两个外部中断、两个16位的定时器和两个可编程串行UART的单片机。因此AT89C51单片机作为中心控制模块完全满足设计需求,从而满足整个控制系统。AT89C51单片机的引脚如图3-2所示 图3-2 AT89C51引脚图 AT89C51单片机引脚说明: VCC:单片机电源 GND:单片机接地引脚 端口:端口为8位漏级开路双向I/O端口。此端口为输出端口,其中端口的每一位都能带动8个TTL逻辑电平。当端口输出信号为“1”时,表示高阻抗输入。当访问外部程序和数据存储器时,端口为低8位地址/数据复用。此种情况,端口表示内部上拉电阻。当操作时假如用flash编程,则端口也可以用来工作:在程序验证的过程中,需要上拉电阻,输出指令字节。 端口:端口有内置上拉电阻,8位双向I/O端口,端口可驱动4个TTL逻辑电平。当端口输出信号为“1”时,将输出电流。并且与其它单片机不同之处是,和可以作为定时/计数器2的外部计数输入(/)和输出(/),具体情况如表3-1所示。 表 3-1 和的其它功能 引脚号 功能特性 (定时/计数器2外部计数脉冲输入),时钟输出 定时/计数2捕获/重装载触发和方向控制 当Flash编程和校验的过程中,端口会接收低8位地址字节。端口:端口有内置上拉电阻8位双向I/O端口,端口可驱动4个TTL逻辑电平。当端口输出信号为“1”时,由于端口被内部上拉电阻拉高,此端口便有了输入端口的功能,当此端口为输入端口时,较低的引脚将输出电流为ILL 。 AT89C51单片机片内存储器售后通常处于擦除状态,即每个地址单元内容均为FFH,因此人们可随时对其编程[4-5]。当访问外部存储器或者通过16位的地址访问外部大量的存储设备时,端口会输出8位的地址。在此种情况下,端口会发送1,在使用8位的地址访问外部大量的存储设备时,端口会输出端口锁存器的部分内容。在Flash校验的过程中,端口会接收8位地址和一些其它的控制信号。 端口:端口有内置上拉电阻8位双向I/O端口,端口可驱动4个TTL逻辑电平。当端口输出信号为“1”时,由于端口被内部上拉电阻拉高,此端口便有了输入端口的功能。当此端口为输入端口时,较低的引脚将输出电流为ILL。端口除了作为I/O接口外,还有其它功能功能,如表3-2所示。 表 3-2 端口的其它功能 引脚号 第二功能 (串行输入) (串行输出) (外部中断0) (外部中断1) (定时器0外部输入) (定时器1外部输入) (外部数据存储器写选通) (外部数据存储器读选通) 当Flash编程和校验的过程中,P3端口会接收一些控制信号。 :表示复位。当晶振工作,管脚会以2个机器周期高电平使单片机复位。 :当访问外部存储设备时,ALE地址锁存器控制信号会锁存低8位地址输出脉冲。当Flash编程的过程中,引脚()也会使用此作为Flash编程的输入脉冲。 在正常使用的过程中,输出脉冲仅为晶振的1/6,此时可用着外部定时器或者时钟,然而,需要注意的是,在访问外部存储器时,脉冲会有部分跳动。 如果将的0位置设置为“1”,此时失效。此时的“1”,仅在执行指令或者时,才能正常工作。否则,会被拉高,在外部执行模式下会失效。 :外部程序储存器选通信号()是外部程序存储设备的选通信号。当AT89C51单片机执行外部存储设备的代码时,在每个机器周期会被激活两次,而访问外部存储设备时,将不能激活。 :访问外部程序存储器控制信号。当接口从0000H—FFFFH的外部程序存储设备中读取相应的指令时,端口需要保持低电平而接地。而执行内部的程序指令时,端口需要接。 当flash编程和校验的过程中,可以接12V(VPP)电压。 :振荡器反相放大器及内部时钟发生器的输入端。 :振荡器反相放大器的输出端。 3.3 温度信号采集模块的设计 3.3.1温度传感器的选择 温度传感器的选择在温度控制系统的设计中占有重要地位,如今在市场上所见的温度传感器,价格低廉的温度传感器灵敏度不高,且很容易出现问题,灵敏度高的温度传感器,却价格昂贵,并不实用。因此,本设计在设计之初考虑到了这些因素的影响,根据具体的应用场合选择使用不同的温度传感器,且整体设计并不因为传感器的选择而发生变化。 作为样本,本设计选择智能温度传感器[6],样本温度传感器的分辨率可达到12位,识别0.0625℃的温度。传感器具有独立输出信号和处理信号的功能,而且只需要一位与芯片的接口,抗干扰能力强,温度测量范围为,在本设计中简单实用。 采用1-总线的数据传输的温度传感器,采取总线的方式不仅可以大大降低硬件成本,同时也有利于系统的扩展设计,所以串行总线广泛应用于单片机测控中[7]。此采取的数字化单总线技术[8],这样感测的温度信息可以从接口单线传出,指令信号也可以单线传入中,因此温度传感器与单片机的接口不像别的传感器那么复杂,只需要一条线,连接温度感测部分。温度传感器的供电方式,可以采用总线的供电方式,也可以采用外部电源供电的方式[9]。 在传感器上有唯一的系列号,因而一条总线上可以放置多个温度传感器,这样就可以增多本设计的适用场合,比如火力发电厂、浴室、植物的培植室等众多场所。关于温度传感器的内部结构图如图3-3所示,温度传感器的引脚说明在表3-3所示。 图3-3 内部结构图 表3-3 的引脚说明 引脚 符号 说明 1 接地 2 单线数据的输入/输出 3 可供选择的VDD两种供电方式 单片机与温度传感器结合的设计可以从通信线上得到电源[10],此工作原理为:当信号线为高电平时,接上电源,给电容器充电,当信号线为低电平时,断开电源,此时电容器供电,直到信号线再为高电平时,传感器接上电源,从电容器充电,反复运行。另一种工作方法为温度传感器外接5V电源直接供电。此温度传感器与芯片的接线如图3-4所示。 图3-4 图3.2 与接线方式 3.3.2 信号放大电路 在基于单片机的温度控制系统的设计中,信号放大的电路部分属于V-V放大,主要是对温度传感器感测空间温度信号的放大。前面温度传感器传输过来的信号经过差动放大器放大后,才能经过A/D转换器进行模拟信号、数字信号的转换,最后将数字信号送入单片机中处理,实现单片机对温度的控制。 放大器的极数与单极放大器的带宽增益相关,在这里我们选用差分式斩波稳零高精度的运算放大器。其中,一级放大器可以接成双端差分的输入,单端的输出形式。将放大器连接成T型反馈网络的形式,那么此放大器的放大倍数: 在实际应用中,各类元器件可以按照实际情况选定,通过电阻微调电阻实现系统需求。 3.3.3 A/D转换电路 A/D转化电路的功能主要是将模拟信号转换成数字信号,它是将温度传感器测量的温度信号传递给单片机的一个重要环节。如图3-5所示为芯片的引脚图。 图3-5 引脚图 图3-6 8255引脚图 A/D转换芯片主要由两个部分组成,一个为模拟芯片,另一个为数字芯片。模拟芯片由高性能的转换器和参考电压构成,数字芯片由逻辑控制电路和三态缓冲器构成。 芯片有以下功能特性: 芯片的分辨率:12位; 芯片的非线性误差:<±或±; 芯片的转换速率:25μs; 模拟电压输入范围:0-10V,0-20V; 电源电压:±15V和5V; 芯片的数据输出格式:12位/8位 芯片工作模式:全速或者单一的工作模式。 3.4键盘控制电路的设计 本研究所设计的基于单片机的温度控制系统,因适用场合不同,根据具体情况会在设置不同的温度值,此时就需要前面所提到的键盘控制电路。在键盘控制电路的设计中,选用芯片可编程并行接口,具体引脚如图3-6所示。 单片机有4个8位的并行接口,这些接口在设计中并不是完全提供给用户的,在外部扩展存储器时,只有和接口的部分口线供用户使用。因此在单片机设计的过程中也进行了接口局部拓展。 芯片的接口没那么复杂,在如图3-7所示的芯片的片选信号以及A0、A1地址选择线主要由单片机的和、接口经过地址锁存器来提供。 图3-7 键盘接口电路图 芯片的A、B、C端口以及相应的控制端口地址分别为、、和。芯片的D0~D7端口与单片机中的端口到端口连接。 键盘控制电路主要功能有:键1表示上升温度。键2表示下降温度。键3表示下限温度值。键4表示确定上限温度值。键5表示查询上下限的温度。根据具体的使用情况可以调节键1和键2来调节温度,当温度调到理想温度时,按下键3来确定下限值,此时调节的下限值将会保存到一个专用的寄存器中,在完成设定下限温度值后,再来调节键1和键2来调节温度,当温度调到理想温度时,按下键4来确定上限值,此时调节的上限值将会保存到一个专用的寄存器中,然后系统才能正常工作。 3.5液晶显示电路的设计 关于液晶显示器的功能前文已有相关介绍,液晶显示电路主要用来显示密闭空间的不同温度值。在如图3-8所示的电路图中,液晶显示模块用LED显示块来表示,它是由常规的发光二极管来显示温度。在图中的显示块中,此类显示块有两种:共阳极和共阴极。共阴极LED显示块的发光二极管公共部分接地。 图3-8 显示电路原理图 本研究选用的是共阴极的LED显示块,在图3-8所示的显示电路中,当二极管的阳极为高电平时,LED显示块的发光二极管点亮;LED显示块的发光二极管的引出端口(a~dp)与单片机的I/O口的8位线(~)相连接,此接口共阴极低电平有效,通过选择8位线并行的输出端口来输出不同的数据点亮对应的LED显示块的发光二极管,从而获得达到显示数字的效果。 3.6蜂鸣器警报电路的设计 本研究设计的蜂鸣器警报电路,主要功能是假如温度控系统的任意一模块不工作,即密闭空间在控制的情况下,偏离设定值过大,系统便会发生报警,该部分为单片机人机交互比较重要的部分,蜂鸣器警报电路如图3-9所示。 图3-9 蜂鸣器警报电路 在图3-9所示的电路中,采用继电器型,240AC的通断电流。直流线圈的电阻为95Ω,三极管采用,直流线圈的输出电流为150mA,放大系数β选择范围为60至1000之间,如果β取200,那么在5V下Ic的电流为50mA左右,基极电流为0.25mA左右。因为单片机接口只有在高点位输出信号时,才能达到这样大的电流,而且接口属于三态的输出输入接口,因此,需要接一个上拉电阻,上拉电阻的阻值由以下公式计算: 这里通过取10电阻来让Q1在高电平时饱和导通,这样,基极电流便为。二极管D1在设计电路中有保护的功能,当Q1关断时续流之后,能够避免电感线圈断路的时候电压过高而损坏三极管。 温度传感器具有存储的功能,即温度传感器自带存储器,这样温度传感器便能将设计之初,设定的温度差值存储在温度传感器的中,存储保存,每次系统启动时,系统都会从中读取设定的差值。在图3-9所示的继电器中,K1连接降温的装置,K2连接加热的装置,当实际的温度的温差值大于设定的温差值时,蜂鸣器发出提示音,表示超过设定值,加热器立即停止加热;当实际温差处于设计值之间的时候,继电器不工作。 3.7加热模块电路的设计 在基于单片机温度控制系统的设计中主要在于对温度的控制,一般情况下,密闭空间的温度与室外温度相差不多,那么为了满足生产生活的各类需求,需要在密闭空间中安置加热块,这样便能很方便的加热空间温度。又为了使空间温度均匀,常常将加热块均匀分布,这样温度传感器感测的温度更加准确。在现有的参考线路中,加热模块的电路很常见,对于本设计并非难点,主要在于如何使密闭空间受热均匀,温度传感器准确感测温度。 第四章 系统软件设计 以上主要介绍系统的硬件设计部分,但是要实现单片机控制温度的系统,还需要对系统软件进行设计。主要包括键盘部分程序的设计和温差控制部分程序的设计。 4.1软件设计方案 在软件的设计方案中,首先要了解实现的功能。先设定密闭空间温度,通过温度传感器感测密闭空间温度,由信号放大电路将温度信号放大,然后经过A/D转换电路转换将转换信号传递给芯片,假如感测器感测到密闭空间温度高于设定温度,系统立即停止加热,使温度达到密闭空间设定值温度;假如感测器感测到密闭空间温度低于设定温度,系统立即启动加热器,对密闭空间升温,使密闭空间温度升高。任意一模块不工作或工作出错,蜂鸣器会发出报警信号,从而达到智能化目的。液晶显示器可以实时显示密闭空间温度。系统流程图如图4-1所示。 图4-1 系统主程序流程图 启动温度传感器感测感测温度,将感测到的温度与设定值进行PID运算,假如,则加热,此时为高电平,在加热的过程中还要对密闭空间的温度进行检查。当时,此时为低电平,可控硅断开,关闭加热器。整个程序反复运行,直至结束。 4.2温度控制部分程序的设计 在此部分主要功能是将和两个采集的温度值互相比较,若≤蜂鸣器报警,此时将端口置为低电平,通过光耦合器打开可控硅,这样可以控制加热器加热,液晶显示器上显示888;若≥蜂鸣器报警,此时将端口置为高电平,通过光耦合器关闭可控硅,这样便可停止加热器加热,液晶显示器上显示888。 如果≤≤,此温度在正常的范围内,液晶显示器上显示温度。温度控制部分的流程图如图4-2所示。 开始 ≤ 计数器换码和地址送显存 蜂鸣器响、显示灯亮 置端口为1,开加热器 液晶显示 返回 计数器换码送显存 Y N 图4-2 温度控制部分的流程图 4.3键盘部分程序的设计 前面提及键盘的硬件设计部分,键盘主要是用来根据具体情况设置不同的温度值,选用的芯片在之前也有简单介绍。键盘部分的流程图如图4-3所示 图4-3 键盘处理子程序流程图 开始 有键按下? 延时20ms 判别键号 执行键处理子程序 返回 N Y 在选择键盘的时候,我们选择五个单键的键盘,这样更容易识别键盘值。五个键分别对应、、、、端口,在程序执行的过程中,需要对、、、、端口逐一进行判断高、低电平。如果端口是低电平表示按键按下去,如果端口是高电平,则表示按键并未按下。根据生活的习惯,键盘存在抖动问题,为了解决这一问题,采用键盘延时的原理,即有按键按下时,系统并不立即读入此键值,而是等待一段时间,然后判断按键的闭合,如果此时还是按键闭合,则进行按键处理,否则不进行处理。 4.4数据采集模块程序设计 在数据采集模块程序设计模块,系统采用动态扫描的方式,也就是通过改变端口输出的高电平的位及端口相对应的数据段,这样便可轮流点亮液晶显示器上的数码管,数码管进行内部转换将接收的十六位进制数的BCD码转换成字形码,在液晶显示器上显示相应的数字,因此需要在RAM区建立一个显示缓冲区。显示部分流程图如图4-4所示。 开始 显示缓冲区指针置初值30H送R0 扫描模式置初值FEH送R1 R1送P2口 取显示数据查表转换为段数据送P0口 延时1ms 显示缓冲器指针R0+1 R1=0? R1左移一位 返回 Y N 图4-4 显示子程序流程图 4.5液晶显示部分温度程序的设计 液晶显示器会显示密闭空间不同的温度值,在液晶显示部分温度程序的设计中,数据采集是巡回检测三点的温度参数并把它们存在外部RAM指定单元,采样程序如图4-5所示。 采样程序 初始化 各通道都采集一次? 输出通道号 启动转换 读写数据 修改通道及通道号 重装定时器0常数 启动 返回 N Y 图4-5 温度采样程序流程 第五章 总结与展望 本研究是基于单片机的温度控制系统。此系统可以根据具体的应用场合,采用不同类型的温度感测元件,通过对温度传感器感测到的温度进行分析、数值显示和数据存储,从而有效实现单片机对温度的智能控制。 论文结合实际应用,具体介绍了单片机及其相应的一些优势,然后相继介绍了温度控制系统的硬件、软件的设计方法,编写温度控制系统的程序,通过软件测试,本设计完全符合最初的设计目的。随着工业的发展,设计对象的复杂程度会越加复杂,尤其在设计滞后的、时变的、非线性的复杂的系统时,其中一些参数未知或者变化缓慢,或者带有延时,或者抗干扰能力差,或者获取的数学模型非常粗糙甚至没有[2],再加上现今人们对控制品质的要求日益加深,传统的PID控制的缺陷也逐渐暴露了出来。因此,设计师在应用PID控制的同时,也在不断修改,完善PID控制。 本设计在研究的过程中也有很多的不足: (1)在硬件方面,驱动电路的抗干扰能力差,可以考虑采用DSP或者ARM对系统进行重新设计; (2)在软件方面,程序较为复杂,可能会发生运算错误,可以摒弃传统的软件编程模式,采用基于实时操作系统的系统软件开发; (3)在算法方面,因为常常会遇到一些参数的不清晰,可以采用模糊控制的方式。 回顾基于单片机温度控制系统的设计过程,深刻的体会到自己在很多方面还有不足,通过本次毕业设计,本人深刻的感悟到理论联系实践的重要性,并在以后的工作和学习中,本人将继续加强专业知识的理解。 参考文献 [1] 黄凤娟.基于单片机的温度测控系统在温室大棚中的设计与实现[D].合肥:安徽大学,2006. [2] 王海宁.基于单片机的温度控制系统的研究[D].合肥:合肥工业大学 ,2008. [3] 吴禄慎, 李彧雯. 基于单片机的多点温度采集系统设计[J].飞机设计,2010(4):76 - 80. [4] 胡瑞雯.智能检测与控制系统(第1版)[M].西安:西安交通大学出版社,1991 [5] Trulove,J.LAN wiring.NEW YORK:McGraw-Hill,1997. [6] 张姗姗. 基于单片机温度采集控制系统设计[J].信息通信,2012(6):69-70. [7] XIAO,X.,and Ni,L.“Internet QoS:A Big PICTURE”IEEE Network,March/ April 1999. [8] 黄宇飞,吴江.单片机单总线技术[J].单片机与嵌入式系统应用,2001,(l) 数字化单总线技术 [9] Dallas Corp.,DS18B20 Programmable Resolution One--wire Digital Thermometer[Z].2000 [10] 夏志华.基于单片机的温度控制系统的研究与实现[J].煤炭技术,2013(2):191-192. 附 录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 #include <reg52.h> #include <math.h> #include <Ad7366.h>  #include <LTC1446_DA.h>   #define uchar unsigned char #define uint  unsigned int #define ulong unsigned long   double pv,sv,ei,ex,ey,K,Ti,Td,q0,q1,q2,op,x,ux,tv;  uint Ts;   void main(void) // 主程序 {              ex=0;    ey=0;      sv=80;      //设定值       K=1;    Ti=10;    Td=0;    Ts=100;         LTC1446(0,0);      RCAP2H=0x4C;  //100ms计时    RCAP2L=0x00;    TR2=1;    ET2=1;    EA=1;    while(1);  }   timer2 () interrupt 5 {     static uchar t;     TF2=0;     t++;     if(t==2)     {       t=0;               pv=ADC7366();     //AI1通道采集            ei=sv-20*pv;       q0=K*(ei-ex);       if(Ti==0)       q1=0;       else       q1=K*0.001*Ts*ei/Ti;       q2=1000*K*Td*(ei-2*ex+ey)/Ts;       ey=ex;       ex=ei;       op=op+q0+q1+q2;          if(op>4.5)       {op=4.5;}       if(op<0)       {op=0;}           LTC1446(op*1000,pv*1000);  //控制量输出        } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #ifndef __LTC1446_DA_H__ #define __LTC1446_DA__   sbit DA_DIN=P2^5; sbit DA_CLK=P2^6; sbit DA_CS=P2^4;   void LTC1446(int b,int a)     //单位为mv { int i,j; b=2000+b/5; a=2000+a/5;   DA_CS=1; DA_CLK=1; DA_CS=0;   i=0x800; j=12; for(j=12;j>0;j--)      //DA1输出 { if(a&i) DA_DIN=1; else DA_DIN=0; DA_CLK=0; DA_CLK=1; a=a<<1; }   for(j=12;j>0;j--)      //DA0输出 { if(b&i) DA_DIN=1; else DA_DIN=0; DA_CLK=0; DA_CLK=1; b=b<<1; } DA_CS=1; }       #endif 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 /********** 十二位ADC转换(AD7366)驱动程序 ************/    #include<math.h>     #define uchar unsigned char #define uint  unsigned int #define ulong unsigned long   sbit cs=P3^6; sbit addr=P1^1; sbit busy=P3^1; sbit sclk=P3^5; sbit outa=P1^4; sbit outb=P3^0; sbit cnvst=P3^4; sbit rang0=P1^2; sbit rang1=P1^3; sbit refsel=P3^7;   uint data1=0x0000,data2=0x0000; uint data3=0x0000,data4=0x0000; float out1,out2;   //**************初始化************** void st0(void) { refsel=1;    //内部参考电压 rang0=0;    //输入范围-10V到+10V rang1=0;      addr=0; 
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服