基于单片机的智能水灾报警系统的设计毕业设计.docx
《基于单片机的智能水灾报警系统的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能水灾报警系统的设计毕业设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于单片机的智能水灾报警系统的设计毕业设计
摘要
我国地处季风气候区,暴雨洪水频发。
受季风气候影响,我国大部分地区夏季湿热多雨、雨热同期,不仅短历时、高强度的局地暴雨频繁发生,而且长历时、大范围的全流域降雨也时有发生,几乎每年都会发生不同程度的洪涝灾害。
因此,完善的水情监测有助于中心站实时监测各地水情,并对各种突发状况做出及时、合理的措施来防止灾害的发生和降低灾害所造成的破坏。
本次设计以AT89C51芯片为核心,辅以相关的外围电路,设计了以单片机为核心的水情监测系统。
系统由12V直流电源供电。
在硬件方面,除了单片机外,采用SDI-12总线来连接多个传感器,通过TDC40(SDI-12toRS232转换器)将传感器采集到的水情数据发送到单片机PO口,单片机通过FLASH存储实时数据,亦可通过PSTN,GSM、北斗卫星、海事卫星等通信信道将采集到的水情数据传输到中心站。
在软件方面,采用C语言编程。
通过对单片机程序设计实现对水情监测系统的整个水情数据的采集、存储和传输程序进行监测、判断和控制以及人机交换。
矚慫润厲钐瘗睞枥庑赖。
关键词:
单片机SDI-12数据采集水情监测
Abstract
Chinaislocatedinthemonsoonclimatezoneandtorrentialrainandfloodoftenhappens.Affectedbythismonsoonclimate,mostofourregionishotwetandmoreraininsummer.Notonlyforshortduration,highstrengthlocalrainstormoftenhappens,butalsoraininwiderangeofthevalleywithlongdurationoftenhappens.Annually,floodsdisasterhappensinlargerangeofournationwithvaryingdegrees.Therefore,Perfecthydrologicalmonitoringcanhelpreal-timemonitoringhydrologicalinallregionswiththecentralstationandMaketimelyandreasonablemeasuresforavarietyofunexpectedsituationstopreventdisastersandreducethedamagecausedbydisasters.聞創沟燴鐺險爱氇谴净。
ThedesignusetheAT89C51chipasthecore,combinedwiththenecessaryperipheralcircuits.Wedesignthehydrologicalmonitoringsystemwith51MCUasacore.Itconsistsof12VDCpowersupply.Onthehardwareside,inadditiontoMCU,ItusesSDI-12bustoconnectmultiplesensors.CollectedbyTDC40(SDI-12toRS232converter)thewaterlevelsensordataissenttotheMCUportsPO.TheMCUuseFLASHtostorereal-timedataandtransportthecollectedwaterleveldatatothecentralstationthroughcommunicationchannel,suchasthePSTN,GSM,COMPASSsatellite,maritimesatelliteandsoon.Onthesoftwareside,weuseClanguageforprogramming.ByprogrammingontheMCU,werealizehydrologicalmonitoringsystemfortheentirehydrologicaldatacollection,storageandtransportproceduresformonitoring,todetermineandcontrolandhumanexchange.残骛楼諍锩瀨濟溆塹籟。
Keyword:
MCUSDI-12dataacquisitionwaterlevelmonitoring酽锕极額閉镇桧猪訣锥。
第一章绪言
目前,国内许多水文站监测水位和降雨量仍采用人工方法。
该方法不但存在测量的人身安全问题,而且还存在数据测量难准确、监测实时性不强等问题,这会严重影响正常的工作效力。
为此需要对水位进行自动显示、监测和报警。
传统的水位检测系统一般通过有线方式与监控中心取得接洽,这种方式不但保护起来艰难,而且在很大水平上限制了其在时空上的拓展性。
采取GSM模块与单片机构成的系统则能够解决以上的问题。
通过单片机的并行I/0口可以很方便的实现水位的显示功效。
现有的GSM网络在全国范围内实现了联网和漫游,具有网络才气强的特色,用户无需另外组网,在极大提高网络覆盖范围的同时为客户节俭了昂贵的建网费用和保护费用。
当采取GSM模块时,就可以通过一种无线通讯的方式以实现远程终端监控和报警的功效。
彈贸摄尔霁毙攬砖卤庑。
本文的章节内容安排如下:
第二章介绍了于单片机的特点以及功能,并进行了详细分析。
第三章给出了基于单片机的水灾监测技术系统方案。
第四章着重研究了A/D转换芯片、储存器等核心器件的选择、特点、工作原理以及具体设计。
第五章给出了水灾监测系统的软件设计,设计了具体软件流程。
第二章单片机89C51简介
第一节单片机的特点
(1)片内存储容量较小
原因是受集成度的限制。
ROM一般小于8KB,RAM一般小于256B,但可以在外部扩展。
通常ROM,RAM可分别扩展至64KB。
(2)可靠性高
因为芯片是按工业测控环境要求设计的,故抗干扰的能力优于PC机。
系统软件(如:
程序指令,常数,表格)固化在ROM中,不易受病毒破坏。
许多信号的通道均在一个芯片内,故运作时系统稳定可靠。
謀荞抟箧飆鐸怼类蒋薔。
(3)便于扩展:
计算机正常运行所必需的部件,片外有很多供扩展用的(总线,并行和串行的输入/出)管脚,很容易组成一定规模的计算机应用系统。
厦礴恳蹒骈時盡继價骚。
(4)控制功能强的控制指令
如:
条件分支转移指令,I/O口的逻辑操作指令,位处理指令,
(5)实用性好
体积小,功耗低,价格便宜,易于产品化。
第二节单片机89C51介绍
一、特性
(1)80C51核心处理单元
4k字节FLASH89C51X2;
8k字节FLASH89C52X2;
16k字节FLASH89C54X2;
32k字节FLASH89C58X2;
128字节RAM89C51X2;
256字节RAM89C52X2/54X2/58X2;
布尔处理器;
全静态操作;
(2)12时钟操作可选6个时钟通过软件或并行编程器;
(3)存储器寻址范围;
64K字节ROM和64K字节RAM。
图2.1CPU框图
第三章基于单片机的水灾监测技术
第一节AT89C51内部结构
Atmel公司的AT89C51是一种低功耗、高性能的片内含有4kB快闪可编程/擦除只读存储器的8位CMOS微控制器,使用高密度、非易失存储器技术制造。
其内部资源分配如下:
1个8位的微处理器((CPU);2个16位定时器/计数器;5个中断源;4kB的Flash存储器;128字节片内RAM;1个全双工DART(通用异步接收发送器)的串行1/0口,用于实现单片机和微机之间的串行通讯;4个8位并行1/0接口PO-P3,每个口即可以用作输入,也可以用作输出。
图3.1是AT89C51的内部结构图。
茕桢广鳓鯡选块网羈泪。
图3.1AT89C51内部结构图
第二节AT89C51引脚及功能
图3.2AT89C51芯片引脚图
AT89C51引脚说明:
1.电源引脚:
Vcc(40脚):
电源引脚+5V;
Vss(20脚):
地引脚。
2.外部晶振:
X1,X2分别与晶体两端相连接当采用外部时钟信号时,X2接振荡信号,X1接地。
3.输入输出口引脚:
PO口(第39-32脚))PO口由P0.0-P0.7共8位组成。
当不与片外存储器相连接以及与不扩展FO口时,那么可以作为准双向输入/输出口。
而在扩展PO口或者接有片外存储器时,那么PO口可以传递低8位地址信号和双向数据信号P1口(第1-8脚):
P1口由P1.0-P1.7共8位组成,可作为准双向1/0口使用。
鹅娅尽損鹌惨歷茏鴛賴。
P2口(第21-28脚):
P2口由P3.0-P3.7共8位组成,一般可作为准双向FO口使用;在扩展PO口或者接有片外存储器时,那么PO口可以传递低8位地址信号和双向数据信号P3口(第10-17脚):
P3口由P3.0-P3.7共8位组成。
籟丛妈羥为贍偾蛏练淨。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
預頌圣鉉儐歲龈讶骅籴。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
渗釤呛俨匀谔鱉调硯錦。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H~FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
铙誅卧泻噦圣骋贶頂廡。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
为了便于接下来的说明,单片机各管脚网络标号定义如图3.2。
根据电路设计规范和AT89S52芯片手册,设计时钟电路与复位电路如图3.3:
图3.3时钟电路和复位电路
图中网络标号RST连接单片机RST引脚,具有上电复位与手动复位的功能;XTAL1与XTAL2连接单片机XTAL1和XTAL2引脚,且并联两个30pF匹配电容使晶振起振。
擁締凤袜备訊顎轮烂蔷。
由于单片机P0口作普通I/O口时不能输出高电平,因此需接上拉电阻,实际电路中,使用8*10KΩ电阻作为上拉电阻。
贓熱俣阃歲匱阊邺镓騷。
第三节时钟震荡电路设计
AT89C51单片机有一个片内的振荡器电路,由一个单级反相器组成,可用来作为CPU的时钟源。
本设计采用了片外时钟振荡器,在单片机的引脚XTAL1和XTAL2之间连一个石英晶体谐振器,并接两个电容到地,就组成了完整的并联谐振电路输出时钟信号。
图3.4为时钟振荡电路:
坛摶乡囂忏蒌鍥铃氈淚。
图3.4时钟震荡电路
第四节电源电路设计
一、电源选择原理
电源类型分为DC/DC和LDO两种:
DC/DC电源:
使用直流电,通过调整其PWM(占空比)来控制输出的有效电压的大小。
是一种非线性电源,特点是成本较高,电源效率高,损耗小,但是其电源纹波特性差。
蜡變黲癟報伥铉锚鈰赘。
当系统对电源纹波要求不高时,就可以选用DC/DC电源模块;如系统输出大电流时,由于DC/DC电源模块的效率高,因此就必须选用DC/DC电源模块。
買鲷鴯譖昙膚遙闫撷凄。
LDO电源:
低压差线性稳压器,从输入电压中减去超额的电压产生经过调节的输出电压,是一种线性电源,特点是成本低,电源效率低,损耗大,但是其电源纹波特性较好。
綾镝鯛駕櫬鹕踪韦辚糴。
当系统对电源纹波要求高时,就可以选用LDO电源模块;如果系统输出电流不大时,就可以选用LDO电源模块。
驅踬髏彦浃绥譎饴憂锦。
二、水情检测系统电源设计
本系统由太阳能板经变换后提供12V电源,而单片机需要5V电源,因此需要设计电源转换电路,电源转换电路如图3.5所示,由于系统电流不大,因此需用低成本LDO模块7805作为电源芯片。
猫虿驢绘燈鮒诛髅貺庑。
图3.5电源设计电路
(1)SDI-12总线
SDI-12是一种标准的接口方式,它可以提供连接数据采集器和智能传感器的方法。
该通信协议由SDI-12小组开发,并经历了长期的修改和不断地规范。
现在的最新版本是2005年7月18号公布的V1.3版[[14]。
在该协议支持下,可广泛应用在江河湖海的水文和气象等地球环境监测,工农业多参数远距离测控。
锹籁饗迳琐筆襖鸥娅薔。
SDI-12具有系统集成成本低;单总线可连接多个传感器;传感器可与数据采集设备的距离较远、仪器通信功耗最小化等优点。
構氽頑黉碩饨荠龈话骛。
(2)SDI-12电气接口
SDI-12接口总线使用在标准传感器和SDI-12数据采集器之间的连接来传送串行数据,使用的波特率是1200baud。
总线上可以同时连接多个标准的传感设备。
SDI-12通信协议采用三线制,包括++12V电源线、数据线和地线['S]oSDI-12的数据结构为1位起始位、7位数据位(低位在前)、1位偶校验位、1位停止位。
輒峄陽檉簖疖網儂號泶。
表3.1是在SDI-12总线上连接了数据采集器和两个传感器的电路。
总线允许同时连接10个传感器,由地址码00-09识别。
尧侧閆繭絳闕绚勵蜆贅。
表3.1传感器地址码
ASCII地址
十进制
十六进制
含义
“0”
48
30
误址,所有传感器出厂时初始值为“0”
“1”至“9”
49至57
31至39
SDI-12总线上的传感器地址
(3)SDI-12的命令和响
图3.6为SDI-12数据采集器流程图。
图3.6数据采集器流程图
图3.7为SDI-12传感器流程图。
图3.7传感器流程图
(4)SDI-12与RS-232
RS-232是目前最常用的一种串行通讯推荐标准。
它通过每一个插针都规定了功能的9针或25针接插件传送ASCII码。
信号电平的规定如表3.2所示:
识饒鎂錕缢灩筧嚌俨淒。
表3.2RS-232逻辑电平
在RDX和TDX线上
在RTS,CTS,DSR,DTR和CD线上
“标志”(Mark“1”)为-3~-25V
“空闲”(Space“0”)为+3~+25V
“断开”(OFF)为-3~-25V
“接通”(ON)为+3~+25V
为了与晶体管一晶体管逻辑电路((TTL)的电平(低电平为0.6-0.8V,高电平为2.4-3.3V)相匹配,发送器的驱动器的内阻应大于300Q,接收器的输入阻抗应在3-7kQ之间。
凍鈹鋨劳臘锴痫婦胫籴。
SDI-12与RS-232都是传送ASCII码,只是电平和传送线数不同,可以兼容。
当支持SDI-12的采集器工作在“透明方式,"(Transparentmode)时,用户用键盘操作SDI-12命令,通过支持RS-232(或422,485)的PC机发送给传感器。
把这些命令通过采集器发送给传感器,然后再把传感器的响应信号通过SDI-12采集器发送给PC机。
恥諤銪灭萦欢煬鞏鹜錦。
在本次设计中,我们需要支持SDI-12的传感器与PC机接口,要通过变3芯(或4至9芯)为25芯、变SDI-12为RS-232的电缆适配器(Adapter)进行变换。
通过RS-232串口与单片机相连来传输采集数据;该电缆还有一个与外部电源相连的分叉接插头。
鯊腎鑰诎褳鉀沩懼統庫。
第四章A/D转换器TLC2543
第一节TLC2543的编程要点
一、控制字的格式
控制字为从DATAINPUT端串行输入TLC2543芯片内部的8位数据,它告诉TLC2543要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。
其中高4位(D7~D4)决定通道号,对于0通道至10通道,该4位分别为0000、0001、⋯、1010,该4位为其它数字时的功能,用于检测校正,本文不作具体介绍。
低4位决定输出数据长度及格式,其中D3、D2决定输出数据长度,TLC2543的输出数据长度有8位、12位、16位,但由于TLC2543为12位A/D转换芯片,经过分析可以看出,8位、16位输出对TLC2543的应用意义不大,宜定在12位输出,D3、D2两位为00即可。
D1决定输出数据是高位先送出,还是低位先送出,若为高位先送出,该位为0,反之为1。
D0决定输出数据是单极性(二进制)还是双极性(2的补码),若为单极性,该位为0,反之为1。
硕癘鄴颃诌攆檸攜驤蔹。
举例说明:
设采集第6通道、输出数据为12位、高位先送出、输出数据的格式为二进制,则控制字为:
01100000,用十六进制表示即为60H,本文基于此格式说明转换过程。
阌擻輳嬪諫迁择楨秘騖。
二、TLC2543的内部寄存器
从编程角度看,TLC2543内部寄存器有输入数据寄存器与输出数据寄存器。
输入数据寄存器存放从DATAINPUT端移入的控制字。
输出数据寄存器存放转换好的数据,以供从DATAOUT端移出。
氬嚕躑竄贸恳彈瀘颔澩。
三、转换过程
上电后,片选CS必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。
釷鹆資贏車贖孙滅獅赘。
开始时,片选CS为高,I/OCLOCK、DATAINPUT被禁止,DATAOUT呈高阻状态,EOC为高。
使CS变低,I/OCLOCK、DATAINPUT使能,DATAOUT脱离高阻状态。
12个时钟信号从I/OCLOCK端依次加入,随着时钟信号的加入,控制字从DATAINPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATAOUT一位一位地移出。
TLC2543收到第4个时钟信号后,通道号也已收到,因此,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。
在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs,转转完成EOC变高,转转的数据在输出数据寄存器中,待下一个工作周期输出。
此后,可以进行新的工作周期。
怂阐譜鯪迳導嘯畫長凉。
第二节TLC2543与51系列单片机接口
目前使用的51系列单片机没有SPI或相同的接口能力,为了与TLC2543接口,可以根据上节所给出的编程要点,利用软件合成SPI操作,完成A/D数据的采集。
下图给出了TLC2543与51系列接口的一种方式。
图中TLC2543与单片机之间只用4根线,转换结束EOF未接入单片机,这是基于二个工作周期之间的单片机指令一般大于10μs,转换已经完成,不必判断EOF,也可以通过试验或计算指令执行时间确定转换是否结束,这样可以省去一根接线。
下一节将根据此电路进行A/D采集程序的设计。
为了使电路简捷,有关电源、参考电压、去耦等电路未画出。
谚辞調担鈧谄动禪泻類。
图4.1TLC2543与51系列单片机接口电路
第三节数据采集程序设计
根据TLC2543的工作原理电路,可以进行A/D采集程序的设计。
设TLC2543工作于输出数据为12位、高位先送出、输出数据为二进制的格式,这样控制字的高4位为通道号,低4位均为0。
以下是采集一个通道的TLC2543A/D转换子程序嘰觐詿缧铴嗫偽純铪锩。
AD12:
NOP
NOP
NOP
CLRP1.5
SETP1.4
NOP
CLR.P1.4
MOVA,R1
SWAPA
MOVR2,#08H
AD1:
MOVC,P1.7
RLCA
MOVP1.6,C
SETBP1.5
CLRP1.5
DJNZR2,AD1
MOV@R0,A
MOVA,R1
SWAPA
MOVR2,#04H
AD2:
MOVC,P1.7
RLCA
MOVP1.6C
SETBP1.5
CLRP1.5
DJNZR2,AD2
INCR0
MOV@R0,A
SETBP1.4
RET
以下是利用上述子程度采集0通道数据放入内存21H、22H,采集1通道数据放入内存23H、24H的主程序。
熒绐譏钲鏌觶鷹緇機库。
CJDZ:
NOP
NOP
MOVR1,#00H
MOVR0,#21H
LCALLAD12
NOP
MOVR1,#01H
MOVR0,#21H
LCALLAD12
NOP
MOVR1,#00H
MOVR0,#23H
LCALLAD12
RET
第五章系统设计
第一节系统设计思路
为了达到报警的需求,只需在危险水位附近安上压力传感器,水一到危险水位就传导出电流,附近就由传感器组传导电流即模拟信号给数据采集系统中,通过A/D转换成数字信号给单片机的控制系统,控制系统即可将次危险信号通过无线发射机发送给控制中心的计算机上,这样就可以远程知道水位到了危险水位,这样就可以达到报警的要求。
鶼渍螻偉阅劍鲰腎邏蘞。
第二节系统设计框图
图5.1系统遥测站
图5.2系统中心站
系统由系统遥测站和系统中心站两部分组成。
系统遥测站主要完成对水位信号的采集、存储,接收遥控指令并发送数据。
系统中心站的主要工作是接收数据信息、进行数据处理和数据管理、传输到计算机显示水位信息等。
纣忧蔣氳頑莶驅藥悯骛。
此报警系统就是利用单片机实时将水位信息通过无线传输发送到主机上,通过主机即可了解水位信息,当水位达到危险水位时即可达到报警的目的。
颖刍莖蛺饽亿顿裊赔泷。
第三节系统硬件设计
感应水位计可以采用压力传感器,利用水的压力产生信号即电流给传感器,将电流送入A/D转换单元。
可选用TI公司的12位串行模数转换器TLC2543,其价格适中,分辨率较高,使用开关电容逐次逼近技术完成A/D转换过程。
而且采用的是串行输入结构,能大大节省51系列单片机的I/O资源,以便于系统以后的扩展升级。
濫驂膽閉驟羥闈詔寢賻。
其特点为:
12位分辨率A/D转换器;在工作温度范围内10us转换时间;11个模拟输入通道;3路内置自测试方式;采样率为66kb/s;线形误差±1LSBmax;有转换结束输出EOC;具有单、双极性输出;可编程的MSB或LSB前导;可编程输出数据长度。
銚銻縵哜鳗鸿锓謎諏涼。
而单片机的控制系统