2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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>  2014年 1月6日</p><p>  測控系統(tǒng)原理與設(shè)計 課程設(shè)計任務(wù)書</p><p> 

2、 20 13 -20 14 學(xué)年 第 1 學(xué)期 </p><p><b>  智能排氣扇設(shè)計</b></p><p>  摘要:本智能排氣扇以STC12C5A60S2為核心控制單元,。采用抗干擾能力強(qiáng),溫濕度傳感器DHT11感知浴室溫度,結(jié)合煙霧傳感器MQ-2感知浴室內(nèi)的有毒氣體并達(dá)到報警提示的目的,通過流量傳感器來反應(yīng)水流,通過光電傳感器來測試轉(zhuǎn)速。系統(tǒng)通過LED

3、顯示了溫度、濕度,等實時信息反饋給使用者。使用者通過單片機(jī)上鍵盤實現(xiàn)排氣扇的顯示控制。</p><p><b>  目錄</b></p><p><b>  1前言5</b></p><p>  2.1 試驗任務(wù)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單片機(jī)最小系統(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>  附錄(一)................參考文獻(xiàn)................................................20 附錄(二)...............

7、..實物硬件電路..............................................20</p><p>  附錄(三)................源代碼...........................................................30</p><p><b>  1前言</b></p>

8、<p>  隨著經(jīng)濟(jì)的發(fā)展,智能化漸漸步入普通百姓的家?,F(xiàn)在市場上的各類智能化產(chǎn)品可謂層出不窮,最常見的有智能電飯煲,智能電冰箱和智能洗衣機(jī)等。所謂的智能化,其目的在于增加人與機(jī)器的互動,降低功耗,提升效率,盡量達(dá)到以人為本的目的。而本小組的作品—“智能排氣扇”,就是遵循上述目的設(shè)計的。對于裝有熱水器的家庭來說,排氣扇可謂必不可少的家電,然而它又卻常常被人們所忽略而缺少維護(hù)。一把積滿灰塵,隨時都有可能罷工的排氣扇,成了浴室的

9、隱患。有鑒于此,本小組設(shè)計了智能排氣扇,它能夠?qū)ι热~轉(zhuǎn)速實時監(jiān)控,異常報警,對熱水開停檢測,自動運行和關(guān)閉。它的轉(zhuǎn)速根據(jù)浴室溫度而定,當(dāng)有有害氣體產(chǎn)生時,它能自動強(qiáng)制排氣。有了它,你在浴室里再也沒有后顧之憂。</p><p>  2 總體方案設(shè)計及選擇</p><p><b>  2.1 試驗任務(wù)</b></p><p>  設(shè)計并制作一個浴室

10、用智能排氣扇,能夠?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>  本排氣扇總體系統(tǒng)設(shè)計如上圖所示,由微控制器為核心,通過檢測傳感器來判斷排氣扇的工作狀態(tài)和獲取必要數(shù)據(jù),進(jìn)而控制電機(jī)的

11、工作。穩(wěn)壓電源為整個系統(tǒng)提供穩(wěn)定的低壓直流電。排氣扇的人機(jī)交互由鍵盤和LED來完成。通過鍵盤,用戶能執(zhí)行基本的控制,而LED能把溫度,濕度 等基本信息反饋給用戶。</p><p><b>  2.3微控制器方案</b></p><p>  性能要求:(1)較強(qiáng)的抗干擾能力(2)低功耗(3)硬件集成AD及PWM (4)較高處理速度(5)成本合理。</p>

12、<p>  方案比較:兩款單片機(jī)均能較好地實行上述要求(詳細(xì)電氣參數(shù)請參見附錄)但采用51內(nèi)核的STC12C5A08S2具有比ATmega16更穩(wěn)定的市場來源,更低的成本(前者的約為后者二分之一) 。最終決定采用STC12C5A08S2。</p><p><b>  3 單元模塊設(shè)計</b></p><p>  3.1單片機(jī)最小系統(tǒng)設(shè)計</p>

13、;<p>  本系統(tǒng)以STC12C5A08S2為核心控制單元其管腳與一般的51兼容,其主要特性如下:</p><p>  增強(qiáng)型51內(nèi)核,一個機(jī)器周期執(zhí)行一條指令。</p><p>  工作電壓5.5V~3.3V</p><p>  工作頻率范圍0~35MHz</p><p>  8K ROM,256 RAM</p>

14、<p>  32個通用IO口,可推免輸出,電流達(dá)20ma</p><p>  支持ISP,IAP串口編程方式</p><p>  集成EPROOM,看門狗,內(nèi)部RC</p><p>  上電自動復(fù)位,掉電檢測</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è)定為四種模式:準(zhǔn)雙向口,推免,高阻,開漏。P1口第二功能為AD口和ISP下載口P0口自帶上拉電阻。XTAL2

16、</p><p>  XTAL1為晶振引腳。</p><p>  最小系統(tǒng)電路:C3與R1構(gòu)成上電復(fù)位電路,XTAL1,XTAL2與晶振相連,頻率為12MHz,C1,C2為起振電容EA接正極,以保證對內(nèi)部ROM編程。電源電壓為直流5V。晶振頻率為12MHz。</p><p>  3.3 MQ-2煙霧傳感器</p><p><b> 

17、 標(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受濕度影響比較大,在浴室使用時必需加上適當(dāng)?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ù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。傳感器包括一個電阻式感濕元件和一個N

19、TC測溫元件,并與一個高性能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.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>  單片機(jī)外圍電路如上圖(1)所示,P2口連接LED1602液晶顯。示S1到S6為六個獨立按鈕,用來調(diào)節(jié)排氣扇的轉(zhuǎn)速及關(guān)機(jī)延時。圖(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ù)字信號,模擬信號以及脈沖信號。模擬信號由單片機(jī)AD讀取,脈沖信號由外部中斷捕捉。電源模塊為單片機(jī)及各傳感器模塊提供穩(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>  開機(jī)后煙霧傳感器穩(wěn)定所需要的時間</p><p>  穩(wěn)定后無煙霧時煙霧傳感器電壓</p><p>  穩(wěn)定后有煙霧時煙霧傳感器電壓</p><p>  電風(fēng)扇的最大及最小轉(zhuǎn)</p><p>  調(diào)試過程:用手溫替代水溫和空氣的溫度,用打火機(jī)氣體代替浴室的有害器體。通過模擬浴室環(huán)境進(jìn)

26、行試調(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></p><p>  本排氣扇所能實現(xiàn)的功能有:</p><p>

27、 ?。?)能夠?qū)κ覂?nèi)的溫度、濕度進(jìn)行檢測并顯示。</p><p> ?。?)熱水開啟的時候,根據(jù)室溫的高低控制排氣扇運轉(zhuǎn)的強(qiáng)弱;熱水關(guān)閉的時候,排氣扇能夠根據(jù)設(shè)定的延時時間停止。</p><p><b>  提高要求:</b></p><p>  能夠?qū)κ覂?nèi)的一氧化碳等有毒氣體進(jìn)行檢測報警,并啟動排氣扇強(qiáng)制排氣。</p><

28、p>  能夠?qū)ε艢馍鹊霓D(zhuǎn)速進(jì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>  電機(jī)功率:30W</b></p><

30、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ù)目及種類比較多,所以傳感器的選取非常重要。好的傳感器能節(jié)省不少調(diào)試的時間,增加系統(tǒng)的穩(wěn)定性。無級調(diào)速是本設(shè)計電路中較難的部分,因為單片機(jī)必須準(zhǔn)確地

31、控制排氣扇的轉(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)生的干擾必須考慮。在調(diào)試過程中我們遇到這樣的問題,當(dāng)電機(jī)打開后,轉(zhuǎn)速測量就會出錯,比正常值高出許多。再三查錯后我們發(fā)現(xiàn),由

32、于模塊間的連線較長,電機(jī)的轉(zhuǎn)動在連接到霍爾傳感器的外部中斷引腳產(chǎn)生了嚴(yán)重的干擾,產(chǎn)生了額外的計數(shù)。我們通過縮短引線,并接濾波電容,很好地解決這個問題。</p><p>  首先,我們學(xué)會了如何分工合作,如何把程序設(shè)計、電路設(shè)計、焊接安裝和論文設(shè)計合理地分配,發(fā)揮各人特長。其次,在實踐中我們獲取了很多電子設(shè)計的經(jīng)驗,尤其增長了對各種傳感器的認(rèn)識。為了寫好傳感器的通信協(xié)議,為了協(xié)調(diào)各模塊的工作,為了解決各種各樣意料之

33、外的問題,我們翻遍了有關(guān)書籍,我們付出了很多,但我們收獲了很多。我們知道的可能并不多,可我們有著學(xué)習(xí)的熱誠和精力。</p><p>  當(dāng)然,本設(shè)計還有很多需要改進(jìn)的地方。例如煙霧傳感器工作時需要先預(yù)熱,功耗大、靈敏度低,且不穩(wěn)定,給程序的編寫帶來了極大的麻煩。若改為離子煙霧傳感器,則能獲得更好的效果。再如本設(shè)計模塊間的連接采用杜邦線,線長且亂,容易受干擾而出錯,若整個電路由PCB板來制作,則穩(wěn)定性會大大加強(qiáng)。&

34、lt;/p><p><b>  附錄</b></p><p><b>  參考文獻(xiàn)</b></p><p>  參考文獻(xiàn):《C程序設(shè)計》、《MCS—51單片機(jī)應(yīng)用設(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>  //單片機(jī) :STC12c5a </p><p>  // 功能 :串口發(fā)送溫濕度數(shù)據(jù) 晶振 11.0592M 波特率 9600 </p><p><b>  //硬件連接:</b></p><p>  //

37、P2.0口為通訊口連接DHT11,DHT11的電源和地連接單片機(jī)的電源和地,,,,,,,,,,,,,,,,,,,,,,,,,,,各個模塊都要共地</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對應(yīng)P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列) </p><p>  sfr CCAPM1 = 0xDB; //PCA模塊1模式寄存器 //模塊1對應(yīng)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單片機(jī)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ù)作準(zhǔn)備</p><p>  D=1;//電平已拉高,這句可不要</p

73、><p>  temp=0;//默認(rèn)為低電平,即"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++);//延時等待電位降低進(jìn)行下一次循環(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);//主機(jī)拉低電位180ms</p><p><b>  D=1;</b></p><p>  Delay_40us();//主機(jī)拉高電位40us</p><p><b>  D=1;</b>

77、</p><p>  if(!P)//如果電位為低,表明從機(jī)響應(yīng)信號已到達(dá)</p><p><b>  {</b></p><p><b>  FLAG=2;</b></p><p>  while((!D)&&FLAG++);//判斷從機(jī)拉低電位80us<

78、;/p><p><b>  FLAG=2;</b></p><p>  while((D)&&FLAG++);//判斷從機(jī)拉高電位80us,準(zhǔn)備采集數(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ù)校驗 如果正確進(jìn)行下一步</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)容里面會有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論