基于單片機的多點無線溫度監(jiān)控系統(tǒng)設計-畢業(yè)設計_第1頁
已閱讀1頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于單片機的多點無線溫度監(jiān)控系統(tǒng)設計</p><p><b>  前言 </b></p><p>  在工業(yè)生產中,電流、電壓、溫度、壓力、流量、流速和開關量都是常用的主要被控參數。其中,溫度控制也越來越重要。在工業(yè)生產的很多領域中,人們都需要對各類加熱爐、熱處理爐、反應爐和鍋爐中的溫度進行檢測和控制。采用單片機對溫度進行控制不僅具有控制方便、簡

2、單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術指標,從而能夠大大的提高產品的質量和數量。因此,單片機對溫度的控制問題是一個工業(yè)生產中經常會遇到的控制問題。 單片機是一種集CPU、RAM、ROM、I/O接口和中斷系統(tǒng)等部分于一體的器件,只需要外加電源和晶振就可實現(xiàn)對數字信息的處理和控制。因此,單片機廣泛用于現(xiàn)代工業(yè)控制中。</p><p>  隨著“信息時代”的到來,作為獲取信息的手段——傳感器技術得

3、到了顯著的進步,其應用領域越來越廣泛,對其要求越來越高,需求越來越迫切。傳感器技術已成為衡量一個國家科學技術發(fā)展水平的重要標志之一。因此,了解并掌握各類傳感器的基本結構、工作原理及特性是非常重要的。</p><p>  由于傳感器能將各種物理量、化學量和生物量等信號轉變?yōu)殡娦盘?,使得人們可以利用計算機實現(xiàn)自動測量、信息處理和自動控制,但是它們都不同程度地存在溫漂和非線性等影響因素。傳感器主要用于測量和控制系統(tǒng),它

4、的性能好壞直接影響系統(tǒng)的性能。因此,不僅必須掌握各類傳感器的結構、原理及其性能指標,還必須懂得傳感器經過適當的接口電路調整才能滿足信號的處理、顯示和控制的要求,而且只有通過對傳感器應用實例的原理和智能傳感器實例的分析了解,才能將傳感器和信息通信和信息處理結合起來,適應傳感器的生產、研制、開發(fā)和應用。另一方面,傳感器的被測信號來自于各個應用領域,每個領域都為了改革生產力、提高工效和時效,各自都在開發(fā)研制適合應用的傳感器,于是種類繁多的新型

5、傳感器及傳感器系統(tǒng)不斷涌現(xiàn)。溫度傳感器是其中重要的一類傳感器。其發(fā)展速度之快,以及其應用之廣,并且還有很大潛力。</p><p>  為了提高對傳感器的認識和了解,尤其是對溫度傳感器的深入研究以及其用法與用途,基于實用、廣泛和典型的原則而設計了本系統(tǒng)。本文利用單片機結合傳感器技術而開發(fā)設計了這一溫度監(jiān)控系統(tǒng)。文中傳感器理論與單片機實際應用有機結合,詳細地講述了基于單片機AT89S51和溫度傳感器DS18B20的溫

6、度控制系統(tǒng)的設計方案與軟硬件實現(xiàn)方案。系統(tǒng)包括數據采集模塊,單片機控制模塊,顯示模塊和溫度設置模塊,驅動電路五個部分。文中對每個部分功能、實現(xiàn)過程作了詳細介紹。本設計應用性比較強,系統(tǒng)稍微改裝可以作為生物培養(yǎng)液溫度監(jiān)控系統(tǒng),可以做熱水器溫度調節(jié)系統(tǒng)、實驗室溫度監(jiān)控系統(tǒng)等等。設計后的系統(tǒng)具有操作方便,控制靈活等優(yōu)點。</p><p><b>  1 概述</b></p><

7、;p>  1.1 課題研究的目的及意義</p><p>  隨著社會的發(fā)展,溫度的測量及控制變得越來越重要。溫度是生產過程和科學實驗中普遍而且重要的物理參數。在工業(yè)生產過程中為了高效地進行生產,必須對生產工藝過程中的主要參數,如溫度,壓力,流量,速度等進行有效的控制。其中溫度的控制在生產過程中占有相當大的比例。準確測量和有效控制溫度是優(yōu)質,高產,低耗和安全生產的重要條件。在工業(yè)的研制和生產中,為了保證生產

8、過程的穩(wěn)定運行并提高控制精度,采用微電子技術是重要的途徑。它的作用主要是改善勞動條件,節(jié)約能源,防止生產和設備事故,以獲得好的技術指標和經濟效益。</p><p>  本課題采用51單片機來對溫度進行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術指標。</p><p>  作為控制系統(tǒng)中的一個典型實驗設計,單片機溫度控制系統(tǒng)綜合運用了微機原理、自動控制原

9、理、傳感器原理、模擬電子技術、數字控制技術、鍵盤顯示技術等諸多方面的知識,是對所學知識的一次綜合測試。</p><p>  1.2 課題研究現(xiàn)狀分析</p><p>  由于現(xiàn)代工藝越來越多的需要對實時溫度進行監(jiān)測和控制,而且需要的精度越來越高。所以溫度控制系統(tǒng)國內外許多有關人員的重視,得到了十分廣泛的應用。溫度控制系統(tǒng)發(fā)展迅速,而且成果顯著。由于單片微處理器的性能日益提高、價格又不斷降

10、低,使其性能價格比的優(yōu)勢非常明顯。因此,如何將單片微處理器應用到鍋爐溫度自動控制領域,為越來越多的生產廠家所重視。</p><p>  目前先進國家各種爐窯自動化水平較高,裝備有完善的檢測儀表和計算機控制系統(tǒng)。其計算機控制系統(tǒng)已采用集散系統(tǒng)和分布式系統(tǒng)的形式,大部分配有先進的控制算法,能夠獲得較好的工藝性能指標。單片微型計算機是隨著超大規(guī)模集成電路的技術的發(fā)展而誕生的。由于它具有體積小,功能強,性價比高等優(yōu)點,所

11、以廣泛應用于電子儀表,家用電器,節(jié)能裝置,軍事裝置,機器人,工業(yè)控制等諸多領域,使產品小型化,智能化,既提高了產品的功能和質量又降低了成本,簡化了設計。</p><p><b>  1.3 技術指標</b></p><p>  設計并制作一個基于單片機的溫度控制系統(tǒng),能夠對爐溫進行控制。爐溫可以在一定范圍內由人工設定,并能在爐溫變化時實現(xiàn)自動控制。若測量值高于溫度設

12、定范圍,由單片機發(fā)出控制信號,經過驅動電路使加熱器停止工作。當溫度低于設定值時,單片機發(fā)出一個控制信號,啟動加熱器。通過繼電器的反復開啟和關閉,使爐溫保持在設定的溫度范圍內。</p><p>  ◆溫度設定范圍為0~99℃,最小區(qū)分度為1℃,溫度控制的誤差≤1℃</p><p>  ◆能夠用數碼管精確顯示當前實際溫度值</p><p>  ◆按鍵控制:設置復位鍵、加

13、一鍵、減一鍵</p><p><b>  ◆越限報警</b></p><p><b>  2 總體設計</b></p><p>  2.1 系統(tǒng)設計方案論證</p><p>  實現(xiàn)溫度控制的方法主要有以下幾種。</p><p>  方案一:采用純硬件的閉環(huán)控制系統(tǒng)。該系

14、統(tǒng)的優(yōu)點在于速度較快,但可靠性比較差控制精度比較低、靈活性小、線路復雜、調試、安裝都不方便。且要實現(xiàn)題目所有的要求難度較大。</p><p>  方案二:FPGA/CPLD或采用帶有IP內核的FPGA/CPLD方式。即用FPGA/CPLD完成采集,存儲,顯示及A/D等功能,由IP核實現(xiàn)人機交互及信號測量分析等功能。這種方案的優(yōu)點在于系統(tǒng)結構緊湊,可以實現(xiàn)復雜的測量與與控制,操作方便;缺點是調試過程復雜,成本較高。

15、</p><p>  方案三:單片機與高精度溫度傳感器結合的方式。即用單片機完成人機界面,系統(tǒng)控制,信號分析處理,由前端溫度傳感器完成信號的采集與轉換。這種方案克服了方案一、二的缺點,所以本課題任務是基于單片機和溫度傳感器實現(xiàn)對溫度的控制。</p><p>  2.2 系統(tǒng)結構框圖</p><p>  系統(tǒng)主要包括數據采集模塊,單片機控制模塊,顯示模塊和溫度設置模

16、塊,驅動電路五個部分。系統(tǒng)框圖如圖2.2-1所示</p><p>  圖2.2-1 系統(tǒng)框圖</p><p>  其中數據采集模塊負責實時采集溫度數據,采集到的溫度數據傳輸到單片機,由單片機處理后的數據送顯示部分顯示。設置模塊可設置預定溫度,當檢測到的溫度低于設定溫度時,單片機控制驅動電路啟動加熱,并發(fā)出報警聲;當檢測溫度高于設定溫度時,停止加熱。</p><p>

17、;<b>  3 硬件設計</b></p><p>  3.1 元器件的選擇</p><p>  3.1.1 單片機選擇</p><p>  單片機的選擇在整個系統(tǒng)設計中至關重要,要滿足大內存、高速率、通用性、價格便宜等要求,本課題選擇AT89S51作為主控芯片。</p><p>  AT89S51是一個低功耗,高

18、性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。AT89S51芯片具有以下特性:&l

19、t;/p><p>  ◆指令集和芯片引腳與Intel公司的8051兼容;</p><p>  ◆4KB片內在系統(tǒng)可編程Flash程序存儲器;</p><p>  ◆時鐘頻率為0~33MHz;</p><p>  ◆128字節(jié)片內隨機讀寫存儲器(RAM);</p><p>  ◆32個可編程輸入/輸出引腳;</p>

20、;<p>  ◆2個16位定時/計數器;</p><p>  ◆6個中斷源,2級優(yōu)先級;</p><p>  ◆全雙工串行通信接口;</p><p><b>  ◆監(jiān)視定時器;</b></p><p><b>  ◆2個數據指針。</b></p><p>  A

21、T89S51單片機的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復用的引腳,以及32條輸入輸出I/O引腳。</p><p>  ◆電源引腳Vcc和Vss</p><p>  Vcc(40腳):接+5V電源正端;</p><p>  Vss(20腳):接+5V電源正端。</p><p>  ◆外接晶振引腳XTAL

22、1和XTAL2</p><p>  XTAL1(19腳):接外部石英晶體的一端。在單片機內部,它是一個反相放大器的輸入端,這個放大器構成采用外部時鐘時,對于HMOS單片機,該引腳接地;對于CHOMS單片機,該引腳作為外部振蕩信號的輸入端。</p><p>  XTAL2(18腳):接外部晶體的另一端。在單片機內部,接至片內振蕩器的反相放大器的輸出端。當采用外部時鐘時,對于HMOS單片機,該

23、引腳作為外部振蕩信號的輸入端。對于CHMOS芯片,該引腳懸空不接。</p><p>  ◆控制信號或與其它電源復用引腳有RST/VPD、ALE/P、PSE等4種形式。</p><p>  RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機的上電復位或掉電保護端。當單片機振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的高電平,就可實現(xiàn)復位操作,使單片機復位到初始狀

24、態(tài)。</p><p>  當VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源VPD(+5V)為內部RAM供電,以保證RAM中的數據不丟失。</p><p>  ALE/ P (30腳):當訪問外部存儲器時,ALE(允許地址鎖存信號)以每機器周期兩次的信號輸出,用于鎖存出現(xiàn)在P0口的地址信號。</p><p>  PSEN(29腳):片外程序存儲器讀選

25、通輸出端,低電平有效。當從外部程序存儲器讀取指令或常數期間,每個機器周期PESN兩次有效,以通過數據總線口讀回指令或常數。當訪問外部數據存儲器期間,PESN信號將不出現(xiàn)。</p><p>  EA/Vpp(31腳):EA為訪問外部程序儲器控制信號,低電平有效。當EA端保持高電平時,單片機訪問片內程序存儲器4KB(MS—52子系列為8KB)。若超出該范圍時,自動轉去執(zhí)行外部程序存儲器的程序。當EA端保持低電平時,無

26、論片內有無程序存儲器,均只訪問外部程序存儲器。對于片內含有EPROM的單片機,在EPROM編程期間,該引腳用于接21V的編程電源Vpp。</p><p>  ◆輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口</p><p>  P0口(39腳~22腳):這8條引腳有兩種不同功能,分別適用于兩種不同情況。第一種情況是89S51不帶片外存儲器,P0口可以作為通用I/O口使用,P0.0-

27、P0.7用于傳送CPU的輸入/輸出數據。第二種情況是89S51帶片外存儲器,P0.0-P0.7在CPU訪問片外存儲器時用于傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀寫數據。 </p><p>  P1口(1腳~8腳):這8條引腳和P0口的8條引腳類似,P1.7為最高位,P1.0為最低位。當P1口作為通用I/O口使用時,P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數據。

28、 </p><p>  P2口(21腳~28腳):這組引腳的第一功能和上述兩組引腳的第一功能相同,既它可以作為通用I/O口使用。 </p><p>  P3口(10腳~17腳):P3.0~P3.7統(tǒng)稱為P3口。而且P3口的每一條引腳均可獨立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見表3.1.1-1。</p><p>  表3.1.1-1 單片機P3口管

29、腳第2功能</p><p>  AT89S51單片機引腳圖如圖3.1.1-1所示</p><p>  圖3.1.1-1 單片機引腳圖</p><p>  3.1.2 傳感器選擇</p><p>  本系統(tǒng)采用DALLAS半導體公司生產的一線式數字溫度傳感器DS18B20采集溫度數據、測控系統(tǒng)和大型設備中。它具有體積小,接口方便,傳輸距離遠

30、等特點。 </p><p>  DS18B20的性能特點:采用單總線專用技術,直接輸出被測溫度值(9位二進制數,含符號位),測溫范圍為-55℃-+125℃,測量分辨率為0.0625℃。</p><p>  DS18B20內部結構主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖3.1.2-2所示。</p>

31、<p>  圖3.1.2-2  DS18B20引腳分布圖</p><p>  DS18B20高速暫存器共9個存存單元,如表3.1.2-1所示: </p><p>  表3.1.2-1 DS18B20高速暫存器</p><p>  以12位轉化為例說明溫度高低字節(jié)存放形式及計算:12位轉化后得到的12位數據,存儲在18B20的兩個高低兩個8位的

32、RAM中,二進制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625才能得到實際溫度。</p><p>  溫度由DALLAS 公司生產的一線式數字溫度傳感器DS18B20 采集。DS18B20 測溫范圍為-55°C~+125°C,測溫分辨率可達0.0625°C,

33、被測溫度用符號擴展的16 位補碼形式串行輸出。CPU 只需一根端口線就能與諸多DS18B20 通信。公司生產的一線式數字溫度傳感器DS18B20 采集。DS18B20 測溫范圍為-55°C~+125°C,測溫分辨率可達0.0625°C,被測溫度用符號擴展的16 位補碼形式串行輸出。</p><p>  在硬件上,DS18B20與單片機的連接有兩種方法,一種是Vcc接外部電源,GND接

34、地,I/O與單片機的I/O線相連;另一種是用寄生電源供電,此時UDD、GND接地,I/O接單片機I/O。無論是內部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻。 </p><p>  DS18B20有六條控制命令,如表3.1.2-3所示:</p><p>  表3.1.2-3 DS18B20控制命令</p><p>  CPU對DS18B20的訪問流程

35、是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作,數據操作。DS18B20每一步操作都要遵循嚴格的工作時序和通信協(xié)議。如主機控制DS18B,須經三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。</p><p>  3.2 單片機控制模塊</p><p>  控制模塊是整

36、個設計方案的核心,它控制了溫度的采集、處理與顯示、溫度值的設定與溫度越限時控制電路的啟動。本控制模塊由單片機AT89S51及其外圍電路組成,電路如圖3.2-1所示。</p><p>  圖3.2-1 單片機控制模塊電路</p><p>  該電路采用按鍵加上電復位,S2為復位按鍵,復位按鍵按下后,復位端通過51Ω的小電阻與電源接通,迅速放電,使RST引腳為高電平,復位按鍵彈起后,電源通過

37、8.2KΩ的電阻對10KμF的電容C5重新充電,RST引腳端出現(xiàn)復位正脈沖.</p><p>  AT89S51內部有一個高增益反相放大器,用于構成振蕩器,但要形成時鐘脈沖,外部還需附加電路,本設計采用內部時鐘方式,利用芯片內部的振蕩器,然后在引腳XTAL1和XTAL2兩端跨接晶體振蕩器,就構成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內部時鐘電路,C6和C7的值通常選擇為30pF左右,晶振Y1選擇12MHz.為了減

38、小寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器電容應盡可能安裝得與單片機引腳XTAL1和XTAL2靠近。</p><p>  單片機的31腳(EA)接+5V電源,表示允許使用片內ROM。</p><p>  3.3 溫度數據采集模塊</p><p>  溫度由DALLAS 公司生產的一線式數字溫度傳感器DS18B20 采集。DS18B20 測溫范圍為-55&

39、#176;C~+125°C,測溫分辨率可達0.0625°C,被測溫度用符號擴展的16 位補碼形式串行輸出。CPU 只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。</p><p>  本設計采用三引腳PR-35封裝的DS18B20,其引腳圖見圖3。Vcc接外部+5V電源,GND接地,I/O與單片機的P3.4(T0)引腳相連。</p>

40、<p><b>  3.4 顯示模塊</b></p><p>  顯示部分采用LED靜態(tài)顯示方式,共陰極的數碼管的公共端COM連接在一起接地,每位的段選線與74HC164的8位并口相連,只要在該位的段選線上保持段選碼電平,該位就能保持相應的顯示字符,考慮到節(jié)約單片機的I/O資源,因而采用串行接口方式,外接8位移位寄存器74HC164構成顯示電路,電路如圖3.4-1所示。<

41、;/p><p>  圖3.4-1 顯示模塊電路</p><p>  74HC164的邏輯功能介紹如下:</p><p>  當清除端(CLEAR)為低電平時,輸出端(QA-QH)均為低電平。 串行數據輸入端(A,B)可控制數據當 A、B 有一個為高電平,則另一個就允許輸入數據,并在 CLOCK 上升沿作用下決定 Q0 的狀態(tài)。</p><p>

42、  H-高電平 L-低電平 X-任意電平 ↑-低到高電平跳變 QA0,QB0,QH0 -規(guī)定的穩(wěn)態(tài)條件建立前的電平 QAn,QGn -時鐘最近的↑前的電平。</p><p><b>  。</b></p><p>  圖3.4-2 74HC164時序圖</p><p>  在單片機的TXD(P3.1)運行時鐘信號,將顯示數據由RXD(P3.0

43、)口串行輸出至74HC164的A、B端。</p><p>  3.5 溫度設置模塊</p><p>  溫度設置部分采用獨立式按鍵,S4為溫度值加1按鍵,與單片機的P0.0口相連;S3為溫度值減1按鍵,與單片機的P0.1口相連。當沒有鍵按下時,單片機與之相連的輸入口線為高電平,當任何一個按鍵按下時,與之相連的 輸入口線被置為低電平,產生外中斷條件,在 中斷服務程序中讀取鍵盤值。溫度設置電

44、路如圖3.5-1所示。</p><p>  圖3.5-1 溫度設置模塊電路</p><p><b>  3.6 控制電路</b></p><p>  控制電路與單片機的P0.2口相連,由于單片機輸出控制信號非常微弱,需要用三極管來驅動外圍電路,三極管選用NPN型的 9014,當檢測溫度低于設定溫度時,在單片機的P0.2口輸出高電平控制信號,

45、使三極管9014導通,使繼電器兩控制端產生壓差,從而使繼電器吸合,常開觸點接通,控制外部電路對鍋爐進行加熱;當檢測溫度高于設定溫度時,單片機輸出低電平信號,三極管截止,繼電器不吸合,外部電路停止加熱??刂齐娐冯娐穲D如圖3.6-1所示。</p><p>  圖3.6-1 控制電路</p><p><b>  4 軟件設計</b></p><p&g

46、t;  系統(tǒng)軟件要實現(xiàn)的功能如下:</p><p>  利用4只共陰數碼管,LED1顯示檢測溫度十位,LED2顯示檢測溫度個位,LED3顯示設定溫度十位,LED4顯示設定溫度個位,顯示分辨率為1℃。單片機復位后默認設定溫度為40℃,當每按下一次設定溫度上升按鈕ADD時,設定溫度增加1℃,最高為120℃,當每按下一次設定溫度下降按鈕DEC時,設定溫度減少1℃,最低設定為0℃。當設定溫度大于檢測溫度時加熱輸出,當設定

47、溫度小于檢測溫度時加熱停止。</p><p>  4.1 主程序流程圖</p><p>  溫度控制程序的設計應考慮如下:</p><p>  ◆鍵盤掃描、鍵碼識別和溫度顯示;</p><p><b>  ◆爐溫采樣;</b></p><p><b>  ◆數據處理;</b>

48、;</p><p><b>  ◆越限報警和處理。</b></p><p>  系統(tǒng)流程圖如圖4.1-1所示。</p><p>  圖4.1-1 系統(tǒng)流程圖</p><p>  4.2 溫度傳感器DS18B20工作過程及時序</p><p>  DS18B20工作過程中的協(xié)議如下:</p

49、><p>  初始化——ROM操作命令——存儲器操作命令——處理數據</p><p>  4.2.1 初始化時序</p><p>  時序如圖4.2.1-1所示。主機總線發(fā)送復位脈沖(最短為480μS,最高時間為960μS的低電平信號),接著再釋放總線(置總線為高電平)并進入接收狀態(tài)。DS18B20在檢測到總線的上升沿后等待15—60μS發(fā)出器件存在脈沖(低電平持續(xù)6

50、0—240μS)。初始化程序如下所示:</p><p>  INIT:SETBP3.4</p><p><b>  NOP</b></p><p><b>  CLRP3.4</b></p><p>  MOVR0,#0FFH</p><p><b>  D

51、JNZR0,$</b></p><p><b>  SETBP3.4</b></p><p>  MOVR0,#100</p><p>  LIU:JNBP3.4,IT3</p><p>  DJNZR0,LIU</p><p><b>  CLR38H<

52、;/b></p><p><b>  SJMPIT7</b></p><p>  IT3: SETB38H</p><p>  IT7: MOV R0,#240</p><p><b>  DJNZR0,$</b></p><p><b&

53、gt;  SETBP3.4</b></p><p><b>  RET</b></p><p>  圖4.2.1-1 初始化時序圖</p><p>  此初始化程序功能為:檢測DS18B20是否存在,如存在,將位地址38H置1;如不存在,將位地址38H清零。</p><p><b>  4.2.

54、2寫時序</b></p><p>  單片機寫DS18B20的時序如圖4.2.2-2所示,當主機總線從高拉至低電平時就產生寫時間隙,DS18B20在檢測到下降沿后15μS時開始采樣總線上的電平,所以15μS之內應將所需寫的位送到總線上,DS18B20再15—60μS間對總線采樣,每寫一位總時間必須在60—120μS之間完成。若低電平寫入的位是0,高電平寫入的位是1,連續(xù)寫時位間的間隙應大于1μS。程序

55、如下所示:</p><p>  WRITER:MOVR0,#8</p><p>  WR1:CLRP3.4</p><p><b>  MOVR4,#6</b></p><p><b>  DJNZR4,$</b></p><p><b>  RRC

56、A</b></p><p>  MOVP3.4,C</p><p>  MOVR4,#40</p><p><b>  DJNZR4,$</b></p><p><b>  SETBP3.4</b></p><p><b>  NOP</b

57、></p><p>  DJNZR0,WR1</p><p><b>  SETBP3.4</b></p><p><b>  RET</b></p><p>  圖4.2.2-1 單片機寫DS18B20時序圖</p><p><b>  4.2.3讀時

58、序</b></p><p>  單片機讀DS18B20的時序如圖4.2.3-1所示,單片機主動產生一個下降沿的啟動信號,并維持低電平大于1μS后釋放總線,15μS后DS18B20占主動權,DS18B20會將數據按位放在總線上(低位在先,當讀取兩個字節(jié)的溫度值時,低字節(jié)在先),這時單片機可讀取信號,讀取一位的時間應在60μS內完成。當需要讀取下一位時再產生下降沿啟動信號。</p><

59、p>  圖4.2.3-1 單片機讀DS18B20的時序圖</p><p>  READ:SETBRS0</p><p><b>  MOVR4,#2</b></p><p>  MOVR0,#36H</p><p>  RE1:MOVR5,#8</p><p>  RE2:C

60、LRC</p><p><b>  SETBP3.4</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLRP3.4</b></p><p><

61、b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETBP3.4</b></p><p><b>  MOVR6,#7</b></p&g

62、t;<p><b>  DJNZR6,$</b></p><p>  MOVC,P3.4</p><p>  MOVR6,#20</p><p><b>  DJNZR6,$</b></p><p><b>  RRCA</b></p>&

63、lt;p>  DJNZR5,RE2</p><p><b>  MOV@R0,A</b></p><p><b>  DECR0</b></p><p>  DJNZR4,RE1</p><p><b>  CLRRS0</b></p><p

64、><b>  NOP</b></p><p><b>  RET</b></p><p>  此程序功能為:讀取DS18B20 A/D轉換后的溫度值,轉換后的二進制存入36H、35H單元,默認為12位轉換,低8位存入36H單元,高8位存入35H單元(35H單元的高5位均為符號位,所以判斷符號只需判斷低12位數據的最高位即可)。1表示為零度以

65、下,0表示零度以上,實際有效位為11位。</p><p><b>  5 系統(tǒng)調試</b></p><p>  5.1 測試環(huán)境 </p><p><b>  環(huán)境溫度為:23℃</b></p><p>  測試儀器: 標準溫度計、加熱工具(此處選用燒熱的電烙鐵)、制冷工具(此處選用冰塊)&l

66、t;/p><p><b>  5.2 測量方法</b></p><p>  系統(tǒng)溫度測量的準確度。我們將標準溫度計和溫度控制系統(tǒng)的探頭放在一起,選定若干不同溫度點,記錄下標準溫度計的溫度和溫度控制系統(tǒng)測量顯示的溫度進行比較。</p><p>  設定開啟加熱溫度,改變環(huán)境溫度,驗證檢測到的溫度高于設定溫度時是否停止加熱,檢測到的溫度小于設定溫度時

67、是否啟動加熱。</p><p><b>  5.3 測試結果</b></p><p>  ◆本系統(tǒng)測量顯示溫度與標準溫度計測量溫度對比如表5.3-1所示。</p><p>  表5.3-1 溫度測量準確度</p><p>  根據溫度測量數據的對比可知,本系統(tǒng)能夠準確地測量并顯示環(huán)境溫度。</p>&l

68、t;p>  ◆設定不同的開啟加熱溫度,改變溫度,系統(tǒng)工作情況如表5.3-2所示。</p><p>  表5.3-2 系統(tǒng)加熱測量</p><p>  發(fā)光二極管亮表示啟動加熱,滅表示停止加熱。根據表5.3-2可知,系統(tǒng)可以自由設定不同的加熱溫度,溫度設定當環(huán)境溫度低于設定溫度時系統(tǒng)啟動加熱,當環(huán)境溫度高于或等于設定溫度時,系統(tǒng)停止加熱。</p><p>  

69、經過反復測試,系統(tǒng)溫度設定范圍為0~120℃,最小區(qū)分度為1℃,溫度控制的誤差≤1℃;能夠測量并用數碼管顯示當前實際溫度值;通過復位鍵可以使系統(tǒng)設定溫度還原默認值,通過加一鍵和減一鍵可以以1℃步進設置預定溫度;環(huán)境溫度低于設定溫度時,啟動加熱,紅色發(fā)光二極管點亮,環(huán)境溫度高于或等于設定溫度時,停止加熱,紅色發(fā)光二極管滅。達到了課題要求的技術指標。</p><p><b>  5 結束語</b&g

70、t;</p><p>  本設計詳細介紹了基于單片機AT89S51的溫度控制系統(tǒng)的設計方案與軟硬件實現(xiàn)。系統(tǒng)包括數據采集模塊,單片機控制模塊,顯示模塊和溫度設置模塊,驅動電路五個部分。文中對每個部分功能、實現(xiàn)過程作了詳細介紹。完成了課題既定的任務,達到了預期的目標。系統(tǒng)具有如下特點:</p><p>  采用智能溫度傳感器DS18B20采集溫度數據,簡化了硬件電路設計,溫度采集數據更加精準

71、;</p><p>  AT89S51單片機的采用,有利于功能擴展;</p><p>  電路設計充分考慮了系統(tǒng)可靠性和安全性。</p><p>  本系統(tǒng)沒有增加外部存儲器,設定溫度不能保存,斷電復位后必須重新設置溫度;采用靜態(tài)顯示方式,從而使用了較多的驅動芯片,增加了硬件電路的復雜性;只使用兩位顯示,即顯示溫度的十位、個位,沒有充分發(fā)揮DS18B20的特性。&l

72、t;/p><p>  本設計軟件和硬件相結合,有相當大的難度,同時也有很大的實用性。在做畢業(yè)設計的過程中,我的理論和實踐水平都有了較大的提高。在本課題的設計中,我熟練掌握了單片機硬件設計和接口技術,同時對溫度傳感器的原理及應用有了一定的了解,掌握了各種控制電路及其相關元器件的使用。通過這次畢業(yè)設計,我不僅學會如何將所學專業(yè)知識運用到實際生活中,還學會如何克服未知的困難,解決難題的方法。</p><

73、p>  四年的本科學習生涯即將結束,在本人做畢業(yè)設計中,得到了我的導師XX的悉心指導和無私幫助。他嚴謹的治學態(tài)度和謙和的為人給我留下了深刻的印象。</p><p>  雖然××老師公務繁忙,教學任務重,但在我做畢業(yè)設計的每個階段,從查閱資料到設計草案的確定和修改,中期檢查,后期詳細設計,實物制作等整個過程中都給予了我悉心的指導。在課題實施階段,感謝實驗室的老師XX對我的幫助和實驗器材、場

74、地的支持。</p><p>  其次要感謝大學四年來所有的授課老師,為我們打下電子專業(yè)知識的基礎;同時還要感謝所有的同學們,正是因為有了你們的支持和鼓勵。此次畢業(yè)設計才會順利完成。</p><p>  最后我要深深地感謝我的家人,正是他們含辛茹苦地把我養(yǎng)育成人,在生活和學習上給予我無盡的愛、理解和支持,才使我時刻充滿信心和勇氣,克服成長路上的種種困難,順利的完成大學學習。</p>

75、;<p>  還有許許多多給予我學業(yè)上鼓勵和幫助的師長、朋友,在此無法一一列舉,在此也表示忠心地感謝!</p><p>  大學生活的結束,也是我人生新的生活起點,我將謹記老師們的教誨,將自己的所學奉獻給社會。</p><p><b>  附錄</b></p><p><b>  附錄1:系統(tǒng)總原理</b>&

76、lt;/p><p>  附錄2:系統(tǒng)PCB圖</p><p><b>  附錄3:源程序清單</b></p><p>  //………………………..主程序及初始化程序……………………//</p><p>  KEY_ADDBITP0.0</p><p>  KEY_DECBITP0.1<

77、/p><p>  OUTPUTBITP0.2</p><p>  ORG0000H</p><p>  LJMPMAIN</p><p>  ORG0100H</p><p>  MAIN:MOVSP,#60H</p><p>  MOV4AH,#15 ;單片機復

78、位后默認設定溫度為15℃</p><p>  MOV4BH,#0</p><p>  CLROUTPUT</p><p>  MAAI:LCALLTEMPER1</p><p>  LCALLDISPLAY</p><p>  LCALLKEYSCAN</p><p>  

79、LCALLOUT</p><p>  SJMPMAAI</p><p>  //………………………DS18B20初始化程序………………………//</p><p>  TEMPER1:LCALLINIT</p><p>  JNB38H,TEMPER1</p><p>  MOVA,#0CCH<

80、/p><p>  LCALLWRITER</p><p>  MOVA,#44H</p><p>  LCALLWRITER</p><p>  TE3:LCALLINIT</p><p>  MOVA,#0CCH</p><p>  LCALLWRITER</p&g

81、t;<p>  MOVA,#0BEH</p><p>  LCALLWRITER</p><p>  LCALLREAD</p><p><b>  NOP</b></p><p><b>  RET</b></p><p>  INIT:SETB

82、P3.4 ;置1</p><p><b>  NOP</b></p><p>  CLRP3.4 ;清零</p><p>  MOVR0,#0FFH</p><p>  DJNZR0,$</p><p>  SETBP3.

83、4</p><p>  MOVR0,#100</p><p>  LIU:JNBP3.4,IT3</p><p>  DJNZR0,LIU</p><p><b>  CLR38H</b></p><p><b>  SJMPIT7</b></p

84、><p>  IT3:SETB38H</p><p>  IT7:MOVR0,#240</p><p>  DJNZR0,$</p><p>  SETBP3.4</p><p><b>  RET</b></p><p>  //………………………DS

85、18B20寫數據………………………//</p><p>  WRITER:MOVR0,#8 </p><p>  WR1:CLRP3.4</p><p>  MOVR4,#6</p><p>  DJNZR4,$</p><p><b>  RRCA</b&g

86、t;</p><p>  MOVP3.4,C</p><p>  MOVR4,#40</p><p>  DJNZR4,$</p><p>  SETBP3.4</p><p><b>  NOP</b></p><p>  DJNZR0,WR1<

87、/p><p>  SETBP3.4</p><p><b>  RET</b></p><p>  //………………………DS18B20讀數據………………………//</p><p>  READ:SETBRS0 ;選擇工作寄存器組1</p><p>  MOVR

88、4,#2</p><p>  MOVR0,#36H ;從36H單元開始存</p><p>  RE1:MOVR5,#8</p><p>  RE2:CLRC</p><p>  SETBP3.4</p><p><b>  NOP</b></p>

89、<p><b>  NOP</b></p><p><b>  CLRP3.4</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b>

90、</p><p>  SETBP3.4</p><p>  MOVR6,#7</p><p>  DJNZR6,$</p><p>  MOVC,P3.4</p><p>  MOVR6,#20</p><p>  DJNZR6,$</p><p>

91、;<b>  RRCA</b></p><p>  DJNZR5,RE2</p><p>  MOV@R0,A</p><p><b>  DECR0</b></p><p>  DJNZR4,RE1</p><p><b>  CLRRS0

92、</b></p><p><b>  NOP</b></p><p><b>  RET</b></p><p>  //………………………顯示程序………………………//</p><p>  DISPLAY:CLR7FH</p><p><b>  

93、CLR7EH</b></p><p>  MOVA,36H</p><p>  ANLA,#0FH</p><p>  MOV40H,A</p><p>  MOVA,36H</p><p><b>  SWAPA</b></p><p>

94、;  ANLA,#0FH</p><p>  MOV41H,A</p><p>  MOVA,35H</p><p><b>  SWAPA</b></p><p>  ANLA,#0F0H</p><p>  ORLA,41H</p><p>  

95、JBACC.7,FU</p><p>  MOV41H,A</p><p>  MOVB,#100</p><p><b>  DIVAB</b></p><p>  MOV53H,A</p><p><b>  MOVA,B</b></p&

96、gt;<p>  MOVB,#10</p><p><b>  DIVAB</b></p><p>  MOV52H,A</p><p>  MOV51H,B</p><p>  MOVA,40H</p><p>  CJNEA,#8,PD</p>

97、;<p>  MOV50H,#5</p><p>  PD:JCXIAO</p><p>  MOV50H,#5</p><p>  SJMPEXIT</p><p>  XIAO:MOV50H,#0</p><p>  EXIT:AJMPEXIT1</p>

98、<p>  FU:MOV41H,A</p><p>  MOVA,40H</p><p><b>  CPLA</b></p><p>  ANLA,#0FH</p><p><b>  INCA</b></p><p>  JBA

99、CC.4,FU1</p><p><b>  SJMPFU5</b></p><p>  FU1:SETB7FH</p><p>  ANLA,#0FH</p><p>  FU5:CJNEA,#8,FU2</p><p>  MOV50H,#5</p>&l

100、t;p><b>  SJMPFU3</b></p><p>  FU2:JCFU4</p><p>  MOV50H,#5</p><p>  SJMPFU3</p><p>  FU4:MOV50H,#0</p><p>  FU3:MOVA,41H<

101、;/p><p><b>  CPLA</b></p><p>  MOVC,7FH</p><p>  ADDCA,#0</p><p><b>  SETB7EH</b></p><p>  MOVB,#10</p><p><

102、b>  DIVAB</b></p><p>  MOV52H,A ;取溫度十位送52H</p><p>  MOV51H,B ;取溫度個位送51H</p><p>  EXIT1:MOVA,4AH</p><p>  MOVB,#100</p>&

103、lt;p><b>  DIVAB</b></p><p>  MOV4FH,A</p><p><b>  MOVA,B</b></p><p>  MOVB,#10</p><p><b>  DIVAB</b></p><p

104、>  MOV4EH,A ;取得設定溫度十位送4EH單元</p><p>  MOV4CH,B ;取得設定溫度個位送4CH單元</p><p>  MOVDPTR,#TAB</p><p>  MOVA,4CH ;取得設定溫度個位段碼并通過串口送出顯示</p><p&

105、gt;  MOVCA,@A+DPTR</p><p>  MOVSBUF,A</p><p>  JNBTI,$</p><p><b>  CLRTI</b></p><p>  MOVA,4EH ;取得設定溫度十位段碼并通過串口送出顯示</p><p>

106、;  MOVCA,@A+DPTR</p><p>  MOVSBUF,A</p><p>  JNBTI,$</p><p><b>  CLRTI</b></p><p>  MOVA,51H ;取得檢測溫度個位段碼并通過串口送出顯示</p><p> 

107、 MOVCA,@A+DPTR</p><p>  MOVSBUF,A</p><p>  JNBTI,$</p><p><b>  CLRTI</b></p><p>  MOVA,52H ;取得檢測溫度十位段碼并通過串口送出顯示</p><p>  M

108、OVCA,@A+DPTR</p><p>  MOVSBUF,A</p><p>  JNBTI,$</p><p><b>  CLRTI</b></p><p>  SJMPEXIT3</p><p>  //EXIT2:MOVA,#40H</p>&

109、lt;p>  //MOVSBUF,A</p><p>  //JNBTI,$</p><p><b>  //CLRTI</b></p><p>  EXIT3:NOP</p><p>  ACALLDELAY</p><p><b>  RET</b&g

110、t;</p><p>  //………………………數字碼表………………………// </p><p>  TAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,3EH,0E0H,0EFH,0E6H</p><p>  //………………………延時程序………………………//</p><p>  DELAY:MOV58H,#15

111、0 ;延時約20ms</p><p>  DE:MOV59H,#100</p><p>  DJNZ59H,$</p><p>  DJNZ58H,DE</p><p><b>  NOP</b></p><p><b>  RET</b>&

112、lt;/p><p>  //………………………鍵盤掃描程序………………………//</p><p>  KEYSCAN:JB7DH,SCAN1</p><p>  JBKEY_ADD,SCAN2</p><p>  DJNZR0,$</p><p>  JBKEY_ADD,SCAN2</p>

113、<p><b>  SETB7DH</b></p><p>  MOVA,4BH</p><p>  JNZSCAN3</p><p>  MOV4BH,#5</p><p>  SJMPSCAN2</p><p>  SCAN3:MOV4BH,#0<

114、/p><p>  MOVA,4AH</p><p>  CJNEA,#120,SCAN5 ;判斷設置溫度是否到上限120℃</p><p>  MOV4AH,#120</p><p>  SJMPSCAN2</p><p>  SCAN5:INC4AH</p><

115、p>  SCAN1:JNBKEY_ADD,SCAN2</p><p><b>  CLR7DH</b></p><p>  SCAN2:JB7CH,SCAN11</p><p>  JBKEY_DEC,SCAN12</p><p>  DJNZR0,$</p><p

116、>  JBKEY_DEC,SCAN12</p><p><b>  SETB7CH</b></p><p>  MOVA,4BH</p><p>  JZSCAN13</p><p>  MOV4BH,#0</p><p>  SJMPSCAN12</p&g

117、t;<p>  SCAN13:MOVA,4AH</p><p>  CJNEA,#0,SCAN14 ;判斷設置溫度是否到下限0℃</p><p>  MOV4AH,#10</p><p>  MOV4BH,#0</p><p>  SJMPSCAN12</p><p

118、>  SCAN14:DEC4AH</p><p>  MOV4BH,#5</p><p>  SCAN11:JNBKEY_DEC,SCAN12</p><p><b>  CLR7CH</b></p><p>  SCAN12:NOP</p><p><b>

119、;  RET</b></p><p>  //………………………輸出控制程序………………………//</p><p>  OUT:MOVA,41H</p><p>  JBACC.7,OUT1</p><p>  CJNEA,4AH,OUT2</p><p>  MOVA,40H</

120、p><p>  CJNEA,4BH,OUT3</p><p>  SJMPOUT4</p><p>  CLROUTPUT ;如果大于,就停止加熱</p><p>  SJMPOUT4</p><p>  OUT3:JCOUT5</p><p>  CLR

121、OUTPUT</p><p>  SJMPOUT4</p><p>  OUT5:SETBOUTPUT ;如果檢測溫度小于設定溫度就啟動加熱</p><p><b>  OUT4:NOP</b></p><p><b>  RET</b></p><p

122、><b>  END</b></p><p><b>  參考文獻:</b></p><p>  [1]孫育才:MCS-51系列單片微型計算機及其應用,第4版,東南大學出版社,2006.2,P43-P72</p><p>  [2]王慶:Protel 99 SE&DXP電路設計教程,電子工業(yè)出版社,2008.

123、6,P52-P109</p><p>  [3]康華光:電子技術基礎模擬部分,第4版,高等教育出版社,2006.8,P25-P85 </p><p>  [4]劉軍:單片機原理與接口技術,華東理工大學出版社,2006.5,P61-P106</p><p>  [5]賴壽宏:微型計算機控制技術,機械工業(yè)出版社,2009.6,P36-P87</p><

124、;p>  [6]李中望:一種智能火災報警系統(tǒng)的設計方案,安防科技,2008.3,P72-P126</p><p>  [7]王忠:基于單片機的語音數字聯(lián)網火災報警器設計,現(xiàn)代電子技術,2004.10,P19-P54</p><p>  [8]程 周:可編程序控制器原理與應用,高等教育出版社,2006.4,P76-P136</p><p>  [9]王永華:現(xiàn)

125、代電氣控制及PLC 應用,北京航空航天大學出版社,2007.6,P56-P98</p><p>  [10]吳中俊、黃永紅:可編程序控制器原理及應用,機械工業(yè)出版社,2008.8,P26-P83 </p><p>  [11]張萬忠、劉明芹:電器與PLC控制技術,化學工業(yè)出版社,2009.6,P57-P132</p><p>  [12]王兆義:實時服務可編程序控制

溫馨提示

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

評論

0/150

提交評論