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