數字溫度計 單片機.doc_第1頁
數字溫度計 單片機.doc_第2頁
數字溫度計 單片機.doc_第3頁
數字溫度計 單片機.doc_第4頁
數字溫度計 單片機.doc_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

西南科技大學本科畢業論文 iv數字測溫計設計摘要:隨著時代的進步和發展,單片機技術已經普及到我們生活、工作、科研、各個領域,已經成為一種比較成熟的技術。在工業生產中溫度是常用的被控參數,而采用單片機來對這些被控參數進行控制已成為當今的主流。本文主要介紹了一個基于at89s51單片機的測溫系統,詳細描述了利用數字溫度傳感器ds18b20開發測溫系統的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統流程進行了詳盡分析,對各部分的電路也一一進行了介紹,該系統可以方便的實現實現溫度采集和顯示,并可根據需要任意設定上下限報警溫度,它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優點,適合于我們日常生活和工、農業生產中的溫度測量,也可以當作溫度處理模塊嵌入其它系統中,作為其他主系統的輔助擴展。ds18b20與at89s51結合實現最簡溫度檢測系統,該系統結構簡單,抗干擾能力強,適合于惡劣環境下進行現場溫度測量,有廣泛的應用前景。關鍵詞:單片機;溫度傳感器;數字溫度計design of the digital dhermometerabstract:with the progress and development of era,microcontroller technology has become popular in our life,in the work,the scientific research and various fields,has become a relatively mature technology.the temperature measurement method and device of the highlights is very important.posed by the single chip temperature sensor and temperature measurement system can be widely applied in many fields.the article mainly introduced based on the at89s51 monolithic integrated circuits temperature measurement system, described the use digit temperature sensor ds18b20 development temperature measurement systems process in detail, key to sensors under monolithic integrated circuit hardware connection, the software programming as well as the various modules system flow has carried on the exhaustive analysis, 11 has also carried on the introduction to various part of electric circuits. this system may facilitate realizes temperature gathering and the demonstration, and may according to need to establish the bound warning temperature willfully, it uses quite conveniently, has the precision to be high, the measuring range width, the sensitivity are high, the volume is small, the power loss low status merit, suits in our daily life and the industry, the agricultural production temperature survey, may also treat as the temperature processing module to insert in other systems, takes other host systems auxiliary expansion. ds18b20 and at89s51 union realizes the most jan temperature examination system, this system structure is simple, antijamming ability, suits under the adverse circumstance carries on the scene temperature survey, has the widespread application prospect.key words:microcontroller;temperature sensor;temperature measurement system目錄第1章 緒論11.1 溫度計的介紹11.2 選題的目的和意義21.2.1選題的目的21.2.2選題的意義2第2章 數字溫度計的設計方案42.1 設計方案的確立及論證42.1.1 溫度傳感器ds18b20的選擇42.1.2 顯示器的選擇52.1.3 單片機at89s51的選擇5第3章 系統硬件電路的設計73.1 主控制器73.1.1 at89s51的介紹73.1.2 ds18b20的介紹93.1.3 ds18b20使用的注意事項163.2 單片機最小系統設計173.2.1 時鐘電路173.2.2 復位電路183.2.3 最小系統193.3 ds18b20與單片機接口電路的設計203.4 顯示電路的設計203.4.1 1602lcd液晶簡介20第4章 系統程序的設計244.1 系統設計內容244.1.1 主程序244.1.2 讀出溫度子程序244.1.3 溫度轉換命令子程序254.1.4 計算溫度子程序254.1.5 溫度數據的計算處理方法264.2 源程序274.2.1 ds18b20的各條rom命令27第5章 調試及性能分析295.1 系統的調試295.2 性能分析30結論31社會經濟效益分析32致謝33參考文獻34附錄135附錄2錯誤!未定義書簽。附錄336附錄437西南科技大學本科畢業論文第1章 緒論1.1 溫度計的介紹溫度計是測溫儀器的總稱。根據所用測溫物質的不同和測溫范圍的不同,有煤油溫度計、酒精溫度計、水銀溫度計、氣體溫度計、電阻溫度計、溫差電偶溫度計、輻射溫度計和光測溫度計等。隨著科學技術的發展和現代工業技術的需要,測溫技術也不斷地改進和提高。由于測溫范圍越來越廣,根據不同的要求,又制造出不同需要的測溫儀器。下面介紹幾種。 氣體溫度計:多用氫氣或氦氣作測溫物質,因為氫氣和氦氣的液化溫度很低,接近于絕對零度,故它的測溫范圍很廣。這種溫度計精確度很高,多用于精密測量。 電阻溫度計:分為金屬電阻溫度計和半導體電阻溫度計,都是根據電阻值隨溫度的變化這一特性制成的。金屬溫度計主要有用鉑、金、銅、鎳等純金屬的及銠鐵、磷青銅合金的;半導體溫度計主要用碳、鍺等。電阻溫度計使用方便可靠,已廣泛應用。它的測量范圍為-260至600左右。 溫差電偶溫度計:是一種工業上廣泛應用的測溫儀器。利用溫差電現象制成。兩種不同的金屬絲焊接在一起形成工作端,另兩端與測量儀表連接,形成電路。把工作端放在被測溫度處,工作端與自由端溫度不同時,就會出現電動勢,因而有電流通過回路。通過電學量的測量,利用已知處的溫度,就可以測定另一處的溫度。它適用于溫差較大的兩種物質之間,多用于高溫和低濁測量。有的溫差電偶能測量高達3000的高溫,有的能測接近絕對零度的低溫。 高溫溫度計:是指專門用來測量500以上的溫度的溫度計,有光測溫度計、比色溫度計和輻射溫度計。高溫溫度計的原理和構造都比較復雜,這里不再討論。其測量范圍為500至3000以上,不適用于測量低溫。 指針式溫度計:是形如儀表盤的溫度計,也稱寒暑表,用來測室溫,是用金屬的熱脹冷縮原理制成的。它是以雙金屬片做為感溫元件,用來控制指針。雙金屬片通常是用銅片和鐵片鉚在一起,且銅片在左,鐵片在右。由于銅的熱脹冷縮效果要比鐵明顯的多,因此當溫度升高時,銅片牽拉鐵片向右彎曲,指針在雙金屬片的帶動下就向右偏轉(指向高溫);反之,溫度變低,指針在雙金屬片的帶動下就向左偏轉(指向低溫)。 玻璃管溫度計:玻璃管溫度計是利用熱脹冷縮的原理來實現溫度的測量的。由于測溫介質的膨脹系數與沸點及凝固點的不同,所以我們常見的玻璃管溫度計主要有:煤油溫度計、水銀溫度計、紅鋼筆水溫度計。他的優點是結構簡單,使用方便,測量精度相對較高,價格低廉。缺點是測量上下限和精度受玻璃質量與測溫介質的性質限制。且不能遠傳,易碎。 壓力式溫度計:壓力式溫度計是利用封閉容器內的液體,氣體或飽和蒸氣受熱后產生體積膨脹或壓力變化作為測信號。它的基本結構是由溫包、毛細管和指示表三部分組成。壓力式溫度計的優點是:結構簡單,機械強度高,不怕震動。價格低廉,不需要外部能源。缺點是:測溫范圍有限制,一般在-80400;熱損失大響應時間較慢。 水銀溫度計:水銀溫度計是膨脹式溫度計的一種,水銀的凝固點是 -38.87,沸點是 356.7,用來測量0-150或500以內范圍的溫度,它只能作為就地監督的儀表。用它來測量溫度,不僅比較簡單直觀,而且還可以避免外部遠傳溫度計的誤差。1.2 選題的目的和意義1.2.1選題的目的 利用單片機at89s51和溫度傳感器ds18b20設計一個設計溫度計,能夠測量20 100之間的溫度值,用lcd液晶屏直接顯示,測量精度為0.1。通過這次設計能夠更加了解數字溫度計的工作原理和熟悉單片機的發展和應用,鞏固所學的知識。1.2.2選題的意義隨著單片機技術的不斷發展,單片機在日用電子產品中的應用越來越廣泛,溫度傳感器ds18b20具有性能穩定、靈敏度高、抗干擾能力強、使用方便等優點,廣泛應用于冰箱、空調器、糧倉等日常生活中溫度的測量和控制。又隨著電子技術的發展,人們的生活日趨數字化,多功能的數字溫度計可以給我們的生活帶來很大的方便;支持“一線總線”接口的溫度傳感器簡化了數字溫度計的設計,降低了成本;以美國maxim/dallas半導體公司的單總線溫度傳感器ds18b20為核心,以atmel公司的at89s51為控制器設計的ds18b20溫度控制器結構簡單、測溫準確、具有一定控制功能的智能溫度控制器。本課題研究的重要意義在于生產過程中隨著科技的不斷發展,現代社會對各種信息參數的準確度和精確度的要求都有了幾何級的增長,而如何準確而又迅速的獲得這些參數,就需要受制于現代信息基礎的發展水平。在三大信息信息采集(即傳感器技術)、信息傳輸(通信技術)和信息處理(計算機技術)中,傳感器屬于信息技術的前沿尖端產品,尤其是數字溫度傳感器技術,在我國各領域已經應用的非常廣泛可以說是滲透到社會的每一個領域,與人民的生活和環境的溫度息息相關。3第2章 數字溫度計的設計方案2.1 設計方案的確立及論證基本功能要求:(1)溫度測量范圍:20100度(2)測量精度:0.5度(3)顯示方式:四位顯示 (4)能夠運用protues仿真擴展功能要求: (1)做出實物并調試成功(2)多點測試(3)多點溫度同時顯示2.1.1 溫度傳感器ds18b20的選擇方案一:水銀溫度計 在生活中我們經常看到水銀溫度計,它只能作為就地監督的儀表,用它來測量溫度時,由于讀數時用眼睛觀察,主觀因素大,容易造成誤差大,而且不同是水銀溫度計量程不同,在讀數前需要看清它的最小分度值,還有它有熱慣性,需要等到溫度計達到穩定狀態后才能讀數,比較麻煩,并且水銀有毒,不小心打破后接觸到水銀,對人體傷害大,所以危險性較高。方案二:傳統測溫元件 傳統的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,需要比較多的外部硬件支持,其缺點有:硬件電路復雜;軟件調試復雜;制作成本高。方案三:ds18b20傳感器測溫 本設計采用美國dallas半導體公司繼ds18b20之后推出的一種改進型智能溫度傳感器ds18b20作為檢測元件 ds18b20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有成本低和易使用的特點。 所以本設計采用方案三,用ds18b20作為溫度傳感器。2.1.2 顯示器的選擇方案一 led顯示器采用傳統的七段數碼led顯示器。led雖然價格便宜,且能夠滿足一般的要求顯示0-9字符,但是現代的許多儀表、各種電子產品顯示要求很高,在這些產品中已經逐漸被lcd所取代。方案二lcd液晶屏采用lcd液晶屏進行顯示。lcd液晶顯示器是一種低壓、微功耗的顯示器件,只要23伏就可以工作,工作電流僅為幾微安,是任何顯示器無法比擬的,同時可以顯示大量信息,除數字外,還可以顯示文字、曲線,比傳統的數碼led顯示器顯示的界面有了質的提高。在儀表和低功耗應用系統中得到了廣泛的應用。優點為:(1) 顯示質量高,由于液晶顯示器的每一個點收到信號后就一直保持那種色彩和亮度恒定發光,因此液晶顯示器的畫質高而且不會閃爍。(2) 數字式接口,液晶顯示器都是數字式的,和單片機的接口簡單操作也很方便。(3) 功率消耗小,相比而言液晶顯示器的主要功耗在內部電極和驅動ic上,因而耗電量比其他器件要小很多。雖然lcd液晶屏的價格比led數碼管要貴一些,但lcd液晶屏的顯示效果更好,是當今顯示屏的主流,在實際推廣運用中作用更大,所以在本設計中采用lcd 作為顯示屏。2.1.3 單片機at89s51的選擇對于單片機的選擇,可以考慮使用8031與8051系列,由于8031沒有內部ram,系統又需要大量內存存儲數據,因而不適用。at89s51 是美國 atmel 公司生產的低功耗,高性能 cmos8 位單片機,片內含 4kbytes 的可編程的 flash 只讀程序存儲器,兼容標準 8051 指令系統及引腳。它集 flash 程序存儲器既可在線編程(isp),也可用傳統方法進行編程,所以低價位 at89s51單片機可為提供許多高性價比的應用場合,可靈活應用于各種控制領域,對于簡單的測溫系統已經足夠。單片機at89s51 具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統的設計需要,很適合便攜手持式產品的設計使用系統可用二節電池供電,因此選用at89s51更適合。按照系統設計功能的要求,確定系統由4個模塊組成;主控制器、測溫電路、顯示電路。數字溫度計總體設計電路結構框圖如圖2-1所示:at89s51復位電路顯示電路溫度傳感器時鐘電路圖2-1 系統框圖6第3章 系統硬件電路的設計3.1 主控制器單片機at89s51是低功耗,高性能 cmos8 位單片機,片內含 4kbytes 的可編程的 flash 只讀程序存儲器,兼容標準 8051 指令系統及引腳。它集 flash 程序存儲器既可在線編程(isp),也可用傳統方法進行編程。3.1.1 at89s51的介紹at89s51實物如3-1圖所示:圖3-1 at89s51 實物圖at89s51主要特性及引腳如下與mcs-51 兼容4k字節可編程閃爍存儲器全靜態工作:0hz-24hz三級程序存儲器鎖定128*8位內部ram32可編程i/o線兩個16位定時器/計數器5個中斷源可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路 圖 3-2 at89s51單片機引腳圖at89s51 單片機為40 引腳雙列直插式封裝。其引腳排列和邏輯符號如圖3-2 所示。各引腳功能簡單介紹如下:vcc:供電電壓 gnd:接地 p0口:p0口為一個8位漏級開路雙向i/o口,每個管腳可吸收8ttl門電流。當p0口的管腳寫“1”時,被定義為高阻輸入。p0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在flash編程時,p0口作為原碼輸入口,當flash進行校驗時,p0輸出原碼,此時p0外部電位必須被拉高。p1口:p1口是一個內部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入“1”后,電位被內部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。p2口:p2口為一個內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳電位被內部上拉電阻拉高,且作為輸入。作為輸入時,p2口的管腳電位被外部拉低,將輸出電流,這是由于內部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉的優勢,當對外部八位地址數據存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入時,由于外部下拉為低電平,p3口將輸出電流(ill),也是由于上拉的緣故。p3口也可作為at89s51的一些特殊功能口:p3.0 rxd(串行輸入口)l p3.1 txd(串行輸出口)l p3.2 int0(外部中斷0)l p3.3 int1(外部中斷1)l p3.4 t0(記時器0外部輸入)l p3.5 t1(記時器1外部輸入)l p3.6 wr (外部數據存儲器寫選通)l p3.7 rd (外部數據存儲器讀選通)同時p3口同時為閃爍編程和編程校驗接收一些控制信號。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale / prog :當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執行movx,movc指令時ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ale禁止,置位無效。psen:外部程序存儲器的選通信號。在由外部程序存儲器取址期間,每個機器周期psen兩次有效。但在訪問外部數據存儲器時,這兩次有效的psen信號將不出現。ea/vpp:當ea保持低電平時,訪問外部rom;注意加密方式1時,ea將內部鎖定為reset;當ea端保持高電平時,訪問內部rom。在flash編程期間,此引腳也用于施加12v編程電源(vpp)xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3.1.2 ds18b20的介紹dallas的最新單線數字溫度傳感器ds18b20簡稱新的“一線器件”體積更小、使用電壓更寬、更經濟。dallas半導體公司的數字化溫度傳感器ds18b20是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨特而且經濟的特點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。ds18b20測量溫度范圍為-55+125,在-10+85范圍內,精度為0.5。現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,如:環境控制、設備或過程控制、測溫類消費電子產品等。與前一代產品不同,新的產品支持3v5.5v的電壓范圍,使系統設計更靈活、方便。而且新一代產品更便宜,體積更小。其實物圖如3-3圖所示:圖3-3 ds18b20的實物管腳分布圖ds18b20引腳及特點 (1)引腳功能說明gnd是地址信號;dq是數據輸入/輸出引腳,開漏單總線接口引腳,當被用在寄生電源下,也可以向器件提供電源;vdd為外接供電電源輸入端(在寄生電源接線方式時接地)。(2)ds18b20功能特點采用單總線技術,與單片機通信只需要一根i/o線,在一根線上可以掛接多個ds18b20。每只ds18b20具有一個獨有的,不可修改的64位序列號,根據序列號訪問地應的器件。低壓供電,電源范圍從3.05.5v,可以本地供電,也可以直接從數據線竊取電源(寄生電源方式)。測溫范圍為-55+125,在-10+85范圍內誤差為0.5。可編輯數據為912位,轉換12位溫度時間為750ms(最大)。用戶可自設定報警上下限溫度。報警搜索命令可識別和尋址超過程序限定溫度(溫度報警條件)的器件。ds18b20的分辨率由用戶通過eeprom設置為912位。ds18b20可將檢測到溫度值直接轉化為數字量,并通過串行通信的方式與主控制器進行數據通信。負電壓特性,電源極性接反時,溫度計不會因為發熱而燒毀,只是不能正常工作。ds18b20的內部結構(1)ds18b20內部結構及功能圖3-4 ds18b20內部結構ds18b20采用3腳pr35封裝或8腳soic封裝,其內部結構如3.5圖所示,主要包括:寄生電源,溫度傳感器,64位rom和單總線接口,存放中間數據的高速暫存器ram,用于存儲用戶設定溫度上下限值的th和tl觸發器,存儲與控制邏輯,8位循環冗余校驗碼(crc)發生器等7部分。如上圖3-4所示:(2)64位激光rom 每一個ds18b20包括一個唯一個64位長的rom編碼。64位rom的位結構如下圖3-5所示。開始的8位是單線產品系列編碼(ds18b20編碼是10h);接著的48位是每個器件唯一的系列號;最后的8位是開始56位crc檢驗碼。64位rom和rom操作控制部分允許ds18b20作為一個單線器件工作并遵循“單線總線系統”一節中所詳述的單線協議。直到rom操作協議被滿足,ds18b20控制部分的功能是不可訪問的。單線總線主機必須首先操作五種rom操作命令之一:1、read rom(讀rom),2、match rom(匹配(rom),3、search rom(搜索rom),4、skip rom(跳過rom),或5、alarm search(告警搜索)。在成功地執行了rom操作序列之后ds18b20特定的功能便可訪問,然后總線上主機可提供六個存儲器和控制功能命令之一。8位檢驗crc 48位序列號 8位工廠代碼(10h) msb lsb msb lsb msb lsb圖3-5 64位rom結構框圖(3)運用報警信號 在ds18b20完成溫度變換之后,溫度值與貯存在th和tl內的觸發值相比較。因為這些寄存器僅僅是8位,所以0.5位在比較時被忽略。th或tl的最高比較位直接對應于16位溫度寄存器的符號位。如果溫度測量的結果高于th或低于tl,那么器件內告警標志將置位。每次溫度測量更新此標志。只要告警標志置位,ds18b20將對告警搜索命令做出響應。這允許并聯接許多ds18b20,同時進行溫度測量。如果某處溫度超過極限,那么可以識別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。(4)crc產生 ds18b20有一存貯在64位rom的最高有效字節內的8位crc。總線上的主機可以根據64位rom的前56位計算機crc的值并把它與存貯在ds18b20內的值進行比較以決定rom的數據是否已被主機正確地接收。crc的等效多項式函數為:crc=x8+x5+x4+1 (公式3.1) ds18b20也利用與上述相同的多項式函數產生一個8位crc值并把此值提供給總線的主機以確認數據字節的傳送。在使用crc來確認數據傳送的每一種情況中,總線主機必須使用上面給出的多項式函數計算crc的值并把計算所得的值或者與存貯在ds18b20的64位rom部分中的8位crc值(rom讀數),或者與ds18b20中計算得到的8位crc值(在讀暫存存貯器中時,它作為第九個字節被讀出),進行比較。crc值的比較和是否繼續操作都由總線主機來決定。當存貯在ds18b20內或由ds18b20計算得到的crc值與總線主機產生的值不相符合時,在ds18b20內沒有電路來阻住命令序列的繼續執行。(5)存貯器 ds18b20的存貯器由一個高速暫存(便箋式)ram和一個非易失性、電可擦除eeprom組成,后者存貯高溫度和低溫度觸發器th和tl。暫存存貯器有助于在單線通信時確保數據的完整性。數據首先寫入暫存存貯器,在那里它可以被讀回。當數據被校驗之后,復制暫存存貯器的命令把數據傳送到非易失性eeprom。這一過程確保了更改存貯器時數據的完整性。高速暫存ram的結構為9字節的存儲器,結構如3.7圖所示。前2字節包含測得的溫度信息。第3和第4字節是th和tl的拷貝,是易失的,每次上電復位時刷新。第5字節為配置寄存器,其內容用于確定溫度值的數字轉換分辨率,ds18b20工作時按此寄存器中的分辨率將溫度轉換為相應精度的數值。該字節個位的定義如3.7圖所示,其中,低5位一直為1;tm是測試模式位,用于設置ds18b20在工作模式還是在測試模式,在ds18b20出廠時,該位被設置為0,用戶不要去改動;r1和r0決定溫度轉換的精度位數,即用來設置分辨率,其定義方法見表3-6: r1 r0 分辨率/位 溫度最大轉換時間/ms0 0 9 93.750 1 10 187.51 0 11 3751 1 12 750表3-6 分辨率表3.6 ds18b20分辨率的定義和規定 由表3-6可見,ds18b20溫度轉換的時間較長,而且設定的分辨率越高,所需要的溫度數據轉換時間就越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。溫度lsb溫度msbth用戶字節1配置寄存器th用戶字節2crc保留保留保留1字節4字節6字節3字節5字節2字節8字節7字節9字節th用戶字節1tl用戶字節2 圖3-7 高速暫存ram結構圖 高速暫存的第6、7、8字節保留未用,表現為全邏輯1。第9字節是前面所有8字節的crc碼,可用來檢驗數據,從而保證通信數據的正確性。如圖3-7所示: 當ds18b20接受到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴張的二進制補碼形式存儲在暫存ram的第1、2字節中。 二進制溫度圖中,s表示符號位。當s=0時,表示測得的溫度值為正值,可以直接將二進制轉換為十進制;當s=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制值。表3-10是部分溫度值對應的表示數據。 表3-10 ds18b20溫度與表示值對應表溫度二進制表示十六進制表示溫度二進制表示十六進制表示+125000001111101000007d0h000000000000000000000h+8500000101010100000550h-0.51111111111111000fff8h+25.062500000001100100010191h-10.1251111111001011110ff5ef+10.125000000001010001000a2h-25.06251111111001101111fe6fh+0.500000000000010000008h-551111110010010000fc90h ds18b20完成溫度轉換后,就把測得的溫度值與ram中的th、tl字節內容作比較,若tth或ttl,則將該器件內的報警標志位置位,并對主機發出的報警搜索命令做出響應。因此,可用多個ds18b20同時測得溫度并進行報警搜索。 在64位rom的最高有效字節中存儲有循環冗余檢驗碼(crc)。主機根據rom的前56位來計算crc值,并與存入ds18b20的crc值作比較,以判斷主機收到的rom數據是否正確。ds18b20的測溫原理 如圖3-11所示,圖中低溫度系數振蕩器的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給減法計數器1;高溫度系數振蕩器隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入。預置斜率累加器低溫度系數振蕩器減法計數器1預置減到0溫度寄存器計數比較器高溫度系數振蕩器減法計數器2減到0圖3-11 ds18b20測溫原理圖 圖中還隱含著計數門,當計數門打開時,ds18b20就對低溫度系數振蕩器產生的時鐘脈沖進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55所對應的一個基數分別置入減法計數器1和溫度寄存器中,減法計數器和溫度寄存器被預置在-55所對應的一個基數值。 減法計數器1對低溫度系數振蕩器產生的脈沖信號進行減法計數,當減法計數器1的預置減到0時,溫度寄存器的值將加1,減法計數器1的預置值將重新被裝入,并重新開始對低溫度系數振蕩器產生的脈沖信號進行計數。如此循環,直到減法計數器2計數到0時,停止溫度計數器值的累加,此時溫度寄存器中的數值就是所測溫度值。圖3.9中的斜率累加器用于補償和修正測溫過程的非線形性,直到溫度寄存器達到被測溫度值。另外,ds18b20單線通信功能是分時完成的,有嚴格的時隙概念,因此讀/寫時序很重要。系統對ds18b20的各種操作必須按協議進行。操作協議為:初始化ds18b20(發復位脈沖發rom功能命令發存儲器操作命令處理數據。3.1.3 ds18b20使用的注意事項ds18b20雖然具有測溫系統簡單、測溫精度高、連接方便、占用口線少等優點,但在實際應用中也應注意以下幾方面的問題: (1)較小的硬件開銷需要相對復雜的軟件進行補償,由于ds18b20與微處理器間采用串行數據傳送,因此,在對ds18b20進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結果。在使用pl/m、c等高級語言進行系統程序設計時,對ds18b20操作部分最好采用匯編語言實現。 (2)在ds18b20的有關資料中均未提及單總線上所掛ds18b20數量問題,容易使人誤認為可以掛任意多個ds18b20,在實際應用中并非如此。當單總線上所掛ds18b20超過8個時,就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統設計時要加以注意。 (3)連接ds18b20的總線電纜是有長度限制的。試驗中,當采用普通信號電纜傳輸長度超過50m時,讀取的測溫數據將發生錯誤。當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m,當采用每米絞合次數更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形產生畸變造成的。因此,在用ds18b20進行長距離測溫系統設計時要充分考慮總線分布電容和阻抗匹配問題。 (4)在ds18b20測溫程序設計中,向ds18b20發出溫度轉換命令后,程序總要等待ds18b20的返回信號,一旦某個ds18b20接觸不好或斷線,當程序讀該ds18b20時,將沒有返回信號,程序進入死循環。這一點在進行ds18b20硬件連接和軟件設計時也要給予一定的重視。3.2 單片機最小系統設計單片機最小系統就是指能使單片機工作的最少的器件構成的系統。因為單片機已經包含了數據存儲器和程序存儲器,所以只要在其外部加上時鐘電路和復位電路就可以構成單片機最小系統。3.2.1 時鐘電路圖3-12是時鐘電路的proteus仿真圖。圖3-12時鐘電路單片機允許的振蕩晶體可在1.224mhz之間選擇,一般為11.0592mhz。電容c2,c3的取值對振蕩頻率輸出的穩定性、大小及振蕩電路起振速度有一定的影響,可在20100pf之間選擇,典型值位30pf。3.2.2 復位電路計算機每次開始工作,cpu和系統中的其他部件都必須要有一個確定的初值,即復位狀態。圖3-13是單片機復位電路仿真圖。圖3-13 復位電路單片機rst引腳是高電平有效。單片機在上電瞬間c1充電,rst引腳端出現正脈沖,只要rst斷保持兩個機械周期(大約10ms)以上的高電平,單片機就能復位。在單片機工作后,如果還想再次復位,只需按下開關,單片機就能重新變成復位狀態。當晶體振蕩頻率為12mhz時,rc的典型值為c=10f,r=8.2k。3.2.3 最小系統圖3-14是單片機最小系統的完整仿真圖。圖3-14 單片機最小系統19西南科技大學本科畢業論文3.3 ds18b20與單片機接口電路的設計 ds18b20可以采用兩種供電方式:一種是采用電源供電方式,此時ds18b20的第1引腳接地,第2引腳作為信號線,第3引腳接電源;另外一種是寄生電源供電方式當ds18b20處于寫存儲器操作和溫度a/d轉換操作時,總線上必須有強的上拉,上拉開啟時間最長為500ms。采用寄生電源供電方式時,vdd和gnd端接地。由于單線制只有一根線,因此發送接口必須是三態的。3.4 顯示電路的設計3.4.1 1602lcd液晶簡介1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊,它有若干個5x7或者5x11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此,所以它不能顯示圖形。1602lcd是指顯示的內容為162,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數字)。1602lcd的特性(1)+5v電壓,對比度可調。(2)內含復位電路。(3)提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能。(4)有80字節顯示數據存儲器ddram。(5)內建有160個57點陣的字型的字符發生器cgrom。(6)8個可由用戶自定義的57的字符發生器cgrom。(7)字符型lcd1602通常有14條引腳線或16條引腳線的lcd,多出來的2條線是背光電源線vcc(15腳)和地線(16腳),如下表3-15所示: 表3.15液晶1602引腳表引腳符號功能說明1vss一般接地2vdd接電源(+5v)3v0液晶顯示器對比度調整段4rsrs為寄存器選擇,高電平1屎選擇數據寄存器、低電平0時選擇指令寄存器。5r/wr/w為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。6ee端為使能端,下降沿使用7db0低4位三態、雙向數據總線0位(最低位)8db1低4位三態、雙向數據總線1位9db2低4位三態、雙向數據總線2位10db3低4位三態、雙向數據總線3位11db4低4位三態、雙向數據總線4位12db5低4位三態、雙向數據總線5位13db6低4位三態、雙向數據總線6位14db7低4位三態、雙向數據總線7位(最高位)15bla背光電源正極16blk背光電源負極1602液晶模塊內部的控制器共有11條控制指令,如下表3-16所示: 表3-16 1602的控制指令序號指令rsr/wd7d6d5d4d3d2d1d01清顯示0000000012光標返回0000000013置輸入模式00000001i/ds4先是開/關控制0000001dcb5光標或字符移動000001s/cr/l6置功能00001dlnf7置字符發生存貯器地址0001字符發生存貯器地址8置數據存貯器地址001顯示數據存貯器地址9讀忙標志或地址01計數器地址10寫數到cgram10讀寫的數據內容11從cgram度數11讀出的數據內容指令1:清顯示,光標復位到地址00h位置。指令2:光標復位,光標返回到地址00h。指令3:光標和顯示模式設置 i/d:光標移動方向,高電平右移,低電平左移,s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關控制。 d:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 c:控制光標的開與關,高電平表示有光標,低電平表示無光標 b:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位 s/c:高電平時移動顯示的文字,低電平時移動光標。r/l,高向左,低向右。指令6:功能設置命令 dl:高電平時為8位總線,低電平時為4位總線 n:低電平時為單行顯示,高電平時雙行顯示 f: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。(有些模塊是 dl:高電平時為8位總線,低電平時為4位總線)指令7:字符發生器ram地址設置,地址:字符地址*8+字符行數。(將一個字符分成5*8點陣,一次寫入一行,8行就組成一個字符)指令8:置顯示地址,第一行為:80h8fh,第二行為:c0hcfh。指令9:讀忙信號和光標地址 bf:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。指令10:寫數據。指令11:讀數據。58第4章 系統程序的設計4.1 系統設計內容系統程序主要包括主程序、讀出溫度子程序、溫度轉換命令子程序、計算溫度子程序、測量序列號子程序、顯示數據刷新子程序等。4.1.1主程序 主程序主要功能是負責溫度的實時顯示、讀出處理ds18b20的測量溫度值。主程序流程圖如圖4-1所示:開始調用顯示子程序顯示當前四路溫度初始化讀取并顯示序列號圖4-1 主程序流程圖4.1.2讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節。在讀出時須進行crc校驗,校驗有錯時不進行溫度數據的改寫。讀出溫度子程序流程圖如圖4-2所示: 開始復位ds18b20發跳過rom命令發出溫度轉換命令轉換完畢復位ds18b20發匹配rom命令發1個ds18b20序列號讀溫度值存入儲存器指向下一個延時ny圖4-2 讀出溫度子程序流程圖4.1.3 溫度轉換命令子程序溫度轉換命令子程序主要是發溫度轉換開始命令,當采用12位分辨率時,轉換時間約為750ms。在本程序設計中,采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如圖4-3所示:發ds18b20復位命令發跳過rom命令發溫度轉換開始命令結束圖4-3 溫度轉換命令子程序流程圖4.1.4計算溫度子程序 計算溫度子程序將ram中讀取值進行bcd碼的轉換運算,并進行溫度值正負的判定。計算溫度子程序流程圖如圖4-4所示:開始溫度零下?溫度值取補碼置“-”標志位計算小數位溫度bcd值計算小數位溫計算小數位溫度bcd值度bcd值結束置“+”標志ny圖4-4 計算溫度子程序流程圖4.1.5 溫度數據的計算處理方法 從ds18b20讀取出的二進制值必須轉換成十進制值,才能用于字符的顯示。ds18b20的轉換精度為912位,為了提高精度采用12位。在采用12位轉換

溫馨提示

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

評論

0/150

提交評論