版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計說明書</b></p><p> 課程設(shè)計名稱: 測控系統(tǒng)原理與設(shè)計 </p><p> 課程設(shè)計題目:智能排氣扇</p><p> 學(xué) 院 名 稱: 工商學(xué)院 </p><p> 專業(yè):測控技術(shù)與儀器 班級: 1041班</p&g
2、t;<p> 測控系統(tǒng)原理與設(shè)計 課程設(shè)計任務(wù)書</p><p> 20 13 -20 14 學(xué)年 第 1 學(xué)期 </p><p><b> 智能排氣扇設(shè)計</b></p><p> 摘要:本智能排氣扇以STC12C5A60S2為核心控制單元,。采用抗干擾能力強(qiáng),溫濕度傳感器DHT11感知浴室溫度,結(jié)合煙霧傳感
3、器MQ-2感知浴室內(nèi)的有毒氣體并達(dá)到報警提示的目的,通過流量傳感器來反應(yīng)水流,通過光電傳感器來測試轉(zhuǎn)速。系統(tǒng)通過LED顯示了溫度、濕度,等實時信息反饋給使用者。使用者通過單片機(jī)上鍵盤實現(xiàn)排氣扇的顯示控制。</p><p><b> 目錄</b></p><p><b> 1前言5</b></p><p> 2.1
4、試驗任務(wù)6</p><p> 2.1總體系統(tǒng)設(shè)計6</p><p> 2.2微控制器方案7</p><p> 3 單元模塊設(shè)計8</p><p> 3.1單片機(jī)最小系統(tǒng)設(shè)計8</p><p> 3.2MQ-2煙霧傳感器11</p><p> 3.3DHT11濕度傳感器1
5、2</p><p> 3.4總體電路布線12</p><p> 3.5模塊連接圖14</p><p> 3.6流程圖....................................................................................16</p><p><b> 4調(diào)
6、試與仿真17</b></p><p> 5系統(tǒng)功能及參數(shù)18</p><p><b> 6設(shè)計總結(jié)19</b></p><p><b> 7 附錄</b></p><p> 附錄(一)................參考文獻(xiàn)........................
7、........................20 附錄(二).................實物硬件電路..............................................20</p><p> 附錄(三)................源代碼..........................................................
8、.30</p><p><b> 1前言</b></p><p> 隨著經(jīng)濟(jì)的發(fā)展,智能化漸漸步入普通百姓的家?,F(xiàn)在市場上的各類智能化產(chǎn)品可謂層出不窮,最常見的有智能電飯煲,智能電冰箱和智能洗衣機(jī)等。所謂的智能化,其目的在于增加人與機(jī)器的互動,降低功耗,提升效率,盡量達(dá)到以人為本的目的。而本小組的作品—“智能排氣扇”,就是遵循上述目的設(shè)計的。對于裝有熱水器的家庭來
9、說,排氣扇可謂必不可少的家電,然而它又卻常常被人們所忽略而缺少維護(hù)。一把積滿灰塵,隨時都有可能罷工的排氣扇,成了浴室的隱患。有鑒于此,本小組設(shè)計了智能排氣扇,它能夠?qū)ι热~轉(zhuǎn)速實時監(jiān)控,異常報警,對熱水開停檢測,自動運行和關(guān)閉。它的轉(zhuǎn)速根據(jù)浴室溫度而定,當(dāng)有有害氣體產(chǎn)生時,它能自動強(qiáng)制排氣。有了它,你在浴室里再也沒有后顧之憂。</p><p> 2 總體方案設(shè)計及選擇</p><p>&l
10、t;b> 2.1 試驗任務(wù)</b></p><p> 設(shè)計并制作一個浴室用智能排氣扇,能夠?qū)崿F(xiàn):自動檢測熱水的開/閉,相應(yīng)啟動或停止排氣扇工作;自動檢測煤氣是否有泄漏,相應(yīng)啟動或停止排氣扇工作;自動檢測室內(nèi)溫、濕度的高低,相應(yīng)控制排氣扇運轉(zhuǎn)的強(qiáng)弱。</p><p><b> 2.2總體系統(tǒng)設(shè)計</b></p><p>
11、 本排氣扇總體系統(tǒng)設(shè)計如上圖所示,由微控制器為核心,通過檢測傳感器來判斷排氣扇的工作狀態(tài)和獲取必要數(shù)據(jù),進(jìn)而控制電機(jī)的工作。穩(wěn)壓電源為整個系統(tǒng)提供穩(wěn)定的低壓直流電。排氣扇的人機(jī)交互由鍵盤和LED來完成。通過鍵盤,用戶能執(zhí)行基本的控制,而LED能把溫度,濕度 等基本信息反饋給用戶。</p><p><b> 2.3微控制器方案</b></p><p> 性能要求:(
12、1)較強(qiáng)的抗干擾能力(2)低功耗(3)硬件集成AD及PWM (4)較高處理速度(5)成本合理。</p><p> 方案比較:兩款單片機(jī)均能較好地實行上述要求(詳細(xì)電氣參數(shù)請參見附錄)但采用51內(nèi)核的STC12C5A08S2具有比ATmega16更穩(wěn)定的市場來源,更低的成本(前者的約為后者二分之一) 。最終決定采用STC12C5A08S2。</p><p><b> 3 單
13、元模塊設(shè)計</b></p><p> 3.1單片機(jī)最小系統(tǒng)設(shè)計</p><p> 本系統(tǒng)以STC12C5A08S2為核心控制單元其管腳與一般的51兼容,其主要特性如下:</p><p> 增強(qiáng)型51內(nèi)核,一個機(jī)器周期執(zhí)行一條指令。</p><p> 工作電壓5.5V~3.3V</p><p> 工
14、作頻率范圍0~35MHz</p><p> 8K ROM,256 RAM</p><p> 32個通用IO口,可推免輸出,電流達(dá)20ma</p><p> 支持ISP,IAP串口編程方式</p><p> 集成EPROOM,看門狗,內(nèi)部RC</p><p> 上電自動復(fù)位,掉電檢測</p>&l
15、t;p> 6路外部中斷,支持上升沿觸發(fā)</p><p><b> 2路8位PWM</b></p><p><b> 8路10位AD轉(zhuǎn)化</b></p><p> 其引腳如上圖所示,RXD,TXD為串口收發(fā)端,INT0,INT1為外部觸發(fā),WR,RD分別為外部寫選通,外部讀選通。P0,P1,P2,P3為輸入輸出
16、接口??稍O(shè)定為四種模式:準(zhǔn)雙向口,推免,高阻,開漏。P1口第二功能為AD口和ISP下載口P0口自帶上拉電阻。XTAL2</p><p> XTAL1為晶振引腳。</p><p> 最小系統(tǒng)電路:C3與R1構(gòu)成上電復(fù)位電路,XTAL1,XTAL2與晶振相連,頻率為12MHz,C1,C2為起振電容EA接正極,以保證對內(nèi)部ROM編程。電源電壓為直流5V。晶振頻率為12MHz。</p&g
17、t;<p> 3.3 MQ-2煙霧傳感器</p><p><b> 標(biāo)準(zhǔn)工作條件:</b></p><p> H為加熱電阻絲引腳。RL為負(fù)載電阻,與AB串聯(lián),當(dāng)檢查到有害器體時,AB兩端的阻值發(fā)生變化,引起電壓變化,再經(jīng)由單片機(jī)AD口檢測。要注意的是,MQ-2需要一定的預(yù)熱時間,剛開機(jī)時不能馬上讀取數(shù)據(jù),否則會出錯。此外,MQ-2受濕度影響比較大,
18、在浴室使用時必需加上適當(dāng)?shù)姆莱贝胧?lt;/p><p> 靈敏度特性曲線圖溫度:20℃相對濕度:65%、</p><p><b> 氧氣濃度:21% </b></p><p><b> RL=5kΩ </b></p><p> 3.4DHT11溫濕度傳感器</p><p&g
19、t; DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機(jī)相連接。每個DHT11傳感器都在濕度校驗室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行口,較小的體積、較低的功耗,信號傳輸距離可達(dá)20米。</p><p> DHT11的供電電壓為3-5.
20、5V。傳感器上電后,要等待1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個100nF 的電容,用以去耦濾波。</p><p> 由于DHT11的溫度測量只能精確到個位,而實際浴室溫度變化比較小,很難通過DHT11的變化控制PWM的占空比,故本設(shè)計只采用DHT11的濕度傳感器,而溫度的測量則交由DS18B20實現(xiàn)。</p><p><b>
21、 3.5總體電路布線</b></p><p><b> 圖1</b></p><p><b> 圖2</b></p><p> 單片機(jī)外圍電路如上圖(1)所示,P2口連接LED1602液晶顯。示S1到S6為六個獨立按鈕,用來調(diào)節(jié)排氣扇的轉(zhuǎn)速及關(guān)機(jī)延時。圖(2)所示為各傳感器接線電路圖,依次分別為溫度傳感
22、器、溫濕度傳感器、煙霧傳感器以及蜂鳴器。</p><p><b> 3.6模塊連接圖</b></p><p> 數(shù)字信號 模擬信號</p><p> 數(shù)字信號 數(shù)字信號</p><p> 脈沖信號
23、 數(shù)字信號</p><p> 數(shù)字信號 脈沖信號 </p><p> 脈沖信號 </p><p> 排氣扇以STC12C5A08S2為核心處理各種信號,信號類型有數(shù)字信號,模擬信號以及脈沖信號。模擬信號由單片機(jī)AD讀取,脈沖信號由外部
24、中斷捕捉。電源模塊為單片機(jī)及各傳感器模塊提供穩(wěn)定低壓 </p><p> 3.7 流程圖 </p><p><b> </b></p><p&
25、gt;<b> 4調(diào)試與仿真</b></p><p> 排氣扇調(diào)試必須獲得的參數(shù)有</p><p> 開機(jī)后煙霧傳感器穩(wěn)定所需要的時間</p><p> 穩(wěn)定后無煙霧時煙霧傳感器電壓</p><p> 穩(wěn)定后有煙霧時煙霧傳感器電壓</p><p> 電風(fēng)扇的最大及最小轉(zhuǎn)</p&g
26、t;<p> 調(diào)試過程:用手溫替代水溫和空氣的溫度,用打火機(jī)氣體代替浴室的有害器體。通過模擬浴室環(huán)境進(jìn)行試調(diào)。數(shù)據(jù)傳感器經(jīng)由排氣扇的液晶顯示,為程序的試調(diào)提供依據(jù)。</p><p> 上圖為無級調(diào)速電路在Multisim輸出波形的仿真結(jié)果。一圖的導(dǎo)通角較大,此時風(fēng)扇轉(zhuǎn)速較快,二圖導(dǎo)通角較小,轉(zhuǎn)速較慢。</p><p><b> 5系統(tǒng)功能及參數(shù)</b&g
27、t;</p><p> 本排氣扇所能實現(xiàn)的功能有:</p><p> ?。?)能夠?qū)κ覂?nèi)的溫度、濕度進(jìn)行檢測并顯示。</p><p> (2)熱水開啟的時候,根據(jù)室溫的高低控制排氣扇運轉(zhuǎn)的強(qiáng)弱;熱水關(guān)閉的時候,排氣扇能夠根據(jù)設(shè)定的延時時間停止。</p><p><b> 提高要求:</b></p>&
28、lt;p> 能夠?qū)κ覂?nèi)的一氧化碳等有毒氣體進(jìn)行檢測報警,并啟動排氣扇強(qiáng)制排氣。</p><p> 能夠?qū)ε艢馍鹊霓D(zhuǎn)速進(jìn)行檢測并顯示。</p><p> 特殊情況下能夠遙控啟動或停止排氣扇工作。 </p><p><b> 其它創(chuàng)新性設(shè)計。</b></p><p><b> 設(shè)計成本控制。<
29、/b></p><p><b> 性能參數(shù):</b></p><p> 煙霧傳感器有效范圍:0~2m</p><p> 濕度傳感器精確度:5%</p><p> 溫度傳感器精確度:0.1攝氏度</p><p><b> 系統(tǒng)功耗;1.5w</b></p&
30、gt;<p><b> 電機(jī)功率:30W</b></p><p> 電機(jī)轉(zhuǎn)速:1000~2500r/min</p><p> 電機(jī)轉(zhuǎn)速的調(diào)節(jié)范圍:0~+5攝氏度</p><p><b> 6設(shè)計總結(jié)</b></p><p> 本設(shè)計所用到的傳感器數(shù)目及種類比較多,所以傳感器的
31、選取非常重要。好的傳感器能節(jié)省不少調(diào)試的時間,增加系統(tǒng)的穩(wěn)定性。無級調(diào)速是本設(shè)計電路中較難的部分,因為單片機(jī)必須準(zhǔn)確地控制排氣扇的轉(zhuǎn)速且和強(qiáng)電電路實現(xiàn)電氣隔離。一般家用電風(fēng)扇的無級調(diào)速是通過改變連接在晶閘管控制極的電容充放電時間來控制導(dǎo)通角,而本設(shè)計采用單片機(jī)直接控制導(dǎo)通角,這樣不僅能使調(diào)速更加精確,而且能充分利用單片機(jī)硬件資源。</p><p> 本設(shè)計涉及到弱電對強(qiáng)電的控制,除了做好必要的隔離外,強(qiáng)電產(chǎn)生的
32、干擾必須考慮。在調(diào)試過程中我們遇到這樣的問題,當(dāng)電機(jī)打開后,轉(zhuǎn)速測量就會出錯,比正常值高出許多。再三查錯后我們發(fā)現(xiàn),由于模塊間的連線較長,電機(jī)的轉(zhuǎn)動在連接到霍爾傳感器的外部中斷引腳產(chǎn)生了嚴(yán)重的干擾,產(chǎn)生了額外的計數(shù)。我們通過縮短引線,并接濾波電容,很好地解決這個問題。</p><p> 首先,我們學(xué)會了如何分工合作,如何把程序設(shè)計、電路設(shè)計、焊接安裝和論文設(shè)計合理地分配,發(fā)揮各人特長。其次,在實踐中我們獲取了很
33、多電子設(shè)計的經(jīng)驗,尤其增長了對各種傳感器的認(rèn)識。為了寫好傳感器的通信協(xié)議,為了協(xié)調(diào)各模塊的工作,為了解決各種各樣意料之外的問題,我們翻遍了有關(guān)書籍,我們付出了很多,但我們收獲了很多。我們知道的可能并不多,可我們有著學(xué)習(xí)的熱誠和精力。</p><p> 當(dāng)然,本設(shè)計還有很多需要改進(jìn)的地方。例如煙霧傳感器工作時需要先預(yù)熱,功耗大、靈敏度低,且不穩(wěn)定,給程序的編寫帶來了極大的麻煩。若改為離子煙霧傳感器,則能獲得更好的
34、效果。再如本設(shè)計模塊間的連接采用杜邦線,線長且亂,容易受干擾而出錯,若整個電路由PCB板來制作,則穩(wěn)定性會大大加強(qiáng)。</p><p><b> 附錄</b></p><p><b> 參考文獻(xiàn)</b></p><p> 參考文獻(xiàn):《C程序設(shè)計》、《MCS—51單片機(jī)應(yīng)用設(shè)計》、</p><p>
35、; 《Altium Designer 實用教程》、《AVR嵌入式系統(tǒng)設(shè)計》</p><p><b> 附錄(二)</b></p><p><b> 實物硬件</b></p><p><b> 附錄(三)源代碼</b></p><p> //**************
36、**************************************************//</p><p> // DHT11使用范例 </p><p> //單片機(jī) :STC12c5a </p><p> // 功能 :串口發(fā)送溫濕度數(shù)據(jù) 晶振 11.0592M 波特率 9600 </p><
37、;p><b> //硬件連接:</b></p><p> //P2.0口為通訊口連接DHT11,DHT11的電源和地連接單片機(jī)的電源和地,,,,,,,,,,,,,,,,,,,,,,,,,,,各個模塊都要共地</p><p> //pwm輸出口為p1.4 會有輕微嗡嗡的響聲 繼電器與p1.4連接的原因 ,,,,,,,,,,,,,,,,,,,,,,,,,,&
38、lt;/p><p> //p3.4為脈沖累加口 接在排氣扇轉(zhuǎn)速的測定,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,</p><p> //P1^7為ad輸入端 一氧化碳 檢測到高電平報警 如果不需要報警直接接地,,,,,,,,,,,,,,,,,,,,,,,</p><p> //p0口8位7斷碼顯示數(shù)據(jù)</p><p
39、> //p1.0~p1.3為7斷碼顯示位控制</p><p> //p3.7溫度控制按鍵</p><p> //p3.6濕度控制按鍵</p><p> //p3.5流量控制按鍵 </p><p> //流量傳感器的輸出端接p1.6口 p2.5口的燈用來顯示有無流量流出、、、、、。,,,,,,,,,,,,,,</p&
40、gt;<p> //****************************************************************//</p><p><b> //</b></p><p> #include <reg52.h></p><p> #include <intrins.h
41、> </p><p> ////////////</p><p> //////////////////////測試端口</p><p> sbit l0=P2^1;//7段碼顯示控制位</p><p> sbit l1=P2^2;//7段碼顯示控制位</p><p> sbit l2=P2^3;//7
42、段碼顯示控制位</p><p> sbit l3=P2^4;//7段碼顯示控制位</p><p> sbit l4=P2^5;//7段碼顯示控制位</p><p> sbit l5=P2^6;//7段碼顯示控制位</p><p> ///////////////////////////////////////////////</
43、p><p> ///////////////////////////////////////</p><p> sbit b0=P1^0;//7段碼顯示控制位</p><p> sbit b1=P1^1;//7段碼顯示控制位</p><p> sbit b2=P1^2;//7段碼顯示控制位</p><p> sb
44、it dd=P1^6;// </p><p> sbit fengmingqi=P1^5;// </p><p> sbit wen_du=P3^7;// 顯示控制</p><p> sbit shi_du=P3^6;//</p><p> sbit liuliang=P3^5;// </p><p> //
45、unsigned char code shudian[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};</p><p> unsigned char code shu[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x90,0x90,0x90,0x90,0x90,0x90};</
46、p><p> char set=0,v,dv,cv,mv,kong;</p><p> unsigned int WENDU,SHIDU,maichong,end=1,dingshizhi=0,dingshizhi1=0,dianyashuju,ll,gg; </p><p> ///////////////////////////////////////////
47、</p><p> //////////////////////////////////////////////</p><p> ///////////////////////PWM模塊 P1.4</p><p> //#define PWM_RCCAP0H</p><p> #define PWM_LCCAP1H</p&
48、gt;<p> sfr CCON = 0xD8; //PCA控制寄存器</p><p> sfr CMOD = 0xD9; //PCA模式寄存器</p><p> sfr CCAPM0 = 0xDA; //PCA模塊0模式寄存器 //模塊0對應(yīng)P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列) </p><
49、p> sfr CCAPM1 = 0xDB; //PCA模塊1模式寄存器 //模塊1對應(yīng)P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)</p><p> sfr CL = 0xE9; //PCA 定時寄存器 低位</p><p> sfr CH = 0xF9; //PCA 定時寄存器 高位</p><p
50、> sfr CCAP0H = 0xFA; //PCA模塊0的 捕獲寄存器 高位</p><p> sfr CCAP1H = 0xFB; //PCA模塊1的 捕獲寄存器 高位</p><p> sbit CR = 0xDE; //PCA計數(shù)器 運行控制位</p><p> void PWM_init()</p>&
51、lt;p><b> {</b></p><p> CCON = 0x04;</p><p> CH = CL = 0x00;</p><p> CMOD = 0x00;</p><p> //CCAPM0 = 0X42; //8位PWM輸出,無中斷</p><
52、p> CCAPM1 = 0X42; </p><p><b> CR = 1;</b></p><p> //PWM_R=0;</p><p><b> PWM_L=0;</b></p><p><b> }</b></p><p>
53、 //////////////////////</p><p> //////////////////////AD模塊</p><p> //---------與STC12C5A32S2單片機(jī)ADC相關(guān)的寄存器聲明------------------</p><p> sfr P1ASF =0x9d;
54、 //P1口模數(shù)轉(zhuǎn)換功能控制寄存器</p><p> sfr ADC_CONTR =0xbc; //AD轉(zhuǎn)換控制寄存器</p><p> sfr ADC_RES =0xbd; //AD轉(zhuǎn)換結(jié)果寄存器高</p&
55、gt;<p> sfr ADC_RESL =0xbe; //AD轉(zhuǎn)換結(jié)果寄存器低</p><p> sfr AURX1 =0xa2; //AD轉(zhuǎn)換結(jié)果存儲方式控制位//------------------------------------
56、------------------------------</p><p> void AD_caiji()//AD初始化</p><p><b> {</b></p><p> P1ASF=0x80;//P1^7為ad輸入端,可以選擇P1其他端口輸入,也可同時使用多個但要動態(tài)掃描</p><p> ADC_C
57、ONTR=0x8f;//選擇轉(zhuǎn)換速度,轉(zhuǎn)換電壓源啟動,轉(zhuǎn)換輸入腳,轉(zhuǎn)換啟動與終止</p><p> for(kong=0;kong<5;kong++);</p><p> AURX1=0;//選擇轉(zhuǎn)換格式</p><p> dianyashuju=ADC_RES*4+ADC_RESL;//轉(zhuǎn)換結(jié)果方式選擇,10位數(shù)全要</p><p&
58、gt;<b> }</b></p><p> //////////////////////////////////////////////////////////</p><p> ////////////////////////////////////////////////////////////</p><p> ////////
59、/////////////////////////////dht11驅(qū)動部分</p><p> /////////////////////////////////////////////////////////////</p><p> typedef unsigned char U8; /* 無符號8位整型變量 */</p><p>
60、typedef signed char S8; /* 有符號8位整型變量 */</p><p> typedef unsigned int U16; /* 無符號16位整型變量 */</p><p> typedef signed int S16; /* 有符號16位整型變量 */</p><
61、;p> typedef unsigned long U32; /* 無符號32位整型變量 */</p><p> typedef signed long S32; /* 有符號32位整型變量 */</p><p> typedef float F32; /* 單精度浮點數(shù)(32位長度) */</p
62、><p> typedef double F64; /* 雙精度浮點數(shù)(64位長度) */</p><p><b> //</b></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p&
63、gt;<p> #define Data_0_time 4</p><p> //----------------------------------------------//</p><p> //----------------IO口定義區(qū)--------------------//</p><p> //-----------
64、-----------------------------------//</p><p> sbit D = P2^0 ;//////////////////////////////////////////////////////////////////</p><p> //----------------------------------------------//<
65、/p><p> //----------------定義區(qū)--------------------//</p><p> //----------------------------------------------//</p><p> uint count_ov=0,count_now,motor_speed;</p><p> u
66、char time0_count=0,pwm_set=2,flag_18b20;</p><p> uchar temp_high,temp_low;</p><p> uint temp_yuanma,temp_zheng,temp_xiao;</p><p> uint show_shi,show_ge;</p><p><b
67、> U8 FLAG;</b></p><p> U8 shuju;</p><p><b> U8 temp;</b></p><p> U8 TH,TL,RH,RL;</p><p> U8 TH_temp,TL_temp,RH_temp,RL_temp,check_temp;&l
68、t;/p><p> U8 comdata;</p><p> void Delay_40us(void)//延時40us</p><p><b> {</b></p><p><b> U8 i;</b></p><p> for(i=0;i<72;i
69、++);</p><p><b> }</b></p><p> /************延時函數(shù)************/</p><p> void Delay_nms(unsigned char n)// 延時n ms</p><p><b> {</b></p>
70、<p><b> U8 i,j;</b></p><p> for(j=n;j>0;j--)</p><p><b> {</b></p><p> for(i=0;i<180;i++);</p><p><b> }</b></p>
71、;<p><b> }</b></p><p> /************DHT11采集數(shù)據(jù)************/</p><p> void DATA_R(void)</p><p><b> {</b></p><p><b> U8 i;</b&g
72、t;</p><p> for(i=0;i<8;i++)//每次采集8位數(shù)據(jù)</p><p><b> {</b></p><p><b> FLAG=2;</b></p><p> while((!D)&&FLAG++);//拉低50us 為接受一bi
73、t數(shù)據(jù)作準(zhǔn)備</p><p> D=1;//電平已拉高,這句可不要</p><p> temp=0;//默認(rèn)為低電平,即"0"</p><p> Delay_40us();//延時40s后再測</p><p> if(D) temp=1;//如果40us后仍是高電平
74、,是"1"</p><p> comdata<<=1;</p><p> comdata|=temp;//將值賦給U8comdata,每次賦一位</p><p><b> FLAG=2;</b></p><p> while((D)&&FLAG+
75、+);//延時等待電位降低進(jìn)行下一次循環(huán)</p><p><b> }</b></p><p><b> }</b></p><p> /************DHT11數(shù)據(jù)校驗************/</p><p> void DATA_C(void)</p>&
76、lt;p><b> {</b></p><p><b> D=0;</b></p><p> Delay_nms(180);//主機(jī)拉低電位180ms</p><p><b> D=1;</b></p><p> Delay_40us();
77、//主機(jī)拉高電位40us</p><p><b> D=1;</b></p><p> if(!P)//如果電位為低,表明從機(jī)響應(yīng)信號已到達(dá)</p><p><b> {</b></p><p><b> FLAG=2;</b></p>
78、<p> while((!D)&&FLAG++);//判斷從機(jī)拉低電位80us</p><p><b> FLAG=2;</b></p><p> while((D)&&FLAG++);//判斷從機(jī)拉高電位80us,準(zhǔn)備采集數(shù)據(jù)</p><p><b> DATA_R();
79、</b></p><p> RH_temp=comdata;//濕度高8位</p><p><b> DATA_R();</b></p><p> RL_temp=comdata;//濕度低8位</p><p><b> DATA_R();</b></p&g
80、t;<p> TH_temp=comdata;//溫度高8位</p><p><b> DATA_R();</b></p><p> TL_temp=comdata;//溫度低8位</p><p><b> DATA_R();</b></p><p> che
81、ck_temp=comdata;//校驗8位</p><p><b> D=1;</b></p><p> temp=(TH_temp+TL_temp+RH_temp+RL_temp);</p><p> if(temp==check_temp)//數(shù)據(jù)校驗 如果正確進(jìn)行下一步</p><p><
82、;b> {</b></p><p> RH=RH_temp;</p><p> RL=RL_temp;</p><p> TH=TH_temp;</p><p> TL=TL_temp;</p><p><b> }</b></p><p>&
83、lt;b> }</b></p><p><b> }</b></p><p> ////////////////////////////////////////////////////////</p><p> //////////////////////////////////////</p><
84、p><b> //數(shù)據(jù)處理部分</b></p><p> //////////////////////////////////////////</p><p> //////////////////////////////////////////////////</p><p> void DHT11_SHUJUCHULI()&l
85、t;/p><p><b> { </b></p><p><b> DATA_C();</b></p><p> WENDU=RH;//*256+U8RH_data_L;</p><p> PWM_L=WENDU;//////////////////////////溫度越高轉(zhuǎn)速越快<
86、/p><p> SHIDU=TH;//*256+U8T_data_L; </p><p><b> }</b></p><p> uint maichongjishu()</p><p><b> {</b></p><p> uint jishuzhi;<
87、/p><p> if(end==1){end--; EA = 1; TL0=0;TH0=0; TR0=1;TMOD=0X05;}//</p><p> jishuzhi=TH0*256+TL0;</p><p><b> TL0=0;</b></p><p><b> TH0=0;</b><
88、;/p><p> return jishuzhi;</p><p><b> }</b></p><p> ///////////////////////////////////////////////////////////</p><p> //////////////////////////////////&l
89、t;/p><p><b> //顯示部分</b></p><p> ////////////////////////////</p><p> ///////////////////////////</p><p> void delay11(uint z)</p><p><b>
90、 {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> voi
91、d xianshi()//7段碼顯示</p><p><b> {</b></p><p><b> int j;</b></p><p> if(wen_du==0)set=0;else if(shi_du==0)set=1;else if(liuliang==0)set=2;</p><p&g
92、t; switch (set)</p><p><b> { </b></p><p> case 0: ///數(shù)據(jù)的處理根據(jù)情況改變 需要變</p><p> v=WENDU/100;</p><p> dv=WENDU%100/10;</p><p> cv=WENDU%10;&l
93、t;/p><p><b> break;</b></p><p> case 1: ///數(shù)據(jù)的處理根據(jù)情況改變 需要變</p><p> v=SHIDU/100;</p><p> dv=SHIDU%100/10;</p><p> cv=SHIDU%10;</p><
94、p><b> break;</b></p><p> case 2: ///數(shù)據(jù)的處理根據(jù)情況改變 需要變</p><p> // maichong=maichongjishu()*60/98;</p><p> v=maichong/100;</p><p> dv=maichong%100/10;&l
95、t;/p><p> cv=maichong%10;</p><p><b> break;</b></p><p><b> }</b></p><p> j=200;//1.2秒掃描一次</p><p> if(v>9)v=9;if(dv>9)dv=9;i
96、f(cv>9)cv=9;//限制輸出</p><p><b> while(j)</b></p><p><b> {</b></p><p><b> j--;</b></p><p> P0=shu[v];</p><p><b&
97、gt; b0=0;</b></p><p> delay11(2);</p><p><b> b0=1;</b></p><p> P0=shu[dv];</p><p><b> b1=0;</b></p><p> delay11(2);<
98、/p><p><b> b1=1;</b></p><p> P0=shu[cv];</p><p><b> b2=0;</b></p><p> delay11(2);</p><p><b> b2=1;</b></p><
99、;p><b> }</b></p><p><b> }</b></p><p> /////////////////////////////////</p><p> ///////////////////////////////////////////////////</p><p&g
100、t; //----------------------------------------------</p><p> //main()功能描述: AT89C51 11.0592MHz 串口發(fā) </p><p> //送溫濕度數(shù)據(jù),波特率 9600 </p><p> //---------------------------------------
101、-------</p><p> void main()</p><p><b> {</b></p><p> PWM_init();///////////////////PWM初始化</p><p> /////////////////////////////////////</p><p
102、><b> EA=1;</b></p><p> TMOD=0x05;</p><p> TH1=(65536-50000)/256;</p><p> TL1=(65536-50000)%256;</p><p><b> ET1=1;</b></p><p&g
103、t;<b> TR1=1;</b></p><p><b> while(1)</b></p><p><b> { </b></p><p> xianshi(); </p><p> AD_caiji();</p><p> if
104、(dianyashuju>500)</p><p><b> {</b></p><p> fengmingqi=0;PWM_L=255;</p><p><b> }</b></p><p> else fengmingqi=1;</p><p> if(l
105、l==dd){gg++;if(gg>60000)l4=1;}</p><p> else{l4=~l4;gg=0;}</p><p><b> ll=dd;</b></p><p> //if(TL0>50)l5=~l5;脈沖測試</p><p><b> } </b><
106、/p><p><b> }</b></p><p> void RSINTR() interrupt 3 </p><p><b> {</b></p><p><b> TR1=0; </b></p><p> if(dingshizhi==(1
107、60))////2秒定時 流量控制</p><p><b> { </b></p><p> maichong=maichongjishu()/7;//脈沖 ////////////////////////////////////</p><p> dingshizhi=0;</p><p><b>
108、 }</b></p><p> if(dingshizhi1==(800))////5秒定時</p><p><b> { </b></p><p> DHT11_SHUJUCHULI();//溫度值和濕度值控制</p><p> dingshizhi1=0;</p><p>
109、;<b> }</b></p><p> dingshizhi++;dingshizhi1++;</p><p> TH1=(65536-50000)/256;</p><p> TL1=(65536-50000)%256;</p><p><b> TR1=1;}</b></p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能排氣扇課程設(shè)計
- 課程設(shè)計-定時排氣扇設(shè)計
- 自動定時排氣扇 課程設(shè)計
- 自動定時排氣扇課程設(shè)計 (2)
- 定時排氣扇的設(shè)計
- 定時排氣扇的設(shè)計
- 排氣扇自動開啟電路設(shè)計
- 排氣扇自動開啟電路設(shè)計
- 微機(jī)原理壓力測控系統(tǒng)課程設(shè)計--壓力測控系統(tǒng)設(shè)計
- 多路智能溫度測控系統(tǒng)設(shè)計_課程設(shè)計
- 微機(jī)原理課程設(shè)計--- 溫度測控系統(tǒng)
- 微機(jī)原理壓力測控系統(tǒng)課程設(shè)計
- 換氣扇十大品牌-金羚排氣扇
- 智能排氣扇開題報告
- 測控系統(tǒng)課程設(shè)計
- 精密測控與系統(tǒng)課程設(shè)計
- 電子技術(shù)課程設(shè)計--多路智能溫度測控系統(tǒng)設(shè)計
- 測控原理課程設(shè)計--時鐘計時器的設(shè)計
- dsp課程設(shè)計--家庭遠(yuǎn)程測控系統(tǒng)設(shè)計
- 生產(chǎn)車間廠房安裝水冷空調(diào)及更換負(fù)壓排氣扇
評論
0/150
提交評論