實用型溫度監測提示儀(C語言)匯總_第1頁
實用型溫度監測提示儀(C語言)匯總_第2頁
實用型溫度監測提示儀(C語言)匯總_第3頁
實用型溫度監測提示儀(C語言)匯總_第4頁
實用型溫度監測提示儀(C語言)匯總_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、畢業論文(設計)題目實用型溫度監測提示儀系部專業班級學生姓名指導教師職稱2012年12月目錄目錄I摘要nAbstract田第一章緒論11.1 課題背景11.2 本課題研究意義21.3 本課題任務2第二章硬件設計22.1 STC89C52單片機簡介22.2 DS18B20介紹52.3 系統電路設計122.4 顯示電路設計13第三章軟件設計143.1 軟件開發工具的選擇143.2 系統軟件設計的一般原則153.3 系統軟件設計的一般步驟153.4 測溫軟件實現15第四章誤差分析214.1 誤差產生214.2 降低誤差方法21第五章調試與小結22致謝23參考文獻24附錄25I摘要隨著社會的進步和工業

2、技術的發展,人們越來越重視溫度因素,許多領域對溫度范圍要求嚴格,工業生產、農業畜牧、食品存儲、醫療保健等各領域對于溫度的掌控是非常苛刻的,可能因一點點的溫度差異從而產生無法彌補的過失,所以溫度的測控是必不可少的。本課題以AT89C52單片機系統為核心,通過DS18B20寸室內溫度進行實時監測,并通過LCD1602M示溫度數值。DS18B2Q1一種單線數字溫度傳感器,可以程序設定912位的分辨率,精確度0.5C。分辨率設定,及用戶設定的報警溫度存儲在EEPROM,掉電后依然保存。本文結合實際使用經驗,介紹了DS18B20數字溫度傳感器在單片機下的硬件連接及軟件編程,并給出了軟件流程圖。關鍵詞:D

3、S18B20單片機LCD1602AbstractAlongwiththeprogressofthesocietyandindustrialtechnologydevelopment,peoplepaymoreandmoreattentiontotemperaturefactor,manyareasofstricttemperaturerange,industrialproduction,agricultureanimalhusbandry,foodstorage,healthcare,andotherfieldsfortemperaturecontrolisverystrict,maybeal

4、ittletemperaturedifferenceresultinginirreparablemistake,sothetemperaturemeasurementandcontrolisnecessary.ThistopicwithAT89C52single-chipmicrocomputersystemasthecore,throughtheDS18B20toindoortemperaturereal-timemonitoring,andthroughtheLCD1602displaytemperaturevalue.DS18B20isasingledigitaltemperatures

5、ensor,cantheprogramsets912resolution,accuracy+/-0.5C.ResolutionSettings,anduserssetalarmtemperaturestoredinEEPROM,powerdownandstillsave.Combiningwiththeactualuseexperience,thispaperintroducesthedigitaltemperaturesensorDS18B20inunderthesinglechipmicrocomputerhardwareconnectionandsoftwareprogramming,a

6、ndgivesthesoftwareflowchart.Keywords:DS18B20MCULCD1602iii遼寧工程職業學院畢業論文(設計)第一章緒論1.1 課題背景在人類的生活環境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。自18世紀工業革命以來,工業發展對是否能掌握溫度有著絕對的聯系。在冶金、鋼鐵、石化、水泥、玻璃、醫藥等等行業,可以說幾乎80%勺工業部門都不得不考慮著溫度的因素。溫度對于工業如此重要,由此推進了溫度傳感器的發展。傳感器主要大體經過了三個發展階段:模擬集成溫度傳感器。該傳感器是采用硅半導體集成工藝制成,因此亦稱硅傳感器或單

7、片集成溫度傳感器。此種傳感器具有功能單一(僅測量溫度)、測溫誤差小、價格低、響應速度快、傳輸距離遠、體積小、微功耗等,適合遠距離測溫、控溫,不需要進行非線性校準,外圍電路簡單。它是目前在國內外應用最為普遍的一種集成傳感器,典型產品有AD590AD592TMP17LM135等;模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開關、可編程溫度控制器,典型產品有LM56AD22105和MAX6509某些增強型集成溫度控制器(例如TC652/653)中還包含了A/D轉換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統,工作時并不受微處理器的控制,這是二者的主要區別;智能溫度傳感器。

8、能溫度傳感器(亦稱數字溫度傳感器)是在20世紀90年代中期問世的。它是微電子技術、計算機技術和自動測試技術(ATE)的結晶。智能溫度傳感器內部都包含溫度傳感器、A/D轉換器、信號處理器、存儲器(或寄存器)和接口電路。有的產品還帶多路選擇器、中央控制器(CPU)、隨機存取存儲器(RAM和只讀存儲器(ROM)智能溫度傳感器的特點是能輸出溫度數據及相關的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎上通過軟件來實現測試功能的,其智能化程度也取決于軟件的開發水平。溫度傳感器的發展趨勢。進入21世紀后,溫度傳感器正朝著高精度、多功能、總線標準化、高可靠性及安全性、開發虛擬傳感器和網絡傳感器

9、、研制單片測溫系統等高科技的方向迅速發展。傳感器在溫度測控系統中的應用。目前市場主要存在單點和多點兩種溫度測量儀表。對于單點溫測儀表,主要采用傳統的模擬集成溫度傳感器,其中又以熱電阻、熱電偶等傳感器的測量精度高,測量范圍大,而得到了普遍的應用。此種產品測溫范圍大都在-200C800c之間,分辨率12位,最小分辨溫度在0.0010.01之間。自帶LED顯示模塊,顯示4位到16位不等。有的儀表還具有存儲功能,可存儲幾百到幾千組數據。該類儀表可很好的滿足單個用戶單點測量的需要。多點溫度測量儀表,相對與單點的測量精度有一定的差距,雖然實現了多路溫度的測控,但價格昂貴針對目前市場的現狀,本課題提出了一種

10、可滿足要求、可擴展的并且性價比高的單片機測溫系統。1.2 本課題研究意義隨著科學技術的不斷進步與發展,溫度控制在工業控制、電子測溫計、醫療儀器、家用電器等各種溫度控制系統中廣泛應用,且由過去的單點測量向多測量發展。目前溫度傳感器有模擬和數字兩類傳感器,為了克服模擬傳感器與微處理器接口時需要信號調理電路和D專換器的弊端,大多數多點測溫控制系統采用數字傳感器,并大大方便了系統的設計。比較有代表性的數字溫度傳感器有DS18B20MAX6575DS1722MAX6635SMT160-30。在傳統的溫度測量系統設計中,往往采用模擬技術進行設計,這樣就不可避免地遇到諸如引線誤差補償、多點測量中的切換誤差和

11、信號調理電路的誤差等問題;而其中某一環節處理不當,就可能造成整個系統性能的下降。隨著現代科學技術的飛速發展,特別是大規模集成電路設計技術的發展,微型化、集成化、數字化正成為傳感器發展的一個重要方向。美國Dallas半導體公司推出的數字溫度傳感器DS18B20具有獨特的單總線接口,僅需要占用一個通用I/O端口即可完成與微處理器的通信;在-10+85C溫度范圍內具有0.5c精度;用戶可編程設定912位的分辨率。以上特性使得DS18B20上常適用于構建高精度、溫度測量系統。1.3 本課題任務本課題的任務是實現對溫度進行測量并進行準確顯示及報警提示。整個系統由單片機控制,要能夠接收DS18B2W度傳感

12、器的數據并通過LCD1602a行實時顯示,同時會以進度條的方式表示溫度的高低,從20到40c區間每增加2c出現一個進度條,低于20c無進度條,高于40c出現10個進度條,并且當溫度低于20c時,蜂鳴器不響;當溫度在20到28c之間時,蜂鳴器以200M駒次間隔3s時間持續鳴叫;當溫度在28.1到35c之間時,蜂鳴器以200M駒次間隔2s時間持續鳴叫;當溫度在35.1到40c之間時,蜂鳴器以200M的次間隔1S時間持續鳴叫;而當溫度高于40C時,蜂鳴器以200MS次間隔0.5S時間持續鳴叫。第二章硬件設計2.1 STC89C52單片機簡介STC89C521一種帶8K字節閃爍可編程可榛除只讀存儲器(

13、FPEROM-Flash1遼寧工程職業學院畢業論文(設計)ProgramableandErasableReadOnlyMemory)的低電壓,高性能COMOS8微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51旨令集和輸出管腳相兼容。2.1.1 時鐘電路STC89C5四部有一個用于構成振蕩器的高增益反相放大器,引腳RXDffiTX吩別是此放大器的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。內部方式的時鐘電路如圖2.1(a)所示,在RXDF口TXD引腳上外接定時元件,內部振蕩器就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯諧振回

14、路。晶體振蕩頻率可以在1.212MHz間選擇,電容值在530pF之間選擇,電容值的大小可對頻率起微調的作用。外部方式的時鐘電路如圖2.1(b)所示,RXDS地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz勺方波信號。片內時鐘發生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。(a)內部方式時鐘電路圖2.1(b)外部方式時鐘電路 時鐘電路2.1.2 復位及復位電路(1)復位操作復位是單片機的初始化操作。其主要功能是把PC初始化為0000H使單片機從0000H單元開始執行程序。除了進入系統的正常初始化之外,當由于程序運行出錯或操作錯誤使

15、系統處于死鎖狀態時,為擺脫困境,也需按復位鍵重新啟動。除PC之外,復位操作還對其他一些寄存器有影響,它們的復位狀態如表一所示。寄存器復位狀態寄存器復位狀態PC0000HTCON00HACC00HTL000HPSW00HTH000H表一寄存器的復位狀態SP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00H(2)復位信號及其產生RST引腳是復位信號的輸入端。復位信號是高電平有效,其有效時間應持續24個振蕩周期(即二個機器周期)以上。若使用頗率為6MHz勺晶振,則復位信號持續時間應超過4us才能完成復位操作。產生復位信號的電路邏輯如圖2.2所示:RSTZVro9圖2.2復

16、位信號的電路邏輯圖整個復位電路包括芯片內、外兩部分。外部電路產生的復位信號(RST)送至施密特觸發器,再由片內復位電路在每個機器周期的S5P2時刻對施密特觸發器的輸出進行采樣,然后才得到內部復位操作所需要的信號。復位操作有上電自動復位相按鍵手動復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現的,具電路如圖2.3(a)所示。這佯,只要電源Vcc的上升時間不超過1ms就可以實現自動上電復位,即接通電源就成了系統的復位初始化。按鍵手動復位有電平方式和脈沖方式兩種。其中,按鍵電平復位是通過使復位端經電阻與Vcc電源接通而實現的,具電路如圖2.3(b)所示;而按鍵脈沖復位則是利用RCa分電路

17、產生的正脈沖來實現的,具電路如圖2.3(c)所示:(a)上電復位(c)按鍵脈沖復位(b)按鍵電平復位 圖2.3復位電路晶振,能保證復位信號高電平持續上述電路圖中的電阻、電容參數適用于6MHz時間大于2個機器周期。STC89C5定體介紹如下:主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線外接晶振引腳(2根)XTAL1(Pin19):片內振蕩電路的輸入端XTAL2(Pin20):片內振蕩電路的輸出端控制引腳(4根)RST/VPP(Pin9):復位引腳,引腳上出現2個機器周期的高電平將使單片機復位。ALE/PROG(Pin30):地址鎖存允許信號PSEN(

18、Pin29):外部存儲器讀選通信號EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。可編程輸入/輸出引腳(32根)STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。P0口(Pin39Pin32):8位雙向I/O口線,名稱為P0.0P0.7P1口(Pin1Pin8):8位準雙向I/O口線,名稱為P1.0P1.7P2口(Pin21Pin28):8位準雙向I/O口線,名稱為P2.0P2.7P3口(Pin10Pin17):8位準雙向I/O口線,名稱為P3.0P3.

19、7STC89C52主要功能如表二所示。表二STC89C52主要功能主要功能特性兼容MCS51旨令系統8K可反復擦寫FlashROM32個雙向I/O口256x8bit內部RAM3個16位可編程定時/計數器中斷時鐘頻率0-24MHz2個串行中斷可編程UAR伸行通道2個外部中斷源共6個中斷源2個讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設置睡眠和喚醒功能2.2DS18B20介紹DS18B2妙美國DSLLAS導體公司推出的第一篇支持“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優點,可直接將溫度轉化成用型數字信號供處理器處理。2.2.1DS18B20溫度傳

20、感器特性(1)適應電壓范圍寬,電壓范圍在3.05.5V,在寄生電源方式下可有數據線供電。(2)獨特的單線接口方式,它與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20勺雙向通信。(3)支持多點組網功能,多個DS18B2M以并聯在唯一的三線上,實現組網多點測溫。(4)在使用中不需要任何外圍元件,全部傳感器元件及轉換電路集成在形如一只三極管的集成電路內。(5)測溫范圍-55C-+125C,在-10C+85C時精度為0.5C。(6)可編程分辨率為912位,對應的可分辨率溫度分別為0.5C,0.25C,0.125C和0.0625C,可實現高精度測溫。(7)在9位分辨率時,最多在93.78m

21、s內把溫度轉換為數字;12位分辨率時,最多在750ms內把溫度轉換為數字,顯示速度快。(8)測量結果直接輸出數字溫度信號,以“一線總線”串行送給CPU同時可傳送CRCJ驗碼,具有極強的抗干擾糾錯能力。(9)負壓特性。電源極性接反時,芯片不會因發熱而燒毀,但不能正常工作。2.2.2 應用范圍(1)冷凍庫、糧倉、儲罐、電信機房、電力機房、電纜線槽等測溫和控制領域。(2)軸瓦、缸體、紡織、空調等狹小空間工業設備測溫和控制。(3)汽車空調、冰箱、冷柜以及中低緯度干燥箱等。(4)供熱、制冷管道熱量計量、中央空調分戶熱能計量等。2.2.3 引腳介紹DS18B2以物如圖2.4所示圖2.4實物圖DS18B20

22、t兩種封裝:三角TO-92直插式(用的最多、最普遍的封裝)和八角SOIC貼片式,封裝引腳見圖2.5。表三列出了DS18B20勺引腳定義。DS 13B2O123GNDI/OTJDD(b)DS18B20八角 SOIC(a)DS18B20To-92圖2.5DS18B20弓|腳封裝圖表三DS18B20引腳定義引腳定義GND電源負極DQ信號輸入輸出VDD電源正極NC空2.2.4 硬件連接(1) DS18B2寄生電源供電方式如下面圖2.6(a)所示,在寄生電源供電方式下,DS18B2映單線信號線上汲取能量:在信號線DQt于高電平期間把能量儲存在內部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高

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

24、度誤差變大。(2) DS18B2寄生電源強上拉供電萬式改進的寄生電源供電方式如下面圖2.6(b)所示,為了使DS18B20ft動態轉換周期中獲得足夠的電流供應,當進行溫度轉換或拷貝到E2存儲器操作時,用MOSFET把I/O線直接拉到VCCM可提供足夠的電流,在發出任何涉及到拷貝到E2存儲器或啟動溫度轉換的指令后,必須在最多10pS內把I/O線轉換到強上拉狀態。在強上拉方式下可以解決電流供應不足的問題,因此也適合于多點測溫應用,缺點就是要多占用一根I/O口線進行強上拉切換。(3) DS18B20勺外部電源供電方式如下面圖2.6(c)所示,在外部電源供電方式下,DS18B2CT作電源由VDDH腳接

25、入,其VD端用35.5V電源供電,此時I/O線不需要強上拉,不存在電源電流不足的問題,可以保證轉換精度,同時在總線上理論可以掛接任意多個DS18B2游感器,組成多點測溫系統。注意:在外部供電的方式下,DS18B2的GNDI腳不能懸空,否則不能轉換溫度,讀取的溫度總是85Co期K.0DS18B20GNDDQ DDDSI8B20(a)外部電源供電方式(c)pP10寄生電源供電方式1)S I XB2(c(zcc(b)寄生電源強上拉供電方式圖 工作原理硬件電路連接好以后,單片機需要怎么樣工作才能將DS18B2中的溫度數據讀取出來呢?下面將給出詳細分析。首先我們來看控制DS18B2的指令

26、:(1) 33Ht賣ROMi賣DS18B20S度傳感器ROM勺編碼(即64位地址)。(2) 55H匹配ROM發出此命令之后,接著發出64位RO端碼,訪問單總線上與該編碼相對應的DS18B2乘使之作出響應,為下一步對該DS18B20勺讀/寫做準備。(3)F0H一搜索ROM用于確定掛接在同一總線上DS18B20勺個數,識別64位ROM地址,為操作個器件做好準備。(4)CCH-跳過ROM忽略64為ROMft址,直接向18B20發溫度轉換命令,適用于一個從機工作。(5)ECH一告警搜索命令。執行后只有溫度超過設定值上限或下限的芯片才做出響應。以上這些指令設計的存儲器是64位光刻ROM表四列出了它的含義

27、。表四64位光刻ROM&位定義S位產品系列號4娥產品序號飛位CRCS碼64位光刻ROW的序列號是出廠前被光亥【J好的,它可以看做該DS18B20勺地址序列碼。其各位排列順序是:開始8位為產品類型標號,接下來48位是該DS18B20自身的序列號,最后8位是前面56位的CRC1環冗余校驗碼(CR=X8+X5+X4+1。光刻ROM勺作用是使每一個DS18B20rB各不相同,這樣就可以實現一條總線上掛接多個DS18B20勺目的。下面介紹以上幾條指令的用法。當主機需要對眾多在線DS18B2(fr的某一個進行操作時,首先應將主機逐個與DS18B20S接,讀出其序列號;然后再將所有的DS18B20掛接到總線

28、上,單片機發出匹配ROM0T令(55H),緊接著主機提供的64位序列(包括DS18B20勺48位序列號)之后的操作就是針對該DS18B20勺。如果主機只對一個DS18B20S行操作,就不需要讀取ROMS碼以及匹配RO端碼了,只要用跳過ROM(CCH命令,就可以進行如下溫度轉換和讀取操作。44H-溫度轉換。啟動DS18B20s行溫度轉換,12位轉換時最長為750ms(9位為93.75ms)。結果存入內部9字節的RAMKBEH-讀暫存器。讀內部RAW9字節的溫度數據。4EH-寫暫存器。發出向內部RAM勺2、3字節寫上、下限溫度數據命令,緊跟該命令之后,是傳送兩字節的數據。48H-復制暫存器。將RA

29、W第2,3字節的內容復制到E2ROMKB8H-重調E2ROW內容回復到RAMH勺第3,4字節。B4H-讀供電方式。讀DS18B20勺供電模式。寄生供電時,DS18B20送0外接電源供電時,DS18B20送1。遼寧工程職業學院畢業論文(設計)以上這些指令涉及的存儲器為高速暫存器RA防口可電擦出E2ROM見表五。表五高速暫存器RAM寄存器內容字節地址溫度值低位(LSB)0溫度值高位(MSB1高溫限值(TH)2低溫限值(LT)3配置寄存器4保留5保留6保留7CR或驗值8高速暫存器RAMS9個字節的存儲器組成。第01字節是溫度的顯示位;第2和第3個字節是復制的TH和TL,同時第2和第3個字節的數字可以

30、更新;第4個字節是配置寄存器,同時第4個字節的數字可以更新;第5,6,7三個字節的保留的。可電擦出E2ROW包括溫度觸發器TH和TL,以及一個配置寄存器。表六列出了溫度數據在高速暫存器RAM勺第0和第1個字節中的存儲格式。DS18B20s出廠時默認配置為12位,其中最高位為符號位,即溫度值共11位,單片機在讀取數據時,一次會讀2字節共16位,讀完后將低11位的二進制數轉化為十進制數后再乘以0.0625便為所測的實際溫度值。另外,還需要判斷溫度的正負。前5個數字為符號位,這5位同時變化,我們只需要判斷11位就可以了。前5位為1時,讀取的溫度為負值,且測到的數值需要取反加1再乘以0.0625才可得

31、到實際溫度值。前5位為0時,讀取的溫度為正值,且溫度為正值時,只要將測得的數值乘以0.0625即可得到實際溫度值。2.2.6工作時序圖初始化時序如圖2.7初始化厘程“復位和存在的沖.單畿總質線型言義:D31能。偃電平電阻上拉百繳桂刷器假電平總裝控制器和蚱1眨口同為修電平圖2.7初始化時序先將數據線置高電平1。延時(該時間要求不是很嚴格,但是要盡可能短一點)。數據線拉到低電平0o延時750us(該時間范圍可以在480us960us)。數據線拉到高電平1。延時等待。如果初始化成功則在1560us內產生一個有DS18B2版回的低電平0,據該狀態可以確定它的存在。但是應注意,不能無限地等待,不然會使程

32、序進入死循環,所以要進行超時判斷。 若CP聯到數據線上的低電平0后,還要進行延時,其延時的時間從發出高電平算起(第5)步的時間算起)最少要480us。 將數據線再次拉到高電平1后結束。(2) DS18B20f數據時序圖如圖2.815圖2.8寫數據時序圖 數據線先置低電平00 延時確定的時間為15uso按從低位到高位的順序發送數據(一次只發送一位)延時時間為45us將數據線拉高到高電平1。重復1)5)步驟,直到發送完整個字節。最后將數據線拉高到1。(3) DS18B20讀數據時序圖如圖2.9圖2.9讀數據時序圖將數據線拉高到1。延時2us。將數據線拉低到00延時6us。將數據線拉高到1。延時4u

33、s。讀數據線的狀態位,并進行數據處理。延時30uso重復1)7)步驟,直到讀取完一個字節2.3 系統電路設計單片機最小系統如圖如圖2.10所示J3P1QP1I2P123S1SW-PBP1TBOP返P3E3P3H4P3ESR1P310K30pf11C3aPT?199國rairpiP16720P1.0vccPl.lPOOPl2POJPl.3P0.2Pl4POJPl.5P0.4PlfiP0.5Pl.7P0.6RSTA/PDP0.7P3.0/RDEAAppP3.1/TXDALE/PROGP32/INTOPSENP33/INT1P2.7P3.4HTP2.6p35mP2.5P3.6/WRP2.4P37/R

34、DP2,3XTAL2P2.2XTALlP2.1GNDP2.0STC85C52HI30pfVCC4039POO38poi37P0236P0335P04與P0533POl532,PT1刃302928P2127P26P2525P2424P2323P222221P20一圖2.10系統電路圖這部分為單片機復位電路和時鐘電路。單片機復位后,程序計數器PC=0000H,即指向程序存儲器0000H單元,使CPU從首地址重新開始執行程序。產生單片機復位的條件是:在RST引腳端出現滿足復位時間要求的高電平狀態,該時間等于系統時鐘震蕩周期建立時間再加2個機器周期時間(一般不小于10ms)。時鐘電路通過單片機的XTA

35、L俐XTAL2弓唧外接定時元件12M的晶振,電容C1和C2一般去30pF左右,主要作用是幫助振蕩器起震。晶體振蕩頻率高,則系統的時鐘頻率也越高,單片機運行速速也就越快。2.4 顯示電路設計LCD1602M示電路原理圖如圖2.11所示圖2.11LCD1602顯示電路此部分為LCD1602a示電路,通過10K可調電阻可以調節1602背光顯示亮度P0口接一個10K的上拉排阻。第三章軟件設計3.1軟件開發工具的選擇要使單片機系統按照人的意圖辦事,需設法讓人與計算機對話,并聽從人的指揮。程序設計語言是實現人機交換信息的最基本工具,可分為機器語言、匯編語言和高級H0機器語言用二進制編碼表示每一條指令,是計

36、算機能直接識別和執行的語言。用機器語言編寫的程序成為機器語言程序或者指令程序(機器碼程序)。因為機器只能識別和執行這種機器碼程序,所以又稱它為目標程序。用機器語言編寫程序不易記憶、不易查錯、不易修改。為了克服機器語言的上述缺點,可采用有一定含義的符號,即指令助記符來表示,一般都采用某些有關的英文單詞的縮寫。這樣就出現了另一種程序語言一匯編語言。匯編語言是用助記符、符號和數字等來表示指令的程序語言,容易理解和記憶,它與機器語言指令是一一對應的。匯編語言不像高級語言(如BASIC那樣通用型強,而是屬于某種計算機所獨有,與計算機的內部硬件結構密切相關。用匯編語言編寫的程序稱為匯編語言程序。以上兩種語

37、言都是低級語言。盡管匯編語言有不少優點,但它仍存在著機器語言的某些缺陷:與CPU勺硬件結構密切相關,不同的CP貝匯編語言是不同的。這使得匯編語言程序不能移植,使用不便;其次,要使用匯編語言進行程序設計必須了解所使用CP映件的結構與性能,對程序設計人員有較高的要求。為此,又出現了對單片機進行編程的高級語言,如PLM,C等。Keil C51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發系遼寧工程職業學院畢業論文(設計)統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用球開發,體會更加深刻。KeilC51軟件提供豐富的

38、庫函數和功能強大的集成開發調試工具,全Window酣面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。經分析綜合得知,本課題采用C言進行編程。3.2 系統軟件設計的一般原則單片機應用軟件系統設計包括功能模塊劃分、程序流程確立、模塊接口設計以及程序代碼編寫。我們依據系統的功能要求,將整體軟件系統分割成若干個獨立的程序模塊。這些程序模塊可以是幾條語句的集合、功能函數或程序文件。隨后,根據個程序模塊的實現功能寫出流程,一般需要寫出具體的實現功能描述。程序代碼通常采用匯

39、編語言或高級語言(C語言)編寫。本課題采用C語言編程,在此必須注意以下問題:(1)提高程序代碼效率必須熟悉當前使用的C語言編譯器,試驗每條C語言編譯以后對應的匯編語言的語句行數,這樣就可以很明確的知道代碼效率。(2)減少程序錯誤我們在編寫程序時,要注重考慮如下方面。物理參數資源參數應用參數過程參數(3)單片機的抗干擾性防止干擾最有效的方法是去除干擾源、隔離干擾路徑。單片機干擾最常見的現象就是復位,導致程序運行異常。設計系統是一般需要添加一個“看門狗”監控模塊,在系統出現不可逆轉的干擾時,監控模塊將重啟系統,并從斷點處繼續執行。(4)系統的可靠性要測試單片機軟件功能的完善性。上電、掉電測試。系統

40、耗損測試。3.3 系統軟件設計的一般步驟系統進行軟件設計時,先要對本課題硬件有一個熟練的掌握,知道系統的組成,數據的傳輸,信號是如何被控制的,以及信號的顯示。然后進行軟件設計時,先搞清楚各個部分的子程序及他們的流程圖,然后進行各子程序的編寫,最后通過主函數把各子程序連接起來實現設計。3.4 測溫軟件實現系統軟件設計主要包括系統程序和流程圖,根據整個系統的要求,完成溫度的測量與控制必須經過以下幾個步驟:單片機接受傳感器的溫度信號,并通過MAX232EPE驅動LCD1602并將溫度顯示出來。系統主程序流程圖如圖3.1所示。19遼寧工程職業學院畢業論文(設計)圖3.1系統主程序流程圖#遼寧工程職業學

41、院畢業論文(設計)3.4.1 初始化子程序DS18B2創始化程序嚴格按照DS18B20勺時序來編寫,微處理器開始發送一個復位脈沖(在480us960us之間),接著數據線釋放拉到高電平1,如圖3.2所示。圖3.2初始化子程序流程圖3.4.2 溫度轉換首先調用DS18B2創始化子程序對它進行初始化,然后發跳過匹配ROMfiT令,接著發溫度轉換命令完成溫度轉換,該命令主要是完成溫度的A/D轉換,讀取溫度程序是在轉換結束后才能讀取當前溫度值。工作流程圖如圖3.3所示。fJJ始ftnsSB2O-I命令:界匕過嚀列弓可命令動5M陵就摸結束圖3.3溫度轉換流程圖3.4.3 DS18B20寫子程序當主機把數

42、據線從高邏輯電平拉低至邏輯電平時產生寫時間片,有兩種類型的寫時間片,寫1時間片和寫0時間片,所有時間片必須有最短為60微妙的持續期。在各寫周期之間必須有最短為1us的恢復時間。在I/O口線高電平變為低電平后DS18B20ft15us到60us之間對I/O采樣,如果是高電平則寫1,低電平寫0。流程圖如圖3.4所示。圖3.4寫子程序流程圖3.4.4 DS18B20讀子程序從DS18B20賣數據時單片機產生讀時間片,當主機把數據線從邏輯高電平拉到低電平時產生讀時間片,數據線必須保持在邏輯電平至少1微妙,來自DS18B20勺輸出數據在讀時間段下降沿之后15微妙有效,因此為了讀出從讀時間段開始算起15微

43、妙的狀態單片機必須停止把I/O引腳驅動拉低至低電平,在讀時間段結束時I/O引腳經過外部的上拉電阻拉回至高電平,所有讀時間段的最短持續周期限為60微妙,各個讀時間片之間必須有最短為1微妙的恢復時間,把主機采樣時間定在15微妙期間的末尾系統時序關系就有最大的余地。單片機從DS18B2四讀取數據是一位一位的讀的,每讀完一位的數據到單片機的特定單元A,A左移一次與B向或,直至DS18B20勺數據全部移到B中,到此單片機就對DS18B2流成了讀字節操作。t數據流程圖如圖3.5所示。圖3.5讀子程序流程圖第四章誤差分析4.1 誤差產生當采用寄生電源的工作方式時(電源從IO口上獲得),如果溫度高于100C,

44、則將產生很大的誤差,因為此時器件中較大的漏電流會使總線不能可靠檢測高低電平,從而導致數據傳輸誤碼率的增大。DS18B20T作電壓范圍為3.0V至5.5V無需備用電源,測量溫度范圍為-55c至+125C,華氏相當于是-671至112571華氏度,在-10C至+85C范圍內精度為0.5C。在遠距離有線測溫傳輸過程中,當采用普通信號電纜傳輸長度超過50m時,讀取的測溫數據將發生錯誤使得不能準確測量4.2 降低誤差方法為了使得設計能夠得到準確實時溫度,DS18B2床用了外部電源供電方式,在外部電源供電方式下,DS18B20T作電源由VD用唧接入,此時I/O線不需要強上拉,不存在電源電流不足的問題,可以

45、保證轉換精度,同時在總線上理論可以掛接任意多個DS18B20專感器,組成多點測溫系統。外接電源方式下,可以充分發揮DS18B20寬電源電壓范圍的優點,即使電源電壓VCCW到3V時,依然能夠保證溫度量精度。在傳輸方面,當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m當采用每米絞合次數更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長,測溫電纜線建議采用屏蔽4芯雙絞線。第五章調試與小結本設計KeilC51寸單片機多點溫度測量系統進行了軟件編寫。在編寫過程中,必須嚴格按照DS18B2的工作時序嚴格編寫,否則溫度無法準確測量。硬件電路的設計是通過Protel99se軟件來來設計的PCB設計之

46、始,由于對軟件的不熟練和PC斷線規則的不熟悉,導致第一版的設計失敗,主要原因是布線寬度太窄導致刻板時線被刻斷,焊盤設計太小,焊接時元件焊接不牢固。在兩面布線時,頂層布線只放置一個過孔到頂層走線直接布線到頂層焊盤導致無法焊接。在第一版設計階段由于粗心大意,把P0口上拉排阻的接電源錯接成接地導致LCD160不能顯示,通過原理圖對比和電路的排查最終找出和解決問題。經過改善后,第二版PC副作成功。本課題通過分析對比各種不同的溫度傳感器,選定DS18B20這種單總線數字溫度傳感器的通信方式比較獨特,軟件編寫要求的比較新穎,特點突出。用其構建的系統有很多優點:硬件連線簡單,省去了使用模擬傳感器要進行放大、

47、A/D轉換等工作,由于它的級聯功能,一條總線可掛接多個傳感器測量不同位置的溫度,根據DS18B20唯一的序號識別不同傳感器在各自位置的溫度。系統對DS1820和各種操作必須按協議進行,即:初始化DS1820(發復位脈沖)一發RO能命令一發存儲器操作命令一處理數據。現場溫度直接以“一線總線”的數字方式傳輸,自帶地址,提高了系統的穩定性和抗干擾性。通過調試成型系統發現了DS18B2除了上述優點外,還有一些缺點,如:簡單的硬件連接的代價是復雜的軟件時序,DS18B2施測量溫度的時候,靈敏度不夠高,溫度快速變化時無法迅速顯示出其變化。通過一系列的實驗發現:由DS18B20J建的測溫小系統適用于環境溫度

48、監控,對溫度小變化較敏感;不適合應用于要求實時性強、溫度跨度大的測溫方式。25致謝本設計是在XX老師的指導下完成的,XX老師是一位極其負責任的指導老師。畢業設計初期時,就制定了詳細的工作時間表,對于各個階段要完成的設計任務都詳盡列出,而且按時要求完成。期間,多次分析指導,提供修改意見。為此,對XX老師在畢業設計期間提供的悉心指導與幫助表示衷心的感謝!止匕外,特別要感謝在這次畢業設計中為我提供寶貴意見的同學,有了你們的建議讓我這次畢業設計順利完成!遼寧工程職業學院畢業論文(設計)參考文獻1黨峰、王敬農、高國旺.基于DS18B20勺數字式溫度計的實現J.山西電子技術,2007(3)2趙海蘭、趙祥偉

49、.智能溫度傳感器DS18B20勺原理與應用J.現代電子技術,2003,26(14)3王福泉、萬頻、馮孔淼、張昱.DS18B2旺空調檢測系統溫度采集模塊中的應用J.電子技術應用,2011,37(8)4程院蓮.基于單總線器件DS18B20的智能溫度測量J.現代教育裝備,2010(23)5劉雪松程顯俠.新型溫度傳感器DS18B20高精度測溫的實現J.微處理機2002(2)6馬云峰.單片機與數字溫度傳感器DS18B20的接口設計J.計算機測量與控制,2002(04)7郭天祥.新概念51單片機C語言教程一入門、提高、開發、拓展全攻略.電子工業出版社M,20118林立、張俊亮、曹旭東.單片機原理及應用(基

50、于Proteus和KeilC)M.北京:電子工業出版社,20099魏偉、胡瑋、王永清.51單片機C語言開發與應用技術案例詳解M.北京:化學工業出版社,2010.10沈長生.常用電子元器件使用一讀通M.北京:人民郵電出版社.200411童詩白、華成英.模擬電子技術基礎M.北京:高等教育出版社.200012 On-LineMeasureSystemoftheTemperatureintheSyntheticAmmoniaTowerBasedontheDS18B20TemperatureSensorC.Volume1A.2009:102-104.13 Fen-PingZhou,Hong-TaoMa,

51、Bing-DongSuietal.TemperatureDetectingSystemofBeerFermentationBasedonDS18B20C.ProgressinMeasurementandTesting.p.2.2010:898-902.#遼寧工程職業學院畢業論文(設計)29附錄附錄一:電路原理圖III2I3IIU1VCCP2T-234567891011121314151617181920HeadRESETPZ2VCCUSBPWRP3C29100nFPOWERVCC C3VCCVCC0VCC34678D-D+C2+C2-345678910iSP5REDVCC0Tx1outlTx2

52、out2Rx1iniRx2in2LCD1602LCD1602LCD 1602S W 12 3456 78CN rrEDD DDDDDD/GVCC2K R7 P37附錄二:PC晞線圖-工H-附錄三:程序清單18B20.h#ifndef_DS18B20_H_#define_DS18B20_H_#include/包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義#include#defineucharunsignedchar#defineuintunsignedint;/*端口定義*/sbitDQ=P1A7;/ds18b20端口/*函數聲明*/unsignedintReadTempera

53、ture(void);bitInit_DS18B20(void);unsignedcharReadOneChar(void);voidWriteOneChar(unsignedchardat);#endif18B20.c#includedelay.h#include”18b20.h/*18b20初始化*/bitInit_DS18B20(void)bitdat=0;DQ=1;/DQ復位DelayUs2x(5);/稍做延時DQ=0;/單片機將DQ拉低DelayUs2x(200);/精確延時大于480us小于960usDelayUs2x(200);DQ=1;拉高總線DelayUs2x(50);/1560us后接收60-240us的存在脈沖dat=DQ;/如果x=0則初始化成功,x=1則初始化失敗DelayUs2x(25);/稍作延時返回returndat;/*讀取一個字節*/unsignedc

溫馨提示

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

評論

0/150

提交評論