毕业论文抗酸染色实验恒温箱温控系统设计08270

上传人:无*** 文档编号:146485543 上传时间:2022-08-31 格式:DOC 页数:40 大小:388.50KB
收藏 版权申诉 举报 下载
毕业论文抗酸染色实验恒温箱温控系统设计08270_第1页
第1页 / 共40页
毕业论文抗酸染色实验恒温箱温控系统设计08270_第2页
第2页 / 共40页
毕业论文抗酸染色实验恒温箱温控系统设计08270_第3页
第3页 / 共40页
资源描述:

《毕业论文抗酸染色实验恒温箱温控系统设计08270》由会员分享,可在线阅读,更多相关《毕业论文抗酸染色实验恒温箱温控系统设计08270(40页珍藏版)》请在装配图网上搜索。

1、 毕 业 设 计(论文) 题 目 抗酸染色实验恒温箱温控系统设计 专 业 电子信息工程 学生姓名 邹海军 学 号 07082232 指导教师 *66 论文字数 19298 完成日期 2010-12-25 师 范 学 院 教 务 处 印 制抗酸染色实验恒温箱温控系统设计摘 要:为了实现抗酸染色实验的恒温控制,本文以STC89C52单片机为主控制器,采用DS18B20检测温度,利用数字PID算法和PWM输出控制双向可控硅通断,来驱动加热器工作,从而实现温度的控制。该系统经过实验验证,在抗酸染色实验恒温箱中得到了良好的应用。具有稳定,易控制,操作简便等优点。关键词:单片机,DS18B20,可控硅,P

2、IDThe Design of Temperature Control System of Acid-fast staining Experiment ThermotankAbstract:In order to complete constant temperature control of acid-fast staining experiment , this article takes STC89C52 microcontroller unit as mainly controller, uses DS18B20 to detect temperature, uses a digita

3、l PID algorithm and PWM output to control TRIAC on and off, to drive the heater in order to achieve temperature Control. The system is verified by experiments, and gets a good application on acid-fast staining experiment thermotank. Stable, easy to control, easy operation, etc.Key words:Microcontrol

4、ler Unit , DS18B20 , TRIAC , PID目 录第一章 绪 论11.1 选题的意义11.1.1 课题来源11.1.2 研究意义11.2 研究现状及发展趋势11.2.1 研究现状11.2.2 发展趋势21.3 论文研究的目标及主要内容21.3.1 研究的目标21.3.2 研究的主要内容31.4 本章总结3第二章 系统硬件电路设计42.1 系统方案设计与论证42.2 系统整体框图52.3 STC89C52单片机简介62.4 键盘控制电路设计72.5 彩灯与LED数码管显示电路设计72.5.1 彩灯状态显示电路72.5.2 LED数码管显示电路82.6 报警电路设计92.7 温

5、度采集电路设计92.8 温度控制电路设计102.9 电源电路设计102.10 本章总结11第三章 系统软件设计123.1 系统总体程序流程图123.2 按键功能程序设计123.3 LED显示程序设计153.4 温度采集程序设计163.5 温度控制程序设计193.5.1 PID简介193.5.2 温度控制程序设计213.6 定时和报警程序设计243.7 系统调试253.8 本章总结25第四章 总结及实验结果264.1 设计总结264.2 实验结果26参 考 文 献27结 束 语28致 谢29附 录30第一章 绪 论1.1 选题的意义1.1.1 课题来源本课题为与医学院的合作研究项目“抗酸染色实验

6、装置”的子课题。该装置可用于生产、科研、医院和计量部门等实验室做恒定温度实验和检定温度。本文针对课题中的温度控制部分进行研究。1.1.2 研究意义 在抗酸染色实验中,需要对涂有细菌的玻片进行恒温加热。温度对实验结果具有重要作用,过高或者过低的温度都会影响实验数据的精确性,从而得到错误的结论,影响实验进程。因此,研究高性能的恒温控制系统对于抗酸染色实验具有重要意义。温度是工业生产和科学实验中至关重要的一个因素, 在医药、冶金、航空和化工中都起着重要的作用, 温度的高低可以影响着许多产品的质量和使用的寿命以及科学实验数据的精确性。在现代的各种工业生产中,很多地方都需要用到温度控制系统,而传统的温度

7、控制系统控制精度低,控制能力较弱,故智能化的控制系统成为一种发展的趋势。恒温箱控制系统有着广泛的用途,可供医疗卫生、生物、科研中用做储存菌种,细胞培养,制药行业药品检测,医院临床检验,也可在农业中作为育种、发酵、育雏菌种培养以及其他恒温实验和恒温培养,是进行科研的必需设备。因此, 研究高性能的温度控制系统具有一定的现实意义。1.2 研究现状及发展趋势1.2.1 研究现状实验室在进行抗酸染色实验的过程中,所使用的传统恒温箱对温度的控制响应慢、超调大、精度低,其采用模拟电路方法,温度漂移及元器件的参数误差对温度的设定及控制精度影响较大,自动化程度低,成本高。而且这类恒温箱大都采用机械触点控温,以电

8、阻丝、电热管为发热源,靠风机或水循环热量,保持箱内温度。这类恒温箱存在以下问题:机械触点控温,调温钮易松动指示不准,传感器灵敏度差,温差范围误差大,变化幅度正负3-5;机械式传感器触点易打火炭化,时常出现接触不良或粘连。严重时引起电路、箱体内胆、热源、待测样品烧坏,器皿炸裂。造成分析结果的偏差、实验失败和经济损失;热源热效率低,工作时间长。电阻丝、电热管长时间工作易蒸发老化寿命短;设备故障率高,技术含量虽不高,但维修过程复杂。维修机械温控,更换电阻丝、电热管、水箱补漏等故障,几乎要分解箱体,不方便维修;无超温、漏电保护装置,采用电阻丝热源的箱体存在明火,有安全隐患。恒温箱控制系统有着广泛的用途

9、,可供医疗卫生、生物、科研中用做储存菌种,细胞培养,制药行业药品检测,医院临床检验,也可在农业中作为育种、发酵、育雏菌种培养以及其他恒温实验和恒温培养,是进行科研的必需设备。随着电子和计算机技术的发展,智能控制越来越普遍,具有简单、精确、可靠以及智能化等特点。电加热设备温度特性复杂,其温度的测量和控制亦显得尤为重要和复杂。多年来,研究人员一直不断地把各种新方法和新技术应用于电加热设备温度的测量和控制中,并获得了许多的经验和一定的成果。随着计算机、智能控制理论技术的飞速发展,加热设备参数的测量和控制已进入微机化、智能化的新时代。1.2.2 发展趋势在现代生产过程的检测和控制中,温度参数的测控量是

10、最重要最普遍的测控项目之一,温度也是日常生活中接触最多的。随着微电子技术的发展,特别是单片微型计算机的出现,体积小、成本低、精度高的单片机温度控制装置已经实现。单片机是一种高集成度的、可产生智能的芯片,其内部结构组成是一台完整的微型计算机,更由于其体积小,所以在控制领域得到广泛应用。由于单片机是按工业标准设计的,因此,它通常有很好的环境适应能力和抗干扰能力,故有很好的可靠性。随着超大规模集成电路,单片机的速度、内存量、位数等硬件性能也大为提高,采用单片机对温度控制具有控制方便、简单和灵活性大等优点。因此,以单片机为核心组成的温度控制系统是一种必然的结构形式。随着各种应用对温度控制精度的要求不断

11、提高,传统的模拟式仪表已经较难达到目标控制要求。各种新的控制理论和经典的控制方法在温度控制中的研究与应用也在不断发展,新型的、现代化的测温技术不断出现;温度信号的转化与处理趋于数字化、微机化和智能化;智能控制理论与技术日渐成为温度控制的基本理论与技术。文献【4】介绍了传统神经网络PID和柔性神经网络PID分别应用于恒温箱温度控制不同之处。文献【5】介绍了基于模糊神经网络的PID温度控制系统的优点。文献【6】介绍了模糊PID的控制原理,以及在恒温箱温度控制中的应用。文献【7】介绍了利用位置式PID控制算法实现对恒温箱温度的控制。因此,在抗酸染色实验装置中采用基于数字PID算法和单片机的恒温控制系

12、统必然会成为一种发展趋势。1.3 论文研究的目标及主要内容1.3.1 研究的目标本课题研究的目标是以STC89C52单片机为核心器件,设计一款抗酸染色实验恒温箱的温度控制系统,主要完成对抗酸染色实验过程的恒温加热的控制,同时具有报警、定时加热等功能。课题研究的主要目标及技术参数有以下几点:(1)通过按键设定加热目标温度和恒温时间;(2)通过LED数码管显示温度和时间,当目标温度到达时,倒计时;(3)通过绿、黄、红彩灯显示正在加热、定时倒计时、加热停止报警;(4)红灯闪烁报警的同时,结合蜂鸣器发出声音报警;(5)应用PID算法提高控制精度;温度误差小于0.2摄氏度;(6)系统加热温度小于100摄

13、氏度。1.3.2 研究的主要内容该系统由STC89C52单片机控制实现对抗酸染色实验过程的定时恒温加热,通过按键可以设定目标温度和恒温时间,然后通过数码管显示,配以LED彩灯显示实验处于哪一阶段。课题研究的内容主要有以下几点:(1)研究单片机的工作原理(2)研究各种PID算法及其在温度控制中的应用(3)研究抗酸染色实验的特点及要求指标(4)研究大功率加热管的驱动原理及其控制方式(5)研究系统按键、显示、报警等模块电路的设计及其与单片机接口电路设计(6)研究系统整体硬件电路及其程序设计。1.4 本章总结本章对课题的选题意义、研究现状及发展趋势和论文研究的目标及主要内容做了比较简单的介绍。加热温度

14、和加热时间是影响抗酸染色实验的重要因素,因此,研究高性能的温度控制系统具有重要意义。第二章 系统硬件电路设计2.1 系统方案设计与论证系统主要模块设计方案比较论证如下:1. 测温模块方案一:采用铂热电阻采集温度数据,通过A/D转换,将模拟信号转换成数字信号,送给单片机。大多数金属导体的电阻率随温度升高而增大,具有正的温度系数,这就是热电阻测温的基础。一般热电阻的测量范围可达-200+500,测量精度高,稳定性好,适宜于测低温。热电阻测得的信号需要经过A/D转换,才能送给单片机。原理框图如图2-1所示。热电阻Pt100放大电路A/D转换单片机图2-1 测温方案一原理框图方案二:采用数字温度传感器

15、DS18B20采集温度数据进行转换,直接送给单片机。DS18B20的测温范围是-55125,精度为0.5。该传感器将半导体温敏器件、A/D转换器、存储器等做在了一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值。信号传输采用单总线结构,大大提高了系统的抗干扰能力。原理框图如图2-2所示。DS18B20数字温度传感器单片机图2-2 测温方案二原理框图比较方案一与方案二,优缺点如下:虽然热电阻测量范围宽,精度高,但是测量方法复杂,成本较高;而DS18B20数字温度传感器虽然测量范围小,但已经能够满足本系统的测量范围要求和精度要求,而且测量方法简单,无需进行A/D转换,成本也低。故选择方案

16、二。2. 温度控制模块方案一:采用继电器驱动电加热管加热升温。通过单片机I/O口控制电平转换,触发继电器线圈的的通断,来驱动加热管进行加热。继电器是一种电子控制器件,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。原理框图如图2-3所示。单片机继电器加热管 图2-3 温控方案一原理框图方案二:采用双向可控硅驱动电加热管加热升温。通过单片机I/O口的电平转换控制双向可控硅的通断,驱动加热管加热。双向可控硅是在普通可控硅的基础上发展而成的,它不仅能代替两只反极性并联的可控硅,而且仅需一个触发电路,是比较理想的交流开关器件。原理框图如图2-4所示。单片机双向可控硅加

17、热管图2-4 温控方案二原理框图比较方案一与方案二,优缺点如下: 虽然继电器控制电路简单,但是加热过程加热管通断频繁,继电器的触点容易损坏;而双向可控硅用隔离器件实现了控制端与负载端的隔离,以小功率控制大功率,具有反应快,在微秒级内开通、关断;无触点运行,无火花,无噪音;效率高,成本低等优点。故选择方案二。3. 显示模块方案一:采用LCD1602液晶显示器。1602液晶显示器,每行显示16个字符,共显示2行,并行接口。其体积小、功耗低、显示操作简便。方案二:采用LED数码管显示器。8段LED数码管,内部由8个发光二极管组成,能显示数字0-9和部分字母。比较方案一与方案二,优缺点如下:1602液

18、晶显示器显示内容多,人机交互性好,但是成本较高;而本系统只需显示温度和定时时间,数码管就能很好的实现这一功能,且成本低。故选择方案二。2.2 系统整体框图在用89C52单片机设计系统时,首先要构成一个最小系统,单片机才能正常工作,即将单片机接上时钟(晶振)电路和复位电路。经过细致的分析与论证,我将本系统进行细化,分为几个简单的模块,再将各个模块进行统筹结合,最终构成了完整的一个系统,如图2-5系统整体框图所示。电源电路给整个系统提供+5V电源,通过温度传感器采集到的温度信号送给单片机,然后单片机模拟PWM控制可控硅的通断来驱动加热管加热或关断。通过键盘设定相应的参数, LED显示,并提供声光报

19、警。图2-5 系统原理框图2.3 STC89C52单片机简介STC89C52RC单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机,它是一种高性能CMOS8位微控制器,器件采用STC公司的高密度、非易失性存储技术生产,完全兼容传统8051单片机的指令系统。89C52单片机的片内结构如图2-6所示。它由如下功能部件组成:(1) 微处理器(CPU):89C52单片机中有1个8位的CPU,包括了运算器和控制器。(2) 数据存储器(RAM):片内512B的RAM以高速RAM的形式集成在单片机内,可以加快单片机的运行速度,而且这种结构的RAM还可以降低功耗。(3) 程序存储器(8KB Flas

20、h ROM):89C52片内集成有8KB的Flash存储器,用来存储程序。(4) 中断系统:8个中断源,4级中断优先权。(5) 定时器/计数器:片内有3个16位的定时器/计数器,具有4种工作方式。 (6)串行口:1个全双工的串行口,具有4种工作方式。(7)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口)(8) 特殊功能寄存器(SFR):共有21个特殊功能寄存器,用于CPU对片内个功能部件进行管理、控制和监视。图2-6 STC89C52单片机片内结构目前89C52单片机多采用40只引脚的双列直插封装方式,如图2-7所示。图2-7 89C52双列直插封装方式的引脚2.4 键盘控制电路设

21、计键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。常用的键盘接口分为独立式键盘接口和行列式键盘接口。1. 独立式键盘接口独立式键盘就是各键相互独立,每个按键各接一条输入线,通过检测输入线的电平状态可以很容易地判断哪个按键被按下。在按键数目较多时,独立式键盘电路需要较多的输入口线,故此种键盘适用于按键较少或操作速度较高的场合。2. 行列式键盘接口行列式(也称矩阵式)键盘用于按键数目较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。如图2-所示,一个44的行列结构可以构成16个按键的键盘。很明显,在按键数目较多的场合,行列式键盘与独立式按键盘相比,

22、要节省很多的I/O口线。本设计中所需按键较少,故选择独立式键盘,如图2-8所示。通过设置键可以设定目标温度和定时时间,加减键来增加和降低温度和时间的设定值。图2-8 按键电路2.5 彩灯与LED数码管显示电路设计2.5.1 彩灯状态显示电路彩灯显示电路如图2-9所示,发光二极管阳极接+5V电源,阴级与470欧姆电阻连接,再连到单片机I/O口。通过I/O口输出的电平高低来控制彩灯亮灭,当输出为低电平时,对应的发光二极管点亮,对实验进行的阶段作出显示,分别是正在加热、报警、定时倒计时。图2-9 彩灯状态显示电路2.5.2 LED数码管显示电路LED显示器是由发光二极管构成的,常用的为8段数码管,每

23、一个段对应一个发光二极管。这种显示器有共阳极和共阴极两种。共阴极数码管的发光二极管的阴极连接在一起,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极数码管的发光二极管的阳极连接在一起,当某个发光二极管的阴极为低电平时,发光二极管点亮,相应的段被显示。8段共阳极LED数码管的段码如表2-1所示。显示字符0123456789共阳极段码C0HF9HA4HB0H99H92H82HF8H80H90H显示字符AbCdEF灭共阳极段码88H83HC6HA1H86H8EHFFH表2-1 8段LED段码在多位LED显示时,通常将所有位的段码线的相应段并联在一起,由一个8位的I/O口

24、控制,而各位的共阳极或共阴极分别由相应的I/O口线控制,形成各位的分时选通。若要各位LED能够同时显示不同字符,就必须采用动态显示方式。即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码。这样,在同一时刻,3位LED中只有选通的那一位显示字符,而其他三位则是熄灭的。如此循环,就可以使各位显示将要显示的字符。虽然这些字符实在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短,则可以造成“多位同时亮”的假象,达到同时显示的效果。数码管显示部分如图2-

25、10所示,此数码管为共阳级数码管,所以需要外部低电平才能使相应的内部二极管点亮。数码管的8个脚A-DP接到单片机的P0口,位选控制端1H-6H分别接三极管Q1-Q6的集电极,三极管的基极分别接到单片机的P1.0-P1.5口,三极管的发射极连接在一起接+5V电源。通过P1口可以使相应的数码管位被选中,然后通过P0口送入相应的段码显示。左边的数码管显示温度,右边显示定时时间。图2-10 LED显示电路2.6 报警电路设计报警电路分为声音报警和发光二极管闪烁报警,即声光报警。光报警在前文阐述过,这里讨论声音报警。报警电路如图2-11所示。采用蜂鸣器发出蜂鸣的声音来达到报警的功能。由于蜂鸣器的工作电流

26、一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。图2-11 报警电路2.7 温度采集电路设计温度采集电路原理图如图2-12所示。温度传感器采用单总线方式的集成数字温度传感器DSl8B20。DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU(单片机)到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。DSl8B20的测量范围从一55摄氏度到+125摄氏度,增量值为05摄氏度。可在1s(典型值)内把

27、温度变换成数字。图2-12 温度采集电路DS18B20测温原理如图2-13所示,图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化,其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值见到0时,温度寄存器的值将加1,计数器1的预置值将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环知道计数器2技术到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于

28、补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图2-13 DS18B20测温原理图2.8 温度控制电路设计在本课题研究的抗酸染色实验恒温箱中,要求试样的温度恒定保持在50-85,因此这里只需考虑加热控制而不考虑制冷。由于电加热管需要220V供电,因此不能直接连接单片机。温度控制电路如图2-14所示,由双向可控硅BTA12-600B和光电耦合器MOC3062组成加热管驱动电路。双向可控硅和加热管串接在交流220V供电回路中,单片机经运算输出模拟PWM,经过光电耦合器,控制双向可控硅的通断,从而实现控制电加热管的加热。本温度控制系统采用通断控制,通过温度传感器测得的实际温度与设定温

29、度值进行比较,然后改变给定控制周期内加热管的导通和关断时间,达到调节温度的目的。当单片机的P2.0口输出低电平时,MOC3062输出端的双向可控硅导通,加热管通电加热;当P2.0口输出高电平时,MOC3062输出短的双向可控硅关断,加热管断电。图2-14 温度控制电路2.9 电源电路设计如图2-15所示电路为输出电压+5V、输出电流1.5A的稳压电源电路。它由电源变压器T1,桥式整流电路D5,滤波电容C5、C8,防止自激电容C6、C7和一只固定式三端稳压器(7805)组成。220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D5和滤波电容C5的整流和滤波,在固定式三端稳压器LM78

30、05的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常随市电电压的波动或负载的变化等原因而发生变化)。此直流电压经过LM7805的稳压和C8的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。本稳压电源可作为TTL电路或单片机电路的电源。三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。 图2-15 电源电路2.10 本章总结本章首先介绍了系统方案的设计与论证,比较了不同设计方案的优缺点,择优选之,确定整体的系统设计方案。介绍了STC889C52单

31、片机片内硬件的总体结构以及管脚分布等基本知识。然后详细介绍了系统各模块的设计原理,分别是键盘控制、LED显示、声光报警、温度采集、温度控制、电源电路等模块。独立键盘各按键相互独立,控制简单,方便各项参数的是设定。8段LED数码管显示器内部由8个发光二极管组成,能显示数字0-9和部分字母。LED发光二极管发出闪烁光,结合蜂鸣发出蜂鸣响声,可以实现声光报警功能。温度信号的采集选用数字温度传感器DSl8B20,DS18B20的测温范围是-55125,精度为0.5,抗干扰能力强。温度控制采用双向可控硅驱动加热管加热,双向可控硅是一种理想的交流开关器件,它能很好的实现控制端与负载端的隔离,以小功率控制大

32、功率。电源电路用整流桥堆结合三端稳压器LM7805将220V交流转为+5V电源,为系统供电。第三章 系统软件设计3.1 系统总体程序流程图软件是系统设计的重要组成部分,本系统采用DS18B20数字温度传感器采集温度数据,存入STC89C52单片机的内部数据存储器,经处理后送LED显示,并将测量值与设定值进行比较,经过PID运算得到控制量并经单片机输出去控制加热器。系统软件设计总流程图如图3-1所示,其中包括了系统初始化、温度测量、LED显示、按键处理程序、PID运算程序、声光报警等。图3-1 系统软件设计总流程图3.2 按键功能程序设计除系统复位键外,还有3个用于人工控制的按键。一个是菜单功能

33、键,进入设定目标温度和定时时间,以及确认完成设定;另外2个按键分别是加减键,增加或减少设定值。按键功能程序流程图如图3-2所示。图3-2 按键功能程序流程图按键功能部分程序如下:void key_scan() /按键扫描if(keyset=0)delay1(10);if(keyset=0)keysetnum+; /设置键按下次数自增 while(!keyset);if(keysetnum=1) /设置键按下第1次,设定温度个位if(keyup=0)delay1(10);if(keyup=0) temp_ge+; if(temp_ge=10) temp_ge=0;while(!keyup);if

34、(keydown=0)delay1(10);if(keydown=0)temp_ge-;if(temp_ge=-1)temp_ge=9; while(!keydown); if(keysetnum=2) /设置键按下第2次,设定温度十位if(keyup=0)delay1(10);if(keyup=0) temp_shi+; if(temp_shi=10) temp_shi=0;while(!keyup);if(keydown=0)delay1(10);if(keydown=0)temp_shi-;if(temp_shi=-1)temp_shi=9; while(!keydown);if(key

35、setnum=3) /设置键按下第3次,设定定时时间if(keyup=0)delay1(10);if(keyup=0) time_sum+; if(time_sum=100) time_sum=0; while(!keyup);if(keydown=0)delay1(10);if(keydown=0)time_sum-;if(time_sum=-1)time_sum=99; while(!keydown); if(keysetnum=4)/设置键按下第4次,退出设置,开始加热keysetnum=0; t1_flag=1; set_temp=temp_shi*10+temp_ge;3.3 LED

36、显示程序设计LED显示程序流程图如图3-3所示,根据传感器测得的温度数据,经单片机运算后,查表得当前温度所对应的段码(表2-1),送数码管显示。定时时间默认为0,由人工设定。图3-3 LED显示程序流程图LED显示部分程序如下:uchar code dis_712=0x90,0xf6,0x8c,0xa4,0xe2,0xa1,0x81,0xf4,0x80,0xa0,0xff; /共阳LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 Disdata=dis_7display2; /温度十位 discan=0xf7; delay(80); discan=0xff; Disdata=dis_

37、7display1; /温度个位 DIN=0;/点亮小数点位 discan=0xef; delay(80); discan=0xff; Disdata=dis_7display0; /温度小数位 discan=0xdf; delay(80); discan=0xff; Disdata=dis_7time0; /定时时间显示 discan=0xfb; delay(80); discan=0xff; Disdata=dis_7time1; discan=0xfd; delay(80); discan=0xff;3.4 温度采集程序设计由于DS18B20外接电路极为简单,所以电路连接没有问题,但是在

38、软件编程上,就要求严格按照时序进行读写操作。具体操作如下:对DS18B20操作时,首先要将它复位。将DQ线拉低480s至960s,再将DQ拉高15s至60s,然后DS18B20发出60s至240s的低电平作为应答信号,这是主机才能对它进行其它操作。写操作:将数据线从高电平拉至低电平,产生起始信号。从DQ线的下降沿起计时,在15s到60s这段时间内对数据线进行检测,如数据线为高电平则写1;若为低电平,则写0。至此,完成了一个写周期。在开始另一个写周期前,必须有1s以上的高电平恢复期。每个写周期必须要有60s以上的持续期。读操作:主机将数据线从高电平拉至低电平1s以上,再使数据线升为高电平,从而产

39、生读起始信号。从主机将数据线从高电平拉至低电平15s到60s,主机数据读取。每个读周期最短的持续期为60s。两个周期之间必须有1s以上的高电平恢复期。温度采集程序流程图如图3-4所示。图3-4 温度采集程序流程图温度采集部分程序如下:/*DS18B20复位函数*/ow_reset(void)char presence=1;while(presence)while(presence) DQ=1;_nop_();_nop_();/从高拉倒低DQ=0;delay(50); /550 usDQ=1;delay(6); /66 uspresence=DQ; /presence=0 复位成功,继续下一步

40、delay(45); /延时500 us presence=DQ;DQ=1; /拉高电平/*DS18B20写命令函数*/void write_byte(uchar val)uchar i;for(i=8;i0;i-)DQ=1;_nop_();_nop_(); /从高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0x01; /最低位移出delay(6); /66 usval=val1; /右移1位DQ=1;delay(1);/*DS18B20读1字节函数*/uchar read_byte(void)uchar i;uchar value

41、=0;for(i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ) value|=0x80;delay(6); /66 usDQ=1;return(value);/*读出温度函数*/uint read_temp() uchar i,j; ET0=0;ow_reset(); /总线复位delay(100);write_byte(0xcc); /跳过ROMwrite_byte(0x44);

42、/发转换命令,开始温度转换ow_reset(); /重新复位delay(1);write_byte(0xcc); /跳过ROMwrite_byte(0xbe); /读取内部RAM的内容j=read_byte(); /读温度值的低字节 i=read_byte(); /读温度值的高字节 temp1=i;temp1=8;temp1=temp1|j; / 两字节合成一个整型变量 i=(i4; temp=i|j; /获取的温度放在temp中 ET0=1;return temp1; /返回温度值/*温度数据处理函数*/work_temp(uint tem)display3=tem&0x0f; / 取小数部

43、分的值display0=ditabdisplay3; / 存入小数部分显示值display3=tem4; / 取中间八位,即整数部分的值display1=display3%100; / 取后两位数据暂存display2=display1/10; / 取十位数据暂存display1=display1%10;if(!display2)display2=0x0a; /最高位为0时不显示3.5 温度控制程序设计本控制系统中,采用的是数字PID控制算法。PID控制器是一种线性控制器,它将设定值与测量值之间偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对被控对象进行控制。3.5.1 PI

44、D简介1.基本原理在模拟控制系统中,控制器最常用的控制规律是PID控制。PID控制系统原理框图如图3-5所示。图3-5 PID控制系统原理框图PID控制是一种线性控制方法,它根据给定值r(t)与实际输出值y(t)构成控制偏差e(t),即e(t)=r(t)-y(t)。对偏差e(t)进行比例、积分、微分运算,将三种运算的结果相加,就得到PID控制器的控制输出u(t)。在连续时间域中,PID控制器算法的表达式如下: (3-1) 式中:kp为比例系数;Ti为积分时间常数;Td为微分时间常数。 2.基本概念 基本偏差e(t):表示当前测量值与设定目标之间的偏差。设定目标是被减数,结果可以是正或负,正数表

45、示还没有达到,负数表示已经超过了设定值,这是面向比例(Proportional)用的一个变动数据。 累计偏差e(t)=e(t)+e(t-1) +e(t-n):这是我们每一次测量得到偏差值的总和,是代数和,要考虑正负号运算的。这是面向积分项(Integral)用的一个变动数据。 基本偏差的相对量e(t)-e(t-1):用本次的基本偏差减去上一次的基本偏差,用于考察当前控制对象的趋势,作为快速反应的重要依据,这是面向微分项(Derivative)用的一个变动数据。 三个基本参数Kp、Ki、Kd:这是做好一个控制器的关键常数,分别称为比例常数、积分常数和微分常数。不同的控制对象需要选取不同的值,经过

46、现场调试才能获得较好的效果。标准的直接计算公式如下: (3-2)式(3-2)中的u(t)直接提供了执行机构的位置,故称为位置式PID算式或点位型PID算式。3.三个基本参数Kp、Ki、Kd在实际控制中的作用 比例环节:即时成比例地反映控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。比例作用大,可以加快调节,减少误差,但过大比例会使系统稳定性下降。 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数Ti。Ti越大,积分作用越弱,反之则越强。 微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得过大之前,在系统中引入一个有效

47、的早期修正信号,从而加快系统的动作速度,减小调节时间。PID运算程序流程图如图3-6所示。图3-6 PID运算程序流程图PID运算部分程序如下:struct PID unsigned int SetPoint; / 设定目标 Desired Value unsigned int Proportion; / 比例常数 Proportional Const unsigned int Integral; / 积分常数 Integral Const unsigned int Derivative; / 微分常数 Derivative Const unsigned int LastError; / Er

48、ror-1 unsigned int PrevError; / Error-2 unsigned int SumError; / Sums of Errors ;struct PID spid; / PID Control Structureunsigned int rout; / PID Response (Output)unsigned int rin; / PID Feedback (Input)unsigned char high_time,low_time,count=0;/占空比调节参数unsigned int s;/*PID初始化*/void PIDInit (struct PI

49、D *pp) memset ( pp,0,sizeof(struct PID); /*PID计算部分*/unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint )unsigned int dError,Error;Error = pp-SetPoint - NextPoint; / 偏差pp-SumError += Error; / 积分dError = pp-LastError - pp-PrevError; / 当前微分pp-PrevError = pp-LastError;pp-LastError = Error;retu

50、rn (pp-Proportion * Error / 比例项+ pp-Integral * pp-SumError / 积分项+ pp-Derivative * dError); / 微分项3.5.2 温度控制程序设计对于加温的温度控制,可以采用调节供电电压或在一定的时间循环周期内的供电时间比例来实现。一般以调节加温时间比例比较简单,也是控制上比较常用的方法,本文正是选用这种方法。温度比较在主程序中进行,当系统加热器启动加热后,先是迅速升温阶段,当温度比较当前值与设定值小于1度时,启动PID控制,调节PWM输出,控制加热器通断时间比例,抑制升温过快。温度比较子程序流程图如图3-7所示。图3-

51、7 T0温度比较子程序流程图温度比较处理子程序如下:compare_temp() unsigned char i; if(set_temptemp) if(set_temp-temp1) high_time=100; /全速加热 low_time=0; else for(i=0;i10;i+) read_temp(); rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform PID Interation if (high_time=100) high_time=(unsigned char)(rout/800); else h

52、igh_time=100; low_time= (100-high_time); else if(set_temp1) high_time=0; /停止加热 low_time=100; else for(i=0;i10;i+) read_temp(); rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform PID Interation if (high_time100) high_time=(unsigned char)(rout/10000); else high_time=0; low_time= (100-high_t

53、ime); 加热器的启停工作是在定时器T0中断子程序中完成的。定时器0中断服务子程序如下:void time0() interrupt 1 TH0 = (65536-10000)/256; TL0 = (65536-10000)%256; if(heat_flag=0) if(+count=(high_time) jiare=0; gled=0; yled=1; else if(count=100) jiare=1; gled=1; yled=0; else count=0; 3.6 定时和报警程序设计当前温度到达设定值后,就启动定时器,开始倒计时。同时,当定时时间到,就执行声光报警。程序流程图如图3-8所示。图3-8 定时报警程序流程图定时和报警部分程序如下:if(time_sum=0&t1_flag=1) heat_flag=1; ET1=0; yled=1; t1_flag=0; for(i=0;i20;i+) beepled=0; delay1(100); beepled=1; delay1(

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!