版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要锅炉水位是锅炉运行时重要的参数过可能会发生锅炉干烧现象锅炉烧坏。水位过高会导致蒸汽带水过多,蒸汽品质下降,会引起设备腐蚀、水击,烧坏过热器管子。本文育鲲辅炉现有设备的基础上计了一套简易的锅炉水位自动控制系统,由于育鲲轮通常是在航行时使用废气锅炉泊时使用燃油锅炉水的控制不需要很精确,所以本系统对燃油锅炉水位采用单冲量控制。系统由硬件系统和软件系统两部分组成。硬件系统和软件系统都采用模块化设计系分为若干模块进行初步设计后各个模块进行整合过改进最终形成个完善的控制系统真软件Proteus和程软件Keil相结合,完成系统硬件设计和软件编程,程序由语言编写。硬件系统以单机为核心,包括模拟量采集输入模块、单片机最小单元模块、报警模块、键盘模块、显示模块及端口扩展模块。软件系统包括初始化模块、中断模块、数据处理模块、键盘模块、显示模块转模块和报警模块。通过硬件系统和软件系统相结合,实现具有液位检测和控制的双重功能,同时也具有报警和显示的功能,并能通过键盘对参数值进行手动设定。最后,提出了显示模块的合理改进方案且在育鲲轮现有的通信网络基础上设计了通信模块系统功能更加完善。关键词:锅炉液位,单片机,单冲量控制,模块化ABSTRACTWateranparameteraisThephenomenondistillingwithoutoccurthewatertoolow,theboilerbeburndownfinally.Duetowaterlevel,qualityofsteamwillworse.Whatworse,itmaycauseofequipments,downthesuper-heatercoil.aimsatsimplesetofautomaticofboilerswaterlevelbasedonequipmentsof“YU”Generally,gasboilerinduringsailingboilerininharbor.Thus,ofnotneedtobeveryappliessingletoItiscomposedofparts:Theyallsystemisdividedintoseveralmodularizationfinallyformconcretetogether.ProgrammerKeiluVision3”accomplishedofsoftwareAndsimulate“ProteusaccomplishedofhardwareaccomplishedwithbasedonSTC89C52imitationmodularization,themicrocontrollermodularization,modularization,modularization,displaymodularizationandI/Omodularization.includesmodularization,modularization,datamodularization,modularization,modularizationA/Dtransformmodularization.softwaresystemtoaccomplishfunctionofdetectingtheofdisplayingalarming.Whatsmore,systemparametersdatacanbethroughFinally,suggestionofmodularizationcanbeAndcommunicationisonofthat“YUKUNvesselisapplyinginordertomakeKeywords:Boiler,level,Microcontroller,Singlepulse目录前1.1课意义.1.2发状况.硬系统设...............................................................................................................................22.1系总设....................................................................................................................22.1.1系功能................................................................................................................22.1.2硬系统示意图....................................................................................................22.2各件块设................................................................................................................32.2.1模量采集输入模块............................................................................................32.2.2单机最小单元模块............................................................................................52.2.3I/O口扩展模块2.2.4键模块................................................................................................................92.2.5显模块2.2.6报模块..............................................................................................................122.3硬系总原理.软系统设.3.1软系总体设.3.1.1软程序流程......................................................................................................143.1.2软程序主函数3.2软各块程序设.3.2.1初化模块..........................................................................................................153.2.2AD转模块3.2.3数处理模块......................................................................................................173.2.4显模块..............................................................................................................203.2.5报模块..............................................................................................................233.2.6键模块..............................................................................................................253.2.7中模块..............................................................................................................28系功能改进与扩展.4.1显模改.4.1.1LCD1602液显示.4.1.2液显示程序设计4.2通功能扩展..................................................................................................................364.2.1RS-485通..........................................................................................................364.2.2信模块设计.......................................................................................................36结.............................................................................................................................................37参考文........................................................................................................................................39致谢................................................................................................................................................391前1.1题意义在以内燃机为动力装置的船上是船舶的重要设备的蒸汽主要用于加热主、副机所用的燃油,以及供厨房及空调等用汽此具有蒸发量较小、工作压力较低、对水位控制质量要求不高的特点。锅炉水位是锅炉运行时重要的参数,水位过低可能会发生锅炉干烧现象,导致锅炉烧坏。水位过高会导致蒸汽带水过多品下降,会引起设备腐蚀、水击烧坏过热器管子。当船舶机舱自动化的要求越来越高,锅炉的自动控制在实现无人机舱中是必不可少的。目前,国内较数船舶的辅锅炉的自动控制仍由继电器、接触器、时间继电器等组成实各种控功能它们的共同特点是线路复杂可靠性差有容易出现误动作别触头氧化及芯与衔铁弄脏后的吸力不足械动部件运动不灵活而出现被卡烧坏线圈等故障,给维护过程带来极大不便,甚至会影响正常营运工作,制设备体积大、数量多、重量重、价格贵。因此应用更先进的控制方法是很有必要的。目前应用较为广泛的可作为传统继电接触器控制系统的替代产品主要有可编程控制器(PLC)单片机MCU可通过软件来改变控制过程,而且都具有体积小、组装灵活、编程简单抗扰及可靠性高等点。锅炉自控系统是一个典型的大惯性滞后、多变量的过程控制系统其涉及到压力度位等多个物理参数检测与控制,需要同时控制循环泵、补水泵、加热装置自排除故障等。由于模拟输入量多,需要的硬件电路也多,控制起来不简单。现阶段,很多厂都是利用PLC对锅炉进行控制,其自动化程度和可靠性较高,但是成本也很高,而且程修改和参数设置比较困难片为控制核心的智能控制系统由于成本低可性好安性高,到了更多企业的喜爱
总以片机为核心的控制系统经济性更高,体积更小,控制更灵活以以模块化更换来代替维修。单片机控制系统必然会得到更广泛的应用,在工业控制现场具有良好的应用前景。本设计以锅炉液位的自动控制为例现了以单片机为核心的自动控制系统服传统控制锅炉液位的缺陷,突显了单片机控制系统的优势。1.2展状况锅炉作为能源转换和消耗的设备已有两百多年的历史了于历史的原因我国锅炉自动控制的水平一直都较低炉机控制是近几年是近年来开发的新技术是型计算机软件硬、自动控制、锅炉节等几项技术密结合的产物。工业锅炉采用微机控制和原有控制方式相比具有明显优势够直观而集中的显示锅炉各运行参数示液位压力温度的状态。而作为锅炉控制装置,其主要任务是保证锅炉的安全、稳定、济运行,减轻操作人员的劳动强度在采用计算机控制锅炉控制系统中十分周到的安全机制能够杜绝由于人为疏忽造成的重大事故。锅工业的迅猛发展是近几年的事情外锅炉工业50年发展最快,年代到高峰。一直以来,用单片机实现锅炉的控制是控制领域的一个典型的问题伴随着控制理论和技术法发展炉自动化控制水平也在逐渐提高锅炉的自动控制,经历了30年的单参数仪表控制40年的组成仪表复合参数仪表控制,以及60年代兴起的计算机过程控制几个阶段用单片机实现锅炉的控制是几年才发展起来的是个逐渐深入的过程虽与其他发达国家相比还存在差距是此方面的进步却是很大的船舶上应用最的锅炉自动控制系统基本由国外公司所垄断内司自主开发的锅炉自动控制系统存在许多的缺陷靠性不高括制造工艺和技术等各方面的问题导致船舶锅炉控制的市场额基本被国外公司所占据此设计具有自主知识产权的高可靠性的船舶锅炉自动控制系统是很有必要的。2硬系设2.1系统总设计系统能本系统采用单冲量的控制方法来完成对燃油锅炉水位的控制,确保锅炉运行的安全性。本系统能够完成以下功能:能够显示锅炉当前水位值;当水位高于最高水位和低于最低水位时能够发出报警,并能够自动控制供水泵的启停和燃烧器供油的紧急切断;能够通过键盘对最高低水位泵启停水位和燃烧器供油切断水位进行人工调节。本系统以STC89C52单机为核,包括模拟量采集输入模块、单片机最小单元模块、端口扩展模块报模块、按键显示模块字输出模块。模拟量采集输入模块包括液位传感器、A/D转换器,将模拟转换成数字量,再将数据传给单片机进行处理。单片机单元模块即单片机最小单元,使单片机能正常工作。串口扩展模块通过端口扩展芯片8255A完成人机交互的一些功能及显示模块由独立式按键键盘和3位码管及相应的驱动电路组成警块将单片机的控数据通过驱动芯片控制相应发光二极管电器和报警器的工作,实现对燃油锅炉各种工作状态的监视报警。硬件统意硬件系统是由多个子模块连接而成的,以STC89C52单机为核心,包括模拟量采集输入模块、单片机最小单元模块、报警模块、键盘模块、显示模块及端口扩展模块。硬件系统示意图如图1所:水位监测单元
时钟电路独立按键键盘STC89C52单机
报警模块A/D转换器
I/O扩
显示模块图1
硬件系统示意图2.2各硬件块设计模拟采输模本模块采用NRGT26-1S型位监测单元来采集炉内水位的电流模拟信号经电流—电压转换电路转换成电压信号转换(ADC0804)采集到的电压信号转换为数字信号,然后把数字信号经过8255A扩芯片送入单片机进行处理。此模块原理图如图2所图2
模拟量采集输入模块原理图()位测元NRGT26-1S型水位监测单元据电容测量原理监测导电性和绝缘的液体液位差。在电极盒内有一个液位变送器,可以产生4-20mA的出电流,不需要额外的转换设备,特别适合持续监测和远程指示液位大工作压/度2bar/238°水检测单元接线图和外形示意如3、所:图
水位监测单元接线图
图水监单元示意图()流电转电水位监测单元产生的是4-20mA的标准电流模量信号在ADC中行AD转就要将电流信号转换成电压信号。应用运放进行电流测量有两种方法是利用电流在电阻上的压电初步设计阶段就采用的此方法行压大二是直接将电流注入运放的求和点用样的电路,转换得到的电压信号可以直接加在运放的输入端种转换方式有两个不妥之处先电阻的加入会破坏电路原来的状态来测量上的误差其次运放的失调电压也会被运放自己放大,并加到测量的输出结果上。使用“电-电”转换电路可以避免上述两个不足,其电路结构如图5所:图
电流-电压转换电路输入电流直接接入运放的求和反输入端输出端将通过R1向求点提供同样大小的电流以达到平衡电路的增益由R1决Uout=IinR该路唯一的误差来源于偏置电流,偏置电流作为误差与输入电流进行了代数叠加。()转器A/D转换器的作用是将模拟量信转换成数字量信号。不同的A/D转换方式具有各自的特点,在要求转换速度高的场合,选用并行/转换;在要求精度高的情况下,可采用双积分型A/转换,也可选择分辨率更高的其他形式的转换器,但成本会增加。而逐次比较性A/D转器在一定程度上兼有以上两种转换器的优点,应用较多ADC0804就是此类单片集成A/转换器。ADC0804采工20引集成芯片,分辨率为8位,转换时间为100us,入电压范围是0~5V,一个8位A/换器、一个8路模量开关、路拟量地址锁存/译码器和一个三态数据输出锁存器组成A/D转换器内部含有一个高阻抗斩波稳定比较器,一个带有模拟开关树组的256电分压器,以及一个逐次逼近型寄存器路模拟开关由地址锁存器和译码器控制以个通中任意访问一个通道的模拟信号于路开关的地址输入部分能够进行锁存和译码且三态TTL出也可以锁存所以它易于与微型计算机接口。内部结构原理[如图示,引脚图如图7示;V
VN
D/A转REFSTARTEOC
控制逻辑
锁存缓存器
D7D6D5D4D3D2D1D0N位寄存
OE图6
内部结构原理图
图7引图单片最单模单片机最小单元是保证单片机能正常的最基本的电路,本文采用STC89C52芯片为核心芯片,采用内部时钟电路和上电复位电路。本模块原理图如图8所图8
单片机最小单元模块原理图()STC89C52单片整个系统以公生产的89C52为心芯片芯为8051核芯片部含FlashE2PROM存储,芯片内部程序储空间为8KB,内部RAM512B,PDIP(双列直插)式封装,芯片外观如图9所示引脚图如图10所示STC89C52单机具有以下优点:加密性强抗干扰能力强,高抗静电,宽电压、不怕电源抖动,宽温度范围-40到80摄氏度c)价格低廉超低功耗速度快,可靠性高图
STC89C52外观图10STC89C52引()晶振器路复电51系单机内部已具有振荡电路,只要在18(XTAL2)19脚XTAL1)上连接简单的晶体振荡器即可的体振荡器频率可以选11.0592MHz以准确地得到9600波特率和19200波率,另一个型的晶体振荡器频率为2MHz,以产生精确地微秒级延时,方便定时场合。本系统采用的是12MHz晶体振荡器。晶体振荡器实物如图11所:图1
晶体振荡器实物图单片机的复位引脚是第9(引脚连接高电平超过两个机器周期可生复位的动作。为了保证应用系统可靠地复位,在设计复位电路时通常使RST引保持10ms以上的高电平复电路有上电位和手动复位两种可以采用上电和按钮复合复位本系统采用上电复位的形式。I/O端扩模单片机本身的I/O口很有限的当所要连接的外设较多时就要扩展I/O接口扩并行I/O口所用的芯片有可编程(如82558155TTLCMOS锁存器和缓冲器(如74LS373、74LS573、74LS244等模选择的并行I/O口展芯片为可编程并行接口芯片8255A和TTL锁器和缓器。()编并接芯8255A8255A是Intel公生产的通用编程并行I/O接口芯片允许采用同步异步和中断方式传送I/O数据8255A内部四部分电路组成。它们是A口B口和C口A组制器和B组控制器数缓冲器及读写控逻辑8255A内结构原理图如图13所芯引脚图如图所示图28255A引图图8255A内结构原理图8255A共3种作方式:方式0方式方式。本系统是采用的8255A的作方式0,方式0为本输入输方式,无需联络信号,直接输入或输出PA,PB和PC中一端口都可以通过方式控制字设定为输入或输出可对8255A进数无条件传送,外设的I/O数据可以在8255A的端口得到锁存和缓冲。方式0工作示意图如图14所:控制线CB
数据线DB
地址线A
1
A
0B口
C口
A口PB70
30
~PC74
7图8255A方式0工作意()存和冲74HC57374HC573是进制高电流三态同步输出锁存器,器件的输入是和标准的CMOS输出兼容的,当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步存使能变低时,符合建立时间和保持时间的数据会被锁存。输出能直接接到CMOS,NMOS和TTL接上;操作电压范围:2.0V6.0V;低输入电流1.0uACMOS器件的高噪音抵抗特性。74HC573引图如15所,真值表如表1示:图5引图表:4HC573真表输入
输出OELLLH
LEHHLX
DHLXX
QHLQZ键盘块键盘模块主要完成对参数手动设置的功能。键盘在单片机应用系统中能实现单片机输入数据送令等功能人干预单片机的主要手段盘为编码键盘和非编码键盘盘闭合键的识别由专用的硬件编码器实现并生键编码号或键值的为编码键盘计算机键盘而靠软件编程来识别的键盘称为非编码键盘非编码键盘又为独立键盘和矩阵键盘需要的按键较多时为了减少占用单片机的I/O线源通常用矩阵式键盘阵式键盘有行线和列线组成键位于行与列的交叉点上矩键盘能效的提高I/O口利用率本系统在设计方案中为了节约I/O线资源,采用了矩阵键盘设计方法,如图16所:图6
矩阵键盘设计原理图在后来不断改进过程中发现,有的按键功能重叠,经过改进之后功能键最终确定为8个,完全可以采用独立按键的设计方法。由于键盘的扫描只CPU工作内容之一CPU还要做其他工作,如液晶显示A/D转换等,为了保证能及时响应按键操作,又不过多的占用CPU的作时间,键盘的工作方式选为中断扫描方式。图17所为独立键盘中断方式下与单片机接口电路7个节能按键接单片机P1的P1^0P1^1P1^2P1^3P1^4、P1^5P1^6,进/退出按键设键接到单片机外部中断0口P3^2功键功能如表2所示:表:功能键功能按键序号
按键名称HWLP_STOPWLP_STARTWLLWLBOC:+—ENTER/EXIT
按键功能最高工作水位供水泵停止水位供水泵启动水位最低工作水位最低危险水位器止设定值加1设定值减1手动设定/退出键图7
键盘模块原理图显示块显示模块的功能是对当前锅炉液位进行显示行数手动设置时对调节参数进行显示。液位显示初期设计采用数码管动态显示,范围从0999选择的数码管是7段阴极连接,型号是MPX3-CA。在这里使用到了74LS573它是一个位D触发器,在单片机系统中经常使用,可以作地址数据总线扩展的锁存器,也可以作为普通的LED的动器件。动态显示的特点是将所有位数码管的段选线并联在一起选线控制是哪一位数码管有效这一来,就没有必要每位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示动态扫描显示即轮流向各位数码管送出字形码和相应的位选发管的余辉和人眼视觉暂留作用的感觉好像各位数码管同时都在显[10]。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。显示模块原理图如图18所:U7(74HC573)为码管位选数据锁存器Q0、Q1、Q2分别接三个数码管的位选端数码管段选数据锁存器Q0~分别数码管的段选端8255A的C口接选锁存器的输入使能端接段选锁存器的输入使能端。B口于输出数码管的位选段选据。图8
显示模块原理图报警块报警模块的功能是对单片机的控制命令和报警命令进行输出报功能由发光二极管和喇叭完成继器则用于将片机的控制命令进行输出制外部设备动作报警模块原理图如图19所示各器件功能如表3所:表:警模块各器件功能序号
器件发光二极管D1发光二极管D2发光二极管D3发光二极管D4发光二极管D5发光二极管D6喇叭SPEAKER继电器RL1继电器RL2继电器RL3
功能高水位报警指示低水位报警指示正常水位指示喇叭报警指示1#供水泵运行指示2#供水泵运行指示声音报警控制1供泵启停控制2供泵启停燃烧器停油LED(发光二极管积,耗电量低,常作为微计算机与数字电路的输出设备,用于指示信号状态有二极管单向导通的特性加反向电压时LED不施正向电压时,LED将光。随着通过LED正电流的增加LED更亮LED的命也将缩短,因此电流以5~15mA为。系的单片机的I/O口都是漏极开路的输出,其中P1、与P3内有30k的上拉电阻,因此想I/O口提供10~20mA的流驱动LED发光比较困难。所以扩展一片ULN2803作驱动。继电器是当输入量达到规定值时被控制的输出电路导通或断开的电器际上是用较小的电流去控制较大电流的一种“自动开关本系统中采用的是直流电磁机械继电器管械继电器的开关响应时间较长是经能够满足本系统对控制响应时间的要求且机械继电器最大的优点是其开关状态时理想的阻R10R11用于调整继电器的驱动电流,二极管、用于在继电器关断时为线圈提供感生电流的放电电路。图9
报警模块原理图2.3硬件系总原理以上是对硬件系统以模块的形式进行的初步设计有各个模块进行整合过进最终才能形成一个完善的控制系统部分就是将模拟量采集输入模块片最小单元模块、报警模块盘模块显模块及端口扩展模块进行了整合,形成了一个完整的硬件系统,以在软件设计部分进行编程。图0
硬件系统总原理图3软系设3.1软件系总体设软件序程软件系统指挥着硬件系统的操作,软件系统设计的成功与否直接影响着系统性能的优劣,本软件系统的程序设计实施模块化程分为若干模块。分别是初始化模块、中断模块、键盘模块、显示模块A/D转换模块和报警模块。初始化主要是完成开中,清标志位的任务,接着系统就开始启动检测信号,延时等待AD转完成,接着通过I/O扩展芯片8555A将AD转换结果读到单片机中单机中对AD转的数据进行处理断刻系统的水位状态而行不同位状态相对应的报警程序将此时的水位显示在数码管上。按键设置是通过响应中断来实现的不对参数设置时不会执行键盘扫描程序通以上设置,系统就能按要求对锅炉液位进行控制了。图21是系统的程序流程图。开始初始化启动延时等待转换完成读取A/D转换数据数据处理报警显示图21
主程序流程图软件序函软件系统程序主函数C语程序如下:void//序主函数{initial();//用初始化子函数//大循环{write_ad();//调用启动A/D子数delay(100);//等待AD转完成AD_8255to89c51();将AD转结果从255到单片机调用数据处理子函数alarm();//用报警子函数//调用显示子函数}}3.2软件各块程序计初始模()始流初始化是程序编程的第一步始化的目的就是把所有用到的标志位量回到所要设定的初始值,以及完成引脚分配的工作,并为配置寄存器写入需要的[7]。系统开始后首先要进行初始化,初始化主要是完成开中断,清志位的任务,本设计采用的中断是INT0中断中和定时器T0中断将初始值送入到寄存器中初始化程序流程图如图22所示。开始初始化寄存器赋初始值开中断INT0INT1图22
初始化程序流程图()始C语程初始化模块具体C语言程序如下voidinitial(){//最高工作水位P_STOP//供水泵停止水位P_STARTWL=244//供水启动水位LWLA=124//最低作水位BOC=74//最低危险水位flag=0;//系统水位状态标志位外部中断INT0标志位EA=1;//总中断//INTO中//INT1中//开T0中TMOD=0x01;//设定为作方式,TH0=(65536-50000)/256;//为T0赋值TL0=(65536-50000)%256;//INTO为沿触发方式//INT1为沿触发方式TR0=0;//止启动}AD转换模()AD转换程启动A/D转,延时一段时间等待转换完成,再读取转换结果,将结果经过8255A读取到单片机中,在单片机中对数据进行处理A/D换模块的程序流程图如图23所。开始启动AD转软件延时启动取转换结果存储数据图23AD转程序流程图()AD转C语程AD转模块具体C语程序如:写口rd=P3^7;读口选端voidwrite_ad()//动A/D转子函数{ad_cs=0;//将AD0804的拉wr=0;delay(1);wr=1;ad_cs=1;//将AD0804的置}//8255片端//8255A0引脚//8255A1引脚uint存储转换结果voidAD_8255to89c51()//将AD转结果从8255传单片机{//将8255A选CS=0,wr=0;//控制字P0=0x90;将A口设置为工作方式//读A口delay(5);adnum=P0;//AD结果存储在中}voiddelayx)//延时程序{}数据理块()据理程首先,由电容式传感器对水位进行采样输出模拟信号,再经A/D转变成相应的数字信号,送入80C51单机进行据处理。单片机经运算后,把当前测得的液位值num与设定的液位值依次进行比较:若num≥HWL,则表示达至最高作液位,系统水位状态标志位flag=1,动报警器报警;若num≥P_STOPWL,则表示达至水泵停止液位,系统水位状态标志位flag=2,水泵停止,水泵工作指示灯不亮;若P_STARTWL<num<P_STOPWL则表示正常液位,系统水位状态标志位flag=3,位正常指示灯,呈绿;若BOC<num≤P_STARTWL,则表达供水泵启动供水,系统水位状态标志位flag=4,水泵工作指示灯亮,呈绿色;若num≤LWL,则表示达至最低作液位,系统水位状态标志位flag=5,动报警器报警;若num≤BOC,则表示达至最低险液位,系统水位状态标志位flag=6,动报警器报警,并切断燃烧器供油。在本系统中于件所限能定育鲲辅锅炉内水位监测单元传感器测量杆的具体长度,为了方便计算,假设水位为0mm时应的电流信号是4mA,水位为时对应的电流号是,者之间线性关,统所应用的水位测量范围大致可定位为50mm~560mm,ADC0804参电选5V则测量精度为560/255≈,整为3mm。数据处理模块的程序流程图如图24所示:开始将转换数据转换成对应的水位值≥NO
YES
numP_STOPWL
≥
YES
NOP_STARTWL<num<P_STOPWLNO≤P_STARTWL
YESYES
NO
≤LWLNO
YES≤BOC
YES
图24()据理C语程
数据处理模块程序流程图数据处理模块具体C语程序如:uint转数据uintbai1,bai2,shi1,shi2,ge1,ge2;//将数转换成水位的过程变量uint//最高工作水位uintWL=404//供水泵停止水位uintP_STARTWL=244//供水泵启动水位uint//最低工作水位uintBOC=74//低危险水位uintflag=0;//统水位状态位voidhandle()//数据处理程序{//位对应的电压值的最高位ge1=adnum%51*10%51*10/51;bai2=(bai1*2)%10;将电压值转成对应的水位值shi2=(shi1*2)%10;ge2=(ge1*2)%10;num=bai*100+shi*10+ge;if(num>=HWL)flag=1;flag=2;<num<P_STOPWL)flag=3;if(BOC<num<=P_STARTflag=4;if(num<=LWL)flag=5;if(num<=BOC)flag=6;}显示块()显模流LED显示器有分静态显示和动态显示两种显示方式设的LED选用是动态显示方式。显示器中的各位独立,各位的显示字符一经确定,相应锁存器的输出将维持不变显示另一个字符为止8]水变化到999mm之变化,将三位数据拆分为百个三位分在三位数码管上显示在每次送完段选数据后,在送入为数据之前,需要加上一句P0=0XFF;句句叫“影”[7]在刚送完段选数据后PA口然保持着上次的段选数据,若不加“”执行接下来的打开位选锁存器的命令后,原来保持在PA口的段选数据将立即通过位选按锁存器直接加在数码管上,接下来才是再次通过PA口给选锁存器送入位选数据虽这过程非常短暂但在数码管高速显示状态下我们仍然可以看见数码管出现显示混乱现象,加上消影后,在开启位选锁存器后PA口数据全为高电平,所以哪个数码管也不会亮。显示模块的程序流程图如25所示:开始把要显示的数字拆分为百、十、个三位数字启动写、C口)消影显示百/十个位图
显示模块程序流程图()示块C语程显示模块具体C语言序如下:codetable[]={0x39,0x5e,0x79,0x71};//数码管编码uintnum;//要显的数字uint//显示的数字的百、十、个位voiddisplay(uint//数码管显示程序{//将8255A选CS=0,A1A0=11wr=0;//控制字P0=0x90;//将设置为工作模式0且都为输出bai=num/100;shi=num%100/10;P2=0xf3;//设置为写C口P0=0x00;//将两片74HC573的LE引置低//写B口P0=0xff;//消影P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低//写B口P0=table[bai];//位显示P0=0x02;//将段选74HC573的LE引置高P0=0x00;//将段选74HC573的LE引置低P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低P0=0xfb;//通第一个数码管的位选端P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低delay(5);P2=0xf3;//设置为写C口P0=0x00;//将两片74HC573的LE引置低//写B口P0=0xff;//消影P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低//写B口P0=table[shi];//十显示P0=0x02;//将段选74HC573的LE引置高P0=0x00;//将段选74HC573的LE引置低P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低P0=0xfd;//通第二个数码管的位选端P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低delay(5);P2=0xf3;//置为写口P0=0x00;//将两片74HC573的LE引置低//写B口P0=0xff;//消影P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低//写B口个显示P0=0x02;//将段选74HC573的LE引置高P0=0x00;//将段选74HC573的LE引置低P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低P0=0xfe;//选通第三个数码管的位选端P2=0xf3;//设置为写C口P0=0x01;//将位选74HC573的LE引置高P0=0x00;//将位选74HC573的LE引置低delay(5);}报警块()报模流单片机对AD转数据进行处理后了相应的系统水位状态标志位flag的flag值对应着不同的报警若系统水位状态位flag=1,表达至最高工作液位,启动报警器报警,供水泵停;若系统水位状态位flag=2,示达至供水泵停止液位,供水泵停,水泵工作指示灯不亮;若系统水位状态位flag=3,表正常液位,水位正常指示灯,呈色;若系统水位状态位flag=4,表达供水泵启动供水,水泵工作指示灯亮,呈绿色;若系统水位状态位flag=5,表达至最低工作液位,启动报警器报警;若系统水位状态位flag=6,示达至最低危险液位,启动报警器报警,切断燃烧器供油。报警模块程序流程图如图26所:开始NONONO
YESYESYESYES
报警器报警供水泵停水位正常指示灯亮启动供水泵NO
YES
报警器报警
YES
NO报警器报警燃烧器停止图
报警模块程序流程图()警块C语程报警模块具体C语言序如下://74LS373选端//常水位指示灯void{{//达至最高工作液位,启动报警器报警,供水停}{P0=0xff;//达至供水泵停止液位,水泵停,水泵工作指示灯不亮}{normalled=0;//正常液位,水位正常指示亮}{P0=0x9f;//表示供水泵启动供水,水泵工作指示灯亮{P0=0x8d;达至最低工作液位,启动报警器报警;}}{P0=0x6d;//达至最低危险液位,启动报警器报警,切断燃烧器供油}}键盘块()盘块序程键盘模块主要完成对参数设置的功能。键盘的软件程序设计主要解决断是否有按键按下除按键的抖动定键键值、判断按键是否释放键扫描程由外部中断INT0触发ENTER/EXIT键下时开外部中断INT0响应程序,根据标志位的确定是开始按键设置还是退出按键设置,当为开始按键设置时,计时器开始时,要求在一分钟之内完成按键设置,否则自动关中断退出按键设置回主程序始按键设置之后进行键盘扫描断是否有键按下,采用延时消抖当键松开后确按键键值定相应标志位的值和执行相应程序中断方式下矩阵键盘总体流程图如图所示开始计超过1minNO是否有键按下?YES消抖按键是否释放?YES判断按键键值执行相应的按键程序
YESNONO
退出按键程序图27()盘块C语程
键盘模块程序流程图具体的键盘模块C语言程序如下key1=P1^0;//高工作水位设置按键key2=P1^1;//水泵停止水位设置按键key3=P1^2;//水泵启动水位设置按键key4=P1^3;//低工作水位设置按键key5=P1^4;//烧器停止水位按键key6=P1^5;//1键key7=P1^6;//1键key8=P1^7;//入/退出设置按键uintuintshow;void按键程序{if(count>=1200){count=0;如果按键设置超过一分钟,则标志位置2}P1=0xff;temp=P1;if(temp!=0xff){delay(5);//时消抖(下降沿)if(temp!=0xff){delay(10);//时消抖(上升沿)switch(temp){0xfe:change=1;show=HWL;display(show);break;changeshow=;display(show);break;changeshow=P_STARTdisplay(show);break;changeshow=LWL;display(show);break;0xef:changeshow=BOC;display(show);break;display(show);switch(change){=show;break;P_START=show;break;LWL=show;break;=show;break;}break;show--;display(show);switch(change){HWL=show;break;P_STOPWL=show;break;P_STARTWL=show;break;LWL=show;break;BOC=show;break;}break;}}}}中断块()断序程本模块涉及到的中断有外部中断INT0和时器中断T0,INT0在ENTER/EXIT键下时被触发被发后立即关中断以防止受到再次出发外部中断INT0的干标志位flag_key加1,判断标志位的值,如果,明是要进入按键设置,此时开定时器中断T0,调用按程序,要求在一分钟之内进行完参数手动设置,否则标志位flag_key加1当键次被按下时标志位flag_key同样加1执完按键程序后,再次判断标志位flag_key的值,如果,说明仍然是要进入按键设置,如果flag_key=2,说明是要退出按键设置,导致退出按键设置的原因有两个:一是按下ENTER/EXIT键执EXIT功能在一分钟之内未完成按键设置统强制退出按键设置。退出时开中断T0,开中断INT0中断模块程序流程图如图所:ENTER/EXIT键下进入外部中断INT0关中断INT0flag_key1NO
YES
开中断T0NO
YES开中断开中断INT0退出中断INT0
调用按键程序图
中断模块程序流程图()断C语程具体的中断语程序如:;//时器T0中{TH0=0xec;//5ms定count++;}voidint0()interrupt0//外中断INT0{EX=0;//外部中断0flag_key++;{//部中断标志为执行按键程序{TR0=1;//开定时器T0key();}//部中断标志位退出循环{TR0=0;//关定时器中断break;}}//开INT0断}4系功改与展4.1显示模改进原设计中的水位显示应用的是三位数码管进行按键设置时能反映出当前显示的水位为何种水位参数,很容易造成误操作。因此显示数字是不够的只数字和文字相结合才能更有效地、更准确地传达信息。所以液晶显示器LCD)是比数码管更优的人机交互设备选择。液晶示各种型号的液晶通常是按照显示字符的行数或液晶点阵的行列数来命名的如的意思是每行显示16个符共可以显示两行类的命名还有0801,0802,1601等这类液晶通常都是字符型液晶即能显示ASCⅡ码字符如数字大写字母种号等。12232液晶属于图形型液晶,由122行32组成,即共有122x32个点来显示各种图形,我们可以通过程序控制122x32个中的任一个点显示或不显示。类似的命名还有12864,19264,192128,320240等根据客户需要,厂家可以设计出任意数组合的点阵液晶。经比较1602已经能满足本系统要求,所以选择1来代替数码管进行显示。本系统采用的是长沙太阳人电子有限公司生产的LCD1602字符型液晶显示器如图29所:图LCD1602字符液晶显示器经改进后的显示模块原理图如图30所示,的引脚1为电地;引脚2为源正;第3引为液晶显示器对比度调整端,接正电源时对比度最低,接地时对比度最高,通过接一个10K的电位器调整对比引脚为寄器选择电时选择数据寄存器,低电平时选择指令寄存器与8255A的PB0引相连第5引R/W为写选择高电平时进行读操作,低电平时进行写操作于本模块只用到了写操作所此引脚与地相连;第6引为能端,当其由高电平跳变为低电平时,执行命令,此引脚8255A的PB1引脚相连;~为数线,与的PC口连。图30液显示模块原理图液晶示序计换用液晶显示后但对显示序进行设计要对主函数盘序等进行修改,次处为了更简洁明了的说明液晶显示程序,只对液晶显示程序和键盘程序进行了设计和修改。显示模块的程序流程图如图31所示:LCD1602始化调用显示函数把要显示的int型字转换成char型拆分为百、十、个三位数字启动8255A(写B、口写指令写数据显示图显示模块具体C语言序如下:
显示模块程序流程图";//要显示的参数名放在数组table";//要显示的数据放在数组table1中";//要显示的数据单位放在组table2中void液晶显函数{l,m,n;lcd_init();/*液初始化(应主函数中进行液晶初始化,次处仅针对液晶显示函数)*///示地址设为(00H上第位for(m=0;m<10;m++)//将中数据依写入LCD1602显{lcd_writedat(table[m]);delay(10);}//新设定显示地址为,下排第1for(l=0;l<3;l++){delay(10);}for(n=0;n<2;n++){delay(10);}}voidlcd_init()//LCD的始化函数{//8数据,双列点阵字符lcd_writecom(0x0c);//启显示屏,关光标,光标不闪烁//标右移//屏,光标复位到地址}void//将int转换成char便显示{a,b,c,d,e,f;//位=show%100/10;//十位=show%10;//个位=a+48;table1[1]=e;}voidlcd_writecom(ucharcom)1602写命令数{rs=0;//选择指令寄存器,写命令rw=0;////命令字送入P2delay(5);短延时,让1602准备接收数据//使能端电平变化,命令送入1602的8位据口}voiddat)//1602命令函数{rs=1;//选择数据寄存器,写数据rw=0;//P2=dat;把要显示的数据送入P2delay(5);短延时,让1602准备接收数据//使能端电平变化,命令送入1602的8位据口}键盘程序修改:void按键程序{if(count>=1200){count=0;如果按键设置超过一分钟,则标志位置2}P1=0xff;temp=P1;if(temp!=0xff){delay(5);//时消抖(下降沿)if(temp!=0xff){delay(10);//时消抖(上升沿)switch(temp){0xfe:change=1;show=HWL;int_char();table[11]="HWL";display();break;changeshow=int_char();display();break;changeshow=P_STARTint_char();WL";display(show);break;changeshow=LWL;int_char();break;0xef:changeshow=BOC;int_char();break;display(show);switch(change){=show;break;P_START=show;break;LWL=show;break;=show;break;}break;int_char();display();switch(change){HWL=show;break;P_STOPWL=show;break;P_STARTWL=show;break;LWL=show;break;BOC=show;break;}break;}}}}4.2信功能展RS-485通信RS-485是RS-422A的变型:RS-422A用全双工,而则用于半双工RS-485是一种多发送器标准,在通信线路上最多可以使用32对差驱动器接收器。如果在一个网络中连接的设备超过32个,还以使用中继器RS-485的号传输采用两线间的电压来表示逻辑和辑0。由于发送方要两根传输线,接收方也需要两根传输线。传输线采用差动信道,所以它的干扰抑制性极好,又因为它的阻抗低,无接地问题,所以传输距离可达1200米传输速率可达1MbpsRS-485是点对多点的通信接口,一般采用双绞线的结构。普通的PC机一不带RS485接口因此要使用RS-232C/RS-485转器于片机可以通过芯片MAX485来完TTL/RS-485的平转换。在计算机和单片机组成的RS-485通系统中,下位机由单片机系统组成,上位机为普通的PC机负责监视下位机的运行状态,并对其状态信息进行集中处理文方式显示下位机的工作状态以及工业现场被控设备的工作状况。系统中各节点(包括上位机)的识别是通过设置不同的站地址来实现的。4.2.2通信块计育鲲轮的监测报警系统的上层以太网络主要由2台控主机和RS-485/ENET转换组成。系统参数要传输到监控主机上就要实现TTL协议与ETHERNET之的转换,本模块的功能就是实现单片机与监控主机之间的通信,上层以太网络通信系统示意图如图3所示
转器SWITCHPC2打印机
通口图上以太网络通系统示意图本模块中的RS-485接电路采的是MAX485芯MAX485是一种差分平衡型低功率收发收发器芯片片包含有个驱动器和一个接收器单5V电供电用TTL协议与RS-485协间的转换,于它是半双工的方式,只能有一方发送,一方接收,而且它采用差动电平接收的方法来提高抗干扰能力,适合在比较恶劣的环境下工作。[5]当RS-485总的传送距离超过一定长度时抗干扰能力就会下降就需要在芯片的A、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人员密集场所安全培训
- ChatGPT行业报告:算力
- 《班组安全培训》课件
- 《组织结构图例》课件
- 适老智能家居系统定义
- 卫生标准培训
- 二年级数学100以内三数加减法混合运算题过关作业练习题
- 现代办公事务处理值班的类型和编排方法
- 《逆转录病毒科》课件
- 项目管理工具之韦恩图社会工作专业教学案例宝典
- 小学主题班会 四年级英语家长会 全国通用(共15张PPT)
- 住房公积金贷款申请表
- 煤的工业分类
- DB32∕T 2860-2015 散装液体化学品槽车装卸安全作业规范
- 针灸疗法ppt课件(1)
- 呼吸衰竭课件
- 药学专业高水平专业群建设项目建设方案
- 透水性材料施工技术方案
- 马铃薯栽培技术课件
- 砌体结构承载力计算
- 北京大学数字图像处理(冈萨雷斯)(课堂PPT)
评论
0/150
提交评论