基于51單片機的數字溫度計的設計_第1頁
基于51單片機的數字溫度計的設計_第2頁
基于51單片機的數字溫度計的設計_第3頁
基于51單片機的數字溫度計的設計_第4頁
基于51單片機的數字溫度計的設計_第5頁
免費預覽已結束,剩余23頁可下載查看

下載本文檔

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

文檔簡介

1、僅供個人參考單片機原理與接口技術課程設計題 目:數字溫度計學院(系):年級專業:學 號:學生姓名:指導教師:課程設計任務書學生姓名: 專業班級:指導教師: 工作單位: 題 目:基于51單片機的數字溫度計的設計初始條件:1. 運用所學的單片機原理與接口技術知識和數字電路知識;2. 51單片機應用開發系統一套;3. PC機及相關應用軟件;要求完成的主要任務:1 .完成數字溫度計的設計和調試。2 .要求用DS18B20H量室溫,用四位八段數碼管顯示,并能設置顯示精度。3 .撰寫課程設計說明書。4.課程設計說明書要求:引言、設計要求、系統結構、原理設計、各個模 塊的設計與實現、軟件設計、調試過程、收獲

2、、體會及總結、參考文獻、 電路圖和源程序。說明書使用 A4打印紙計算機打印或手寫,用 Protel 等繪圖軟件繪制電子線路圖紙。時間安排:第1天 下達課程設計任務書和日程安排,根據任務書查找資料;第23天 完成方案論證,單片機系統的設計;第46天 參考有關文獻,完成程序的編寫;第710大 調試硬件系統和軟件程序;第1112天 結果分析整理、撰寫課程設計報告,驗收和答辯。指導教師簽名:2010年6月10日系主任(或責任教師)簽名:2010 年6月10日不得用于商業用途僅供個人參考摘要1一、引言2二、總體方案設計與論證31、方案一32、方案二4三、系統硬件選擇51、單片機的選擇52 89C51引腳

3、功能介紹:63、溫度傳感器的選擇8四.硬件電路設計101 .溫度檢測電路112 .顯木電路12五、系統軟件設計131 .概述132 .主程序流程圖133 . C語言程序14六、設計體會20附錄:參考文獻21摘要:隨著時代的進步和發展,單片機技術已經普及到我們生活、工作、科研、各個領域,已經成為一種比較成熟的技術, 本文主要介紹了一個基于89C51單片機的測溫系統,詳細描述了利用數字溫度傳感器 DS18B2CW發測溫系統的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統流程進行了詳盡分析,對各部分的電路也一一進行了介紹, 該系統可以方便的實現實現溫度采集和顯示,并可根據需要任意設定

4、上下限報警溫度, 它使用起來相當方便,具有精度高、量程寬、 靈敏度高、體積小、功耗低等優點,適合于我們日常生活和工、農業生產中的溫度測量,也可以當作溫度處理模塊嵌入其它系統中,作為其他主系統的輔助擴展。DS18B20W AT89C5回合實現最簡溫度檢測系統,該系統結構簡單,抗干擾能力強,適合于惡劣環境下進行現場溫度測量,有廣泛的應用前景。關鍵詞:單片機;溫度檢測;AT89C51; DS18B20;不得用于商業用途一、引言隨著科技的不斷發展,現代社會對各種信息參數的準確度和精確度的要求都有了幾何級的增長,而如何準確而又迅速的獲得這些參數就需要受制于現代信息基礎的發展水平。在三大信息信息采集(即傳

5、感器技術)、信息傳輸(通信技術 )和信息處理(計算機技術)中,傳感器屬于信息技術的前沿尖端產品,尤其是溫度傳感器技術,在我國各領域已經引用的非常廣泛,可以說是滲透到社會的每一個領域,人民的生活與環境的溫度息息相關,在工業生產過程中需要實時測量溫度,在農業生產中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關鍵是溫度傳感器,溫度傳感器的發展經歷了三個發展階段:傳統的分立式溫度傳感器模擬集成溫度傳感器智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數字溫度傳感器)是在20世紀90年代中期問世的,它是微電子技術、計算機技術和自動測試技術(ATE) 的結晶,特點是能輸出溫度數

6、據及相關的溫度控制量,適配各種微控制器 (MCU)。社會的發展使人們對傳感器的要求也越來越高,現在的溫度傳感器正在基于單片機的基礎上從模擬式向數字式,從集成化向智能化、網絡化的方向飛速發展,并朝著高精度、多功能、總線標準化、高可靠性及安全性、開發虛擬傳感器和網絡傳感器、研制單片測溫系統等高科技的方向迅速發展,本文將介紹智能集成溫度傳感器DS18B20的結構特征及控制方法,并對以此傳感器,89C51單片機為控制器構成的數字溫度測量裝置的工作原理及程序設計作了詳細的介紹。與傳統的溫度計相比,其具有讀數方便,測溫范圍廣,測溫準確,輸出溫度采用數字顯示,主要用于對測溫要求比較準確的場所,或科研實驗室使

7、用。該設計控制器使用ATMEL 公司的 AT89C51 單片機, 測溫傳感器使用DALLAS 公司DS18B20, 用液晶來實現溫度顯示。僅供個人參考二、系統方案論證與比較該系統主要由溫度測量和數據采集兩部分電路組成,實現的方法有很多種, 卜面將列出兩種在日常生活中和工農業生產中經常用到的實現方案。2. 1、方案一采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫熱偶,熱電偶由兩 個焊接在一起的異金屬導線所組成(熱電偶的構成如圖3.1),熱電偶產生的熱電勢由兩種金屬的接觸電勢和單一導體的溫差電勢組成。通過將參考結點保持在已知溫度并測量該電壓,便可推斷出檢測結點的溫度。數據采集部分則使用帶有 A/

8、D通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進行 A/D轉 換后,就可以用單片機進行數據的處理, 在顯示電路上,就可以將被測溫度顯示 出來。熱電偶的優點是工作溫度范圍非常寬, 且體積小,但是它們也存在著輸出 電壓小、容易遭受來自導線環路的噪聲影響以及漂移較高的缺點,并且這種設計需要用到A/D轉換電路,感溫電路比較麻煩。圖3.1熱電偶電路圖系統主要包括對A/D0809的數據采集,自動手動工作方式檢測,溫度的顯 示等,這幾項功能的信號通過輸入輸出電路經單片機處理。此外還有復位電路, 晶振電路,啟動電路等。故現場輸入硬件有手動復位鍵、A/D轉換芯片,處理芯片為51芯片,執行機構有4位數碼

9、管、報警器等。2. 2、萬案二采用數字溫度芯片DS18B20測量溫度,輸出信號全數字化。便于單片機處 理及控制,省去傳統的測溫方法的很多外圍電路。且該芯片的物理化學性很穩定, 它能用做工業測溫元件,此元件線形較好。在 0100攝氏度時,最大線形偏差 小于1攝氏度。DS18B20的最大特點之一采用了單總線的數據傳輸,由數字溫 度計DS18B20ft微控制器AT89C51構成的溫度測量裝置,它直接輸出溫度的數字 信號,可直接與計算機連接。這樣,測溫系統的結構就比較簡單,體積也不大。采用 51單片機控制,軟件編程的自由度大,可通過編程實現各種各樣的算術算法和 邏輯控制,而且體積小,硬件實現簡單,安裝

10、方便。既可以單獨對多DS18B20控制工作,還可以與PC機通信上傳數據,另外AT89S51在工業控制上也 有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。該系統利用AT89C51芯片控制溫度傳感器DS18B20!行實時溫度檢測并顯 示,能夠實現快速測量環境溫度,并可以根據需要設定上下限報警溫度。該系統擴展性非常強,它可以在設計中加入時鐘芯片 DS1302以獲取時間數據,在數據 處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時間 點的溫度數據進行存儲,利用鍵盤來進行調時和溫度查詢, 獲得的數據可以通過 MAX232芯片與計算機的RS2328 口進行串口通信,方

11、便的采集和整理時間溫度 數據。系統框圖如圖3.3所小里片機復位LED顯示不得用于商業用途溫度傳感器時鐘振蔻圖I總體設計方框圖圖3.3 DS18B20溫度測溫系統框圖從以上兩種方案,容易看出方案一的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案二的測溫裝置電路簡單、精確度較高、實現方便、軟件設 計也比較簡單,故本次設計采用了方案二。三、系統器件選擇3.1、 單片機的選擇對于單片機的選擇,可以考慮使用 8031與8051系列,由于8031沒有內部 RAM系統又需要大量內存存儲數據,因而不適用。AT89C51是美國ATMEL公司生產的低功耗,高性能CMOS8位單片機,片內含4kbytes的可

12、編程的Flash只 讀程序存儲器,兼容標準8051指令系統及引腳。它集Flash程序存儲器既可在 線編程(ISP),也可用傳統方法進行編程,所以低價位 AT89C51單片機可為提 供許多高性價比的應用場合,可靈活應用于各種控制領域,對于簡單的測溫系統 已經足夠。單片機AT89C51具有低電壓供電和體積小等特點,四個端口只需要 兩個口就能滿足電路系統的設計需要,很適合便攜手持式產品的設計使用系統可 用二節電池供電。主要特性如下圖-1所示: 與MCS-51兼容 4K?節可編程閃爍存儲器 壽命:1000寫/擦循環數據保留時間:10年全靜態工作:0Hz-24Hz三級程序存儲器鎖定 128*8位內部RA

13、M 32可編程I/O線 兩個16位定時器/計數器 5個中斷源AT89C511PIOPOOPllPOlF12P02Pl 3P03P14P04P15P05F16PG6Pl?P07INTIP20FNTOP21P22T1P23TOP34P25EAA7PP26P27XIX2RESETRXDTXDRDALE加WRPSEN392383374365356347338322112 3221523241425312?192SID18917七1134)單片機引腳如圖-1所示可編程串行通道僅供個人參考低功耗的閑置和掉電模式片內振蕩器和時鐘電路3.2 89C51 引腳功能介紹:AT89C51 單片機為 40 引腳雙列直

14、插式封裝, 其引腳排列和邏輯符號如圖-1 所示:各引腳功能簡單介紹如下: VCC供電電壓 GND接地 P0口 : P0口為一個8位漏級開路雙向I/O 口,每個管腳可吸收8TTL、1電 流。當P1 口的管腳寫“1”時,被定義為高阻輸入。P0tg夠用于外部程序 數據存儲器,它可以被定義為數據/地址的第八位。在FLASHY程時,P0 口作為原碼輸入口,當FLAS進行校驗時,P喻出原碼,此時P的卜部電位 必須被拉高。 P1 口: P1 口是一個內部提供上拉電阻的8位雙向I/O 口,P1 口緩沖器能 接收輸出4TTL、1電流。P1 口管腳寫入“1”后,電位被內部上拉為高,可 用作輸入,P1 口被外部下拉

15、為低電平時,將輸出電流,這是由于內部上 拉的緣故。在FLASH®程和校驗時,P1 口作為第八位地址接收。 P2口 : P2口為一個內部上拉電阻的8位雙向I/O 口,P2口緩沖器可接收, 輸出4個TTL1電流,當P2口被寫“1”時,其管腳電位被內部上拉電阻拉 高,且作為輸入。作為輸入時,P2口的管腳電位被外部拉低,將輸出電 流,這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址 外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“ 1” 時, 它利用內部上拉的優勢,當對外部八位地址數據存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內容。P2 口在FLAS編程和校

16、驗時接收高八 位地址信號和控制信號。 P3口 : P3口管腳是8個帶內部上拉電阻的雙向I/O 口,可接收輸出4個TTL 門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入時,由于外部下拉為低電平,P3口將輸出電流(ILL),也是由于 上拉的緣故。P3口也可作為AT89C5的一些特殊功能口:P3.0 RXD(串行輸入口)P3.1 TXD(用行輸出口)P3.2 INT0( 外部中斷0)P3.3 INT1( 外部中斷1)P3.4 T0( 記時器0外部輸入)P3.5 T1( 記時器1外部輸入)P3.6 WR (外部數據存儲器寫選通)P3.7 RD ( 外部數據存儲器讀選通)同時

17、P3 口同時為閃爍編程和編程校驗接收一些控制信號。 RST復位輸入。當振蕩器復位器件時,要保持 RSTP兩個機器周期的 高平時間。 ALE/ PROG當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖 存地址的地位字節。在FLASHY程期間,此引腳用于輸入編程脈沖。在平 時,ALES以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6 。 因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個 ALE永沖。如想禁止ALE勺輸出 可在SFR8EH址上置0。此時,ALE只有在執行MOVX MOVC令時ALEt 起作用。另外,該引腳被略微拉高。如果微處

18、理器在外部執行狀態ALE禁止,置位無效。 PSEN外部程序存儲器的選通信號。在由外部程序存儲器取址期間, 每個機器周期PSEIW次有效。但在訪問內部部數據存儲器時,這兩次有 效的PSEN1號將不出現。 EA/VPP當E禰持低電平時,訪問外部ROM注意加密方式1時,EA等 內部鎖定為RESET當£硼保持高電平時,訪問內部ROM在FLASH®程期 問,此引腳也用于施加12Vg程電源(VPP)。 XTAL1反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2來自反向振蕩器的輸出。3.3 、溫度傳感器的選擇DS18B20 簡單介紹:DALLAS最新單線數字溫度傳感器DS18B

19、20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經濟。DALLAS 半導體公司的數字化溫度傳感器DS18B20世界上第一片支持“一線總線”接口的溫度 傳感器。溫度測量范圍為-55+125攝氏度,可編程為9位12位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數以及用戶設定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴展的16位數字量方式串行輸出; 其工作電源既可以在遠端引入,也可以采用寄生電源方式產生;多個 DS18B20可以并聯到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節省大量的引

20、線和邏輯電路。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20的性能特點如下: 獨特的單線接口方式,DS18B2猊與微處理器連接時僅需要一條口線即可 實現微處理器與DS18B2的雙向通訊 DS18B2或持多點組網功能,多個DS18B20T以并聯在唯一的三線上,實現 組網多點測溫 DS18B2猊使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內 適應電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數據線供電 溫范圍55C+ 125C,在-10+85時精度為± 0.5 C零待機功耗 可編

21、程的分辨率為912位,對應的可分辨溫度分別為0.5 C、0.25 C、0.125 和 0.0625 ,可實現高精度測溫 在9位分辨率時最多在93.75ms內把溫度轉換為數字,12位分辨率時最多在 750m吶把溫度值轉換為數字,速度更快不得用于商業用途僅供個人參考測量結果直接輸出數字溫度信號,以“一線總線”出行傳送給CPU同時可 傳送CR版驗碼,具有極強的抗干擾糾錯能力 負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工 作以上特點使DS18B20常適用與多點、遠距離溫度檢測系統DS18B20J部結構主要由四部分組成:64位光刻ROM溫度傳感器、非揮發的 溫度報警觸發器THKTL、

22、配置寄存器。DS18B2的管腳排列、各種封裝形式如圖 4.2所示,DQ為數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電 源下,也可以向器件提供電源;GND;地信號;VDM可選擇的VDDH腳。當工作 于寄生電源時,此引腳必須接地。其電路圖 4.3所示.。BOTTOM VIEWDALLAS DS1820DS18B20TO-92不得用于商業用途PACKAGENC INC 2DQ 4uu> azo -§-oo-azoDS18B20Z8-PIN SOIC(150-MILI圖4.3傳感器電路圖圖4.2外部封裝形式3.3.2 DS18B20使用中的注意事項DS18B20雖然具有測溫

23、系統簡單、測溫精度高、連接方便、占用口線少等優點,但在實際應用中也應注意以下幾方面的問題: DS18B20從測溫結束到將溫度值轉換成數字量需要一定的轉換時間,這是必須保證的,不然會出現轉換錯誤的現象,使溫度輸出總是顯示85。在實際使用中發現,應使電源電壓保持在 5V 左右,若電源電壓過低,會使所測得的溫度精度降低。較小的硬件開銷需要相對復雜的軟件進行補償,由于DS1820f微處理器問采用串行數據傳送,因此,在對DS1820s行讀寫編程時,必須嚴格的保證讀寫時 序,否則將無法讀取測溫結果。在使用PL/M、C等高級語言進行系統程序設計時, 對DS182鰥作部分最好采用匯編語言實現。在DS18B2的

24、有關資料中均未提及單總線上所掛 DS18B20數量問題,容易 使人誤認為可以掛任意多個DS18B20在實際應用中并非如此,當單總線上所掛 DS18B20 超過8 個時, 就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統設計時要加以注意。在DS18B2測溫程序設計中,向DS18B20發出溫度轉換命令后,程序總要 等待DS18B2的返回信號,一旦某個DS18B20接觸不好或斷線,當程序讀該 DS18B20時,將沒有返回信號,程序進入死循環,這一點在進行DS18B2硬件連接和軟件設計時也要給予一定的重視。四 . 硬件電路設計本設計由DS18B20溫度傳感器芯片測量當前的溫度并將轉換后的結果

25、送入單片機。然后通過A89C51單片機驅動兩位共陽極8段LED數碼管顯示測量溫度 值。如附錄中本設計硬件電路圖所示,本電路主要有 DS18B2W度傳感器芯片, 兩位共陽極數碼管,AT89C51i1片機及相應外圍電路組成。其中DS18B2(0R用“一 線制”與單片機相連。4.1、 溫度檢測電路DS18B20最大的特點是單總線數據傳輸方式,DS18B20的數據I/O均由同一條線來完成。DS18B20的電源供電方式有 2種:外部供電方式和寄生電源方 式。工作于寄生電源方式時,VDD和GND均接地,他在需要遠程溫度探測和空 問受限的場合特別有用,原理是當1 Wire總線的信號線DQ為高電平時,竊取 信

26、號能量給DS18B20供電,同時一部分能量給內部電容充電,當DQM氐電平時 釋放能量為DS18B20供電。但寄生電源方式需要強上拉電路,軟件控制變得復 雜(特別是在完成溫度轉換和拷貝數據到E2PROM寸),同時芯片的性能也有所降低。外部電源供電方式是DS18B2眼佳的工作方式,工作穩定可靠,抗干擾能 力強,而且電路也比較簡單,可以開發出穩定可靠的多點溫度監控系統。因此本設計采用外部供電方式。如下圖所示:溫1度檢測電路如圖T所不溫度傳感器DS18B20勺測量范圍為-55C+125C,在-10 C+85C時精度為±0.5C。因為本設計只用于測量環境溫度,所以只顯示 0c+85C。4.2、

27、 顯示電路本設計顯示電路采用兩位共陽極 LED數碼管來顯示測量得到的溫度值。LED 數碼管能在低電壓下工作,而且體積小、重量輕、使用壽命長,因次本設計選用 此數碼管作為顯示器件。一個LED數碼管只能顯示一位的字符,如果字符位數不止一位,可以用 幾個數碼管組成,但要控制多位的顯示電路需要有字段控制和字位控制,字段控制是指控制所要顯示的字符是什么,控制電路應將字符的七段碼通過輸出口連接 僅供個人參考到LED的ag弓I腳,是某些段點亮,某些段處于熄滅狀態。字位控制是指控制 在多位顯示器中,哪幾位發光或那幾位不發光,字位控制則需要通過字位碼作用 于LED數碼管的公共引腳,是某一位或某幾位的數碼管可以發

28、光。數碼管顯示電路分為動態顯示和靜態顯示。靜態顯示方式是指每一個數碼管的字段控制是獨立的,每一個數碼管都需 要配置一個8位輸出口來輸出該字位的七段碼。因此需要顯示多位時需要多個輸 出口,通常片內并口不夠用,需要在片外擴展。動態顯示又稱為掃描顯示方式,也就是在某一時刻只能讓一個字位處于選 通狀態,其他字位一律斷開,同時在字段線上發出該位要顯示的字段碼, 這樣在 某一時刻某一位數碼管就會被點亮,并顯示出相應的字符。下一時刻改變所顯示 的字位和字段碼,點亮另一個數碼管,顯示另一個字符。繞后一次掃描輪流點亮 其他數碼管,只要掃描速度快,利用人眼的視覺殘留效應,會使人感覺到幾位數 碼管都在穩定的顯示。本

29、設計采用數碼管動態顯示,電路如下圖所示:PlQ UfnCCFO.TfAtlTO-XTAIZPO 廿大»鼻ping* t百p 口用x的FZIlfAESTp 工 WK?a frewALE 曰H 口噂浜0 F22SA11 PN.gQ PNWM 口 FZJKAH FZ.7W.15股口13z+1.1F12PI* 口1±P1Jp.3.vmP33iwn pj.irra mmP1.7/O1 +-U137RP1R.EBRACKB一 N m * u-i 'jj r- uni+顯小部分電路 圖-6圖中由單片機P1 口用接74HC245驅動兩位共陽極數碼管,上拉電阻排為10K。由P2.0和

30、P2.1通過PNP®三極管Q1,Q2驅動其字位。三極管發射極接高電平,當P2.0或P2.1為低電平時使三極管導通選通數碼管的某一位五、系統軟件設計5.1 、概述整個系統的功能是由硬件電路配合軟件來實現的, 當硬件基本定型后,軟件 的功能也就基本定下來了。從軟件的功能不同可分為兩大類: 一是監控軟件(主 程序),它是整個控制系統的核心,專門用來協調各執行模塊和操作者的關系。 二是執行軟件(子程序),它是用來完成各種實質性的功能如測量、 計算、顯示、 通訊等。每一個執行軟件也就是一個小的功能執行模塊。這里將各執行模塊一一 列出,并為每一個執行模塊進行功能定義和接口定義。 各執行模塊規劃好

31、后,就 可以規劃監控程序了。首先要根據系統的總體功能選擇一種最合適的監控程序結 構,然后根據實時性的要求,合理地安排監控軟件和各執行模塊之間地調度關系。5.2 .總程序流程圖不得用于商業用途僅供個人參考5.3 C 語言程序不得用于商業用途#include<reg52.h> 定義/包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的#include<math.h>#include<INTRINS.H>#define uchar unsigned char#define uint unsigned int;/*/*定義端口*/*/sbit seg1=P2A

32、0;sbit seg2=P2Al;sbit seg3=P2A2;sbit s1=P3A0;sbit DQ=P1A3;/ds18b20 端口sfr dataled=0x80;/ 顯示數據端口/*/*全局變量*/*/ uint temp;uchar flag_get,count,num,minute,second,x;uchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/7 段數碼管段碼表共陽uchar str6;/*/*函數聲明*/*/ void delay1(uchar MS);unsigned int ReadTe

33、mperature(void);void Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char dat);void delay(unsigned int i);/*/*主函數*/*/ main()unsigned char TempH,TempL;TMOD|=0x01;/ 定時器設置TH0=0xef;TL0=0xf0; IE=0x82;TR0=1;P2=0x00; count=0; x=0;while(1) if(!s1) delay(300);if(!s1) x+; if(x=2)

34、 x=0;str5=0x39;/顯示C 符號str1=tabTempH/100; / 百位溫度str2=tab(TempH%100)/10; / 十位溫度str3=tab(TempH%100)%10|0x80; / 個位溫度,帶小數點str4=tabTempL;if(flag_get=1)/定時讀取當前溫度temp=ReadTemperature();if(temp&0x8000)str0=0x40;/ 負號標志temp=temp; / 取反加 1 temp +=1;elsestr0=0;TempH=temp>>4;TempL=temp&0x0F;TempL=Tem

35、pL*6/10;/ 小數近似處理flag_get=0;/*/*定時器中斷*/*/void tim(void) interrupt 1 using 1/ 中斷,用于數碼管掃描和溫度檢測間隔TH0=0xef;/ 定時器重裝值TL0=0xf0;num+;if (num=50)num=0;flag_get=1;/標志位有效second+;if(second>=60)second=0;minute+;if(x=0)count+;if(count=1)P2=0;dataled=str0;/ 數碼管掃描if(count=2)P2=1;dataled=str1;if(count=3) P2=2;data

36、led=str2;if(count=4) P2=3;dataled=str3;if(count=5) P2=4;dataled=str4;if(count=6) P2=5;dataled=str5;count=0;if(x=1)count+;if(count=1)str4=0;if(count=2) P2=4;dataled=str5;if(count=3)P2=0;dataled=str0;if(count=4) P2=1;dataled=str1;if(count=5) P2=2;dataled=str2;if(count=6) P2=3;dataled=str3;count=0;/*/*

37、/*延時函數/*/ void delay(unsigned int i)/ 延時函數僅供個人參考while(i-);/*/*初始化*/不得用于商業用途/*/ void Init_DS18B20(void) unsigned char x=0;DQ = 1;/DQ 復位delay(8); /稍做延時DQ = 0;/單片機將DQ 拉低delay(80); / 精確延時大于 480usDQ = 1; delay(10); x=DQ; delay(5);/拉高總線/稍做延時后如果 x=0 則初始化成功x=1 則初始化失敗/*/*/*/ unsigned char ReadOneChar(void) u

38、nsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0; / 給脈沖信號dat>>=1;DQ = 1; / 給脈沖信號if(DQ)dat|=0x80;delay(5);return(dat);/*/*寫一個字節*/*/ void WriteOneChar(unsigned char dat) DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;delay(5);/*/*讀取溫度*/*/ unsigned int ReadTemperature(void

39、)unsigned char a=0;unsigned int b=0;unsigned int t=0; Init_DS18B20();WriteOneChar(0xCC); / WriteOneChar(0x44); / delay(200);Init_DS18B20();WriteOneChar(0xCC); / WriteOneChar(0xBE); /跳過讀序號列號的操作啟動溫度轉換跳過讀序號列號的操作讀取溫度寄存器等(共可讀9 個寄存器)前兩個就是溫度a=ReadOneChar(); /低位b=ReadOneChar(); /高位 b<<=8;t=a+b;return(t);六、設計體會溫度傳感器DS18B2的卜形像一個

溫馨提示

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

評論

0/150

提交評論