基于單片機的溫度傳感器_第1頁
基于單片機的溫度傳感器_第2頁
基于單片機的溫度傳感器_第3頁
基于單片機的溫度傳感器_第4頁
基于單片機的溫度傳感器_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上目 錄專心-專注-專業(yè)基于單片機的溫度采集系統(tǒng)設計(DS18B20)邢帥 沈陽航空航天大學自動化學院摘要:隨著社會的進步和工業(yè)技術的發(fā)展,人們越來越重視溫度因素,許多產品對溫度范圍要求嚴格,而目前市場上普遍存在的溫度檢測儀器大都是單點測量,同時有溫度信息傳遞不及時、精度不夠的缺點,不利于工業(yè)控制者根據(jù)溫度變化及時做出決定。在這樣的形式下,開發(fā)一種能夠同時測量多點,并且實時性高、精度高,能夠綜合處理多點溫度信息的測量系統(tǒng)就很有必要。計算機特別是單片機的發(fā)展,單片機的應用領域越來越廣泛,單片機在工業(yè)控制、數(shù)據(jù)采集以及儀器儀表自動化等許多領域都起著十分重要的作用。但在實際應

2、用中,在要求響應速度快、實時性強、控制量多的應用場合,單個單片機往往難以勝任。本課題以AT89C51單片機系統(tǒng)為核心,能對多點的溫度進行實時巡檢。DS18B20是一種可組網的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨特優(yōu)點,可以使用戶輕松地組建起傳感器網絡,并可使多點溫度測量電路變得簡單、可靠。本文結合實際使用經驗,介紹了DS18B20數(shù)字溫度傳感器在單片機下的硬件連接及軟件編程,并給出了軟件流程圖。關鍵詞:溫度測量;DS18B20溫度傳感器;單片機0. 前言在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。自18世紀工業(yè)革命以來,工業(yè)

3、發(fā)展對是否能掌握溫度有著絕對的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫度的因素。進入21世紀后,溫度傳感器正朝著高精度、多功能、總線標準化、高可靠性及安全性、開發(fā)虛擬傳感器和網絡傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。目前市場主要存在單點和多點兩種溫度測量儀表。對于單點溫測儀表,主要采用傳統(tǒng)的模擬集成溫度傳感器,其中又以熱電阻、熱電偶等傳感器的測量精度高,測量范圍大,而得到了普遍的應用。此種產品測溫范圍大都在-200-800之間,分辨率12位,最小分辨溫度在0.001-0.01之間。自帶LED顯示模塊,顯示4位到16位不等。有的儀表

4、還具有存儲功能,可存儲幾百到幾千組數(shù)據(jù)。該類儀表可很好的滿足單個用戶單點測量的需要。多點溫度測量儀表,相對與單點的測量精度有一定的差距,雖然實現(xiàn)了多路溫度的測控,但價格昂貴。 針對目前市場的現(xiàn)狀,本課題提出了一種可滿足要求、可擴展的并且性價比高的單片機多路測溫系統(tǒng)。隨著科學技術的不斷進步與發(fā)展,溫度控制在工業(yè)控制、電子測溫計、醫(yī)療儀器、家用電器等各種溫度控制系統(tǒng)中廣泛應用,且由過去的單點測量向多測量發(fā)展。目前溫度傳感器有模擬和數(shù)字兩類傳感器,為了克服模擬傳感器與微處理器接口時需要信號調理電路和AD轉換器的弊端,大多數(shù)多點測溫控制系統(tǒng)采用數(shù)字傳感器,并大大方便了系統(tǒng)的設計。比較有代表性的數(shù)字溫度

5、傳感器有DS18B20、MAX6575、DS1722、MAX6635、SMT160-30等。在傳統(tǒng)的溫度測量系統(tǒng)設計中,往往采用模擬技術進行設計,這樣就不可避免地遇到諸如引線誤差補償、多點測量中的切換誤差和信號調理電路的誤差等問題;而其中某一環(huán)節(jié)處理不當,就可能造成整個系統(tǒng)性能的下降。隨著現(xiàn)代科學技術的飛速發(fā)展,特別是大規(guī)模集成電路設計技術的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個重要方向。美國Dallas半導體公司推出的數(shù)字溫度傳感器DS18B20,具有獨特的單總線接口,僅需要占用一個通用I/0端口即可完成與微處理器的通信;在-10+85 溫度范圍內具有05 精度;用戶可編程設定9

6、12位的分辨率。以上特性使得DS18B20非常適用于構建高精度、多點溫度測量系統(tǒng)。1. 總體方案設計溫度檢測系統(tǒng)有則共同的特點:測量點多、環(huán)境復雜、布線分散、現(xiàn)場離監(jiān)控室遠等。若采用一般溫度傳感器采集溫度信號,則需要設計信號調理電路、A/D 轉換及相應的接口電路,才能把傳感器輸出的模擬信號轉換成數(shù)字信號送到計算機去處理。這樣,由于各種因素會造成檢測系統(tǒng)較大的偏差;又因為檢測環(huán)境復雜、測量點多、信號傳輸距離遠及各種干擾的影響,會使檢測系統(tǒng)的穩(wěn)定性和可靠性下降 。而為了獲得較高的測溫精度,就必須采用措施解決由長線傳輸,多點測量切換及放大電路零點漂移等造成的誤差補償問題。采用數(shù)字溫度芯片DS18B2

7、0測量溫度,輸出信號全數(shù)字化。DS18B20是一種可組網的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨特優(yōu)點,可以使用戶輕松地組建起傳感器網絡,并可使多點溫度測量電路變得簡單、可靠。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS1820和微控制器AT89C51構成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結構就比較簡單,體積也不大,且由于AT89C51可以帶多個DSB18

8、20,因此可以非常容易實現(xiàn)多點測量.輕松的組建傳感器網絡。采用溫度芯片DS18B20測量溫度,可以體現(xiàn)系統(tǒng)芯片化這個趨勢。部分功能電路的集成,使總體電路更簡潔,搭建電路和焊接電路時更快。而且,集成塊的使用,有效地避免外界的干擾,提高測量電路的精確度。所以集成芯片的使用將成為電路發(fā)展的一種趨勢。本方案應用這一溫度芯片,也是順應這一趨勢。其原理框圖為圖 1被 測數(shù) 值DS18B20傳感器51單片機LED顯示器圖1溫度采集的結構框圖2. 硬件電路的設計本課題研究的多點測溫系統(tǒng)是以單片機和單總線數(shù)字溫度傳感器DS18B20為核心,充分利用單片機優(yōu)越的內部和外部資源及數(shù)字溫度傳感器DS18B20的優(yōu)越性

9、能構成一個完備的測溫系統(tǒng),實現(xiàn)對溫度的多點測量。整個系統(tǒng)由單片機控制,能夠接收傳感器的溫度數(shù)據(jù)并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對應的溫度傳感器,并由驅動電路驅動溫度顯示。本課題設計了一種合理、可行的單片機監(jiān)控軟件,完成測量和顯示的任務。由于單片機具有強大的運算和控制功能,使得整個系統(tǒng)具有模塊化、硬件電路簡單以及操作方便等優(yōu)點。本課題的整個系統(tǒng)是由單片機、顯示電路、鍵盤電路、驅動電路,串口通信等構成。2.1  溫度傳感器2.1.1溫度傳感器選用細則現(xiàn)代傳感器在原理與結構上千差萬別,如何根據(jù)具體的測量目的、測量對象以及測量環(huán)境合理地選用傳感器,是在進行某個量的測量時首先

10、要解決的題。當傳感器確定之后,與之相配套的測量方法和測量設備也就可以確定了。測量結果的成敗,在很大程度上取決于傳感器的選用是否合理。(1) 根據(jù)測量對象與測量環(huán)境確定傳感器的類型要進行個具體的測量工作,首先要考慮采用何種原理的傳感器,這需要分析多方面的因素之后才能確定。因為,即使是測量同一物理量,也有多種原理的傳感器可供選用,哪一種原理的傳感器更為合適,則需要根據(jù)被測量的特點和傳感器的使用條件考慮以下一些具體問題:量程的大小;被測位置對傳感器體積的要求;測量方式為接觸式還是非接觸式;信號的引出方法,有線或是非接觸測量;傳感器的來源,國產還是進口,價格能否承受,還是自行研制。(2)靈敏度的選擇通

11、常,在傳感器的線性范圍內,希望傳感器的靈敏度越高越好。因為只有靈敏度高時,與被測量變化對應的輸出信號的值才比較大,有利于信號處理。但要注意的是,傳感器的靈敏度高,與被測量無關的外界噪聲也容易混入,也會被放大系統(tǒng)放大,影響測量精度。因此,要求傳感器本身應具有較高的信噪比,盡員減少從外界引入的串擾信號(3)線性范圍傳感器的線形范圍是指輸出與輸入成正比的范圍。以理論上講,在此范圍內,靈敏度保持定值。傳感器的線性范圍越寬,則其量程越大,并且能保證一定的測量精度。在選擇傳感器時,當傳感器的種類確定以后首先要看其量程是否滿足要求。但實際上,任何傳感器都不能保證絕對的線性,其線性度也是相對的。當所要求測量精

12、度比較低時,在一定的范圍內,可將非線性誤差較小的傳感器近似看作線性的,這會給測量帶來極大的方便。(4) 穩(wěn)定性傳感器使用一段時間后,其性能保持不變化的能力稱為穩(wěn)定性。影響傳感器長期穩(wěn)定性的因素除傳感器本身結構外,主要是傳感器的使用環(huán)境。因此,要使傳感器具有良好的穩(wěn)定性,傳感器必須要有較強的環(huán)境適應能力。在選擇傳感器之前,應對其使用環(huán)境進行調查,并根據(jù)具體的使用環(huán)境選擇合適的傳感器,或采取適當?shù)拇胧?,減小環(huán)境的影響。2.1.2  溫度傳感器DS18B20DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。與

13、傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。其可以分別9375ms和750ms內完成9位和12位的數(shù)字量,最大分辨率為00625 , 而且從DS18B20讀出或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫。(1)DS18B20的性能特點單線數(shù)字化智能集成溫度的傳感器,其特點是: DSI8B20可將被測溫度直接轉換成計算機能識別的數(shù)字信號輸出,溫度值不需要經電橋電路先獲取電壓模擬量,再經信號放大和AD轉換成數(shù)字信號,解決了傳統(tǒng)溫度傳感器存在的因參數(shù)不一致性,在更換傳感器時會因放大器零漂而必須對電路進行重新調試的問題,使用方便

14、。 DS18B20能提供9到12位溫度讀數(shù),精度高,且其信息傳輸只需1根信號線,與計算機接口十分簡便,讀寫及溫度變換的功率來自于數(shù)據(jù)線而不需額外的電源。 每一個DS18B20都有一個惟一的序列號,這就允許多個DS18B20連接到同一總線上。尤其適合于多點溫度檢測系統(tǒng)。 負壓特性:當電源極性接反時,DS18B20雖然不能正常工作,但不會因發(fā)熱而燒毀 正是由于具有以上特點,DS18B20在解決各種誤差、可靠性和實現(xiàn)系統(tǒng)優(yōu)化等方面與傳統(tǒng)各種溫度傳感器相比,有無可比擬的優(yōu)越性,因而廣泛應用于過程控制、環(huán)境控制、建筑物、機器設備中的溫度檢測。其外形和管腳如下圖:圖2 DS18B20外部形狀及管腳圖(2)

15、DS18B20與單片機的典型接口設計DS18B20測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點。Dsl8B20與單片機的硬件連接有兩種方法:一是Vcc接外部電源,GND接地,I/0與單片機的I/0線相連;二是用寄生電源供電,此時,UDD和GND接地,I/0接單片機I/0。無論是哪種供電方式,I/0口線都要接47k Q左右的上拉電阻。圖4給出了DSl8B20與微處理器的典型連接。 DS18B20寄生電源供電方式:如下面圖7所示,在寄生電源供電方式下,DS18B20從單線信號線上汲取能量:在信號線DQ處于高電平期間把能量儲存在內部電容里,在信號線處于低電平期間消耗電容上的電能工

16、作,直到高電平到來再給寄生電源(電容)充電。獨特的寄生電源方式有三個好處:1) 進行遠距離測溫時,無需本地電源2) 可以在沒有常規(guī)電源的條件下讀取ROM3) 電路更加簡潔,僅用一根I/O口實現(xiàn)測溫要想使DS18B20進行精確的溫度轉換,I/O線必須保證在溫度轉換期間提供足夠的能量,由于每個DS18B20在溫度轉換期間工作電流達到1mA,當幾個溫度傳感器掛在同一根I/O線上進行多點測溫時,只靠4.7K上拉電阻就無法提供足夠的能量,會造成無法轉換溫度或溫度誤差極大。因此,該電路只適應于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中。并且工作電源VCC必須保證在5V,當電源電壓下降時,寄生電

17、源能夠汲取的能量也降低,會使溫度誤差變大。 DS18B20寄生電源強上拉供電方式:  改進的寄生電源供電方式如下面圖7所示,為了使DS18B20在動態(tài)轉換周期中獲得足夠的電流供應,當進行溫度轉換或拷貝到E2存儲器操作時,用MOSFET把I/O線直接拉到VCC就可提供足夠的電流,在發(fā)出任何涉及到拷貝到E2存儲器或啟動溫度轉換的指令后,必須在最多10S內把I/O線轉換到強上拉狀態(tài)。在強上拉方式下可以解決電流供應不走的問題,因此也適合于多點測溫應用,缺點就是要多占用一根I/O口線進行強上拉切換。(3)DS18B20 的內部結構:主要包括寄生電源、溫度傳感器、64 位激光ROM 單

18、線接口、存放中間數(shù)據(jù)的高速暫存器,用于存儲用戶設定的溫度上下限值的TH 和TL 觸發(fā)器存儲與控制邏輯、8 位循環(huán)冗余校驗碼(CRC)發(fā)生器等七部分。64位光刻ROM 的排列是:開始8位是產品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼。光刻R0M 的作用是使每一個DS18B20都各不相同,這可實現(xiàn)一根總線上掛接多個DS18B20的目的。暫存存儲器包含了8個連續(xù)字節(jié),前2個字節(jié)是測得的溫度信息,第1個字節(jié)的內容是溫度的低8位,第2個字節(jié)是溫度的高8位。第3個和第4個字節(jié)是TH、TL的易失性拷貝,第5個字節(jié)是結構寄存器的易失性拷貝,這3個字節(jié)的內容在每

19、一次上電復位時被刷新。第6、7、8個字節(jié)用于內部計算。第9個字節(jié)是冗余檢驗字節(jié)圖7 DS18B20的內部結構(4)DS18B20 的測溫原理:DS1820測溫原理如下圖所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給計數(shù)器1。圖8 DS18B20測溫原理高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在-55所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產生的脈沖信號進行

20、計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,DS1 8B20測量溫度原理停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。 在正常測溫情況下,DS18B20 的測溫分辨力為0.5,可采用下述方法獲得高分辨率的溫度測量結果:首先用DS18B20 提供的讀暫存器指令(BEH)讀出以0.5為分辨率的溫度測量結果,然后切去測量結果中的最低有效位(LSB),得到所測實際溫度的整數(shù)部分TZ,然后再用BEH 指令取計數(shù)器1 的計數(shù)剩余值CS 和每度計數(shù)值CD。考慮到DS18B20測量溫度的整數(shù)部分以0.25、0.75為進位界限的關系,實際溫度TS 可用下式計算:TS=(TZ0.25) (CDCS)/CD

21、。2.1 單片機片子在當今新科學技術飛速發(fā)展的年代里,單片機的應用已越來越受到人們的重視,它被廣泛的應用于家電、醫(yī)療、智能儀表、工業(yè)自動化等各個領域。單片機全稱單片微型計算機,是將計算機的基本部分微型化,使之集成在一塊芯片上的微機。目前市場上較為流行的單片機有Intel公司和Philip公司的8051系列單片機Motorola 公司的M 6800系列單片機。Intel公司的MCS96系列單片機以及Microchip 公司的PIC 系列單片機。片內含有CPU、ROM、RAM、并行I/O口、串行I/O口、定時/計數(shù)器、A/D、D/A、中斷控制、系統(tǒng)時鐘及系統(tǒng)總線等。本課題是利用Intel的89c5

22、1控制整個系統(tǒng)。89c51單片機包含下列幾個部件:1個8位CPU、1個片內震蕩器及時鐘電路、4KB ROM程序存儲器、128B RAM數(shù)據(jù)存儲器、可尋址64KB外部數(shù)據(jù)存儲器和64KB外部程序存儲器的控制電路、32條可編程的I/O線、2個16位的定時/計數(shù)器、1個可編程全雙工串行接口、5個中斷源、2個優(yōu)先級嵌套中斷結構。本課題運用Intel公司的8051進行系統(tǒng)控制,運用到了復位電路,時鐘電路,串口,I/O口。復位電路:無論哪種單片機,都會涉及到復位電路。如果復位電路不可靠,在工作中就有可能出現(xiàn)“死機”,“程序走飛”等現(xiàn)象。所以,一個單片機復位電路的好壞,直接影響到整個系統(tǒng)工作的可靠性。復位操

23、作完成單片機片內電路的初始化,使單片機從一種確定的狀態(tài)開始運行。當89C51單片機的復位引腳RST出現(xiàn)5ms以上的高電平時,單片機就完成了復位操作,如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài),而無法執(zhí)行程序,因此要求單片機復位后能脫離復位狀態(tài)。復位操作通常有上電和開關復位。上電復位要求接通電源后,自動實現(xiàn)復位操作。開關復位要求在電源接通的條件下,在單片機運行期間,如果發(fā)生死機,用按鈕開關操作使單片機復位。圖10 .復位電路時鐘電路:89c51單片機的時鐘信號通常用內部振蕩和外部振蕩方式。在引腳XTAL1和XTAX2外接晶體振蕩器,就夠成了內部振蕩方式。由于單片機內部有一個高增益反相放大器

24、,當外接晶振后,就構成了自激振蕩器并產生振蕩時鐘脈沖。晶振通常選用6MHZ、12MHZ或24MHZ。內部振蕩器方式如下。如圖11,電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5-30PF。內部振蕩方式所得的時鐘信號比較穩(wěn)定。外部振蕩方式是把已有的時鐘信號引入單片機內,這種方式適于用于用來使單片機的時鐘與外部信號保持一致。圖11 時鐘電路串口:串行通信是CPU與外界交換的一種基本方式。單片機運用于數(shù)據(jù)采集或工業(yè)控制時,往往作為前端機安裝在工作現(xiàn)場,遠離主機,現(xiàn)場數(shù)據(jù)采用串行通信方式主機并進行處理,以降低通信成本,提高通信可靠性。51系列單片機自身有全雙工的異步通信接口,通過軟件編

25、程,它可以作為通用異步接受和發(fā)送器使用,也可作為同步移位寄存器。I/O口:計算機對外設進行數(shù)據(jù)操作時,外設的數(shù)據(jù)是不能直接連到CPU的數(shù)據(jù)線上的,必須經過接口。這是由于CPU的數(shù)據(jù)線是外設或存儲器和CPU進行數(shù)據(jù)傳輸?shù)奈ㄒ还餐ǖ?,為了使?shù)據(jù)線的使用對象不產生使用總線的沖突,以及協(xié)調快速的CPU和慢速的外設,CPU和外設之間必須有接口電路,接口起著緩沖、鎖存數(shù)據(jù)、地址譯碼、信息格式轉換、傳遞狀態(tài)、發(fā)布命令等功能,I/O接口有并行接口、串行接口、定時/計數(shù)器、A/D、D/A等,根據(jù)外設的不同情況的應用要求,選擇不同的接口。單片機的I0 口一般是雙向的 既可以做輸入。 也可以做輸出。以51系列為例

26、,其P0、P 1、P2、P3均為雙向口,且可位操作。P0口具有雙重功能:可以作為輸入/輸出用,外接輸入/輸出設備;在有外接存儲器和I/O接口時常作為低8位地址/數(shù)據(jù)總線,即低8位地址與數(shù)據(jù)線分時使用P0口。此時低8位地址由ALE信號的下跳沿使它鎖存到外部地址鎖存器中,爾后,P0口出現(xiàn)數(shù)據(jù)信息。P1口具有單一接口功能,P1口每一位都能作為可編程的輸入或輸出口線。P2口具有雙重功能:作為輸入口或輸出口使用,外接輸入/輸出設備;在有外接存儲器I/O接口時,作為系統(tǒng)的地址總線。輸出高位地址,與P0口低8位地址一起組成16位地址總線。P3口為雙重功能口:可以作為輸入/輸出口,外接輸入/輸出設備;作為第二

27、功能使用。圖 12 單片機2.2 顯示電路設計本課題要將傳感器的溫度信號顯示出來,利用單片機89c51傳輸控制信號。本課題要用到MAX7219串行LED驅動顯示器,此顯示器具有接口簡單占用資源少、控制靈活方便、LED級聯(lián)擴展便利的優(yōu)點。MAX7219是串行輸出共陰極顯示驅動芯片,每片可驅動8個LED,具有級聯(lián)功能可控制更多的LED 。MAX7219為24引腳芯片,除與LED顯示相連的線外,與微控制器只需3根連線相接:芯片端管腳分別為CLK.DINLOAD,其中CLK為時鐘輸入端,DIN為數(shù)據(jù)輸入端,LOAD為鎖存信號。MAX7219的工作時序為:時鐘的上升沿MAX7219把DIN引腳數(shù)據(jù)移入內

28、部移位寄存器, 在時鐘下降沿MAX7219把數(shù)據(jù)移向DOUT端, 而LOAD的上升沿則鎖存最后移入的16位串行數(shù)據(jù)。對MAX7219的控制操作很方便,其片內具有8個位寄存器和6個控制寄存器。位寄存器對應LED的具體內容,控制寄存器決定LED的工作方式??刂萍拇嫫鞣謩e為:不工作方式寄存器、譯碼方式寄存器、亮度控制寄存器。掃描個數(shù)寄存器、關閉寄存器。顯示測試寄存器。寄存器的操作格式為2字節(jié)的串行數(shù)據(jù),第一個字節(jié)為寄存器地址,第二個字節(jié)為控制命令或待顯示數(shù)據(jù)。MAX7219是在脈沖控制下工作的,因此其抗干擾就更為重要。一般在其電源和地之間接一十幾f 的電容。另外,當MAX72l9和其他串行芯片共用I

29、/O引腳時,最好在其外邊加一上拉電阻。P1口內部有上拉電阻,如不在其外部接上拉電阻,有時出現(xiàn)驅動能力不足的現(xiàn)象。要用MAX7219控制多于8個的LED時,可以將多個MAX7219級聯(lián)使用。各芯片的CLK和LOAD端并接在一起。上一級MAX7219的DOUT端接下一級的D 端。級聯(lián)顯示時,如欲控制次級的MAX7219,只需向前幾級的MAX7219的不工作方式寄存器送空操作數(shù):本級則送欲顯示的數(shù)據(jù)。另外,需注意,LOAD信號只需執(zhí)行一次清O和置位,分別在整個過程的始末。即:級聯(lián)調用WrTwoByte程序時,應將程序里的LOAD清O和置位語句屏蔽掉。只在級聯(lián)顯示的開始和最后分別將LOAD置O和1。本

30、課題用了一個LED數(shù)碼管,具體連接如下圖:圖13 顯示電路圖3 軟件設計整個系統(tǒng)的功能是由軟件電路配合硬件來實現(xiàn)的,當硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調各執(zhí)行模塊和操作者的關系。二是執(zhí)行軟件(子程序),它是用來完成各種實質性的功能如測量、顯示。每一個執(zhí)行軟件也就是一個小的功能執(zhí)行模塊。3.1主程序方案主程序采用模塊化思想,溫度采集程序, LED顯示程序。溫度檢測程序:利用DS18B20智能溫度測試儀進行溫度測量,并傳入PIC16F877A單片機進行相關處理。LED顯示程序:單片機向晶體管輸入數(shù)字

31、,LED輸出相應的數(shù)字。主程序流程圖如圖14所示:開 始初始化溫度數(shù)據(jù)采集數(shù)據(jù)處理數(shù)據(jù)顯示結 束圖14 主程序流程圖3.2 各模塊子程序3.2.1 溫度采集程序(1)DSl8B20編程簡介每一片單總線芯片內部都有一個全球惟一的64 位編碼,在多路測溫時就是通過匹配每個芯片的ROM編碼(ID)來搜尋該路的溫度。DS18B20有9個可擦寫的內部寄存器,稱為便箋式RAM。所有的串行通訊,讀寫每一個Bit位數(shù)據(jù)都必須嚴格遵守器件的時序邏輯來編程,同時還必須遵守總線命令序列,對單總線的DS18B20芯片來說,訪問每個器件都要遵守下列命令序列:首先是初始化,其次執(zhí)行ROM 命令,最后執(zhí)行功能命令。如果出現(xiàn)

32、序列混亂,則單總線器件不會響應主機。每次訪問任何單總線器件,必須嚴格遵守這個命令序列,如果出現(xiàn)序列混亂,則單總線器件不會響應主機。但是這個準則對于搜索ROM命令和報警搜索命令例外,在執(zhí)行兩者中任何一條命令之后,主機不能執(zhí)行其后的功能命令,必須返回至第一步。在主機發(fā)出ROM命令,以訪問某個指定的DS18B20,接著就可以發(fā)出DS18B20支持的某個功能命令。這些命令允許主機寫入或讀出DS18B20暫存器,啟動溫度轉換以及判斷從機的供電方式。(2)軟件實現(xiàn)前面提及單總線器件的ROM命令,在主機檢測到應答脈沖后,就可以發(fā)出ROM命令。這些命令與各個從機設備的唯一64位ROM代碼相關。允許主機在單總線

33、上連接多個從機設備時,指定操作某個從機設備。這些命令還允許主機能夠檢測到總線上有多少個從機設備,以及其設備類型或者有沒有設備處于報警狀態(tài)。從機設備可能支持5種ROM命令(實際情況與具體型號有關),每種命令長度為8位。主機在發(fā)出功能命令之前,必須發(fā)送合適的ROM命令。(1)搜索ROMF0h當系統(tǒng)初始上電時,主機必須找出總線上所有從機設備的ROM代碼,這樣主機就能夠判斷出從機的數(shù)目和類型。主機通過重復執(zhí)行搜索ROM循環(huán)(搜索ROM命令跟隨著位數(shù)據(jù)交換)以找出總線上所有的從機設備。如果總線只有一個從機設備,則可以采用讀ROM命令來替代搜索ROM命令。在每次執(zhí)行完搜索ROM循環(huán)后,主機必須返回至命令序

34、列的第一步(初始化)。(2)讀ROM33h(僅適合于單節(jié)點)該命令僅適用于總線上只有一個從機設備。它允許主機直接讀出從機的64位ROM代碼,而無須執(zhí)行搜索ROM過程。如果該命令用于多節(jié)點,系統(tǒng)則必然發(fā)生數(shù)據(jù)沖突,因為每個從機設備都會響應該命令。(3) 匹配ROM 55h匹配ROM命令跟隨64位ROM代碼,從而允許主機訪問多節(jié)點系統(tǒng)中某個指定的從機設備。僅當從機完全匹配64位ROM代碼時,才會響應主機隨后發(fā)出的功能命令。其它設備將處于等待復位脈沖狀態(tài)。(4)跳越ROMCCh(僅適合于單節(jié)點)主機能夠采用該命令同時訪問總線上的所有從機設備,而無須發(fā)出任何ROM代碼信息。例如,主機通過在發(fā)出跳越RO

35、M命令后跟隨轉換溫度命令44h,就可以同時命令總線上所有的DS18B20開始轉換溫度,這樣大大節(jié)省了主機的時間。值得注意的是,如果跳越ROM命令跟隨的是讀暫存器BEh的命令(包括其它讀操作命令),則該命令只能應用于單節(jié)點系統(tǒng),否則將由于多個節(jié)點都響應該命令而引起數(shù)據(jù)沖突。DS18B20在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求,只有嚴格遵守通訊協(xié)議才能保證數(shù)據(jù)傳輸?shù)恼_性和完整性。所有時序均以主機為Master,單總線器件為Slave,每次數(shù)據(jù)的傳輸均從主機啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),則在寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先

36、。 DS18B20的復位時序圖15 DS18B20復位時序圖 DS18B20的讀時序圖16 DS18B20讀時序圖DS18B20的讀時序分讀0時序和讀1時序兩個過程。讀時序是主機先把單總線拉低,在之后的15s內必須釋放單總線,以便將數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20完成一個讀時序至少需要60s。 DS18B20的寫時序圖17 DS18B20寫時序圖DS18B20的寫時序也分為寫0時序和寫1時序兩個過程。寫0時序和寫1時序的要求不同,寫0時,單總線要被拉低至少60s,保證DS18B20能夠在15-45s之間正確采樣I/O總線上的“0”電平。寫1時,單總線被拉低,在之后的15s內必須釋放單總線。D

37、S18B20復位后,就可以編程控制讀到其內部RAM所采集到的溫度值,并且讀取數(shù)據(jù)時低位在前,高位在后。讀出數(shù)據(jù)后,需判斷對應的溫度是正值還是負值,當溫度值為正值時,直接將二進制數(shù)轉換為十進制溫度值;當溫度值為負值時先將二進制補碼變?yōu)樵a,再轉換為十進制溫度值。DS18B20溫度測量與讀取軟件。3.2.2 顯示程序根據(jù)系統(tǒng)的要求,單片機不僅要能接收到溫度信號,還要將溫度信號顯示出來,使系統(tǒng)一目了然。對于輸入的溫度信號的顯示是利用MAX7219驅動進行顯示的,MAX7219是串行輸出共陰極顯示驅動芯片,此顯示器具有接口簡單。占用資源少、控制靈活方便等,因此利用MAX7219驅動顯示方便,快捷。首先

38、初始化5個控制寄存器,然后送18個顯示數(shù)據(jù) 一旦送完控制字后,下一步按實際需要可以改變18個數(shù)據(jù)顯示寄存器的內容,MX7219則按顯示亮度等初始化規(guī)定與待顯示的數(shù)據(jù)自動掃描顯示。(1)譯碼寄存器:譯碼寄存器()中數(shù)據(jù)可初始化為00H、01H、0FH 以及FFH共四種情況,分別表示:對數(shù)據(jù)顯示寄存器中的內容不譯碼只對 譯碼而對不譯碼;對譯碼而對不譯碼;對均譯碼。在譯碼方式時,只對數(shù)據(jù)顯示寄存器中的位譯碼, 位為任意值,位控制小數(shù)點。當 =l時,小數(shù)點亮;=O時,小數(shù)點熄滅。(2)顯示亮度寄存器:其中,位可任意,可選擇的范圍是0000l111。的值越大,LED顯示器越亮。(3)掃描范圍寄存器:其中

39、,位可任意,而這三位二進制數(shù)排列從000到I11,其中000表示只接有控制的一個LED 顯示器,001表示接有由和控制的兩個LED顯示器,由此類推;111則表示均接有一個LED顯示器。(4)關閉寄存器:其中, 位可以任意; =0,關閉所有顯示器,=0,允許顯示。(5)顯示測試寄存器:其中位可以任意;=0,LED處于正常工作狀態(tài),=1,LED處于顯示測試狀態(tài),即LED所有的段全亮。初始化MAX7219的程序流程如圖18。送完所有控制寄存器的地址和相應的控制命令之后,再按同樣的方法送待顯示的數(shù)據(jù),每次先送某個LED的地址字節(jié),后送待顯示的數(shù)據(jù)字節(jié)。由于控制寄存器和數(shù)據(jù)顯示寄存器全部單獨編址,所以在

40、送控制字或送顯示數(shù)據(jù)時,均沒有規(guī)定其先后順序。結束圖18 初始化MAX7219的程序流程圈4.聯(lián)合調試系統(tǒng)進行軟件設計時,先要對本課題硬件有一個熟練的掌握,知道系統(tǒng)的組成,數(shù)據(jù)的傳輸,信號是如何被控制的,以及信號的顯示。然后進行軟件設計時,先搞清楚各個部分的子程序及他們的流程圖,然后進行編程,最后將它們系統(tǒng)的編程。本文利用Proteus與KEIL C51對單片機多點溫度測量系統(tǒng)進行了仿真設計。從本文結果可以看出,利用Proteus進行單片機系統(tǒng)的仿真設計可以極大地簡化單片機程序在目標硬件上的調試工作,大幅度節(jié)省制作電路板的時間,對于提高產品的開發(fā)效率、降低開發(fā)成本等有重要作用。硬件電路的簡單是

41、以軟件的復雜為代價的,所以在程序編寫和調試的過程中稍一粗心就會出現(xiàn)錯誤,包括時間延時不夠,設置參數(shù)的類型有誤,本程序經過反復的調試修改,雖然能達到預期的基本目標,但是還有很多地方需要完善,還可以利用剩余的I/O口掛接更多的DS18B20等。在protues上進行仿真實驗,系統(tǒng)軟件設計主要包括系統(tǒng)程序和流程圖,根據(jù)整個系統(tǒng)的要求,完成溫度的測量與控制必須經過以下幾個步驟:單片機接受傳感器的溫度信號,并通過MAX7219驅動顯示出來,接受控制信號,并將溫度顯示出來。5. 課設小結及進一步設想本課題通過分析對比各種不同的溫度傳感器,選定DS18B20,這種單總線數(shù)字溫度傳感器的通信方式比較獨特,軟件

42、編寫要求的比較新穎,特點突出。用其構建的系統(tǒng)有很多優(yōu)點:硬件連線簡單,省去了使用模擬傳感器要進行放大、A/D轉換等工作,由于它的級聯(lián)功能,一條總線可掛接多個傳感器測量不同位置的溫度,根據(jù)DS18B20唯一的序號識別不同傳感器在各自位置的溫度。需要注意的是, 在系統(tǒng)安裝及工作之前應將主機逐個與DS1820 掛接,以讀出其序列號。另外,由于DS1820 單線通信功能是分時完成的,遵循嚴格的時隙概念,因此, 系統(tǒng)對DS1820 和各種操作必須按協(xié)議進行,即:初始化DS1820 (發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,每一個自帶地址,大大減少了

43、系統(tǒng)的電纜數(shù),提高了系統(tǒng)的穩(wěn)定性和抗干擾性。通過調試成型系統(tǒng)發(fā)現(xiàn)了DS18B20除了上述優(yōu)點外,還有一些缺點,如:簡單的硬件連接的代價是復雜的軟件時序,DS18B20在測量溫度的時候,靈敏度不夠高,溫度快速變化時無法迅速顯示出其變化。通過一系列的實驗發(fā)現(xiàn):由DS18B20構建的測溫小系統(tǒng)適用于環(huán)境溫度監(jiān)控,對溫度小變化較敏感;不適合應用于要求實時性強、溫度跨度大的測溫方式。參考文獻1 趙茂泰.智能儀器原理及應用.北京: 電子工業(yè)出版社,2004.72 張毅剛,劉杰.MCS51單片機原理及應用.哈爾濱: 哈爾濱工業(yè)大學出版社,2004.63 何立民.單片機應用技術選編.北京: 北京航天航空大學出

44、版,2002.54 張軍,梅麗鳳.單片機原理接口技術.北京交通大學出版社,2006.55 張婧武,周靈彬.單片機系統(tǒng)的PROTEUS設計與仿真.北京: 電工出版社,2007.4課設體會本次課程設計是在老師的悉心指導下完成的,不論在選題、資料搜集還是在論文寫作方面,老師都給予了我很大的幫助。老師治學嚴謹、一絲不茍,對學生既嚴格要求,又可耐心指導、循循善誘,在繁忙的工作之余還經常關心我的論文進行情況,并且對我在設計中遇到的問題耐心指導,巧妙地激發(fā)我的求知欲來促使我對問題進行更深入的研究,使我的獨立探索解決問題的能力有了很大的提高,老師用心良苦,讓我深深體會到為人師表的偉大與無私。在本次課程設計中,

45、我還得到了多位同學的幫助,對我成功完成本次設計帶來了很大的幫助。在次論文完成之即,請接受我真誠的感謝!2010年1月13日附錄I 元件清單元件名稱型號數(shù)量單片機AT89C511傳感器DS18B201顯示器LED8導線 若干附錄II 整體電路圖附錄III 源程序清單#include<reg52.h>/=宏定義=#define uchar unsigned char #define uint unsigned int/=位定義=sbit DQ =P20 ;/18B20數(shù)據(jù)線引腳sbit led2=P23;sbit led3=P24;/=全局變量定義=uchar dispbuf4; /顯

46、示緩沖區(qū) uchar temper2;/存放溫度的數(shù)組 / =定義數(shù)組= uchar code table=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,;uchar code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/=延時函數(shù)=void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/=小延時,用于對DS18B20的操作=void delay1(uint z) while(z-); /復位操作void reset(void) uchar x=0; DQ = 1; delay1(8); /稍做延時

溫馨提示

  • 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

提交評論