

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 電子系統(tǒng)課程設(shè)計(jì)</b></p><p> 題 目 溫室大棚溫濕度控制系統(tǒng)的的設(shè)計(jì)</p><p> 授課教師 </p><p> 學(xué)生姓名 </p><p> 學(xué)
2、號(hào) </p><p> 專 業(yè) 電子信息科學(xué)與技術(shù) </p><p> 教學(xué)單位 </p><p> 完成時(shí)間 2012年5月3日</p><p><b> 摘 要:</b></p>
3、<p> 本系統(tǒng)主要運(yùn)用STC89C52單片機(jī)、DS-18B20 數(shù)字溫度傳感器、繼電器和M4QA045電動(dòng)機(jī)、ULN-2003A集成芯片、濕敏電阻,以及LCD1602顯示器等元器件,設(shè)計(jì)了溫濕度報(bào)警電路、M4QA045電機(jī)驅(qū)動(dòng)電路、電熱器驅(qū)動(dòng)電路,實(shí)現(xiàn)了溫室大棚中溫度和濕度的控制和報(bào)警系統(tǒng),解決了溫室大棚人工控制測(cè)試的溫度及濕度誤差大,且費(fèi)時(shí)費(fèi)力、效率低等問題。該系統(tǒng)運(yùn)行可靠,成本低。系統(tǒng)通過對(duì)溫室內(nèi)的溫度與濕度參量的采
4、集,并根據(jù)獲得參數(shù)實(shí)現(xiàn)對(duì)溫度和濕度的自動(dòng)調(diào)節(jié),達(dá)到了溫室大棚自動(dòng)控制的目的。促進(jìn)了農(nóng)作物的生長(zhǎng),從而提高溫室大棚的產(chǎn)量,帶來很好的經(jīng)濟(jì)效益和社會(huì)效益。</p><p> 關(guān)鍵詞:STC89C52單片機(jī)、DS-18B20 數(shù)字溫度傳感器、ULN-2003A集成芯片、溫室大棚、自動(dòng)控制</p><p><b> 一.設(shè)計(jì)任務(wù)與要求</b></p><
5、;p> 該系統(tǒng)能夠?qū)厥掖笈飪?nèi)的溫濕度進(jìn)行檢測(cè)并顯示當(dāng)前實(shí)際溫濕度,同時(shí)通過與預(yù)設(shè)量比較,對(duì)大棚內(nèi)的溫度進(jìn)行自動(dòng)調(diào)節(jié),如果超過我們預(yù)先設(shè)定的濕度限制,濕度報(bào)警模塊將進(jìn)行報(bào)警,從而實(shí)現(xiàn)了溫室大棚內(nèi)的溫濕度的自動(dòng)控制。</p><p><b> 二.設(shè)計(jì)方案的選擇</b></p><p><b> 1)主控制器模塊</b></p&g
6、t;<p> 方案一:采用凌陽16位單片機(jī)作為控制器,雖自帶10位ADC模塊,處理速度快,但是結(jié)合該設(shè)計(jì)的實(shí)際功能,用該單片機(jī)會(huì)造成較大的功能浪費(fèi),而且該單片機(jī)的價(jià)格也相對(duì)較高,性能不穩(wěn)定。</p><p> 方案二:用51系列單片機(jī)做控制器。它具有優(yōu)異的性能價(jià)格比,集成度高、體積小、可靠性高,控制功能強(qiáng),低電壓,低功耗。</p><p> 綜合考慮,在本課題設(shè)計(jì)的溫室
7、大棚的溫濕度測(cè)控系統(tǒng)中,由于STC89系列單片機(jī)與MCS-51系列單片機(jī)兼容,所以,本系統(tǒng)中選用STC89C52單片機(jī)。</p><p><b> 2)溫度調(diào)節(jié)模塊</b></p><p> 方案一: 由PWM控制溫度調(diào)節(jié)模塊,當(dāng)PWM端輸入高電平時(shí),電流經(jīng)第一個(gè)放大器放大,光耦導(dǎo)通,光耦輸出電流經(jīng)第二個(gè)放大器放大后,使雙向可控硅導(dǎo)通,M4QA045電機(jī)運(yùn)轉(zhuǎn),當(dāng)P
8、WM端輸入低電平時(shí),雙向可控硅控制端輸入電流為0,交流電過零以后,雙向可控硅截止,M4QA045電機(jī)停止運(yùn)轉(zhuǎn)。</p><p> 方案二: 由PWM控制溫度調(diào)節(jié)模塊,當(dāng)PWM端輸入高電平時(shí),電流經(jīng)放大器放大,使常開端閉合,M4QA045電機(jī)運(yùn)轉(zhuǎn),當(dāng)PWM端輸入低電平時(shí),常開端斷開,M4QA045電機(jī)停止運(yùn)轉(zhuǎn)。</p><p> 方案一采用光耦隔離強(qiáng)電,方案二采用繼電器隔離強(qiáng)電,但方案一
9、沒有實(shí)現(xiàn)強(qiáng)電與直流源的隔離,且方案一環(huán)節(jié)復(fù)雜,計(jì)算難度大,過多的環(huán)節(jié)延長(zhǎng)響應(yīng)時(shí)間,從而影響溫度調(diào)整模塊的性能,所以選擇方案二。</p><p><b> 3)加熱器驅(qū)動(dòng)電路</b></p><p> 基于以上溫度調(diào)節(jié)模塊兩個(gè)方案的分析,加熱器驅(qū)動(dòng)電路也同樣選用繼電器隔離,當(dāng)溫度低于18℃時(shí),相應(yīng)引腳輸出高電平,電流經(jīng)過三極管放大,繼電器常開端閉合,電熱器工作,當(dāng)溫
10、度高于23℃時(shí),相應(yīng)引腳輸出低電平,繼電器常開端關(guān)閉,電熱器不工作。</p><p><b> 4)顯示模塊</b></p><p> 方案一:采用數(shù)碼管顯示,需要實(shí)用多個(gè)數(shù)碼管,且占用I/O資源較多。</p><p> 方案二:采用LCD1602液晶作為顯示器件,占用I/O口資源少,顯示內(nèi)容豐富,可以分時(shí)顯示不用的內(nèi)容。</p&g
11、t;<p> 綜合考慮,在本課題設(shè)計(jì)的溫室大棚的溫濕度測(cè)控系統(tǒng)中,選用LCD1602液晶作為顯示器件</p><p><b> 電路設(shè)計(jì)</b></p><p><b> 1.系統(tǒng)整體框圖</b></p><p><b> 圖1 系統(tǒng)整體框圖</b></p><
12、;p> 2.各模塊的電路設(shè)計(jì)</p><p> 1)溫度調(diào)節(jié)模塊設(shè)計(jì)</p><p> 圖2溫度調(diào)節(jié)模塊設(shè)計(jì)電路圖</p><p> 如圖2所示,由PWM控制溫度調(diào)節(jié)模塊,當(dāng)PWM端輸入高電平時(shí),電流經(jīng)Q4放大,常開端5閉合,M4QA045電機(jī)運(yùn)轉(zhuǎn),當(dāng)PWM端輸入低電平時(shí),常開端5斷開,M4QA045電機(jī)停止運(yùn)轉(zhuǎn)。</p><p&g
13、t;<b> 2)電熱器驅(qū)動(dòng)電路</b></p><p> 圖3電熱器驅(qū)動(dòng)電路圖</p><p> 加熱器驅(qū)動(dòng)電路選用繼電器隔離,當(dāng)溫度低于18℃時(shí),相應(yīng)引腳輸出高電平,電流經(jīng)過三極管放大,繼電器常開端閉合,電熱器工作,當(dāng)溫度高于23℃時(shí),相應(yīng)引腳輸出低電平,繼電器常開端關(guān)閉,電熱器不工作。</p><p> 3)濕度調(diào)節(jié)模塊設(shè)計(jì)<
14、;/p><p> 圖4 濕度報(bào)警模塊電路圖</p><p> 如圖4所示,由STC89C52單片機(jī)在BUZZER端輸入信號(hào)控制濕度報(bào)警模塊。當(dāng)濕度大于65%RH或者小于45%RH時(shí),BUZZER端輸入高電平,電流經(jīng)Q3放大,使蜂鳴器工作;當(dāng)濕度處于45%RH和65%RH之間時(shí),BUZZER端輸入低電平,蜂鳴器不工作。</p><p><b> 四.系統(tǒng)程
15、序設(shè)計(jì)</b></p><p> 1.系統(tǒng)整體程序框圖</p><p> 圖5系統(tǒng)整體程序框圖</p><p> 首先,初始化單片機(jī)設(shè)置中斷,定義變量,然后初始化LCD1602顯示模塊,設(shè)置8位格式,2行,5*7矩陣顯示,整體顯示,關(guān)光標(biāo),不閃爍設(shè)定輸入方式,增量不移位,清除屏幕顯示。調(diào)用溫濕度采集程序進(jìn)行數(shù)據(jù)采集,經(jīng)過數(shù)據(jù)轉(zhuǎn)換程序,將十六進(jìn)制轉(zhuǎn)換
16、成十進(jìn)制,將十進(jìn)制數(shù)據(jù)輸出到LCD1602顯示模塊進(jìn)行顯示,根據(jù)溫度調(diào)整電機(jī)轉(zhuǎn)速,根據(jù)濕度判斷是否報(bào)警,最后,進(jìn)行新一輪的溫濕度采集。</p><p><b> 總結(jié)</b></p><p> 以上為畢業(yè)期間所設(shè)計(jì)的溫室大棚控制控制系統(tǒng),它經(jīng)過多次修改和整理,可以滿足設(shè)計(jì)的基本要求。采用STC89C52單片機(jī)、DHT11數(shù)字溫濕度傳感器、LCD1602液晶顯示模塊
17、和M4QA045電機(jī)等器件設(shè)計(jì)溫室大棚控制系統(tǒng),實(shí)現(xiàn)溫濕度采集、英文顯示;溫度自動(dòng)調(diào)節(jié),濕度越限報(bào)警功能。</p><p> 因?yàn)楸救怂接邢?,此設(shè)計(jì)存在一定的問題。譬如系統(tǒng)抗干擾能力差,且沒有實(shí)現(xiàn)自動(dòng)自動(dòng)復(fù)位。由于使用的是單片機(jī)作為核心的控制元件,配合其它器件,使本溫度控制系統(tǒng)具有功能強(qiáng)、性能可靠、電路簡(jiǎn)單、成本低的特點(diǎn),加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。</p><p>&
18、lt;b> 附 錄</b></p><p> #include <reg52.h></p><p> #include <intrins.h></p><p> #define LCD_DB P2</p><p> sbit DQ = P1^0;</p><p>
19、 sbit BUZZER = P1^1;</p><p> sbit PWM = P1^2;</p><p> sbit LCD_RS = P1^4;</p><p> sbit LCD_RW = P1^5;</p><p> sbit LCD_E = P1^6;</p><p> sbit HEAT = P
20、1^7;</p><p> void initial(void);</p><p> void read_DHT11(void);</p><p> void LCD_write_command(unsigned char com);</p><p> void LCD_display_char(unsigned char x, un
21、signed char y, unsigned char dat);</p><p> unsigned char read_DHT11_char(void);</p><p> void control_temperature_humidity(void);</p><p> void delay_xms(unsigned int time_xms);<
22、;/p><p> void delay_x10us(unsigned int time_x10us);</p><p> unsigned char stop_system = 0;</p><p> unsigned char lineOne[] = "TS(0-50): C";</p><p> unsi
23、gned char lineTwo[] = "HS(20-90): %RH";</p><p> unsigned int T0_number = 0, T1_number, PWM_width_H;</p><p> unsigned char temperature_ten, temperature_one, humidity_ten, humidity_o
24、ne;</p><p> unsigned char temperature_H, temperature_L, humidity_H, humidity_L, checkData;</p><p> void initial(void)</p><p><b> {</b></p><p> unsigned
25、char i, j;</p><p> TMOD = 0x11;//定時(shí)器0工作方式1,16位計(jì)數(shù)器;定時(shí)器1工作方式1,16位計(jì)數(shù)器</p><p> TH1 = 0xFC;//定時(shí)器1溢出周期1ms,延時(shí)</p><p> TH1 = 0x66;</p><p> TH0 = 0xFC;//定時(shí)器0中斷周期1m
26、s,PWM </p><p> TL0 = 0x66; </p><p><b> EA = 1;</b></p><p><b> ET1 = 1;</b></p><p><b> ET0= 1;</b></p><p><b
27、> EX0 = 1;</b></p><p><b> IT1 = 1;</b></p><p><b> TR0 = 1;</b></p><p> LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7</p><p> LCD_write_
28、command(0x0c);//設(shè)置整體顯示,關(guān)閉光標(biāo),且不閃爍</p><p> LCD_write_command(0x06);//設(shè)置輸入方式,增量不移位</p><p> LCD_write_command(0x01);//清屏</p><p> for (i = 0; i < 16; i++)</p><p>&l
29、t;b> {</b></p><p> LCD_display_char(i, 1, lineOne[i]);</p><p><b> }</b></p><p> for (j = 0; j < 16; j++)</p><p><b> {</b></p
30、><p> LCD_display_char(j, 2, lineTwo[j]);</p><p><b> }</b></p><p> LCD_display_char(14, 1, 0xDF);//顯示</p><p><b> }</b></p><p>
31、void read_DHT11(void)</p><p><b> {</b></p><p><b> DQ = 0;</b></p><p> delay_xms(18);</p><p><b> DQ = 1;</b></p><p>
32、 delay_x10us(2);</p><p> if (DQ == 0)</p><p><b> {</b></p><p> while (DQ == 0);</p><p> while (DQ == 1);</p><p> humidity_H = read_DHT11_
33、char();</p><p> humidity_L = read_DHT11_char();</p><p> temperature_H = read_DHT11_char();</p><p> temperature_L = read_DHT11_char();</p><p><b> }</b>&l
34、t;/p><p><b> }</b></p><p> unsigned char read_DHT11_char(void)</p><p><b> {</b></p><p> unsigned char i, temp_one, temp_two; </p><
35、p> for (i = 0; i < 8; i++)</p><p><b> {</b></p><p> while (DQ == 0);</p><p> delay_x10us(3);</p><p> if (DQ == 0)</p><p><b>
36、{</b></p><p> temp_one = 0;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> temp_one = 1;<
37、/p><p><b> }</b></p><p> temp_two <<= 1;</p><p> temp_two |= temp_one;</p><p> while(DQ == 1); </p><p><b> }</b></p>
38、<p> return temp_two;</p><p><b> }</b></p><p> void LCD_write_command(unsigned char com)</p><p><b> {</b></p><p> LCD_DB = com;</
39、p><p> LCD_RS = 0;</p><p> LCD_RW = 0;</p><p> LCD_E = 1;</p><p> delay_xms(1);</p><p> LCD_E = 0;</p><p> delay_xms(5);</p><p&g
40、t;<b> }</b></p><p> void LCD_display_char(unsigned char x, unsigned char y, unsigned char dat)</p><p><b> {</b></p><p> if (y == 1)</p><p>
41、<b> {</b></p><p> LCD_write_command(0x80 + x);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
42、;p> LCD_write_command(0xc0 + x);</p><p><b> }</b></p><p> LCD_DB = dat;</p><p> LCD_RS = 1;</p><p> LCD_RW = 0;</p><p> LCD_E = 1;<
43、/p><p> delay_xms(1);</p><p> LCD_E = 0;</p><p> delay_xms(5);</p><p><b> }</b></p><p> void LCD_display_DHT11(void)</p><p><
44、b> {</b></p><p> temperature_ten = temperature_H/ 10 + 0x30;</p><p> temperature_one = temperature_H % 10 + 0x30;</p><p> humidity_ten = humidity_H / 10 + 0x30;</p&
45、gt;<p> humidity_one = humidity_H % 10 + 0x30;</p><p> LCD_display_char(12, 1, temperature_ten);</p><p> LCD_display_char(13, 1, temperature_one);</p><p> LCD_display_cha
46、r(11, 2, humidity_ten);</p><p> LCD_display_char(12, 2, humidity_one);</p><p><b> }</b></p><p> void control_temperature_humidity(void)</p><p><b>
47、 {</b></p><p> if (temperature_H > 28) //溫度→轉(zhuǎn)速</p><p><b> {</b></p><p> PWM_width_H = 100;</p><p><b> }</b></p><p>
48、; else if (temperature_H < 18)</p><p><b> {</b></p><p> PWM_width_H = 0;</p><p><b> HEAT = 1;</b></p><p><b> }</b></p>
49、<p><b> else</b></p><p><b> {</b></p><p> if (temperature_H >= 23)</p><p><b> {</b></p><p><b> HEAT = 0;</b&
50、gt;</p><p><b> }</b></p><p> PWM_width_H = (temperature_H - 18) * 10;</p><p><b> }</b></p><p> if (humidity_H > 65 || humidity_H < 45)
51、//濕度→蜂鳴</p><p><b> {</b></p><p> BUZZER = 1;</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b>&
52、lt;/p><p> BUZZER = 0;</p><p><b> }</b></p><p><b> }</b></p><p> void delay_xms(unsigned int time_xms)</p><p><b> {</b&g
53、t;</p><p> T1_number = 0;</p><p><b> TR1 = 1;</b></p><p><b> while (1)</b></p><p><b> {</b></p><p> if (time_xms
54、== T1_number)</p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
55、 TR1 = 0;</b></p><p><b> }</b></p><p> void delay_x10us(unsigned int time_x10us)</p><p><b> {</b></p><p> while (time_x10us--)</p&
56、gt;<p><b> {</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _n
57、op_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b><
58、/p><p><b> }</b></p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><p> initial();</p><p><
59、;b> while(1)</b></p><p><b> {</b></p><p> delay_xms(2000);</p><p> read_DHT11();</p><p> LCD_display_DHT11();</p><p> control_te
60、mperature_humidity();</p><p><b> }</b></p><p><b> }</b></p><p> void INT_0(void) interrupt 0</p><p><b> {</b></p><p&
61、gt; stop_system = 1;</p><p><b> }</b></p><p> void Timer_0(void) interrupt 1</p><p><b> {</b></p><p> TH0 = 0xFC;//定時(shí)器0中斷周期1ms,PWM</p&
62、gt;<p> TL0 = 0x66;</p><p> T0_number++;</p><p> if (T0_number > 100)</p><p><b> {</b></p><p> T0_number = 0;</p><p><b>
63、}</b></p><p> else if (T0_number < PWM_width_H)</p><p><b> {</b></p><p><b> PWM = 1;</b></p><p><b> }</b></p>&l
64、t;p><b> else</b></p><p><b> {</b></p><p><b> PWM = 0;</b></p><p><b> }</b></p><p><b> }</b></p>
65、;<p> void Timer_1(void) interrupt 3</p><p><b> {</b></p><p> TH1 = 0xFC;//定時(shí)器1溢出周期1ms,延時(shí)</p><p> TL1 = 0x66;</p><p> T1_number++;</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫室大棚溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
- 智能溫室大棚溫濕度檢測(cè)系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--溫室大棚溫濕度控制系統(tǒng)(含開題報(bào)告)
- 蔬菜大棚溫濕度的控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 蔬菜溫室大棚溫濕度監(jiān)控系統(tǒng)
- 溫室大棚溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)畢業(yè)論文(設(shè)計(jì))
- 溫室大棚溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)畢業(yè)論文(設(shè)計(jì))
- 單片機(jī)大棚溫濕度控制的課程設(shè)計(jì)
- 單片機(jī)大棚溫濕度控制的課程設(shè)計(jì)
- 基于手機(jī)APP的溫室大棚溫濕度自動(dòng)控制系統(tǒng)設(shè)計(jì).pdf
- 基于單片機(jī)的大棚溫濕度控制系統(tǒng)的設(shè)計(jì)
- 智能溫室溫濕度控制系統(tǒng)的設(shè)計(jì)-中期報(bào)告
- 基于ARM的溫室溫濕度智能控制系統(tǒng)設(shè)計(jì).pdf
- 大棚溫濕度自動(dòng)監(jiān)控系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---溫室大棚中溫濕度測(cè)控系統(tǒng)的研究與設(shè)計(jì)
- 溫濕度綜合控制系統(tǒng)設(shè)計(jì).pdf
- 電子系統(tǒng)課程設(shè)計(jì)
- 基于單片機(jī)的蔬菜大棚溫濕度智能控制系統(tǒng)設(shè)計(jì)
- 電子系統(tǒng)級(jí)設(shè)計(jì)課程設(shè)計(jì)--電子系統(tǒng)級(jí)(esl)設(shè)計(jì)
- 大棚溫濕度測(cè)控系統(tǒng)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論