基于单片机的水位检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编号:
课程设计说明书
题目:基于单片机的水位检测
院(系):信息与通信学院
专业:电子信息工程
学生姓名:**
学号: ********** 指导教师:***
2016 年12月23 日
摘要
本水位监测报警器使用5V低压交流电源就可以对水位进行监测用数码管显示并蜂鸣器发出报警。
主要采用单片机AT89C52芯片,将控制程序写进单片机中,使其发挥相应的功能,再加上蜂鸣器、数码管、电阻、电容这些器件组成一个简单而灵敏的监测报警电路,操作简单,接通电源即可工作。
因为电路采用单片机技术,所以本水位监测报警器还具有电路简易、耗能低、准确性高的特点。
关键词:单片机控制;报警电路;监测电路。
Abstract
The water level alarm used to monitor low voltage 5V DC power supply (can also use 5 batteries instead of three) can be on the monitoring of water level, with light-emitting diode display, and can no longer be within this range, the water level alarm . Main use SCM AT89C52 chip, will control program written into the microcomputer, to play the corresponding functions, together with a buzzer, light-emitting diodes, resistors, capacitors, these devices form a simple and sensitive alarm function, simple operation, then power can work through. Because the circuit chip technology, so the water level monitoring alarm circuit also has a simple, low energy consumption and high accuracy.
Keywords: microprocessor;controlled ; alarm circuit ; monitoring circui.
目录
引言 (1)
1 方案选择 (1)
1.1 利用超声波水位传感器实现 (1)
1.2 利用自制水位监测装置实现 (2)
1.3 方案总结 (2)
2 水位监测报警系统的硬件设计 (2)
2.1单片机的选择 (2)
2.2 系统硬件设计框图及原理图 (3)
2.2.1 晶振电路 (4)
2.2.2 复位电路 (4)
2.2.3报警电路 (4)
2.2.4 水位监测及总电路 (5)
3. 软件程序及设计 (6)
4 硬件调试及结果分析 (9)
4.1硬件调试与分析 (9)
4.2工作状态测试 (9)
5 结论 (12)
谢辞 (13)
参考文献 (14)
附录 (15)
引言
水位控制在日常生活及工业领域中应用相当广泛,如作为城市、乡村生活用水储备,太阳能热水器储水设备等,又比如水塔、地下水、水站等情况下的水位控制。
而
以往水位的检测是由人工完成的,值班人员全天候对水位的变化进行监测,然后进行
后续的操作。
很显然上述重复性的工作无论是从人员、时间、还是资金上都将造成很
大的浪费。
同时也容易造成差错。
目前大多数住宅小区采用人工加水的方式,当水用完时,需要人工开启水泵加水,十分不方便。
以至于水用完之前不知道水量的多少,等到用完了才知道没有水,如果
急需用水,那就十分麻烦了,要等到加完水后才能用水;加水过程中还要时刻关注水
位是否溢出。
以上的问题都在期待一种简单、经济的水位控制系统的诞生。
本文采用所学的知识,设计以单片机水位采集系统。
主要实现以下功能:
1. 监测水位变化,分为3档水位
2.每一档水位都用数码管显示
3.每一档水位对应一种报警声
本文采用单片机系统控制,监测储水罐的水位变化,在储水罐内部放置自制的水位传感器来检测水位。
单片机内编程控制数码管和蜂鸣器。
传感器检测到水位时,单片机就控制数码管显示相应的数值,并且控制蜂鸣器发出报警
1 方案选择
经过考虑有两种方法实现水位检测利用超声波和自制一个简单的装置。
1.1 利用超声波水位传感器实现
超声波水位传感器是利用空气声学回声测距原理来进行水位变化测量的新型水位测量仪器,是在SCA6-1型声学水位计基础上的改进设计。
由收发共用换能器发射一声脉冲、经声管传声遇水界面产生反射,回波经由同一换能器接收。
测得声波在空气中的传播时间及现场声速,算出换能器发射面至水面的距离,依据换能器安装基准面及水位零点得到水位值。
特点是非接触测量,无需建造水位测井,安装方便,自动测量,具有声速补偿,RS-485数据输出。
应用于沿海水文台站的常规长短期潮位观测,江河湖泊的水位连续自动测量以及港工水文调查、港口调度、船舶航行等部门的水位测量。
目前智能水位传感器由声学传感器、温度传感器、声管、测量电路、信号传输电缆组成。
超声波传感检测电路是利用40kHz的超声波发生器实现40kHz的振荡是很容易的,并且方法有多种,取液位计与水面的距离为适当的高度,可令超声波发出去后能有效地返回,让接收器收到信号,送到微处理器,经微处理器处理所得的数据,即可算出水位高度。
超声波在空气中一般可以实现有效传播,只要外部的环境不是特别的恶劣,所受的干扰并不是很大,测量结果不会有太大的误差。
整个系统的核心是AT89S52。
所选用是超声波传感器,它的工作电压是40kHz的脉冲信号,这可很容易地用软件编程使
AT89S52的P1口中的第0位产生40KHz方波的方法来实现。
并在第一个脉冲产生时开始启动计时。
40kHZ的脉冲方波信号经放大后即可驱动超声波传感器工作,使其向水面垂直发出40kHz的超声波。
所选的超声波传感器是双用型传感器,即发送和接收集成于一体。
当超声波遇到水面时发生反射,反射波回到超声波传感器,超声波接收器将超声波调制脉冲变为交变电压信号。
再将所得的交变电压信号放大,输人到音调译码器中,音调译码器的输出由高电平跃变为低电平,作为中断信号输人到AT89S52单片机的INT1管脚。
INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,停止计时,取得超声波往返的时间差。
通过计算式s=340t/2算出液位计离水面的距离,从而计算出水位的高度。
这些都可以通过对51单片机编程实现。
计算出水位高度以后,单片机将所算出的结果通过P2口输出到七段LED数码管显示出来。
1.2利用自制水位监测装置实现
本水位监测报警器使用5V低压交流电源就可以对水位进行监测,用数码管显示并发出报警。
主要采用单片机AT89C52芯片,将控制程序写进单片机中,使其发挥相应的功能再加上蜂鸣器、数码管、电阻、电容这些器件组成一个简单而灵敏的监测报警电路,操作简单接通电源即可工作。
因为电路采用单片机技术,所以本水位监测报警器还具有电路简易、耗能低、准确性高的特点。
1.3 方案总结
综上所述,本设计选择第二种方案,第一种方案制作成本高,程序和结构比较复杂,第二种方案成本不但低,而且也能达到想要的结果。
本设计当中采用的水位检测传感器简单易做,经济实惠。
2 水位监测报警系统的硬件设计
2.1单片机的选择
AT89系列单片机在我国得到了极其广泛的应用。
由于AT89C52具有强大的功能,可以使我的设计更方便也更人性化。
而且它很好的兼容MCS-51系列单片机的指令系统和引脚功能。
它片内还含有Flash Memory,Flash Memory是一种电擦除和电写入的闪速存储器,记为FPEROM在系统开发过程中可以很容易地进行程序修改,使开发和调试更为简单。
AT89C52的功能介绍:
AT89C52是ATMEL公司生产的一个低电压,高性能CMOS8位单片机,片内含8k bytes 的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器RAM器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89S52单片机可为您提供许多较
复杂系统控制应用场合。
AT89C52有32个外部双向输入/输出I/O 端口同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口2个读写口线,AT89C52可以按照常规方法进行编程。
其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。
AT89C52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核在内部功能及管脚排布上与通用8xc52相同,其主要用于会聚调整时的能控制。
功能包括对会聚主IC 内部寄存器、数据RAM 及外部接口等功能部件的初始化会聚调整控制,会聚测试图控制,红外遥控信号IR 的接收解码及与主板CPU 通信等。
主要管脚有XTAL119 脚和XTAL218脚为振荡器输入输出端口外接12MHz 晶振。
RST/Vpd9 脚为复位输入端口外接电阻电容组成的复位电路。
VCC40脚和VSS20 脚为供电端口,分别接+5V 电源的正负端。
P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中P0 端口32~39 脚被定义为N1功能控制端口,分别与N1的相应功能管脚相连接13 脚定义为IR 输入端10 脚和11脚定义为I2C 总线控制端口,分别连接N1的SDAS18脚和SCLS19脚端口12脚、27脚28脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
2.2 系统硬件设计框图及原理图
图2.1系统硬件设计框图
水塔水位检测报警系统硬件设计框图如图 2.1所示
它包括单片机电源水位检测传感器显示报警声音报警。
本设计中用铜丝作为水位检测传感器适当调整铜丝的长度,可自行设置水位的范围。
利用单片机,将控制程序写进单片机中,经过对输入口信号的分析,在单片机的输出端口给出相应的信号。
自行设定报警数值,若到达指定数值则蜂鸣器报警LED 灯亮。
本设计采用AT89C52的P2.4-P2.4作为我们水位的信号输入口,单通过软件的控制不断的检测P0端口的输入电平,一旦发现探针电平与主探针电平同为高电平时,则执行相应的控制程序,从P2输出不同的信号来告知水位情况,测试之前先设定报警数值低水位时,就驱动数码管显示数值1,以此类推,是高水位时就驱动数码管显3,到达设
单片机 AT89C52 水位检测头 电源 蜂鸣器报警 数码管显示
定的数值时蜂鸣器报警并且LED灯亮。
2.2.1 晶振电路
本次设计用到的是内部振荡方式,这种方式下在X1和X2两端跨接石英晶体及
两个电容,如下图所示,这样就和内部的反响放大器构成稳定的自己振荡器。
电容
C1和C2通常取30pF可稳定频率并对正当频率有微调作用。
接线图如下:
图2.2 晶振电路
2.2.2复位电路
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
图1所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。
但解决不了电源毛刺(A点)和电源缓慢下降(电池电压不足)等问题而且调整RC常数改变延时会令驱动能力变差。
图2.3 复位电路
2.2.3报警电路
蜂鸣器报警电路通过一个9013三极管驱动蜂鸣器。
三极管的基极与P27口相连接,集电极与连接到VCC,射极与蜂鸣器相连。
当P27为高电平时,三极管导通。
蜂鸣器响,为低电平时不响。
通过控制P27的电平高低变化来控制三极管导通,进而改变蜂鸣器的发声频率。
实现不同声音的报警。
图2.4 报警电路
2.2.4 水位监测及总电路
接5V交流电源,高电平与低电平交替发出,防止水被电解,由于腐蚀问题,采取交流电源,这样腐蚀会很慢,一般这种监测装置最少也能用几年,到时候正好检修,所以完全可以用在现实检测中。
2线为低水位控制线,当单片机检测到1线的电平与线2发出的电平相同为高点平时,表示是1挡水位了。
以此类推,3为高水位控制线,当单片机检测到3的电平与单片机发出的电平相同时,表示是高水位了。
传感器选用细铜丝,因为细铜丝的电阻率比较低,这样就可以避免由于电阻过大而使输出的电平过低,以致不能很好的驱动单片机工作,细铜丝的传电性能比较好,传电速率比较快,也可以说是灵敏性很好,还有就是细铜丝经济实惠便于我们取材。
图2.5水位监测电路
图2.6 总电路
3. 软件程序及设计
#define uint unsigned int
void bell(uint num,uint f);
void delay(uint n);
sbit b=P2^7;
sbit d1=P2^6;
sbit d2=P2^5;
sbit w1=P2^4; //最低水位检测器
sbit w2=P2^3; //第二档水位检测器
sbit w3=P2^2; //最高档水位检测器
int show[]={0xbd,0x14,0xe5,0xe9,0xd4} ;
void main()
{
b=0;
d2=0;
P1=show[0] ;
delay(2);
d2=1;
d1=0;
P1=show[4] ;
delay(2);
d1=1;
while(w1==1&&w2==0&&w3==0)
{
d2=0;
P1=show[1] ;
delay(5);
d2=1;
d1=0;
P1=show[4] ;
delay(5);
d1=1;
bell(1,1);
}
while(w1==1&&w2==1&&w3==0)
{
d2=0;
P1=show[2] ;
delay(2);
d2=1;
d1=0;
P1=show[4] ;
delay(2);
d1=1;
bell(4,1);
}
while(w1==1&&w2==1&&w3==1) // {
d2=0;
P1=show[3] ;
delay(2);
d2=1;
d1=0;
P1=show[4] ;
delay(2);
d1=1;
bell(7,1);
}
void bell(uint num,uint f)
{
int i;
for(i=0;i<num;i++)
{
b=1;
delay(f);
b=0;
delay(f);
}
}
void delay(uint n)
{
uint i,j;
for(i=0;i<n;i++)
for(j=0;j<15;j++);
}
以上为水位监测的程序及软件设计框图,当电源接通时,LED灯亮,数码管显示0F,表示0水位,铜丝慢慢一点点接触水面,数码管显示1F,表示1挡水位,继续深入水位,看是否到达2挡水位值,是,则显示2F,反之则还是显示1F,以此类推,直到显示3挡最高水位。
4 硬件调试及结果分析
4.1硬件调试与分析
经过测试发现图3中的R10、R11、R13三个电阻取值非常重要,如果这三个值取太小,则铜丝接触到水时,单片机的P22、P23、P24三个不会被拉为高电平,这是因为bit 铜丝(表示bit1、bit2、bit3之间的任意一根铜丝)与vcc铜丝之间的水的等效电阻相比下拉电阻大太多了,而且铜丝未接触到水时,也不一定能将P22、P23、P24拉为低电平。
如果取值太大,则在铜丝未接触到水时,不能将P22、P23、P24拉为低电平。
经过测试,发现R10、R11、R13三个电阻的阻值在2k到2.5k之间。
本课程设计中R10、R11、R13阻值取2.2k。
经过测试发现,在使用一个电阻和蜂鸣器串联,蜂鸣器响声不够大,将电阻去除,用导线短接即可。
4.2工作状态测试
当铜丝未接触到水时,P22、P23、P24都近似为0v。
工作状态如图9所示。
图4.1 工作在0档时工作状态图
水位在1档时,P24的电压为2.48v,工作状态如图10所示。
图4.2 工作在1档时的工作状态图
水位在2档时,P23的电压为2.36v,工作状态如图11所示。
图4.3 工作在2档时的工作状态图水位在3档时,P22的电压为2.36v,工作状态如图12所示。
图3.4 工作在3档时的工作状态图
5 结论
以往,由于人们不清楚储水罐水位的情况,导致加水不方便。
现在根据本设计制作出来的储水罐水位监测系统具有简单、经济、实用的特点。
相信能够给广大人们群众的生活带来方便。
本系统主要在使用的过程中,单片机会监测水位的变化情况,对应着水位在四个档位。
水位在不同档位时会数码管会显示不同数值,并且蜂鸣器也会发出不同的报警声。
数码管显示0F时,数码管尚未触及到铜丝。
当数码管显示3F时,最好停止加水,否则会有水会溢出储水罐。
本设计的不足是仍然需要人为的进行加水,而且有可能是遇到水位处在低水位但需要紧急用水,而且水位不够用的时候。
这时可以添加一个自动加水装置,当水位在从1F 下降到0F时,启动单片机控制加水装置进行加水,当水为达到3F时,停止加水。
也添加一个定时加水装置,每天定时加水,加到3F时,停止加水。
谢辞
通过本次毕业设计,我更加了解了我所学的专业,更好的掌握了专业知识,做到学以致用,知道了可以通过自己所学的知识来帮助人们提高生活质量。
让自己在理论知识和自学能力方面都得到了很好的理解和提高。
也通过这次毕业设计增长了新的知识,开阔了自己的眼界,掌握了又一门新技术。
同时,也和老师、同学们进行了很好的交流和互动。
我也相信本设计当中一定会存在很多不足,请老师和相关行业人员,多多批评多多指教
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。
参考文献
[1] 王卫东、李旭琼.模拟电子技术基础[M].北京:电子工业出版社,2010:75~96.
[2] 张毅刚.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业出版社,2006:52~142.
[3] 郭天祥.5 1单片机C语言教程[M]. 北京:电子工业出版社,2009:56~62.
[4] 谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010:37~128.
[5] 余欣.LED显示屏及控制板的设计与实现[D].郑州大学,2011.
[6] 张淑清,姜万录.单片微型计算机接口技术与应用 [M].北京:国防工业出版社,2004:25~224.
[7] 杨宁. 单片机与控制技术[M]. 北京:北京航空航天大学出版社.2005:33-36.
附录。