资源描述
单片机水位控制系统设计机电工程学院11级机制x班 xxx摘要:本文介绍一种单片机水箱水位控制系统,通过单片机进行水箱高低水位的监测,用数码管显示水位状况,分为缺水、水位低、水位中、水位高和水满5档。根据检测结果控制电磁阀、水泵电动机等,当水箱缺水时开始注水;当水箱水满时,停止注水,保证水箱水位维持在一定的范围内。关键词 单片机 水位前言单片机是计算机技术发展到一定阶段的产物,基于单片机自身的特点,开发的智能化、自动化设备或控制产品广泛应用于工业、农业和国防工业各领域,极大促进了产品技术水平的提高。本次所设计的水位控制系统要求通过单片机控制的方法来进行实时水位的监测,用数码管显示水位状态,分为缺水、水位较低、水位中间、水位较高和水满5档。根据水位检测结果通过单片机I/O口控制继电器、电磁阀、水泵电机等电器元件,完成当水箱缺水时注水;当水箱水满时,停止水泵电机完成注水,最终使水箱水位维持在一定的范围内。系统控制原理 1. 程序存储器扩展利用8031单片机实现水位控制,由于8031片内没有程序存储器,需要扩展2K的EPROM(型号2716),单片机与EPROM的连接框图如图1所示。18 298031 3019 单 片机 9 P0 P2.2OE EPROMA02716DA8A1074LS373 图 1 2. 水箱水位检测电路在水箱水位检测电路中,四个常开型干黄管H1H4安装在水箱里四个不同高度的位置,连线经光电隔离后分别接上拉电阻输入到单片机I/O端口。由于普通水具有导电特性,当水位上升到一定高度时,相应的干黄管导通,如同开关闭合,经光电耦合输入给单片机I/O端口的为低电平信号;否则为高电平信号。其中光电耦合器亦称光电隔离器或光耦合器,简称光耦。它是以光为媒介传输电信号的一种“电一光一电”转换器件,由发光源和受光器两部分组成。光电耦合器在电路中的作用是使水箱与单片机在电气上通过光来实现隔离,使用单片机控制的现场环境一般比较恶劣,来自现场的电、磁、振动等干扰严重。为了避免现场电气对单片机的工作造成干扰,必须将单片机与现场电气进行隔离,一般采用光电耦合器件来实现光电隔离。光电耦合器的另外一个作用是可以实现电平匹配。现场开关量信号不一定是TTL电平,需要进行电平转换,才能与单片机I/O端口连接,最简单的方法是利用光电耦合器分压电路实现。光电耦合器电路如图2所示。 图 23. 开关量输出的驱动接口开关量(数字“0”或“1”信号)输入一般需要采用光电隔离以避免干扰。同时,由于8031单片机I/O端口的驱动能力有限(输出电流较小,不足以驱动继电器、接触器、电磁阀等电气部件),必须在I/O端口线上加驱动电路。(1) 继电器输出接口:接触器、电磁阀、水泵电机等属于强电设备,一般需要市电(220V、50Hz)或工业用电(380V、50Hz)来驱动。继电器能够完成从低压直流到高压交流控制的过渡,如下图所示。24V 图 3(2) 双向晶闸管输出接口:双向晶闸管,又称为双向可控硅,(可控硅分为单向可控硅和双向可控硅两种,前者只允许一个方向的电流通过,即电流只能从单向可控硅的阳极流到阴极;而双向可控硅不仅允许电流从阴极流到阴极,也允许电流从阴极流到阳极),双向可控硅是目前比较理想的交流开关器件。无论在双向晶闸管两端接入何种极性的电压,只要在它的控制极上加上一个触发脉冲,也不管这个脉冲是什么极性的,都可以使双向晶闸管导通。本系统采用的双向晶闸管应用电路如图4所示(MOC3041是过零触发可控硅型光耦)。其中触发信号来自单片机P1.0端口,经过反相器控制过零触发可控硅型光电耦合器MOC3041M(2脚)的光电二极管负极,MOC3041M(4脚)输出触发脉冲,触发双向可控硅U2,使其导通,220V交流电压经过双向可控硅加到负载ZL两端(ZL即电机整流电路)。 图 44. 水泵直流电机的单片机控制实现对直流电动机的转向和转速控制,是单片机在机电控制中的一个典型应用。(1) 直流电机的正反转控制:控制电机正反转的单电源驱动电路原理如图5所示。 PWM电源 图 5采用2只PNP型和2只NPN型功率三极管构成桥式主电路,4个并联在三极管两端的二极管为续流二极管(当三极管关断时,由于电机是电感性负载,它产生的反电动势由二极管提供电流通路)。4只三极管组成的桥式电路有两个支路,Q1,Q4为一个支路,Q2,Q3为另外一个支路,一个支路控制直流电机的一个旋转方向,所以任何时刻只允许同一个支路的两个晶体管导通,另外一个支路的两个晶体管必须截止,这种互锁的逻辑关系由单片机汇编程序通过I/O端口实现。(2) PWM(脉冲宽度调制)控制直流电机转速原理:PWM是一种对模拟信号电平进行数字编码的方法,通的时候即是直流供电加到负载(直流电机)上的时候,断的时候即是供电断开的时候。所谓占空比就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比。下图6给出了3种不同占空比的PWM波形。 图 6(自上而下,占空比为75%,50%和25%)占空比不同,其等效的直流电压的高低也不一样,因为直流电机的转速与加在电机电枢两端的电压成正比,如果将PWM电源通过驱动电路分别加到直流电机上,则电机将具有3种不同的转速。而占空比可以通过改变单片机的I/O端口输出延迟时间来调整,通常PWM的频率为1kHz到200kHz之间。 图 7直流电机为注水泵提供动力,电机转速越快,注水的速度也越快。在图7所示电路中,用PWM方法实现对直流电机正转的转速进行调节控制。其中按键S1为加速键(P1.0=0),S2为减速键(P1.1=0),S3为电机开始运行键(P1.2=0),S4为电机停止运行键(P1.4=0,图中未画出)。利用单片机产生PWM波,对直流电机调速需完成两个任务: 一是基本周期信号的产生,即提供一个基本的PWM周期信号,此任务由定时器T1完成。T1定时初值为0,在晶振12MHz时,定时时间256s。T1定时时间到启动T0,并且使电机停转。TT1: MOV P3,#00H ;P3=0,晶体管关断,电机停转。 SETB TR0 ;启动定时器T0 RETI ;中断返回T0定时时间T1定时时间 二是脉冲宽度的调整,此任务由定时器T0完成。T0的定时时间可通过按键进行调整,且当T0定时时间到时,启动电机运行,T0的再次启动由T1控制,也就是新的PWM周期的开始。TT0: CLR TR0 ;TR0=0,定时器T0停止运行 MOV P3,#10H ;P3.4=1,晶体管Q1,Q4导通,启动电机正转 RETI ;中断返回单片机初始化程序如下:MAIN: MOV TMOD,#22H ;T0、T1均工作在方式2 MOV TH1,#0 MOV TL1,#0 MOV TL0,#80H MOV TH0,#80H SETB EA ;开放中断 SETB ET0 SETB ET1 MOV R1,#80H加速注水程序如下:LOOP: JB P1.0,SS2 JNB P1.0,$ CJNE R1,#0FAH,DD1 ; R1没有达到最大值,转 AJMP LOOP ;R1达到最大值,不变化 DD1: INC R1 ;S1键按下增加占空比 MOV TL0,R1 ;重装初值 MOV TH0,R1 AJMP LOOP减速注水程序如下: SS2: JB P1.1,SS3 JNB P1.1,$ CJNE R1,#09H,DD2 ;R1不是最小值,转DD2 AJMP LOOP ;R1是最小值,不变化DD2: DEC R1 ;S2键按下减小占空比 MOV TL0,R1 ;重装初值 MOV TH0,R1 AJMP LOOP开始注水程序如下:SS3: JB P1.2,SS4 JNB P1.2,$ SETB TR1 ;S3键按下电机开始运行 AJMP LOOP停止注水程序如下: SS4: JB P1.3,LOOP JNB P1.3,$ CLR TR1 CLR TR0 MOV P3,#00H AJMP LOOP 图 8水位检测结果通过P1口输入给单片机,单片机的P3.4脚控制电机桥支路(P3.4=0,Q1不导通),即控制注水电机的起停。用一位数码管显示水位状态。完整电路图如图8所示。程序流程图及汇编程序设计程序采用多分支结构,根据对水位状态的检测结果,分为缺水(数码管显示“1”)、水位较低(数码管显示“2”)、水位中间(数码管显示“3”)、水位较高(数码管显示“4”)和水满(数码管显示“5”)5种状态,每种状态执行相应的功能,程序流程图如下图9所示: 图 9完整的控制程序如下:ORG 0000H MOV DPTR,#8200H MOV A,#0FEH MOVX DPTR,A ;8200H 11111110B(0FEH) MOV DPTR,#8100H LOOP: MOV P1,#0FFH ;P1 11111111B(0FFH) MOV A,P1 ANL A,#0FH ;屏蔽高4位,保留低4位 MOV R2,A ;R2 00001111B(0FH) CJNE A,#0FH,SS1 ;(P1)0FH,转移到SS1 MOV A,#0F9H MOVX DPTR,A ;8100H 11111001B(F9H) CLR P3.4 ;P3.4 0,关断电机正转桥路 AJMP LOOP ;无条件转移到LOOP SS1: MOV A,R2 CJNE A,#07H,SS2 MOV A,#0A4H MOVX DPTR,A AJMP LOOPSS2: MOV A,R2 CJNE A,#03H,SS3 MOV A,#0B0H MOVX DPTR,A AJMP LOOP SS3: MOV A,R2 CJNE A,#01H,SS4 MOV A,#99H MOVX DPTR,A AJMP LOOP SS4: MOV A,R2 CJNE A,#00H,LOOP MOV A,#92H MOVX DPTR,A SETB P3.4 AJMP LOOP END结束语 用单片机显示、控制水箱(或水池)的水位,控制电路简单、可靠,实现了无人化管理,对单片机控制系统而言具有一定的代表性和实用价值。 在实际应用中,还可根据需要增加或缩减一些功能。也可利用单片机端口控制继电器,由继电器触点再控制接触器直接启动或停止水泵三相交流电机,控制电路和用户程序更加简单。主要参考文献王法能主编,单片机原理与应用实例教程,北京:北京交通大学出版社,2010.7.。张凯,MCS-51单片机综合系统及其设计开发,北京:科学出版社,1996.
展开阅读全文