




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学毕业设计说明书〔毕业论文〕摘要液位作为工业生产过程中的主要的被控参数之一,被广泛应用于冶金、建材、化工、食品、石油等工业中,工艺过程中液位的控制效果直接影响着所生产出的产品质量。现代工业中的液位控制系统规模日趋复杂化、大型化,液位控制已逐渐成为目前过控领域的一个研究热点。基于单片机的液位控制器具有性能稳定、可靠,控制精度高,造价低,设置方便,操作方便等优点。本设计利用单片机实现对双容水箱液位的控制,该系统是以上下两个串联的水箱为研究对象,把下水箱的液位作为被控参数,通过压力变送器测量水箱的液位,并把测量结果送到以单片机为核心的控制器作为反响信号,控制器再根据预先设置的增量型PID控制算法进行运算,发出控制命令控制执行机构之一的调节阀开度大小,从而改变进入上水箱中水的流量大小,实现水箱液位的自动控制,整个控制过程中,水泵电机保持匀速供水。关键词:单片机STC89C52,液位控制,增量式PID控制算法,LED显示AbstractThelevelischargedwithoneoftheparametersoftheindustrialproductionprocess,themostimportant,widelyusedinmetallurgy,buildingmaterials,chemicals,food,petroleumandotherindustries,thelevelofcontrolintheprocessdirectlyinfluencestheproductionofproductsquality.LevelControlSystemscaleofmodernindustryarebecomingincreasinglycomplex,large-scale,levelcontrolhasgraduallybecometheProcessControlfieldofahotresearchtopic.Basedonsinglechipwaterlevelcontrollerhasmanyadvantages,suchasstableperformance,reliable,highcontrolprecision,lowcost,easysetup,easyoperation.Thedesignusesinglechipachievedual-tankwaterlevelcontrolsystemisbasedonthetwoupperandlowerwatertanksinseriesforthestudy,thefollowingtankleveliscontrolledparameters,thepressuretransmittertomeasurethelevelofthewatertank,andthemeasurementsgavemicrocontrollerasthecorecontrollerasthefeedbacksignal,thecontrollerbasedonincrementalPIDcontrolalgorithmispre-setcomputing,issuecontrolcommandstocontroltheactuatorvalveopeningsize,thuschangingintotheflowofwateronthetanksize.tankliquidlevelautomaticcontrol.Keywords:singlechipSTC89C52,liquidlevelcontrol,incrementalPIDcontrolalgorithm,LEDdisplay摘要 IAbstractII第一章引言 研究背景 国内液位控制的开展现状 PID调节器简介设计思路 设计意义 第二章硬件组成 系统硬件组成概述 数据采集电路 压力变送器 I/V转换电路A/D转换器STC89C52RC单片机D/A转换器DAC0832引脚功能DAC0832工作方式DAC0832工作时序V/I转换电路执行机构 控制阀 水泵电机 掉电存储器 LED显示LED显示器的结构移位存放器 第三章硬件设计 STC89C52单片机模块电路晶振电路 复位电路最小系统 LED显示模块A/D转换电路D/A转换电路V/I转换电路键盘电路 串口通信电路 第四章软件设计 主程序流程图 A/D转换子程序键盘控制子程序 PID控制子程序LED显示子程序Keil软件Keil软件简介Keil软件编程流程及程序下载第五章系统的调试及说明 硬件设计调试 软件设计调试 键盘和显示软件设计 输入信号的测量 PID控制量计算及数据处理软硬件联合调试 总结 参考文献 附录A本设计原理图附录B主程序致谢 内蒙古科技大学毕业设计说明书〔毕业论文〕第一章引言研究背景液位是工业生产过程中的主要被控参数之一,广泛应用于冶金、化工、建材、食品、石油等工业中,工艺过程中液位的控制效果直接影响着所生产出的产品质量。现代工业中的液位控制系统规模日趋复杂化、大型化,液位控制已逐渐成为目前过控领域的一个研究热点。国内液位控制的开展现状德州学院机电工程系的金秀慧做了基于MCGS的液位监控系统设计,它是一种基于AT89C51单片机的远程液位数据采集监控系统,采用单片机作为控制核心,上位机采用MCGS编写的监控软件,整个监控系统可以完成液位信号的采集与转换、数据传送和显示、控制等功能[2]。北方工业大学理学院的安艳伟做了基于单片机的分布式液位控制系统设计,设计了一种基于51单片机为核心的多机分布式液位控制系统,由数据采集模块,处理模块和多机通信平台组成,既满足了测量精度的要求,同时具有较高的可靠性,本钱低,控制灵活。随着传感技术的不断提高,分布式监控系统应用日趋广泛,一个高质量、合理化的多机串行通信平台就显得尤为重要[19]。南京邮电大学的牛标和张代远所做的可监控智能液位控制器系统设计中列举了液位控制系统可以采取的硬件方案以及他们各自的优缺点,采用FPGA作为控制器可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能扩展⑸。FPGA采用并行输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。但是由于其集成度高,使其本钱偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作[5]。根据哈尔滨工业大学的李小平所做的《液位控制系统建模及其控制算法的研究》对几种控制算法进行了研究,其中包括PID控制算法、大林算法、Smith预估控制算法、模糊控制算法等,并通过编程说明了其可行性和优越性:PID控制器是迄今为止应用最广泛的反响形式,它具有结构简单、容易实现、控制效果好等特点,且原理简明,参数物理意义明确,理论分析体系完整;大林控制算法的最大的特点是,将期望的闭环响应设计成一阶惯性环节加纯延迟,然后反过来得到能满足这种闭环响应的控制器[12。它是克服纯滞后的有效方法,一阶系统很快到达稳定,波动较少;Smith预估控制算法是一种简单而有效的控制方法,但只适用于单输入单输出系统,它的最大优点是将时滞环节移到了闭环之外,是控制品质大大提高,它的最大缺点是太过依赖精确的数学模型,对于外部扰动非常敏感,鲁棒性较差;模糊控制是一种新型控制方法,在冶金、化工、电力和家电等工业部门都有成功应用,它避开了复杂的数学模型,控制系统的鲁棒性强,通常能得到比拟好的性能指标,适用于水位这样的滞后非线性系统[12]。PID调节器简介传统的调节器多为模拟调节器,这种调节器多用气动或电动单元组合仪表来完成。随着单片机在控制领域中的广泛应用,利用计算机软件设计控制算法,具有更大的可靠性、灵活性以及更好的控制效果。因此,以单片机为中心、采用数字算法的数字调节器正不断代替着模拟调节器。在控制过程中,应用最广泛的调节器控制规律为比例〔P〕、积分〔I〕、微分〔D〕控制,简称PID控制,又称PID调节。在单回路反响控制系统中,由被控对象、变送器、控制器、和控制阀四个根本环节构成。控制器的参数对控制系统的控制效果产生很大影响:控制系统的动态误差、静态误差、稳定性都是通过对控制器的参数调节进行控制的。自从PID控制器问世到现在已有近70年的历史,它以稳定性好、结构简单、调整方便、工作可靠为优点成为工业控制领域的主要技术之一。当被控对象的参数和结构不能完全掌握,或者得不到准确的数学模型时,系统控制器的参数和结构必须依靠现场调试和经验来确定,这时采用PID控制最为方便。即当我们不能完全了解系统的被控对象或不能通过有效的测量手段来获得系统参数时,最适合采用PID控制技术。设计思路本设计利用单片机实现对双容水箱液位的控制,该系统是以上下两个串联的水箱为研究对象,把下水箱的液位作为被控参数,通过压力变送器测量水箱的液位,并把测量结果送到以单片机为核心的控制器作为反响信号,控制器再根据预先设置的增量型PID控制算法进行运算,发出控制命令控制执行机构之一的调节阀开度大小,从而改变进入上水箱中水的流量大小,实现水箱液位的自动控制,整个控制过程中,水泵电机保持匀速供水。系统工艺如图1.1所示:图1.1系统工艺图设计意义本设计之所以选择用单片机进行控制是由于其具有体积小、功能强、可靠性能高、造价比低和开发周期短等优点。而单片机控制系统以其性能稳定、可靠,控制精度高,造价低,设置方便,操作方便等优点,被应用到液位控制系统中来,增强了系统的可视性,使得人机交互的能力进一步提高。双容水箱本身存在惯性大、扰动多等问题,本设计利用积分别离和带死区的增量型PID控制可以成功的克服这些问题。这些问题的有效克服使得液位控制系统在工业上具有很大的研究价值。第二章硬件组成系统硬件组成概述本设计的硬件结构如图2.1所示。图2.1系统硬件结构框图数据采集电路数据采集电路的功能主要是采集容器中的实时液位高度,并且把这个采集到的模拟信号转换成单片机可识别的数字信号送入单片机。压力变送器压力变送器测量的是压力信号,根据液位参数与压力参数的关系即式〔2.1〕得到液位信号,从而将液位测量的数据转换为压力测量的数据。PDEgh 〔2.D环境温度—10℃〜+60℃介质温度—20℃〜+70℃电压输出型输出阻抗至250Q〔DC24V环境温度—10℃〜+60℃介质温度—20℃〜+70℃电压输出型输出阻抗至250Q〔DC24V供电时〕:0〜5VDC供电电压DC24V(12V〜32V)负载能力电流输出型^500:4〜20mADC表2.1JYB-KO-HAG压力变送器技术参数JYB-KO-HAG压力变送器用途:航空航天领域,工业现场过程压力控制,仪器医疗食品等行业,石油化工行业,航海及造船行业,水电、水利、发电厂等行业。JYB-KO-HAG压力变送器具有以下的特点:抗过载、抗冲击、抗干扰等能力强;温度补偿激光调阻,使用温域宽;防浪涌电压,反向极性保护;抗腐蚀性能好,可以测量多种介质;过流过压保护电路;进口陶瓷芯片或扩散硅,适用于不同场合的压力测量;稳定性高,实用性广;安装简便,小巧精致等。JYB-KO-HAG型扩散硅压力传感器的测量精度:A级〔士0.2%F.S〕,B级〔±〕.5%F.S〕。量程是:0-60MPa内任量程,最小量程为5kPa。JYB-KO-HAG型陶瓷压力传感器的测量精度:A级〔土0.%F.S〕,B级〔士1%F.S〕。量程是:0-10MPa内任量程,最小量程为30kPa。.Z/V转换电路测量所得的液位模拟信号经过压力变送器输出4-20mA直流信号后,再经250。电阻转换成直流1-5V标准电压信号,送入4口转换器。A/D转换器在工业控制过程中,被测参数〔如流量、温度、液位、压力、速度等〕都是连续变化的量,称为模拟量。而单片机只能处理数字量,所以在数据进入单片机之前,必须把模拟量转换成为单片机可识别的数字量,能够到达这一目的的器件,称之为模数转换器,即A/D转换器。A/D转换器有很多种,依据位数来区分,有16位、12位、10位、8位等。其位数越高,分辨率也就越高。通常使用的A/D转换器是将一个输入模拟信号转换为一个输出的数字信号,本设计所用的AQ转换器是ADC0832,它可实现0-5V模拟电压信号的8位数字量转换。本设计采用ADC0832模数转换器与I/V转换电路相连接,对输入的1-5V电压信号进行采样。现场传来的4-20mA电流信号经过适当的输入转换电路转换为单片机可接受的1-5V电压信号后直接接至单片机读写引脚上。同时对转换后的数字量进行数字滤波、标度变换等数据处理,增加数据的可信度、提高其抗干扰能力和稳定性。ADC0832是美国国家半导体公司生产的一种双通道、8位分辨率的AD转换芯片。由于它的兼容性、性价比高,体积小而深受企业及单片机爱好者欢送,因此到目前为止它已经有很高的普及率了。ADC0832具有以下特点:双通道人/D转换;8位分辨率;5V电源供电时输入电压在0-5V之间;输入输出电平与TTL/CMOS相兼容;一般功耗仅为15mW;8P、14P-DIP〔双列直插〕、PICC多种封装;商用级芯片温宽为0℃到+70℃,而工业级芯片温宽那么为00℃到+85℃;工作频率为250KHz,转换时间为32口S。芯片引脚如图2.2所示。芯片接口说明:CS:低电平芯片使能,片选使能。CH1:模拟输入通道1〔或作为IN+或IN-使用〕。CH0:模拟输入通道0〔作为IN+或IN-使用〕。GND:地〔芯片参与0电位〕。DO:转换数据输出,数据信号输出。DI:选择通道控制,数据信号输入。VCC/REF:电源输入端及参考电压输入端〔复用〕。CLK:芯片时钟输入端。CHOCH1CSDO>CLKD工MtEF图2.2ADC0832引脚ADC0832为8位分辨率的A/D转换芯片,其最高可达256级分辨率,可以适应一般的模数转换要求。其内部电源输入与参考电压的复用〔VCC/REF〕,使得芯片的模拟电压输入在0-5丫之间。芯片据有双数据输出,其可作为数据校验,以减少数据误差,芯片转换时间仅为32uS,转换速度快且稳定性能强。独立的芯片使能输入,使处理器控制和多器件挂接变的更加方便。通过DI数据输入端,可以轻易实现通道功能的选择。正常情况下,单片机与ADC0832的接口应为4条数据线〔CS、CLK、DO、DI〕。其中,由于DI端与DO端在通信时与单片机的接口是双向的并且未同时有效,所以电路设计时可以将DI和DO并联在一根数据线上使用。当ADC0832没有开始工作时,它的CS使能端应为高电平,此时芯片禁用,DO/DI和CLK的电平可任意。当要进行AD转换时,需先将CS使能端置低电平并保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端那么使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲下沉之前DI端必须置高电平,表示起始信号。在第二、三个脉冲下沉前DI端应输入2位数据用于选择通道功能,其功能见表2.2。如表2.2所示,当2位数据为“1、1”时,只对CH1进行单通道转换。当2位数据为“1、0”时,只对CH0进行单通道转换。如表2.3所示,当2位数据为“0、0”时,CH1作为负输入端及-进行输入,将CH0作为正输入端及+。当2位数据为“0、1”时,CH0作为负输
入端我-进行输入,将CH1作为正输入端及+。作为单通道模拟信号输入时,8位分辨率时的电压精度为19.53mV,ADC0832的输入电压是0-5V。如果作为由IN-与IN+输入时,可以将电压值设定在一个较大的范围之内,从而提高转换宽度。值得注意的是,在进行IN-与IN+的输入时,如果IN+的电压小于IN-的电压那么转换后的数据结果始终为00H。表2.3多路寻址:ADC0832差分多路方式多路寻址通道表2.3多路寻址:ADC0832差分多路方式多路寻址通道SGL/DIFODD/SIGN0100+01+CLOCK(CLK)♦-15ET-WPADDRESSMUX表2.2多路寻址:ADC0832单端多路方式多路寻址通道SGL/DIFODD/SIGN0110+11+图2.3ADC0832时序图ADC0832时序如图2.3所示,当CS由高变低时,ADC0832选通。在时钟信号是上升沿时,DI端的数据移入ADC0832内部的多路地址移位存放器。在第一个时钟脉冲期间,DI为高电平,表示启动位,紧接着输入两位配置位。当输入启动位和配置位后,选
通输入模拟控制通道,转换开始。转换开始后,经过一个时钟周期延接着在第一个时钟周期的延迟,以到达使选定通道稳定的目的。到第3个时钟脉冲的下降沿之后DI端的输入电平就失去了输入作用,此后DO/DI端那么开始依靠数据输出端DO进行转换数据的读取。从第4个时钟脉冲下降开始由DO端输出转换数据最高位data7,随着每一个时钟脉冲下沉,DO端输出下一位数据,直到第11个脉冲时输出最低位数据data0,一个字节的数据输出结束。反过来从此位开始输出下一个相反字节的数据,即从第11个字节的下降沿输出data。,随后依次输出8位数据,到第19个脉冲时数据输出结束。这也标志着一次AD转换结束了。最后将CS置高电平使芯片禁用,然后直接将转换过的数据进行处理就可以了。假设要再进行一次AD转换,片选信号CS必须再次从高向低跳变,然后后面再输入启动位和配置位。STC89C52RC单片机STC系列单片机芯片是由STMicroelectronics公司生产,并有宏晶公司做为大陆代理商。STMicroelectronics(意法半导体公司)是1987年6月位于意大利的SGS微电子公司和位于法国的汤姆逊微电子公司合并后产生的。1998年5月,公司由原来的SGS汤姆逊(SGSTHOMSON)微电子公司改名为意法半导体公司(STMicroelectronics),简称ST公司。STC89C52是一种带8K字节闪烁可擦除可编程只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的高性能、低电压的微处理器,俗称单片机。单片机引脚电路如图2.4所示,实物如以下图2.5所示:P33P32P32P37LPLPLPLPLE&nnMTP3?P3630却裁罚双2536P33P32P32P37LPLPLPLPLE&nnMTP3?P3630却裁罚双253627LCIDLttji:l3HD5电D7PPPPPPPP二一&
盟一黑图2.4单片机引脚电路图2.5单片机STC89C52实物图STC89C52RC可以代替AT89C51,速度更快,功能更强,价格更低,寿命更长。STC89C52RC的内核与AT51系列单片机一样,即引脚排列与外形相同。管脚说明如下:GND:地线。VCC:电源输入端,接+5V电源。P0口:8位漏级开路双向I/O口,名称为P0.0—P0.7。每个引脚可吸收8个TTL门电流。P0能够当做外部程序数据存储器使用,它可以被定义为数据/地址的第八位。在FIASH编程过程中,P0口被当作原码输入口,在FIASH进行校验时,P0口输出原码,此时的P0外部必须被拉高。P1口:带内部上拉电阻的8位双向I/O口,名称为P1.0—P1.7。P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入“1”时,其管脚被内部上拉电阻拉至高电平时,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉电阻的原因。在FLASH校验和编程时,P1口被用作第八位地址接收端。P2口:带内部上拉电阻的8位双向I/O口,名称为P2.0—P2.7。P2口缓冲器可接收输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉至高电平时,可用为输入。P2口的管脚被外部拉至低电平时,将输出电流。这是由于内部上拉电阻的原因。P2口当做16位地址外部数据存储器或作外部程序存储器进行存取时,P2口输出地址的高八位在写入地址“1”时,利用内部上拉电阻优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH校验和编程时接收高八位控制信号和地址信号。P3口:带内部上拉电阻的双向I/O口,名称为P3.0—P3.7。可接收输出4个TTL门电流。当P3口被写入“1”后,它们被内部上拉电阻拉至高电平,并用作输入。作为输入,由于外部电阻下拉至低电平,P3口将输出电流,这是由于上拉电阻的原因。在校验和编程时,P3口可接收某些控制信号。具体的P3口功能,如表2.4所示。ALE/PROG:地址锁存允许信号。当访问外部存储器时,地址锁存允许的输出电平引脚替代功能说明P3.0RXD串行数据接收端P3.1TXD串行数据发送端P3.2INT0外部中断0申请端P3.3INT1外部中断1申请端P3.4T0定时器0外部事件计数输入端P3.5T1定时器1外部事件计数输入端P3.6WR引脚替代功能说明P3.0RXD串行数据接收端P3.1TXD串行数据发送端P3.2INT0外部中断0申请端P3.3INT1外部中断1申请端P3.4T0定时器0外部事件计数输入端P3.5T1定时器1外部事件计数输入端P3.6WR外部RAM写选通端P3.7RD外部RAM读选通端表2.4P3口的特殊功能EA/VPP:程序存储器的内外部选通引脚。接低电平从外部程序存储器读指令,如果接高电平那么从内部程序存储器读指令。当EA接低电平时,那么在此期间为外部程序存储器〔0000H—FFFFH〕读指令,注意当加密方式“1”时,EA将内部锁定为RESET;当EA端接高电平时,此期间为内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源〔VPP〕。RST:复位输入端。引脚上出现2个机器周期的高电平时,将使单片机复位。PSEN:外部程序存储器的读选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将消失。XTAL1:内部时钟工作电路的输入及反向振荡器的输入。XTAL2:反向振荡器的输出。D/A转换器本设计采用的D/A转换器是DAC0832。它是采用CMOS工艺制成的直流输出型8位数/模转换器。它由模拟开关、倒T型R-2R电阻网络、参考电压VREF和运算放大器四大局部组成。输入的数字量与输出的模拟量成正比,这就实现了从数字量转换成模拟量的目的。一个8位D/A转换器有一个模拟输出端和8个输入端〔其中每个输入端是8位二进制数的一位〕。输入端有256个不同的二进制组态,输出那么为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。DAC0832引脚功能DAC0832的引脚如图2.6所示。1磁VCCWRIILEAGNDWR2DI3XFERDI2 D14Dll D15DIG D16Vref D17RfbIouL2DGNDloutl2021931841751667MS1391210n图2.6DAC0832引脚引脚说明:DI0—DI7:转换数据输入。CS:片选信号〔输入〕,低电平有效。ILE:数据锁存允许信号端〔输入〕,高电平有效。WR1:第1写信号〔输入〕,低电平有效。WR1和ILE两个信号控制输入存放器的控制方式:当ILE=1和WR1=1时,为输入存放器锁存方式;当ILE=1和WR1=0时,为输入存放器直通方式。WR2:第2写信号〔输入〕,低电平有效。XFER:数据传送控制信号〔输入〕,低电平有效。XFER和WR2两个信号控制DAC存放器工作方式:当WR2=1和XFER=0时,为DAC存放器锁存方式;当WR2=0和XFER=0时,为DAC存放器直通方式。IOUT1:DAC电流输出级1。IOUT2:DAC电流输出级2°〔IOUT1+IOUT2为常数〕Rfb:反响电阻端。DAC0832是电流输出型,为了取得电压输出,需在电压输出端接运算放大器,Rfb即为集成在片内的外接运放的反响电阻。Vref:基准电压〔-10到+10V〕。Vcc:是源电压〔+5到+15V〕。DGND:数字地,可与AGND接在一起使用。AGND:模拟地。DAC0832工作方式DAC0832内部主要有3个存放器,即8位D/A存放器、8位输入存放器、8位D/A转换器,对应3个存放器的控制DAC0832有3个工作方式。单缓冲方式:两个存放器中的一个存放器始终处于直通状态,即WR1=0或WR2=0,另一个存放器始终处于受控状态。直通方式:WR1=WR2=0时,数据可以从输入端口10—DI7经两个存放器直接进入口/A转换器。双缓冲方式:两个存放器均处于受控状态。这种工作方式适合于多模拟信号同时输出的应用场合。DAC0832工作时序DAC0832工作时序如图2.7所示。图2.7DAC0832工作时序图WR1=0、CS=0、ILE=1,使输入数据锁存到输入存放器。XFER=0、WR2=0,数据传送到DAC存放器并开始转换。V/I转换电路V/I转换是将输入的电压信号转换成需要的电流信号,转换后的电流相当于一个输出可调的恒流源,其输出电流应能够保持稳定而不会随负载的变化而变化。本设计采用的是三个运放实现电压到电流的转换。执行机构控制阀该设计采用的控制阀ML7420A6033是一个能够通过提供其电流大小来控制通过其中的液体流量的装置。假设单片机分析得出的即时液体高度比设定值低许多时,就会输出一个比拟大的电流,来控制流量阀的开度使其在单位时间内通过更多的液体,以便液体高度尽快地恢复到设定的初始液位值上。反之,开启排水阀进行调整。技术参数如表2.5所示。表2.5控制阀ML7420A6033技术参数执行器类型阀门提供电压24Vac±15%控制信号调节型手动操作是反响2-10Vdc频率50/60Hz介质温度℃〕最大值150℃2.6.2水泵电机当水箱水位下降到设定水位时,水泵电机可自动启动运转工作,给水箱补水;当水箱水位上涨到设定的高度时,水泵电机能自动停止供水。本设计中水泵电机的转速始终保持匀速转动。掉电存储器本设计采用的掉电存储设备是AT24C08。引脚如图2.8所示。2341G1-TD2341G1-TDVCCNC1CENC2CLKNC3DATU4SVCC7GND6P2dA5P21A— 24CC8图2.8掉电存储电路原理图AT24C08属于AT24C0X系歹T设备,该系列具有以下特点:与400KHz12c总线兼容;低功耗CMOS技术;1.8至U6.0伏工作电压范围;温度范围商业级工业级和汽车级;写保护功能当WP为高电平时进入写保护状态;自定时擦写周期;1,000,00编程/擦除周期;可保存数据100年;写缓冲器;8脚DIPSOIC或TSSOP封装。AT24C08是一个8K位串行CMOSE2PROM,内部含有1024个8位字节CATALYSTN司的先进CMOS技术,实质上减少了器件的功耗,AT24C08有一个16字节写缓冲器,该器件通过12c总线接口进行操作,有一个专门的写保护功能。使用AT24C08时最多可接两个器件。假设只有一个AT24C08被总线寻址,A2管脚可连接到Vss或悬空。且仅使用地址管脚A0、A1、A2管脚未用,可以悬空或连接到Vss。AT24C08集成电路采用8脚双列直插式封装,其集成电路的引脚功能及数据见表2.6所列匕AT24C08的极限参数:各管脚承受电压-2.0Vcc+2.0V;封装功率损耗Ta为251.0W;焊接温度〔10秒〕300℃;工作温度工业级-55℃到+125℃;输出短路电流100mA商业级0℃到+75℃;贮存温度-65℃到+150℃;Vcc管脚承受电压-2.0V到+7.0V。表2.6AT24C08集成电路引脚功能及数据引脚功能电压〔V〕电阻〔KQ〕红笔测量黑笔测量1地址A00002地址A00003地址A00004地GND0005数据SDA6时钟SCL7写保护WP8电源Vcc51.4-21.4-2LED显示LED显示器的结构数码管由7个发光二极管〔LED〕构成一个“日”字形,它门可以共阳极,也可以共阴极。它的工作原理是通过解码电路得到的数码导通相应的发光二极而形成相应的字。一般的半导体数码管是由7个条状的发光二极管〔LED〕排列而形成的,可实现少量字符及数字“0〜9”的显示。除此之外,为了实现小数点的显示,增加了1个点状的发光二极管,所以数码管由8个发光二极管〔LED〕构成,这些发光二极管被分别命名为“a,b,c,d,e,fgdp”。其引脚如图2.9所示。图2.9数码管引脚图图图2.9数码管引脚图图数码管按各自发光二极管〔LED〕电极的连接方式可分为共阳极数码管和共阴极数码管两种。共阳极数码管指将所有发光二极管的阳极连接在一起形成公共阳极〔COM〕的数码管。共阳极数码管在应用时应将公共阳极〔COM〕接+5V,当某一字段的发光二极管的阴极为高时,相应字段不亮,反之,当某一字段的发光二极管的阴极为低时,相应字段点亮。共阳极数码管内部连接如图2.10所示。W3C图2.10共阳极数码管内部连接图共阴极数码管指将所有发光二极管的阴极连接在一起形成公共阴极〔COM〕的数码管。共阴极数码管在应用时应将公共阴极〔COM〕接地线GND上,当某一字段的发光二极管的阳极为低时,相应字段不亮,反之,当某一字段的发光二极管的阳极为高时,相应字段点亮。共阴数码管内部连接如图2.11所示。图2.11共阴极数码管内部连接图应字段点亮。共阴数码管内部连接如图2.11所示。图2.11共阴极数码管内部连接图假设要数码管能正常显示,必须用驱动电路驱动数码管的各个段码,以便能够显示出我们需要的数字,故根据数码管驱动方式的不同,可以分为动态方式和静态方式两种。静态显示驱动〔也称直流驱动〕:指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用译码器译码进行驱动。静态显示具有显示亮度高和编程简单的优点。其缺点为占用I/O端口过多〔如驱动5个数码管的静态显示那么需40根I/O端口来驱动,然而一个51单片机可用的I/O端口只有32个〕;实际应用中必须增加译码驱动器进行驱动,这就增加了硬件电路的复杂性。动态显示驱动:它是单片机中应用最广泛的一种显示方式之一。动态显示驱动是指将所有数码管的8个发光二极管 的同名端连接在一起,然后为每个数码管的公共极〔COM〕增加一个位选通控制电路,位选通控制电路是由各自独立的I/O线控制的,当单片机输出的是字形码时,所有的数码管都接收到相同的字形码,但要想知道究竟是哪个数码管会显示出字,那么取决于单片机对位选通电路的控制,故只需将要显示字形的对应数码管的选通控制翻开,该位就显示出字形,假设数码管没有被选通,那么该数码管不会亮。轮流分时控制各个数码管的公共〔COM〕端,就可以使各个数码管在控制下轮流显示,这就是动态显示驱动。在轮流显示过程中,每位数码管的点亮时间为1ms—2ms,由于发光二极管的余辉效应及人的视觉暂留现象,即使实际上各位数码管并不是同时被点亮,但是只要扫描的速度足够快,那么它给人的感觉就是一组稳定的显示数据,不会有闪烁的感觉,动态显示的效果和静态显示一样。用LED显示器显示十六进制数的字型代码如表2.7所示:表2.7LED显示十六进制数的字型代码字形共阳极代码共阴极代码字形共阳极代码共阴极代码0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHA88H77HB83H7CHCC6H39HDA1H5EHE86H79HF8EH71H灭FFH00H2.8.2移位存放器本设计采用的74LS164是8位移位存放器,其引脚如图2.121A VCCB QTQO Q6Qi Q56 必Q3 MRGND CP14213312-1115106g不g图2.1274LS164引脚图引脚功能:Clock:时钟输入端。Clear:同步去除输入端〔低电平有效〕。A、B:为串行数据输入端。QA—QH为输出端。内部逻辑如图2.13所示。图2.1374LS164内部逻辑图74LS164工作范围:输入电压5.5V。电源电压7V。储存温度-65℃—150℃。工作环境温度0℃—70℃。当去除端〔Clear〕为低电平时,输出端〔QA—QH〕都为低电平,串行数据输入端〔A,B〕可控制数据。当输入端C,B〕任意一个为低电平时,在时钟端〔Clock〕脉冲上升沿作用下Q0为低电平,禁止新的数据输入。当输入端C,B〕有一个为高电平时,
另一个输出端就允许输入数据,并在Clock上升沿作用下决定Q0的状态。74LS164的时序如图2.14所示。图2.14时序图第三章硬件设计3.1STC89C52单片机模块电路3.1.1晶振电路YLji30P山1ji30P11.0592MGND图3.1晶振电路单片机晶振电路的作用是为单片机提供工作频率,使单片机能够完成一定的功能。单片机的晶振电路分为外部时钟信号和片内振荡电路。当使用片内振荡电路时,X1〔J1〕、X2〔J2〕与晶体振荡器〔简称晶振〕及电容C1、C2如图3.1所示的方式连接构成晶振电路。在该电路中,电容C1、C2、晶振以及片内与非门〔起反响放大作用的元件,类似于电容三点式振荡电路中的三极管〕构成了电容三点式振荡器。振荡电容C1和C2的取值范围与晶振的频率及种类有关。为了减少寄生电容对振荡频率的影响,在印制板上电容C1和C2应尽可能靠近单片机芯片的X1和x2引脚,必要时可以采用温度系数较小的NPO电容。当采用外部时钟信号时,外部时钟信号需从X1引脚输入,x2引脚悬空,原因是单片机的片内时钟信号取自作为反响放大元件的二输入与非门的一个输入端。晶振的电容值,是根据晶振的频率计算出来的,在晶振中含有电阻,由单片机的频率值,加上式〔3.1〕可以推导出晶振的上拉电容值在20—40P根本都可以,一般取电容值为30P。TORC 〔3.1〕3.1.2复位电路为了确保单片机系统电路可以稳定可靠的工作,复位电路是必不可少的一局部,复位电路的主要功能是上电复位。在本设计中,RET引脚为复位输入端,STC89C52RC采用高电平复位方式。为了保证CPU内部各单元电路可靠复位,RET引脚复位脉冲高电平维持时间必须大于等于2个机器周期〔即24个振荡周期〕。只要RET引脚保持高电平状态,那么每隔24个振荡周期将重复一次复位操作,直到RET引脚变为低电平。复位电路如图3.2所示。电路方面采用的是由RC分立元件构成的外部复位电路。工作原理:按下按键K0,RET端为低电平,此时电容通过电阻R1充电,一定时间后,电容两端电压增大,RET端近似为高电平,单片机复位,松开按键后,电容通过电阻R2放电,放电一段时间后,RET端又近似为低电平,复位结束,复位时间小于等于T。〔3.2〕图3.2复位电路T(〔3.2〕图3.2复位电路T(RDR)*C1 2 1033.1.3最小系统单片机最小系统很简单,就是能使单片机工作的最少的器件构成的系统。最小系统虽然简单,但是却是大多数控制系统所必不可少的关键局部。对于MCS-51单片机,其内部已经包含了一定数量的程序存储器和数据存储器,在外部只要增加时钟电路和复位电路即可构成单片机最小系统。STC89C52RC的最小系统如图3.3所示。30PRP451K16U:KET9nmP20INTOJ21P22T1P2330PRP451K16U:KET9nmP20INTOJ21P22T1P23TOP24P25直?正P26T27HLsaRZSETRKDTKDrFuJLLT而PSEHSTCB9C52R.DL口F3OmALE-JOo1Q34567ooo-uoooOPPPPPPPPRP35.1K图3.3单片机最小系统单片机系统中的各个局部是在一个统一的时钟脉冲控制下有序地进行工作,因此时钟电路是单片机系统最根本、最重要的电路。MCS-51单片机内部有一个高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端,如果引脚XTAL1和XTAL2两端跨接上晶体振荡器〔晶振〕或陶瓷振荡器就构成了稳定的自激振荡电路,该振荡电路的输出可直接送入内部时序电路。大规模集成电路在上电时一般都需要进行一次复位操作,以便使芯片内的一些部件处于一个确定的初始状态,复位是一种很重要的操作。器件本身一般不具有自动上电复位能力,需要借助外部复位电路提供的复位信号才能进行复位操作。LED显示模块在单片机应用系统中,数码管显示器显示常用两种方法:静态显示和动态扫描显示。基于LED的优点在本次设计中采用了数码管的静态显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。能供应单独锁存的I/O接口电路很多,常用的串并转换电路74LS164。完整的显示电路图如图3.4所示。UILETilLED.CLK9"hl3 LIA LIA1・DPV力, RI , E4 LIB LIE 2bcf■aLED_DATj'l」5 L1C L1C3uL£>6 LID LID4d白ef12LOLIE LIE SJ51DLLL1F LJF 5L2L1G L1G713L1H L1H3如74LSL6ADPY_7-SEG_DPLED2LED_i"LKU29CLR QX>CLK QBQCA QDE QEQF◎GQH3 L2A L2A 1idfye4 L2B L3B2b二J5 L3C L2C3L3ND5 L2D L2D4deaf二LOL2E L2E5J——?_I 510LLL2F L3FE12LM L2G713L2H L2H3dj74LSL64DPY_7-£EGLED3r_DPLED.CLKD35CLR QA¥CLK QEq。A QDB QEQFQGQH3 L3A L3A 1.DPV]口_ S3一一E4 L3B L3E 2br£-a15 L3C L3C3k血£ L3D L3D4d电IEfI%LOL3E L3E5d19t ■-1LLL3F L3F6L2L3G L3G7L3L3H L3H8DFT_7-SEQ_DPLEE:4LED_CLKUU9CLR QA>CLK QBQCJL QDB QEQFwQH3 L4A LdA1& CFTb *□flLip10. 9 ,g4 L4B L4B 25 L4C L* 36 L4D LWD4dcef1LOL4E L4E5—I 510LL L4F L” 占12L4G UG?13L4H UH874LSL^DPY_7-SEG_DP图3.4LED显示模块74LS164是串行输入并行输出的移位存放器。它具有两个串行输入端〔人和B〕和8位并行输出端〔Qa—Qh〕。CLR为异步清零端,当其为低电平时,可使74LS164清零
〔复位〕。因本设计不需要复位,所以将其接+5V。CLK为时钟脉冲接收端,用以控制移位存放器的移位节奏。如图3.4所示,移位存放器74LS164通过单片机的P10和P11口获得数据和脉冲,然后再把数据送给数码管,显示对应的数据。A/D转换电路正常情况下,单片机与ADC0832的接口应为4条数据线〔CS、CLK、DO、DI〕。其中,由于DI端与DO端在通信时与单片机的接口是双向的且并未同时有效,所以电路设计时可以将DI和DO并联在一根数据线上使用。ADC0832和单片机相连电路如图3.5所示。CH] 3P33A]P35A75TOC8CHOCHO匚Hl____csDO)CLKD]VEEFU2ADC0832PLO ]Piri prinPL1 CH] 3P33A]P35A75TOC8CHOCHO匚Hl____csDO)CLKD]VEEFU2ADC0832PLO ]Piri prinPL1 2P)L PQLp:,2 3匚1I? priQp:,3 4ppgp:,4 5p)4 pQ4p:,5 苗Pj5 口05p:,6 7匚“E prifiP17 gP'r? pn?P33 13「产「口ti gnP32 13„LJHLU tJLP22P35 15P34 31L bTO P24P25EA 91五门/P P26P27JI 19XLJ2 13PET 9s-r^RTT pvnTXDP37RT"l ITTfDPT6 16加 PSEM妙5TC39C52RD25P2426P2527P2628P27]0P30]LP3130ALE29PSEH39POO3SPOL37Pfl23£Pfl335PD434Tas33PDA32P072LP20£.02123P3224P23图3.5A/D转换电路3.4D/A转换电路DAC0832经过运放uA741输出0-5V电压信号。电路如图3.6所示。 产 1OKPZ2A5P21AGPMA7-5V 8P23AUI,vccwrTileAGNDWR2XFERDMDI5DI6DI7Im心DDDDVDGNDICbLitl口ACOHME图3.6D/A转换电路调幅分析:当数字量为0FFH=255,参考电压VREF=-5V时,I □—255VREFI □—255VREF—outi 256(RDR)〔3.1〕U□□i OUT1□(RFBFB2卒5□/R)□□■——-^e^L5V2 256(3.2)V/I转换电路图3.7V/I图3.7V/I转换电路选择该电路的理由是三个运算放大电路共同作用,代替了三极管,使电路更简单、方便,也减少焊接时的麻烦。设经过第一个运算放大器的输出电压为U1,经过第二个运算放大器的输出电压为U2,经过第三个运算放大器的输出电压为70,输入电压为Ui,输出电流为10。由式〔3.3〕和式〔3.4〕可得U口.25QJ1U「007一□ 1RR24(3.3)(3.4)由式〔3.3〕和式〔3.4〕可得U口.25QJ1U「007一□ 1RR24(3.3)(3.4)由式〔3.5〕和式〔3.6〕可得RQJ iR2(3.5)U00 00U □R5(3.6)RQU二T 1R5U0U—0 2R10R10U01.25□-i 2R9D-^
R(3.7)(3.8)(3.9)10 9键盘电路如图3.8所示键盘控制电路是由K1、K2、K3、0键接单片机的P1.4—P1.7口相连组成的,它完成PID参数值的设定和修改。按键功能如表3.1,按键设定值如表3.2所示。如PE〉Pill 1PH 2⑸ ITP3Q It:如PE〉Pill 1PH 2⑸ ITP3Q It:P0 3工口2 4P14 JP12' 6o]23456.71-ILIXIL1-1AIXppppppppnmP20□HQP2]TLraaTUp对P2J瓯而P2dmnXI5aRESETRJELTZD逅ALBfWEP3EHSTC89C52RDR.P25.IKO]235qiiPCP3PCP3PI3P3POPIJ10PS11Ml配.江艮图3.8键盘电路表3.1按键功能表按键功能K1修改PID参数K2加1键K3减1键K4确定并返回表3.2按键设定值K1键按下的次数n设定PID参数n=1修改比例系数Kpn=2修改积分常数Tin=3修改微分常数Td串口通信电路单片机与上位机的联系是通过串口来实现的,两者遵循一定的协议。在单片机与微机之间的距离在15米范围内,采用九针串口中的三根引脚与单片机相连即可,一个是串行数据发送端TXD,一个是串行数据接收端RXD,另一个是地端GND。由于单片机和微机之间的电平不兼容,单片机串口使用的是正逻辑的TTL电平,而上位机的串口使用
的是负逻辑的EIA电平,这样就存在TTL电平和EIA电平之间的转换问题。为了使单片机和微机之间的电平相互兼容,使用电平转换芯片RS232。RS-232电缆的两端,一端为母头〔DB9孔式〕,一端为公头〔DB9针式〕。DB9定义引脚:1DCD载波检测、2RXD接受数据、3TXD发出数据、4DTR数据终端准备好、5SG信号地线、6DSR数据准备好、7RTS请求发送、8CTS去除发送、9RI振铃指示。外部设备与串行接口之间的数据传送是按位进行的。RS-232采用负逻辑,即一5到一15V代表“1”,+5到+15V代表“0”。必须经过相应的电平转换,计算机才能通过串口通讯。计算机串口通讯接口采用DB9芯接插件,使用RS-232标准。第一局部是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供应RS-232串口电平的需要。第二局部是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚〔R1IN〕、12脚〔R10UT〕、11脚〔T1IN〕、14脚〔T1OUT〕为第一数据通道。8脚〔R2IN〕、9脚〔R2OUT〕、10脚〔T2IN〕、7脚〔T2OUT〕为第二数据通道。第三局部是供电。15脚GND、16脚VCC〔+5v〕。完整的串口电路如图3.9所示。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。101+V+01・VCCGND101+V+01・VCCGNDHoutC2+RIINV- T1DSTT2OUTT2INriinRjoirr。二ufRS2A2图3.9串口通信电路第四章软件设计本系统的软件设计程序采用C51语言编写实现并下载的,液位控制系统不仅能显示液位高度,还要对液位变化进行监控,把实时液位同设定值比拟,并有效地运用PID控制算法控制其PID参数,以便于实现全自动化的液位控制系统。主程序流程图本设计的整个软件设计程序采用的主要思想是模块化设计,它由四个子程序模块组成,即A/D转换子程序,LED静态显示子程序,PID控制子程序和键盘控制子程序。在主程序中通过函数调用实现对各个模块的连接。模块化设计的优点在于可实现程序的重复调用,并便于调试。主程序流程如图4.1所示。开始亍初始化A/D转换子程序jLED显示子程序PID控制子程序键盘控制子程序I图4.1主程序流程图在主程序中将采集到的信号经250Q的电阻转换成1-5V的电压信号再经过ADC0832利用A/D转换子程序把模拟信号转换成数字信号,再将转换后的数字信号送至单片机的P3口输入,结果输出到单片机的P0口和P1口使其直接驱动LED静态显示显示当前的液位值。单片机输出的数字信号经过DAC0832转换成模拟信号,再经过V/I转换电路把0-5V电压信号转换成为4-20mA电流信号输出以实现对执行机构的控制。PID控制子程序出来的数据进行变换后送到LED静态显示程序中进行显示。LED显示主要的主要任务是经过PID控制子程序控制后输出的测量值和根据实际情况而进行设定的设定值。同时PID控制中的比例系数Kp、积分时间Ti、微分时间Td由键盘控制子程序进行设定。A/D转换子程序A/D转换的硬件连接是利用ADC0832与单片机STC89C52RC的P3口相连,软件部分是利用A/D转换子程序首先对采样到的数据进行A/D转换,然后输入通道控制字选择AD转换的控制通道,比拟正逆序输出端D0的输出值A1、A2是否相等,假设A1与A2相等那么转换完成,将结果送到单片机缓冲单元存储;假设不相等那么重新开始转换。AD转换子程序流程如图4.2所示。 -
子程序入口一..-
端口初始|化CS=0选通ADC0832DI=1开始AD转换输入通道控制字,选择通道D7-D08位数据的正序DO端输出A1D7-D08位数据的逆序DO端输出 A2V一二一如牵「-一二二^A1和A2相等吗?---^Y转换结束,读取转换 ->果- 将结果送至缓存单元返回图4.2A/D转换子程序流程图不同被测对象的参数具有不同的量纲和数值,仪器在检测这些参数时,采集的数据并不等于原来带有量纲的参数值,它仅仅能代表被测参数值的相对大小,因而必须把它转换成带有量纲的对应数值后才能显示,称为标度变换。线性标度变换的公式如下所示:_、NDN_AD〔ADA〕Nx二0DA 〔4.1〕xm0non0m0式〔4.1〕中,A0为测量下限值,Am为测量上限值,Ax为实际测量值〔工程值〕,N0为A0对应的数字量,Nm为Am对应的数字量,Nx为实际测量值Ax对应的数字量。对于该设计,标度变换程序流程图如图4.3所示。标度变换主要是实现数字量到模拟电压数据的转换,最后送到数码管来实现液位数据的显示。标度变换的软件编程主要是依据标度变换公式来实现的。图4.3标度变换程序键盘控制子程序单片机的键盘,是人机联系的重要通道,操作者的许多指令都是通过键盘输入到单片机中去。键盘管理程序的主要任务是根据获取的按键编码,转入相应的键效劳程序,以便完成相应的功能。本设计采用独立式键盘,一共有四个按键,其程序首先经过键盘扫描,然后进行10ms的延时给单片机反响的时间,以免出现误动作,然后再进行键盘扫描。为了更好地实现本设计的水箱液位控制,需要调整不同的PID参数〔比例系数Kp、积分时间Ti、微分时间Td〕。按键功能如下:K1键一修改PID参数〔Kp、Ti、Td〕;K2键一加1键;K3键一减1键;k4键一确定键。按键设计的具体思路:K1键作为参数切换键,按下次数为n,当n=1时,修改参数Kp,按一次K2键〔K3键〕加一〔减1〕,假设按下K4键,那么参数、修改成功,假设没有按下,那么返回重新检测K1键按下的次数。当n=2时,修改参数Ti,按一次K2键〔K3键〕加一〔减1〕,假设按下K4键,那么参数Ti修改成功,假设没有按下,那么返回重新检测K1键按下的次数。当n=3时,修改Td参数,按一次K2键〔K3键〕加一〔减1〕,假设按下K4键,那么参数Td修改成功,假设没有按下,那么返回重新检测K1键按下的次数。假设n>=4时,那么返回液位显示。其键盘子程序流程图如图4.4所示。子程序入口- -Y K1键是否按下?K3键是否按下?图4.4键盘子程序流程图一1一变量初始化子程序入口- -Y K1键是否按下?K3键是否按下?图4.4键盘子程序流程图一1一变量初始化n+1fnn=1?T* K2键是否按下?---------N,K3键是否按下?N*K3键是否按下?PID控制子程序标准的数字PID算法可分为增量型算法和位置型算法两种。由于位置型算法占用大量的内存,计算起来也比拟繁琐,使用很不方便。因此,后来又出现了被广泛应用的增量型算法。但是无论对于增量型算法还是位置型算法都有一个共同特点,即比例、积分和微分的作用是彼此相互独立,互不相关的。这就有利于操作人员直观的理解和检查各个PID参数(Kp、Ti、Td)对控制效果的影响。增量型算法具有以下优点:(1)由于计算机只输出增量,所以误动作的影响较小,必要的时候可以通过逻辑判断的方法去掉,不会严重影响到系统的状态。在应用位置型控制算法时,必须要首先使计算机的输出值与阀门的原始开度相等,即P(k-1),才能确保手动到自动的无扰动切换,这给程序的设计带来许多不便。而增量型算法的设计相对位置型算法只与本次的偏差值有关,与阀门原来的开度无关,因而增量型算法更容易实现手动到自动的无扰动切换。除此之外,在位置控制算式的应用中,不仅要对E(j)进行累计相加,而且无论计算机出现任何故障都会引起P(k)的大幅度变化,这对生产是十分不利的。由于不产生积分失控,所以比拟容易获得较好的调节品质,故可靠性较高。PID控制子程序流程如图4.5所示。PID控制子程序入口一…_设定PID参数,计算系数 Kp、Ti、Td设置初值E(K-1)=E(K-2)=0 、Ud(K-1)=Ud(K-2)=0输入检测到的反响量 Y输入设定值 XY输入设定值 XY计算偏差E计算偏差E(K)=X-Y计算偏差E(K)=Y-X△Up(K)=Kp[E(K)-E(K-1)]、△Ui(K)=Ti*E(K)Y△U(K)=0△Up(K)=Kp[E(K)-E(K-1)]、△Ui(K)=Ti*E(K)Y△U(K)=0△U(K尸△Up(K)+△Ud(K)△U(K)=△Up(K)+△Ui(K)+△Ud(K)△Ud(K)=1/(Kp+1){Ud(K-1)-Ud(K-2)+Kp*Td[E(K)-2E(K-1)+E(K-2)]}E(K)<=B?3NE(K)>A?YU(K)=U(K-1)+△U(K)U(K)>Pup?'NU(K)>Pdown?U(K)=PupU(K)=PdownU(K)=Pup为下一时刻做准备E(K-1)-E(K-2),E(K) -E(K-1)Ud(k)一Ud(k-1),Ud(k-1) —Ud(k-2)U(K)-U(K-1)返回图4.5PID控制子程序流程图考虑到实际问题时,一般会有干扰存在,选择实际PID微分算式如下:TOC\o"1-5"\h\z□i(k)ddu(k)nru(k)nru(k) (42pid其中□u(k)DK[e(k)Ce(k0_)] (4.3)ppKT□U(k)D-^e(k) (4.4)iTi□i(k)Du(k)Qi(k口) (4.5)dddTu (k) D d——{u (k Q)CK K [e (k)Eb(kQ)]} (4.6)dKTDr d pdddu(k)Du(k「L)DU(k) (4.7)其中Ud〔k〕和Ud〔k-1〕分别是实际微分环节第k,k-1时刻的输出。k为采样序号〔k=0、1、2、……〕;K为调节器比例系数;K为调节器积分系数;K为调节器微分系数;e〔k〕为第长次采样时的偏差值;e〔k-1〕为第k-1采样时的偏差值;u〔k〕为第k次采样时调节器的输出值;u〔k-1〕为第k-1次采样时调节器的输出值;Au〔k〕为第k次输出的增量。相对于理想的增量型PID算式来说,实际微分PID控制算式具有可以有效限制高频干扰的优点。由于控制器输出的变化过大和过于频繁,现场希望当被调参数在一定范围内变化时,输出不改变。为了防止这种现象就要考虑到带死区的数字PID控制算法。带死区的数字PID控制算法:人为的设置一个死区〔不灵敏区〕值B,偏差的绝对值大于B时,那么进行正常的PID控制输出;当偏差的绝对值小于等于B时,其控制输出维持在上次的输出不变,即4Uk为00B值的设定要适当,过大的B值将会使系统产生很大的滞后,过小的B值将使控制动作过于频繁。控制系统中存在着动态误差,在一般情况下用积分作用进行调节,但是在动态过程中〔如系统的开工、停工或大幅度提降时〕,过大的积分作用可能导致系统稳定性的变坏,为了消除这种现象可以采用积分别离算法。具体方法是:在被控变量开始跟踪的时候,取消积分的作用,直到被控变量接近给定值时,才产生积分作用。积分别离控制算法的算式表示为:当式〔4.8〕成立时,为PD控制,Ti为0;当式〔4.9〕成立时,为PID控制。其中经数字滤波后的测量值为MK,给定值为UK,允许的最大偏差值为A。EDUQM|DA 〔4.8〕K1KK1(4.9)EnuDM।da(4.9)KKK1此外,在自动控制系统中,为了平安生产的要求,通常不希望调节阀“全开”或“全闭”因此设定一个上限位p和一个下限位p。换句话说,就是要求PID调节的输出up down必须限制在一个特定的幅度范围内,即〔4.10〕pmdp
down up〔4.10〕在具体系统中,不一定上限位和下限位都需要,可能只需要一个下限位或一个上限限位。4.5LED显示子程序利用单片机内部的串行接口,可以实现静态的显示处理。这样不仅可以节省单片机的并行接口资源,而且在大多数不使用串行接口的情况下,可以减少或是免去扩展接口。程序流程如图4.6所示。图4.6LED图4.6LED显示子程序流程图在这种设计中,串行口工作于方式0,数据的输入输出都通过RxD实现,移位脉冲那么由TxD发出。每次传送一个字节数据。每输出一个字节数据,单片机自动使串行中断请求标志TI置。通过测试该状态,即可确定该字节是否发送完毕。由硬件电路图可知,74LS164是串行输入并行输出的移位存放器。它具有两个串行输入端和8位并行输出端〔QA—QH〕。当显示数据从RxD端输出到移位存放器74LS164的输入端AB时,74LS164将串行数据转换成8位输出码QA—Qh,然后加到共阳极LED显示器上。究竟在哪一位上显示,还要P1口的状态而定。当某一位为低电平时,该位LED显示,其他位不显示。由于接口电路中显示模型输出地址和位选信号可一次选中,故只要一次输出即可显示一位。4.6Keil软件Keil软件简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编语言相比,C语言在功能上、结构上、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些局部组和在一起。运用Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil就是必不可少的编程软件,即使不适用C语言而仅使用汇编语言编程,Keil软件的方便易用的集成环境、强大的软件仿真调试工具也会让整个软件设计过程事半功倍。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,去Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体会高级语言的优势。Keil软件编程流程及程序下载Keil软件编程是在KeiluVision3界面上实现的。要实现软件编程,需要按以下步骤进行操作:〔1〕启动KeiluVision3从uVision3的Project菜单中选择NewProject,这时将出现“产生新工程”对话框,在对话框输入工程文件名,点击保存,出现“选择设备”对话框,在器件数据库中选择单片机STC89C52。〔2〕新建一个源文件用菜单项选择项File—New新建一个源文件,在翻开的编辑窗口输入源代码,并另存为*.c的文件。〔3〕选择建立的工程点击工程下方的*.c文件,用AddFilestoGroup…按钮把文STARTUP.A51添加到项目中。参加文件如图4.7所示。〔4〕创立HEX文件输入调试程序直至没有错误,创立一个HEX文件来进行软件模拟。如图4.8所示。〔5〕下载程序到单片机下载程序使用软件STC-ISPV391,启动软件后选择器件STC89C52RC。单片机选型如图4.9所示。SelectNCUTypeM匚U丁手工心STC39C51KCSTC30C53KCSTZ09CE4M4-STCa9C555J:H-STCQ9CE8MJ4-STCa9C51GRDiSTC30LE5LECSTC09LE52ICSelectNCUTypeM匚U丁手工心STC39C51KCSTC30C53KCSTZ09CE4M4-STCa9C555J:H-STCQ9CE8MJ4-STCa9C51GRDiSTC30LE5LECSTC09LE52ICSTCa9LE53IESTZ09LES4RD4STCa9LE55ED-fr5TC日9LE58ED4STCfl9LE5LaRD+谢单片BUSIVKT R-anee0300 1FFP伴范圉内未用区域埴式口当中 翻开捏序文件击行匚1,最高混特率最商谀恃率:96D0 ▼最低域特率:Z4DQ中的选项£c=IE。单倍速图4.9下载时单片机选型选择将要被下载的HEX机器码文件。HEX文件是由单片机开发环境输入、编辑代码后编绎产生的,文件添加如图4.10所示。设置串口和串口通信速度。烧录过程中,如果出现失败,可以考虑将串口通信速度降低再试,这是由于机器配置以及当地环境因素决定的,当供电电源偏低〔用USB供电的一般都会偏低〕和环境干扰过大时,必需选低一点的波特率〔即通信速率〕。下载成功与失败,可以从信息区的提示看出。选择并设置好串口后〔一般不需更改〕,进入第四步,而这一步根本上不用更改,串口选择及波特率选择如图4.11所示。图4.10添加文件选择时1H1图4.10添加文件选择时1H1Tin[函四的近也77也IlTirfiTi-filftCr.turnnrt.him皿“选择串行口,最高波特率最高波特率;9600 皿“选择串行口,最高波特率最高波特率;9600 ▼:最低波特率;2400 ▼中的选项图4.11串口选择及波特率选择点击“Download/下载”,就可以进入烧录状态,按下电源按钮,就可将程序下载到单片机中,程序下载如图4.12所示。图4.12程序下载按钮图Step图4.12程序下载按钮图Step寸步骤5:加wzilg”下载先点下载盘钮再归U上电复位-冷启朗工Iwnl■口&!/下载 ReT口智niga力,重复访薮内蒙古科技大学毕业设计说明书〔毕业论文〕第五章系统的调试及说明系统的调试包括硬件设计调试、软件设计调试和软硬件联合的调试。硬件设计调试第一步:检查电路。组装好电路通电前,先对照protel电路原理图检查电路连接是否有误。特别需要注意的是检查电源是否接反,与地之间是否有短路现象,二极管方向是否正确,电解电容的极性有没有接反,晶体管和集成电路的引脚有没有漏接或连接错误,不该连接的焊盘有没有误连接,最后检查器件与焊盘之间的焊接是否牢固,等等。第二步:通电观察。经过第一步检查无误后给电路板通电,接通后不要急于观察所要得到的设计结果,而是要先观察电路是否存在异样〔如:冒烟、放电的声光、异常气味、元器件发烫等〕,假设有异常发生,应立即断电,重新检查电路,排除故障后再次通电。假设无异常,那么测量各个集成块引脚电压是否存在异常,确保电路已经导通工作,没有断电的地方。第三步:静态调试。在未接入输入信号时,测量各级直流工作电流和电压是否有异常。对直流工作电流的检测一般情况下可用两种方式进行,具体要看印刷电路板时是否留有测试孔。假设没有留下测试孔,可串入电阻,测量电阻两端的电压值,然后根据电阻值的大小计算出电流值;假设之前留下了测试孔,可直接把电流表串入电路中测得电流。相比于电流测量而言,电压测量更简单方便,直接测量就可以得到。静态调试一般应用于集成电路和晶体管的场合下。第四步:动态调试。第四步检查无异常后,参加输入信号,观察输出信号是否与设计要求相符。调整电路中的交流通路元件〔如电容、电感等〕,使电路相关点的交流信号的幅度、波形、频率等参数到达预期的设计要求。假设输入信号为周期性变化信号,可利用示波器观测输出的信号波形。当采用分块调试时,除输入级采用外加输入信号外,其他各级的输入信号应采用前端输出信号。对于模拟电路而言,观测输出波形是否符合要求。对于数字电路,那么需要观测输出信号波形、脉冲宽度、幅值、相位及动态逻辑关系是否符合设计要求。在数字电路的调试中,常常希望让电路状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村山林分成承包合同范本
- 个人软装合同范例
- 企业临时劳务合同范例
- 借电缆合同范本
- 养鸡用地建房合同范本
- 二人合伙经营合同范本
- 借条合同范例 个人签字
- 与香港签加工合同范本
- 农村小院出租合同范本
- 仓库装卸用工合同范本
- 2025年度养老服务机构场地租赁合同及养老服务协议
- 贵州省情知识考试题库500题(含答案)
- 大学生家长陪读承诺书
- 安全生产事故调查与案例分析(第3版)课件 吕淑然 第5章 事故案例评析
- 2023版交安A、B、C证考试题库含答案
- 楼梯 栏杆 栏板(一)22J403-1
- 劳动法培训课件
- 2024-2025学年成都市成华区七年级上英语期末考试题(含答案)
- 2025年山西杏花村汾酒集团限责任公司人才招聘71名高频重点提升(共500题)附带答案详解
- 2025年江苏省环保集团招聘笔试参考题库含答案解析
- 主题活动一《我调查》(教学实录)-2023-2024学年二年级下册综合实践活动内蒙古版
评论
0/150
提交评论