已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:自动加热控制系统设计摘 要目前,很多场合都需要自动加热控制系统,如锅炉、金属热处理等工业生产中。自动加热控制系统改善了生产条件差、控制精度低、资源利用率低等问题。本文设计了一个可用于金属热处理的自动加热控制系统,系统采用STC89C52单片机作为系统控制处理核心,采用数字化的温度传感器DS18B20采集水箱温度信息,并与设定值比较,计算出偏差,由固态继电器作为电加热炉的控制开关,控制器其导通时间。实测温度与给定值由LED显示。此外,还设置了温度报警功能,当期望值与实测值温差较大时进行故障声光报警。论文着重介绍了系统的硬件及软件设计。初步试验表明:该系统达到设计任务要求。该系统的电路结构简单,具有人工设定、自动调节、报警显示等功能。本系统采用单片机控制,具有成本低、可靠性好、结构简单、控制能力强等特点。因此,可很多领域都得到应用。关键词:单片机,DS18B20,固态继电器ABSTRACT At present, many occasions the need for automatic heating control system, such as the boiler, the heat treatment of metals in industrial production.Automatic heating control system to improve the production conditions are poor, low control precision, resource utilization rate is low problem. This paper introduces the design of a can be used in metal heat treatment automatic heating control system, the system adopts STC89C52 chip as the system control processor core, the application of digital temperature sensor DS18B20 temperature information collection water tank, and is compared with the set value, calculate the deviation, by solid state relay as the electric heating furnace control switch, controller of the conduction time.The measured temperature and a given value by the LED display.In addition, also set up a temperature alarm function, the desired value and the measured value of large temperature difference when the fault alarm.This paper mainly introduces the system hardware and software design.Preliminary experiments show that: the system reach the design requirements.The system has the advantages of simple circuit structure, with artificial settings, automatic control, alarm display and other functions. This system adopts single-chip microcomputer control, has the advantages of low cost, good reliability, simple structure, strong control ability and other characteristics.Therefore, many areas have been applied.KEY WORDS:Single chip microcomputer,DS18B20,Solid State Relay第一章 前 言1.1选题的背景意义 随着我国经济的迅速发展,能源短缺已成为制约我国工业发展的重要阻碍,社会各界都对此积极关注。此外,温湿度的自动化控制已经在工业生产中得到了广泛的应用。因此,自动加热控制系统的出现极大地解决了能源利用率的问题,有效地改善了目前资源浪费和利用率低等问题。自动加热控制系统极大地方便了以前生产条件差、控制精度低、资源利用率低等问题。温度控制系统在国内各行各业虽得到了广泛的应用,但就我国目前生产的温度控制器来讲,总体发展水平仍然存在很多问题,存在很多弊端。目前,很多场合都需要自动加热控制系统,如锅炉、石油、化工、冶金、机械、热处理、建材、电子、材料、轻工业、制药、表面处理等工业生产中。在比如好多都与我们日常生活紧密相关的空调、电热毯、电饭锅、电磁炉、电暖气、打印机、吹风机等也都不同程度的应用了自动加热控制系统。 现在,我国正主张节能减排。因此,设计一套完善可行的自动加热控制系统具有巨大的经济意义和环保价值。自动加热控制系统与我们生活紧密联系,所以它的需求将会有一个非常可观的发展前景,况且,目前我国自动加热器的发展还不是很成熟,综合国力还有待提高,21世纪赋予我们更多的机遇,同时也给了我们更大的挑战,只有提高我国的综合国力,大力加强科技教育投资力度,让我国的科技更加提高,这样才能立足世界不败之林!加热温度控制系统的设计有很多不同的方案,有的是采用手动控制,继电器控制,可控硅晶闸管控制等。1.2国内外研究方案目前国内的主要控制方法:手动控制、温度仪表显示;顺序控制器;全PLC控制;专用电脑控制加热形式有:1.电阻加热式 这也正是国内绝大多数厂家采用的方式,其特点是锅水不带电2.电磁感应加热式 其原理是当电流通过加热线圈时,就会形成电磁场,把金属铝壳至于电磁场中就会使炉壳产生涡流并导致其发热,从而完成对锅水加热的目的。传统的自动控制加热系统普遍采用继电器控制技术,根据继电器的导通与关断来控制加热设备的加热。由于传统继电器采用固定接线的硬件实现逻辑控制,使控制系统的体积增大,耗电多,效率不高并且因为接线繁多容易出现故障,不能保证产品的质量以及正常的工业生产。国外的主要形式有:PID控制、模糊控制、神经网络和遗传算法等。1.3我的可选方案经分析国内外的现状及我们完成的可行性,经讨论决定我们的思路是:方案一:自动加热控制系统采用单片机为核心进行控制。期望温度值由电位器电路经过A/D转换后得到,然后与数字温度传感器DS18B20的测量结果进行比较,这样可能会存在偏差,如果偏差存在,则再经PID调节,再进行D/A转换、运算放大器放大,然后再和555定时器产生的三角波进行比较得到脉冲信号,该脉冲信号的高电平使IGBT导通以控制电阻丝加热,再用数字温度传感器测温,构成闭环。直至测量的温度与期望值相等,最后经LED显示实测值。设计的主要内容包括52最小系统、电位器电路、A/D转换模块、D/A转换模块、555定时器模块、运算放大器和比较器、加热和测量模块、显示模块。方案二:利用单片机作为最小系统进行控制,期望温度值由电位器电路经过A/D转换后得到,实测温度值通过DS18B20测得,然后将期望值与实测值的进行比较,但这样可能会存在偏差,如果偏差为正,则固态继电器吸合,电炉开始加热,如果偏差为负,则固态继电器不吸合,直至测量的温度与期望值相等,最后经LED显示。此外,本设计还设置了温度报警功能,当期望值与实测值温差较大时进行报警警示,温差较小时则不报警。这样有利于提示工作人员更好的进行温度控制,而且,我们采用了灯光和蜂鸣器双报警,这样就避免了一个报警出现问题,导致不能正常报警,使其出现误差。同时,对于有的噪声干扰大的工作环境中,采用声源报警可能无法正确识别;而对于有的能见度低的工作环境中,采用灯光报警也不利于识别。因此,采用双报警有效地避免了报警误差。设计的主要内容包括52最小系统、电位器电路、A/D转换模块、加热和测量模块、显示模块、报警模块。最后,我们以方案一为主,方案二作为预备方案,实现对水温的检测控制。 第二章 总体设计方案2.1 设计指标1.控制加热炉中水温的恒定;2.采用位式调节规律;3.运行开始后,可显示瞬时温度和设定温度值;4.具有上下限报警功能;5.可以实时设置期望温度值;2.2 系统概述本课题所设计的自动加热控制系统主要包括两部分:硬件电路及软件程序。硬件电路采用ATMEL公司的AT89C52作为主处理器,系统主要由信号采集、A/D转换、数据处理输出、LED显示等模块组成。各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C语言编程,利用Keil 软件对其编译和仿真,详细的设计算法将会在程序设计部分详细介绍。系统控制原理框图如下:测量值被控变量偏差给定值测温传感器控制器执行器被控对象图2-1 控制原理框图 首先给定一个温度期望值然后与测量值进行比较,将得到后的偏差通过控制器再经过调节控制执行器对加热设备进行加热,然后经测温传感器进行测温,将实测值再与期望值进行比较,直至实测值与期望值相符合。2.3系统总体方案2.3.1方案一的系统总体方案框图比较器电位器A/D控制器D/ANE555IGBT加热杯测温元件图2-2 方案一系统总体方案2.3.2方案二的系统总体方案框图温度值电位器A/D控制器继电器加热杯测温元件图2-3 方案二的系统总体方案2.4控制方案选择 在实际的温度测量系统中,常用的控制方法有开关控制和PID控制等。开关控制的输出规律是根据输入的偏差的正负,控制器的输出为最大或最小。这种控制方法比较简单,易于实现。但其存在一定的滞后,使得温度在设定值附近有一定的波动,不适合高精度的温度控制中。PID控制具有较强的适用范围,可适用于控制对象惯性较大且控制精度要求较高的场合。这种控制既能快速控制,又能消除余差,具有较好的控制技能。2.4.1开关控制介绍 开关控制又称双位控制,其控制器只有最大或最小两个输出值,相应的执行器只有开和关两个极限位置。理想的双位控制器其输出y与输入偏差error之间的关系为: 理想的双位控制特性如图:图2-4 双位控制特性2.4.2 PID控制介绍在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;因此PID控制器是一种最优控制。参数的选择: 比例系数P对系统性能的影响:在连续控制方式中,最基本的控制规律就是比例控制。比例系数越大,放大倍数就越大,将偏差放大的能力越强,控制力度也就越强,反之亦然。比例控制的优点是控制及时、反应灵敏,偏差越大,控制力度越强,但其缺点是控制结果存在余差。积分控制I对系统性能的影响:为了消除比例控制器中的余差,在比例的基础上加入积分调节器,就可以轻松的解决,从而提高系统的控制精度。但积分的作用是随着时间的积累才逐渐增强的,控制动作缓慢,控制不及时。微分控制D对系统性能的影响:对于惯性较大的对象,受到干扰作用的初始时刻偏差很小。如果用比例控制,偏差值很小时,控制作用也很小,因此,比例控制对于惯性较大的对象控制过程缓慢,控制品质不佳。微分的特点是能起到超前控制的作用。能在偏差很小时,提前增大控制作用。对于惯性大的对象用比例微分,可以改善控制品质,减小最大偏差,缩短控制时间。但当偏差存在但不变化时,控制作用为零。基于以上特点,将比例(P)、积分(I)、微分(D)结合起来组成PID控制器可以有效地改善控制性能。数字PID算法的增量表达式为:u(k)=Pe(k)-e(k-1)+Ie(k)+De(k)-2e(k-1)+e(k-2)变形为:u(k)=(P+I+D)e(k)-(P+2D)e(k-1)+De(k-2)其中,k表示第k次采样,X(k)为设定温度,Y(k)为实际水温,u(k)为控制量,误差为e(k)=X(k)-Y(k)。2.5软件设计任务软硬分工后,软件部分完成的任务:开机后首先进行初始化,然后将给定温度值经A/D转换后显示出来,由于我们既要看到给定值又要看到实测值,否则难以判断当前温度是否符合给定的温度值,但我们又不想占用太多的单片机口线,所以我们采用一个四位LED数码管显示,通过一个按键的开关两种状态控制显示哪个温度值,这样只需在程序中进行选择即可。实测值采用DS18B20进行测温,将这两个温度值进行比较,判断是否符合误差范围,如果符合继续测温比较;如果不符合,判断是需要加热还是需要降温,然后进行相应的控制,直到符合误差范围,然后在测温比较,返回继续判断。第三章 硬件系统设计3.1 主控制器的选择这次设计采用的是Atmel公司生产的AT89C52单片机,目前,单片机产品百花齐放,各具特色,互为互补。单片机有着一般的微处理器芯片所不具有的功能,他可以独立的完成现代工业控制场所要求的智能化控制功能,其应用领域也在不断扩大。AT89C52单片机片内含有可编程Flash存储单元,用户可以很方便地进行程序的擦写操作;同时还含有12B的随机存取数据存储器(RAM)。AT89C52单片机属于AT89C51单片机的增强型,其主要工作特性是:片内程序存储器内含有的8KB的Flash程序存储器,可擦写寿命为1000次;片内数据存储器内含256字节的RAM;有32根可编程I/O口线;有3个可编程定时器;8个中断源;串行口是具有一个全双工的可编程串行通信口;具有一个数据指针DPTR;低功耗工作模式有空闲模式和掉电模式;工作电源电压为+5V;最高工作频率为24MHz。因为AT89C52的价格比较便宜、编程简单、支持在线下载程序,适合初学者学习使用,所以我们这次采用AT89C52作为主控制器。单片机引脚图为:图3.1 单片机的引脚图3.2 温度信号采集部分方案一:采用热敏电阻。利用半导体电阻值随温度呈显著变化的特性制成的热敏元件。但热敏电阻的互换性差,非线性严重,温度和电阻关系是指数关系。方案二:采用热电偶。热电偶是一种发电型的温敏元件,它将温度信号转换成电动势信号,配以测量电动势信号的仪表就可实现温度的测量。其优点为:测量精度高。精度可达0.10.2。具有良好的复现性和稳定性。动态特性好。它的测量端可以制成很小的接点,响应速度快,时间常数可以达到毫秒级甚至微妙级。构造简单,制造极其方便。通常是由两种不同的金属丝组构成,而且不受大小和开头的限制,外面设有保护管套,使用用起来非常方便。方案三:采用DS18B20。DS18B20 是DALLAS公司生产的一种单总线系统的数字温度传感器。他能提供9 位温度读数,分辨力为0.5,可在-55+125的范围内测量。每一个DS18B20有唯一的系列号 因此同一条单线总线上可以放多个DS18B20,十分方便。DS18B20的主要特点:1) 用户可自设定报警上下限温度值2) 不需要外部组件,能在-55+125的范围内进行温度的测量3) 在-10+85范围内的准确度为0.54) 通过编程可以实现9到12位的数字读数,测温分辨率达0.06255) 单总线接口方式,仅用一条线就可实现与微处理器的双向通信经过比较后我们发现DS18B20优越于其它两种方案,所以我们采用方案三。采集电路如图所示:图3.2 采集电路部分3.3 给定温度电路通常温度设定值由按键给定,但这样会使电路复杂;用电位器电路给定会简化电路,方便调节。本设计采用电位器电路给定初始值,需要用到AD转换电路。给定温度电路图如图所示。图3.3 给定温度电路3.4 显示部分本设计采用四位一体LED作为显示模块其图片为:图3.4.1 LED显示屏它与单片机的连接如图所示:图3.4.2 LED与单片机的连接图3.5 报警电路本设计采用发光二极管报警和蜂鸣器报警,即声光双报警,减少了单个报警不正常工作后带来的弊端,同时双报警的应用范围比较广阔。其报警电路图为:图3.5 报警电路部分方案一较方案二相比除了上述部分外,还要D/A转换电路、三角波电路以及执行器电路等模块。第四章 软件设计部分这次软件设计由以下几部分组成:DS18B20温度采集部分,数据处理部分,AD转换部分,显示部分以及声光报警部分。采用模块化将各个模块分别编程,最后采用子程序调用将程序融为一体,使程序编程简单,结构清晰,易于改正错误。在这里将对各个模块的流程设计做出说明,并给出了各自的程序流程图。4.1主程序设计本系统采用DS18B20进行测温。通过调整电位器阻值的大小设定给定值,将该给定值经过A/D转换后通过LED显示。给定值和设定值的偏差通过PID控制算法进行整定计算出控制量,然后和555构成的多谐振荡器生成的三角波进行比较,得到PWM脉冲对绝缘栅双极型晶体管(IGBT)进行控制,由于占空比的不同,IGBT的导通时间就不同,这样就可以控制加热时间的长短。其主程序流程图如下所示:否是A/D转换和测温开始初始化比较偏差是 否为零PID调节D/A转换返回图4.1 程序主流程图主函数的定义void main() initial(); /调用初始化函数 while(1) adc0809(); ds18b20(); if(aj=1) Delay_ms(10); b20display(); else if(aj=0) Delay_ms(10); display(); jrbj(); 4.2 ADC0809模块4.2.1 ADC0809引脚及功能介绍ADC0809为28引脚的双列直插式封装,其引脚如下:1) IN0IN7:模拟量输入通道。2) ADDA、ADDB、ADDC:模拟通道地址线。用于对模拟通道进行选择,其通道选择表如下所示:表1 ADC0809通道选择表C(ADDC)B(ADDB)A(ADDA)选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN73) ALE:地址锁存信号,对应于ALE上跳沿时,ADDA、ADDB、ADDC地址状态送入地址锁存器中。4) START:转换启动信号。在START信号上跳时,所有内部寄存器清0;在START信号下跳时,开始进行A/D 转换。(转换期间START保持低电平)5) D7D0:数据输出线。6) OE:输出允许信号。OE=0时,输出数据线呈高阻状态;OE=1时允许输出。7) CLK:时钟信号。需要外部提供,内部没有。8) EOC:转移结束状态信号。当EOC=0时,表示正在进行转换;当EOC=1时,表示转换结束。(可作为查询信号,也可作为中断请求求信号)9) VCC:+5电源10) VREF:参考电压(VREF(+)=+5V、VREF(-)=0V)4.2.2 A/D转换流程图由于本系统只需要采集一路信号,故可将A/D转化器的地址信号全部直接接地,这样在软件编程时就不需要设置ADC0809的地址信号。 A/D采样时先对ADC0809进行初始化,然后给ADC0809的START端子一个上升沿和下降沿,启动A/D;然后单片机读取ADC0809的EOC端信号,如果此信号为高电平,则说明A/D转换结束,单片机给ADC0809的OE端子一个高电平,读取转换后的采样值。A/D采样流程图如下图所示:NOYES开 始初始化 A/D启动A/D判断A/D转换是 否结束读取A/D值返回图4.2 AD转换流程图4.2.3 A/D转换子程序#include#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar disp4; /定义数组变量uchar td=0xf7,0xfb,0xfd,0xfe;sbit EOC=P32; /定义EOC引脚sbit OE=P31; /定义OE引脚sbit ST=P30; /定义START引脚sbit CLK=P33;sbit xsd=P17; /定义数码管小数点int temp,getdata;void delay(uint z);void display();void initial();void main() initial(); /调用初始化函数 while(1) OE=0; /刚开始禁止将转换结果输出 ST=0; ST=1; ST=0; /启动A/D转换开始while(EOC=0); /等待转换结束OE=1; /允许转换结果输出getdata=P0; /将转换结果赋值给变量getdataOE=0; /禁止转换结果输出 temp=getdata*1.0*5*25*10/255; /将得到的数据进行处理 disp0=temp%10; /取得个位数 disp1=temp/10%10; /取得十位数 disp2=temp/100%10; /取得百位数 disp3=temp/1000; /取得千位数 display(); /调用显示子程序 void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=115;y0;y-);void initial()TMOD=0x01;TH0=(65536-20)/256;TL0=(65536-20)%256;EA=1;ET0=1;TR0=1;void timer0() interrupt 1 /给AD0809提供25KHz的时钟脉冲 TH0=(65536-20)/256; TL0=(65536-20)%256; CLK=CLK; void display() /将显示结果在数码管中显示 uchar i,temperature;for(i=0;i4;i+) P2=tdi; P1=tabledispi; if(i=1)xsd=1; delay(1); 4.3 温度传感器DS18B20模块4.3.1引脚及功能脚介绍 温度传感器DS18B20有3个管脚:VCC为电源接口即可由数据线提供电源,又可由外部提供电源,范围3.0V5.5V。GND为接地线。DQ为数据输入输出接口。DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的电可擦除的EEPROM。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0、1字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。DS18B20的工作协议:初始化ROM操作命令存储器操作命令处理数据。ROM操作命令,如表2所示表2 ROM操作命令指令说明读ROM(33H)读DS18B20的序列号匹配ROM(55H)继续读完64位序列号的命令,用于多个DS18B20时定位跳过ROM(CCH)此命令执行后的存储器操作将针对在线所有DS18B20搜ROM(F0H)识别总线上各器件的编码,为操作各器件做准备报警搜索(ECH)仅温度越限的器件对此命令做出响应存储器操作指令,如表3所示表3 DS18B20存储器控制命令指令说明温度转换(44H)启动在线DS18B20作温度A/D转换读数据(BEH)从高速暂存器读9位温度值和CRC写数据(4EH)将数据写入高速暂存的第3和第4字节中复制(48H)将高速暂存器中的第3和第4字节复制到EERAM读EERAM(B8H)将EERAM内容写入高速暂存器中的第3和第4字节读电源供电方式(B4H)了解DS18B20的供电方式4.3.2 DS18B20程序流程图 DS18B20温度传感器是单总线式芯片,故对其读写都应该是一位一位的进行,而且DS18B20的读写有着固定的时序。利用DS18B20采集温度数据时,应先对其进行初始化,由单片机发出一个复位脉冲和从机发出存在脉冲,存在脉冲让单片机知道DS18B20在总线上且已经准备好了;当知道DS18B20存在时,单片机便向单片机发出ROM命令,设置DS18B20中ROM的格式;然后便可以对DS18B20采集的数据进行读取,由低位到高位一位一位的读取温度值,读取的温度值存放在两个变量中;最后对存在温度值的两个变量进行处理,是温度数据转化成十进制形式,以便进一步显示。DS18B20为单总线器件,数据和命令在一根线上传输,先向温度传感器写入转换命令,延长一段时间,再发送读命令,将温度值读回单片机,单片机进行数据处理,送显示,其转换关系为:T=temperature*0.625T为单片机要显示的温度,temperature为从DS18B20读回的数字量具体温度采集流程图如下图所示:开始初始化读取温度值写温度值转化为十进制返回图4.3 DS18B20程序流程图4.3.3 DS18B20子程序如下#include #define uchar unsigned char#define uint unsigned intsbit DQ=P25;sbit dot=P17;uchar td=0xfe,0xfd,0xfb,0xf7; uchar data disp4;Uchar code LED12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;uint T;uchar temph,temp1;bit fuhao;Delay_ms(uchar t) uchar i; while(t-)for(i=0;i120;i+); void delay (uchar t) while(t-); void Init_DS18B20(void) uchar x=0; DQ=1; delay(8); DQ=0; delay(90); DQ=1; delay(5); x=DQ; delay(50); uchar ReadByte(void) uchar i,dat; for(i=0;i=1;DQ=1;if(DQ)dat|=0x80;delay(8); return (dat) ; void WriteByte(uchar dat) uchar i; for(i=8;i0;i-) DQ=0; DQ=dat&0x01; delay(8); dat=1; DQ=1; ReadTemperature(void) Init_DS18B20(); WriteByte(0xCC); WriteByte( 0x44); Init_DS18B20(); WriteByte(0xCC); WriteByte( 0xBE); temp1=ReadByte(); temph=ReadByte(); T=temph; T=8; T=T|temp1;b20display() int temperature; uchar i; T=T*0.625; disp0=T/1000; disp1=T/100%10; disp2=T/10%10; disp3=T%10; if(fuhao)disp0=11; if(!disp1) disp1=10; if(!disp0) disp0=10; if(!disp1) disp1=10; for(i=0;i4;i+) P2=tdi;P1=LEDdispi;if(i=2) dot=1;Delay_ms(3);temperature=disp0*100+disp1*10+disp2; ds18b20() while(1) ReadTemperature();if(temph&0xf0) fuhao=1; T=-T; else fuhao=0;b20display(); main() ds18b20();4.4 PID子模块4.4.1 PID子模块程序流程图开始计算误差计算比例、积分和微分计算控制量返回图4.4 PID子模块程序流程图4.4.2 PID子模块的程序如下#include#define uchar unsigned char#define uint unsigned intuint cb3=0,0,0; /差值保存,给定和反馈的差值uint fh3; /符号,1则对应为负数,0为对应的正数uint KP;uint KI;uint KD;uint ku; /上一时刻的控制电压uint temp; /设定值uint T; /实际值uint out; /加热输出uint error; /*PID=ku+P*E(k)-E(k-1)+I*E(k)+D*E(k)-2E(k-1)+E(k-2);(增量型PID算式) 函数入口:temp(设定值),T(实际值)、P、I、D 函数出口:ku */void PIDoperation(void) /PID运算函数 uint piancha3=0,0,0; /中间临时变量 uint Postsum; /正数和 uint Negsum; /负数和 Postsum=0; Negsum=0; error=temp-T; if(error0) /设定值大于实际值否,即偏差大于0? if(error100)/偏差大于100否? ku=0; /偏差大于100(全速加热) else piancha0=error; /偏差cb1) /E(k)E(k-1)否? piancha0=cb0-cb1; /E(k)E(k-1) fh0=0; /E(k)-E(k-1)为正数 else piancha0=cb0-cb1; /E(k)piancha2) /E(k-2)+E(k)2E(k-1)否? piancha2=(cb0+cb2)-piancha2; /E(k-2)+E(k)2E(k-1) fh2=0; /E(k-2)+E(k)-2E(k-1)为正数 else piancha2=piancha2-(cb0+cb2); /E(k-2)+E(k)0 /*D*E(k-2)+E(k)-2E(k-1)*/ if(fh2=0) Postsum+=piancha2;/正数和 else Negsum+=piancha2; /负数和 /*ku*/ Postsum+=(unsigned long int)ku; if(PostsumNegsum) piancha0=Postsum-Negsum; if(piancha0100) ku=piancha0; else ku=0; else /控制量输出为负数 ku=100; else ku=0;void main() PIDoperation();4.5 D/A子模块4.5.1 D/A子模块流程图 开始初始化D/A转换输出结果结束4.5 D/A子模块流程图4.5.2 D/A子程序#include#define uchar unsigned char #define uint unsigned intuint ku,wenbian=20,shuziliang;float fenbian=0.0195,dianya,shuzixiaoshu2,shifenwei;sbit cs=P37;sbit wr=P36;void dacinit(void) cs=0; wr=0;void biaodubianhuan(void) ku=85; dianya=(float)ku/20; shuzixiaoshu0=dianya/fenbian; shuzixiaoshu1=shuzixiaoshu0*10; shifenwei=(int)shuzixiaoshu1%10; if(shifenwei=5) shuziliang=shuzixiaoshu0+1; else shuziliang=shuzixiaoshu0; void dac0832(uchar x) P0=x;void main() dacinit(); while(1) biaodubianhuan(); dac0832(shuziliang); 4.6预备方案主流程图在主程序中先对系统进行初始化,接着调用初始值设置子程序和实时温度采集子程序,设置低温报警值和高温报警值;然后分别数据进行处理并显示;再调用报警子程序,判断采集到的实时数据是否超过报警限,若实时数据小于低温报警值时,则进行灯光报警和蜂鸣器报警提示,这时继电器导通加热;如果实时数据高于高温报警值时,则进行灯光报警和蜂鸣器报警提示,这时可以在电热炉里添加冷水进行冷却;如果实测温度值在高温报警和低温报警值范围内则保持不变。系统采用ADC0809对温度信号进行转换,通过前置放大器进行放大后送给单片机,单片机采集电压信号并计算出实际温度值。主程序是一个循环体,通过对子程序的不断的调用进行温度的采集处理,以达到采集显示实时温度的目的。否是否是开始A/D转换和测温计算偏差e-4=e4加热返回图4.6 预备方案主流程图第五章 系统调试 在前期焊接工作和软件编程已经出有成果时,接下来的工作就是调试工作了,调试分为硬件调试和软件调试两部分。下面就分别介绍这两部分的调试过程及遇到的问题和解决办法。5.1 硬件调试在硬件的焊接工作完成后,要想知道硬件是否合格,能否达到标准,是要经过一些检测工具的检验,同时还要配合软件的测试才能知道。对硬件的测试主要是通过万用表和示波器进行的,在整个检测环节,调试是非常重要的,它在整个设计中占着举足轻重的位置。5.1.1 硬件调试工具简介硬件的调试主要通过万用表来实现。首先,要仔细对照电路原理图,确保硬件的焊接及连线与原理图一致。接下来就是检查各个焊接点有无虚焊,漏焊,短路等问题。具体方法是:把万用表的两个表笔接好,即黑表笔接在COM端,红表笔接在V端。然后把万用表打到二极管的档位上,用一只表笔接在焊接点的一端,另一只表笔接在应与这个焊接点短路(开路)的另一端,如果焊接完好,则万用表就会发出报警声(不会发出报警声)。另外还应检测一下使用的电阻、电容等器件是否正确。确定无误后,进行上电测试,把万用表打到测电压档位,看各处电压值是否正常。确定好硬件焊接无误后接下来要通过硬件与软件联机调试以完成预期目标。5.1.2 硬件调试问题及解决方法在硬件调试过程中,我们经过检测发现虽然各个连接点没有虚焊和短接,但是显示部分和A/D转换部分有一些小问题,再次检查电路,发现实际硬件电路图连接没有问题,最后检测发现单片机最小系统的P2和P3管口的VCC不是+5V,而是0V。最后我们把电源线引接到P0口,再次检测后,硬件基本已经完好。5.1.3 加热模块的调试我们的下限报警时的设计是蜂鸣器响,指示灯亮,同时,继电器吸合,电热炉开始工作,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青少年如何预防糖尿病
- 成都高尔夫球场租赁合同范本
- 电力公司入驻管理
- 酒店网络营销人员劳动合同模板
- 融资风险防范确保企业资金安全
- 智能家居招投标基本知识介绍
- 国有企业采购政策制定
- 电力工程钢板租赁协议
- 市场营销技能工资管理
- 环保科技公司人事经理聘用合同
- 人教版九年级道德与法治 上册 第三单元《文明与家园》大单元整体教学设计
- 铭记历史勿忘国耻(课件)小学生主题班会通用版
- 电能表安装作业指导书
- 新时代外语教育课程思政建设的几点思考
- 食堂副食品配送服务投标方案(技术方案)
- 大象版五年级科学上册第四单元《地壳》全部课件(共5课时)
- (4.43)-在马克思墓前的讲话马克思主义基本原理
- 石材保温一体板计算书分解
- 神经源性膀胱诊疗指南解读课件
- 施工作业单位安全培训教育试题(含答案)
- 企业经营状况问卷调查表
评论
0/150
提交评论