




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機智能家居系統(tǒng)的硬件和軟件設計案例目錄TOC\o"1-3"\h\u9060第1章智能家居安防系統(tǒng)硬件接口電路設計 2321091.1數(shù)據(jù)采集模塊接口電路設計 2150331.1.1DHT11溫濕度傳感器接口電路設計 2245301.1.2MQ-2煙霧傳感器接口電路設計 2235481.1.3MQ-5可燃氣體傳感器接口電路設計 3240121.2A/D轉換模塊接口電路設計 429161.2.1ADC0832接口電路設計 4265441.3顯示及報警模塊接口電路設計 5268841.3.1LCD1602接口電路設計 546231.3.2蜂鳴器接口電路設計 6271.4按鍵設置模塊接口電路設計 6224001.5系統(tǒng)整體硬件電路設計 75314第2章智能家居安防系統(tǒng)軟件設計 8118022.1數(shù)據(jù)采集模塊 8236512.1.2溫度采集模塊 8229182.1.1濕度采集模塊 995592.1.3煙霧濃度采集模塊 1098962.1.4可燃氣體濃度采集模塊 11105192.2A/D轉換模塊 12124422.3顯示與報警模塊 13183812.1.1液晶顯示模塊 13108612.4按鍵設置模塊 16137192.5主程序模塊 17第1章智能家居安防系統(tǒng)硬件接口電路設計1.1數(shù)據(jù)采集模塊接口電路設計1.1.1DHT11溫濕度傳感器接口電路設計硬件結構DHT11一共有四個引腳:GND為電源地;Dout為數(shù)字信號輸入/輸出端;VCC為電源輸入端;NC引腳懸空。由于DHT11本身就自帶A/D轉換電路,因此Dout端可直接與單片機相連接,本次設計中將該元件的數(shù)字信號輸出端與單片機的P3^3口相連接。接口電路如圖所示:圖4-1DHT11與單片機接口電路DHT11工作時一般在兩端施加3-2.5V的電壓,在傳感器接通電源后,不能直接開始工作,需要等待約1s左右,在這段時間內無需做任何動作,等傳感器的狀態(tài)穩(wěn)定后,測得的結果才準確。DHT11與單片機通訊時有固定的數(shù)據(jù)格式,一般是單總線數(shù)據(jù)格式,與單片機完成一次通訊的時間約是4ms左右,每次發(fā)送的數(shù)據(jù)長度均為40位,依次濕度的8位整數(shù)和8位小數(shù)部分,溫度的8位整數(shù)和8位小數(shù)部分,再加上8位校驗和,高位先出。DHT11未工作時默認為低功耗模式,在進行數(shù)據(jù)采集時,DHT11先等待單片機發(fā)送開始信號,此時立刻轉換為高速模式,在單片機發(fā)送的開始信號結束后,DHT11隨即發(fā)送一個響應信號回送單片機,而后送出40位的數(shù)據(jù),并觸發(fā)一次信號采集,可根據(jù)需要讀取部分數(shù)據(jù)或者是全部數(shù)據(jù)REF_Ref17111\r\h[9]。1.1.2MQ-2煙霧傳感器接口電路設計MQ-2模塊具有四個引腳:VCC接5V電源;DOUT為TTL高低電平(即開關量)輸出端;AOUT為模擬電壓輸出端;GND接地。本次設計采用模擬量輸出接法,由于MQ-2不像DHT11,它本身并沒有模數(shù)轉換功能,而此次選用的單片機也不帶A/D轉換模塊,因此需在傳感器與單片機之間連接一個單獨的A/D轉換模塊,接收MQ-2輸出的電壓信號,待將其轉換為單片機可識別的數(shù)字量之后,再由A/D轉換芯片將數(shù)據(jù)傳輸給單片機,單片機就可以直接處理了。在此選擇采用ADC0832,將MQ-2的AOUT端與ADC0832的CH0引腳相連。接口電路如圖所示:圖4-2MQ-2與ADC0832接口電路圖MQ-2模塊輸出的結果可以是0V—5V的模擬電壓,也可以是TTL開關電平。但由于此次設計需要顯示出具體的數(shù)據(jù),因此用模擬電壓輸出。1.1.3MQ-5可燃氣體傳感器接口電路設計硬件結構:MQ-5也屬于半導體傳感器的一種,與MQ-2傳感器類似,同樣具有四個引腳,第一個引腳和第四個引腳分別是電源和地,第三個引腳是模擬量輸出,第二個引腳是高低電平(即開關量)輸出。同樣的,MQ-5輸出的為電壓信號,且自身不帶模數(shù)轉換功能,因此也需要先與A/D轉換模塊相連,將MQ-5的AOUT口與ADC0832的CH1引腳相連,接口電路如圖所示:圖4-3MQ-5與ADC0832接口電路圖1.2A/D轉換模塊接口電路設計1.2.1ADC0832接口電路設計正常情況下ADC0832一共有CS、CLK、DO、DI這4條數(shù)據(jù)線,在使用時將其與單片機對應的接口分別相連。DO端與DI端跟單片機通過接口連接時,是雙向通訊的,而且在與單片機通信的時候,這兩個端口一般不會同時使用,所以在單片機連接的元器件較多,I/O口使用較為緊張的時候,可以將DO和DI并聯(lián)起來,這樣就只使用一根數(shù)據(jù)線與單片機相連,只會占用一個端口。本次設計即將DO和DI并聯(lián)使用,ADC0832與STC89C52RC直接連接,CS引腳接單片機的P3^4,CLK接P3^5,DO和DI并聯(lián)接P3^6。接口電路如圖所示:圖4-4ADC0832與單片機接口電路圖CS為片選端,當CS=1時ADC0832不能工作,這時候可以隨意設置另外三個端口的電平;當CS=0時,芯片進入工作狀態(tài),到A/D轉換完全結束這個時間段內CS都必須保持低電平。當CS端處于低電平時,ADC0832開始轉換數(shù)據(jù),CLK端輸入周期性的脈沖信號,DI端具有選擇輸入通道的功能,在第1個下降沿到來前必須使DI=1,表示啟始信號;在第2、3個下降沿到來前DI端應輸入兩位數(shù)據(jù)用于選擇通道功能REF_Ref17480\r\h[10]。具體如下表所示:表4-1ADC0832通道功能通道地址通道工作方式說明SGL/DIFODD/SIGN0100+-差分方式01-+10+單端輸入方式11+第3個下降沿到來后就開始用DO輸出轉換數(shù)據(jù);從第4個下降沿開始,從DO端由高到低輸出8位轉換數(shù)據(jù),到第11個脈沖時可完成一個字節(jié)數(shù)據(jù)的輸出;然后又從這個脈沖開始從低到高輸出8位數(shù)據(jù),到第19個脈沖時即可完成數(shù)據(jù)輸出,到此一次A/D轉換就結束了;轉換完成后再將CS電平拉高,將數(shù)據(jù)發(fā)送給單片機處理。1.3顯示及報警模塊接口電路設計1.3.1LCD1602接口電路設計LCD1602是16×2點陣字符型液晶顯示模塊,它內部包含著一個存儲器,即字符發(fā)生存儲器(CGROM),其中存儲有160個不同的點陣字符圖形,在使用時可以顯示簡單的字母、數(shù)字、符號等REF_Ref17712\r\h[11]。LCD1602共有16個引腳,其中第4、5、6引腳是三個控制位分別為RS,R/W和EN,D0-D7是8位數(shù)據(jù)線。其中,RS=0/1表示選擇指令/數(shù)據(jù)寄存器;R/W=0/1表示進行寫/讀操作,EN是使能端。在此次設計中將LCD的D0-D7引腳與單片機的P0^0-P0^7相連接,該元件與單片機的具體接口電路如圖所示:圖4-5LCD1602與單片機接口電路圖1.3.2蜂鳴器接口電路設計在本設計中,利用程序控制蜂鳴器發(fā)出報警聲音來表示有檢測數(shù)值超過閾值。蜂鳴器可直接連接到單片機,其接口電路圖如下:圖4-6蜂鳴器與單片機接口電路圖其中輸出端口與單片機的P2^7管腳相連,當單片機輸出低電平時,與蜂鳴器相連接的三極管導通,蜂鳴器開始報警,故三極管在報警電路中相當于一個開關REF_Ref17941\r\h[12]。1.4按鍵設置模塊接口電路設計本次設計用了四個功能按鍵,分別為“設置”、“加”、“減”、“確定”,由于采用的是單個按鍵,因此一個按鍵與單片機的一個引腳相連,將四個按鍵分別和單片機的P2^0,P2^1,P2^2,P2^3相連,其接口電路圖如下:圖4-7按鍵與單片機接口電路圖1.5系統(tǒng)整體硬件電路設計將煙霧傳感器和可燃氣體傳感器與ADC0832連接后,ADC0832連接到單片機,溫濕度傳感器、LCD、按鍵和蜂鳴器則直接與單片機連接,具體接口電路圖如下:圖4-8整體硬件接口電路圖
第2章智能家居安防系統(tǒng)軟件設計智能家居安防系統(tǒng)的程序模塊主要包括:獲取溫度數(shù)值程序、獲取濕度數(shù)值程序、獲取煙霧濃度數(shù)值程序、獲取可燃氣體濃度數(shù)值的程序、LCD液晶顯示程序、蜂鳴器報警程序、A/D轉換程序以及按鍵讀取程序,還有主程序模塊等。通過編程使傳感器采集相關的數(shù)據(jù),輸出是模擬信號的通過A/D轉換程序依次轉化為數(shù)字信號,通過串口傳送到單片機,數(shù)據(jù)經過處理后顯示到LCD上,并與閾值進行對比,在達到條件時控制蜂鳴器報警。另外,當讀到有按鍵觸發(fā)時,LCD上顯示閾值調整的情況。2.1數(shù)據(jù)采集模塊2.1.2溫度采集模塊上電后,整個系統(tǒng)初始化,在接收到單片機發(fā)出的開始信號后,傳感器進行溫度的采集,接收溫度的整數(shù)部分和小數(shù)部分并進行數(shù)據(jù)校驗,數(shù)據(jù)接收正確后,單片機控制LCD顯示具體溫度數(shù)值。其程序流程如圖5-1所示:圖5-1DHT11采集溫度程序流程圖具體程序如下:voidDHT11_receive(){ unsignedcharR_H,R_L,T_H,T_L,RH,RL,TH,TL,revise; DHT11_start(); if(Data==0) { while(Data==0); DHT11_delay_us(40); R_H=DHT11_rec_byte(); R_L=DHT11_rec_byte(); T_H=DHT11_rec_byte(); T_L=DHT11_rec_byte(); revise=DHT11_rec_byte(); DHT11_delay_us(25); if((R_H+R_L+T_H+T_L)==revise) { RH=R_H; RL=R_L; TH=T_H; TL=T_L;shidu=RH; wendu=TH; } }}2.1.1濕度采集模塊檢測濕度與溫度采用的是同一傳感器,在對濕度進行采集后,接收濕度數(shù)據(jù)的整數(shù)部分和小數(shù)部分并校驗,經判斷接收正確后再通過LCD1602顯示具體的濕度數(shù)據(jù)。其程序流程如圖5-2所示:圖5-2DHT11采集濕度程序流程圖由于與溫度采集在同一個函數(shù)中完成,因此程序代碼在此不再贅述。2.1.3煙霧濃度采集模塊煙霧傳感器模塊由于輸出的是電壓,單片機不能直接處理,因此系統(tǒng)初始化后,隨即進行煙霧濃度的采集,將輸出的電壓通過串口傳輸?shù)紸DC0832,隨后ADC0832將模擬信號轉化為數(shù)字信號后再傳送給單片機,最后將數(shù)據(jù)顯示到LCD上。圖5-3MQ-2檢測煙霧程序流程圖相關代碼如下:voidMQ_2data(void){ floatADC_1; ADC_1=ADC0832_ADC(0); ADC_1=(ADC_1/255)*100; MQ_2=(int)ADC_1;}2.1.4可燃氣體濃度采集模塊可燃氣體傳感器模塊與煙霧濃度傳感器模塊類似,同樣在感受到可燃氣體濃度后要先通過A/D轉換。其程序流程圖如下:圖5-4MQ-5檢測可燃氣體程序流程圖相關代碼如下:voidMQ_5data(void){floatADC_2;ADC_2=ADC0832_ADC(1);ADC_2=(ADC_2/255)*100;MQ_5=(int)ADC_2;}2.2A/D轉換模塊由于MQ-2與MQ-5傳感器輸出的是模擬電壓信號,如果直接連接到單片機,單片機沒有辦法對他們的數(shù)據(jù)進行處理,因此必須先經過ADC0832的轉換,將模擬信號轉化為數(shù)字信號,再傳輸?shù)絾纹瑱C,單片機才能正常識別。其轉換過程代碼如下:ucharADC0832_ADC(charCH){ uchari,dat1=0,dat2=0; CS=0;CLK=0;DIO=1;_nop_();_nop_(); CLK=1;_nop_();_nop_(); CLK=0;DIO=1;_nop_();_nop_(); CLK=1;_nop_();_nop_(); if(CH==0) { CLK=0;DIO=0;_nop_();_nop_();CLK=1;DIO=1;_nop_();_nop_(); } if(CH==1) { CLK=0;DIO=1;_nop_();_nop_();CLK=1;DIO=0;_nop_();_nop_(); } CLK=0;DIO=1;_nop_();_nop_(); for(i=0;i<8;i++) { CLK=1;_nop_();_nop_(); CLK=0;_nop_();_nop_(); dat1=dat1<<1|DIO; } for(i=0;i<8;i++) { dat2=dat2|((uchar)(DIO)<<i); CLK=1;_nop_();_nop_(); CLK=0;_nop_();_nop_(); } CS=1; return(dat1==dat2)?dat1:0; }2.3顯示與報警模塊2.1.1液晶顯示模塊在采集到相關的數(shù)據(jù)之后,為了能讓人們親眼觀察到數(shù)據(jù)的變化,處理完的最終結果要通過LCD1602進行顯示,首先要對LCD進行初始化。初始化代碼如下:voidLCD1602_Init(){ lcdrw=0; lcden=0; Write_Cmd(0x38); Write_Cmd(0x0e); Write_Cmd(0x06); Write_Cmd(0x01); Write_Cmd(0x80); Write_Cmd(0x0c);}LCD1602顯示兩行數(shù)據(jù),上一行前面顯示煙霧濃度,然后緊鄰著顯示溫度,下一行前面顯示可燃氣體濃度,后面緊鄰著顯示濕度,在數(shù)值達到閾值時蜂鳴器發(fā)出報警聲。代碼如下:voidDisplay_00(void){ LCD1602_Show(0,0,"MQ-2:"); LCD1602_num(5,0,3,MQ_2); LCD1602_Show(8,0,"%"); LCD1602_Show(9,0,"WD:"); LCD1602_num(12,0,3,wendu); LCD1602_Show(15,0,"C"); LCD1602_Show(0,1,"MQ-5:"); LCD1602_num(5,1,3,MQ_5); LCD1602_Show(8,1,"%"); LCD1602_Show(9,1,"SD:"); LCD1602_num(12,1,3,shidu); LCD1602_Show(15,1,"%"); if(KEY1_num==1){KEY1_num=0;LCD1602_Rest();DisplayFlag=1;} if(KEY4_num==1){KEY4_num=0;LCD1602_Rest();DisplayFlag=4;} if((MQ_2>MQ_2Flag)||(MQ_5>MQ_5Flag)||(shidu>ShiduFlag)||(wendu>WenduFlag))FMQ=0; elseFMQ=1;}此外,對于閾值的調整也可以進行實時地顯示,代碼如下:對于煙霧濃度閾值的設置顯示如下:voidDisplay_01(void){ LCD1602_Show(0,0,"ThresholdSetting"); LCD1602_Show(0,1,"MQ-2:"); LCD1602_num(5,1,3,MQ_2Flag); LCD1602_Show(8,1,"%"); if(KEY2_num==1){MQ_2Flag=MQ_2Flag+1;KEY2_num=0;} if(KEY3_num==1){MQ_2Flag=MQ_2Flag-1;KEY3_num=0;}if(KEY1_num==1){LCD1602_Rest();DisplayFlag=0;KEY1_num=0;} if(KEY4_num==1){LCD1602_Rest();DisplayFlag=2;KEY4_num=0;} if(MQ_2Flag>100)MQ_2Flag=0; if(MQ_2Flag<0)MQ_2Flag=100; }對于溫度閾值的設置顯示如下:voidDisplay_03(void){ LCD1602_Show(0,0,"ThresholdSetting"); LCD1602_Show(0,1,"WD:"); LCD1602_num(3,1,3,WenduFlag); LCD1602_Show(6,1,"C"); if(KEY2_num==1){WenduFlag=WenduFlag+1;KEY2_num=0;} if(KEY3_num==1){WenduFlag=WenduFlag-1;KEY3_num=0;}if(KEY1_num==1){LCD1602_Rest();DisplayFlag=2;KEY1_num=0;} if(KEY4_num==1){LCD1602_Rest();DisplayFlag=4;KEY4_num=0;} if(WenduFlag>100)WenduFlag=0; if(WenduFlag<0)WenduFlag=100; }對于可燃氣體濃度閾值的設置顯示如下:voidDisplay_02(void){ LCD1602_Show(0,0,"ThresholdSetting"); LCD1602_Show(0,1,"MQ-5:"); LCD1602_num(5,1,3,MQ_5Flag); LCD1602_Show(8,1,"%"); if(KEY2_num==1){MQ_5Flag=MQ_5Flag+1;KEY2_num=0;} if(KEY3_num==1){MQ_5Flag=MQ_5Flag-1;KEY3_num=0;}if(KEY1_num==1){LCD1602_Rest();DisplayFlag=1;KEY1_num=0;} if(KEY4_num==1){LCD1602_Rest();DisplayFlag=3;KEY4_num=0;} if(MQ_5Flag>100)MQ_5Flag=0; if(MQ_5Flag<0)MQ_5Flag=100; }對于濕度閾值的設置顯示如下:voidDisplay_04(void){ LCD1602_Show(0,0,"ThresholdSetting"); LCD1602_Show(0,1,"SD:"); LCD1602_num(3,1,3,ShiduFlag); LCD1602_Show(6,1,"%"); if(KEY2_num==1){ShiduFlag=Shi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年格萊科技面試題及答案
- 2025年現(xiàn)代農業(yè)設施設備租賃與維護服務合同補充協(xié)議
- 2025年智慧社區(qū)安全防護產品試用合作協(xié)議
- 二零二五年個人自用房產租賃押金及借款協(xié)議書
- 2025年度水上樂園裝修與設備更新協(xié)議
- 2025年醫(yī)療器械全生命周期質量監(jiān)管與召回處理專項合同
- 2025年高品質住宅小區(qū)通風系統(tǒng)設計、施工及售后服務合同
- 2025年新型建筑材料包裝及安全運輸質量標準合同
- 2025年老舊小區(qū)改造工程監(jiān)理責任書
- 2025年國才考試試題及答案中級
- 現(xiàn)代教育技術(小學教育專業(yè))PPT完整全套教學課件
- 新高考人教版高中化學必修一全套課件
- 液壓與氣壓傳動
- 男性性功能障礙專家講座
- 外傷救護技術 三角巾包扎
- GB/T 603-2002化學試劑試驗方法中所用制劑及制品的制備
- GB/T 1040.3-2006塑料拉伸性能的測定第3部分:薄膜和薄片的試驗條件
- 做好迎接CNAS現(xiàn)場評審工作的培訓課件
- 完整的舊路改造施工程施工方案設計
- CorelDRAW-X4案例教程上電子教案課件
- 中藥熏洗法操作評分標準與流程
評論
0/150
提交評論