课程设计论文基于单片机的锅炉液位控制系统设计.doc
基于单片机的锅炉液位控制系统设计 摘要:介绍了用单片机进行锅炉液位控制工作原理、硬件设计和软件设计。装置主要由80C51、四片电位器式传感器、逐次逼近式A/D转换器ADC0809、双向可控硅驱动电路MOC3041和双向可控硅TLC336A等组成能够可靠地完成锅炉液位自动控制。 关键词:液位 传感器 单片机 可控硅驱动电路 1 引言 锅炉液位控制的稳定与否,是关系到生产安全的重要因素之一。液位太高,易使供出的蒸汽带水,高温高速的蒸汽水珠会损坏后工段的工艺设备;而液位太低,有造成锅炉烧干的危险。怎样把锅炉液位较好地稳定在一个波动较小的位置上,笔者认为这关系到锅炉液位控制方案的选择上。 本文介绍的基于单片机的锅炉液位控制系统设计,确保水位自动控制装置可靠动作,能够可靠地为用户提供日用水,而且具有保护设备、自动化程度高、造价低等优点。国内外比较先进的控制方法是可编程控制器(简称PLC),不仅造价高,而且功能单一;而本系统结构紧凑、性能可靠、抗干扰能力强、运行效果良好,加之成本不高,非常适用于大量的工业和日用水的锅炉供水,具有广阔的市场前景。2 系统的工作原理2.1 系统组成 本装置主要由80C51、四片电位器式传感器、逐次逼近式A/D转换器ADC0809、双向可控硅驱动电路MOC3041和双向可控硅TLC336A等组成。此外,还有键盘/显示电路、报警输出电路等。它们的原理方框图如图1所示。 图1 原理方框图2.2 装置说明 本装置主要设计液位控制,在锅炉整个工作过程中,还有温度、压力等需要,只需再安装一个温度传感器和压力传感器即可,所以在此不再详述。四片电位器式传感器分别安装在锅炉的四个水位处(分别为低水位、高水位、极低水位、极高水位),来采集液位信号。2.3 工作原理 本装置的功能是:当液位低至给定的液位时,启动水泵对锅炉进行加水,同时水泵正常工作指示灯亮,呈绿色,表明水泵正常工作;当液位高至给定的液位时,停止水泵对锅炉进行加水,水泵正常工作指示灯不亮,表明水泵停止工作;一旦由于某种原因,液位低于低水位时,仍没有启动水泵进行加水,则达至极低水位时,再次启动水泵进行加水,并进行报警;同理,达至极高水位,停止水泵进行加水,并进行报警;操作人员听到报警,消除报警,急停锅炉工作,并对锅炉进行维修;极高水位与极低水位对锅炉起到了保护作用。 它的工作原理是:首先,由电位器式传感器每隔5秒钟对水位进行采样,并输出05V模拟信号,再经A/D转换变成相应的数字信号,送入80C51单片机进行数据处理。单片机经运算后,与设定的液位值(低液位H1、高液位H2、极低液位H3、极高液位H4)四值依次进行比较;若H1<Hx<H2,则表示正常液位,水位指示灯亮,呈绿色;若Hx=H1, 则表示达至低液位,启动水泵供水,水泵工作指示灯亮,呈绿色若Hx=H2, 则表示达至高液位,停止水泵供水,水泵工作指示灯不亮;若Hx=H3, 则表示达至极低液位,启动报警器报警;若Hx=H4, 则表示达至极高液位,启动报警器报警; 如果报警器启动后,设有报警消除按钮,消除报警;有手动和自动转换按钮;有急停按钮,在任何情况下,可以停止锅炉工作。3 硬件设计 3.1 硬件总体说明单片机系统的硬件电路图,可参见图2。 本系统以80C51单片机为核心,它有4KEPROM,所以不需外扩EPROM,这样可利用P1口作为按键输入口,输入口接有中断式独立式按键电路,向单片机输入命令、功能切换,可以对单片机进行人工干预;另对串行输入口P3.0扩展接口,使用移位寄存器作为锁存或输入信号的接口,可以方便地扩展并行输入口,这种方法不占用片外地址,便于操作适合于速度较慢、适时性要求不高的场合,它是利用一片74LS165与80C51的3根端口线相连,可扩展8根并行输入口线,在电位器式传感器采集信号,A/D转换器转换信号后,将信号输入到此接口,如图3所示:ADC0809 74LS165D0D1 SLD2D3 QHD4D5 CLK D6D7 SER80C51 P1.0P3.0P3.1四路传感器驱动电路图3 串行输出口扩展结构框图 由于输出接口比较多,可扩展一片8255可编程接口芯片,利用指令设置各口的工作方式,8255内部有3个并行的8位I/O接口,分别为A口、B口、C口,8255是8位芯片,有8位数据线,数据线接于80C51的P0接口,可以用于实现8255与80C51之间的数据传输。需要注意一点,使用8255芯片时,首先要对它初始化,也就是对8255的3个端口的工作方式预先设置。扩展口接有4位74LS164驱动显示器,并有一个报警器(用来极低水位、极高水位报警),和三个发光二极管指示灯(用来电源显示、水泵上水显示、水位显示),并行输出口接有双向可控硅驱动器电路,来控制电机启停。3.2 输入通道设计 该部分主要完成对液位信号的采集、转换工作,分别由电位器式传感器和A/D转换器ADC0809完成。电位器式传感器结构简单,价格便宜,但缺点是精度不高,动态响应差,不宜作精密测量或快速变化量的测量;但用在此要求不太精密的场合,也有它非常大的优势。A/D转换器ADC0809,它是采用CMOS工艺制成的8位8通道逐次逼近式模数转换器,可实现8路模拟信号的分时进行转换,可用单一电源供电,此时模拟电压输入范围为05伏,无需调零和满刻度调整;三态锁存输出,低功耗型。经过采集、转换信号,将转换器输出的8位数字信号输入到扩展的并行输入口线。 在过程控制和智能化仪表中通常是用微控制器进行适时控制和数据处理的,为实现人机对话,键盘是个必不可少的功能装置,所以输入通道接有独立式按键电路,向单片机输入数据、传送命令、功能切换,可以对单片机进行人工干预。如图2所示电路中的键盘电路,这是最简单的键盘电路,各个键相互独立,每个按键独立地与一根数据输入线相连接,其中两路是中断方式,任何一个按键按下时通过门电路都会向CPU申请中断,在中断服务程序中,读入P1口的值,从而判断是哪一个按键被按下;另外六路为查询方式,在平时,所有的数据输入线都通过上拉电阻被连接成高电平,当任何一个按键被按下时与之连接的数据输入线将被拉成低电平,要判断是否有键被按下,只要用位处理指令即可。对按键是否被按下,需采用软件消抖的办法,以消除按键在闭合和断开瞬间所伴随有一连串抖动所带来的不利影响。这种键盘的优点是结构简单、使用方便,但随着键数增加所占用的I/O口线增加。在使用键数不多的单片机系统中,使用这种键盘非常方便。3.3 输出通道设计 在输出通道中,有显示电路、报警输出电路,驱动电路等,但最重要的是控制水泵启停的双向可控硅驱动电路,我们着重介绍双向可控硅驱动电路MOC3041电路。 过去,在我们设计输出控制通道时往往选用继电器,但由于其噪声大和机械性能方面的原因,现在已很少见。随之而来的是无触点开关双向可控硅的使用,但在实际设计工作中,需要采用同步过零触发电路进行同步触发。由于这部分电路包括比较器、单稳态电路和光电隔离器等器件,芯片多,结构较复杂,在实际应用中容易出故障,给用户带来很多不便。在设计当中,我们充分总结了过去的经验和教训,在原有电路的基础上采纳了MOTOROLA公司推出的单片集成可控硅驱动器MOC3041,从而顺利地解决了这一问题。 MOC3041芯片是一种集成的带有光耦的双向可控硅驱动电路。它内部集成了发光二极管、双向可控硅和过零触发电路等器件,它的内部结构和外部引脚如图4所示 图4 MOC3041内部结构和外部引脚 从图中可以看出,它由输入和输出两部分组成。输入部分是一个砷化镓发光二极管,在515mA正向电流的作用下,发出足够强度的红外光,去触发输出部分。输出部分包括一个硅光敏双向可控硅和过零触发器。在红外线的作用下,双向可控硅可双向导通,与过零触发器一起输出同步触发脉冲,去控制执行机构外部的双向可控硅。 由MOC3041组成的过零触发双向可控硅电路简单可靠,电路如图5所示。 图5 由MOC3041构成的输出通道图其中:R1,限流电阻,控制LED的触发电流;Rg,门极电阻,提高控制极的抗干扰能力;R,控制回路限流电阻,保护3041中的双向可控硅;Cp,构成吸收回路,承受反向电压 该部分的工作过程是:当单片机的P3.l输出为低电平时,3041内部导通,G端出现同步触发脉冲,控制可控硅导通,打开水泵,当P3.1为高电平时,3041内部截止,可控硅断开,关闭水泵.4 软件设计 4.1 工作流程 本装置的软件包括主程序、液位设定子程序以及有关8255芯片的程序(初始化子程序、写程序和读程序),键盘设定子程序,报警输出子程序等。这里主要介绍主程序,工作流程如图6所示。 主程序完成的功能是:启动传感器采集信号,输入转换器进行转换,输入单片机进行数据处理,将处理结果与给定值比较,比较结果进入输出通道;若Hx=H1,则表示达至低液位,置P3.1为低电平,可控硅导通,启动水泵供水;此时,进入供水阶段。在该过程中继续对液位进行监测。当Hx=H2,则表示达至高液位,置P3.1为高电平,断开可控硅,停止水泵供水。等待下一次的启动命令。4.2 程序设计 本控制系统程序见附录 图6 主程序流程图 附录: 参考程序清单DIR显示子程序清单如下:DIR: MOV R0, #7EH ;显示缓冲区末地址R0 MOV R2, #01H MOV A, R2 DIR1: MOV DPTR,#7F01H ;8255PB口地址DPTR MOV DPTR, A INC DPTR ;数据指针指向8255PC口 MOV A,R0 ;取显示数据 ADD A,#0DH ;加上偏移量 MOVC A,A+PC ;取出字型码 MOVX DPTR,A ;送出显示 ACALL YS11 ; 调出延时子程序 DEC R0 ;数据缓冲区地址减1 MOV A, R2 JB ACC.5,LD1 ;扫描到最左边的显示器吗? RL A ;没有到,左移一位 MOV R2, A AJMP DIR1LD1: RET DB 3FH, 06H, 5BH, 4FH, 66H, 6DH DB 7DH, 07H, 7FH, 6FH, 77H, 7CH DB 39H, 5EH, 79H, 71H, 73H, 3EH DB 31H, 6EH, 1CH, 23H, 40H, 03H DB 18H, 00H, 00H, 00H,YS11: MOV R7,#02H ;延时1ms子程序 YS: MOV R6, #0FFH YS1: DJNZ R6, DL1 DJNZ R7, DL RET 键盘扫描子程序清单:KD1: MOV A, #00000011H MOV DPTR, #7F00H MOVX DPTR, AKEY1: ACALL KS1 JNZ LK1 ACALL DIS AJMP KEY1 LK1: ACALL DIS ACALL DIS ACALL KS1 JNZ LK2 ACALL DIS AJMP KEY1 LK2: MOV R2, #0FEH MOV R4, #00H LK4: MOV DPTR, #7F01H MOV A, R2 MOVX DPTR, A INC DPTR INC DPTR MOVX A, DPTR JB ACC.0, LONE MOV A, #00H AJMP LKP LONE: JB ACC.1, LTWO MOV A, #08H AJMP LKP LTWO: JB ACC.2, LTHR MOV A, #10H AJMP LKP LTHR: JB ACC.3, NEXT MOV A, #18H LKP: ADD A, R4 PUSH ACC LK3: ACALL DIS ACALL KS1 JNZ LK3 POP ACC RETNEXT: INC R4 MOV A, R2 JNB ACC.7, KND RL A MOV R2, A AJMP LK4 KND: AJMP KEY1 KS1: MOV DPTR, #7F01H MOV A, #00H MOVX DPTR, A INC DPTR INC DPTR MOVX A, DPTR CPL A ANL A, #0FH RET 报警子程序: ORG 4000H ALARM: MOV DPTR,#SAMP ;采样存放首地址 MOVX A,DPTR MOV 20H,#00H ;清“0”报警标志单元 ALAPM0: CJNE A,30H,AA ;水位>上限吗? ALARM1: CJNE A,31H,BB ; 水位<上限吗? DONZ: MOV A,#00H CJNE A,20H,FF ;有报警应转FF SETB 05H ;若无报警,05H置“1”,置绿灯标志 MOV A,20H; MOV P1,A ;置绿灯亮 RET FF: SETB 07H ;置电笛标志位 MOV A,20H MOV P1,A ;输出报警 RET AA: JNC AOUT1 ;X1>MAX1 转AOUT1 AJMP ALARM1 BB: JC AOUT2 ; X1<MIN1转AOUT1 AJMP ALARM2 AOUT1: SETB 00H ;水位上限报警 MOV A,20H MOV P1,A LCALL FF AJMP FF AJMP ALARM2 AOUT2: SETB 01H ;水位下限报警 MOV A,20H MOV P1,A LCALL FF AJMP DONE INT0中断服务程序 INT0: CLR EA PUSH ACC PUSH PSW SETB EA MOVX A, DPTR MOV R0, A CLR EA POP PSW POP ACC SETB EA RETI 数据采集子程序: ORG 0013H START: MOV R0, #0A00H MOV R2, #08H SETB INT1 SETB EA SETB EX1 MOV DPTR, #0FEF8H READ1: MOVX DPTR, A HERE: SJMP HERE DJNZ R2, READ1 中断服务程序如下: ORG 0025H INT1: MOVX A, DPTR MOVX R0, A INC DPTR INC R0 RETI主程序清单 ORG 0000H LJMP MAIN ORG 0030H LJMP KD1 ORG 00BH LJMP DIR ORG 0013H LJMP START ORG 0025H LJMP INT1 ORG 0040H LJMP ALARM MAIN: MOV P2, #00H MOV R0, #30H MOV R4, #08H MOV R2, #00H SETB EA SETB EX1 SETB IT1 MOV R1, #0013H ;ADC0809地址 MOV A, R2 MOVX R1, A SJMP $ END 17