废水排放检测器.docx
- 文档编号:14922587
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:38
- 大小:666.74KB
废水排放检测器.docx
《废水排放检测器.docx》由会员分享,可在线阅读,更多相关《废水排放检测器.docx(38页珍藏版)》请在冰点文库上搜索。
废水排放检测器
毕业设计说明书(论文)中文摘要
本设计是基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个具有警戒水位报警和时间显示的废水排放监测器。
显示器是由液晶1602制作而成,它显示废水排放的时间和水位,蜂鸣器和LED灯起到超过警戒水位报警的提示作用。
该废水排放监测器主要由液晶显示模块、声光报警模块、A/D转换模块、键盘控制模块组成。
[关键词]
单片机、1602液晶显示模块、A/D转换模块。
TitleThecampuswastewaterdischargeMonitor
Abstract
ThedesignisbasedontheprincipleofSCMtechnologyandAT89C52microcontrollerchipisthecorecontroller.Byhardwarecircuitdesignaswellasthepreparationofthesoftwareprogram,Wedesignthewastewaterdischargemonitorwiththefunctionofwarningwaterlevelalarmandtimedisplay.
ThedisplayismadebyLCD1602,itshowsthetimeandthewaterlevelofthewastewaterdischarge.BuzzerandLEDlightsplayaroleabovethewarninglevelalarmprompt.Thewastewaterdischargemonitorismainlycomposedofaliquidcrystaldisplaymodule,soundandlightalarmmodule,
A/Dconversionmodule,keyboardcontrolmodule.
Keywords
SCM1602LCDmoduleA/Dconversionmodule
目次
1绪论1
1.1本设计研究的背景以及现实意义1
1.1本设计对于专业知识的综合应用情况1
2本课题的总体设计2
2.1本课题的总体设计思路2
2.2本课题的设计框图2
3本课题硬件电路的设计3
3.1单片机模块3
3.21602液晶模块3
3.3液位传感器6
3.4滤波电路7
3.5A/D转换模快8
3.6蜂鸣器模块10
3.7按钮操作模块11
3.6应用Protel实现电路原理图及PCB设计11
4本课题的软件设计与编程14
4.1KEIL软件的简介14
4.2KEIL的模块化编程14
4.3软件设计结构14
4.4主程序模块的设计15
4.51602液晶程序18
4.6A/D转换程序20
4.7报警程序25
5本课题的仿真和调试27
5.1软件调试27
5.2硬件调试28
硬件电路调试准备状态28
致谢31
1绪论
1.1本设计研究的背景以及现实意义
为了满足广大师生的正常生活和维持校园的清洁环境,学校每天都要通过地下通道向外面排放大量的污水,在正常情况下学校的地下通道是可以安全排除污水的,但是每当遇到下雨天气大量积水时,地下排水通道则不能正常排水,会出现污水外溢的情况。
给广大师生带来不便,污染校园环境,需要人工及时进行排水。
污水排放监测在工业控制以及日常生活中具有广泛的应用。
在工程领域进行污水排放量和排放时间的监测是一个极为基础也极为重要的研究。
采用典型的A/D模数转换作为水位数据的采集,应用无线传输的模式实现测量点的自由选择以及水量和时间数据的传输。
同时考虑到工程应用的实际情况。
采用RS485串口将数据传输到上位机进行识别以及实时处理。
这样的污水排放量和时间的监测系统具有一定的实用性。
同时对于工程领域的污水排放测量具有一定的实用价值。
更有利于针对污染情况及时的采取有利对策[1]。
1.1本设计对于专业知识的综合应用情况
因为学习的知识的深度的限制以及实际情况的考虑,对于校园废水排放监测器的电路设计采用了Protel99SE软件进行了系统的原理图绘制。
电路上参考了扬州工业职业技术学院的AT89C51单片机开发板设计的。
在设计电路中力求以最简单的电路来稳定完成所以的功能。
在写程序中则是用C语言来完成,C语言相比汇编语言带来的好处就是简明易懂,而且可移植性高。
最后调试则是用Proteus仿真软件来完成。
在整个设计到编程到最后的调试过程中完全是按照大学期间所学的《模拟电子产品的安装与调试》、《数字电子产品的安装及调试》、《电子产品的安装及调试》、《单片机应用与项目实践化教程》等多门专业课程本课题选题难度适中,能够对所学的单片机编程,以及Proteus仿真,Protel99SE绘制电路图有一个综合的应用[2]。
2本课题的总体设计
2.1本课题的总体设计思路
本课题是基于单片机的废水排放监测器的设计与制作。
该监测器能实现废水排放的水位和时间监测。
该监测器先通过模数转换将测得水位的模拟信号进行处理转换成数字信号传送给单片机。
单片机进行判断测得的水位值有没有超过警戒水位,若高于警戒水位,则单片机向蜂鸣器和led灯传递报警信息,此时报警模块就会向外界发出报警信号。
以便工作人员及时的进行人工排水处理,减少不必要的损失和污染,提高废水排放的警戒处理效率[3]。
本课题设计采用功能模块化的设计思想,本课题主要分为总体方案设计、硬件和软件的设计三大部分。
总设计方案分为以下几个步骤:
(1)硬件电路的设计;
(2)软件的设计与编程;(3)硬件电路及软件的调试;
(4)结论。
2.2本课题的设计框图
校园废水排放监测器由单片机模块,A/D转换模块,1602液晶模块,蜂鸣器模块,复位晶振模块,按钮控制模块,LED模块等七个模块组成。
其工作过程是:
首先A/D模块将外部的废水排放的模拟信号转换成数字信号,然后将数字信号传给单片机进行处理.并且废水排放的时间和水位不停地显示在1602液晶上。
如果废水排放量达到了设置警戒水位,蜂鸣器和LED灯会发出报警提示信号。
外部的按钮则是来控制废水排放监测器的启动和复位[4]。
结构框图如图2.1所示。
图2.1本设计的
图2.1本设计的电路结构框图
3本课题硬件电路的设计
3.1单片机模块
单片机最小系统电路由单片机、单片机复位电路、晶体振荡回路组成,能
够完成单片机工作的最基本需要。
其中单片机的外部晶振是11.1592,而复位电
路则是要给RST引脚至少两个机器周期就可实现复位[5]。
图3.1单片机模块外部接线图
3.21602液晶模块
1602液晶是我们比较常用的一个液晶,它具有操作简单,价格低廉,而
且可以应用于各种小型的项目。
1602液晶的主要技术参数:
显示容量16x2个字
符,芯片工作电压是4.5V-5.5V,工作电流是2.0mA,模块最佳工作电压是5V,
字符尺寸是2.95x4.35mm.1602液晶是16个引脚,是8位操作。
LCD1602读操作时序图如图3.2所示
图3.2读时序图
LCD1602写操作时序图如图3.3所示
图3.3写时序图
液晶屏幕上的每个字符位置与内部数据存储器(DDRAM)之间有着一一对应关系。
如图3.4所示。
图3.4
液晶电路的外部接线如图3.5所示
图3.5液晶模块外部接线图
3.3液位传感器
液位传感器(静压液位计/液位变送器/液位传感器/水位传感器)是一种测量液位的压力传感器.静压投入式液位变送器(液位计)是基于所测液体静压与该液体的高度成比例的原理,采用国外先进的隔离型扩散硅敏感元件或陶瓷电容压力敏感传感器,将静压转换为电信号,再经过温度补偿和线性修正,转化成标准电信号(一般为4~20mA/1~5VDC)[6]。
液位传感器实物如图3.6所示。
图3.6液位传感器实物
3.3.1工作原理
用静压测量原理:
当液位变送器投入到被测液体中某一深度时,传感器迎液面受到的压力公式为:
Ρ=ρ.g.H+Po式中:
P:
变送器迎液面所受压力
ρ:
被测液体密度
g:
当地重力加速度
Po:
液面上大气压
H:
变送器投入液体的深度
同时,通过导气不锈钢将液体的压力引入到传感器的正压腔,再将液面上的大气压Po与传感器的负压腔相连,以抵消传感器背面的Po,使传感器测得压力为:
ρ.g.H,显然,通过测取压力P,可以得到液位深度。
3.3.2功能特点
1稳定性好,满度、零位长期稳定性可达0.1%FS/年。
在补偿温度0~70℃范围内,温度飘移低于0.1%FS,在整个允许工作温度范围内低于0.3%FS。
2具有反向保护、限流保护电路,在安装时正负极接反不会损坏变送器,异常时送器会自动限流在35MA以内。
3固态结构,无可动部件,高可靠性,使用寿命长。
4安装方便、结构简单、经济耐用。
3.3.3液位传感器与液位开关的区别
液位开关是根据液位传感器的信号输出开启放水或者进水的阀门而使水位保持恒定的一种控制器。
也可以说液位开关输出的是一种开关信号,液位开关首先要确定液位的高度,依据这个高度来输出开关量信号。
而液位传感器是将液位的高度转化为电信号的形式进行输出。
我们可以对电信号进行处理比如和plc、数据采集器或者专业显示器相连进而输出液位的高度。
还有就是液位开关和液位传感器的原理虽然相同。
但是液位开关是开关控制电路,而液位传感器是相当于变压,变流用的电路元件。
3.4滤波电路
滤波电路常用于滤去整流输出电压中的纹波,一般由电抗元件组成,如在负载电阻两端并联电容器C,或与负载串联电感器L,以及由电容,电感组成而成的各种复式滤波电路[7]。
滤波电路如图3.7所示。
识别滤波电路的方法:
若信号频率趋于零时有确定的电压放大倍数,且信号频率趋于无穷大时电压放大倍数趋于零,则为低通滤波器;反之,若信号频率趋于无穷大时有确定的电压放大倍数,且信号频率趋于零时电压放大倍数趋于零,则为高通滤波器;若信号频率趋于零和无穷大时电压放大倍数均趋于零,则为带通滤波器;反之,若信号频率趋于零和无穷大时电压放大倍数具有相同的确定值,且在某一频率范围内电压放大倍数趋于零,则为带阻滤波器。
图3.7滤波电路
3.5放大电路
经过滤波器处理后,信号的高次谐波得到了很好的削弱,但是输出信号幅度较小,为了能够让单片机有效接受处理,信号需要进行放大处理,这里采用成熟的集成运放进行放大,放大电路的电路原理图如图3.8所示[8]。
图3.8放大电路的电路原理图
3.5A/D转换模快
PCF8591是一个单片集成、单独供电、低功耗、8-bitCMOS数据获取器件。
PCF8591具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。
PCF8591的3个地址引脚A0,A1和A2可用于硬件地址编程,允许在同个I²C总线上接入8个PCF8591器件,而无需额外的硬件。
在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I²C总线以串行的方式进行传输。
PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。
PCF8591的最大转化速率由I²C总线的最大速率决定[9]。
工作特性:
单独供电,PCF8591的操作电压范围2.5V-6V,低待机电流,通过I²C总线串行输入/输出,PCF8591通过3个硬件地址引脚寻址,PCF8591的采样率由I²C总线速率决定,4个模拟输入可编程为单端型或差分输入,自动增量频道选择,PCF8591的模拟电压范围从VSS到VDD,PCF8591内置跟踪保持电路
,8-bit逐次逼近A/D转换器,通过1路模拟输出实现DAC增益
∙
图3.6PCF8591
AIN0~AIN3:
模拟信号输入端。
A0~A3:
引脚地址端。
VDD、VSS:
电源端。
(2.5~6V)
SDA、SCL:
I2C总线的数据线、
时钟线。
OSC:
外部时钟输入端,内部时钟
输出端。
EXT:
内部、外部时钟选择线,使
用内部时钟时EXT接地。
AGND:
模拟信号地。
AOUT:
D/A转换输出端。
VREF:
基准电源端。
图3.7PCF8591引脚
图3.8A/D转换模块外部接线图
3.6蜂鸣器模块
蜂鸣器在生活以及工业中是比较常用的报警器件,在这个电路中不仅起到按键的发音时钟的走动发音,还起到了警戒水位的报警。
为了增大电流来驱动蜂鸣器,我们则采用了三极管来驱动它,从而达到更好的效果。
如图3-9所示。
图3.9蜂鸣器模块
3.7按钮操作模块
按钮也是一个系统中必不可少的一部分,在这个电路中用到的二个按钮分别是启动键,复位键。
每次按下启动键监测器开始工作,每当按下复位按钮监测器复位重新计时开始工作。
按钮操作模块电路如图3-10所示
图3-10按钮操作模块
3.6应用Protel实现电路原理图及PCB设计
3.6.1Protel简介
使用电脑设计电路原理图和电路板图是把电子技术从理论运用到实际的第一步。
只有会设计电路原理图和电路板图才能进行电子产品的研发与开发。
本软件就是从理论走向实际,掌握电子产品开发的基本技术。
Protel99SE是澳大利亚ProtelTechnology公司推出的一个全32位的电路板设计软件。
该软件功能强大,人机界面友好,易学易用,使用该软件设计者可以容易设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真,是业内人士首选的电路板设计工具。
绘制电路原理图的主要步骤
1、进入Protel99SE环境
2、使用菜单File/New建立新设计数据库文件
3、使用菜单File/New在打开窗口选择SchematicDocument图标,建立新原理图文件
4、将原理图打开
5、设置画图环境
6、添加元件库
7、将所需元件从元件库中取出来,放置在图纸上,并且调整好位置
8、使用连线工具将元件连起来,设置元件属性,对元件进行编号
9、进行电气规格检查(ERC)
10、建立网络表,为制作电路板图做准备
绘制完成的电路原理图,除了保证电路原理图的正确性以外,同时要注意原理图绘制中的工艺要求。
原理图的绘制首先注意的就是原理图的标题栏的设置,在标题栏中一定注意按照工程的规则,对电路的各个属性进行详细的标注。
在实际的工作岗位中,不同的公司对于标题栏的填写都具有一定的要求。
整体原理图的绘制要求布局均匀,电路按照功能模块进行分布,符合信号流向等一系列的工程规则。
在电路图中,要综合使用网络标号、总线、总线入口等对象力求原理图实现结构化走线。
在原理图中可以使用文本等对电路进行一定的阐述,增强电路的可读性以及可理解性[10]。
3.6.2电路原理图的设计
电路原理图如图3.11所示
图3.11电路原理图
电路工作原理:
本电路是基于单片机的废水排放监测器的设计电路。
该电路能实现校园废水排放的水位和时间监测。
该电路是由复位晶振模块,单片机模块,A/D转换模块,1602液晶显示模块,报警模块,按键模块组成。
电路按钮模块中的启动按钮按下之后,此时A/D转换模块开始工作,将测得水位的模拟信号进行处理转换成数字信号传送给单片机。
单片机再将信号传给液晶进行显示,单片机进行判断测得的水位值有没有超过警戒水位,若水位的值没有到达警戒水位值,电路正常工作,在液晶上显示废水排放的水位和排放的时间。
若高于警戒水位,则单片机向报警模块传递报警信息,此时液晶上会显示警戒的水位值,但停止显示废水排放计时。
此时报警模块就会向外界发出报警信号。
以便工作人员及时的进行人工排水处理,减少不必要的损失和污染,提高废水排放的警戒处理效率。
待水位处理到安全水位值时,按下复位按钮之后再重新按下启动按钮电路会重新正常工作,以此方式周而复始的进行工作,进行校园废水排放的监测[11]。
3.6.3绘制PCB板图
PCB板图如图3.12所示
图3.12PCB板图
4本课题的软件设计与编程
4.1KEIL软件的简介
KEILC51是德国KEILSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上,结构性、可读性、可维护性上有明显的优势,因而易学易用,用过汇编语言后再进行C语言来开发,体会更加深刻。
KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windowa界面。
另外重要一点,只要看一下汇编后生成的会变代码,就会体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
4.2KEIL的模块化编程
用KEIL进行编程时,有时候由于项目的比较大我们写的程序要几百行甚至上千行,这样带来的后果是,如果要修改某一个参数时则要找个半天,这将带来很大的麻烦,以及给别人看时,人家会一头雾水,不知道你写的什么。
于是,我们就想到了用模块化编程的方法,把一个大项目分割成若干个小项目,然后每一个小项目写一个.C文件,最后在一个主函数中把这些小程序组合在一起。
这样写的好处是可读性比较强,以及可移植性比较好,可以方便以后的编程。
校园废水排放监测器就是用模块化编程,一共写了A/D转换模块、1602液晶、delay延时函数、LED灯.四个.C文件最后在main主函数中全部结合起来。
4.3软件设计结构
软件设计部分主要包括:
主程.序/子程序流程的设计、功能模块程序的编写、软/硬件结合调试与演示。
主要包括以下功能模块:
51驱动、检测、液晶显示、报警、键盘、数据采集、模数软换,软件流程图如图4.3所示。
图4.3
4.4主程序模块的设计
主程序实现的功能:
与硬件相结合实现便携式环境检测仪的各个功能。
主要是检测与显示,上下限值调整与显示,数据存储,功能子函数的调用,见图
4.4。
YES
N0
图4.4主程序流程图
#include
#include
#include"head.h"//定义头文件
#include"delay.h"
#include"pcf8591.h"
voiddi();
voiddidi();
sbitkey1=P3^0;//定义启动按钮端口
sbitkey2=P3^1;//定义复位按钮端口
sbitled=P2^5;//定义LED警示灯端口
sbitbeep=P2^4;//定义蜂鸣器端口
uintmiao,fen,shi,shi1;//定义时间函数
#include"1602.h"//1602液晶头文件
#include"fmq.h"//蜂鸣器头文件
#include"jishi.h"//计时头文件
#include"display.h"//延时函数头文件
voidinit_pcf8591(void)//A/D模数转换初始化程序
{
iic_start();
iic_sendbyte(0x90);
iic_waitack();
iic_sendbyte(CHANNEL_3);
iic_waitack();
iic_stop();
delay(10);
}
voidmain()//主函数程序
{
init_pcf8591();
LCD_Init();
while
(1)
{
temp_AD_Value=adc_pcf8591()*1.0/255*100;//将模拟信号转成数字信号
display();
LCD_Write_String(13,1,temp_AD);//在液晶上从第一行的第13位开始显示
delay(3);
}
}
4.51602液晶程序
(1)LCD模块在本系统中主要起着开界面汉字显示,以及各控制效果的显示。
采用直接访问方式。
下面这个就是液晶的驱动程序,在这个程序中先是根据数据手册对这个液晶先进行初始化,然后根据时序图读液晶的程序,以及写液晶的程序。
重要的一点就是延时的时间一定要把握好,对液晶的忙检测可以延长一点时间来解决。
该程序包括液晶写入命令函数,写入数据函数,写入字符串函数,初始化函数[14]。
#ifndef__1602_H__
#define__1602_H__
sbitRS=P2^4;//定义端口
sbitRW=P2^5;
sbitEN=P2^6;
#defineDataPortP0
/*------------------------------------------------
写入命令函数
------------------------------------------------*/
voidLCD_Write_Com(ucharcom)
{
RS=0;
RW=0;
EN=1;
DataPort=com;
delay
(1);
EN=0;
}
/*------------------------------------------------
写入数据函数
------------------------------------------------*/
voidLCD_Write_Data(ucharData)
{
RS=1;
RW=0;
EN=1;
DataPort=Data;
delay
(1);
EN=0;
}
/*------------------------------------------------
写入字符串函数
------------------------------------------------*/
voidLCD_Write_String(ucharx,uchary,uchar*s)
{
if(y==0)
{
LCD_Write_Com(0x80+x);}//表示第一行
else
{
LCD_Write_Com(0xC0+x);//表示第二行
}
while(*s)
{
LCD_Write_Data(*s);
s++;
}
}
/*------------------------------------------------
初始化函数
------------------------------------------------*/
voidLCD_Init(void)
{
TMOD=0X10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET1=1;
TR1=0;
beep=0;
LCD_Write_Com(0x38);/*显示模式设置*/
LCD_Write
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 废水 排放 检测器