【正文】
erature and humidity sensor, and the LCD1602 to display the messages. The SHT10 uses a timing sequence much like the I2C to municate with the microcontroller. Because it’s a highly integrated chip, it already includes an analog to digital converter. Therefore, it’s quite convenient to use, and also accurate and durable. The LCD1602 can display two lines of messages, with the first line for temperature and the second line for humidity. The design can measure the temperature and humidity in a greenhouse, and then display it on a LCD1602. Meanwhile, it pares the data with the set limit. If the limit is exceeded, then the system will send out a warning using a buzzer and activate the temperature and humidity controlling equipment. Besides, the set limit can be modified with the independent keyboard. Through schematic design and Proteus simulation, the feasibility of this design has been proved.Keywords: STC89C52RC, SHT10, I2C bus, independent keyboard, temperature and humidity control目 錄1 前言 12 總體方案設計 3 溫濕度控制系統(tǒng)的設計指標要求 3 系統(tǒng)設計的原則 3 可靠性 3 性價比 3 方案比較 4 方案一 4 方案二 4 方案論證 5 方案選擇 53 單元模塊設計 6 各單元模塊功能介紹及電路設計 6 單片機最小系統(tǒng) 6 液晶顯示模塊 8 溫濕度傳感器模塊 8 報警電路的設計 9 輸出電路設計 10 電源的設計 12 按鍵電路設計 13 串口通信電路 14 元件清單 15 關鍵器件的介紹 17 STC89C52RC 17 SHT10溫濕度傳感器 194 系統(tǒng)軟件設計 22 軟件設計的總體結構 22 主要模塊的設計流程框圖 24 主程序流程圖 24 SHT10子程序流程圖 25 LCD1602子程序流程圖 27 輸出控制子程序流程圖 28 鍵盤掃描子程序流程圖 29 軟件設計所用工具 31 Keil uVision4 31 Proteus 315 系統(tǒng)調試 32 用Proteus搭建仿真總圖 32 用Keil對程序進行調試、編譯 336 結論 36 系統(tǒng)的功能 36 系統(tǒng)的指標參數 36 系統(tǒng)功能分析 367 總結與體會 388 致謝 399 參考文獻 40附錄1 系統(tǒng)的電路原理圖 41附錄2 系統(tǒng)仿真總圖 42附錄3 系統(tǒng)實物照片 43附錄4 系統(tǒng)源程序 44附錄5 英文參考資料 461 中文翻譯 462 英文原文 491 前言溫室大棚作為一種高效的農業(yè)生產方式,與傳統(tǒng)農業(yè)生產方式相比具有很大的優(yōu)點。這種設施系統(tǒng)可以從簡易到全自動控制,適宜各種狀況下的選擇,特別是對于日光溫室、塑料大棚,相對投資較少。晴天在傍晚關窗至次日早晨開窗前溫室維持在高濕度。因此,非常有必要使用一套溫濕度控制系統(tǒng),以維持溫室大棚內的溫度、濕度在一個合適的范圍,實現大棚內農作物的水分、養(yǎng)分的有效供給,提高光合作用的效率,從而達到增產目的。這要求我們提高溫濕度檢測與控制技術,來滿足對溫室大棚建設的需要。 2 總體方案設計 溫濕度控制系統(tǒng)的設計指標要求本文要設計的大棚溫濕度自動控制系統(tǒng),要能夠及時、準確地對溫室大棚內的溫度、濕度進行采集,將其顯示在LCD1602液晶顯示器上,然后與設定的上下限值進行比較,如果超出限制則啟動溫度、濕度控制設備,并通過蜂鳴器報警,直到溫濕度回到規(guī)定的范圍。5%RH;(5)測濕范圍:0~100%RH;(6)通過鍵盤電路修改上下限:有;(6)溫濕度報警:有; 系統(tǒng)設計的原則 可靠性可靠性是在設計過程中應該優(yōu)先考慮的一個因素,一個控制系統(tǒng)必須要能穩(wěn)定、可靠地工作,才能投入到生產實踐中去。 性價比性價比也是一個系統(tǒng)設計中所要考慮的重要因素。而且PLC抗干擾能力強,工作穩(wěn)定可靠,這一點已被長期的工業(yè)控制實踐所證明。溫濕度傳感器 單片機加熱器制冷器加濕器除濕器鍵盤輸入 蜂鳴器報警繼電器液晶顯示溫室大棚 用單片機作為主控制器的控制系統(tǒng) 方案論證從功能上看,兩種控制器都能滿足要求。從價格方面上看,單片機就比PLC具有很大的優(yōu)勢。綜上所述,本次設計采用單片機作為主控制器。外部時鐘方式是把已有的時鐘信號從XTAL1或XTAL2送入單片,一般用于有多個單片機的情況,所以本設計中時鐘電路采用內部時鐘方式,選用12M的晶振和兩個30pF的電容與片內的高增益反相放大器構成一個自激振蕩器。因此上電的時候就要讓單片機復位一次;在運行過程中,如果程序出錯,也需要進行手動復位。隨著充電的繼續(xù)進行,電流會逐漸減小,電阻兩端的電壓UR=IR也逐漸減小,即RST引腳的電勢逐漸減小。 液晶顯示模塊測量到的溫濕度值將顯示到液晶屏LCD1602上,它可以顯示2行,每行16個字符。它與單片機的接口電路如下圖所示: LCD1602與單片機的接口電路 溫濕度傳感器模塊溫濕度傳感器選用瑞士Sensirion公司生產的SHT10。因此,從滿足大棚溫濕度監(jiān)測的要求來看,SHT10已經足夠,故選用SHT10。蜂鳴器為一種采用一體化結構的電子器件, 采用了直流電壓來供電,廣泛的應用到了計算機、報警器、復印機、電子玩具、電話機、汽車電子設備、定時器等電子產品之中用作發(fā)聲器。報警電路設計如下圖: 報警電路圖蜂鳴器工作電流一般為10mA,而單片機的I/O口只能承受幾毫安的電流,因此需要加三極管進行驅動。光耦的驅動能力有限,一般電流只能達到30mA左右,不足以驅動繼電器,因此再加一個三極管放大電流。51單片機P0口所能承受的灌電流最大,可以達到26mA。繼電器選用5V的,驅動繼電器需要大約100mA的電流,也就是說驅動繼電器的三極管的集電極電流為Ic=100mA。在這里,TLP5214的電流傳輸比為50%,輸出端我們剛才算出的電流Io=Ib=1mA,所以輸入端電流IF最小為2mA,由于電流很小時光耦處于死區(qū),因此要選大點,這里選擇IF=10mA。 電源的設計 電源電路電源電路是整個系統(tǒng)中非常重要的一部分,本設計中主要用到直流5V電源。因此需要濾波電路將紋波濾掉。需要注意的是,470uF的大電容可以濾低頻,為什么不能濾高頻,?從理論上來說大電容應該高頻、低頻都可以,但是由于制造工藝的原因,電解電容的容值做得很大時,它就不再是一個單純的電容了,它等效于一個電容串聯(lián)一個電感。并聯(lián)在LM7805兩端的二極管起保護作用,避免在短路等情況下LM7805輸出端的電壓比輸入端高,從而燒壞LM7805。矩陣式鍵盤較為復雜,一般用于按鍵數目較多,而單片機可用的I/O口又比較有限時。本設計中的鍵盤是低電平有效。其中,RS一232是PC機與通信工業(yè)中使用最早的一種串行接口標準。MAX232是MAXIM公司專為RS232標準串口設計的單電源電平轉換芯片,使用+5V電源供電。打頭的字母“T”表示TTL電平,“R”表示RS232電平。MAX232就是用來進行電平轉換的,該器件包含2驅動器、2接收器和一個電壓發(fā)生器電路提供EIA/TIA232E電平。① STC89C52RC的主要性能參數(1)增強型8051單片機,6時鐘/機器周期和12時鐘/機器周期可以任意選擇,指令代碼與傳統(tǒng)8051單片機是兼容的。作為輸出端口,每個引腳能驅動8個TTL負載,對端口P0寫入每個引腳能驅動寫入“1”時,可以作為高阻抗輸入。對端口寫入“1”時,該引腳被懸空,由內部的上拉電阻把引腳拉到高電平,這時候可以作為輸入口使用,此時,因為內部自帶上拉電阻,所以被外部器件拉低電壓的引腳會輸出一個電流。當它被當作輸入口使用時,因為內部自帶上拉電阻,該引腳在被外部元器件拉低電平的時侯會有電流輸出。對P3口進行寫入“l(fā)”時,被內部的上拉電阻拉高且可以作為一個輸入端口。RST:復位輸入端。∕EA∕VPP:當∕EA保持低電平時,則在此期間外部存儲器(0000H~FFFH),不論是否有內部程序存儲器。XTAL2:系統(tǒng)時鐘的反向放大器輸出端。傳感器在一塊微型電路板上集成了信號處理電路和傳感元件,由于自帶ADC,所以輸出數字信號。SHT10可以用來測量相對濕度、溫度和露點等參數?!?,濕度的測量誤差為177。A,休眠時3181。在微控制器向SHT10進行數據傳送的過程中,必須要保證數據線在時鐘線為高電平段時穩(wěn)定。后續(xù)的命令包含3個地址(目前支持“000”)和5個命令位,具體命令集見表4。確切時間與內部的晶振速度有關,最多會有177。接著會傳輸2個字節(jié)的測量數據以及1個字節(jié)的CRC奇偶校驗。此程序流程包括五個部分,第一部分是主程序,其描述總體結構;第二部分是SHT10溫度采集程序,其功能是通過SHT10傳感器采集溫濕度值,并進行修正;第三部分是LCD1602顯示子程序,對LCD1602進行初始化,將溫濕度進行顯示;第四部分是輸出控制子程序,對設定值和實際值進行判斷以決定是否進行溫濕度的調節(jié);第五部分是按鍵輸入電路,用來修改溫濕度上下限值。對于變量也是如此,如果某個變量也在其他C文件中使用,那么要在一個C文件總將它定義為全局變量,即在函數外面定義。復位時序和啟動傳輸時序可通過依次拉低或拉高時鐘線和數據線,因而實現起來比較簡單;而寫時序和讀時序就比較復雜。 LCD1602子程序流程圖開始LCD1602初始化設置首行數據指針寫入首行字符設置第二行數據指針寫入第二行字符結束 LCD1602子程序流程圖 輸出控制子程序流程圖開始返回主程序溫度、濕度是否超出上下限?啟動溫濕度調節(jié)設備蜂鳴器報警溫濕度是否回到限定值內?停止報警停止溫濕度控制設備溫濕度是否留有足夠的裕量?結束NoYesYesYesNoNo 輸出控制子程序 鍵盤掃描子程序流程圖開始退出鍵盤子程序延時10ms退出鍵盤子程序上限或下限加一或減一?No?YesYesNo??YesNo YesNo鍵盤掃描子程序為了防止抖動,按鍵電路中都要消抖的措施,本設計中是采用的軟件消抖,在單片機檢測到某個鍵按下后,延時10ms再監(jiān)測,如果仍然按下,才視為按下了該鍵。設置好以后,按S4退出設置。Keil C51整合了豐富的庫函數和功能強大的集成開發(fā)調試工具。Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件,它不僅具有其它EDA軟件的仿真功能,還可以對單片機及其外圍器件進行仿真,是目前在這方面做得最好的EDA工具軟件。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。 為了使仿真圖看起來更整潔,我們部分電路連線選擇連線標簽模式,以單片機19引腳為例,將其用線引出,在窗口中輸入X1得到此效果 若要對某個元件或一部分電路做出說明,則單擊任務欄中的Text Script ,在界面中輸入文字即可?,F在開始在右邊的主界面編寫C語言程序,編寫完成后為了把程序燒錄到單片機上,還需要把它轉換成機器碼,生成hex文件:右擊工程視圖窗口中的Target1,選擇Options for Target “target1” 把Output選項卡里面的Create HEX File 前面的勾打上,這樣編譯后會生成機器碼,如圖所示。當溫度不僅回到上下限以內,而且留有一定裕量后,停止溫濕度調節(jié)設備。%完成液晶屏顯示用LCD1602顯示完成超限報警用蜂鳴器報警完成修改上下限通過獨立式鍵盤修改完成輸出控制通過光耦、繼電器控制完成 系統(tǒng)功能分析該大棚溫濕度自動控制系統(tǒng)能通過獨立式鍵盤設置溫濕度上下限,通過LCD1602顯示溫濕度,并在超限的情況下報警、啟動調節(jié)設備。但是由于本次設計用到的按鍵不多,只有五個,功能比較簡單,而且單片機工作比較空閑,因此使用的是查詢方式來處理鍵盤的輸入。這