基于單片機(jī)室內(nèi)環(huán)境檢測(cè)_第1頁(yè)
基于單片機(jī)室內(nèi)環(huán)境檢測(cè)_第2頁(yè)
基于單片機(jī)室內(nèi)環(huán)境檢測(cè)_第3頁(yè)
基于單片機(jī)室內(nèi)環(huán)境檢測(cè)_第4頁(yè)
基于單片機(jī)室內(nèi)環(huán)境檢測(cè)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余19頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、一、設(shè)計(jì)任務(wù)本系統(tǒng)滿足室內(nèi)環(huán)境變量實(shí)行全面、實(shí)時(shí)、長(zhǎng)期監(jiān)測(cè)的要求,實(shí)現(xiàn)室內(nèi)環(huán)境溫濕度、可燃?xì)怏w濃度檢測(cè)的自動(dòng)化和智能化.系統(tǒng)以單片機(jī)為核心,以溫度、濕度傳感器,氣敏傳感器作為測(cè)量元件,通過單片機(jī)與智能傳感器相連,采集并存儲(chǔ)智能傳感器的測(cè)量數(shù)據(jù),經(jīng)過分析處理將結(jié)果顯示于 LCD 液晶屏.在單片機(jī)系統(tǒng)中,還要實(shí)現(xiàn)超限報(bào)警和數(shù)據(jù)輔助存儲(chǔ)功能.二、方案設(shè)計(jì)2.1 硬件設(shè)計(jì)在室內(nèi)環(huán)境監(jiān)測(cè)硬件設(shè)計(jì)上,由單片機(jī)XTAL1XTAL2RSTPSENALEEAP1.0P11P1.2P13P1AP15PI6P1.7P30/RXDP3.1/TXDP3.2/3NTOP3.3/F而P34/T0P35O1P36WVRP37

2、/RD10iT12w1415_1PO.O/ADOPOWAD1P0.2/AD2P03AD3PO4./AD4POLADSP06/AD6PO7/AD7P2.0/A8P21/A9P22/A10P23ZA11P2.4/A12P25/A13P26Al4P2.7/A15冏 BARE2/-02兇NAM2724PL.trA_6*用心iP07M07p?Q/AaP21,陶P2iM,lO氣揖占VK中612F二型A13r:m*14pjT中懶QWRXTP3t為聞?lì)甪M.3/IHT?P二厘河PUi7Rn-陽(yáng)7欣2.1.3 氣敏傳感器MQ211 型氣敏元件是一種通用性較強(qiáng)的氣敏元件,氣敏傳感器的敏感元件是氣敏電阻器,氣敏電阻

3、器的阻值隨吸附氣體的濃度變化而變化,利用者一特性檢測(cè)氣體濃度.氣敏傳感器的連接如圖 4.5vF112KI4KI4JOkJOk圖 4 氣敏傳感器的連接2.1.4 溫濕度傳感器傳感器 SHT11 將溫度感測(cè)、濕度感測(cè)、信號(hào)變換、A/D 轉(zhuǎn)換和加熱器等功能集成到一圖 3 晶振和復(fù)位電路冷汩I-HM3與MQ個(gè)芯片上,其內(nèi)部結(jié)構(gòu)如圖 5 所示.該芯片包括一個(gè)電容性聚合體濕度敏感元件和一個(gè)用能隙材料制成的溫度敏感元件.這兩個(gè)敏感元件分別將濕度和溫度轉(zhuǎn)換成電信號(hào),該電信號(hào)首先進(jìn)入微弱信號(hào)放大器進(jìn)行放大,然后進(jìn)入一個(gè) 14 位的 A/D 轉(zhuǎn)換器,最后經(jīng)過二線串行數(shù)字接口輸出數(shù)字信號(hào)圖 5 溫濕度傳感器內(nèi)部結(jié)構(gòu)

4、命令代碼含義拿XOOOll測(cè)量溫度一測(cè)量濕度“XDOlll讀內(nèi)部狀態(tài)存放器.X00110P與內(nèi)部狀態(tài)存放器*,復(fù)位命名其他一保存圖 6 溫濕度傳感器指令代碼UIPl.GPl.lPL2PJ.4RSTXTAL2KTAL1STC89C52PPPPPPPPPPPPPPPP2.1.5LCD 顯示模塊設(shè)計(jì)在該設(shè)計(jì)中,LCD 要顯示溫度、濕度、可燃?xì)怏w是否超標(biāo)的功能,所以使用了一塊行列點(diǎn)陣數(shù)為 128*64,每行可以顯示 8 個(gè)字符,共顯示 2 行字的 LCD名稱名稱/ /型態(tài)口型態(tài)口電平電平/ /功能描述功能描述/ /并并W W串口串口, ,VCCHP工卡工卡 , ,模塊反模塊反憫憫俞人俞人, ,GN1*

5、GN1*3 3 / /電源地電源地 2 2叱.,/.,/比照度調(diào)節(jié)比照度調(diào)節(jié)VEEVEE卡卡工爐工爐液晶驅(qū)動(dòng)電壓爐液晶驅(qū)動(dòng)電壓爐PEaPEaH/1QH/1Q并口并口, ,串口選擇串口選擇 , ,RSTRST卡卡工產(chǎn)工產(chǎn)H/L/H/L/復(fù)位信號(hào)低宜復(fù)位信號(hào)低宜效效RSCCS)*RSCCS)*工爐工爐H/LPH/LPH H數(shù)據(jù)數(shù)據(jù)L L指令指令片選低意數(shù)片選低意數(shù). .R/W(SID)-R/W(SID)-訐訐R/LaR/LaH H讀讀L L耳耳串行數(shù)據(jù)線串行數(shù)據(jù)線工二工二H/LPH/LP使育霜亭使育霜亭蔚亍時(shí)蔚亍時(shí)鐘輸戶鐘輸戶毗毗D D3r3r工儀工儀H H/ /口口數(shù)據(jù)總線低四位數(shù)據(jù)總線低四位

6、2 2Dd-DDd-D再再I/O*I/O*3 3H/LH/L卡卡數(shù)據(jù)總線高數(shù)據(jù)總線高四位一四位一交接交接工卡工卡一一背背光正產(chǎn)光正產(chǎn) * * *背光良心背光良心圖 8LCD 管腳名稱和功能LCD 的連接電路:當(dāng) LCD 選擇并時(shí),要把 8 個(gè)數(shù)據(jù)送到芯片,而 LCD 選擇串口時(shí),只需要把 3 個(gè)數(shù)據(jù)送到芯片.由于芯片的管腳豐富夠用,所以 LCD 的連接方式選擇并口.LCD 的連接方式如圖 9 所示.XW2pppppbipp10k米8W箱+5V 曲:5 叱豌裝尤2.1.6 按鍵電路塊圖 10 是按鍵輸入的典型電路,按鍵 S1、S2、S3 斷開時(shí),端口 P2.5、P2.6、P2.7 上的信號(hào)為高電

7、平,按鍵 S1、S2、S3 合上時(shí),端口 P2.5、P2.6、P2.7 上的信號(hào)為低電平.電阻起到分壓、限流作用.當(dāng)按鍵電路設(shè)計(jì)成這種硬件連接時(shí),按鍵可以采取中斷的形式進(jìn)行讀取,也可以采用循環(huán)掃描的形式讀取,為程序的編寫提供了選擇的余地.2.1.7 報(bào)警電路設(shè)計(jì)圖 11,在本系統(tǒng)中,采用 P1.4 口為報(bào)警電路輸出口,當(dāng)有報(bào)警信號(hào)時(shí),蜂鳴器鳴叫,提醒平安指標(biāo)超標(biāo)或不正常,須采取平安舉措改變室內(nèi)環(huán)境質(zhì)量,如配合智能建筑系統(tǒng),可實(shí)現(xiàn)自動(dòng)化無人操作,方便又平安.tnF1.OPJ4r-t.rPL4XTAL24 4TILLLLsuTILLLLsuppppppppp p二三三仁口4-2/5,6,7U口Q.

8、o.cado.AVPPPPPPFPE圖 10 按鍵電路7,43102121ALAALAL L與CTSCTSXXVXXV那 32.2 軟件設(shè)計(jì)在上述硬件根底上,編寫系統(tǒng)程序,實(shí)現(xiàn)以下幾項(xiàng)功能:(1)通電時(shí)蜂鳴器響一聲,LCD 液晶顯示室內(nèi)溫度、濕度、可燃?xì)怏w濃度狀態(tài).(2)當(dāng)室內(nèi)溫度大于設(shè)定的溫度、濕度例如溫度 28 度、濕度 80%、檢測(cè)到可燃?xì)怏w超標(biāo)時(shí),蜂鳴器報(bào)警.(3)當(dāng)?shù)谝淮伟丛O(shè)置鍵:溫度值閃爍,這是可以通過按“+或者“一按鍵設(shè)定溫度上限值,4 秒鐘無鍵按下停止閃爍,按“+或者“一設(shè)置溫度下限值;第二次按設(shè)置按鍵:濕度值閃爍,這時(shí)可以通過按“+或者“一設(shè)置濕度上限值,4 秒鐘無鍵按下停止

9、閃爍,按“+或“一設(shè)置濕度下限值;第三次按設(shè)置按鍵,退出設(shè)置狀態(tài).2.2.1軟件系統(tǒng)設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)采用C語(yǔ)言編程,軟件結(jié)構(gòu)為模塊化結(jié)構(gòu),由主程序、自檢程序、SHT11 數(shù)據(jù)采集與處理程序、ADC0831 數(shù)據(jù)采集處理程序、報(bào)警限制程序及顯示程序等模塊組成,其軟件模塊結(jié)構(gòu)如圖 12 所示.圖 12 軟件結(jié)構(gòu)方框圖2.2.2主程序設(shè)計(jì)2.2.3LCD1602 顯示模塊程序設(shè)計(jì)2.2.4SHT11 溫濕度測(cè)量模塊程序三、程序代碼#include#include#include#include#include#defineucharunsignedchar#defineuintunsignedin

10、tUnsignedcharTempBuffer5Ucharhumibuffer4.Voidmainwendu_to_str(TempBuffer5.for(i=0.iTempbutteri=i.Tempbutter0=(SHUOxts_zi.Tempbutter1=(SHUOxtg_zi.Tempbutter2=0 xdf.Tempbutter3=C.Tempbutter4=0.Printf(%d,TempBufferi.Printf(n.Voidmainshidu_to_str(intifor(i=0.ihumibufferi=i.humibuffer0=(SHUOxzz_z

11、i.humibuffer1=(SHUOxsg_zi.humibuffer2=%.humibuffer3=0.printf(n.Voidmainqiti_to_str(intIfor(i=0.iqitibuffer0=b1.qitibuffer1=b2.qitibuffer2=b3.printf(%d,qitibufferiprintf(n.Voidshow_LCD(LCD_Initial(.text_jishuan_temp11(data_pro(.wendu_to_str(GotoXY(6,1.Print(TempBufferGotoXY(0,1.Print(wendu.shidu_to_s

12、tr(GotoXY(11,1Print(shidu.GotoXY(17,1.Print(humibufferGotoXY(13,0.Print(qitibuffercsh(P2.0=0.main(csh(show_LCD(.delay_n10us(100000.LCD 顯示屏驅(qū)動(dòng)程序1602.h#ifndefLCD_CHAR_1602_2005_4_9#defineLCD_CHAR_1602_2005_4_9#includesbitLcdRs=P2A0.sbitLcdRw=P2A1.sbitLcdEn=P2A2.sfrDBPort=0 x80.unsignedcharLCD_Wait(void

13、(LcdRs=0.LcdRw=1._nop_(.LcdEn=1._nop_(./while(DBPort&0 x80.LcdEn=0.returnDBPort.)/向 LCD 寫入命令或數(shù)據(jù)#defineLCD_COMMAND0/Command#defineLCDDATA1/DATA#defineLCD_CLEAR_SCREEN0 x01/清屏#defineLCD_HOMING0 x02/光標(biāo)返回原點(diǎn)VoidLCD_Write(bitstyle,unsignedcharinput(LcdEn=0.LcdRs=style.LcdRw=0_nop_(.DBPort=input._nop_(

14、./注意順序LcdEn=1._nop_(./注意順序LcdEn=0._nop_(.LCD_wait(.)/設(shè)置顯示模式#defineLCD_SHOW0 x04/顯示開#defineLCD_HIDE0 x00/顯示關(guān)#defineLCD_CURSOR0 x02/顯示光標(biāo)#defineLCD_NO_CURSOR0 x00/無光標(biāo)#defineLCD_FLASH0 x01/光標(biāo)閃動(dòng)#defineLCD_NO_FLASH0 x00/光標(biāo)不閃動(dòng)VoidLCD_SetDisplay(unsignedcharDisplayModeLCD_Write(LCD_COMMAND,0 x08|DisplayMode

15、.)/設(shè)置輸入模式#defineLCD_AC_UP0 x02#defineLCD_AC_DOWN0 x00/default#defineLCD_MOVE0 x01/畫面可移動(dòng)#defineLCD_NO_MOVE0 x00/defaultVoidLCD_SetInput(unsignedcharInputModeLCD_Write(LCD_COMMAND,0 x04|InputMode.)/移動(dòng)光標(biāo)或屏幕#defineLCD_CURSOR0 x02#defineLCD_SCREEN0 x08#defineLCD_LEFT0 x00#defineLCD_RIGHT0 x04VoidLCD_Move

16、(unsignedcharobject,unsignedchardirectionif(object=LCD_CURSORLCD_Write(LCD_COMMAND,0 x10|diriction.if(object=LCD_SCREENLCD_Write(LCD_COMMAND,0 x18|diriction./初始化 LCDVoidLCD_Initial(LcdEn=0.LCD_Write(LCD_COMMAND,0 x38LCD_Write(LCD_COMMAND,0 x38LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSORLCD_Write(LCD_COMMAN

17、D,LCD_CLEAR_SCREENLCD_SetInput(LCD_AC_UP|LCD_NO_MOVEVoidGotoXY(unsignedcharx,unsignedchary(if(y=0LCD_Write(LCD_COMMAND,0 x80|xif(y=1LCD_Write(LCD_COMMAND,0 x80|(x-0 x40.VoidPrint(unsignedchar*str(while(*str!=0(LCD_Write(LCD_DATA,*str.str+.VoidLCD_LoadChar(unsignedcharuser8,unsignedcharplace(Unsigned

18、chariLCD_Write(LCD_COMMAND,0 x40|(place*8.for(i=0.iLCD_Write(LCD_DATA,useri.)#endif溫濕度傳感器驅(qū)動(dòng)程序SHT11.h#include/頭文件#include#include#include/KeillibrarysbitDATA=P2A4./數(shù)據(jù)sbitSCK=P2A3./時(shí)鐘#defineTEMP_ML0 x03/00000011#defineHUMI_ML0 x05/00000101unsignedcharhumi_hunsignedchartemp_LL#defineucharunsignedchar/#

19、defineunitunsignedint#defineulongunsignedlongunsignedintrecs=0./接收次數(shù)ucharTempBuffer5.ucharhumibuffer4.constunsignedcharSHUO15=0123456789.%Rxts_zi=0./溫度值intxtg_zi=0./溫度個(gè)位值溫度命令濕度命令unsignedcharerrorunsignedcharack./floattemp_zi./floathumi_zi./全局錯(cuò)誤變量/全局錯(cuò)誤變量/全局應(yīng)答變量/全局應(yīng)答變量unsignedchartemp_h/全局應(yīng)答變量un

20、signedchartemp_LL/全局應(yīng)答變量定義一下方便使用intxtd_zi=0./溫度點(diǎn)值intxss_zi=0./濕度值intxsg_zi=0./濕度個(gè)位值intxsd_zi=0./濕度點(diǎn)值sbitsoud=P1A4./聲音/根本驅(qū)動(dòng)程序/系統(tǒng)初始化Voidstart(void/啟動(dòng)(DATA=1SCK=0./數(shù)據(jù)為 1,SCK=0_nop_(.SCK=1/A 個(gè)脈沖DATA=0/數(shù)據(jù)跌落_nop_(.SCK=0/完成一個(gè)脈沖_nop_(._nop_(._nop_(.SCK=1/再一個(gè)脈沖_nop_(.DATA=1./數(shù)據(jù)變?yōu)?1_nop_(SCK=0/變?yōu)樵撁}沖)Voidsht_r

21、est(void/復(fù)位(unsignedcharI.DATA=1./釋放數(shù)據(jù)總線SCK=1returnack./error=1 表示沒有應(yīng)答charread(/讀一個(gè)字節(jié)返回應(yīng)答信號(hào)UnsignedcharI,val=0temp_LL=0.temp_h=0.DATA=1/for0.i/=2SCK=1./if(DATAval=(val|i/確定值DATA=1SCK=0/數(shù)據(jù)為 1 時(shí)鐘為 0fori=0.i9.i+)/9SCK=1.SCK=0)Start/UnsignedcharI.ack=0.for(i=0 x80.i0.if(i&valueDATA=1ElseDATA=0.SCK=1

22、_nop_(._nop_(SCK=0個(gè)脈沖為復(fù)位啟動(dòng)寫一個(gè)字節(jié)返回應(yīng)答信號(hào)i/=2/_nop_(釋放數(shù)據(jù)總線寫入值上升沿寫入/延時(shí)釋放數(shù)據(jù)總線/位移 8 位上升沿讀入/讀應(yīng)答信號(hào)應(yīng)答為 1,應(yīng)答為 0 通過 CPUT 拉為應(yīng)答第 9 個(gè)脈沖第 9 個(gè)脈沖SCK=0DATA=1/釋放數(shù)據(jù)總線temp_LL=valreturnval)/測(cè)量溫度或者是濕度,返回校驗(yàn)值 text_a(unsignedcharmlunsignedintI.start(./啟動(dòng)write(ml./寫入測(cè)溫度if./復(fù)位write(ml./寫入測(cè)溫度SCK=0DATA=0SCK=1nop_(._nop_(._nop_(/p

23、ulswithapprox.5usSCK=0DATA=1temp_h=val.val=0./低 8 位/釋放數(shù)據(jù)總線DATA=1for(i=0 x80.i0.SCK=1.if(DATAval=(val|iSCK=0/i/=2/釋放數(shù)據(jù)總線位移 8 位上升沿讀入確定值DATA=1/0./不需要應(yīng)答通過 CPUT 拉為應(yīng)答SCK=1_nop_(_nop_(_nop_(/pulswithapprox.5us)/DATA=1./釋放數(shù)據(jù)總線For(i=0.iif(DATA=0break.read(./度溫度)text_jishuan_temp(floataa=0,bb=0,abcd

24、=0.aa=(floattemp_h*256+(floattemp_LL.temp_zi=0.01*aa-40.if(temp_zi(temp_zi=-temp_zi.)temp_zi=temp_zi*10.abcd=(inttemp_zi.xts_zi=abcd/100.abcd=abcd%100.xtg_zi=abcd/10.abcd=abcd%10bxtd_zi=abcd/1.)text_jishuan_humi(floataa=0,bb=0,humi_abcd=0aa=(floattemp_h*256+(floattemp_LL.baa*aa*2.8/1000000.aa=

25、0.0405*aa.aa=aa-4-bb.humi_zi=humi_zi*10.abcd=(inthumi_zi.xss_zi=abcd/100.abcd=abcd%100.xsg_zi=abcd/10.abcd=abcd%10bxsd_zi=abcd/1.text_jishuan_temp11(error=0.ack=0.sht_rest(./復(fù)位text_a(TEMP_ML.text_jishuan_temp(text_a(HUMI_ML.text_jishuan_humi(unsignedintwendu,shidu.voiddelay_n10us(unitn/延時(shí) n 個(gè) 10us12M1 振uintifor(i=n.i0.i-_nop_(_nop_(_nop_(_nop_(_nop_(四、心得體會(huì)通過本次課程設(shè)計(jì)的學(xué)習(xí)與實(shí)踐,我逐漸對(duì)單片機(jī)產(chǎn)生了興趣,并且對(duì)溫度氣敏傳感器、LED 顯示器都有了一定的了解,在設(shè)計(jì)過程中通過圖書館、網(wǎng)上查閱資料,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論