基于51单片机的恒压供水系统.docx
《基于51单片机的恒压供水系统.docx》由会员分享,可在线阅读,更多相关《基于51单片机的恒压供水系统.docx(15页珍藏版)》请在冰豆网上搜索。
基于51单片机的恒压供水系统
第一章引言
1.1变频恒压供水系统主要特点
1.节能,可以实现节电20%~40%,能实现绿色省电。
2.占地面积小,投资少,效率高。
3.配置灵活,自动化程度高,功能齐全,灵活可靠。
4.运行合理,由于是软启和软停,不但可以消除水锤效应,而且电机轴上的平均扭矩和磨损减小,减小了维修量和维修费用,并且水泵的寿命大大提高。
5.由于变频恒压调速直接从水源供水,减少了原有供水方式的二次污染,防止了很多传染疾病。
6.通过通信控制,可以实现五人职守,节约了人力物力。
1.2恒压供水设备的主要应用场合
1.高层建筑,城乡居民小区,企事业等生活用水。
2.各类工业需要恒压控制的用水场合,冷却水循环,热力网水循环,锅炉补水等。
3.中央空调系统。
4.自来水厂增压系统。
5.农田灌溉,污水处理,人造喷泉。
6.各种流体恒压控制系统。
第二章变频恒压调速供水系统的工作原理
根据现场生产的实际状况,白天一般只需开动一台水泵,就能满足生产生活需要,小机工频运行作恒速泵使用,大机变频运行作变量泵;晚上用水低峰时,只需开动一台大机就能满足供水需要,因此可以采用一大一小搭配进行设计,即把1#水泵电机(160KW)和2#水泵电机(220KW)为一组,自动控制系统可以根据运行时间的长短来调整选择不同的机组运行。
分析自动控制系统机组Ⅰ(1#、2#水泵机组)工作过程,可分为以下三个工作状态:
(1)1#电机变频启动;
(2)1#电机工频运行,2#电机变频运行;(3)2#电机单独变频运行,一般情况下,水泵电机都处于这三种工作状态中,当管网压力突变时,三种工作状态就要发生相应变换,因此这三种工作状态对应着三个切换过程。
1.切换过程Ⅰ
1#电机变频启动,频率达到50Hz,1#电机工频运行,2#电机变频运行。
系统开始工作时,管网水压低于设定压力下限P。
按下相应的按钮,选择机组Ⅰ运行,在PLC可编程控制器控制下,KM2得电,1#电机先接至变频器输出端,接着接通变频器FWD端。
变频器对拖动1#泵的电动机采用软启动,1#电机启动,运行一段时间后,随着运行频率的增加,当变频器输出频率增至工频f0可编程控制器发出指令,接通变频器BX端,变频器FWD端断开,KM2失电,1#电机自
变频器输出端断开,KM1得电,1#电机切换至工频运行,1#电机自变频器输出端断开,KM1得电1#电机切换至工频运行。
1#电机工频运行后,开启1#泵阀门,1#泵工作在工频状态。
接着KM3得电,2#电机接至变频器输出端,接通变频器FWD端,变频器BX端断开,2#电机开始软启动,运行一段时间后,开启2#泵阀门,2#水泵电机工作在变频状态。
从而实现1#水泵由变频切换至工频电网运行,2#水泵接入变频器并启动运行,在系统调节下变频器输出频率不断增加,直到管网水压达到设定值(Pi<P<Pm)为止。
2.切换过程Ⅱ
由1#电机工频运行,2#电机变频运行转变为2#电机单独变频运行状态。
当晚上用水量大量减少时,水压增加,2#水泵电机在变频器作用下,变频器输出频率下降,电机转速下降,水泵输出流量减少,当变频器输出频率下降到指定值fmin,电机转速下降到指定值,水管水压高于设定水压上限Pk时(2#电机,f=fmin,P<Pk),在PLC可编程控制器控制下,1#水泵电机在工频断开,2#水泵继续在变频器拖动下变频运行。
3切换过程Ⅲ
由2#电机变频运行转变为2#电机变频停止,1#电机变频运行状态。
当早晨用水量再次增加时,2#电动机工作在调速运行状态,当变频器输出频率增至工频fi(即50Hz),水管水压低于设定水压上限Pi时(2#电机f=fi,P≦Pi),接通变频器BX端,变频器FWD断开,KM3断开,2#电机自变频器输出端断开;KM2得电,1#电机接至变频器输出端;接通变频器FWD端,于此同时变频器BX端断开。
1#电机开始软启动。
控制系统又回到初始工作状态Ⅰ,开始新一轮循环。
1#和2#机组工作过程流程图
第三章变频恒压调速供水系统硬件设计
系统单元设计主要包括CPU基本控制单元、电路定时复位电路、A/D转换电路、D/A转换电路、显示电路和相应的开关电路。
图3-1系统硬件结构框图
3.1硬件总体说明
单片机系统的硬件结构框架图如图3-1所示。
本系统以8951单片机为核心,它有4KEPROM,所以不用外扩EPROM,这样可以利用P0、P2口作为输入、输出I/O口,简化了硬件结构。
系统的显示采用4片74LS164驱动LED,使用8951的串行通讯口TXD,DXD。
93C46为串行EEPROM,用于保存开机设定的原始参数。
采用NE555组成硬件定时复位电路,
可以有效防止程序死机现象。
74LS273用于对继电器输出状态硬件锁存,以防止输出状态被干扰。
ULN2003为反向驱动芯片,同时在74LS273的CLEAR管脚外接RC电路,用于开机时使74S273的输出端清零,用于防止继电器的误动作,对变频器起到了保护作用。
在报警输入端与CPU之间采用光耦隔离,以消除外部干扰。
系统A/D输入采用8位TLC0831逐次逼近模数转换器,D/A输出采用了光耦离式D/A输出,并采用LM358双运放组成D/A输出及驱动电路。
P3.3定时输出占空比与频率相对应的PWM调制信号,通过二极运算放大电路后,在LM358的第7引脚输出与频率相对应的电压信号。
在输出端调节电位器可以调节输出电压的大小,两放大器之间的RC电路起到了滤波的作用。
3.2.5V单片机供电电源电路
它由电源变压器B,桥式整流电路D1~D4,滤波电容C1、C3,防止自激电容C2、C3和一只固定式三端稳压器(7805)极为简捷方便地搭成的。
220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D1~D4和滤波电容C1的整流和滤波,在固定式三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。
此直流电压经过LM7805的稳压和C3的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。
本稳压电源可作为TTL电路或单片机电路的电源。
三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。
图3-5LM7805稳压电源
第四章变频恒压调速供水系统软件设计
3.3555定时器复位电路
NE555定时电路V0口输出连续的脉冲信号至RST,达到定时复位的效果。
电路使用电阻电容产生RC定时电路,用于设定脉冲的周期和脉冲的宽度。
调节RW或者电容C,可以得到不同的时间常数。
脉冲宽度计算公式:
TW=0.7(R1+RW+R2)C
振荡周期计算公式:
T=0.7(R1+RW+2*R2)C
从而通过控制振荡周期和脉冲宽度就可以控制定时时间。
NE555定时电路及工作波形
第四章单片机资料
单片微型计算机简称为单片机,有称为微型控制器,是微型计算机的一个重要分支。
单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O接口和中断系统于同一硅片的器件。
80年代以来,单片机发展迅速,各类新产品不断涌现,出现了许多高性能新型机种,现已逐渐成为工厂自动化和各控制领域的支柱产业之一。
引脚功能:
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:
lP0.0~P0.7P0口8位双向口线(在引脚的39~32号端子)。
lP1.0~P1.7P1口8位双向口线(在引脚的1~8号端子)。
lP2.0~P2.7P2口8位双向口线(在引脚的21~28号端子)。
lP3.0~P3.7P2口8位双向口线(在引脚的10~17号端子)。
P0口有三个功能:
1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)
2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)
3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:
其内部有上拉电阻。
P2口有两个功能:
1、扩展外部存储器时,当作地址总线使用;
2、做一般I/O口使用,其内部有上拉电阻。
P3口有两个功能:
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。
有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,
即:
编程脉冲:
30脚(ALE/PROG)
编程电压(25V):
31脚(EA/Vpp)
接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?
这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么呢?
他起什么作用呢?
当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
ALE/PROG地址锁存控制信号:
在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。
(在后面关于扩展的课程中我们就会看到8051扩展EEPROM电路,ALE与74LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出。
ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器。
当ALE是低电平时,P0口上的内容和锁存器输出一致。
在没有访问外部存储器期间,ALE以1/6振荡周期频率输出(即6分频),当访问外部存储器以1/12振荡周期输出(12分频)。
当系统没有进行扩展时ALE会以1/6振荡周期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。
PORG为编程脉冲的输入端:
在8051单片机内部有一个4KB或8KB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序的,那么我们是怎样把编写好的程序存入进这个ROM中的呢?
实际上是通过编程脉冲输入才能写进去的,这个脉冲的输入端口就是PROG。
PSEN外部程序存储器读选通信号:
在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。
1、内部ROM读取时,PSEN不动作;
2、外部ROM读取时,在每个机器周期会动作两次;
3、外部RAM读取时,两个PSEN脉冲被跳过不会输出;
4、外接ROM时,与ROM的OE脚相接。
(8051扩展2KBEEPROM电路,PSEN与扩展ROM的OE脚相接)
EA/VPP访问和序存储器控制信号
1、接高电平时:
CPU读取内部程序存储器(ROM)
扩展外部ROM:
当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM。
2、接低电平时:
CPU读取外部程序存储器(ROM)。
在前面的学习中我们已知道,8031单片机内部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。
3、8051写内部EPROM时,利用此脚输入21V的烧写电压。
RST复位信号:
当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。
XTAL1和XTAL2外接晶振引脚。
当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
VCC:
电源+5V输入
VSS:
GND接地。
AVR和pic都是跟8051结构不同的8位单片机,因为结构不同,所以汇编指令也有所不同,而且区别于使用CISC指令集的8051,他们都是RISC指令集的,只有几十条指令,大部分指令都是单指令周期的指令,所以在同样晶振频率下,较8051速度要快。
另PIC的8位单片机前几年是世界上出货量最大的单片机,飞思卡尔的单片机紧随其后。
ARM实际上就是32位的单片机,它的内部资源(寄存器和外设功能)较8051和PIC、AVR都要多得多,跟计算机的CPU芯片很接近了。
常用于手机、路由器等等。
DSP其实也是一种特殊的单片机,它从8位到32位的都有。
它是专门用来计算数字信号的。
在某些公式运算上,它比现行家用计算机的最快的CPU还要快。
比如说一般32位的DSP能在一个指令周期内运算完一个32位数乘32位数积再加一个32位数。
应用于某些对实时处理要求较高的场合。
附录一:
程序
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitst=P3^2;
sbitoe=P3^1;
sbiteoc=P3^0;
ucharcodetab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管显示段码
ucharcodetd[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先择数组
uintad_0809,ad_data1,ad_data2,ad_data3,ad_data0;
ucharm,number;
ucharx[8];//八通道数据待存数组
voiddelaynms(uintx);//nms延时程序
voiddisplay();//显示程序
voidad0809();//芯片启动程序
voidkey();//键扫描程序
main()
{
number=1;
P1=0x00;
while
(1)
{
ad0809();//调AD0809启动子程序
key();//调按键子程序
ad_0809=x[number];//把相关通道数据给ad_0809
display();//调显示
}}
//nms延时程序
voiddelaynms(uintx)
{
uchari;
while(x-->0)
{
for(i=0;i<125;i++)
{;}}}
voiddisplay()
{
uchara;
ad_data1=(ad_0809*49/25)/100;//读得的数据乘以2再乘以98%除以100得百位
ad_data2=((ad_0809*49/25)%100)/10;//读得的数据乘以2再乘以98%再分出十位
ad_data3=(((ad_0809*49/25)%100)%10);//读得的数据乘以2再乘以98%再分出个位
for(a=0;a<10;a++)
{
P0=tab[ad_data3];//送小数点后第二位显示
P2=0x07;//选通第一个数码管
delaynms(3);
P0=tab[ad_data2];//送小数点后第一位显示
P2=0x0b;//选通第二个数码管
delaynms(3);
P0=tab[ad_data1];//送整数显示
P0_7=0;//点亮第三个数码管小数点
P2=0x0d;//选通第三个数码管
delaynms(3);
P0=tab[number];//送通道号显示
P2=0x0e;
delaynms(3);
}}
voidad0809()
{
uchari,m=1;
for(i=0;i<8;i++)
{
P0=td[i];//选通通道
oe=0;//以下三条指令为起动AD0809
st=0;
st=1;
st=0;
delaynms
(1);
while(!
eoc);//等待转换结束
oe=1;//取出读得的数据
x[m]=P2;//送相关通道数组
oe=0;
m++;
}}
voidkey()
{
if(!
P3_5)//P3.5是否按下
{
delaynms(20);//延时判误
if(!
P3_5)//再一次判断P3。
5是否按下
{
while(!
P3_5);//等待P3。
5为高电平
number++;//通道号显示加一
if(number>8)number=1;//八通道
}}}
附录二:
参考文献
[1]何立民.MCS-51系列单片机应用系统设计,北京航空航天大学出版社,1990.
[2]李华.MCS-51系列单片机使用接口技术,北京航空航天大学出版社,1992.
[3]解宏基,任光.一种多功能变频恒压供水单片机供水控制系统,大连海事大学轮机工程研究所,116024.
[4]周黎辉,冯正进.变频器在多泵并联调速系统中的应用,机电一体化,1999年第4期.
[5]秦进平,官英双.基于单片机的恒压供水系统,黑龙江工程学院学报(自然科学版),Vol.19,No.1MAR,2005
[6]马忠梅,籍顺心,张凯.单片机的C语言应用程序设计(第3版权),北京航空航天大学出版社,2003
[7]苏夯.控制恒压供水系统的设计,大连交通大学,2009-12-18.
[8]童占.新概念51单片机C语言教程,电子工业出版社,2003.
[9]王幸之,钟爱琴.AT89系列单片机原理及接口技术[M].北京:
北京航空航天大学出版社,2004:
489-504.
[10]南建辉、熊鸣、王军茹.MCS-51单片机原理及应用实例,北京:
清华大学出版社,2003.
[11]方彦军,孙健.智能仪器技术及其应用[M],西安:
化学工业出版社,2006:
98-105.