单片机锅炉液位控制系统
2018-03-24徐伟
徐伟
摘 要:本文的研究目的是掌握单片机在工业控制中的应用,涉及单片机的结构,原理及其汇编语言指令和程序的掌握。主要内容为单片机锅炉液位控制系统。通过单片机对锅炉液位的语音显示和报警,可以避免锅炉爆炸等生产事故,从而确保了安全生产。
关键词:单片机;液位;显示和报警
中图分类号:TP27 文献标志码:A
0 前言
单片机作为计算机的一个分支,广泛应用于工业控制、智能仪器仪表、机电一体化产品、家用电器等各个领域。单片机又称微控制器。它把三大部分(CPU+存储器+I/O接口)和一些实时控制所需的功能器件集成在该芯片上。
这次的设计任务是利用单片机构成一个小系统在锅炉液位控制中的应用与研究。虽然系统比较小,但是可以看出单片机的功能强大和应用的广泛性。
1 系统的设计
由任务书的要求我们可以确定。我们的设计性质为产品开发。按产品开发设计步骤,我们把设计分为4个部分:(1)总体介绍;(2)硬件系统的设计;(3)软件系统的设计;(4)软硬件结合性能测试分析。
1.1 总体介绍
系统控制图如图1所示。
1.1.1 单片机 ATMEL 89C51
(1)结构特点与分类。ATEMEL 89系列单片机内部结构与80C51接近,主要含有以下部件:(a)8051CPU;(b)内部震荡电路;(c)总线控制部件;(d)定时/计数部件,中断控制部件;(e)并行I/O接口,串行I/O接口;(f)片内RAM,特殊功能寄存器SFR,Flash程序存储器。ATEMEL 89系列单片机可分为标准型,低档型,高档型。
(2)兼容性。ATEMEL 89系列单片机与MCS-51指令系统兼容,可以用相同引脚的89系列单片机直接代替80C51产品。AT89C51相同封装的80C51兼容,指令系统完全相同,开发与设计均与80C51相同,是ATMEL公司功能强,性价比高的单片机。
(3)ATC89C51特点:(a)程序存储器的加密位。ATC89C51内部有4KB的闪存程序存储器,其闪存存储器均有3个加密位。(b)AT89C51片内有4KB的Flash程序存储阵列,一片新的AT89C51,其存储器阵列处于擦除状态(FFH),此时可以对其进行编程,存储器阵列一次编程一个字节,若编程任何非空字节时,需对整个存储器阵列进行擦除。
1.1.2 3-8译码器74LS138
3-8译码器74LS138为一种常用的地址译码芯片,其引脚图如图2所示。
其中G1、/G2A、/G2B为3个控制端,只有当G1为“1”且/G2A,/G2B均为“0”时,译码器才能进行译码输出。否则译码器的8个输出端全为高阻状态。具体使用时,G1,G2A,G2B即可直接至+5V(电源端)或接地,也可参与地址译码。但其译码关系必须为100。需要时也可通过反相器使输入信号满足要求。
1.1.3 8D锁存器74LS373
74LS373是一种带输出三态门的8D锁存器,其结构如图3所示:1D~8D为输入端。1Q~8Q为输出端。G位数据锁存控制端:当G为“1”时,锁存器输出端同输入端;当G由“1”变“0”时,数据输入锁存器中。/OE为输出允许端:当/OE为“0”时,三态门打开;当/OE为“1”时三态门关闭,输出呈高阻状态。在MCS-51单片机系统中,常采用74LS373作为地址锁存器使用,其连接方法如图4所示:其中输入端1D~8D接至单片机的P0口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信号ALE。输出允许端/OE接地,表示输出三态门一直打开。
1.1.4 74LS244 驱动器
74LS244常作单片机的总线驱动器,也做三态数据缓冲器。
1.1.5 液晶数码管
LED显示器是由发光二极管显示字段组成的显示器件。在单片机应用系统中通常使用的是七段LED。通常的七段LED显示器中有8个发光二极管,其中7个发光二极管构成7笔字型,一个发光二极管构成小数点。
1.1.6 LED显示器的显示方式
在单片机应用系统中可利用LED显示块灵活地构成所要求位数的显示器。根据显示方式的不同,位选线和段选线的连接方法有所不同。段选线控制字符选择,位选线控制显示位的亮或暗。
(1)LED静态显示方式。LED工作在静态显示方式下,共阴极接地或共阳极接+5V;每一位的段选码与一个8位并行I/O口相连。 N位静态显示器要求有N×8根I/O口线,占用I/O口线较多。故在位数较多时往往采用动态显示方式。
(2)LED动态显示方式。LED动态显示是将所有的段选线并接在一个I/O口上,共阴极端或共阳极端分别由相应的I/O口线控制。
1.1.7 语音芯片ISD1420
ISD1400系列单片语音录放集成电路,其内部设有时钟振荡器,128K E2PROM(电可编,电可擦只读存储器),前置放大器,自动增益电路,反混叠滤波器,模拟转发器,平滑滤波器,差分功放等高品质语音录放系统所需的全部基本功能電路。ISD1400系列单片器件采用单一电源供电,工作电压为直流(VDD)5V。其静电电流典型值0.5μA,最大值2μA;工作电流典型值15mA,最大值30mA;录放周期后,仅需0.5μA保持电流。
(1)管脚功能。这里对管脚文字及管脚功能作以下简介:①A0~A7:地址输入端;②VCCD:数字电路电源正极;③VCCA:模拟电路电源正极 ;④VSSD : 数字电路电源负极,地;⑤VSSA:模拟电路电源负极,地;⑥SP+:功放输出端,接扬声器(+);⑦SP—:功放输出端,接扬声器(—);⑧XCLK:外接时钟(振荡电路);⑨ANA IN:模拟量输入;⑩ANA OUT:模拟量输出;AGC:自动增益控制;MIC:驻极体话筒输入;MIC REF:驻极体话筒参考输入;PLAYE:边缘触发放音端;PLAYL:电平触发放音端;REC:录音触发端;RECLED:发光二极管接口端;NC:空脚
(2)操作模式:ISD1420地址输入端具有双重功能,根據地址中的A6,A7的电平的高低,决定着A0~A7的功能。如果A6,A7都是低电平,则A0~A7输入均为地址位,A0作起始地址用。地址位仅作为输入端,在操作过程中不能输出内部的地址信息。根据PLAYE,PLAYL或REC的下降沿信号,地址输入被锁定。如果A6,A7同为高电平,它们即为模式位。操作模式可以与微机接口,也可以用连线控制操作。有关地址输入端的功能说明如下:(a)A0:信息检索;(b)A1:删除EOM标志;(c)A3:循环重放信息;(d)A4:连续寻址;(e)A2,A5未用。
(3)典型应用电路:ISD1400系列器件目前已被用于微型固体录音机、通信、电话、车船、飞机黑匣子、有声电子信函、语音信箱、高级玩具等。ISD1420与计算机,单片机相结合,应用前景十分广阔。它可以开发会说话的电子秤,语音数字万用表,会说话的电压表和电流表,多路语音报警系统等新颖的电子电器来。
1.2 硬件系统的设计
1.2.1单片机通信
(1)基本概念:计算机与外界的信息交换称为通信。基本的通信方法有并行通信和串行通信两种。一个信息的各位数据被同时传送的通信方法称为并行通信。并行通信依靠I/O接口实现。其通信速度快,但传输线根数多,只适用于近距离(相距数米)的通信。一个信息的各位数据被逐位顺序传送的通信方式称为串行通信。串行通信可通过串行接口实现。串行通信速度慢,但传输线少,适宜长距离通信。串行通信又有异步通信和同步通信两种方式。
(2)串行接口的功能与结构:串行口有4种工作方式。方式0并不用于通信,而是通过外接移位寄存器芯片实现扩展并行I/O接口线的功能。方式1、方式2、方式3都是异步通信方式。方式1用于双机串行通信。方式2、方式3主要用于多机通信,也可用于双机通信。
(3)串行接口的工作方式:由于本单片机控制系统通信距离较长,且为双机通信,宜采用方式1。
1.2.2 语音与显示系统
本系统中,在ISD1420中分段存入“液位过低”,“液位过高”,“危险液位”……“锅炉有故障,请检查”等语音信息,在单片机的控制下,可以根据需要提取任意的组合信息。
显示器件中最常见的是LED(发光二极管)和LED数码管,前者多用于信号指示,后者可用于数字输出,它们有足够的亮度,耗电与发热都很少,并可在单一+5V电源下工作。
对于输入器件,通过扩展输入口与单片机连接;对于输出器件,则常通过扩展输出口与单片机连接。本例LED通过74LS245驱动芯片与单片机接口。
本系统采用共阴极数码管动态扫描显示,两个74ls245与4个LED数码管相连接,用于位驱动和段驱动。片选信号由74ls138提供。
1.2.3 单片机外围电路
(1)控制部件及振荡器:控制部件是单片机的神经中枢,它包括定时和控制电路、指令寄存器、译码器以及信息传送等部件。单片机的定时控制功能是用片内的时钟电路和定时电路来完成的。而片内的时钟产生有两种方式:内部时钟方式和外部时钟方式。采用内部时钟方式时,片内高增益反相放大器通过XTAL1,XYAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路构成一个自激振荡器向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率,一般晶体可在1.2MHz~12MHz任选。电容C1,C2的值则有微调作用,通常取30pF左右。如图5所示。
(2)复位电路:与其他计算机一样,MCS—51单片机系统常常有上电复位和按钮复位两种方法。复位是靠外部电路实现的。图6是上电复位及按钮复位的电路。
上电时,+5V电源立即对单片机芯片供电,同时经电阻R对电容C3充电。C3上电压建立的过程就产生一定宽度的负脉冲,经反相后,RST上出现正脉冲使单片机实现了上电复位。按钮按下时,RST上同样出现高电平,实现了按钮复位。非门在这里不仅起了反相作用,还增大了驱动能力,电容C,C起滤波作用,防止干扰窜入复位端产生误动作。
1.2.4系统硬件电路
液位信息自串行输入口RXD送入,P2口送出高电平经74LS138译码器变成低电平选通驱动器74LS245,先位选码后段选码,在4个数码管上显示液位数值,并判断其是否在报警范围内,若在,则由低电平选通ISD1420语音芯片和高电平选通74LS373地址所存器,并送入液位信息地址到语音芯片进行报警。这样就提醒操作者及时调节阀门,维持液位在安全范围内。
1.2.5硬件电路制作与检查
根据硬件电路选择所需元器件,先把大的片子在电路板上合理布局,然后进行焊接。最后焊接电阻电容等小的元件。等全部完成后,检查焊点是否实得,切忌有虚焊点,反复检查,认真对待。
1.3 软件系统的设计
1.3.1系统软件流程图
根据此次单片机应用系统设计要求,软件流程图如图7所示。
1.3.2 软件程序
根据软件系统流程图编写程序如下所示:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV A,30H ;主程序
CLR C
SUBB A,#20H
JC DANGER ;H<-75 JMP
MOV A,30H
CLR C
SUBB A,#33H
JC LOW_ALARM ;H<-60 JMP
MOV A,30H
CLR C
SUBB A,#0CCH
JNC HIGH_ALARM ;H>60 JMP
MOV A,30H
CLR C
SUBB A,#5AH
JC OPEN_WATER ;-60 < H < -30 JMP
MOV A,30H
CLR C
SUBB A,#0A5H
JNC STOP_WATER ;30 < H < 60 JMP
AJMP DISPLAY
DANGER: ;危险液位报警
CLR P1.0 ;STOP BUMP
CLR P1.1 ;STOP WIND
MOV DPTR,#4000H
MOV A,#10H
MOVX @DPTR,A ;DANGER ALARM
ORL P2,#0E0H
AJMP DISPLAY
LOW_ALARM: ;低液位报警
MOV DPTR,#4000H
MOV A,#08H
MOVX @DPTR,A ;LOW ALARM
ORL P2,#0E0H
AJMP DISPLAY
HIGH_ALARM: ; 高液位报警
MOV DPTR,#4000H
MOV A,#04H
MOVX @DPTR,A
ORL P2,#0E0H
AJMP DISPLAY
OPEN_WATER: ;開泵
SETB P1.0 ;OPEN BUMP
AJMP DISPLAY
STOP_WATER: ;关泵
CLR P1.0 ;STOP BUMP
DISPLAY: ;数字量与高度之间转换
MOV A,30H
MOV B,#0C8H ;200
MUL AB
MOV 32H,A ;LOW BIT
MOV 31H,B ;HIGH BIT
MOV 33H,#0FFH ;255
MOV A,32H
MOV R7,#00H
CLR C
LOOP_SUBB:
SUBB A,33H
JC JIE_WEI
INC R7
SJMP LOOP_SUBB
JIE_WEI:
DEC 31H
MOV A,31H
CJNE A,#0FFH,LOOP_SUB
SJMP LOOP_OUT
LOOP_SUB:
INC R7
SJMP LOOP_SUBB
LOOP_OUT:
MOV A,R7
CLR C
SUBB A,#64H
JC MINUS
MOV 40H,#00H ;SAVE BIT 1
SJMP PLUS
MINUS:
MOV A,#64H
CLR C
SUBB A,R7
MOV 40H,#40H ;SAVE BIT 1
PLUS: MOV B,#64H
DIV AB
MOV 41H,A ;SAVE BIT 2
MOV A,B
MOV B,#0AH
DIV AB
MOV 42H,A ;SAVE BIT 3
MOV 43H,B ;SAVE BIT 4
MOV 50H,40H ;DIDP 1 BIT
MOV R6,#00H ;PUT COUNT VALUE
FIND1_IN:
MOV A,R6
MOV DPTR,#TAB
MOVC A,@A+DPTR
CJNE A,41H,FIND_NO1
LJMP FIND1
FIND_NO1:
INC R6
SJMP FIND1_IN
FIND1: MOV 51H,R6
MOV R6,#00H
FIND2_IN:
MOV A,R6
MOV DPTR,#TAB
MOVC A,@A+DPTR
CJNE A,42H,FIND_NO2
SJMP FIND2
FIND_NO2:
INC R6
SJMP FIND2_IN
FIND2: MOV 52H,R6
MOV R6,#00H
FIND3_IN:
MOV A,R6
MOV DPTR,#TAB
MOVC A,@A+DPTR
CJNE A,#43H,FIND_NO3
SJMP FIND3
FIND_NO3:
INC R6
SJMP FIND3_IN
FIND3: MOV 53H,R6
SJMP DISP_START
TAB:DB 3FH,06H,59H,4FH,66H
DB 6DH,7DH,07H,7FH,67H
DISP_START: ;显示程序
MOV DPTR,#2000H
MOV A,#01H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,50H
MOVX @DPTR,A ;DISP 1 BIT
ACALL DELAY_1ms
MOV DPTR,#2000H
MOV A,#02H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,51H
MOVX @DPTR,A ;DISP 2 BIT
ACALL DELAY_1ms
MOV DPTR,#2000H
MOV A,#04H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,52H
MOVX @DPTR,A ;DISP 3 BIT
ACALL DELAY_1ms
MOV DPTR,#2000H
MOV A,#08H
MOVX @DPTR,A
ORL P2,#0E0H
MOV DPTR,#0000H
MOV A,53H
MOVX @DPTR,A
ACALL DELAY_1ms
AJMP MAIN ;返回主程序
DELAY_1ms: ;延時1毫秒
MOV R1,#0AH
DEL1:MOV R2,#18H
DEL2:NOP
NOP
DJNZ R2,DEL2
DJNZ R1,DEL1
RET
END MAIN
1.3.3 软件调试
本系统主要有两个程序模块,显示程序和报警程序。借助计算机软件调试工具,对已编好的系统程序分块进行反复调试,发现错误及时更正,直到完全无误为止。
1.4 软硬件结合性能测试介绍
单片机应用系统的程序存储器必须写有调试好的应用程序,系统才能运行。因此,总要有调试过程,甚至反复多次调试。由于程序是连续高速的运行的,我们无法观察它的运行情况,也无法加以修改,为了提供诊断、修改等调试手段,必须用到开发工具。
从用户源程序的编写到单片机应用系统正常工作前的全过程,统称为单片机应用系统的开发,而用已实现这一开发的工具便称为开发装置或开发系统。
开发系统本身也是一个计算机系统,在完成上述开发任务时,可进行仿真:把应用系统自身的单片机拔掉,将开发系统的仿真插头插入以取代原单片机,从而实现对用户样机软、硬件的故障诊断和调试。
结语
(1)设计单片机应用系统时,首先必须明确设计任务和设计要求,抓住关键问题,作为系统总体方案设计的依据.合理选择机型和系统构成方案。合理划分软硬件的功能,以有利兼顾系统价格比和缩短研制周期。
(2)机型选择。系统的扩展和配置是硬件设计的主要内容。当机型确定后,必须根据应用对象所需的数字量及模拟量通道,进行I/O饥饿口的分配,拟定外围设备接口相应的电路,考虑中断顺序和方法。硬件设计应充分满足系统功能要求,并留有适当余地,以便调试时修改和二次开发。
(3)软件设计常采用模块化结构,分块设计和调试,易于寻找故障和修改。根据每个模块的功能,首先画出程序流程图,然后尽可能应用程序设计方法的技巧编制应用程序。
(4)为提高应用系统可靠性,还应进行软硬件抗干扰设计。
参考文献
[1]丁元杰.单片微机原理及应用[M].北京:机械工业出版社,1999.
[2]陈汝全,林水生.实用微机与单片机控制技术[M].成都:电子科技大学出版社,1993.