资源描述
- -
1 引言
随着集成电路规模日益大型化、复杂化,各种复杂的液位控制系统已成为一个研究的热点。单片机以其控制精度高,性能稳定、可靠,设置操作方便,造价低等特点,应用到液位系统控制之中,不但保证了系统的准确性和可靠性,而且增强了人机交互的能力。
单片机应用开展迅速而广泛。在过程控制中,单片机既可作为主计算机,又可作为分布式计算机控制系统中的前端机,完成模拟量的采集和开关量的输入、处理和控制计算,然后输出控制信号。单片机广泛用于仪器仪表中,与不同类型的传感器相结合,实现诸如电压、功率、频率、湿度、流量、速度、厚度、压力、温度等物理量的测量;在家用电器设备中,单片机已广泛用于电视机、录音机、电冰箱、电饭锅、微波炉、洗衣、高级电子玩具、家用防盗报警等各种家电设备中。在计算机网络和通信、医用设备、工商、金融、科研、教育、国防、航空航天等领域都有着十分广泛的应用。
工程应用中液位的测量常用方法主要有超声波、激光红外测距、机械浮子、压力传感器测距等几种。这些测量方式对一般液位的测量来说各有各的优点,可根据不同的应用场合和要求进展选择。
2 系统设计方案
2.1 系统设计方案及总框图
对于水位进展控制的方式有很多,而应用较多的主要有2种,一种是简单的机械式控制装置控制,一种是复杂的控制器控制方式。两种方式的实现如下:
(1)简单的机械式控制方式。其常用形式有浮标式、电极式等,这种控制形式的优点是构造简单,本钱低廉。存在问题是精度不高,不能进展数值显示,另外很容易引起误动作,且只能单独控制,与计算机进展通信较难实现。
(2)复杂控制器控制方式。这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、A/D变换成数字信号传送到单片机,经单片机运算和给定参量的比拟,进展PID运算,得出调节参量;经由D/A变换给调压/变频调速装置输入给定端,控制其输出电压变化,来调节电机转速,以到达控制水位的目的。
本设计利用单片机设计一个水位控制系统,要求选择适宜的水位传感器及电磁阀,当设定完水位后,系统根据水位情况控制电磁阀的开启和关断。
图2-1系统总体框图
2.2 硬件设计方案
2.2.1 工作原理
基于单片机实现的水位控制器是以AT89C51芯片为核心,由键盘、数码显示、A/D转换、传感器,电源和控制局部等组成。工作过程如下:当水位发生变化时,引起连接在水位底部软管管的空气气压变化,气压传感器在接收到软管的空气气压信号后,即把变化量转化成电压信号;该信号经过运算放大电路放大后变成幅度为0~5 V标准信号,送入A/D转换器,A/D转换器把模拟信号变成数字信号量,由单片机进展实时数据采集,并进展处理,根据设定要求控制输出,同时数码管显示液位高度。通过键盘设置液位高、低和限定值以及强制报警值。该系统控制器特点是直观地显示水位高度,可任意控制水位高度。
2.2.2 主控模块设计方案
单片机作为主控模块,使得在对单片机选型上有了较大的空间。单片机在30多年的开展历程中,形成了多公司、多系列、多型号“百家争鸣〞的局面。因而,选择一个适宜的单片机有时真的不太容易,要考虑的方面太多。大致总结出以下几点:
1) 单片机的根本参数。例如速度、程序存储器容量、I/O引脚数量等。
2) 单片机的增强功能。例如看门狗、双指针、双串口、RTC〔实时时钟〕、EEPROM、扩展RAM、CAN接口、I2C接口、SPI接口、USB接口。
3) Flash和OTP〔一次性可编程〕。
4) 封装:DIP〔双列直插〕,PLCC〔PLCC有对应插座〕还是贴片。
5) 工作温度围,工业级还是商业机。
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-2 AT89C51的管脚图
2.2.3 电机控制模块设计方案
选用继电器作为电机控制的元件。
继电器是一种电子控制器件,它具有控制系统〔又称输入回路〕和被控制系统〔又称输出回路〕,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关〞。故在电路中起着自动调节、平安保护、转换电路等作用。
继电器主要产品技术参数:
1) 额定工作电压。是指继电器正常工作时线圈所需要的电压。根据继电器的型号不同,可以是交流电压,也可以是直流电压。
2) 直流电阻。是指继电器中线圈的直流电阻,可以通过万能表测量。
3) 吸合电流。是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否那么会产生较大的电流而把线圈烧毁。
4) 释放电流。是指继电器产生释放动作的最大电流。当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。这时的电流远远小于吸合电流。
5) 触点切换电压和电流。是指继电器允许加载的电压和电流。它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否那么很容易损坏继电器的触点。
根据以上的参数,结合设计的演示性,选用额定工作电压120VAC/24VDC,工作电流3A,控制电压5VDC的小型继电器。
2.2.4 A/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—3 ADC0809外部引脚图
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.3 A/D采集转换电路
本系统A/D芯片所选用的是ADC0809,该大规模集成电路芯片是一种由单一+5V电源供电,采用逐次逼近转换原理,能够对8路0—+5V输入模拟电压进展分时转换的八位并行通用型可编程模数转换器。ADC0809由单片机控制驱动,对传感器进展定式循环采集,然后单片机将各测量参数传至PC机,进展后台数据处理。电路连接如图3-3。
图3—3 A/D转换电路图
3.4 按键设计
键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机系统输入数据、发送命令等功能,是人工干预单片机的主要手段。考虑到本设计实际需要的按键较少,故采用独立式键盘接口电路。在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电阻作用下为高电平,这样通过读I/O口的状态判断是否有按键按下。
图3—4 系统按键电路
4 软件程序设计
4.1 系统主程序流程图
系统主程序的功能主要是完成对单片机的初始化,设置戒备液位的上下限,实时显示液位值以及键盘扫描等工作。主程序流程图如图4-1所示。
开场
CPU初始化
参数设定
是否有按键
采样子程序
显示实时液位
数据处理子程序
控制电机启停
按键处理
是
否
图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-2 A/D转换幅值数据关系对照表
显示转换局部程序简单如下:
uchar dis_transform(uchar num)
{
uchar ac, 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;
return play;
}
4.3 系统主程序
ORG 0000H
AJMP MAIN
ORG 0060H
MAIN: MOV P1, #FFH ; P1 P3口初始化置1
MOV P3,#FFH
JNB P1.3 , AVT ; 假设手动在自动位置,跳到自动模式程序
AJMP MEN ; 否那么转到手动模式子程序
END
AUT: NOP〔空命令〕
JNB P1.2 , LG ; 水位高—LG
P1.1 LD , ; 水位没低---LD
CLR P3.1 ; 水位低报警
P1.0, LDD ; 水位未低低---LDD
CLR P3.0 ; 水位低低报警
JNB 3.1 P1.6, Y1 ; M1已启动—Y1
CLR P1.4 ; 否那么启动M1
Y1:JNB P1.7 ,Y2 ; M2已启动---Y2
CLR P1.5 ; 否那么启动M2
Y2:ACALL DELAY ; 延时1分钟
AJMP AUT ; 返回自动模式
LDD: JNB P1.6 ,Y3 ; 单独运行M1〔LDD〈水位〈LD〕
CLR P1.4
Y3: P1.7 Y2
SETB P1.5
AJMP Y2
LG:CLR P3.2 ; 水位高报警
LD: AJMP MAIN ; 返回主程序
5 总结
在即将毕业之际,作为一名电气的大四学生,通过做这次课程设计是很有意义的,而且也是必要的。在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。
其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus仿真、汇编语言、模拟和数字电路知识等。虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的部构造有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改良是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保存和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。
在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。
参考文献
1 艳兵 .计算机控制技术,国防工业,2006
2 涵芳. MCS-51/96系列 单片机原理及应用〔修订版〕航空航天大学,1994
3 朝青.单片机原理及接口技术〔第三版〕. 航空航天大学,2005.9
4 王力虎,红波.PC控制及接口程序设计实例.科学,2004
- word.zl
展开阅读全文