




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于DS18B20數字溫度傳感器的溫度檢測系統專 業: 機械設計制造及其自動化 目錄摘要2第一章緒論41.1傳感器發展的三個階段41.2傳感器發展趨勢41.3傳感器在在系統中的應用41.4設計研究意義51.5設計的目標任務5第二章 方案選擇62.1引言62.2方案設計62.2.1控制模塊62.2.2溫度采集模塊62.2.3顯示模塊72.3系統框圖7第三章 硬件設計73.1溫度傳感器73.1.1溫度傳感器選用細則73.1.2DS18B20傳感器簡介93.2DS18B20的測溫原理113.3DS18B20與微處理器的接口技術133.4DS18B20的測溫流程163.5系統硬件電路設計163.5.1
2、設計原則163.5.2設計中的各種電路17第四章 系統軟件設計214.1 系統軟件設計整體思路214.2 系統軟件設計的一般原則214. 3系統軟件設計的一般步驟224.4系統程序流程圖22第五章 小結27結束語28參考文獻28致謝28摘 要隨著社會的進步和工業技術的發展,人們越來越重視溫度因素,許多產品對溫度范圍要求嚴格,而目前市場上普遍存在的溫度檢測儀器大都是單點測量,同時有溫度信息傳遞不及時、精度不夠的缺點,不利于工業控制者根據溫度變化及時做出決定。在這樣的形式下,開發一種能夠同時測量多點,并且實時性高、精度高,能夠綜合處理多點溫度信息的測量系統就很有必要。本課題以AT89C
3、51單片機系統為核心,能對多點的溫度進行實時巡檢。DS18B20是一種可組網的高精度數字式溫度傳感器,由于其具有單總線的獨特優點,可以使用戶輕松地組建起傳感器網絡,并可使多點溫度測量電路變得簡單、可靠。本文結合實際使用經驗,介紹了DS18B20數字溫度傳感器在單片機下的硬件連接及軟件編程,并給出了軟件流程圖。關鍵詞:溫度測量;單總線;數字溫度傳感器;單片機 第一章 緒論課題的背景在人類的生活環境中,溫度扮演著極其重要的角色,都無時無刻不在與溫度打交道。自18世紀工業革命以來,工業發展與是否掌握溫度有著緊密的聯系。在冶金、鋼鐵、石化、水泥、玻璃、醫藥等等行業,
4、可以說幾乎%80的工業部門都不得不考慮著溫度的因素。溫度對于工業如此重要,由此推進了溫度傳感器的發展。1.1傳感器三個發展階段:一是模擬集成溫度傳感器。該傳感器是采用硅半導體集成工藝制成,因此亦稱硅傳感器或單片集成溫度傳感器。此種傳感器具有功能單一(僅測量溫度)、測溫誤差小、價格低、響應速度快、傳輸距離遠、體積小、微功耗等特點,適合遠距離測溫、控溫,不需要進行非線性校準,且外圍電路簡單。它是目前在國內外應用最為普遍的一種集成傳感器,典型產品有AD590、AD592、TMP17、LM135等。二是模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開關、可編程溫度控制器,典型產品有LM56、AD2
5、2105和MAX6509。某些增強型集成溫度控制器(例如TC652/653)中還包含了A/D轉換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統,工作時并不受微處理器的控制,這是二者的主要區別。三是智能溫度傳感器。智能溫度傳感器內部都包含溫度傳感器、A/D轉換器、信號處理器、存儲器(或寄存器)和接口電路。有的產品還帶多路選擇器、中央控制器(CPU)、隨 機存取存儲器(RAM)和只讀存儲器(ROM)。智能溫度傳感器的特點是能輸出溫度數據及相關的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎上通過軟件來實現測試功能的,當然,其智能化程度也取決于軟件的開發水平。1.2
6、溫度傳感器的發展趨勢進入21世紀后,溫度傳感器正朝著高精度、多功能、總線標準化、高可靠性及安全性、開發虛擬傳感器和網絡傳感器、研制單片測溫系統等高科技的方向迅速發展。1.3傳感器在溫控系統中的應用目前市場主要存在單點和多點兩種溫度測量儀表。對于單點溫測儀表,主要采用傳統的模擬集成溫度傳感器,其中又以熱電阻、熱電偶等傳感器的測量精度高,測量范圍大,而得到了普遍的應用。此種產品測溫范圍大都在-200800之間,分辨率12位,最小分辨溫度在0.0010.01之間。自帶LED顯示模塊,顯示4位到16位不等。有的儀表還具有存儲功能,可存儲幾百到幾千組數據。該類儀表可很好的滿足單個用戶單點測量的需要。多點
7、溫度測量儀表,相對與單點的測量精度有一定的差距,雖然實現了多路溫度的測控,但價格昂貴。 針對目前市場的現狀,本設計提出了一種可滿足要求、可擴展的并且性價比高的單片機多路測溫系統。1.4設計研究意義隨著科學技術的不斷進步與發展,溫度控制在工業控制、電子測溫計、家用電器等各種溫度控制系統中被廣泛應用,且由過去的單點測量向多點測量發展。目前溫度傳感器有模擬和數字兩類傳感器兩種,為克服模擬傳感器與微處理器接口時所需的信號調理電路或AD轉換器的缺點,多點檢測溫度控制系統多采用智能數字溫度傳感器,是系統的設計更加方便。常用的智能數字溫度傳感器有DS18B20、MAX6575、DS1722、MAX6635
8、等等。在傳統的溫度測量系統設計中,往往采用模擬技術,這樣就不可避免地遇到引線誤差補償、多點測量中的切換誤差和信號調整電路的誤差等問題;而其中某一環節處理不當,就會導致系統性能的降低。隨著現代科學技術的飛速發展,特別是大規模集成電路設計技術的發展,微型化、集成化、數字化正成為傳感器發展的一個重要方向。美國Dallas半導體公司推出的數字溫度傳感器DS18B20,具有獨特的單總線接口,僅需占用一個通用I/0端口即可完成與微處理器間的通信;在-10+85 溫度范圍內具有05 精度;用戶可編程設定912位的分辨率。這些特性使得DS18B20非常適用于高精度、多點溫度測量系統的設計。1.5設計的任務目標
9、本設計主要是實現對溫度進行多點同時測量并準確顯示。整個系統由MCU(單片機)控制,用于接收傳感器采集的溫度數據并加以顯示出來,還可以從鍵盤設定溫度報警值,系統根據命令,選擇對應的傳感器采集溫度數據,并由驅動電路驅動溫度顯示。利用一個單片機設計一個能夠對多點溫度同時進行測量的溫度檢測系統。該系統能夠同時對多個點的溫度進行測量和進行顯示,并且能夠對異常情況進行聲光報警。第二章 方案選擇2.1 引言溫度測量的方案有很多種,可以采用傳統的分立式傳感器、模擬集成傳感器以及新興的智能型傳感器。對于控制系統可以采用計算機、單片機等。2.2方案設計 本系統主要由三個模塊組成:控制模塊、溫度采集模塊、顯示模塊。
10、2.2.1控制模塊本設計采用單片機基于數字溫度傳感器DS18B20的系統。單片機AT89C51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統的設計需要,很適合便攜手持式產品的設計使用,系統應用三節電池供電。溫度傳感器DS18B20利用單總線的特點可以方便的實現多點溫度的測量,組建傳感器網絡,且系統的抗干擾性好、設計靈活、方便,而且能在惡劣的環境下進行現場溫度檢測。本系統可以應用在大型工業及民用常溫多點監測場合。如糧食倉儲系統、樓宇自動化系統、溫控制程生產線之溫度影像檢測、醫療與健診的溫度測試、空調系統的溫度檢測、石化、機械等。2.2.2溫度采集模塊這一部分主要完成對溫度信號
11、的采集和轉換工作,由DS18B20數字溫度傳感器及其與單片機的接口部分組成。DS18B20智能溫度溫度傳感器進行溫度采集和轉換輸出數字型的溫度值,然后通過數據引腳傳到單片機的P1.1口,單片機接受溫度并存儲。DS18B20是美國DALLAS半導體公司最新推出的一種單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,它可將溫度信號直接轉換為數字信號,實現了與單片機的直接接口,從而省去了信號調理和A/D轉換等復雜模/數轉換電路。DS18B20構成的溫度采集模塊電路簡單、功能可靠、測量效率高,很好地彌補了傳統溫度測量方法的不足可廣泛用于工業、民用、軍事等領域的溫度測量及控制儀器、測控系統和大
12、型設備中。它具有集成度高、模擬輸入數字輸出、抗干擾能力強、體積小、接口方便、傳輸距離遠測溫誤差小等特點。DS18B20有PR-35和SOSI兩種封裝方式,本次設計采有PR-35式封裝, 如圖1.2所示。 圖(a)PR-35封裝 圖 (b) SOSI封裝圖21 DS18B20 的兩種封裝2.2.3溫度顯示模塊 本課程設計的顯示模塊采用3位共陰極LED數碼管顯示溫度數據,兩位整數,一位小數進行顯示,從P0口送數,P2口掃描。 2.3系統框圖系統的系統設計方框圖如圖1.1所示,它主要由三部分組成:控制部分主芯片采用單片機AT89S51;顯示部分采用3位共陰極LED數碼管以動態掃描方式實現溫度顯示;溫
13、度采集部分的溫度傳感器采用DS18B20智能溫度溫度傳感器。還有按鍵設置報警溫度值和加熱降溫電路。按鍵設置溫度加熱繼電器和風扇繼電器單 片 機多路DS18B20傳感器LED顯示聲光報警器圖22多路溫度檢測與控制總體設計框圖第三章 硬件設計本課程設計的多點測溫系統是以單片機和單總線數字溫度傳感器DS18B20為核心,充分利用單片機優越的內部和外部資源及智能溫度傳感器DS18B20的優越性能構成一個完備的測溫系統,實現對溫度的多點測量。整個系統由單片機控制,能夠接收傳感器的溫度數據并顯示出來,可以從鍵盤輸入命令,系統根據命令,選擇對應的溫度傳感器,并由驅動電路驅動溫度顯示。本課程設計了一種合理、可
14、行的單片機監控軟件,完成測量和顯示的任務。由于單片機具有強大的運算和控制功能,使得整個系統具有模塊化、硬件電路簡單以及操作方便等優點。本課題的整個系統是由單片機、顯示電路、鍵盤電路、聲光報警電路等構成。3.1 溫度傳感器3.1.1 溫度傳感器選用細則 現代傳感器在原理與結構上千差萬別,如何根據具體的測量目的、測量對象以及測量環境合理地選用傳感器,是在進行某個量的測量時首先要解決的問題。當傳感器確定之后,與之相配套的測量方法和測量設備也就可以確定了。測量結果的成敗,在很大程度上取決于傳感器的選用是否合理。(1)根據測量對象與測量環境確定傳感器的類型要進行個具體的測量工作,首先要考慮采
15、用何種原理的傳感器,這需要分析多方面的因素之后才能確定。因為,即使是測量同一物理量,也有多種原理的傳感器可供選用,哪一種原理的傳感器更為合適,則需要根據被測量的特點和傳感器的使用條件考慮以下一些具體問題:量程的大小;被測位置對傳感器體積的要求;測量方式為接觸式還是非接觸式;信號的引出方法,有線或是非接觸測量;傳感器的來源,國產還是進口,價格能否承受,還是自行研制。(2)靈敏度的選擇通常,在傳感器的線性范圍內,希望傳感器的靈敏度越高越好。因為只有靈敏度高時,與被測量變化對應的輸出信號的值才比較大,有利于信號處理。但要注意的是,傳感器的靈敏度高,與被測量無關的外界噪聲也容易混入,也會被放大系統放大
16、,影響測量精度。因此,要求傳感器本身應具有較高的信噪比,盡員減少從外界引入的串擾信號(3)頻率響應特性 傳感器的頻率響應特性決定了被測量的頻率范圍,必須在允許頻率范圍內保持不失真的測量條件,實際上傳感器的響應總有定延遲,希望延遲時間越短越好。傳感器的頻率響應高,可測的信號頻率范圍就寬,而由于受到結構特性的影響,機械系統的慣性較大,因有頻率低的傳感器可測信號的頻率較低。(4)線性范圍 傳感器的線形范圍是指輸出與輸入成正比的范圍。以理論上講,在此范圍內,靈敏度保持定值。傳感器的線性范圍越寬,則其量程越大,并且能保證一定的測量精度。在選擇傳感器時,當傳感器的種類確定以后首先要看其量程是否滿足要求。但
17、實際上,任何傳感器都不能保證絕對的線性,其線性度也是相對的。當所要求測量精度比較低時,在一定的范圍內,可將非線性誤差較小的傳感器近似看作線性的,這會給測量帶來極大的方便。(5) 穩定性傳感器使用一段時間后,其性能保持不變化的能力稱為穩定性。影響傳感器長期穩定性的因素除傳感器本身結構外,主要是傳感器的使用環境。因此,要使傳感器具有良好的穩定性,傳感器必須要有較強的環境適應能力。在選擇傳感器之前,應對其使用環境進行調查,并根據具體的使用環境選擇合適的傳感器,或采取適當的措施,減小環境的影響。(6) 精度精度是傳感器的一個重要的性能指標,它是關系到整個測量系統測量精度的一個重要環節。傳感器的精度越高
18、,其價格越昂貴,因此,傳感器的精度只要滿足整個測量系統的精度要求就可以,不必選得過高。這樣就可以在滿足同一測量目的的諸多傳感器中選擇比較便宜和簡單的傳感器。如果測量目的是定性分析的,選用重復精度高的傳感器即可,不宜選用絕對量值精度高的;如果是為了定量分析,必須獲得精確的測量值,就需選用精度等級能滿足要求的傳感器。對某些特殊使用場合,無法選到合適的傳感器,則需自行設計制造傳感器。自制傳感器的性能應滿足使用要求。3.1.2DS18B20溫度傳感器簡介溫度的測量是從金屬(物質)的熱脹冷縮開始。水銀溫度計至今仍是各種溫度測量的計量標準。可是它的缺點是只能近距離觀測,而且水銀有毒,玻璃管易碎。代替水銀的
19、有酒精溫度計和金屬簧片溫度計,它們雖然沒有毒性,但測量精度很低,只能作為一個概略指示。不過在居民住宅中使用已可滿足要求。在工業生產和實驗研究中為了配合遠傳儀表指示,出現了許多不同的溫度檢測方法,常用的有電阻式、熱電偶式、PN結型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(如電阻值,熱電勢等)的變化的原理。隨著大規模集成電路工藝的提高,出現了多種集成的數字化溫度傳感器。(1) 智能溫度傳感器DS18B20的性能特點:1) 獨特的單總線接口僅需要一個端口引腳進行通信,可以是串行口也可以是其他I/O口,無須變換,直接輸出被測溫度值(9位二進制,含符號位)。 多個DS18B20
20、可以并聯掛接在一條總線上,實現實現多點溫度采集檢測功能;2)可測溫度范圍為-55+125,測量分辨率為0.0625;3) 內含64位經過激光修正的只讀存儲器ROM;4) 內含寄生電源,可直接通過數據總線供電,電壓范圍為3.05.5V;5) 零待機功耗;6)用戶可通過編程分別設定各路的溫度上、下限溫度值來實現報警功能;7) 適配各種微處理器;8) 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;9) 負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作;10) 可檢測距離遠,最遠測量距離為150m 。(2) DS18B20的內部結構DS18B20的內部結構如圖3-1所
21、示。 DS18B20內部結構主要由四部分組成:64位光刻ROM,溫度報警觸發器,溫度傳感器以及高速緩存器。1) 64位光刻ROM。64位光刻ROM是出廠前已被刻好的,它可以看做是該DS18B0的地址序列號,不同的器件不一樣,64位的地址序列號的構成如表2-1所示。開始8位是產品序列號代表產品的序列,接著48位產品序號代表同一系列產品的不同產品,最后8位是前56位的CRC校驗碼,所以不同的器件的地址序列號各不一樣這也是多個DS18B20可以采用一線進行通信的原因(8位CRC編碼的計算公式為CRC=X+X+X+1)。在64 b ROM的最高有效字節中存儲有循環冗余校驗碼(CRC)。主機根據ROM的
22、前56位來計算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機收到的ROM數據是否正確。表31 64位ROM地址序列號結構48位產品序列號8位產品序號8位CRC編碼檢驗圖31 DS18B20內部結構2) 非揮發的溫度報警觸發器(包括上限溫度觸發器TH和下限溫度觸發器TL)。可通過軟件程序寫入設定用戶所要求的報警上下限溫度值。3) 高速暫存器。可以設置DS18B20溫度轉換的精度。DS18B20出廠時該位被設置為0,用戶要去改動,R1和R0決定溫度轉換的精度位數,來設置分辨率,如圖1.4。DS18B20溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的E2PR
23、AM。高速暫存RAM的結構為8字節的存儲器, 表32 DS18B20高速暫存器結構序號寄存器名稱作用0溫度低字節以16位補碼形式存放1溫度高字節62TH/用戶字節1存放溫度上限值3HL/用戶字節2 存放溫度下限值4、5保留字節1、26計數器余值7計數器8CRC值此外,DS18B20內部還包括寄生電源、電源檢測、存儲控制邏輯、8位循環冗余碼生成器(CRC)等部分。DS18B20有兩種供電方式。如圖3-2所示:圖(a)是由外電源供電,圖(b)是I/O口總線和寄生電容配合供電。DS18B20寄生電源由兩個二極管和寄生電容構成。電源檢測電路用于判定供電方式。寄生電源供電時,電源端與接地端并聯接地,器件
24、從總線上獲取電源。在I/O線呈低電平時,改由寄生電容上的電壓繼續向器件供電。采用寄生電源有兩個優點:一是檢測遠程溫度是無需本地電源;二是缺少正常電源時也能讀ROM。若采用外部電源,則通過二極管向器件供電。MCU(單片機)P1.1MCU(單片機)P1.1UDDDS18B20DS18B20I/OI/OGND UDDGND圖(a)使用外部電源供電圖 (b)使用寄生電源供電圖3-2 DS18B20與微處理器的硬件連接方式由表3-3可見,分辨率越高,所需要的溫度數據轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。高速暫存RAM的第6、7、8字節保留未用,表現為全邏輯1。第9字節讀出前面所有
25、8字節的CRC碼,可用來檢驗數據,從而保證通信數據的正確性。當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節。單片機可以通過單線接口讀出該數據,讀數據時低位在先,高位在后,數據格式以0.0625LSB形式表示。當符號位S0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位S1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數值。 表2-4是一部分溫度值對應的二進制溫度數據。表33 DS18B20溫度轉換時間表R1R0分辨率/位溫度最大轉向時間/ms00993.7501101
26、87.510113751112750表34一部分溫度對應值表溫度/數字輸出(二進制)數字輸出(十六進制)+1250000 0000 1111 101000FAH+250000 0000 0011 00100032H+0.50000 0000 0000 00010001H00000 0000 0000 00000000H-0.51111 1111 1111 1111FFFFH-251111 1111 1100 1110FFCEH-551111 1111 1001 0010FF92H3.2 DS18B20的測溫原理每一片DSl8B20在其ROM中都存有其唯一的64地址位序列號,在出廠前已寫入片內R
27、OM 中。主機在進入操作程序前必須用讀ROM(33H)命令將該DSl8B20的序列號讀出。程序可以先跳過ROM,啟動所有DSl8B20進行溫度變換,之后通過匹配ROM,再逐一地讀回每個DSl8B20的溫度數據。DS18B20的測溫原理如圖3-3所示。低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55
28、 所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55 所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖2.3中的斜率累加器用于補償和修正測溫過程中的非線性,提高測量準確制度。其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值。停止置位/清零減法計
29、數器1斜坡累加器減到0減法計數器2預 置低溫度系數振 蕩 器高溫度系數振 蕩 器計數比較器預 置溫度寄存器減到0加1 圖3-3 DS18B20的測溫原理圖3.3 DS18B20與微處理器的接口技術1. DS18B20與單片機的鏈接有兩種方法,如圖3-2所示:一種是VDD接外部電源,GND接地,I/O與單片機的任一條I/O線相連;另一種是用寄生電源供電,此時VDD、GND并聯接地,I/O接單片機的任一條I/O。無論是內部寄生電源供電還是外部供電,I/O接口都要接漏極開路或三態輸出以提高負載驅動能力。本設計采用寄生電源供電模式,I/O口接5K左右的上拉電阻。實際應用中,DS18B20可以距單片機1
30、50m遠,測量數據不會產生誤差,在同一條數據總線上可以并接許多片DS18B20實現多路溫度采集。2. DS18B20控制命令(1) 暫存器命令 訪問DS18B20的暫存器共有6條命令,如表3-5所示。表3-5 DS18B20暫存器命令指令約定代碼操作說明溫度變換44H啟動DS18B20進行溫度轉換,轉換時間最長為500MS,結果存入內部9字節RAM中讀暫存器0BEH讀內部RAM中9字節的內容寫暫存器4EH發出向內部RAM的第3,4字節寫上、下限溫度數據命令,緊跟讀命令之后,是傳送兩字節的數據復制暫存器48H將E2PRAM中第3,4字節內容復制到E2PRAM中重調E2PRAM0BBH將E2PRA
31、M中內容恢復到RAM中的第3,4字節讀 供 電方 式0B4H讀DS18B20的供電模式,寄生供電時DS18B20發送“0”,外接電源供電DS18B20發送“1”(2)對ROM的5種操作命令 。如表3-6所示: 讀ROM命令(代碼為33H):該命令允許主CPU讀取DS18B20中的8位產品序列編號、48位產品序列號及8位CRC值。該命令值適用于總線上只掛接一片DS18B20,對總線上掛有多片DS18B20時不適用。 符合ROM命令(代碼為55H):該指令適合在一條總線上掛接多片DS18B20的情況。具體應用是這樣的,主CPU先向總線發這條命令,然后再發64位的ROM數據。再總線上,只有符合所發的
32、64位ROM的DS18B20才有操作權。這樣就實現了單總線上的尋址。 尋找ROM命令(代碼為F0H):這條命令用于對連在單總線上的多個DS18B20進行初始化操作。 跳過ROM命令(代碼為CCH):該命令用于對總線上的報警器進行尋找,其用法與尋找ROM一樣。 尋找報警命令(代碼為ECH):該命令用于對總線上的報警器件進行尋找ROM一樣。表3-6 ROM操作命令指令約定代碼操作說明讀ROM33H讀DS18B20 ROM中的編碼符合ROM55H發出此命令之后,接著發出64位ROM編碼,訪問單線總線上與該編碼相對應的DS18B20 使之作出響應,為下一步對該DS18B20的讀寫作準備尋找ROM0F0
33、H用于確定掛接在同一總線上DS18B20的個數和識別64位ROM地址,為操作各器件作好準備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發溫度變換命令,適用于單片工作。尋找報警命令0ECH執行后,只有溫度超過設定值上限或者下限的片子才做出響應3.DS18B20訪問流程CPU對DS18B20訪問的工作流程是:先對DS18B20進行初始化,再發ROM操作命令,最后才能對存儲器及數據進行操作。DS18B20每一步操作都在嚴格的工作時序和通信協議下進行的。例如主機控制DS18B20完成溫度轉換這一過程,根據DS18B20的通信協議,須經過三個步驟:第一步是復位,第二步是發送ROM命令,第
34、三步是發送RAM命令。值得注意的是,每一次讀寫之前都要對它進行復位。下面詳細說明DS18B20的操作過程。(1) DS18B20的初始化DS18B20的所有操作均從初始化開始,初始化的過程是首先由CPU發出一個復位脈沖,復位脈沖的時間為480960us,然后由叢屬器件發出應答脈沖。初始化是主CPU發出一個復位信號,將數據總線上的所有DS18B20復位,然后釋放總線,該總線位接收狀態。由于接有上拉電阻,在釋放總線是有15 60us的時間間隙,在此之后的60240us時間內,如果CPU檢測到總線為低電平的話,則說明DS18B20初始化完成。DS18B20初始化時序波形如圖所示:圖3-4 DS18B
35、20復位初始化時序圖 (2) 發送ROM命令ROM的操作命令位8位二進制數,CPU對ROM的操作有讀ROM命令、符合ROM命令、搜索ROM命令、跳過ROM命令、報警搜索命令共5種。其中符合ROM命令是用來識別連在總線是的DS18B20芯片,其過程是主CPU發出符合ROM命令(代碼位55H)后,接著送出64位的ROM數據序列,從而使主CPU實現對單總線上的特定DS18B20進行尋址,只有與64位序列嚴格相符的DS18B20才能對后續的操作發出響應,符合ROM命令只對同時掛在總線上的多片DS18B20適用。讀寫ROM的操作時序如圖所示。 圖(a)DS18B20寫時序圖(b)DS18B20讀時序圖3
36、-5 DS18B20操作時序圖(3) 發送RAM命令RAM命令是暫存器操作命令,共有6條,在前面已經列出,其功能是實現溫度的轉換、讀/寫、復制暫存器的內容等功能。在具體的設計過程中,訪問DS18B20也是通過程序設計來實現的。具體程序可以按照上面的工作時序圖和命令的相應格式進行程序設計。 另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統對DS18B20的各種操作必須按協議進行。操作協議為:初始化DS18B20(發復位脈沖)發ROM功能命令發存儲器操作命令處理數據。3.4DS18B20的測溫流程初始化DS18B20跳過ROM匹配溫度變換延時1S跳過R
37、OM匹配讀暫存器轉換成顯示碼數碼管顯示圖36 DS18B20測溫流程3.5系統硬件電路設計3.5.1設計原則DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。本設計采用電源供電方式, P1.1口接單線總線為保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個MOSFET管和89S51的P1.0來完成對總線的上拉。當DS18B20處于寫存儲器操作和溫度A/D變換操作
38、時,總線上必須有強的上拉,上拉開啟時間最大為10 s。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發送接收口必須是三狀態的。主機控制DS18B20完成溫度轉換必須經過3個步驟: 初始化; ROM操作指令; 存儲器操作指令。3.5.2設計中的各種電路(1)單片機電路 圖3-7單片機電路(2)晶振電路單片機XIAL1和XIAL2分別接30PF的電容,中間再并個12MHZ的晶振,形成單片機的晶振電路如圖3-8所示。圖3-8 晶振電路(3)數碼管顯示電路 用了7段共陰數碼管掃描電路,節約了單片機的輸出端口,便于程序的編寫。P0口接8個2.2K的排阻然后接到3個LED數碼管顯
39、示電路上。P2.0P2.2 三個I/O口分別接4.7K的電阻作數碼管的共陰極如圖3-9所示。圖3-9 三位數碼管顯示電路(4)多路溫度采集電路如圖3-10所示。P1.0和一個MOSFET管連接來完成對溫度傳感器DS18B20總線的上拉,MOSFET一端接+5v電源,另一端接在傳感器的總線上來對傳感器提供電源。P1.2與P1.3口并聯接在所有傳感器并接后的單總線上,P1.3端口相當于TX,P1.4相當于RX。圖3-10 多路溫度采集電路(5)繼電器電路P1.1和P1.2引腳接繼電器電路的4.7K電阻上,P1口其他引腳懸空,繼電器電路如圖3-11所示。 圖3-11 繼電器電路(6)單片機復位電路圖
40、3-12 單片機復位電路(7)蜂鳴器報警電路 P2.5接蜂鳴器電路如圖3-13所示:圖3-13 蜂鳴器報警電路(8)溫度設置按鍵電路P3口中P3.5、P3.6、P3.7接到按鍵電路如圖3-14所示:圖3-14 按鍵電路(9)其他引腳 ALE引腳懸空,復位引腳接到復位電路、VCC接電源、VSS接地、EA接電源。第四章 系統軟件設計4.1 系統軟件設計整體思路一個應用系統要完成各項功能,首先必須有較完善的硬件作保證。同時還必須得到相應設計合理的軟件的支持,尤其是微機應用高速發展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復雜的硬件電路才能完成的工作,用軟件編程有時會變得
41、很簡單,如數字濾波,信號處理等。因此充分利用其內部豐富的硬件資源和軟件資源,采用與S51系列單片機相對應的51匯編語言和結構化程序設計方法進行軟件編程。程序設計語言有三種:機器語言、匯編語言和高級語言。機器語言是機器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機器語言的程序(成為目標程序),計算機才能“看懂”,然后逐一執行。高級語言是面向問題和計算過程的語言,它可通過于各種不同的計算機,用戶編程時不必仔細了解所用的計算機的具體性能與指令系統,而且語句的功能強,常常一個語句已相當于很多條計算機指令,于是用高級語言編制程序的速度比較快,也便于學習和交流,但是本系
42、統卻選用了匯編語言。原因在于,本系統是編制程序工作量不大、規模較小的單片機微控制系統,使用匯編語言可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統。同時,本系統對位處理要求很高,需要解決大量的邏輯控制問題。MCS51指令系統的指令長度較短,它在存儲空間和執行時間方面具有較高的效率,編成的程序占用內存單元少,執行也非常的快捷,與本系統的應用要求很適合。而且MCS51指令系統有豐富的位操作(或稱位處理)指令,可以形成一個相當完整的位操作指令子集,這是MCS51指令系統主要的優點之一。對于要求反應靈敏與控制及時的工控、檢測等實時控制系統以及要求體積小、系統小的許多“電腦化”產品,可
43、以充分體現出匯編語言簡明、整齊、執行時間短和易于使用的特點。本裝置的軟件包括主程序、讀出溫度子程序、復位應答子程序、寫入子程序、以及有關DS18B20的程序(初始化子程序、寫程序和讀程序)4.2 系統軟件設計的一般原則在單片機應用開發中代碼使用效率、單片機的抗干擾性以及軟件可靠性是實際工程設計的重點。 單片機應用軟件系統設計包括功能模塊劃分、程序流程確立、模塊接口設計以及程序代碼編寫。我們依據系統的功能要求,將整體軟件系統分割成若干個獨立的程序模塊。這些程序模塊可以是幾條語句的集合、功能函數或程序文件。隨后,根據個程序模塊的實現功能寫出流程,一般需要寫出具體的實現功能描述。程序代碼通常采用匯編
44、語言或高級語言(C語言)編寫。 本課題采用C語言編程,在此必須注意以下問題:(1)提高程序代碼效率必須熟悉當前使用的C語言編譯器,試驗每條C語言編譯以后對應的匯編語言的語句行數,這樣就可以很明確的知道代碼效率。(2)減少程序錯誤我們在編寫程序時,要注重考慮如下方面。1物理參數 2資源參數 3應用參數 4過程參數(3)單片機的抗干擾性防止干擾最有效的方法是去除干擾源、隔離干擾路徑。單片機干擾最常見的現象就是復位,導致程序運行異常。設計系統是一般需要添加一個“看門狗”監控模塊,在系統出現不可逆轉的干擾時,監控模塊將重啟系統,并從斷點處繼續執行。(4)系統的可靠性1要測試單片機軟件功能的完善性。2上
45、電、掉電測試。3系統耗損測試。4. 3系統軟件設計的一般步驟系統進行軟件設計時,先要對本課題硬件有一個熟練的掌握,知道系統的組成,數據的傳輸,信號是如何被控制的,以及信號的顯示。然后進行軟件設計時,先搞清楚各個部分的子程序及他們的流程圖,然后進行C語言編程,最后將它們系統的編程4.4系統程序流程圖系統程序主要包括主程序,讀出溫度子程序,復位應答子程序,寫入子程序等。(1) 主程序 主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內測量一次被測溫度,其程序流程見圖4-1所示。通過調用讀溫度子程序把存入內存儲中的整數部分與小
46、數部分分開存放在不同的兩個單元中,然后通過調用顯示子程序顯示出來。圖4-1 主程序流程圖(2)讀出溫度子程序 讀出溫度子程序流程圖如圖4-2所示。其主要功能是讀出RAM中的9字節,在讀出時需進行CRC校驗,校驗有錯時不進行溫度數據的改寫。 DS18B20的各個命令對時序的要求特別嚴格,所以必須按照所要求的時序才能達到預期的目的,同時,要注意讀進來的是高位在后低位在前,共有12位數,小數4位,整數7位,還有一位符號位。DS18B20復位、應答子程序跳過ROM匹配命令寫入子程序溫度轉換命令寫入子程序顯示子程序(延時)DS18B20復位、應答子程序跳過ROM匹配命令寫入子程序讀溫度命令子程序終 止 圖4-2 讀出溫度子程序(3)復位、應答子程序開始P1.0口清0延時537USP1.0口置1否50US是否有低電平是標志位置1P1.0口置1有234US低電平標志位置1否是 終止圖4-3復位、應答子程序(4)寫入子程序開始進位C清0R2是否為0P1.0置 0延時46US帶進位右移延時12USP1.0清0結束圖4-4 寫入子程序(5)系統總的流程圖開 始初始化DS18B20顯示當前溫度判斷當前溫度值超過設定溫度上限啟動風扇降低溫度紅燈亮設定溫度上、下限啟動電熱爐升高溫度是否低于設定溫度下限是綠燈亮否圖4-5 系統總的流程圖第五章 小結本s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學習創新活動方案
- 婚戀平臺活動方案
- 姜太公釣魚親子活動方案
- 女教工舞蹈活動方案
- 女子看守所活動方案
- 學校四月份安全活動方案
- 頭療公司年會活動方案
- 學校全民健康活動方案
- 學校校服投標活動方案
- 奶昔俱樂部活動方案
- 如何建立與客戶良好的關系
- 邊防派出所知識講座
- 消防安全隱患排查投標方案(技術標)
- 自然資源執法監察工作規范培訓課件
- 刑事案件模擬法庭劇本完整版五篇
- PSSE軟件操作說明
- 教科版科學三年級下冊實驗報告單
- 22S803 圓形鋼筋混凝土蓄水池
- 人力資源管理概論第三章員工招聘、篩選與錄用-董克用
- (完整版)新醫療器械分類目錄(舊分類對應新分類)
- 經濟與社會:如何用決策思維洞察生活學習通課后章節答案期末考試題庫2023年
評論
0/150
提交評論