單片機原理及接口技術(shù)課程設計(蔬菜大棚溫度控制器設計)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  單片機原理及接口技術(shù) 課程設計(論文)</p><p>  題目: 蔬菜大棚溫度控制器設計 </p><p>  院(系): 電氣工程學院 </p><p>  專業(yè)班級: 電氣121 </p><p>  學 號:

2、</p><p>  學生姓名: </p><p>  指導教師: (簽字)</p><p>  起止時間:2015.06.22-2015.07.05</p><p>  課程設計(論文)任務及評語</p><p>  院(系):電氣工程學院

3、 教研室: </p><p>  注:成績:平時20% 論文質(zhì)量60% 答辯20% 以百分制計算</p><p><b>  摘 要</b></p><p>  隨著農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的提高,對于數(shù)量較多的大棚,傳統(tǒng)的溫度控制措施就顯現(xiàn)出很大的局性。為此,在現(xiàn)代化的蔬菜大棚管理中通常有溫度

4、自動控制系統(tǒng),以控制蔬菜大棚溫度,適應生產(chǎn)需要。 </p><p>  本論文主要闡述了基于AT89C51單片機的大棚溫度控制系統(tǒng)設計原理,主要電路設計及軟件設計等。該系統(tǒng)采用89C51單片機作為控制器,溫度傳感器作為溫度數(shù)據(jù)采集系統(tǒng),可對執(zhí)行機構(gòu)發(fā)出指令實現(xiàn)大棚溫度參數(shù)調(diào)節(jié)實現(xiàn)對蔬菜大棚溫度的檢測與控制,從而有效提高蔬菜的產(chǎn)量。文中提出了具體設計方案,討論了蔬菜大棚溫濕度巡回檢測與控制的基本原理,進行

5、了可行性論證。</p><p>  關(guān)鍵詞:蔬菜大棚;溫度控制;89C51單片機;</p><p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></p><p>  1.1蔬菜大棚溫度控制器概況1</p><p>  1.2本文研究內(nèi)

6、容2</p><p>  第2章 CPU最小系統(tǒng)設計3</p><p>  2.1蔬菜大棚溫度控制器總體設計方案3</p><p>  2.2CPU的選擇4</p><p>  2.3數(shù)據(jù)存儲器擴展5</p><p>  2.4復位電路設計5</p><p>  2.5時鐘

7、電路設計6</p><p>  2.6CPU最小系統(tǒng)圖6</p><p>  第3章 溫度控制輸入輸出接口電路設計8</p><p>  3.1溫度傳感器的選擇8</p><p>  3.2溫度檢測接口電路設計9</p><p>  3.2.1A/D轉(zhuǎn)換器選擇9</p><p&g

8、t;  3.2.2模擬量檢測接口電路圖9</p><p>  3.3溫度控制電路設計10</p><p>  3.4人機對話接口電路設計10</p><p>  3.4.1按鍵電路設計10</p><p>  3.4.2顯示電路設計11</p><p>  第4章 蔬菜大棚溫度控制軟件設計12<

9、/p><p>  4.1軟件實現(xiàn)功能綜述12</p><p>  4.2流程圖設計12</p><p>  4.2.1主程序流程圖設計12</p><p>  4.2.2溫度調(diào)節(jié)流程圖設計13</p><p>  4.3程序清單13</p><p>  第5章 系統(tǒng)設計與分析1

10、9</p><p>  5.1系統(tǒng)原理圖19</p><p>  第6章 課程設計總結(jié)20</p><p><b>  參考文獻21</b></p><p><b>  緒論</b></p><p>  蔬菜大棚溫度控制器概況</p><p>

11、  在人類的生活環(huán)境中,溫度扮演著極其重要的角色。自18世紀工業(yè)革命以來,工業(yè)發(fā)展與是否能掌握溫度有著密切的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫度的因素。溫度不但對于工業(yè)如此重要,在農(nóng)業(yè)生產(chǎn)中溫度的監(jiān)測與控制也有著十分重要的意義。我國人多地少,人均占有耕地面積更少。因此,要改變這種局面,只靠增加耕地面積是不可能實現(xiàn)的,因此我們要另辟蹊徑,想辦法來提高單位畝產(chǎn)量。溫室大棚技術(shù)就是其中

12、一個好的方法。溫室大棚就是建立一個模擬適合生物生長的氣候條件,創(chuàng)造一個人工氣象環(huán)境,來消除溫度對生物生長的約束。而且,溫室大棚能克服環(huán)境對生物生長的限制,能使不同的農(nóng)作物在不適合生長的季節(jié)產(chǎn)出,使季節(jié)對農(nóng)作物的生長影響不大,部分或完全擺脫了農(nóng)作物對自然條件的依賴。由于溫室大棚能帶來可觀的經(jīng)濟效益,所以溫室大棚技術(shù)越來越普及,并且已成為農(nóng)民增收的主要手段。</p><p>  隨著大棚技術(shù)的普及,溫室大棚數(shù)量不斷增

13、多,溫室大棚的溫度控制便成為一個十分重要的課題。傳統(tǒng)的溫度控制是在溫室大棚內(nèi)部懸掛溫度計,通過讀取溫度值了解實際溫度,然后根據(jù)現(xiàn)有溫度與額定溫度進行比較,看溫度是否過高或過低,然后進行相應的通風或者灑水。這些操作都是在人工情況下進行的,耗費了大量的人力物力?,F(xiàn)在,隨著國家經(jīng)濟的快速發(fā)展,農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的不斷提高,農(nóng)產(chǎn)品在大棚中培育的品種越來越多,對于數(shù)量較多的大棚,傳統(tǒng)的溫度控制措施就顯現(xiàn)出很大的局限性。溫室大棚的建設對溫度檢測與控制技術(shù)

14、也提出了越來越高的要求。</p><p>  今天,我們的生活環(huán)境和工作環(huán)境有越來越多稱之為單片機的小電腦在為我們服務。采用單片機來對溫度進行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標,從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。單片機以其功能強、體積小、可靠性高、造價低和開發(fā)周期短等優(yōu)點,成為自動化和各個測控領域中必不可少且廣泛應用的器件,尤其在日常生活中也發(fā)揮越來越大的作用。

15、因此,單片機對溫度的控制問題是一個工農(nóng)業(yè)生產(chǎn)中經(jīng)常會遇到的問題。</p><p>  因此,本課題圍繞基于單片機的溫室大棚控制系統(tǒng)展開了應用研究工作。</p><p><b>  本文研究內(nèi)容</b></p><p>  本文介紹的溫度測控系統(tǒng)就是基于單片機技術(shù)及其器件組建的。該系統(tǒng)能夠?qū)Υ笈飪?nèi)的溫度進行采集,利用溫度傳感器將溫室大棚內(nèi)溫度的變

16、化,變換成數(shù)字量,其值由單片機處理,最后由單片機去控制液晶顯示器,顯示溫室大棚內(nèi)的實際溫度,同時通過與預設量比較,對大棚內(nèi)的溫度進行自動調(diào)節(jié)。這種設計方案實現(xiàn)了溫度實時測量、顯示和控制。該系統(tǒng)抗干擾能力強,具有較高的測量精度,不需要任何固定網(wǎng)絡的支持,安裝簡單方便,性價比高,可維護性好。這種溫度測控系統(tǒng)可應用于農(nóng)業(yè)生產(chǎn)的溫室大棚,實現(xiàn)對溫度的實時控制,是一種比較智能、經(jīng)濟的方案,適于大力推廣,以便促進農(nóng)作物的生長,從而提高溫室大棚的畝產(chǎn)

17、量,以帶來很好的經(jīng)濟效益和社會效益。</p><p><b>  CPU最小系統(tǒng)設計</b></p><p>  蔬菜大棚溫度控制器總體設計方案</p><p>  由溫度傳感器檢測溫度,通過A/D轉(zhuǎn)換器將檢測信號轉(zhuǎn)換成數(shù)字量,進而利用89C51單片機對采集的溫度信號進行判斷與調(diào)節(jié),通過顯示模塊顯示當前溫度值,當監(jiān)測到蔬菜大棚溫度超過上限報警值

18、時,可開啟220V供電的排風扇降溫;當溫度低于下限報警值時,可開啟加熱引風機提高溫室內(nèi)的溫度,直至符合要求時為止。</p><p>  圖2-1 總體方案框圖</p><p>  圖2-2 各模塊與89C51單片機的關(guān)系</p><p>  表2-1 各模塊功能</p><p><b>  CPU的選擇</b><

19、/p><p>  單片微型計算機簡稱單片機,又稱微控制器,嵌入式微控制器等。它把中央處理器、存儲器、輸入/輸出接口電路以及定時器計數(shù)器集成在一塊芯片上,構(gòu)成一個完整的微型計算機。因而單片機具有性價比高、可靠性高、控制功能強大、功耗低、結(jié)構(gòu)簡單易于擴展等優(yōu)異特點,在智能化儀表、機電一體化產(chǎn)品、測控系統(tǒng)、計算機網(wǎng)絡及通信技術(shù)、家用電器等各大領域均有廣泛的應用。</p><p>  本文選用AT89

20、C51單片機作為應用CPU,它由8個部件組成,即中央處理器,片內(nèi)數(shù)據(jù)存儲器,輸入/輸出接口,可編程串行口,定時/計數(shù)器,中斷系統(tǒng)及特殊功能寄存器,各部分通過內(nèi)部總線相連。其基本結(jié)構(gòu)依然是通用CPU加上外圍芯片的結(jié)構(gòu)模式,但在功能單元的控制上,卻采用了特殊功能寄存器的集中控制方法。它的引腳結(jié)構(gòu)如圖2-3所示。</p><p><b>  數(shù)據(jù)存儲器擴展</b></p><p

21、>  89C51片內(nèi)有128B的RAM存儲器,在實際應用中僅靠這128B的數(shù)據(jù)存儲器是遠遠不夠的。這種情況下可利用89C51單片機所具有的擴展功能,擴展外部數(shù)據(jù)存儲器。89C51單片機最大可擴展64KB RAM。</p><p>  本文中采用6264進行數(shù)據(jù)存儲器擴展。6264是8K×8位靜態(tài)隨機存儲器,采用CMOS工藝制造,單一+5V電源供電,額定功耗200mW,典型存取時間200ns,為28

22、線雙列直插式封裝。</p><p>  6264與89C51的硬件連接圖如圖2-4所示。</p><p><b>  復位電路設計</b></p><p>  復位是單片機的初始化操作。單片機系統(tǒng)在上電啟動運行時,都需要先復位,其作用是使CPU和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。因此,復位是一個很重要的操作方式。但單

23、片機本身不能自動復位的,必須配合相應的外部復位電路才能實現(xiàn)的。</p><p>  當89C51通電,時鐘電路開始工作,在單片機的RST引腳加上大于24個時鐘周期以上的正脈沖,系統(tǒng)即初始復位。初始化后,程序計數(shù)器PC指向0000H,P0`P3輸出口全部為高電平,堆棧指針寫入07H,其他專用寄存器被清0。RST由高電平降為低電平后,系統(tǒng)從0000H地址開始執(zhí)行程序。</p><p><

24、b>  時鐘電路設計</b></p><p>  單片機的各個功能部件的運行都是以時鐘控制信號為基準,有條不紊的一拍一拍的工作。因此,時鐘頻率直接影響到單片機的速度。設計晶振電路如下圖。</p><p>  其中,復電容參數(shù)值:C1=C2=30pF</p><p>  晶振頻率為12MHz。</p><p><b>

25、;  CPU最小系統(tǒng)圖</b></p><p>  CPU最小系統(tǒng)圖由89C51單片機、數(shù)據(jù)擴展芯片、時鐘電路和復位電路構(gòu)成。</p><p>  89C51單片機最小系統(tǒng)復位電路的極性電容C1的大小直接影響單片機的復位時間,89C51單片機最小系統(tǒng)容值越大需要的復位時間越短。</p><p>  89C51單片機最小系統(tǒng)晶振的振蕩頻率直接影響單片機的處

26、理速度,頻率越大處理速度越快。下圖為CPU最小系統(tǒng)圖(省略了數(shù)據(jù)存儲器的擴展部分)。</p><p>  溫度控制輸入輸出接口電路設計</p><p><b>  溫度傳感器的選擇</b></p><p>  傳統(tǒng)的模擬式溫度傳感器,如熱電阻、熱敏電阻,在一些溫度范圍內(nèi)線性不好,需要經(jīng)行冷端補償或引線補償;集成模擬溫度傳感器與之相比,具有靈敏度

27、高、線性度好、響應速度快等優(yōu)點,而且它還將驅(qū)動電路、信號處理電路以及需要的邏輯控制電路集成在單片IC上,有尺寸小,使用方便等優(yōu)點。常見的模擬溫度傳感器有LM3911、LM335、LM45、AD22103電壓輸出型、AD590電流輸出型。經(jīng)比較,本設計的溫度傳感器選用AD590。</p><p>  AD590是電流輸出型的集成溫度傳感器,具有測溫誤差小、動態(tài)阻抗高、響應速度快、傳輸距離遠、體積小、微功耗等優(yōu)點,適

28、合遠距離測溫、控溫,不需要進行非線性校準。其工作電壓范圍較寬(4~30 V),測溫范圍為-55~150 ℃,輸出電阻較大,長導線上的壓降一般不影響測量精度,因此不需要專門的溫度補償電路。流過AD590 的電流等于所處環(huán)境的熱力學溫度系數(shù)。它只需要一個電源即可實現(xiàn)溫度到電流的線性變換,然后再終端使用一只取樣電阻,即可實現(xiàn)電流到電壓的轉(zhuǎn)換。它使用方便,并且具有較高的精度。下圖為AD590的基本應用電路。</p><p&g

29、t;  溫度檢測接口電路設計</p><p><b>  A/D轉(zhuǎn)換器選擇</b></p><p>  由于溫度是一種模擬信號,則由信號采集電路采集的信號是一種模擬信號,而且頻率很低,但是單片機所識別的是具有高低電位的數(shù)字信號,這就要求在信號處理中必須把模擬信號轉(zhuǎn)換成數(shù)字信號從而輸出給單片機處理。</p><p>  ADC0809是采樣分辨率

30、為8位的、以逐次逼近原理進行的A/D轉(zhuǎn)換器件。內(nèi)有一個8通道多路開關(guān)以及微處理機兼容的控制邏輯的CMOS組件。它由比較器、逐次逼近器、A/D轉(zhuǎn)換器及控制和定時5部分組成,輸出具有TTL三態(tài)鎖存緩沖器,可以直接連到單片機數(shù)據(jù)總線上。</p><p>  ADC0809的最大不可調(diào)誤差為±1LSB。</p><p>  模擬量檢測接口電路圖</p><p> 

31、 模擬量檢測接口電路由A/D轉(zhuǎn)換器、89C51單片機和溫度傳感器組成。整體接線圖如下圖所示:</p><p><b>  溫度控制電路設計</b></p><p>  在本設計中,被測溫度信號經(jīng)采樣處理后,還需要通過單片機系統(tǒng)的P1.2口輸出用以控制蔬菜大棚的溫度,通過這種方式達到控制的目的??刂频姆绞街饕心M量控制和開關(guān)量控制。本系統(tǒng)采用的是開關(guān)量控制。所謂的開關(guān)

32、量控制就是通過控制設備的“開”或“關(guān)”狀態(tài)的時間來達到控制的目的。</p><p>  本設計采用繼電器作為控制電路的主要器件,繼電器具有一定的隔離作用,在繼電器前面加一個三極管用以放大輸出信號就可以驅(qū)動繼電器的閉合和斷開,從而實現(xiàn)弱電控制強電的效果。本設計采用直流驅(qū)動電壓為+5V的繼電器。觸電輸出部分可以直接與市電連接。控制電路如圖3-3所示:</p><p>  人機對話接口電路設計&

33、lt;/p><p><b>  按鍵電路設計</b></p><p>  非編碼鍵盤可以分為兩種結(jié)構(gòu)形式:獨立式按鍵和行列式按鍵,獨立式按鍵的電路的結(jié)構(gòu)和處理程序簡單,擴展方便,但占用的I/O口線相對較多,不適合在按鍵數(shù)量較多的場合下采用。</p><p>  本設計有三個按鍵,共需要三個I/O口線,占用的口線不多,因此可以采用獨立式按鍵。<

34、/p><p><b>  設計按鍵電路如圖。</b></p><p><b>  顯示電路設計</b></p><p>  在本設計中系統(tǒng)的顯示采用七段數(shù)碼管作為顯示器件。 </p><p>  圖3-5 LED數(shù)碼管</p><p>  發(fā)光二極管的陽極連在一起稱為共

35、陽極顯示器,陰極連在一起稱為共陰極顯示器。一位顯示器由八個發(fā)光二極管組成,其中,7個發(fā)光二級管構(gòu)成字形“8”的各個比劃(段)a~g,另一個小數(shù)點為dp發(fā)光二極管。當在某段發(fā)光二極管施加一定的正向電壓時,該段比劃即點亮,不加電壓則該段二極管不亮。為了保護各段LED不被損壞,需要外加限流電阻。</p><p>  蔬菜大棚溫度控制軟件設計</p><p><b>  軟件實現(xiàn)功能綜述

36、</b></p><p>  本課設要實現(xiàn)的是蔬菜大棚溫度控制。由89C51單片機和其他一些器件組成的控制系統(tǒng),要實現(xiàn)的軟件功能是將蔬菜大棚中的溫度信息通過溫度檢測模塊傳送給89C51單片機,途中利用A/D轉(zhuǎn)換器將模擬信號轉(zhuǎn)換為數(shù)字信號,讓單片機識別,并顯示。然后溫度進行判斷,進行調(diào)節(jié),通過顯示模塊顯示溫度,使大棚中的的溫度一直維持在適合蔬菜生長的條件下。</p><p>&l

37、t;b>  流程圖設計</b></p><p><b>  主程序流程圖設計</b></p><p>  溫度信號通過溫度檢測模塊傳送給89C51單片機,途中利用A/D轉(zhuǎn)換器將模擬信號轉(zhuǎn)換為數(shù)字信號,讓單片機識別,并處理,然后溫度進行判斷,進行調(diào)節(jié)。</p><p>  圖4-1 主程序流程圖</p><p

38、><b>  溫度調(diào)節(jié)流程圖設計</b></p><p>  圖4-2 加熱調(diào)節(jié)流程圖 圖4-3 降溫調(diào)節(jié)流程圖</p><p><b>  程序清單</b></p><p>  ENABLEEQU00H</p><p>  DTSIGNE

39、QU01H</p><p>  SDSIGNEQU02H</p><p>  HAVEEQU03H;DS18B20有無</p><p>  PSHUEQU04H</p><p>  LED0EQUP2.0</p><p>  LED1EQUP2.1</p><p&g

40、t;  LED2EQUP2.2</p><p>  WR1820EQUP2.6</p><p>  SEGEQUP0;顯示</p><p>  WARNH0EQU31H;溫度上限</p><p>  WARNH1EQU32H;溫度下限</p><p>  TEMP0EQU34

41、H;溫度小數(shù)部分</p><p>  TEMP1EQU35H;溫度整數(shù)部分</p><p>  DIS0EQU36H;小數(shù)位</p><p>  DIS1EQU37H;個位</p><p>  DIS2EQU38H;十位</p><p>  DIS3EQU39H;百位&

42、lt;/p><p>  ORG0000H</p><p>  AJMPMAIN</p><p>  ORG000BH</p><p>  AJMPT0INT</p><p>  ORG0023H</p><p>  AJMPS_INT</p><p&

43、gt;<b>  主程序</b></p><p>  ORG0030H</p><p><b>  MAIN:</b></p><p>  MOVSP,#40H;堆棧棧底放50H</p><p>  MOVWARNH0,#25H</p><p>  MOV

44、WARNH1,#18H</p><p>  CALLT0INIT;初始化T0</p><p>  CALLSCANKEY;掃描鍵盤</p><p>  CLRENABLE;清使能標志</p><p>  CLRDTSIGN;清數(shù)據(jù)標志</p><p>  LCALLINT_EN<

45、;/p><p><b>  LOOP:</b></p><p>  CALLDISPLY;調(diào)用顯示子程序</p><p>  AJMPLOOP ;T0初始化</p><p><b>  TOINIT:</b></p><p>  ORLTMOD,#01H</

46、p><p>  ANLTMOD,#F1H</p><p>  MOVTH0,#3CH</p><p>  MOVTL0,#B0H</p><p>  MOVR7,#15H;軟件計數(shù)初值</p><p>  RET ;開中斷子程序</p><p><b&g

47、t;  INT_EN:</b></p><p><b>  SETBEA</b></p><p>  SETBET0;開T0中斷</p><p><b>  STEBTR0</b></p><p>  RET ;關(guān)中斷子程序</p>

48、<p><b>  INT_DS:</b></p><p>  CLRET0;關(guān)T0中斷</p><p>  CLRTR0;T0停止計數(shù)</p><p>  RET ;顯示子程序</p><p><b>  DISPLY:</b><

49、;/p><p><b>  PUSHACC</b></p><p><b>  PUSH06H</b></p><p>  MOVA,TEMP1;溫度整數(shù)部分送A</p><p><b>  DISPLY1:</b></p><p>  MOVB,

50、#100H</p><p>  DIVAB;相除取百位</p><p>  MOVDIS3,A;百位送DIS3</p><p>  MOVA,B;余數(shù)送A</p><p>  MOVB,#10H</p><p>  DIVAB;相除取十位</p><p>  M

51、OVDIS2,A;十位送DIS2</p><p>  MOVDIS1,B;個位送DIS1</p><p>  MOVDIS0,TEMP0;小數(shù)部分送DIS0</p><p>  MOVDPTR,#ZIXING;送字形碼首地址</p><p>  MOVA,DIS0;取小數(shù)</p><p>

52、  MOVCA,@A+DPTR;取對應字形碼</p><p><b>  MOVP0,A</b></p><p><b>  SETBLED0</b></p><p><b>  SETBLED1</b></p><p><b>  SETBLED2<

53、;/b></p><p><b>  CLRLED0</b></p><p>  MOVSEG,A;送字形碼</p><p>  CALLDELAY0</p><p>  MOVA,DIS1;取個位</p><p>  MOVCA,@A+DPTR;取對應字形碼<

54、;/p><p><b>  MOVP0,A</b></p><p>  CLRACC.7;清最高位顯示小數(shù)點</p><p><b>  SETBLED0</b></p><p><b>  SETBLED1</b></p><p><b&g

55、t;  SETBLED2</b></p><p><b>  CLRLED1</b></p><p>  MOVSEG,A ;送字形碼</p><p>  CALLDELAY0</p><p>  MOVA,DIS2;取十位</p><p>  MOVCA,

56、@A+DPTR;取對應字形碼</p><p><b>  MOVP0,A</b></p><p><b>  OUTDIS:</b></p><p><b>  POP06H</b></p><p><b>  POPACC</b></

57、p><p><b>  RET</b></p><p><b>  ZIXING: </b></p><p>  DB 03FH,006H,05BH,04FH,66H,6DH,7DH,078H 7FH,6FH;共陽數(shù)碼管但是加了uln2803才使用共陰極數(shù)碼管字型碼</p><p><b> 

58、??;延時子程序</b></p><p><b>  DELAY0:</b></p><p>  MOVR6,#1FH</p><p><b>  DEL0:</b></p><p>  MOVR5,#0BH</p><p><b>  DEL1:

59、</b></p><p><b>  NOP</b></p><p>  DJNZR5,DEL1</p><p>  DJNZR6,DEL0</p><p><b>  RET</b></p><p><b> ??;鍵盤子程序</b>

60、</p><p><b>  SCANKEY:</b></p><p><b>  ACALLKEY</b></p><p>  JNBF0,LNEXT</p><p>  ACALLKEYPROC</p><p><b>  LNEXT:</b&g

61、t;</p><p>  AJMPSCANKEY</p><p><b>  DELAY:</b></p><p>  MOVR7,#100H</p><p>  D1:MOVR6,#100H</p><p><b>  DJNZR6,$</b></p&

62、gt;<p>  DJNZR7,D1</p><p><b>  RET</b></p><p><b>  KEYPROC:</b></p><p><b>  MOVA,B</b></p><p>  JBACC.0,KEYS1</p>

63、<p>  JBACC.1KEYS2</p><p>  JBACC.2,KEYS3</p><p>  JBACC.3,KEYS4</p><p>  AJMPKEY_RET</p><p><b>  KEYS1:</b></p><p><b>  SETBS

64、1</b></p><p>  AJMPKEY_RET</p><p><b>  KEYS2:</b></p><p><b>  SETBS2</b></p><p>  AJMPKEY_RET</p><p><b>  KEYS3:&l

65、t;/b></p><p><b>  SETBS3</b></p><p>  AJMPKEY_RET</p><p><b>  KEYS4:</b></p><p><b>  SETBS4</b></p><p>  AJMPKE

66、Y_RET</p><p><b>  KEY_RET:</b></p><p><b>  RET</b></p><p><b>  KEY:</b></p><p><b>  CLRF0</b></p><p> 

67、 ORLP1,#00001111B</p><p><b>  MOVA,P1</b></p><p>  ORLA,#11110000B</p><p><b>  CPLA</b></p><p><b>  JZK_RET</b></p>&l

68、t;p>  CALLDELAY</p><p>  ORLA,#00001111B</p><p><b>  MOVA,P1</b></p><p>  ORLA,#11110000B</p><p><b>  CPLA</b></p><p><

69、b>  JZK_RET</b></p><p><b>  MOVB,A</b></p><p><b>  SETBF0</b></p><p><b>  K_RET:</b></p><p>  ORLP1,#00001111B</p

70、><p><b>  MOVA,P1</b></p><p><b>  ORLA</b></p><p>  JZK_RET1</p><p>  AJMPK_RET</p><p><b>  K_RET1:</b></p>&

71、lt;p>  CALLDELAY</p><p><b>  RET</b></p><p>  S1:INCC</p><p>  JBC#1,T1</p><p>  JBC#2,T2</p><p>  JBC#3,T3</p><p>

72、<b>  RET</b></p><p>  S2:MOVA,31H</p><p><b>  INCA</b></p><p><b>  AJMPS4</b></p><p>  S3:MOVB,32H</p><p>&l

73、t;b>  DECB</b></p><p><b>  AJMPS4</b></p><p>  S4:MOVA,31H</p><p>  MOVB,32H</p><p><b>  RET</b></p><p>  T1:M

74、OVA,WARNH0</p><p>  AJMPDISPLY1</p><p>  T2: MOVA,WARNH1</p><p>  AJMPDISPLY1</p><p>  T3:AJMPDISPLY1</p><p><b>  CLRC</b></p>

75、;<p><b>  AJMPS1</b></p><p><b>  RET</b></p><p><b>  ;T0中斷子程序</b></p><p><b>  T0INT:</b></p><p><b>  PUS

76、HACC</b></p><p><b>  PUSH06H</b></p><p><b>  PUSH05H</b></p><p>  MOVTL0,#B0H</p><p>  MOVTH0,#3CH</p><p>  DJNZR7,OU

77、TSINT</p><p>  MOVR7,#15H</p><p>  LCALLGET_TEMPER;讀取溫度</p><p>  JNBHAVE,OUTT0INT</p><p>  MOVA,TEMP1</p><p><b>  CLRC</b></p&g

78、t;<p>  SUBBA,WARNH0;將讀取的溫度與高溫限比較</p><p>  TINT0:JNZT1NT1;判斷是否大于高溫限</p><p>  AJMPT1NT2;不大于轉(zhuǎn)T1NT2’</p><p>  T1NT1:CLRP2.3</p><p>  CLR

79、P2.4</p><p>  AJMPTINT4</p><p>  TINT2:SUBBA,WARNH1;將讀取的溫度與低溫限比較</p><p>  JCTINT3;判斷是否小于低溫限</p><p>  AJMPTINT4;不小于轉(zhuǎn)TINT4</p><p>  T

80、INT3:CLRP2.3</p><p><b>  CLRP2.5</b></p><p>  AJMPTINT4</p><p>  TINT4:CALLPRO;處理數(shù)據(jù)</p><p>  OUTT0INT:</p><p><b>  POP

81、05H</b></p><p><b>  POP06H</b></p><p><b>  POPACC</b></p><p><b>  RETI</b></p><p>  從18B20獲得溫度數(shù)據(jù)程序</p><p> 

82、 GET_TEMPER:</p><p>  CALLINI_18B20;操作前先復位</p><p>  JBHAVE,GET0;若18B20存在則轉(zhuǎn)</p><p>  MOVTEMP0,#0FH;數(shù)碼管顯示000</p><p>  MOVTEMP1,#00H</p><p>  AJMP

83、OUTGET;退出</p><p><b>  GET0:</b></p><p>  MOVA,#CCH;跳過ROM匹配</p><p>  CALLWR_18B20</p><p>  MOVA,#44H;開始轉(zhuǎn)化</p><p>  CALLWR_18B20<

84、;/p><p>  MOVR6,#11H;延遲約800ms</p><p><b>  GET1:</b></p><p>  LCALLDISPLY</p><p>  DJNZR6,GET1</p><p>  CALLINI_18B20;操作前先復位</p>&l

85、t;p>  MOVA,#CCH;跳過ROM匹配</p><p>  CALLWR_18B20</p><p>  MOVA,#0BEH;讀取命令</p><p>  CALLWR_18B20</p><p>  CALLRD_18B20;開始讀取ROM</p><p>  OUTGET:

86、RET</p><p> ?。?8B20復位程序</p><p>  INI_18B20:</p><p>  SETBWR_18B20</p><p><b>  NOP</b></p><p>  CLRWR_18B20;拉低數(shù)據(jù)線</p><p>  MOV

87、R6,#3H ;延遲約500us</p><p><b>  INI1:</b></p><p>  MOVR5,#75H</p><p><b>  DJNZR5,$</b></p><p>  DJNZR6,INI1</p><p>  SETBWR_1

88、8B20;然后釋放</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOVR5,#25H</p><p>  INI2:JNBWR_18B20,INI3;等待18B20回應</p><p>  DJN

89、ZR5,INI2</p><p>  AJMPINI4;延時</p><p>  INI3:SETBHAVE;置標志位,表示18B20存在</p><p><b>  AJMPINI5</b></p><p>  INI4:CLRHAVE ;消標志位,表示18B20不存在&

90、lt;/p><p><b>  LJMPINI7</b></p><p>  INI5:MOVR5,#90H</p><p>  INI6:DJNZR5,INI6;時序要求延時一段時間</p><p>  INI7:SETBWR_18B20</p><p>  RET

91、;18B20寫程序</p><p>  WR_18B20: </p><p>  MOV R6,#8H ;一共8位數(shù)據(jù)</p><p>  CLR C </p><p><b>  WR1: </b></p><p>  CLR WR_18B20

92、 :拉低數(shù)據(jù)線</p><p>  MOV R5,#6H ;延遲約17us </p><p><b>  DJNZR5,$</b></p><p>  RRCA;右移數(shù)據(jù)到CY</p><p>  MOVWR_18B20,C;寫入18B20</p>&

93、lt;p>  MOVR5,#25H;保持電平35us</p><p><b>  DJNZR5,$</b></p><p>  SETBWR_18B20;釋放數(shù)據(jù)線</p><p><b>  NOP</b></p><p>  DJNZR6,WR1;若未完成寫入,繼續(xù)SETBW

94、R_18B20;釋放數(shù)據(jù)線</p><p><b>  RET</b></p><p> ?。?8B20讀程序(高位寸TEMP1,低位存TEMP0)</p><p><b>  RD_18B20:</b></p><p>  MOVR6,#2H;需要讀2個字節(jié)的數(shù)據(jù)</p>&l

95、t;p>  MOVR0,#TEMP0;送高位首地址</p><p><b>  RD0:</b></p><p>  MOVR5,#8H;讀8位數(shù)據(jù)</p><p><b>  RD1:</b></p><p>  CLRC;清CY,為讀數(shù)據(jù)做準備</p>

96、<p>  SETBWR_18B20</p><p><b>  NOP</b></p><p>  CLRWR_18B20;拉低數(shù)據(jù)線</p><p><b>  NOP</b></p><p>  SETBWR_18B20;釋放數(shù)據(jù)線</p><p&g

97、t;  MOVR4,#08H;稍作延遲</p><p><b>  DJNZR4,$</b></p><p>  MOVC,WR_18B20;讀數(shù)據(jù)線數(shù)據(jù)到C</p><p>  MOVR4,#23H;延遲</p><p><b>  DJNZR4,$</b></p>

98、<p>  RRCA;右移CY數(shù)據(jù)到A</p><p>  DJNZR5,RD1;若8位沒讀完,轉(zhuǎn)RD1</p><p>  MOV@R0,A;將讀到數(shù)據(jù)送ROM</p><p>  INCR0;ROM指針加一</p><p>  DJNZR6,RD0;若2字節(jié)未讀完,轉(zhuǎn)RD0</p>

99、<p><b>  RET</b></p><p><b> ??;獲得數(shù)據(jù)處理程序</b></p><p><b>  PRO:</b></p><p>  MOV21H,TEMP0;溫度低8位存位尋址區(qū)21H</p><p>  MOV22H,TEMP1

100、;溫度高8位存位尋址區(qū)22H</p><p>  MOVA,22H;高8位數(shù)據(jù)送A</p><p>  SWAPA;交換高低4位保護數(shù)據(jù)</p><p>  MOVC,0FH;將21H第7位送ACC第3位</p><p>  MOVACC.3,C</p><p>  MOVC,0EH<

101、;/p><p>  MOVACC.2,C</p><p>  MOVC,0DH</p><p>  MOVACC.1,C</p><p>  MOVC,0CH</p><p>  MOVACC.0,C</p><p>  MOVTEMP1,A</p><p>

102、;  MOVA,TEMP0</p><p>  ANLA,#0FH</p><p>  MOVDPTR,#XIAOSHU</p><p>  MOVCA,@A+DPTR</p><p>  MOVTEMP0,A</p><p>  MOVA,TEMP1</p><p>  CJNE

103、A,#128,FSHU;判斷是否為負溫度</p><p><b>  CLRC</b></p><p><b>  FSHU:</b></p><p>  JCNOTFU;不是負數(shù)轉(zhuǎn)NOTFU</p><p>  ADDA,#01H</p><p><

104、b>  CPLA</b></p><p>  SETBFSHU;負數(shù)標致位置1</p><p>  NOTFU:CLRFSHU</p><p>  OUTPRO:RET</p><p><b>  XIAOSHU:</b></p><p>  DB 00H

105、00H 01H 02H 03H 03H 04H 04H 05H 06H ;小數(shù)部分轉(zhuǎn)化為BCD表</p><p><b>  END</b></p><p><b>  系統(tǒng)設計與分析</b></p><p><b>  系統(tǒng)原理圖</b></p><p><b>

106、;  課程設計總結(jié)</b></p><p>  本設計是以溫度采集及控制過程設計為總目標,以89C51單片機最小應用系統(tǒng)為總控制中心,輔助設計有溫度檢測電路、A/D轉(zhuǎn)換電路、鍵盤電路、數(shù)碼管顯示電路、控溫電路等。</p><p>  89C51單片機把中央處理器、存儲器、輸入/輸出接口電路以及定時器計數(shù)器集成在一塊芯片上,具有體積小、功耗低、價格低廉、抗干擾能力強且可靠性高等特

107、點。</p><p>  89C51單片機最小系統(tǒng)由89C51單片機、數(shù)據(jù)擴展芯片、時鐘電路和復位電路構(gòu)成,形成了總控制中心,對數(shù)據(jù)進行處理。本文中詳細介紹了89C51的引腳功能,為正確使用89C51提供了條件,同時也對最小系統(tǒng)中的替他部分進行了說明及描述。</p><p>  輸入輸出接口電路包含溫度傳感器、A/D轉(zhuǎn)換器、鍵盤電路和顯示電路。溫度信號通過溫度傳感器,經(jīng)過A/D轉(zhuǎn)換器,將模

108、擬信號變?yōu)閿?shù)字信號,送入89C51單片機中,對數(shù)據(jù)進行處理,再由溫度調(diào)節(jié)模塊對溫度進行合理的調(diào)節(jié)、控制,由數(shù)碼管顯示電路顯示溫度數(shù)值,方便直觀的了解大棚中的溫度情況。</p><p>  最后對89C51單片機進行軟件編程,完成本文研究的內(nèi)容,即蔬菜大棚的溫度控制設計。</p><p><b>  參考文獻</b></p><p>  [1]

109、梅麗鳳等.單片機原理及接口技術(shù).清華大學出版社,2009.7</p><p>  [2] 趙晶.Prote199高級應用.人民郵電出版社,2000 </p><p>  [3] 于海生.微型計算機控制技術(shù).清華大學出版社,2003.4</p><p>  [4] 隋振.單片機應用與編程技術(shù).中國電力出版社,2009</p><p>  [5]

110、 馮國民.如何調(diào)節(jié)蔬菜大棚的溫濕度及光照.吉林農(nóng)業(yè)出版社,2006</p><p>  [6] 周堅.片機輕松入門.北京更空橫田大學出版社,2010</p><p>  [7] 王慶利,袁建敏.單片機設計案例實踐教程.郵電大學出版社,2008</p><p>  [8] 沈紅衛(wèi).基于單片機的智能系統(tǒng)設計與實現(xiàn).電子工業(yè)出版社,2005</p><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論