大棚自動控制系統(tǒng)設(shè)計_第1頁
大棚自動控制系統(tǒng)設(shè)計_第2頁
大棚自動控制系統(tǒng)設(shè)計_第3頁
大棚自動控制系統(tǒng)設(shè)計_第4頁
大棚自動控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、摘 要本課題運(yùn)用STC89C52單片機(jī)、DS-18B20 數(shù)字溫度傳感器、繼電器和M4QA045電動機(jī)、ULN-2003A集成芯片、濕敏電阻,以及四位八段數(shù)碼管等元器件,設(shè)計了溫濕度報警電路、M4QA045電機(jī)驅(qū)動電路、電熱器驅(qū)動電路,實現(xiàn)了溫室大棚中溫度和濕度的控制和報警系統(tǒng),解決了溫室大棚人工控制測試的溫度及濕度誤差大,且費(fèi)時費(fèi)力、效率低等問題。該系統(tǒng)運(yùn)行可靠,成本低。系統(tǒng)通過對溫室內(nèi)的溫度與濕度參量的采集,并根據(jù)獲得參數(shù)實現(xiàn)對溫度和濕度的自動調(diào)節(jié),達(dá)到了溫室大棚自動控制的目的。促進(jìn)了農(nóng)作物的生長,從而提高溫室大棚的產(chǎn)量,帶來很好的經(jīng)濟(jì)效益和社會效益。關(guān)鍵詞: STC89C52單片機(jī)、DS

2、-18B20 數(shù)字溫度傳感器、ULN-2003A集成芯片、 溫室、自動控制、自動檢測目 錄第1章緒論§1.1選題背景§1.2選題的現(xiàn)實意義第2章系統(tǒng)硬件電路的設(shè)計§2.1系統(tǒng)硬件電路構(gòu)成系統(tǒng)整體框圖§2.1.2系統(tǒng)整體電路圖§2.1.3系統(tǒng)工作原理§2.2溫度傳感器的選擇§2.2.1 DS18B20簡介§2.2.2 DS18B20的性能特點(diǎn)§2.3單片機(jī)的選擇§2.3.1單片機(jī)概述§2.3.2 AT89C2051芯片的主要性能§2.4 RS-485通信設(shè)計§2.5小

3、結(jié)第3章系統(tǒng)軟件的設(shè)計§3.1系統(tǒng)主程序§3.2系統(tǒng)部分子程序§3.2.1 DS18B20初始化子程序§3.2.2 DS18B20讀子程序第4章總結(jié)參考文獻(xiàn)附 錄第一章 緒論1.1選題背景 在人類的生活環(huán)境中,溫濕度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度和濕度打著交道。自18世紀(jì)工業(yè)革命以來,工業(yè)發(fā)展與是否能掌握溫濕度有著密切的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫濕度的因素。溫濕度不但對于工業(yè)如此重要,在農(nóng)業(yè)生產(chǎn)中溫度的監(jiān)測與控制也有著十分重要的意義。我國人多地少,

4、人均占有耕地面積更少。因此,要改變這種局面,只靠增加耕地面積是不可能實現(xiàn)的,因此我們要另辟蹊徑,想辦法來提高單位畝產(chǎn)量。溫室大棚技術(shù)就是其中一個好的方法。溫室大棚就是建立一個模擬適合生物生長的氣候條件,創(chuàng)造一個人工氣象環(huán)境,來消除溫度對生物生長的約束。而且,溫室大棚能克服環(huán)境對生物生長的限制,能使不同的農(nóng)作物在不適合生長的季節(jié)產(chǎn)出,使季節(jié)對農(nóng)作物的生長不再產(chǎn)生過度影響,部分或完全擺脫了農(nóng)作物對自然條件的依賴。由于溫室大棚能帶來可觀的經(jīng)濟(jì)效益,所以溫室大棚技術(shù)越來越普及,并且已成為農(nóng)民增收的主要手段。隨著大棚技術(shù)的普及,溫室大棚數(shù)量不斷增多,溫室大棚的溫濕度控制便成為一個十分重要的課題。傳統(tǒng)的溫

5、濕度控制是在溫室大棚內(nèi)部懸掛溫度計和濕度計,通過讀取溫度值和濕度值了解實際溫濕度,然后根據(jù)現(xiàn)有溫濕度與額定溫濕度進(jìn)行比較,看溫濕度是否過高或過低,然后進(jìn)行相應(yīng)的通風(fēng)或者灑水。這些操作都是在人工情況下進(jìn)行的,耗費(fèi)了大量的人力物力?,F(xiàn)在,隨著國家經(jīng)濟(jì)的快速發(fā)展,農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的不斷提高,農(nóng)產(chǎn)品在大棚中培育的品種越來越多,對于數(shù)量較多的大棚,傳統(tǒng)的溫度控制措施就顯現(xiàn)出很大的局限性。溫室大棚的建設(shè)對溫濕度檢測與控制技術(shù)也提出了越來越高的要求。今天,我們的生活環(huán)境和工作環(huán)境有越來越多稱之為單片機(jī)的小電腦在為我們服務(wù)。單片機(jī)在工業(yè)控制、尖端武器、通信設(shè)備、信息處理、家用電器等各測控領(lǐng)域的應(yīng)用中獨(dú)占鰲頭。時下

6、,家用電器和辦公設(shè)備的智能化、遙控化、模糊控制化已成為世界潮流,而這些高性能無一不是靠單片機(jī)來實現(xiàn)的。采用單片機(jī)來對溫濕度進(jìn)行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫濕度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。單片機(jī)以其功能強(qiáng)、體積小、可靠性高、造價低和開發(fā)周期短等優(yōu)點(diǎn),成為自動化和各個測控領(lǐng)域中必不可少且廣泛應(yīng)用的器件,尤其在日常生活中也發(fā)揮越來越大的作用。因此,單片機(jī)對溫濕度的控制問題是一個工農(nóng)業(yè)生產(chǎn)中經(jīng)常會遇到的問題。因此,本課題圍繞基于單片機(jī)的溫室大棚控制系統(tǒng)展開了應(yīng)用研究工作。1.2選題的現(xiàn)實意義隨著單片機(jī)和傳感技術(shù)的迅速發(fā)展,自動檢測領(lǐng)域發(fā)生

7、了巨大變化,溫室環(huán)境自動監(jiān)測控制方面的研究有了明顯的進(jìn)展,并且必將以其優(yōu)異的性能價格比,逐步取代傳統(tǒng)的溫濕度控制措施.但是,目前應(yīng)用于溫室大棚的溫濕度檢測系統(tǒng)大多采用模擬溫度傳感器、多路模擬開關(guān)、A/D轉(zhuǎn)換器及單片機(jī)等組成的傳輸系統(tǒng)。這種溫濕度度采集系統(tǒng)需要在溫室大棚內(nèi)布置大量的測溫電纜,才能把現(xiàn)場傳感器的信號送到采集卡上,安裝和拆卸繁雜,成本也高。同時線路上傳送的是模擬信號,易受干擾和損耗,測量誤差也比較大。為了克服這些缺點(diǎn),本文參考了一種基于單片機(jī)并采用數(shù)字化單總線技術(shù)的溫度測控系統(tǒng)應(yīng)用于溫室大棚的的設(shè)計方案閉,根據(jù)實用者提出的問題進(jìn)行了改進(jìn),提出了一種新的設(shè)計方案,在單總線上傳輸數(shù)字信號

8、。本文介紹的溫濕度測控系統(tǒng)就是基于單總線技術(shù)及其器件組建的。該系統(tǒng)能夠?qū)Υ笈飪?nèi)的溫濕度進(jìn)行采集,利用溫濕度傳感器將溫室大棚內(nèi)溫濕度的變化,變換成數(shù)字量,其值由單片機(jī)處理,最后由單片機(jī)去控制液晶顯示器,顯示溫室大棚內(nèi)的實際溫濕度,同時通過與預(yù)設(shè)量比較,對大棚內(nèi)的溫度進(jìn)行自動調(diào)節(jié),如果超過我們預(yù)先設(shè)定的濕度限制,濕度報警模塊將進(jìn)行報警。這種設(shè)計方案實現(xiàn)了溫濕度實時測量、顯示和控制。該系統(tǒng)抗干擾能力強(qiáng),具有較高的測量精度,不需要任何固定網(wǎng)絡(luò)的支持,安裝簡單方便,性價比高,可維護(hù)性好。這種溫濕度測控系統(tǒng)可應(yīng)用于農(nóng)業(yè)生產(chǎn)的溫室大棚,實現(xiàn)對溫度的實時控制,是一種比較智能、經(jīng)濟(jì)的方案,適于大力推廣,以便促進(jìn)

9、農(nóng)作物的生長,從而提高溫室大棚的畝產(chǎn)量,以帶來很好的經(jīng)濟(jì)效益和社會效益。第二章 系統(tǒng)硬件電路的設(shè)計2.1系統(tǒng)硬件構(gòu)成及其測控原理2.1.1系統(tǒng)硬件電路構(gòu)成系統(tǒng)整體框圖圖2-1 系統(tǒng)整體框圖系統(tǒng)整體電路圖圖2-2 系統(tǒng)整體電路圖 系統(tǒng)工作原理本系統(tǒng)由如圖2-1、圖2-2所示,DHT11溫濕度傳感器采集數(shù)據(jù),STC89C52單片機(jī)進(jìn)行數(shù)據(jù)處理,LCD1602顯示模塊顯示溫濕度。由PWM控制溫度調(diào)節(jié)模塊進(jìn)行溫度調(diào)節(jié),當(dāng)溫度小于18時,M4QA045電機(jī)停止運(yùn)轉(zhuǎn),當(dāng)溫室大于28時,M4QA045電機(jī)全速運(yùn)轉(zhuǎn),當(dāng)溫度處于18和28之間時,通過PWM控制M4QA045電機(jī)轉(zhuǎn)速。由STC89C52單片機(jī)輸出

10、高低電平控制濕度報警模塊,當(dāng)濕度大于65%RH或者小于45%RH時,STC89C52單片機(jī)輸出高電平,濕度報警模塊報警,當(dāng)濕度處于45%RH和65%RH之間時,STC89C52單片機(jī)輸出低電平,濕度報警模塊關(guān)閉。2.2 顯示模塊的選擇2.2.1DS18B20簡介DS18B20數(shù)字溫度傳感器采用DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣等優(yōu)點(diǎn),適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。 DS18B20的性能特點(diǎn) .1、適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù) 據(jù)線供電 .2、獨(dú)特的單線接口方式,DS18B20在與微處理器

11、連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊 .3、 DS18B20支持多點(diǎn)組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點(diǎn)測溫 .4、DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) .5、溫范圍55125,在-10+85時精度為±0.5 .6、可編程 的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫 .7、在9位分辨率時最多在 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 .8、測量結(jié)果直接輸出

12、數(shù)字溫度信號,以"一 線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強(qiáng)的抗干擾糾錯能力 .9、負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。2.3單片機(jī)的選擇2.3.1單片機(jī)概述單片微型計算機(jī)簡稱單片機(jī),又稱微控制器,嵌入式微控制器等,屬于第四代電子計算機(jī)。它把中央處理器、存儲器、輸入/輸出接口電路以及定時器葉數(shù)器集成在一塊芯片上,從而具有體積小、功耗低、價格低廉、抗干擾能力強(qiáng)且可靠性高等特點(diǎn),因此,適合應(yīng)用于工業(yè)過程控制、智能儀器儀表和測控系統(tǒng)的前端裝置。正是由于這一原因,國際上逐漸采用微控制器(MCU)代替單片微型計算機(jī)(SCM)這一名稱。

13、“微控制器”更能反映單片機(jī)的本質(zhì),但是由于單片機(jī)這個名稱已經(jīng)為國內(nèi)大多數(shù)人所接受,所以仍沿用“單片機(jī)”這一名稱。1、單片機(jī)的主要特點(diǎn)有:(1) 具有優(yōu)異的性能價格比。(2) 集成度高、體積小、可靠性高。(3) 控制功能強(qiáng)。(4) 低電壓,低功耗。2、單片機(jī)的主要應(yīng)用領(lǐng)域:(1) 工業(yè)控制(2) 儀器儀表(3) 電信技術(shù)(4) 辦公自動化和計算機(jī)外部設(shè)備(5) 汽車和節(jié)能(6) 制導(dǎo)和導(dǎo)航(7) 商用產(chǎn)品(8) 家用電器因此,在本課題設(shè)計的溫濕度測控系統(tǒng)中,采用單片機(jī)來實現(xiàn)。在單片機(jī)選用方面,由于STC89系列單片機(jī)與MCS-51系列單片機(jī)兼容,所以,本系統(tǒng)中選用STC89C52單片機(jī)。2.3.

14、2 STC89C52單片機(jī)的引腳說明圖2-3 STC89C52單片機(jī)引腳圖芯片引腳如圖2-3所示:VCC : 電源。GND: 地。P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口: 是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上

15、拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。在flash編程和校驗時,P1口接收低8位地址字節(jié)。P2口:P2口是一個具有內(nèi)部上拉電阻的8 位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)

16、行MOVX DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如上表2-1所示。在flash編程和校驗時,P3口

17、也接收一些控制信號。RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的

18、SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)STC89C52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flas

19、h編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。程序存儲器:如果EA引腳接地,程序讀取只從外部存儲器開始。對于89S52,如果EA 接VCC,程序讀寫先從內(nèi)部存儲器(地址為0000H1FFFH)開始,接著從外部尋址,尋址地址為:2000HFFFFH。數(shù)據(jù)存儲器:STC89C52 有256 字節(jié)片內(nèi)數(shù)據(jù)存儲器。高128 字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。當(dāng)一條指令訪問高于7FH 的地址時,尋址方式?jīng)Q定CPU 訪問高128 字節(jié)RAM 還是特殊功能寄存器

20、空間。直接尋址方式訪問特殊功能寄存器(SFR)定時器2:定時器2是一個16位定時/計數(shù)器,它既可以做定時器,又可以做事件計數(shù)器。其工作方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時器2有三種工作模式:捕捉方式、自動重載(向下或向上計數(shù))和波特率發(fā)生器。工作模式由T2CON中的相關(guān)位選擇。定時器2 有2 個8位寄存器:TH2和TL2。在定時工作方式中,每個機(jī)器周期,TL2 寄存器都會加1。由于一個機(jī)器周期由12 個晶振周期構(gòu)成,因此,計數(shù)頻率就是晶振頻率的1/12。中斷:STC89C52 有6個中斷源如表2-1所示:兩個外部中斷(INT0 和INT1),三個定時中斷(定時器0、

21、1、2)和一個串行中斷每個中斷源都可以通過置位或清除特殊寄存器IE 中的相關(guān)中斷允許控制位分別使得中斷源有效或無效。IE還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。定時器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進(jìn)入中斷服務(wù)后,這些標(biāo)志位都可以由硬件清0。實際上,中斷服務(wù)程序必須判定是否是TF2 或EXF2激活中斷,標(biāo)志位也必須由軟件清01。表2-1 中斷控制寄存器符號位地址功能EAIE.7中斷總允許控制位。EA=0,中斷總禁止;EA=1,各中斷由各自的控制位設(shè)定-IE.6預(yù)留ET2IE.5定時器2中斷允許控制位ESIE.4串行口中斷允許控制位ET1IE.3定時器

22、1中斷允許控制位EX1IE.2外部中斷1允許控制位ET0IE.1定時器0中斷允許控制位EX0IE.0外部中斷1允許控制位2.4 溫度調(diào)節(jié)模塊設(shè)計圖2-4 電路圖 如圖2-4所示,由PWM控制溫度調(diào)節(jié)模塊,當(dāng)PWM端輸入高電平時,電流經(jīng)Q1放大,光耦導(dǎo)通,光耦輸出電流經(jīng)Q2放大后,使雙向可控硅導(dǎo)通,M4QA045電機(jī)運(yùn)轉(zhuǎn),當(dāng)PWM端輸入低電平時,雙向可控硅控制端輸入電流為0,交流電過零以后,雙向可控硅截止,M4QA045電機(jī)停止運(yùn)轉(zhuǎn)4。2.5 濕度報警模塊設(shè)計圖2-5 濕度報警模塊電路圖如圖2-5所示,由STC89C52單片機(jī)在BUZZER端輸入信號控制濕度報警模塊。當(dāng)濕度大于65%RH或者小于

23、45%RH時,BUZZER端輸入高電平,電流經(jīng)Q3放大,使蜂鳴器工作;當(dāng)濕度處于45%RH和65%RH之間時,BUZZER端輸入低電平,蜂鳴器不工作7。第三章 溫室大棚控制系統(tǒng)軟件設(shè)計3.1 Keil C 軟件概述單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流

24、行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使

25、用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。Keil C51開發(fā)系統(tǒng)基本知識Keil C51開發(fā)系統(tǒng)基本知識: 1. 系統(tǒng)概述 Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。 Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成

26、的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。 2. Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu) C51工具包的整體結(jié)構(gòu),其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)

27、換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 使用獨(dú)立的Keil仿真器時,注意事項: *仿真器標(biāo)配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 *仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。 *仿真芯片的31腳已接至高電平,所以仿真時只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。1、安裝好了Keil

28、軟件以后,我們打開它。2、 我們先新建一個工程文件,點(diǎn)擊“Project->New Project”菜單。3、選擇工程文件要存放的路徑 ,輸入工程文件名 xdch 最后單擊保存。4、在彈出的對話框中選擇 CPU 廠商及型號。5、選擇好STC89C52芯片,接著點(diǎn)擊確定,彈出對話框。6、新建一個 C51 文件, 單擊左上角的 New File,保存為DS18B20_4.C,(注意后綴名必須為.C),再單擊“保存”。7、存好后把此文件加入到工程中方法如下:用鼠標(biāo)在 Source Group1 上單擊右鍵, 然后再單擊 Add Files to Group Source Group

29、1。8、 選擇要加入的文件, 找到 MAIN.C后, 單擊 Add, 然后單擊 Close。9、在編輯框里輸入代碼。10、生成 .hex 燒寫文件,先單擊Options for Target。11、在下圖中,我們單擊 Output, 選中 Create HEX F,再單擊“確定”。以上是Keil軟件的基本應(yīng)用8。3.2 溫室大棚控制系統(tǒng)程序設(shè)計3.2.1整體系統(tǒng)框圖圖3-1 系統(tǒng)整體框圖首先,初始化單片機(jī)設(shè)置中斷,定義變量,然后初始化LCD1602顯示模塊,設(shè)置8位格式,2行,5*7矩陣顯示,整體顯示,關(guān)光標(biāo),不閃爍設(shè)定輸入方式,增量不移位,清除屏幕顯示。調(diào)用溫濕度采集程序進(jìn)行數(shù)據(jù)采集,經(jīng)過數(shù)

30、據(jù)轉(zhuǎn)換程序,將十六進(jìn)制轉(zhuǎn)換成十進(jìn)制,將十進(jìn)制數(shù)據(jù)輸出到LCD1602顯示模塊進(jìn)行顯示,根據(jù)溫度調(diào)整電機(jī)轉(zhuǎn)速,根據(jù)濕度判斷是否報警,最后,進(jìn)行新一輪的溫濕度采集9。3.2.2 LCD1602顯示模塊程序設(shè)計圖3-2 顯示程序框圖如圖3-2,初始化LCD1602顯示模塊,設(shè)置8位格式,2行,5*7矩陣顯示,整體顯示,關(guān)光標(biāo),不閃爍設(shè)定輸入方式,增量不移位,清除屏幕顯示,延時等待,將采集到的溫濕度數(shù)據(jù)進(jìn)行轉(zhuǎn)換,十六進(jìn)制轉(zhuǎn)換成十進(jìn)制,然后,判斷是否在第一行顯示,輸入相應(yīng)的地址數(shù)據(jù),延時等待,輸入需要顯示的數(shù)據(jù)。3.2.3 PWM程序設(shè)計圖3-3 PWM程序框圖如圖3-3所示,進(jìn)行中斷程序初始化,設(shè)置定

31、時器T0中斷時間為1ms,中斷100次,即100ms作為一個脈沖周期,每中斷一次,由變量T0_number進(jìn)行計數(shù),當(dāng)變量T0_number大于100時,給變量T0_number賦值0,重新開始計數(shù),當(dāng)變量T0_number小于變量PWM_width_H時,輸出高電平,當(dāng)變量T0_number大于變量PWM_width_H時,輸出低電平,以此控制脈寬10。第四章 調(diào)試中遇到的問題在軟件的調(diào)試過程中,遇到的問題有很多,下面就幾個比較突出的問題進(jìn)行說明。1)在對Keil C的使用時不知道怎么才能讓它生成HEX文件,從而進(jìn)行仿真,因為以前沒有用過類似的軟件,不會并且也不知道需要生成HEX文件,導(dǎo)致前期的工作很難進(jìn)行2 )因為用的是DHT11數(shù)字傳感器,在編程過程中需要對所測得溫度進(jìn)行處理,而且需要給定一個溫度范圍,建立一個溫度與電機(jī)轉(zhuǎn)速的數(shù)學(xué)模型,經(jīng)過反復(fù)的計算、實驗才實現(xiàn)。3)因為考慮到經(jīng)濟(jì)實用方面,所以在進(jìn)行實物操作之前,采用proteus軟件對程序和硬件電路進(jìn)行仿真,可是在仿真過程中,獨(dú)立按鍵總是不靈敏,這需要對延遲時間進(jìn)行調(diào)整,而程序中設(shè)置的延遲時間總是不能夠很符合實際操作,所以在這方面浪費(fèi)了大量的時間進(jìn)行反復(fù)的操作和實驗4)在仿真過程中,因為用到的是LCD1602顯示模塊,這種顯示模塊是可以顯示字符的,并

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論