毕业设计(论文)-基于单片机的矿井环境监测系统设计_第1页
毕业设计(论文)-基于单片机的矿井环境监测系统设计_第2页
毕业设计(论文)-基于单片机的矿井环境监测系统设计_第3页
毕业设计(论文)-基于单片机的矿井环境监测系统设计_第4页
毕业设计(论文)-基于单片机的矿井环境监测系统设计_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

陕西理工学院题目基于单片机的矿井环境监测系统设计学生姓名学号 指导教师陕西理工學院·。毕业论文(设计)题目基于单片机的矿井环境监测系统设计二、毕业论文(设计)工作自2016年1月10日起至2016年6月5日止三、毕业论文(设计)进行地点:陕西理工学院四、毕业论文(设计)的内容要求: 矿井的内部有害气体众多,对身心都有巨大的影响。当煤矿井下发生事故时,由于工作环境,人流量都会有极大的影响,还有矿井内的各种危险因素对矿井安全生产和人员及时解救有重要意义。矿井内部环境比较复杂,监测亦成为一大重要问题。无线传感器网络是一种效率很高,成本不高的解决手段,但是其通信范围、网络结构和路由算法等问题需要根据矿井的具体结构来进行规划,所以在矿井安全监测方面运用无线传感网络是有优越性的,不但为矿井安全的管理极易人员的救援有极大的帮助,也为矿井安全监测提供有力的手段。 本课题要求利用单片机作为核心控制器件,设计一种基于单片机的矿井环境监测装置,对矿井下温度、湿度、瓦斯浓度等数据的采集,通过无线传感器网络传输并实时显示,具备采集数据超限报警功能。在仿真电路基础上制作硬件,完成样机的调试。撰写毕业设计论文。(应包括方案设计、比较与论证、分析与计算、电路图与相关设计文件以及心得体会等)。五、毕业论文(设计)应收集资料及参考文献: 收集传感与检测、单片机编程与控制等方面的专业资料,阅读和学习下列参考文献: [1]童诗白,华成英.模拟电子技术基础(第四版)[M].北京:高等教育出版社,2006. [2]李建忠.单片机原理及应用(第三版)[M].西安:西安电子科技大学出版社,2013. [3]谭浩强.C程序设计(第二版)[M].北京:清华大学出版社,1999. [4]高文玲.基于无线传感器网络的矿井环境监测系统研究.[J].电子质量.网友世界六、毕业论文(设计)的进度安排:3月21日——4月20日:完成系统硬件电路的设计并提交中期检查报告。 5月21日——6月15日:撰写、修改毕业设计论文,准备并完成答辩。 专业负责人签名批准日期 (陕西理工学院物理与电信工程学院电子信息工程专业1203班,陕西汉中723000)指导老师:(Class1203,MajorElectronicsEngineering,ShaanxiUniversityofTechnology,Hanzhong723000,Shaanxi)Abstract:CoalisthemainenergyinChina.ItisimportantforChineseenergyindustrytoensurethesafeproductionofcoalmine.AsystembasedonMCUofAT89C51isdesignedtomonitorEnvironmentalParametersofMine.Thesystemincludescontrolmodule,informationcollectionmodule,displaymodule,wirelesstransmissionmoduleandalarmmodule.Temperatureandhumiditysensorsandmethaneconcentrationsensorcollectairqualityinformationofmine.Wirelessmodulesendstheinformationtothecontrolcenter.TheMCUprocessesthedata.Therealtimemonitoringofundergroundenvironmentofmineisrealizedbydisplaymoduleandalarmmodule.Thedesignrealizedthereal-timedetectionandwirelesstransmissionofmineenvironment.Andthesystemhasthecharacteristicsofstableperformance,lowprice,easyoperationandstrongapplicability.Keywords:minemonitoring;MCU;alarm;wirelesstransmission 1.绪论 11.1研究背景与发展现状 11.2研究主要内容 12.方案选择 22.1总体方案论述 22.2方案一的论述 22.2.1方案一的设计结构图 22.2.2方案一的设计方法 22.2.3方案一的优缺点 32.3方案二的论述 32.3.1方案二的设计结构图 32.3.2方案二的设计方法 42.3.3方案二的优缺点 42.4方案的选择 43.系统软件设计 53.1系统流程分析 53.2温湿度采集及处理函数 73.3MQ-4甲烷浓度传感器以及A/D转换程序 93.4NRF905无线发送/中继/接收程序 3.5OLED显示程序 3.6报警程序与键盘控制程序 4.硬件电路设计与调试 4.1采集模块 4.2A/D转换模块 4.3单片机最小系统模块 4.4OLED显示模块 4.5NRF905无线模块 4.6报警及键盘控制模块 4.7电源模块 4.8实现结果 5.总结 5.1问题与处理 5.2展望 致谢 参考文献 附录1电路原理图 附录5外文翻译中英文对照 我国是世界上煤炭产量最高的国家。煤炭是我国使用的主要能源,每年煤炭占全年能源的使用量七成以上。我国煤炭资源丰富,而石油,天然气等资源匮乏的资源特点导致了煤炭将在未来的长时间内是我国最主要的能源来源。近几年以来煤矿事故屡见不鲜,事故率仍不容乐观,保障煤矿安全生产对我过煤矿生产事业具有迫切需求。影响煤矿安全生产的因素复杂繁多,包含瓦斯爆炸、透水事故、顶板事故等l²]。而瓦斯浓度过高导致的爆炸事故危害最为严重。降低矿难的发生率就是提高了煤炭的生产效率3]。瓦斯是多种易燃易爆气体的总称,其主要成分是甲烷,它是在成煤过程中形成并大量贮存于煤层中的气体,浓度过高时会导致人缺氧、呼吸困难、窒息等。当它与空气混合的百分比达到3.5%到16%时,遇到明火就会发生爆炸,给国家和人民的生命财产造成巨大的损失14]。所以,对瓦斯的浓度进行实时的检测和报警以及对其采取相应的控制措施在煤矿系统中有着非常现实的意义。我国瓦斯监测监控技术的研究工作起步较晚,国内第一台催化原理的瓦斯报警器是1958年出现,采用铂丝元件位传感器。1961年,由北京劳动保护研究所和和抚顺煤矿安全仪器厂协作开展了研究工作,于1964年研制出我国第一个达到实用水平的载体催化元件,接着制成了以这种元件位传感器的AQR-1型瓦斯测量仪。随着电子计算机技术的应用,一套监测系统除了能检测出甲烷的浓度外,还可测一氧化碳、氢气的浓度,同时又可以对井下设备的工作状态进行监控。当前我国矿井正在运行的瓦斯监控系统主要有三类:一是20世纪80年代初,从英、法、美、波兰等国家引进的一批安全监控系统,并通过消化和吸收研制出适用于我国煤矿实际情况的监控系统,由于当时技术水平低和维护跟不上等原因系统已面临更新改造的机遇;二是20世纪90年代后期,国内各主要科研单位和生产厂家又相继推出了MSNM、WEBGIS、KJF2000等监控系统,但是整个系统的信息传输速率最高只能达到5000bps;三是21世纪以来,各个瓦斯监控系统生产厂家都在原有基础上推出了升级系统[5]。因此,根据我国的煤矿生产和管理模式,依照我国的有关技术标准,其技术的先进性、产品的可靠性和实用性则是本项目的关键所在,而且基于单片机的矿井瓦斯监测系统的研究和开发生产具有十分广泛的现实市场和潜在的市场需求。由于我国检测技术应用较晚,所以我国当前对瓦斯的检测设备还存在很多的问题,例如,检测设备的寿命周期短,易受矿井不良坏境的影响并且会导致检测设备的工作性能不稳定、检测结果不准确,容易出现误报警等现象,维护周期短且费用高5]。而单片机具有体积小,运行块、稳定、低廉等特点,所以基于单片机的矿井瓦斯检测系统设计是势在必行的。1.2研究主要内容利用单片机AT89C51作为核心控制器件,设计一种基于单片机的矿井环境监测系统,实现矿井环境的实时监测与报警,及时有效的反映矿井下环境指标,保障安全生产。要求通过对矿井下温度、湿度和瓦斯浓度进行信息采集,当各项指标低于或高出设定的安全值时,单片机将发出报警信号并指示报警的指标。安全值可以人为调整。在此基础上,该设计系统还需要满足在矿井下复杂环境中仍能保持有效及时监测的能力。矿井环境监测系统利用单片机AT89C51作为信息处理器和核心控制器件。系统利用温湿度传感器和瓦浓度传感器将采集到的矿井温湿度和瓦斯浓度经过处理传递给单片机,单片机将得到的信息发送到地面控制中心进行处理,判断是否超限,达到报警限度时单片机将发出指令进行声音和灯光报警,未达到限度时屏幕实时显示温湿度和瓦斯浓度。总体的系统结构图如图2.1所示。信息处理信息处理与控制模块调整报警安全值图2.1系统结构图2.2方案一的论述系统由数据采集模块、A/D转换模块、显示模块、报警模块和无线模块组成。采集模块:温湿度传感器DHT11、甲烷浓度传感器MQ-4;方案一的系统设计结构图如图2.2所示。A/D转换模块单片机单片机(控制系统)无线传输设计系统主要分为两大部分。矿井下,温湿度传感器和甲烷浓度传感器进行数据采集,之后将采集到的数据通过模数转换电路并送入单片机(监测系统)中进行处理,在矿井下显示实时监测的结果,并将处理后的数据通过无线发射装置发送至地面的控制中心。地面控制中心通过无线接收装置收到处理后的实时监测数据。通过控制系统实时显示矿井下各项数据指标之外,还将数据与设定的安全值进行比较,超出或者低于安全值范围,报警模块发出相应的声光报警。信息采集模块主要采集温度、湿度以及甲烷浓度三个指标,分别通过DHT11温湿度传感器、MQ-4甲烷浓度传感器实现。温湿度传感器DHT11采集到矿井下空气温湿度,向单片机输出一组数字信号,经单片机处理。MQ-4通过对甲烷等气体的浓度感应输出模拟信号,经模数转换芯片8位数字信号输入单片机。单片机将采集到的信号还原摄氏温度、相对湿度以及甲烷体积浓度,通过LCD1602显示屏进行显示,同时通过无线射频芯片NRF2401发送和接收数据。方案一的设计思路具有廉价、易于实现的优点。传感器DHT11、MQ-4,显示屏LCD1602以及无线模NRF2401都是市面上常见而且价格低廉的器件。系统由数据采集模块、模拟/数字转换模块、显示模块、报警模块、无线模块以及无线中继模块方案二的设计结构图如图2.3所示。单片机(控制系统)(中继系统)(中继系统)图2.3方案二设计结构图设计系统主要分为三大部分。矿井下,与方案一类似。单片机(监测系统)中进行处理,在矿井下显示实时监测的结果,并将处理后的数据通过无线发射装置发送至中继系统。根据矿井下环境复杂程度,设置N个中继器用来接继无线信号,直至发送到地面控制中心。各器件的工作方式同方案一。温湿度传感器改采用DHT11的升级芯片DHT21;显示模块使用OLED屏幕;无线模块改使用NRF905芯片。方案二针对方案一的缺点进行了改进。方案二的设计思路对于温湿度的采集精度更高,在显示模块显示空间更大,并且无线传输距离大大增长。增加的中继系统更加符合复杂矿井环境下的无线2.4方案的选择因此选用方案二来实现本系统的设计。这里选用NRF905芯片进行无线传输,根据不同的复杂矿井环境,可以选择不同的905模块。该系统目前以NRF905SE模块进行设计,可以达到300米的对比项目方案一方案二温度湿度甲烷浓度显示屏无线传输中继器器件成本DHT11精确度1℃;有效量程0~50℃DHT11精确度1RH%LCD1602显示2行16列;需要11个I/0口NRF2401工作在2.4Ghz,1Mkbps,短距传输无以上传感器各取一件和20元左右DHT21精确度0.1℃;有效量程-40~80℃DHT21精确度0.1RH%精确度40ppm;有效量程0~10000ppmOLED显示4行;需要4个I/0口NRF905工作在433Mhz,50kbps,传输距离长延长传输距离以上传感器各取一件和65元左右陕西理工学院毕业设计程序分为三主体:监测系统、中继系统、控制系统。监测系统由OLED显示程序,DHT21温湿度读取程序,A/D转换程序,NRF905无线发送程序中继系统由OLED显示程序,NRF905接收和发送程序以及主程序组成。控制系统由OLED显示程序,NRF905接收程序,报警程序,键盘控制程序以及主程序组成。3.1系统流程分析单片机通过主程序的逻辑顺序调用各个其他程序。首先,单片机进行初始化。各系统中OLED号经由ADC0809转换输入单片机,OLED将单片机处理后的温湿度和甲烷浓度进行显示。由无线模块发送到中继系统再发送到控制系统,由控制系统单片机进行处理,若超出限额则启动声光报警,若未超出限额则返回等待无线模块接收新的数据,重新进行比较。开始单片机(监控)初始化单片机(中继)初始化单片机(控制)初始化各模块初始化各模块初始化各模块初始化读取温湿度和甲烷浓度无线接收无线接收无线发送无线发送是否超限无限循环是否超限While(1)是显示声光报警结束图3.1主程序流程图监控系统主程序解析:LCD_P8x16Str(10,0,"Beingwarmup");//OLED初始化//ADC0809初始化,其中包括开中断和定时器//显示“正在预热”//MQ-4需要30秒预热,其中包括预热读秒的显示程序//OLED清屏//这里是对905进行了配置//单片机对905的配置寄存器进行配置陕西理工学院毕业设计{TxPacket();//在屏幕上显示尚未发送标志//从ADC0809读取模数转换后的甲烷浓度//通过905发送数据//发送五组数组:分别为温度整数部分//未经过处理的甲烷数字信号//在屏幕上显示发送成功标志//OLED显示程序中继系统主程序解析:{LCDP8x16Str(98,0,"N");{TxPacket();TxBuf[1]=RxBuf[1];TxBuf[3]=RxBuf[3];if(DR)RxPacket():}//OLED初始化//这里是对905进行了配置//单片机对905的配置寄存器进行配置//在屏幕上显示尚未发送标志//通过905发送数据//将接收到的五组数据发送出去//在屏幕上显示发送成功标志///如果DR管脚收到高电平,说明发射完毕//905开始接收数据//OLED显示程序中继系统主程序解析:{{beep_LED();//OLED初始化//这里是对905进行了配置//单片机对905的配置寄存器进行配置//如果DR管脚收到高电平,说明发射完毕//905开始接收数据//OLED显示程序3.2温湿度采集及处理函数温湿度采集模块使用传感器DHT21。这是一款通过对空气中温湿度采样并输出数字信号的传感DHT21模块具有三个管脚,分别接5V直流电源,接地以及数据输出口。数据输出口采用单总线数据格式与单片机进行通讯。通过输出四十位的高低电平信号来传输温湿度数据,每一位响应时间在80-100微秒左右。数据格式:40bit数据=16bit湿度数据+16bit温度数据+8bit校验码温湿度数据分高8位数据和低8位数据组成。校验码是前32位数据之和。单片机将DHT21总线拉低500us并拉高后,DHT21会立即响应。下图为单片机向DHT21发送DHTDHT拉高开始传送数据主机至少拉低500us信号线说明:DHT响应信号DHT信号{图3.2DHT21响应单片机开始信号的工作过程//定义读取温湿度函数//单片机拉低,对应上图“主机拉低500us”//保持拉低状态,这里采用模糊延时,不一定需要精准//以下为保持拉高状态。这里需要精确延时陕西理工学院毕业设计if(!DHT)//判断DHT21是否响应,对应上图“DHT21响应信号80us”{while((DHT)&&U8FLAG++);//等待响应COM();Shidu_gao=U8comdata;//读出湿度高8位Shidudi=U8comdata;//读出湿度低8位wendu_gao=U8comdata;//读出温度高8位wendu_dip=U8comdata;//读出温度低8位Xiaoyanma=U8comdata;//读出8为校验码Xiaoyanma=(Shidu_gao+Shidu_di+wendu_gao+wendu_di);//校验if(U8temp==U8checkdata_temp)/DHT1xiaoshu=Wendudi;U8T_data_H=Wendu_gao;//导出湿度,方便后面显示模块调用Wendu_di=Wendu_di;s//判断温度是否为负值U8checkdata=U8checkdata_te}//导出温度,方便后面显示模块调用DHT21开始传输数据后,梅1bit数据都是由一个低电平间隙和一个高电平组成。共40bit数据,传输完毕时,单总线将被再次拉低50us,随后释放被拉高。陕西理工学院毕业设计对应程序解析:voidCOM(void)//定义数据接收函数unsignedchari:for(i=0;i<8;i++)//循环八次,接收一组数据U8FLAG=2;while((!DHT)&&U8FLAG++);U8temp=0;if(DHT)U8temp=1;U8FLAG=2;while((DHT)&&U8FLAG++);if(U8FLAG==1)break;U8comdata<<=1;U8comdata|=U8temp;}}//等待低电平间隙,对应上图“1bit开始”//等到30us,这里需要精确延时//等待30us后我们预设值为0//如果依然为高电平,可以确定数据值为1//等待拉高结束//保存读到的数值,并移位3.3MQ-4甲烷浓度传感器以及A/D转换程序MQ-4气体传感器适用与对甲烷、氢气、一氧化碳、烟雾等可燃气体的检测,对不同气体有不同的灵敏特性。MQ-4传感器通过对不同浓度气体的感应输出不同的电压值。经过模数转换输入单片机。这里采用ADC0809模数转换芯片。芯片能将0~5V的模拟信号转换为8位的数字信号。陕西理工学院毕业设计DO~D7管脚连接单片机I/O口输出数字信号。START启动转换,高电平有效。EOC可以查看芯片转换状态,用于单片机查询转换状态。OE管脚向单片机发出读取数据的请求,高电平有效。CLK管脚输入500Khz脉冲的时钟信号,每一次脉冲完成一个转换。ADDA管脚用来选择通道。相关程序解析:{ETO=1;{}{//利用定时器TO产生中断//OE管脚向单片机发送读取数据请求//保存读取到的值,范围(0~256)陕西理工学院毕业设计}单片机读取到转换后的数字信号之后,根据MQ-4气体传感器对甲烷气体的灵敏特性,还原甲烷气体浓度。下图为灵敏度特性曲线。图3.5MQ-4气体传感器灵敏特性由图可见,甲烷气体在纯净空气中的浓度在1000ppm左右。根据特性曲线,我们粗略的认为单片机读取到的数字信号乘以系数40就是空气中的实际甲烷浓度。相关程序解析:Dis_Num(60,6,AD_DATA[0]*40,4);//显示“CH4”//显示数字,这里对数字信号乘系数变成实际浓度//显示单位字符串“ppm”3.4NRF905无线发送/中继/接收程序NRF905芯片具有较强的抗干扰能力,适合工业控制场合。工作在频段433Mhz。NRF905通过TRX_CE和TX_EN管脚,配置芯片掉电模式(低功耗)、Standby模式、RX(接收)模式和TX(发射)模式。通过5个Spi接口来调整状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器。{DR=1;AM=1;PWR_UP=1;TRXCE=0;TX_EN=0;}{uchari;SpiWrite(WC);for(i=0;i<RxTxConf.n;i++)////DR拉高,这里用于查看接收或发射数据完成//AM拉高,用于地址匹配//芯片上电/1设置为standby模式//Spi使能,向Spi写命令写放配置字{SpiWrite(RxTxConf.buf[i]);(CSN=1;}voidSpiWrite(ucharbyte){uchari;DATA_BUF=byte;for(i=0;i<8;i++)if(flag)MOSI=1:MOSI=0;//停止Spi11定义Spi写操作程序//将需要发送的数据写入缓存/1将DATABUF.7放在数据线上//拉高时钟线DATA_BUF=DATA_BUF<<1;SCK=0;//拉低时钟线}ucharSpiRead(void)//定义Spi读操作程序{uchari;for(i=0;i<8;i++)/{DATA_BUF=DATA_BUF<<1;SCK=1;//拉高时钟线if(MISO)flag1=1;SCK=0;}//拉低时钟线//DATABUF为接收到的完整数据voidTxPacket(void){uchari;CSN=0;SpiWrite(WTP);for(i=0;i<32;i++){SpiWrite(TxBuf[i]);}CSN=1;Delay905(1);CSN=0;SpiWrite(WTA);for(i=0;i<4;i++)/1Spi使能,向Spi写命令//写入32位发送数据/1写数据至地址寄存器//写入4字节地址SpiWrite(RxTxConf.buf[i+5]);CSN=1:TRX_CE=1;Delay905(1);TRXCE=0;voidRxPacket(void){uchari;TRXCE=0;CSN=0;SpiWrite(RRP);for(i=0;i<32;i++){RxBuf[i]=SpiRead();}CSN=1;while(DR||AM);TRXCE=1:}voidSetTxMode(void){TX_EN=1;TRX_CE=0;Delay905(1);}voidSetRxMode(void){TX_EN=0;//关闭Spi//将905置于发送状态,进行发送//进入ShockBurst发送模式后//设置905进入空闲模式//准备读取接收到的数据//停止spi//定义设置为TX模式的程序//延时需要大于650us陕西理工学院毕业设计}3.5OLED显示程序OLED显示程序需要先对OLED屏幕进行初始化。需要建立字库。在使用OLED显示程序时,需要先对显示位置进行设置,其次根据对应的字库显示字符。显示程序较多,将在附录完全呈现。这里我们取字符串的显示函数和数字显示函数进行解析:voidLCD_P6x8Str(unsignedch{c=ch[j]-32;LCD_WrDat(F6x8[c][i]);x+=6;//显示6*8一组标准ASCII字符串voidDis_Num(unsignedcharx,unsignedchary,unsignedintnum,unsignedcharN)1/数字显示函数{unsignedcharj=0;n[0]=(shu/10000)%10;n[1]=(shu/1000)%10;n[6]='\0;//这里设置了数字位数最多为6位/1从ACSⅡ码表中读取字节,然后写入液晶报警程序是将接收到的温湿度数据和甲烷浓度数据与设定的安全值进行比较。当超出安全值范围时,蜂鸣器报警且相应的发光二极管发出光线。键盘控制程序是通过四个按键,控制屏幕显示切换,并且调整各个指标安全值的上下限。键用于切换上下限指标。陕西理工学院毕业设计LED2=0;LED3=0;Fengmingqi=1;//初始化湿度报警灯//初始化甲烷浓度报警灯//以下为将接收到的数据进行比较if((RxBuf[0]>Tmax)||(RxBuf[0]<Tmin)){LED1=1;beep=0;Delay(50);}if((RxBuf[2]>Hmax)||(RxBuf[2]<Hmin)){LED2=1;beep=0;Delay(50);}if((RxBuf[4]*40>Cmax*100)I|(RxBuf[4]*40<Cmin*100)){LED3=1;beep=0;Delay(50);}}voidset(void){if(key1==0)if(key1==0)//定义键盘控制程序//SET按键按下while(!key1);flag2=flag2+1;flag2=flag2%4;}}if(flag2==0)if(flag2==1)if(key4==0)if(key4==0)while(!key4);flag3=flag3+1;flag3=flag3%2;//flag2为0时显示监控数据,为1,2,3时设置安全值1/控制值只能为0,1,2,3//显示监控数据//display是监控显示程序//这里忽略了设定温度值的显示程序//CHOICE键被按下//flag3为0时设置上限,为1时设置下if(flag3==0)if(key2==0){if(key2==0)while(!key2);Tmax=Tmax+5;}}if(key3==0)//UP键被按下//温度上限增加5//DOWN键被按下陕西理工学院毕业设计if(key3==0){while(!key3);Tmax=Tmax-5;//温度上限减少5}//后面忽略温度下限以及湿度,甲烷浓度的设置程序陕西理工学院毕业设计VCCP20p20VCCGNDVCCGNDVCCP20p20VCCGNDVCCGND24.硬件电路设计与调试硬件分为采集、中继、控制三个独立的部分。包含采集模块、模拟/数字转换模块、最小系统模块、显示模块、无线模块,报警模块,键盘控制和电源模块。采集模块使用DHT21和MQ-4传感器。下图为采集模块电路原理图。VCC上拉电阻图4.1采集模块电路原理图DHT21模块拥有三个外部管脚,分别接5V直流电源,接地以及数据口。DHT21的硬件连接非常简单,调试过程中出现的难点在于DHT21程序中需要精确的30us延时,误差不能超过2us,延时不精确或者不正确,将出现主程序不能完整运行一遍的情况发生,表现性状是屏幕无显示。图4.2DHT21模块MQ-4气体传感器模块拥有四个外部引脚,分别接5V直流电源,接地,TTL输出以及模拟信号输出。该模块内置了比较器,可以通过调节MQ-4模块上的滑动变阻器来改变预设比较值。如果超过设定的安全值时,TTL输出管脚会输出高电平。本设计中并未使用该功能,本设计将MQ-4的模拟信号输出管脚接入A/D转换电路。陕西理工学院毕业设计图4.3MQ-4模块正在工作中值得注意的是,DHT21模块需要预热1秒左右,MQ-4模块需要预热30秒左右。在预热过程中,避免向传感器发送信号,否则会造成读到数据不精确的现象发生。本设计中为避免此类情况,在采集系统中设置了30秒的开机预热时间。在下文“结果展示”栏目中呈现。4.2A/D转换模块ADC0809芯片具有8通道28个外部引脚。能将0~5V的模拟信号转换为8位数字信号。本设计中MQ-4信号输入IN0,DO~D7连接单片机的P3口。其余五个信号管脚分别接入单片机I/O口。ADC0809ININ0AN4A0A0ADDCSPADDCSP25BCCD7P30P22OEVCCVref-Vref-P31D1调试过程中出现的难点在于CLK引脚需要输入5KHz的正脉冲信号。每一次脉冲完成一次转换。出入的脉冲信号不正确或者频率过低会出现转换过程缓慢的情况,表现性状为甲烷浓度变化迟缓,反应不灵敏。图4.5ADC0809与单片机连接陕西理工学院毕业设计单片机通过接入18和19引脚的12M晶振起振工作。通过接入9引脚的复位电路置高电平来实现复位功能。VCC P2.6 P2.5 P2.4 P2.3 P32P33P34P35P36ND5TXD/P3.1!INTO/P3.2!INT2/P3.3TO/P3.4XTAL2XTAL1GNDAT89C51yCCVC(P01P02P03P04PO6VCCP0CPOP06VCC2345894脚QR0K+C3RSTP2GNDP26GNDP24P23P2图4.6单片机最小系统原理图图4.7单片机最小系统4.4OLED显示模块OLED屏有6个外接引脚,除外接电源和地之外,省下四个引脚与单片机连接通讯。本设计的监控系统中OLED屏幕显示监控数据和无线发送状态;中继系统中显示接收并发送的数据和无线状表示发送状态)NRF905模块具有14个外部引脚。其中10个引脚与单片机相连通讯(详见上文3.4)。本系统(1)整个电路系统都是由5V直流电源供电,而905模块需要以3.3V直流电源供电。因此以AMS1117芯片设计的3.3V稳压模块。(2)在NRF905配置过程中,载波频率FRF=422.4+CH_NOd/10*(1+HFREQ_PLLd)M报警模块采用PNP三极管8055放大电流驱动蜂鸣器工作。当指标超限时单片机会给出报警信号,由三极管放大后,蜂鸣器报警。三个发光二极管分别串联电阻连接单片机。设置请参考上文3.6。图4.10陕西理工学院毕业设计如图,发光二极管从上到下分别为温度报警、湿度报警、甲烷浓度报警。任何指标超限蜂鸣器都会报警。设计三块电路板主体均以5V直流电源供电。采用220V转5V电源适配器,其中内置5V稳压电路。电路中NRF905模块需要以3.3V供电,本设计内设计了3.3V直流稳压模块。图4.13电源模块原理图图4.145V电源适配器图4.15AMS1117-3.3V稳压电路焊接图设计最终实现结果。能实时测量和显示空气温度、湿度、甲烷浓度。无线传输距离良好,穿透性能强。操作便捷简单。以下是实现结果的实物展示图。图4.16整体系统运行图,分别为监测系统(左),中继系统(右上),控制系统(右下)5.1问题与处理利用51单片机作为核心控制器件的矿井环境监测系统,实现了对矿井下空气温度,空气湿度以及甲烷浓度的实时监控与报警。进一步加强了矿井安全生产的可操作性。系统主要由监测系统、中键盘控制模块等共八个模块。监测系统采集并转化采集到的信号,通过无线中继系统接继信号,控制系统接收信息并和通过键盘控制模块设定的安全值进行比较,如果超出安全值范围,通过报警模系统完全达到任务书的要求,通过无线传输并能随时设定安全值范围。无线中继的使用极大增强的该系统的使用性和适用性。整个系统简洁美观。(1)使用无线中继系统有2000ms的延时,使用过多的中继会让延时更长。有待改进,以增强实(2)使用中继系统,监控系统发射的信号和中继系统发射的信号没能够区分开来。近距离下存在(4)甲烷检测的上限是10000ppm,对应人体有害安全限度。而甲烷的爆炸极限是这四点需要在以后的学习过程中继续探究和改进。目前由于时间关系和技术水平层次不够的缘故,对一和二的问题暂时无法处理。对于问题三,将在接下来的时间继续完善。问题四局限于传感器,需要在之后寻找更加适合、优良的传感器使用。当然,以上四点就目前来看,并不影响该设计在设计的制作过程中,也同样遇到了很多其他问题,经过查阅资料和一次次的完善,最终解决。(1)DHT21的模块需要精确延时30us。由于单片机的频率,定时器的设定等等原因,很难达到精确的30us。经过不断重复的实验最终解决。(2)预期设想中需要区分监测系统发出的无线信号与中继系统发出的无线信号,原打算以不同工载波频率来进行区分,但NRF905的硬件更适应430Mhz频率,提高频率后未能调通。(3)硬件采用焊接电路来实现,不可避免出现了焊接出错或者焊点刺破其他导线而短通的情况出手能力亲身去实现自己的设计。这是作为一名工科学生最难得的体验和宝贵经历。WiFi模块会被更广泛的应用。系统可以吸取物联网和互联网的优势,将物联网和互联网融入系统之中。甚至于,可以考虑将手机作为系统的监控载体,利用App实现对矿井下环境各个指标的监测。系统还可以从更新型,更精准的传感器方面入手,做到精确的监测。致谢在本次毕业设计过程中,感谢指导老师以及学校的其他各位老师辛勤的指导和帮助,使我能重新梳理巩固自己所学知识完成本次设计。同时,同学之间的帮助和讨论以及图书馆大量的文献资料也是完成设计必不可少的条件之一。在完成本次设计之后,我会更加努力的学习和钻研电子知识,[1]孙继平.煤炭监控技术装备与标准[M].北京:煤炭工业出版社,2010.[2]东兆星,刘刚.井巷工程[M].徐州:中国矿业大学出版社,2013.[3]武军伟,康健.基于51单片机的煤矿瓦斯监控系统研究[J].煤炭技术,2012,32(2):103-105.[4]李鸿燕,张立毅.基于单片机控制的甲烷浓度报警监控仪电脑开发与应用[J].2002,(8):29-30.[5]刘西青.论国内煤矿瓦斯监测系统现状与发展[M].山西:煤炭出版社,2006.[6]高文玲.基于无线传感器网络的矿井环境监测系统研究.[J].电子质[7]刘萍.基于多传感器融合的矿井环境监测系统研究.[J].矿山机械2013年6月10日[8]童诗白,华成英.模拟电子技术基础(第四版)[M].北京:高等教育出版社,2006.[9]李建忠.单片机原理及应用(第三版)[M].西安:西安电子科技大学出版社,2013.[10]杨居义.单片机原理与工程应用[M].北京:清华大学出版社,2010.[11]YeagerBrent.Howtotroubleshootyourelectronicscale[J]..PowderandBulk[12]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J]..TQMJournal.2008陕西理工学院毕业设计附录工工0P4入前HGND采集模块HGAD不亦不亦和1出khilPH工原理图说明系统原理图分为益测、中维,控制三个系统单片机最小系统等模块被多次使用,这里不再重复画出,故管理有重复,报警电路CH0有者为用荒荒白P00WAnAHSP)Q3TmtsWtAM8=II*一电源电路NNp改键控电路FPrGNn110展0展O4NEP90MCX-1A下显示电路GKD(GNDEST:VVDHXDP)TxDP)N0PN2P13TL73.5WRP)SXTALZX1AL1ATAlFRFSFNWFXTALXTAlNI)复位电路无线模块振荡电路TdlA*4下申月群扫矿开孙现纸费在块止计SumhaA算题cND单片机最小系统J0lnn'tl上每目程样C附录2电路实物图附录3元器件清单序号名称型号数量123456789单片机液晶显示晶振数字式温湿度传感器甲烷气体传感器无线射频模块蜂鸣器按键开关排阻稳压芯片电阻电容排针;排母;芯片座STC89C52RCOLEDDHT21MQ-4NRF9057805;AMS1117高亮灯珠3个3个3个1个1个3个1个6个3个1个;3个若干若干若干3个陕西理工学院毕业设计附录4源程序代码//头文件#include<intrins.h>//*******************定义命令字**********************#defineWC0x00//Writeconfigurationregistercommand#defineRTPOx21//ReadTXPayload#defineWTAOx22//WriteTXAddresscommand#defineRTA0x23#defineRRP0x24//*******************管脚配置*********sbitST=P2^4;//A/D启动转换信号sbitOE=P2^2;//数据输出允许信号sbitEOC=P2^3;//A/D转换结束信号sbitCLK=P2^1;//时钟脉冲sbitADDCS=P2^5;sbitDHT=P2^0;//AM2301端口定义TX_EN=P0^7;TRXCE=P1^7;PWRUP=P0^6;MISO=P1^5;MOSI=P0^2;SCK=P1^4;sbitCSN=P0^3;DRsbitCD=P0^5;/*******************************************************/typedefstructRFConfig{unsignedcharn;unsignedcharbuf[10];codeRFConfigRxTxConf=陕西理工学院毕业设计0x01,0x0c,0x44,0x20,0x20,Oxcc,Oxcc,Oxcc,0xcc,0x58/************************************************************************************/unsignedchardataTxBuf[32];unsignedcharkey,rsbrf,delayf,tf;/***********************************************************************************/=DATA_BUF^7;=DATA_BUF^0;/***********************************************************************************/bitflagtemp;//温度正负标志位,kU8count,unsignedcharU8FLAG;unsignedcharU8temp;unsignedcharU8T_data_H,Wendu_di,U8RH_data_H,U8RH_data_L,U8checkdata;unsignedintDHTDatal,DHTData2;DHT2shishu;DHT2xiaoshu;DHTlshishu;DHT1xiaoshu;voidConfig905(void);voidSetTxMode(void);voidSetRxMode(void);voidTxPacket(void);//voidRxPacket(void);voidSpiWrite(unsignedchar);unsignedcharSpiRead(void);voidDelay(unsignedcharn);voidScankey(void)voidTxData(unsignedcharx);//InitializeIOport//initialize232uart//SetnRF905inTxmode//SetnRF905inRxmode//SenddatabynRF905//RecivedatabynRF905//WritedatatonRF905//ReaddatatonRF905//Delay100us//Scankey//Sendkey_valuetoCRTdisplayvoidcomdebug(void);/********************(STC12C5608AD11MHZz=1时精确延时1ms)*******************/voiddelayms(unsignedintz){unsignedintx,y;for(x=z;x>0;x--)for(y=1848;y>0;y--);}/***********************************************************延时函数******************************************************************//**********延时函数************/voidDelay905(unsignedcharn)陕西理工学院毕业设计{while(n--)voidDelay_10us(void)//延时10uS{unsignedchari;}voiddelay2(unsignedchari){unsignedcharj;while(i--){for(j=125;j>0;j--)}voiddelayqidong(unsignedintz){{for(y=1848;y>0;y--);DisNum(30,4,600-x,3);LCDP8x16Str(66,4,"/600");voiddisplay(){LCDP8x16Str(0,2,"Temper:");Dis_Num(60,2,DHT2shishu,2);LCD_P8x16Str(76,2,".");Dis_Num(84,2,DHT2xiaoshu,1);LCDP8x16Str(92,2,"c");DisNum(60,4,DHT1shishu,2);LCDLCDP8x16Str(0,6,"CH4:");DisNum(60,6,ADDATA[0]*40,4);}P8x16Str(76,4,".");DisNum(84,4,DHT1xiaoshu,1);/*********系统初始化***********/voidinit(){EA=1;//开总中断TMOD=0x02;//设定定时器T0工作方式THO=216;//利用T0中断产生CLK信号TLO=216;TRO=1;//启动定时器TOETO=1;}voidCOM(void)//读字节{unsignedchari;{U8FLAG=2;while((!DHT)&&U8FLAG++);if(DHT)U8temp=1;U8FLAG=2;while((DHT)&&U8FLAG++);//超时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1//如果高电平高过预定0高电平值则数据位为1U8comdata<<=1;U8comdata|=U8temp;」}voidRH(void)//读取温湿度//主机拉低1-5msDHT=0;Delay905(5);DHT=1;//总线由上拉电阻拉高主机延时40us陕西理工学院毕业设计//主机设为输入判断从机响应信号DHT=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!DHT)//T!{U8FLAG=2;//判断从机是否发出80us的低电平响应信号是否结束while((!DHT)&&U8FLAG++);U8FLAG=2;//判断从机是否发出80us的高电平,如发出则进入数据接收状态while((DHT)&&U8FLAG++);//数据接收状态COM();COM();Wendudi=U8comdata;COM();COM();Wendudi=U8comdata;COM();U8checkdata_temp=U8comdata;DHT=1;//数据校验U8temp=(Wendu_gao+Wendu_di+Wendu_gao+Wendu_di)if(U8temp==U8checkdata_temp){U8RH_data_H=Wendu_gao;//湿度U8RHdataL=Wendudi;DHTDatal=U8RH_data_H;DHTDatal<<=8;DHTDatal=U8RHdataL;//获得完整的湿度DHT1shishu=DHTDatal/10;U8T_data_H=Wendu_gao;//温度Wendudi=Wendudi;DHTData2=U8TdataH;DHTData2<<=8;DHTData2|=Wendudi;//获得完整的温度if(DHTData2&0x8000)//如果温度为负值{flagtemp=1;}}}/***********T0中断服务程序************/voidt0(void)interrupt1using0{CLK=~CLK;}/***********AD转换函数**********/{delay2(10);delay2(10);ADDATA[O]=P3;}主函数*********************voidmain()*******************************************/{LCD_P8x16Str(10,0,"Beingwarmup");delayqidong(600);DR=1;AM=1;//Spiclocklineinith陕西理工学院毕业设计PWR_UP=1;TRX_CE=0;TX_EN=0;Config905();TxPacket();//SetnRF905instandbymode//ConfignRF905module//SetTxMode//TransmitTxbufferdata//delayforledlightwhile(1)RH();AD();{//无限循环SetTxMode();//SetTxMoTxPacket();//TransmitTxbufferdatatf=0;LCDP8x16Str(98,0,"S");}}voidConfig905(void)unsignedchari;CSN=0;//Writeconfigcommand写放配置命令for(i=0;i<RxTxConf.n;i++)//Writeconfigrationwords写放配置字{SpiWrite(RxTxConf.buf[i]);}CSN=1;//DisableSpivoidSpiWrite(unsignedcharbyte){unsignedchari;DATA_BUF=byte;//Putfunction'sparameterintoabdatavariablefor(i=0;i<8;i++){//Setupbytecirculationbitsif(flag)MOSI=1;MOSI=0;SCK=1;DATABUF=DATABUF<<1;SCK=0;}}unsignedcharSpiRead(void){unsignedchari;for(i=0;i<8;i++)DATABUF=DATABUF<<1;SCK=1;if(MISO)flag1=1;//PutDATABUF.7ondataline//Setclocklinehigh//ShiftDATABUF//Setupbytecirculationbits//RightshiftDATABUF//Setclocklinehigh//ReaddataSCK=0;}returnDATABUF;}voidTxPacket(void)//Setclockline//Returnfunctionparameter{陕西理工学院毕业设计unsignedchari;//Config905();{SpiWrite(TxBuf[i]);//Writepayloadcommand//Write32bytesTxdata}Delay905(1);for(i=0;i<4;i++)//Write4bytesaddress{SpiWrite(RxTxConf.buf[i+5]);TRX_CE=1;Delay905(1);}voidRxPacket(void){unsignedchari;TRX_CE=0;{RxBuf[i]=SpiRead();}//SetTRX_CEhigh,startTxdatatransmission//while(DR!=1);//SetTRXCElow//SetnRF905instandbymode//Readpayloadcommand//Readdataandsavetobuffer//Disablespi/while(DR||AM);TRX_CE=1;if(RxBuf[0]==1)LCDP8x16Str(90,0,"N");if(RxBuf[1]==1)LCD_P8x16Str(98,0,"N");LCDP8x16Str(90,0,"S");//...lightLCDP8x16Str(98,0,"S");}{TX_EN=1;Delay905(1);//delayformodechange(>=650us)陕西理工学院毕业设计voidSetRxMode({TX_EN=0;TRX_CE=1;Delay905(1);//delayformodechange(>=650us)}#include<reg51.h>//头文件#include"codetab.h"#include"LQ12864.h"#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintTRXCE=P0^3;PWRUP=P2^3;MISOMOSI=P2^6;SCKCSN=P2^7;sbitAM=P0^4;DRCD=P2^4;uchardataTxBuf[32];uchardataRxBuf[32];ucharkey,rsbrf,delayf,tf;{LCDP8x16Str(10,0,"Monitoring3")Dis_Num(60,2,TxBuf[0],2);LCD_P8x16Str(76,2,".");Dis_Num(84,2,TxBuf[1],1);LCDP8x16Str(92,2,"c");LCDP8x16Str(0,4,"Humdity:");DisNum(60,4,TxBuf[2],2);LCDP8x16Str(76,4,".");DisNum(84,4,TxBuf[3],1);DisNum(60,6,TxBuf[4]*40,4);LCDP/*************************************************************************主函数**************************************************************************/voidmain()CSN=1;SCK=0;AM=1;PWR_UP=1;TRXCE=0;TXEN=0;//============Config905();TxBuf[4]=1;TxPacket();Delay905(500);LCDP8x16Str(100,0,"S");TxBuf[0]=0xff;TxBuf[1]=0xff;TxBuf[2]=0xff;TxBuf[3]=0xff;TxBuf[4]=0xff;//Spiclocklineinithigh//InitDRforinput//InitAMforinput//nRF905poweron//SetnRF905instandbymode//ConfignRF905module//SetTxMode//TransmitTxbufferdata//delayforledlight//SetnRF905inRxm//无限循环{TxPacket();TxBuf[0]=RxBuf[0];TxBuf[1]=RxBuf[1];TxBuf[2]=RxBuf[2];TxBuf[3]=RxBuf[3];TxBuf[4]=RxBuf[4];SetRxMode():Delay905(500);LCDP8x16Str(100,0,"S");//SetTxMode//TransmitTxbufferdata//SetnRF905inRxmode陕西理工学院毕业设计}//=====================等待NRF905接收if(DR)//Ifrecivedataready..RxPacket()//...recivedatadisplay();}控制系统程序:#include<reg51.h>#include"codetab.h"#include<intrins.h>#defineucharunsignedchar//头文件#defineuintunsignedint//*******************管脚配置*********TXEN=P0^7;TRXCE=P2^4;PWRUP=P0^6;MISO=P2^1;MOSI=P0^3;SCK=P2^0;sbitCSN=P0^2;DR=P0^4;=P0^5;key1key2key3key4=P3^4;=P3^5;=P3^6;=P3^7;beepLED1LED2LED3=P1^4;=P1^5;=P1^6;=P1^7;/*************************************************************************************uchardataTxBuf[32];uchardataRxBuf[32];ucharTmax=40,Tmin=0,Hmax=90,Hmin=10,Cmax=50,Cmin=0,tf,flag2=0,flag3=0;voiddisplay()陕西理工学院毕业设计{LCD_P8x16Str(10,0,"Monitoring2");LCD_P8x16Str(0,2,"Temper:");Dis_Num(60,2,RxBuf[0],2);LCD_P8x16Str(76,2,".");Dis_Num(84,2,RxBuf[1],1);LCD_P8x16Str(92,2,"c");Dis_Num(60,4,RxBuf[2],2);LCD_P8x16Str(76,4,".");Dis_Num(84,4,RxBuf[3],1);Dis_Num(60,6,RxBuf[4]*40,4);}voidset(void){if(keyl==0){Delay_10us();if(key1==0){while(!key1);flag2=flag2+1;flag2=flag2%4;//flag=0~}}if(flag2==0){Dis_Num(40,2,Tmax,2);LCD_P8x16Str(60,2,"cLCDP8x16Str(0,4,"Tmin:");Dis_Num(40,4,Tmin,2);LCD_P8x16SDisNum(40,6,RxBuf[0],2P8x16Str(56,6,".");Dis_Num(64,6,RxBuf[1],1);{{while(!key4);flag3=flag3+1;}}{LCD_P8x16Str(0,2,”");if(key2==0){if(key2==0){while(!key2);Tmax=Tmax+5;}}if(key3==0){if(key3==0){while(!key3);Tmax=Tmax-5;}}}{if(key2==0){if(key2==0){while(!key2);Tmin=Tmin+5;if(Tmin>Tmax){Tmin=Tmax;}}}if(key3==0){if(key3==0)陕西理工学院毕业设计Tmin=Tmin-5;}}if(flag2==2){LCD_P8x16Str(10,0,"SetHumdity")

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论