畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩115頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

陜西理工學(xué)院題目基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)學(xué)生姓名學(xué)號(hào) 指導(dǎo)教師陜西理工學(xué)院·。畢業(yè)論文(設(shè)計(jì))題目基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)二、畢業(yè)論文(設(shè)計(jì))工作自2016年1月10日起至2016年6月5日止三、畢業(yè)論文(設(shè)計(jì))進(jìn)行地點(diǎn):陜西理工學(xué)院四、畢業(yè)論文(設(shè)計(jì))的內(nèi)容要求: 礦井的內(nèi)部有害氣體眾多,對身心都有巨大的影響。當(dāng)煤礦井下發(fā)生事故時(shí),由于工作環(huán)境,人流量都會(huì)有極大的影響,還有礦井內(nèi)的各種危險(xiǎn)因素對礦井安全生產(chǎn)和人員及時(shí)解救有重要意義。礦井內(nèi)部環(huán)境比較復(fù)雜,監(jiān)測亦成為一大重要問題。無線傳感器網(wǎng)絡(luò)是一種效率很高,成本不高的解決手段,但是其通信范圍、網(wǎng)絡(luò)結(jié)構(gòu)和路由算法等問題需要根據(jù)礦井的具體結(jié)構(gòu)來進(jìn)行規(guī)劃,所以在礦井安全監(jiān)測方面運(yùn)用無線傳感網(wǎng)絡(luò)是有優(yōu)越性的,不但為礦井安全的管理極易人員的救援有極大的幫助,也為礦井安全監(jiān)測提供有力的手段。 本課題要求利用單片機(jī)作為核心控制器件,設(shè)計(jì)一種基于單片機(jī)的礦井環(huán)境監(jiān)測裝置,對礦井下溫度、濕度、瓦斯?jié)舛鹊葦?shù)據(jù)的采集,通過無線傳感器網(wǎng)絡(luò)傳輸并實(shí)時(shí)顯示,具備采集數(shù)據(jù)超限報(bào)警功能。在仿真電路基礎(chǔ)上制作硬件,完成樣機(jī)的調(diào)試。撰寫畢業(yè)設(shè)計(jì)論文。(應(yīng)包括方案設(shè)計(jì)、比較與論證、分析與計(jì)算、電路圖與相關(guān)設(shè)計(jì)文件以及心得體會(huì)等)。五、畢業(yè)論文(設(shè)計(jì))應(yīng)收集資料及參考文獻(xiàn): 收集傳感與檢測、單片機(jī)編程與控制等方面的專業(yè)資料,閱讀和學(xué)習(xí)下列參考文獻(xiàn): [1]童詩白,華成英.模擬電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2006. [2]李建忠.單片機(jī)原理及應(yīng)用(第三版)[M].西安:西安電子科技大學(xué)出版社,2013. [3]譚浩強(qiáng).C程序設(shè)計(jì)(第二版)[M].北京:清華大學(xué)出版社,1999. [4]高文玲.基于無線傳感器網(wǎng)絡(luò)的礦井環(huán)境監(jiān)測系統(tǒng)研究.[J].電子質(zhì)量.網(wǎng)友世界六、畢業(yè)論文(設(shè)計(jì))的進(jìn)度安排:3月21日——4月20日:完成系統(tǒng)硬件電路的設(shè)計(jì)并提交中期檢查報(bào)告。 5月21日——6月15日:撰寫、修改畢業(yè)設(shè)計(jì)論文,準(zhǔn)備并完成答辯。 專業(yè)負(fù)責(zé)人簽名批準(zhǔn)日期 (陜西理工學(xué)院物理與電信工程學(xué)院電子信息工程專業(yè)1203班,陜西漢中723000)指導(dǎo)老師:(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研究背景與發(fā)展現(xiàn)狀 11.2研究主要內(nèi)容 12.方案選擇 22.1總體方案論述 22.2方案一的論述 22.2.1方案一的設(shè)計(jì)結(jié)構(gòu)圖 22.2.2方案一的設(shè)計(jì)方法 22.2.3方案一的優(yōu)缺點(diǎn) 32.3方案二的論述 32.3.1方案二的設(shè)計(jì)結(jié)構(gòu)圖 32.3.2方案二的設(shè)計(jì)方法 42.3.3方案二的優(yōu)缺點(diǎn) 42.4方案的選擇 43.系統(tǒng)軟件設(shè)計(jì) 53.1系統(tǒng)流程分析 53.2溫濕度采集及處理函數(shù) 73.3MQ-4甲烷濃度傳感器以及A/D轉(zhuǎn)換程序 93.4NRF905無線發(fā)送/中繼/接收程序 3.5OLED顯示程序 3.6報(bào)警程序與鍵盤控制程序 4.硬件電路設(shè)計(jì)與調(diào)試 4.1采集模塊 4.2A/D轉(zhuǎn)換模塊 4.3單片機(jī)最小系統(tǒng)模塊 4.4OLED顯示模塊 4.5NRF905無線模塊 4.6報(bào)警及鍵盤控制模塊 4.7電源模塊 4.8實(shí)現(xiàn)結(jié)果 5.總結(jié) 5.1問題與處理 5.2展望 致謝 參考文獻(xiàn) 附錄1電路原理圖 附錄5外文翻譯中英文對照 我國是世界上煤炭產(chǎn)量最高的國家。煤炭是我國使用的主要能源,每年煤炭占全年能源的使用量七成以上。我國煤炭資源豐富,而石油,天然氣等資源匱乏的資源特點(diǎn)導(dǎo)致了煤炭將在未來的長時(shí)間內(nèi)是我國最主要的能源來源。近幾年以來煤礦事故屢見不鮮,事故率仍不容樂觀,保障煤礦安全生產(chǎn)對我過煤礦生產(chǎn)事業(yè)具有迫切需求。影響煤礦安全生產(chǎn)的因素復(fù)雜繁多,包含瓦斯爆炸、透水事故、頂板事故等l2]。而瓦斯?jié)舛冗^高導(dǎo)致的爆炸事故危害最為嚴(yán)重。降低礦難的發(fā)生率就是提高了煤炭的生產(chǎn)效率3]。瓦斯是多種易燃易爆氣體的總稱,其主要成分是甲烷,它是在成煤過程中形成并大量貯存于煤層中的氣體,濃度過高時(shí)會(huì)導(dǎo)致人缺氧、呼吸困難、窒息等。當(dāng)它與空氣混合的百分比達(dá)到3.5%到16%時(shí),遇到明火就會(huì)發(fā)生爆炸,給國家和人民的生命財(cái)產(chǎn)造成巨大的損失14]。所以,對瓦斯的濃度進(jìn)行實(shí)時(shí)的檢測和報(bào)警以及對其采取相應(yīng)的控制措施在煤礦系統(tǒng)中有著非?,F(xiàn)實(shí)的意義。我國瓦斯監(jiān)測監(jiān)控技術(shù)的研究工作起步較晚,國內(nèi)第一臺(tái)催化原理的瓦斯報(bào)警器是1958年出現(xiàn),采用鉑絲元件位傳感器。1961年,由北京勞動(dòng)保護(hù)研究所和和撫順煤礦安全儀器廠協(xié)作開展了研究工作,于1964年研制出我國第一個(gè)達(dá)到實(shí)用水平的載體催化元件,接著制成了以這種元件位傳感器的AQR-1型瓦斯測量儀。隨著電子計(jì)算機(jī)技術(shù)的應(yīng)用,一套監(jiān)測系統(tǒng)除了能檢測出甲烷的濃度外,還可測一氧化碳、氫氣的濃度,同時(shí)又可以對井下設(shè)備的工作狀態(tài)進(jìn)行監(jiān)控。當(dāng)前我國礦井正在運(yùn)行的瓦斯監(jiān)控系統(tǒng)主要有三類:一是20世紀(jì)80年代初,從英、法、美、波蘭等國家引進(jìn)的一批安全監(jiān)控系統(tǒng),并通過消化和吸收研制出適用于我國煤礦實(shí)際情況的監(jiān)控系統(tǒng),由于當(dāng)時(shí)技術(shù)水平低和維護(hù)跟不上等原因系統(tǒng)已面臨更新改造的機(jī)遇;二是20世紀(jì)90年代后期,國內(nèi)各主要科研單位和生產(chǎn)廠家又相繼推出了MSNM、WEBGIS、KJF2000等監(jiān)控系統(tǒng),但是整個(gè)系統(tǒng)的信息傳輸速率最高只能達(dá)到5000bps;三是21世紀(jì)以來,各個(gè)瓦斯監(jiān)控系統(tǒng)生產(chǎn)廠家都在原有基礎(chǔ)上推出了升級系統(tǒng)[5]。因此,根據(jù)我國的煤礦生產(chǎn)和管理模式,依照我國的有關(guān)技術(shù)標(biāo)準(zhǔn),其技術(shù)的先進(jìn)性、產(chǎn)品的可靠性和實(shí)用性則是本項(xiàng)目的關(guān)鍵所在,而且基于單片機(jī)的礦井瓦斯監(jiān)測系統(tǒng)的研究和開發(fā)生產(chǎn)具有十分廣泛的現(xiàn)實(shí)市場和潛在的市場需求。由于我國檢測技術(shù)應(yīng)用較晚,所以我國當(dāng)前對瓦斯的檢測設(shè)備還存在很多的問題,例如,檢測設(shè)備的壽命周期短,易受礦井不良壞境的影響并且會(huì)導(dǎo)致檢測設(shè)備的工作性能不穩(wěn)定、檢測結(jié)果不準(zhǔn)確,容易出現(xiàn)誤報(bào)警等現(xiàn)象,維護(hù)周期短且費(fèi)用高5]。而單片機(jī)具有體積小,運(yùn)行塊、穩(wěn)定、低廉等特點(diǎn),所以基于單片機(jī)的礦井瓦斯檢測系統(tǒng)設(shè)計(jì)是勢在必行的。1.2研究主要內(nèi)容利用單片機(jī)AT89C51作為核心控制器件,設(shè)計(jì)一種基于單片機(jī)的礦井環(huán)境監(jiān)測系統(tǒng),實(shí)現(xiàn)礦井環(huán)境的實(shí)時(shí)監(jiān)測與報(bào)警,及時(shí)有效的反映礦井下環(huán)境指標(biāo),保障安全生產(chǎn)。要求通過對礦井下溫度、濕度和瓦斯?jié)舛冗M(jìn)行信息采集,當(dāng)各項(xiàng)指標(biāo)低于或高出設(shè)定的安全值時(shí),單片機(jī)將發(fā)出報(bào)警信號(hào)并指示報(bào)警的指標(biāo)。安全值可以人為調(diào)整。在此基礎(chǔ)上,該設(shè)計(jì)系統(tǒng)還需要滿足在礦井下復(fù)雜環(huán)境中仍能保持有效及時(shí)監(jiān)測的能力。礦井環(huán)境監(jiān)測系統(tǒng)利用單片機(jī)AT89C51作為信息處理器和核心控制器件。系統(tǒng)利用溫濕度傳感器和瓦濃度傳感器將采集到的礦井溫濕度和瓦斯?jié)舛冉?jīng)過處理傳遞給單片機(jī),單片機(jī)將得到的信息發(fā)送到地面控制中心進(jìn)行處理,判斷是否超限,達(dá)到報(bào)警限度時(shí)單片機(jī)將發(fā)出指令進(jìn)行聲音和燈光報(bào)警,未達(dá)到限度時(shí)屏幕實(shí)時(shí)顯示溫濕度和瓦斯?jié)舛?。總體的系統(tǒng)結(jié)構(gòu)圖如圖2.1所示。信息處理信息處理與控制模塊調(diào)整報(bào)警安全值圖2.1系統(tǒng)結(jié)構(gòu)圖2.2方案一的論述系統(tǒng)由數(shù)據(jù)采集模塊、A/D轉(zhuǎn)換模塊、顯示模塊、報(bào)警模塊和無線模塊組成。采集模塊:溫濕度傳感器DHT11、甲烷濃度傳感器MQ-4;方案一的系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖如圖2.2所示。A/D轉(zhuǎn)換模塊單片機(jī)單片機(jī)(控制系統(tǒng))無線傳輸設(shè)計(jì)系統(tǒng)主要分為兩大部分。礦井下,溫濕度傳感器和甲烷濃度傳感器進(jìn)行數(shù)據(jù)采集,之后將采集到的數(shù)據(jù)通過模數(shù)轉(zhuǎn)換電路并送入單片機(jī)(監(jiān)測系統(tǒng))中進(jìn)行處理,在礦井下顯示實(shí)時(shí)監(jiān)測的結(jié)果,并將處理后的數(shù)據(jù)通過無線發(fā)射裝置發(fā)送至地面的控制中心。地面控制中心通過無線接收裝置收到處理后的實(shí)時(shí)監(jiān)測數(shù)據(jù)。通過控制系統(tǒng)實(shí)時(shí)顯示礦井下各項(xiàng)數(shù)據(jù)指標(biāo)之外,還將數(shù)據(jù)與設(shè)定的安全值進(jìn)行比較,超出或者低于安全值范圍,報(bào)警模塊發(fā)出相應(yīng)的聲光報(bào)警。信息采集模塊主要采集溫度、濕度以及甲烷濃度三個(gè)指標(biāo),分別通過DHT11溫濕度傳感器、MQ-4甲烷濃度傳感器實(shí)現(xiàn)。溫濕度傳感器DHT11采集到礦井下空氣溫濕度,向單片機(jī)輸出一組數(shù)字信號(hào),經(jīng)單片機(jī)處理。MQ-4通過對甲烷等氣體的濃度感應(yīng)輸出模擬信號(hào),經(jīng)模數(shù)轉(zhuǎn)換芯片8位數(shù)字信號(hào)輸入單片機(jī)。單片機(jī)將采集到的信號(hào)還原攝氏溫度、相對濕度以及甲烷體積濃度,通過LCD1602顯示屏進(jìn)行顯示,同時(shí)通過無線射頻芯片NRF2401發(fā)送和接收數(shù)據(jù)。方案一的設(shè)計(jì)思路具有廉價(jià)、易于實(shí)現(xiàn)的優(yōu)點(diǎn)。傳感器DHT11、MQ-4,顯示屏LCD1602以及無線模NRF2401都是市面上常見而且價(jià)格低廉的器件。系統(tǒng)由數(shù)據(jù)采集模塊、模擬/數(shù)字轉(zhuǎn)換模塊、顯示模塊、報(bào)警模塊、無線模塊以及無線中繼模塊方案二的設(shè)計(jì)結(jié)構(gòu)圖如圖2.3所示。單片機(jī)(控制系統(tǒng))(中繼系統(tǒng))(中繼系統(tǒng))圖2.3方案二設(shè)計(jì)結(jié)構(gòu)圖設(shè)計(jì)系統(tǒng)主要分為三大部分。礦井下,與方案一類似。單片機(jī)(監(jiān)測系統(tǒng))中進(jìn)行處理,在礦井下顯示實(shí)時(shí)監(jiān)測的結(jié)果,并將處理后的數(shù)據(jù)通過無線發(fā)射裝置發(fā)送至中繼系統(tǒng)。根據(jù)礦井下環(huán)境復(fù)雜程度,設(shè)置N個(gè)中繼器用來接繼無線信號(hào),直至發(fā)送到地面控制中心。各器件的工作方式同方案一。溫濕度傳感器改采用DHT11的升級芯片DHT21;顯示模塊使用OLED屏幕;無線模塊改使用NRF905芯片。方案二針對方案一的缺點(diǎn)進(jìn)行了改進(jìn)。方案二的設(shè)計(jì)思路對于溫濕度的采集精度更高,在顯示模塊顯示空間更大,并且無線傳輸距離大大增長。增加的中繼系統(tǒng)更加符合復(fù)雜礦井環(huán)境下的無線2.4方案的選擇因此選用方案二來實(shí)現(xiàn)本系統(tǒng)的設(shè)計(jì)。這里選用NRF905芯片進(jìn)行無線傳輸,根據(jù)不同的復(fù)雜礦井環(huán)境,可以選擇不同的905模塊。該系統(tǒng)目前以NRF905SE模塊進(jìn)行設(shè)計(jì),可以達(dá)到300米的對比項(xiàng)目方案一方案二溫度濕度甲烷濃度顯示屏無線傳輸中繼器器件成本DHT11精確度1℃;有效量程0~50℃DHT11精確度1RH%LCD1602顯示2行16列;需要11個(gè)I/0口NRF2401工作在2.4Ghz,1Mkbps,短距傳輸無以上傳感器各取一件和20元左右DHT21精確度0.1℃;有效量程-40~80℃DHT21精確度0.1RH%精確度40ppm;有效量程0~10000ppmOLED顯示4行;需要4個(gè)I/0口NRF905工作在433Mhz,50kbps,傳輸距離長延長傳輸距離以上傳感器各取一件和65元左右陜西理工學(xué)院畢業(yè)設(shè)計(jì)程序分為三主體:監(jiān)測系統(tǒng)、中繼系統(tǒng)、控制系統(tǒng)。監(jiān)測系統(tǒng)由OLED顯示程序,DHT21溫濕度讀取程序,A/D轉(zhuǎn)換程序,NRF905無線發(fā)送程序中繼系統(tǒng)由OLED顯示程序,NRF905接收和發(fā)送程序以及主程序組成。控制系統(tǒng)由OLED顯示程序,NRF905接收程序,報(bào)警程序,鍵盤控制程序以及主程序組成。3.1系統(tǒng)流程分析單片機(jī)通過主程序的邏輯順序調(diào)用各個(gè)其他程序。首先,單片機(jī)進(jìn)行初始化。各系統(tǒng)中OLED號(hào)經(jīng)由ADC0809轉(zhuǎn)換輸入單片機(jī),OLED將單片機(jī)處理后的溫濕度和甲烷濃度進(jìn)行顯示。由無線模塊發(fā)送到中繼系統(tǒng)再發(fā)送到控制系統(tǒng),由控制系統(tǒng)單片機(jī)進(jìn)行處理,若超出限額則啟動(dòng)聲光報(bào)警,若未超出限額則返回等待無線模塊接收新的數(shù)據(jù),重新進(jìn)行比較。開始單片機(jī)(監(jiān)控)初始化單片機(jī)(中繼)初始化單片機(jī)(控制)初始化各模塊初始化各模塊初始化各模塊初始化讀取溫濕度和甲烷濃度無線接收無線接收無線發(fā)送無線發(fā)送是否超限無限循環(huán)是否超限While(1)是顯示聲光報(bào)警結(jié)束圖3.1主程序流程圖監(jiān)控系統(tǒng)主程序解析:LCD_P8x16Str(10,0,"Beingwarmup");//OLED初始化//ADC0809初始化,其中包括開中斷和定時(shí)器//顯示“正在預(yù)熱”//MQ-4需要30秒預(yù)熱,其中包括預(yù)熱讀秒的顯示程序//OLED清屏//這里是對905進(jìn)行了配置//單片機(jī)對905的配置寄存器進(jìn)行配置陜西理工學(xué)院畢業(yè)設(shè)計(jì){TxPacket();//在屏幕上顯示尚未發(fā)送標(biāo)志//從ADC0809讀取模數(shù)轉(zhuǎn)換后的甲烷濃度//通過905發(fā)送數(shù)據(jù)//發(fā)送五組數(shù)組:分別為溫度整數(shù)部分//未經(jīng)過處理的甲烷數(shù)字信號(hào)//在屏幕上顯示發(fā)送成功標(biāo)志//OLED顯示程序中繼系統(tǒng)主程序解析:{LCDP8x16Str(98,0,"N");{TxPacket();TxBuf[1]=RxBuf[1];TxBuf[3]=RxBuf[3];if(DR)RxPacket():}//OLED初始化//這里是對905進(jìn)行了配置//單片機(jī)對905的配置寄存器進(jìn)行配置//在屏幕上顯示尚未發(fā)送標(biāo)志//通過905發(fā)送數(shù)據(jù)//將接收到的五組數(shù)據(jù)發(fā)送出去//在屏幕上顯示發(fā)送成功標(biāo)志///如果DR管腳收到高電平,說明發(fā)射完畢//905開始接收數(shù)據(jù)//OLED顯示程序中繼系統(tǒng)主程序解析:{{beep_LED();//OLED初始化//這里是對905進(jìn)行了配置//單片機(jī)對905的配置寄存器進(jìn)行配置//如果DR管腳收到高電平,說明發(fā)射完畢//905開始接收數(shù)據(jù)//OLED顯示程序3.2溫濕度采集及處理函數(shù)溫濕度采集模塊使用傳感器DHT21。這是一款通過對空氣中溫濕度采樣并輸出數(shù)字信號(hào)的傳感DHT21模塊具有三個(gè)管腳,分別接5V直流電源,接地以及數(shù)據(jù)輸出口。數(shù)據(jù)輸出口采用單總線數(shù)據(jù)格式與單片機(jī)進(jìn)行通訊。通過輸出四十位的高低電平信號(hào)來傳輸溫濕度數(shù)據(jù),每一位響應(yīng)時(shí)間在80-100微秒左右。數(shù)據(jù)格式:40bit數(shù)據(jù)=16bit濕度數(shù)據(jù)+16bit溫度數(shù)據(jù)+8bit校驗(yàn)碼溫濕度數(shù)據(jù)分高8位數(shù)據(jù)和低8位數(shù)據(jù)組成。校驗(yàn)碼是前32位數(shù)據(jù)之和。單片機(jī)將DHT21總線拉低500us并拉高后,DHT21會(huì)立即響應(yīng)。下圖為單片機(jī)向DHT21發(fā)送DHTDHT拉高開始傳送數(shù)據(jù)主機(jī)至少拉低500us信號(hào)線說明:DHT響應(yīng)信號(hào)DHT信號(hào){圖3.2DHT21響應(yīng)單片機(jī)開始信號(hào)的工作過程//定義讀取溫濕度函數(shù)//單片機(jī)拉低,對應(yīng)上圖“主機(jī)拉低500us”//保持拉低狀態(tài),這里采用模糊延時(shí),不一定需要精準(zhǔn)//以下為保持拉高狀態(tài)。這里需要精確延時(shí)陜西理工學(xué)院畢業(yè)設(shè)計(jì)if(!DHT)//判斷DHT21是否響應(yīng),對應(yīng)上圖“DHT21響應(yīng)信號(hào)80us”{while((DHT)&&U8FLAG++);//等待響應(yīng)COM();Shidu_gao=U8comdata;//讀出濕度高8位Shidudi=U8comdata;//讀出濕度低8位wendu_gao=U8comdata;//讀出溫度高8位wendu_dip=U8comdata;//讀出溫度低8位Xiaoyanma=U8comdata;//讀出8為校驗(yàn)碼Xiaoyanma=(Shidu_gao+Shidu_di+wendu_gao+wendu_di);//校驗(yàn)if(U8temp==U8checkdata_temp)/DHT1xiaoshu=Wendudi;U8T_data_H=Wendu_gao;//導(dǎo)出濕度,方便后面顯示模塊調(diào)用Wendu_di=Wendu_di;s//判斷溫度是否為負(fù)值U8checkdata=U8checkdata_te}//導(dǎo)出溫度,方便后面顯示模塊調(diào)用DHT21開始傳輸數(shù)據(jù)后,梅1bit數(shù)據(jù)都是由一個(gè)低電平間隙和一個(gè)高電平組成。共40bit數(shù)據(jù),傳輸完畢時(shí),單總線將被再次拉低50us,隨后釋放被拉高。陜西理工學(xué)院畢業(yè)設(shè)計(jì)對應(yīng)程序解析:voidCOM(void)//定義數(shù)據(jù)接收函數(shù)unsignedchari:for(i=0;i<8;i++)//循環(huán)八次,接收一組數(shù)據(jù)U8FLAG=2;while((!DHT)&&U8FLAG++);U8temp=0;if(DHT)U8temp=1;U8FLAG=2;while((DHT)&&U8FLAG++);if(U8FLAG==1)break;U8comdata<<=1;U8comdata|=U8temp;}}//等待低電平間隙,對應(yīng)上圖“1bit開始”//等到30us,這里需要精確延時(shí)//等待30us后我們預(yù)設(shè)值為0//如果依然為高電平,可以確定數(shù)據(jù)值為1//等待拉高結(jié)束//保存讀到的數(shù)值,并移位3.3MQ-4甲烷濃度傳感器以及A/D轉(zhuǎn)換程序MQ-4氣體傳感器適用與對甲烷、氫氣、一氧化碳、煙霧等可燃?xì)怏w的檢測,對不同氣體有不同的靈敏特性。MQ-4傳感器通過對不同濃度氣體的感應(yīng)輸出不同的電壓值。經(jīng)過模數(shù)轉(zhuǎn)換輸入單片機(jī)。這里采用ADC0809模數(shù)轉(zhuǎn)換芯片。芯片能將0~5V的模擬信號(hào)轉(zhuǎn)換為8位的數(shù)字信號(hào)。陜西理工學(xué)院畢業(yè)設(shè)計(jì)DO~D7管腳連接單片機(jī)I/O口輸出數(shù)字信號(hào)。START啟動(dòng)轉(zhuǎn)換,高電平有效。EOC可以查看芯片轉(zhuǎn)換狀態(tài),用于單片機(jī)查詢轉(zhuǎn)換狀態(tài)。OE管腳向單片機(jī)發(fā)出讀取數(shù)據(jù)的請求,高電平有效。CLK管腳輸入500Khz脈沖的時(shí)鐘信號(hào),每一次脈沖完成一個(gè)轉(zhuǎn)換。ADDA管腳用來選擇通道。相關(guān)程序解析:{ETO=1;{}{//利用定時(shí)器TO產(chǎn)生中斷//OE管腳向單片機(jī)發(fā)送讀取數(shù)據(jù)請求//保存讀取到的值,范圍(0~256)陜西理工學(xué)院畢業(yè)設(shè)計(jì)}單片機(jī)讀取到轉(zhuǎn)換后的數(shù)字信號(hào)之后,根據(jù)MQ-4氣體傳感器對甲烷氣體的靈敏特性,還原甲烷氣體濃度。下圖為靈敏度特性曲線。圖3.5MQ-4氣體傳感器靈敏特性由圖可見,甲烷氣體在純凈空氣中的濃度在1000ppm左右。根據(jù)特性曲線,我們粗略的認(rèn)為單片機(jī)讀取到的數(shù)字信號(hào)乘以系數(shù)40就是空氣中的實(shí)際甲烷濃度。相關(guān)程序解析:Dis_Num(60,6,AD_DATA[0]*40,4);//顯示“CH4”//顯示數(shù)字,這里對數(shù)字信號(hào)乘系數(shù)變成實(shí)際濃度//顯示單位字符串“ppm”3.4NRF905無線發(fā)送/中繼/接收程序NRF905芯片具有較強(qiáng)的抗干擾能力,適合工業(yè)控制場合。工作在頻段433Mhz。NRF905通過TRX_CE和TX_EN管腳,配置芯片掉電模式(低功耗)、Standby模式、RX(接收)模式和TX(發(fā)射)模式。通過5個(gè)Spi接口來調(diào)整狀態(tài)寄存器、射頻配置寄存器、發(fā)送地址寄存器、發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器。{DR=1;AM=1;PWR_UP=1;TRXCE=0;TX_EN=0;}{uchari;SpiWrite(WC);for(i=0;i<RxTxConf.n;i++)////DR拉高,這里用于查看接收或發(fā)射數(shù)據(jù)完成//AM拉高,用于地址匹配//芯片上電/1設(shè)置為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寫操作程序//將需要發(fā)送的數(shù)據(jù)寫入緩存/1將DATABUF.7放在數(shù)據(jù)線上//拉高時(shí)鐘線DATA_BUF=DATA_BUF<<1;SCK=0;//拉低時(shí)鐘線}ucharSpiRead(void)//定義Spi讀操作程序{uchari;for(i=0;i<8;i++)/{DATA_BUF=DATA_BUF<<1;SCK=1;//拉高時(shí)鐘線if(MISO)flag1=1;SCK=0;}//拉低時(shí)鐘線//DATABUF為接收到的完整數(shù)據(jù)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位發(fā)送數(shù)據(jù)/1寫數(shù)據(jù)至地址寄存器//寫入4字節(jié)地址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;//關(guān)閉Spi//將905置于發(fā)送狀態(tài),進(jìn)行發(fā)送//進(jìn)入ShockBurst發(fā)送模式后//設(shè)置905進(jìn)入空閑模式//準(zhǔn)備讀取接收到的數(shù)據(jù)//停止spi//定義設(shè)置為TX模式的程序//延時(shí)需要大于650us陜西理工學(xué)院畢業(yè)設(shè)計(jì)}3.5OLED顯示程序OLED顯示程序需要先對OLED屏幕進(jìn)行初始化。需要建立字庫。在使用OLED顯示程序時(shí),需要先對顯示位置進(jìn)行設(shè)置,其次根據(jù)對應(yīng)的字庫顯示字符。顯示程序較多,將在附錄完全呈現(xiàn)。這里我們?nèi)∽址娘@示函數(shù)和數(shù)字顯示函數(shù)進(jìn)行解析:voidLCD_P6x8Str(unsignedch{c=ch[j]-32;LCD_WrDat(F6x8[c][i]);x+=6;//顯示6*8一組標(biāo)準(zhǔn)ASCII字符串voidDis_Num(unsignedcharx,unsignedchary,unsignedintnum,unsignedcharN)1/數(shù)字顯示函數(shù){unsignedcharj=0;n[0]=(shu/10000)%10;n[1]=(shu/1000)%10;n[6]='\0;//這里設(shè)置了數(shù)字位數(shù)最多為6位/1從ACSⅡ碼表中讀取字節(jié),然后寫入液晶報(bào)警程序是將接收到的溫濕度數(shù)據(jù)和甲烷濃度數(shù)據(jù)與設(shè)定的安全值進(jìn)行比較。當(dāng)超出安全值范圍時(shí),蜂鳴器報(bào)警且相應(yīng)的發(fā)光二極管發(fā)出光線。鍵盤控制程序是通過四個(gè)按鍵,控制屏幕顯示切換,并且調(diào)整各個(gè)指標(biāo)安全值的上下限。鍵用于切換上下限指標(biāo)。陜西理工學(xué)院畢業(yè)設(shè)計(jì)LED2=0;LED3=0;Fengmingqi=1;//初始化濕度報(bào)警燈//初始化甲烷濃度報(bào)警燈//以下為將接收到的數(shù)據(jù)進(jìn)行比較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時(shí)顯示監(jiān)控?cái)?shù)據(jù),為1,2,3時(shí)設(shè)置安全值1/控制值只能為0,1,2,3//顯示監(jiān)控?cái)?shù)據(jù)//display是監(jiān)控顯示程序//這里忽略了設(shè)定溫度值的顯示程序//CHOICE鍵被按下//flag3為0時(shí)設(shè)置上限,為1時(shí)設(shè)置下if(flag3==0)if(key2==0){if(key2==0)while(!key2);Tmax=Tmax+5;}}if(key3==0)//UP鍵被按下//溫度上限增加5//DOWN鍵被按下陜西理工學(xué)院畢業(yè)設(shè)計(jì)if(key3==0){while(!key3);Tmax=Tmax-5;//溫度上限減少5}//后面忽略溫度下限以及濕度,甲烷濃度的設(shè)置程序陜西理工學(xué)院畢業(yè)設(shè)計(jì)VCCP20p20VCCGNDVCCGNDVCCP20p20VCCGNDVCCGND24.硬件電路設(shè)計(jì)與調(diào)試硬件分為采集、中繼、控制三個(gè)獨(dú)立的部分。包含采集模塊、模擬/數(shù)字轉(zhuǎn)換模塊、最小系統(tǒng)模塊、顯示模塊、無線模塊,報(bào)警模塊,鍵盤控制和電源模塊。采集模塊使用DHT21和MQ-4傳感器。下圖為采集模塊電路原理圖。VCC上拉電阻圖4.1采集模塊電路原理圖DHT21模塊擁有三個(gè)外部管腳,分別接5V直流電源,接地以及數(shù)據(jù)口。DHT21的硬件連接非常簡單,調(diào)試過程中出現(xiàn)的難點(diǎn)在于DHT21程序中需要精確的30us延時(shí),誤差不能超過2us,延時(shí)不精確或者不正確,將出現(xiàn)主程序不能完整運(yùn)行一遍的情況發(fā)生,表現(xiàn)性狀是屏幕無顯示。圖4.2DHT21模塊MQ-4氣體傳感器模塊擁有四個(gè)外部引腳,分別接5V直流電源,接地,TTL輸出以及模擬信號(hào)輸出。該模塊內(nèi)置了比較器,可以通過調(diào)節(jié)MQ-4模塊上的滑動(dòng)變阻器來改變預(yù)設(shè)比較值。如果超過設(shè)定的安全值時(shí),TTL輸出管腳會(huì)輸出高電平。本設(shè)計(jì)中并未使用該功能,本設(shè)計(jì)將MQ-4的模擬信號(hào)輸出管腳接入A/D轉(zhuǎn)換電路。陜西理工學(xué)院畢業(yè)設(shè)計(jì)圖4.3MQ-4模塊正在工作中值得注意的是,DHT21模塊需要預(yù)熱1秒左右,MQ-4模塊需要預(yù)熱30秒左右。在預(yù)熱過程中,避免向傳感器發(fā)送信號(hào),否則會(huì)造成讀到數(shù)據(jù)不精確的現(xiàn)象發(fā)生。本設(shè)計(jì)中為避免此類情況,在采集系統(tǒng)中設(shè)置了30秒的開機(jī)預(yù)熱時(shí)間。在下文“結(jié)果展示”欄目中呈現(xiàn)。4.2A/D轉(zhuǎn)換模塊ADC0809芯片具有8通道28個(gè)外部引腳。能將0~5V的模擬信號(hào)轉(zhuǎn)換為8位數(shù)字信號(hào)。本設(shè)計(jì)中MQ-4信號(hào)輸入IN0,DO~D7連接單片機(jī)的P3口。其余五個(gè)信號(hào)管腳分別接入單片機(jī)I/O口。ADC0809ININ0AN4A0A0ADDCSPADDCSP25BCCD7P30P22OEVCCVref-Vref-P31D1調(diào)試過程中出現(xiàn)的難點(diǎn)在于CLK引腳需要輸入5KHz的正脈沖信號(hào)。每一次脈沖完成一次轉(zhuǎn)換。出入的脈沖信號(hào)不正確或者頻率過低會(huì)出現(xiàn)轉(zhuǎn)換過程緩慢的情況,表現(xiàn)性狀為甲烷濃度變化遲緩,反應(yīng)不靈敏。圖4.5ADC0809與單片機(jī)連接陜西理工學(xué)院畢業(yè)設(shè)計(jì)單片機(jī)通過接入18和19引腳的12M晶振起振工作。通過接入9引腳的復(fù)位電路置高電平來實(shí)現(xiàn)復(fù)位功能。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單片機(jī)最小系統(tǒng)原理圖圖4.7單片機(jī)最小系統(tǒng)4.4OLED顯示模塊OLED屏有6個(gè)外接引腳,除外接電源和地之外,省下四個(gè)引腳與單片機(jī)連接通訊。本設(shè)計(jì)的監(jiān)控系統(tǒng)中OLED屏幕顯示監(jiān)控?cái)?shù)據(jù)和無線發(fā)送狀態(tài);中繼系統(tǒng)中顯示接收并發(fā)送的數(shù)據(jù)和無線狀表示發(fā)送狀態(tài))NRF905模塊具有14個(gè)外部引腳。其中10個(gè)引腳與單片機(jī)相連通訊(詳見上文3.4)。本系統(tǒng)(1)整個(gè)電路系統(tǒng)都是由5V直流電源供電,而905模塊需要以3.3V直流電源供電。因此以AMS1117芯片設(shè)計(jì)的3.3V穩(wěn)壓模塊。(2)在NRF905配置過程中,載波頻率FRF=422.4+CH_NOd/10*(1+HFREQ_PLLd)M報(bào)警模塊采用PNP三極管8055放大電流驅(qū)動(dòng)蜂鳴器工作。當(dāng)指標(biāo)超限時(shí)單片機(jī)會(huì)給出報(bào)警信號(hào),由三極管放大后,蜂鳴器報(bào)警。三個(gè)發(fā)光二極管分別串聯(lián)電阻連接單片機(jī)。設(shè)置請參考上文3.6。圖4.10陜西理工學(xué)院畢業(yè)設(shè)計(jì)如圖,發(fā)光二極管從上到下分別為溫度報(bào)警、濕度報(bào)警、甲烷濃度報(bào)警。任何指標(biāo)超限蜂鳴器都會(huì)報(bào)警。設(shè)計(jì)三塊電路板主體均以5V直流電源供電。采用220V轉(zhuǎn)5V電源適配器,其中內(nèi)置5V穩(wěn)壓電路。電路中NRF905模塊需要以3.3V供電,本設(shè)計(jì)內(nèi)設(shè)計(jì)了3.3V直流穩(wěn)壓模塊。圖4.13電源模塊原理圖圖4.145V電源適配器圖4.15AMS1117-3.3V穩(wěn)壓電路焊接圖設(shè)計(jì)最終實(shí)現(xiàn)結(jié)果。能實(shí)時(shí)測量和顯示空氣溫度、濕度、甲烷濃度。無線傳輸距離良好,穿透性能強(qiáng)。操作便捷簡單。以下是實(shí)現(xiàn)結(jié)果的實(shí)物展示圖。圖4.16整體系統(tǒng)運(yùn)行圖,分別為監(jiān)測系統(tǒng)(左),中繼系統(tǒng)(右上),控制系統(tǒng)(右下)5.1問題與處理利用51單片機(jī)作為核心控制器件的礦井環(huán)境監(jiān)測系統(tǒng),實(shí)現(xiàn)了對礦井下空氣溫度,空氣濕度以及甲烷濃度的實(shí)時(shí)監(jiān)控與報(bào)警。進(jìn)一步加強(qiáng)了礦井安全生產(chǎn)的可操作性。系統(tǒng)主要由監(jiān)測系統(tǒng)、中鍵盤控制模塊等共八個(gè)模塊。監(jiān)測系統(tǒng)采集并轉(zhuǎn)化采集到的信號(hào),通過無線中繼系統(tǒng)接繼信號(hào),控制系統(tǒng)接收信息并和通過鍵盤控制模塊設(shè)定的安全值進(jìn)行比較,如果超出安全值范圍,通過報(bào)警模系統(tǒng)完全達(dá)到任務(wù)書的要求,通過無線傳輸并能隨時(shí)設(shè)定安全值范圍。無線中繼的使用極大增強(qiáng)的該系統(tǒng)的使用性和適用性。整個(gè)系統(tǒng)簡潔美觀。(1)使用無線中繼系統(tǒng)有2000ms的延時(shí),使用過多的中繼會(huì)讓延時(shí)更長。有待改進(jìn),以增強(qiáng)實(shí)(2)使用中繼系統(tǒng),監(jiān)控系統(tǒng)發(fā)射的信號(hào)和中繼系統(tǒng)發(fā)射的信號(hào)沒能夠區(qū)分開來。近距離下存在(4)甲烷檢測的上限是10000ppm,對應(yīng)人體有害安全限度。而甲烷的爆炸極限是這四點(diǎn)需要在以后的學(xué)習(xí)過程中繼續(xù)探究和改進(jìn)。目前由于時(shí)間關(guān)系和技術(shù)水平層次不夠的緣故,對一和二的問題暫時(shí)無法處理。對于問題三,將在接下來的時(shí)間繼續(xù)完善。問題四局限于傳感器,需要在之后尋找更加適合、優(yōu)良的傳感器使用。當(dāng)然,以上四點(diǎn)就目前來看,并不影響該設(shè)計(jì)在設(shè)計(jì)的制作過程中,也同樣遇到了很多其他問題,經(jīng)過查閱資料和一次次的完善,最終解決。(1)DHT21的模塊需要精確延時(shí)30us。由于單片機(jī)的頻率,定時(shí)器的設(shè)定等等原因,很難達(dá)到精確的30us。經(jīng)過不斷重復(fù)的實(shí)驗(yàn)最終解決。(2)預(yù)期設(shè)想中需要區(qū)分監(jiān)測系統(tǒng)發(fā)出的無線信號(hào)與中繼系統(tǒng)發(fā)出的無線信號(hào),原打算以不同工載波頻率來進(jìn)行區(qū)分,但NRF905的硬件更適應(yīng)430Mhz頻率,提高頻率后未能調(diào)通。(3)硬件采用焊接電路來實(shí)現(xiàn),不可避免出現(xiàn)了焊接出錯(cuò)或者焊點(diǎn)刺破其他導(dǎo)線而短通的情況出手能力親身去實(shí)現(xiàn)自己的設(shè)計(jì)。這是作為一名工科學(xué)生最難得的體驗(yàn)和寶貴經(jīng)歷。WiFi模塊會(huì)被更廣泛的應(yīng)用。系統(tǒng)可以吸取物聯(lián)網(wǎng)和互聯(lián)網(wǎng)的優(yōu)勢,將物聯(lián)網(wǎng)和互聯(lián)網(wǎng)融入系統(tǒng)之中。甚至于,可以考慮將手機(jī)作為系統(tǒng)的監(jiān)控載體,利用App實(shí)現(xiàn)對礦井下環(huán)境各個(gè)指標(biāo)的監(jiān)測。系統(tǒng)還可以從更新型,更精準(zhǔn)的傳感器方面入手,做到精確的監(jiān)測。致謝在本次畢業(yè)設(shè)計(jì)過程中,感謝指導(dǎo)老師以及學(xué)校的其他各位老師辛勤的指導(dǎo)和幫助,使我能重新梳理鞏固自己所學(xué)知識(shí)完成本次設(shè)計(jì)。同時(shí),同學(xué)之間的幫助和討論以及圖書館大量的文獻(xiàn)資料也是完成設(shè)計(jì)必不可少的條件之一。在完成本次設(shè)計(jì)之后,我會(huì)更加努力的學(xué)習(xí)和鉆研電子知識(shí),[1]孫繼平.煤炭監(jiān)控技術(shù)裝備與標(biāo)準(zhǔn)[M].北京:煤炭工業(yè)出版社,2010.[2]東兆星,劉剛.井巷工程[M].徐州:中國礦業(yè)大學(xué)出版社,2013.[3]武軍偉,康健.基于51單片機(jī)的煤礦瓦斯監(jiān)控系統(tǒng)研究[J].煤炭技術(shù),2012,32(2):103-105.[4]李鴻燕,張立毅.基于單片機(jī)控制的甲烷濃度報(bào)警監(jiān)控儀電腦開發(fā)與應(yīng)用[J].2002,(8):29-30.[5]劉西青.論國內(nèi)煤礦瓦斯監(jiān)測系統(tǒng)現(xiàn)狀與發(fā)展[M].山西:煤炭出版社,2006.[6]高文玲.基于無線傳感器網(wǎng)絡(luò)的礦井環(huán)境監(jiān)測系統(tǒng)研究.[J].電子質(zhì)[7]劉萍.基于多傳感器融合的礦井環(huán)境監(jiān)測系統(tǒng)研究.[J].礦山機(jī)械2013年6月10日[8]童詩白,華成英.模擬電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2006.[9]李建忠.單片機(jī)原理及應(yīng)用(第三版)[M].西安:西安電子科技大學(xué)出版社,2013.[10]楊居義.單片機(jī)原理與工程應(yīng)用[M].北京:清華大學(xué)出版社,2010.[11]YeagerBrent.Howtotroubleshootyourelectronicscale[J]..PowderandBulk[12]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J]..TQMJournal.2008陜西理工學(xué)院畢業(yè)設(shè)計(jì)附錄工工0P4入前HGND采集模塊HGAD不亦不亦和1出khilPH工原理圖說明系統(tǒng)原理圖分為益測、中維,控制三個(gè)系統(tǒng)單片機(jī)最小系統(tǒng)等模塊被多次使用,這里不再重復(fù)畫出,故管理有重復(fù),報(bào)警電路CH0有者為用荒荒白P00WAnAHSP)Q3TmtsWtAM8=II*一電源電路NNp改鍵控電路FPrGNn110展0展O4NEP90MCX-1A下顯示電路GKD(GNDEST:VVDHXDP)TxDP)N0PN2P13TL73.5WRP)SXTALZX1AL1ATAlFRFSFNWFXTALXTAlNI)復(fù)位電路無線模塊振蕩電路TdlA*4下申月群掃礦開孫現(xiàn)紙費(fèi)在塊止計(jì)SumhaA算題cND單片機(jī)最小系統(tǒng)J0lnn'tl上每目程樣C附錄2電路實(shí)物圖附錄3元器件清單序號(hào)名稱型號(hào)數(shù)量123456789單片機(jī)液晶顯示晶振數(shù)字式溫濕度傳感器甲烷氣體傳感器無線射頻模塊蜂鳴器按鍵開關(guān)排阻穩(wěn)壓芯片電阻電容排針;排母;芯片座STC89C52RCOLEDDHT21MQ-4NRF9057805;AMS1117高亮燈珠3個(gè)3個(gè)3個(gè)1個(gè)1個(gè)3個(gè)1個(gè)6個(gè)3個(gè)1個(gè);3個(gè)若干若干若干3個(gè)陜西理工學(xué)院畢業(yè)設(shè)計(jì)附錄4源程序代碼//頭文件#include<intrins.h>//*******************定義命令字**********************#defineWC0x00//Writeconfigurationregistercommand#defineRTPOx21//ReadTXPayload#defineWTAOx22//WriteTXAddresscommand#defineRTA0x23#defineRRP0x24//*******************管腳配置*********sbitST=P2^4;//A/D啟動(dòng)轉(zhuǎn)換信號(hào)sbitOE=P2^2;//數(shù)據(jù)輸出允許信號(hào)sbitEOC=P2^3;//A/D轉(zhuǎn)換結(jié)束信號(hào)sbitCLK=P2^1;//時(shí)鐘脈沖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=陜西理工學(xué)院畢業(yè)設(shè)計(jì)0x01,0x0c,0x44,0x20,0x20,Oxcc,Oxcc,Oxcc,0xcc,0x58/************************************************************************************/unsignedchardataTxBuf[32];unsignedcharkey,rsbrf,delayf,tf;/***********************************************************************************/=DATA_BUF^7;=DATA_BUF^0;/***********************************************************************************/bitflagtemp;//溫度正負(fù)標(biāo)志位,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時(shí)精確延時(shí)1ms)*******************/voiddelayms(unsignedintz){unsignedintx,y;for(x=z;x>0;x--)for(y=1848;y>0;y--);}/***********************************************************延時(shí)函數(shù)******************************************************************//**********延時(shí)函數(shù)************/voidDelay905(unsignedcharn)陜西理工學(xué)院畢業(yè)設(shè)計(jì){while(n--)voidDelay_10us(void)//延時(shí)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);/*********系統(tǒng)初始化***********/voidinit(){EA=1;//開總中斷TMOD=0x02;//設(shè)定定時(shí)器T0工作方式THO=216;//利用T0中斷產(chǎn)生CLK信號(hào)TLO=216;TRO=1;//啟動(dòng)定時(shí)器TOETO=1;}voidCOM(void)//讀字節(jié){unsignedchari;{U8FLAG=2;while((!DHT)&&U8FLAG++);if(DHT)U8temp=1;U8FLAG=2;while((DHT)&&U8FLAG++);//超時(shí)則跳出for循環(huán)if(U8FLAG==1)break;//判斷數(shù)據(jù)位是0還是1//如果高電平高過預(yù)定0高電平值則數(shù)據(jù)位為1U8comdata<<=1;U8comdata|=U8temp;」}voidRH(void)//讀取溫濕度//主機(jī)拉低1-5msDHT=0;Delay905(5);DHT=1;//總線由上拉電阻拉高主機(jī)延時(shí)40us陜西理工學(xué)院畢業(yè)設(shè)計(jì)//主機(jī)設(shè)為輸入判斷從機(jī)響應(yīng)信號(hào)DHT=1;//判斷從機(jī)是否有低電平響應(yīng)信號(hào)如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行if(!DHT)//T!{U8FLAG=2;//判斷從機(jī)是否發(fā)出80us的低電平響應(yīng)信號(hào)是否結(jié)束while((!DHT)&&U8FLAG++);U8FLAG=2;//判斷從機(jī)是否發(fā)出80us的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)while((DHT)&&U8FLAG++);//數(shù)據(jù)接收狀態(tài)COM();COM();Wendudi=U8comdata;COM();COM();Wendudi=U8comdata;COM();U8checkdata_temp=U8comdata;DHT=1;//數(shù)據(jù)校驗(yàn)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)//如果溫度為負(fù)值{flagtemp=1;}}}/***********T0中斷服務(wù)程序************/voidt0(void)interrupt1using0{CLK=~CLK;}/***********AD轉(zhuǎn)換函數(shù)**********/{delay2(10);delay2(10);ADDATA[O]=P3;}主函數(shù)*********************voidmain()*******************************************/{LCD_P8x16Str(10,0,"Beingwarmup");delayqidong(600);DR=1;AM=1;//Spiclocklineinith陜西理工學(xué)院畢業(yè)設(shè)計(jì)PWR_UP=1;TRX_CE=0;TX_EN=0;Config905();TxPacket();//SetnRF905instandbymode//ConfignRF905module//SetTxMode//TransmitTxbufferdata//delayforledlightwhile(1)RH();AD();{//無限循環(huán)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{陜西理工學(xué)院畢業(yè)設(shè)計(jì)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)陜西理工學(xué)院畢業(yè)設(shè)計(jì)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/*************************************************************************主函數(shù)**************************************************************************/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//無限循環(huán){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陜西理工學(xué)院畢業(yè)設(shè)計(jì)}//=====================等待NRF905接收if(DR)//Ifrecivedataready..RxPacket()//...recivedatadisplay();}控制系統(tǒng)程序:#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()陜西理工學(xué)院畢業(yè)設(shè)計(jì){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)陜西理工學(xué)院畢業(yè)設(shè)計(jì)Tmin=Tmin-5;}}if(flag2==2){LCD_P8x16Str(10,0,"SetHumdity")

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論