版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計說明書</b></p><p> 課程設計名稱: 測控系統(tǒng)原理與設計 </p><p> 課程設計題目:智能排氣扇</p><p> 2014年 1月6日</p><p> 測控系統(tǒng)原理與設計 課程設計任務書</p><p>
2、 20 13 -20 14 學年 第 1 學期 </p><p><b> 智能排氣扇設計</b></p><p> 摘要:本智能排氣扇以STC12C5A60S2為核心控制單元,。采用抗干擾能力強,溫濕度傳感器DHT11感知浴室溫度,結合煙霧傳感器MQ-2感知浴室內的有毒氣體并達到報警提示的目的,通過流量傳感器來反應水流,通過光電傳感器來測試轉速。系統(tǒng)通過LED
3、顯示了溫度、濕度,等實時信息反饋給使用者。使用者通過單片機上鍵盤實現排氣扇的顯示控制。</p><p><b> 目錄</b></p><p><b> 1前言5</b></p><p> 2.1 試驗任務6</p><p> 2.1總體系統(tǒng)設計6</p><p&g
4、t; 2.2微控制器方案7</p><p> 3 單元模塊設計8</p><p> 3.1單片機最小系統(tǒng)設計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調試與仿真17</b></p><p> 5系統(tǒng)功能及參數18</p&g
6、t;<p><b> 6設計總結19</b></p><p><b> 7 附錄</b></p><p> 附錄(一)................參考文獻................................................20 附錄(二)...............
7、..實物硬件電路..............................................20</p><p> 附錄(三)................源代碼...........................................................30</p><p><b> 1前言</b></p>
8、<p> 隨著經濟的發(fā)展,智能化漸漸步入普通百姓的家。現在市場上的各類智能化產品可謂層出不窮,最常見的有智能電飯煲,智能電冰箱和智能洗衣機等。所謂的智能化,其目的在于增加人與機器的互動,降低功耗,提升效率,盡量達到以人為本的目的。而本小組的作品—“智能排氣扇”,就是遵循上述目的設計的。對于裝有熱水器的家庭來說,排氣扇可謂必不可少的家電,然而它又卻常常被人們所忽略而缺少維護。一把積滿灰塵,隨時都有可能罷工的排氣扇,成了浴室的
9、隱患。有鑒于此,本小組設計了智能排氣扇,它能夠對扇葉轉速實時監(jiān)控,異常報警,對熱水開停檢測,自動運行和關閉。它的轉速根據浴室溫度而定,當有有害氣體產生時,它能自動強制排氣。有了它,你在浴室里再也沒有后顧之憂。</p><p> 2 總體方案設計及選擇</p><p><b> 2.1 試驗任務</b></p><p> 設計并制作一個浴室
10、用智能排氣扇,能夠實現:自動檢測熱水的開/閉,相應啟動或停止排氣扇工作;自動檢測煤氣是否有泄漏,相應啟動或停止排氣扇工作;自動檢測室內溫、濕度的高低,相應控制排氣扇運轉的強弱。</p><p><b> 2.2總體系統(tǒng)設計</b></p><p> 本排氣扇總體系統(tǒng)設計如上圖所示,由微控制器為核心,通過檢測傳感器來判斷排氣扇的工作狀態(tài)和獲取必要數據,進而控制電機的
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> 方案比較:兩款單片機均能較好地實行上述要求(詳細電氣參數請參見附錄)但采用51內核的STC12C5A08S2具有比ATmega16更穩(wěn)定的市場來源,更低的成本(前者的約為后者二分之一) 。最終決定采用STC12C5A08S2。</p><p><b> 3 單元模塊設計</b></p><p> 3.1單片機最小系統(tǒng)設計</p>
13、;<p> 本系統(tǒng)以STC12C5A08S2為核心控制單元其管腳與一般的51兼容,其主要特性如下:</p><p> 增強型51內核,一個機器周期執(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,看門狗,內部RC</p><p> 上電自動復位,掉電檢測</p><p> 6路外部中斷,支持上升沿觸發(fā)</p><p><b> 2路8位
15、PWM</b></p><p><b> 8路10位AD轉化</b></p><p> 其引腳如上圖所示,RXD,TXD為串口收發(fā)端,INT0,INT1為外部觸發(fā),WR,RD分別為外部寫選通,外部讀選通。P0,P1,P2,P3為輸入輸出接口??稍O定為四種模式:準雙向口,推免,高阻,開漏。P1口第二功能為AD口和ISP下載口P0口自帶上拉電阻。XTAL2
16、</p><p> XTAL1為晶振引腳。</p><p> 最小系統(tǒng)電路:C3與R1構成上電復位電路,XTAL1,XTAL2與晶振相連,頻率為12MHz,C1,C2為起振電容EA接正極,以保證對內部ROM編程。電源電壓為直流5V。晶振頻率為12MHz。</p><p> 3.3 MQ-2煙霧傳感器</p><p><b>
17、 標準工作條件:</b></p><p> H為加熱電阻絲引腳。RL為負載電阻,與AB串聯,當檢查到有害器體時,AB兩端的阻值發(fā)生變化,引起電壓變化,再經由單片機AD口檢測。要注意的是,MQ-2需要一定的預熱時間,剛開機時不能馬上讀取數據,否則會出錯。此外,MQ-2受濕度影響比較大,在浴室使用時必需加上適當的防潮措施。</p><p> 靈敏度特性曲線圖溫度:20℃相對濕度
18、:65%、</p><p><b> 氧氣濃度:21% </b></p><p><b> RL=5kΩ </b></p><p> 3.4DHT11溫濕度傳感器</p><p> DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。傳感器包括一個電阻式感濕元件和一個N
19、TC測溫元件,并與一個高性能8位單片機相連接。每個DHT11傳感器都在濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行口,較小的體積、較低的功耗,信號傳輸距離可達20米。</p><p> DHT11的供電電壓為3-5.5V。傳感器上電后,要等待1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個10
20、0nF 的電容,用以去耦濾波。</p><p> 由于DHT11的溫度測量只能精確到個位,而實際浴室溫度變化比較小,很難通過DHT11的變化控制PWM的占空比,故本設計只采用DHT11的濕度傳感器,而溫度的測量則交由DS18B20實現。</p><p><b> 3.5總體電路布線</b></p><p><b> 圖1<
21、/b></p><p><b> 圖2</b></p><p> 單片機外圍電路如上圖(1)所示,P2口連接LED1602液晶顯。示S1到S6為六個獨立按鈕,用來調節(jié)排氣扇的轉速及關機延時。圖(2)所示為各傳感器接線電路圖,依次分別為溫度傳感器、溫濕度傳感器、煙霧傳感器以及蜂鳴器。</p><p><b> 3.6模塊連接
22、圖</b></p><p> 數字信號 模擬信號</p><p> 數字信號 數字信號</p><p> 脈沖信號 數字信號</p><p> 數字信號
23、 脈沖信號 </p><p> 脈沖信號 </p><p> 排氣扇以STC12C5A08S2為核心處理各種信號,信號類型有數字信號,模擬信號以及脈沖信號。模擬信號由單片機AD讀取,脈沖信號由外部中斷捕捉。電源模塊為單片機及各傳感器模塊提供穩(wěn)定低壓
24、 </p><p> 3.7 流程圖 </p><p><b> </b></p><p><b> 4調試與仿真</b></p><p> 排氣扇調試必
25、須獲得的參數有</p><p> 開機后煙霧傳感器穩(wěn)定所需要的時間</p><p> 穩(wěn)定后無煙霧時煙霧傳感器電壓</p><p> 穩(wěn)定后有煙霧時煙霧傳感器電壓</p><p> 電風扇的最大及最小轉</p><p> 調試過程:用手溫替代水溫和空氣的溫度,用打火機氣體代替浴室的有害器體。通過模擬浴室環(huán)境進
26、行試調。數據傳感器經由排氣扇的液晶顯示,為程序的試調提供依據。</p><p> 上圖為無級調速電路在Multisim輸出波形的仿真結果。一圖的導通角較大,此時風扇轉速較快,二圖導通角較小,轉速較慢。</p><p><b> 5系統(tǒng)功能及參數</b></p><p> 本排氣扇所能實現的功能有:</p><p>
27、 ?。?)能夠對室內的溫度、濕度進行檢測并顯示。</p><p> ?。?)熱水開啟的時候,根據室溫的高低控制排氣扇運轉的強弱;熱水關閉的時候,排氣扇能夠根據設定的延時時間停止。</p><p><b> 提高要求:</b></p><p> 能夠對室內的一氧化碳等有毒氣體進行檢測報警,并啟動排氣扇強制排氣。</p><
28、p> 能夠對排氣扇的轉速進行檢測并顯示。</p><p> 特殊情況下能夠遙控啟動或停止排氣扇工作。 </p><p><b> 其它創(chuàng)新性設計。</b></p><p><b> 設計成本控制。</b></p><p><b> 性能參數:</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> 電機轉速:1000~2500r/min</p><p> 電機轉速的調節(jié)范圍:0~+5攝氏度</p><p><b> 6設計總結</b></p><p> 本設計所用到的傳感器數目及種類比較多,所以傳感器的選取非常重要。好的傳感器能節(jié)省不少調試的時間,增加系統(tǒng)的穩(wěn)定性。無級調速是本設計電路中較難的部分,因為單片機必須準確地
31、控制排氣扇的轉速且和強電電路實現電氣隔離。一般家用電風扇的無級調速是通過改變連接在晶閘管控制極的電容充放電時間來控制導通角,而本設計采用單片機直接控制導通角,這樣不僅能使調速更加精確,而且能充分利用單片機硬件資源。</p><p> 本設計涉及到弱電對強電的控制,除了做好必要的隔離外,強電產生的干擾必須考慮。在調試過程中我們遇到這樣的問題,當電機打開后,轉速測量就會出錯,比正常值高出許多。再三查錯后我們發(fā)現,由
32、于模塊間的連線較長,電機的轉動在連接到霍爾傳感器的外部中斷引腳產生了嚴重的干擾,產生了額外的計數。我們通過縮短引線,并接濾波電容,很好地解決這個問題。</p><p> 首先,我們學會了如何分工合作,如何把程序設計、電路設計、焊接安裝和論文設計合理地分配,發(fā)揮各人特長。其次,在實踐中我們獲取了很多電子設計的經驗,尤其增長了對各種傳感器的認識。為了寫好傳感器的通信協(xié)議,為了協(xié)調各模塊的工作,為了解決各種各樣意料之
33、外的問題,我們翻遍了有關書籍,我們付出了很多,但我們收獲了很多。我們知道的可能并不多,可我們有著學習的熱誠和精力。</p><p> 當然,本設計還有很多需要改進的地方。例如煙霧傳感器工作時需要先預熱,功耗大、靈敏度低,且不穩(wěn)定,給程序的編寫帶來了極大的麻煩。若改為離子煙霧傳感器,則能獲得更好的效果。再如本設計模塊間的連接采用杜邦線,線長且亂,容易受干擾而出錯,若整個電路由PCB板來制作,則穩(wěn)定性會大大加強。&
34、lt;/p><p><b> 附錄</b></p><p><b> 參考文獻</b></p><p> 參考文獻:《C程序設計》、《MCS—51單片機應用設計》、</p><p> 《Altium Designer 實用教程》、《AVR嵌入式系統(tǒng)設計》</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ā)送溫濕度數據 晶振 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為脈沖累加口 接在排氣扇轉速的測定,,,,,,,,,,,,,,
38、,,,,,,,,,,,,,,,,,,,,,,,</p><p> //P1^7為ad輸入端 一氧化碳 檢測到高電平報警 如果不需要報警直接接地,,,,,,,,,,,,,,,,,,,,,,,</p><p> //p0口8位7斷碼顯示數據</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計數器 運行控制位</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相關的寄存器聲明------------------</p><p> sfr P1ASF =0x9d; //P1口模數轉換功能控制寄存器</p><p> sfr
54、 ADC_CONTR =0xbc; //AD轉換控制寄存器</p><p> sfr ADC_RES =0xbd; //AD轉換結果寄存器高</p><p> sfr ADC_RESL =0xbe;
55、 //AD轉換結果寄存器低</p><p> sfr AURX1 =0xa2; //AD轉換結果存儲方式控制位//------------------------------------------------------------------</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;//選擇轉換速度,轉換電壓源啟動,轉換輸入腳,轉換啟動與終止</p><p&g
57、t; for(kong=0;kong<5;kong++);</p><p> AURX1=0;//選擇轉換格式</p><p> dianyashuju=ADC_RES*4+ADC_RESL;//轉換結果方式選擇,10位數全要</p><p><b> }</b></p><p> ///////////
58、///////////////////////////////////////////////</p><p> ////////////////////////////////////////////////////////////</p><p> /////////////////////////////////////dht11驅動部分</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; /* 單精度浮點數(32位長度) */</p><p> typedef double F64; /* 雙精度浮
62、點數(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> /************延時函數************/</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采集數據************/</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位數據
72、</p><p><b> {</b></p><p><b> FLAG=2;</b></p><p> while((!D)&&FLAG++);//拉低50us 為接受一bit數據作準備</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數據校驗************/</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,準備采集數據</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)//數據校驗 如果正確進行下一步</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> //數據處理部分</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;//////////////////////////溫度越高轉速越快</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: ///數據的處理根據情況改變 需要變</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: ///數據的處理根據情況改變 需要變</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: ///數據的處理根據情況改變 需要變</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> //送溫濕度數據,波特率 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論