单片机水位控制系统.docx
《单片机水位控制系统.docx》由会员分享,可在线阅读,更多相关《单片机水位控制系统.docx(11页珍藏版)》请在冰点文库上搜索。
单片机水位控制系统
1引言
随着集成电路规模日益大型化、复杂化,各种复杂的液位控制系统已成为一个研究的热点。
单片机以其控制精度高,性能稳定、可靠,设置操作方便,造价低等特点,应用到液位系统控制之中,不但保证了系统的准确性和可靠性,而且增强了人机交互的能力。
单片机应用发展迅速而广泛。
在过程控制中,单片机既可作为主计算机,又可作为分布式计算机控制系统中的前端机,完成模拟量的采集和开关量的输入、处理和控制计算,然后输出控制信号。
单片机广泛用于仪器仪表中,与不同类型的传感器相结合,实现诸如电压、功率、频率、湿度、流量、速度、厚度、压力、温度等物理量的测量;在家用电器设备中,单片机已广泛用于电视机、录音机、电冰箱、电饭锅、微波炉、洗衣、高级电子玩具、家用防盗报警等各种家电设备中。
在计算机网络和通信、医用设备、工商、金融、科研、教育、国防、航空航天等领域都有着十分广泛的应用。
项目应用中液位的测量常用方法主要有超声波、激光红外测距、机械浮子、压力传感器测距等几种。
这些测量方式对一般液位的测量来说各有各的优点,可根据不同的应用场合和要求进行选择。
2系统设计方案
2.1系统设计方案及总框图
对于水位进行控制的方式有很多,而应用较多的主要有2种,一种是简单的机械式控制装置控制,一种是复杂的控制器控制方式。
两种方式的实现如下:
(1>简单的机械式控制方式。
其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。
存在问题是精度不高,不能进行数值显示,另外很容易引起误动作,且只能单独控制,与计算机进行通信较难实现。
(2>复杂控制器控制方式。
这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、A/D变换成数字信号传送到单片机,经单片机运算和给定参量的比较,进行PID运算,得出调节参量。
经由D/A变换给调压/变频调速装置输入给定端,控制其输出电压变化,来调节电机转速,以达到控制水位的目的。
本设计利用单片机设计一个水位控制系统,要求选择合适的水位传感器及电磁阀,当设定完水位后,系统根据水位情况控制电磁阀的开启和关断。
图2-1系统总体框图
2.2硬件设计方案
2.2.1工作原理
基于单片机实现的水位控制器是以AT89C51芯片为核心,由键盘、数码显示、A/D转换、传感器,电源和控制部分等组成。
工作过程如下:
当水位发生变化时,引起连接在水位底部软管管内的空气气压变化,气压传感器在接收到软管内的空气气压信号后,即把变化量转化成电压信号。
该信号经过运算放大电路放大后变成幅度为0~5V标准信号,送入A/D转换器,A/D转换器把模拟信号变成数字信号量,由单片机进行实时数据采集,并进行处理,根据设定要求控制输出,同时数码管显示液位高度。
通过键盘设置液位高、低和限定值以及强制报警值。
该系统控制器特点是直观地显示水位高度,可任意控制水位高度。
2.2.2主控模块设计方案
单片机作为主控模块,使得在对单片机选型上有了较大的空间。
单片机在30多年的发展历程中,形成了多公司、多系列、多型号“百家争鸣”的局面。
因而,选择一个合适的单片机有时真的不太容易,要考虑的方面太多。
大致总结出以下几点:
1>单片机的基本参数。
例如速度、程序存储器容量、I/O引脚数量等。
2>单片机的增强功能。
例如看门狗、双指针、双串口、RTC<实时时钟)、EEPROM、扩展RAM、CAN接口、I2C接口、SPI接口、USB接口。
3>Flash和OTP<一次性可编程)。
4>封装:
DIP<双列直插),PLCC5>工作温度范围,工业级还是商业机。
6>功耗。
7>工作电压范围。
例如设计电视机遥控器,2节干电池供电,至少应该能在1.8~3.6V电压范围内工作。
8>供货渠道畅通。
9>价格。
10>烧录器价格,能否ISP<在线系统编程)。
11>仿真器。
12>单片机汇编语言支持。
13>资料尽量丰富。
14>抗干扰性能好。
15>和其他外设芯片放在一起的综合考虑。
单片机采用由Atmel公司生产的双列40脚AT89C51芯片,如图2—2所示。
其中,P0口用于A/D转换和显示。
P1口连接一个3×5的键盘。
P2口用于控制电磁阀和水泵动作。
P3口用于上、下限指示灯,报警指示灯以及用于读写控制和中断等。
图2-2AT89C51的管脚图
2.2.3电机控制模块设计方案
选用继电器作为电机控制的元件。
继电器是一种电子控制器件,它具有控制系统<又称输入回路)和被控制系统<又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
继电器主要产品技术参数:
1>额定工作电压。
是指继电器正常工作时线圈所需要的电压。
根据继电器的型号不同,可以是交流电压,也可以是直流电压。
2>直流电阻。
是指继电器中线圈的直流电阻,可以通过万能表测量。
3>吸合电流。
是指继电器能够产生吸合动作的最小电流。
在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。
而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。
4>释放电流。
是指继电器产生释放动作的最大电流。
当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。
这时的电流远远小于吸合电流。
5>触点切换电压和电流。
是指继电器允许加载的电压和电流。
它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点。
根据以上的参数,结合设计的演示性,选用额定工作电压120VAC/24VDC,工作电流3A,控制电压5VDC的小型继电器。
2.2.4A/D转换模块设计方案
ADC0809是M美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片。
1、主要特性
<1)8路输入通道,8位A/D转换器,即分辨率为8位。
<2)具有转换起停控制端。
<3)转换时间为100μs(时钟为640kHz时>,130μs<时钟为500kHz时)
<4)单个+5V电源供电
<5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
<6)工作温度范围为-40~+85摄氏度
<7)低功耗,约15mW。
2、内部结构和外部引脚
ADC0809的内部结构和外部引脚分别如下两图所示。
内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:
<1)IN0~IN7——8路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。
<2)D7~D0——A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。
8位排列顺序是D7为最高位,D0为最低位。
<3)ADDA、ADDB、ADDC——模拟通道选择地址信号,ADDA为低位,ADDC为高位。
地址信号与选中通道对应关系如表11.3所示。
<4)VR(+>、VR(->——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。
在单极性输入时,VR(+>=5V,VR(->=0V;双极性输入时,VR(+>、VR(->分别接正、负极性的参考电压。
<5)ALE——地址锁存允许信号,高电平有效。
当此信号有效时,A、B、C三位地址信号被
锁存,译码选通对应模拟通道。
在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
<6)START——A/D转换启动信号,正脉冲有效。
加于该端的脉冲的上升沿使逐次逼近寄存止,重新从头开始转换器清零,下降沿开始A/D转换。
如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中。
地址
选中通道
ADDC
ADDB
ADDA
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
图2—3ADC0809外部引脚图
7)EOC——转换结束信号,高电平有效。
该信号在A/D转换过程中为低电平,其余时间为高电平。
该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。
在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。
<8)OE——输出允许信号,高电平有效。
当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。
在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。
3硬件电路设计
3.1传感器电路
系统选用B2119压阻式压力传感器,压阻式压力传感器是利用单晶硅的压阻效应制成的器件。
这种传感器精度高、工作可靠,容易实现数字化,比应变式压力传感器体积小而输出信号大。
它是目前压力测试中使用最多的一种传感器。
压阻式压力传感器使用集成电路工艺技术,在硅片上制造出四个等值的薄膜电阻,并组成电桥电路,当不受到压力作用时,电桥处于平衡状态,无电压输出;当受到压力作用时,电桥失去平衡,电桥输出电压。
电桥输出的电压与压力成正比例。
其工作原理图如3—1所示
图3—1
压阻式压力传感器原理图
3.2时钟电路与复位电路
要使单片机按照设计要求正常工作,完整单片机最基本的工作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计算,采用11.0592MHz的晶振提供系统时钟。
并附加复位电路,组成单片机最小系统。
图3—2复位电路及时钟电路
3.3A/D采集转换电路
本系统A/D芯片所选用的是ADC0809,该大规模集成电路芯片是一种由单一+5V电源供电,采用逐次逼近转换原理,能够对8路0—+5V输入模拟电压进行分时转换的八位并行通用型可编程模数转换器。
ADC0809由单片机控制驱动,对传感器进行定式循环采集,然后单片机将各测量参数传至PC机,进行后台数据处理。
电路连接如图3-3。
图3—3A/D转换电路图
3.4按键设计
键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机系统输入数据、发送命令等功能,是人工干预单片机的主要手段。
考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路。
在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态判断是否有按键按下。
图3—4系统按键电路
4软件程序设计
4.1系统主程序流程图
系统主程序的功能主要是完成对单片机的初始化,设置警戒液位的上下限,实时显示液位值以及键盘扫描等工作。
主程序流程图如图4-1所示。
图4—1主程序流程图
4.2显示与A/D转换的数据处理
系统中,显示输出的要求为压缩BCD码,而A/D转换输入的数据是8位16进制码,因此在实现显示之前需要编码的转换。
对8位A/D转换器而言,其十六进制、相对满偏电压比率、相对电压幅值的关系对应如表4-2:
十六进制
二进制
满刻度比率
相对电压幅值Vref=2.5V
高四位
低四位
高四位电压
低四位电压
F
1111
15/16
15/256
4.800
0.320
E
1110
14/16
14/256
4.480
0.280
D
1101
13/16
13/256
4.160
0.260
C
1100
12/16
12/256
3.840
0.240
B
1011
11/16
11/256
3.520
0.220
A
1010
10/16
10/256
3.200
0.200
9
1001
9/16
9/256
2.880
0.180
0
1000
8/16
8/256
2.560
0.160
7
0111
7/16
7/256
2.240
0.140
6
0110
6/16
6/256
1.920
0.120
5
0101
5/16
5/256
1.600
0.100
4
0100
4/16
4/256
1.280
0.080
3
0011
3/16
3/256
0.960
0.060
2
0010
2/16
2/256
0.640
0.040
1
0001
1/16
1/256
0.320
0.020
0
0000
0/16
0/256
0.000
0.000
表4-2A/D转换幅值数据关系对照表
显示转换部分程序简略如下:
uchardis_transform(ucharnum>
{
ucharac,quotient,play,mid。
ac=num%5。
quotient=(num-ac>/5。
if(ac>2>
quotient++。
ac=quotient%10。
mid=(quotient-ac>/10。
play=ac+mid*16。
returnplay。
}
4.3系统主程序
ORG0000H
AJMPMAIN
ORG0060H
MAIN:
MOVP1,#FFH。
P1P3口初始化置1
MOVP3,#FFH
JNBP1.3,AVT;若手动在自动位置,跳到自动模式程序
AJMPMEN;否则转到手动模式子程序
END
AUT:
NOP<空命令)
JNBP1.2,LG。
水位高—LG
JBP1.1LD,;水位没低---LD
CLRP3.1;水位低报警
JBP1.0,LDD;水位未低低---LDD
CLRP3.0;水位低低报警
JNB3.1P1.6,Y1;M1已启动—Y1
CLRP1.4;否则启动M1
Y1:
JNBP1.7,Y2;M2已启动---Y2
CLRP1.5;否则启动M2
Y2:
ACALLDELAY;延时1分钟
AJMPAUT;返回自动模式
LDD:
JNBP1.6,Y3;单独运行M1CLRP1.4
Y3:
JBP1.7Y2
SETBP1.5
AJMPY2
LG:
CLRP3.2。
水位高报警
LD:
AJMPMAIN。
返回主程序
5总结
在即将毕业之际,作为一名电气的大四学生,通过做这次课程设计是很有意义的,而且也是必要的。
在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。
其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:
proteus仿真、汇编语言、模拟和数字电路知识等。
虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。
在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。
参考文献
1张艳兵.计算机控制技术,国防工业出版社,2006
2孙涵芳.MCS-51/96系列单片机原理及应用<修订版)北京航空航天大学出版社,1994
3李朝青.单片机原理及接口技术<第三版).北京航空航天大学出版社,2005.9
4王力虎,李红波.PC控制及接口程序设计实例.科学出版社,2004