




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機原理及應用 課程設計報告書題 目: DS18B20數字溫度計姓 名: 吳遠超學 號: 指導老師: 李東京老師設計時間: 2012年4月9日4月22日電子與信息工程學院目 錄1.引 言11.1.設計意義11.2.系統功能要求12.方案設計13.硬件設計24.軟件設計55.系統調試76.設計總結87.附 錄98.作品展示159.參考文獻17DS18B20數字溫度計設計1. 引 言1.1. 設計意義在日常生活及工農業生產中,經常要用到溫度的檢測及控制,傳統的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,需要比較多的外部硬件支持。其缺點如下: 硬件電路復雜;
2、軟件調試復雜; 制作成本高。本數字溫度計設計采用美國DALLAS半導體公司繼DS1820之后推出的一種改進型智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55125,最高分辨率可達0.0625。DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的熱點。1.2. 系統功能要求設計出的DS18B20數字溫度計測溫范圍在-55125,誤差在0.5以內,采用LED數碼管直接讀顯示。2. 方案設計按照系統設計功能的要求,確定系統由3個模塊組成:主控制器、測溫電路和顯示電路。數字溫度計總體電路結構框圖如4.1圖所示:AT89C2051主控制器
3、DS18B20顯示電路掃描驅動 圖4.13. 硬件設計溫度計電路設計原理圖如下圖所示,控制器使用單片機AT89C2051,溫度傳感器使用DS18B20,使用四位共陽LED數碼管以動態掃描法實現溫度顯示。主控制器 單片機AT89C2051具有低電壓供電和小體積等特點,兩個端口剛好滿足電路系統的設計需要,很適合便攜手持式產品的設計使用。系統可用兩節電池供電。AT89C2051的引腳圖如右圖所示: 1、VCC:電源電壓。2、GND:地。 3、P1口:P1口是一個8位雙向I/O口。口引腳P1.2P1.7提供內部上拉電阻,P1.0和P1.1要求外部上拉電阻。P1.0和P1.1還分別作為片內精密模擬比較器
4、的同相輸入(ANI0)和反相輸入(AIN1)。P1口輸出緩沖器可吸收 20mA電流并能直接驅動LED顯示。當P1口引腳寫入“1”時,其可用作輸入端,當引腳P1.2P1.7用作輸入并被外部拉低時,它們將因內部的寫入“1”時,其可用作輸入端。當引腳P1.2P1.7用作輸入并被外部拉低時,它們將因內部的上拉電阻而流出電流。 4、P3口:P3口的P3.0P3.5、P3.7是帶有內部上拉電阻 的七個雙向I/O口引腳。P3.6用于固定輸入片內比較器的輸出信號并且它作為一通用I/O引腳而不可訪問。P3口緩沖器可吸收20mA電流。當P3口寫入“1”時,它們被內部上拉電阻拉高并可用作輸入端。用作輸入時,被外部拉
5、低的P3口腳將用上拉電阻而流出電流。 5、RST:復位輸入。RST一旦變成高電平所有的I/O引腳就復位到“1”。當振蕩器正在運行時,持續給出RST引腳兩個機器周期的高電平便可完成復位。每一個機器周期需12個振蕩器或時鐘周期。 6、XTAL1:作為振蕩器反相器的輸入和內部時鐘發生器的輸入。 7、XTAL2:作為振蕩器反相放大器的輸出。 總線驅動器 74LS24474LS244為3態8位緩沖器,一般用作總線驅動器。引腳圖見上圖。顯示電路 顯示電路采用4位共陽極LED數碼管,從P1口輸出段碼,列掃描用P3.0P3.3口來實現,列驅動用8055三極管。溫度傳感器 DS18B20DS18B20的性能特點
6、:1、適應電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數據線供電。 2、獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊。 3、 DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫。 4、DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉換電路集成在形如一只三極管的集成電路內。 5、溫范圍55+125,在-10+85時精度為0.5。 6、可編程 的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現高精度測溫。 7、在9位分辨率時最
7、多在 93.75ms內把溫度轉換為數字,12位分辨率時最多在750ms內把溫度值轉換為數字,速度更快。8、測量結果直接輸出數字溫度信號,以一線總線串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。9、負壓特性:電源極性接反時,芯片不會因發熱而燒毀, 但不能正常工作。DS18B20與單片機的接口電路(引腳圖見右圖)DS18B20可以采用電源供電方式,此時DS18B20的第1 腳接地,第2腳作為信號線,第3腳接電源。 4. 軟件設計系統程序主要包括主程序、讀出溫度子程序、溫度轉換命令子程序、計算溫度子程序和顯示數據刷新子程序等。 4.1 主程序主程序的主要功能是負責溫度的實時顯示
8、、讀出并處理DS18B20的測量溫度值。溫度測量每1s進行一次。主程序流程圖如圖4.1所示。 4.2 讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節。在讀出時必須進行CRC校驗,校驗有錯時不能進行溫度數據的改寫。讀出溫度子程序流程圖如下圖所示: 初始化 調用顯示子程序 1s到?初次上電 讀出溫度值 溫度計酸處理 顯示數據刷新 發溫度轉換開始命令 讀出溫度子程序 讀出溫度子程序的主要功能是讀出RAM中的9字節。在讀出時須進行CRC校驗,校驗有錯時不進行溫度數據的改寫。得出溫度子程序流程圖如下圖所示。發DS18B20復位指令CRC校驗正確? 發跳過ROM指令移入溫度暫存器發讀取溫度指
9、令 結束讀取操作,CRC校驗 9字節完? 溫度轉換命令子程序 溫度轉換命令子程序主要是發溫度轉換開始命令。當采用12位分辨率時,轉換時間約為750ms。在本程序設計中,采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如下圖所示。 發DS18B20復位命令 發跳過ROM命令 發溫度轉換開始命令 結束 計算溫度子程序 計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定。計算溫度子程序流程圖如下左圖所示.現實數據刷新子程序 現實數據刷新子程序主要是對顯示緩沖器中的顯示數據進行刷新操作,當最高數據顯示位為0時,將符號顯示位移入下一位。現實數據刷新子程序流程圖如下
10、右圖所示.溫度數據移入顯示寄存器 開始計算小數位溫 度BCD值十位數0?溫度零下?計算整數位溫 度BCD值百位數0?置+標志溫度值取補碼置一標志百位數顯示數據(不顯示符號)十位數顯示符號百位數不顯示結束 結束 5. 系統調試系統的調試以程序調試為主。硬件調試比較簡單,首先檢查電感的焊接是否正確,然后可用萬用表測試或通電檢測。軟件調試可以先編寫顯示程序并進行硬件的正確性檢驗,然后分別進行主程序、讀出溫度子程序、溫度轉換命令子程序、計算溫度子程序和現實數據刷新子程序等的編程及調試由于DS18B20與單片機采用串行數據傳送,因此,對DS18B20進行讀/寫編程時必須嚴格地保證讀/寫時序;否則將無法讀
11、取測量結果。本程序采用單片機匯編或C語言編寫用Wave3.2或Keil C51編譯器編程調試。軟件調試到能顯示溫度值,并且在有溫度變化時顯示溫度能改變,救基本完成。性能測試可用制作的溫度機和已有的成品溫度計同時進行測量比較。由于DS18B20的精度很高,所以誤差指標可以限制在0.5以內。另外,-55+125的測溫范圍使得該溫度計完全適合一般的應用場合,其低電壓供電特性可做成用電池供電的手持溫度計。DS18B20溫度計還可以在高低溫報警、遠距離多點測溫控制等方面進行應用開發,但在實際設計中應注意以下問題;1、DS18B20工作時電流高大1.5mA,總線上掛接點數較多且同時進行轉換時要考慮增加總線
12、驅動,可用單片機端口在溫度轉換時導通一個MOSFET供電。2、連接DS18B20的總線電纜是有長度限制的,因此在用DS18B20進行長距離測溫系統設計時要充分考慮總線分布電容和阻抗匹配等問題。3、在DS18B20測溫程序設計中,向DS18B20發出溫度轉換命令后,程序總要等待DS18B20的返回信號。一旦某個DS18B20接觸不好或斷線,當程序讀DS18B20時,將沒有返回信號,程序進入死循環。這一點在進行DS18B20硬件連接和軟件設計時要給予一定的重視。6. 設計總結歷時2個星期的單片機課程設計已經結束了,在這兩個星期的時間里,我們在老師的指導下完成了基于DS18B20的數字溫度計的設計和
13、制作。在進行實驗的過程中,我們了解并熟悉DS18B20、AT89C2051以及74LS244的工作原理和性能。并且通過溫度計的制作,我們將電子技能實訓課堂上學到的知識進行運用,并在實際操作中發現問題,解決問題,更加增加對知識的認識和理解。在課程設計的過程中,也遇到了一些問題。比如最開始根據課本上的電路圖進行合理的設計布局和布線。有些同學的布局不合理,導致焊接的過程中任務相當繁重,并且不美觀。在之后的燒程序調試的時候,出現問題之后,沒有合理布線的同學在查找問題的過程中相當棘手。在焊接過程中,出現最多的就是虛焊問題。對于這個問題,在焊接的過程中,我盡量依照書中的指導,盡量將焊點焊成水滴狀,最后接電
14、后再根據數碼管的顯示情況進行逐個排查。在將程序燒到單片機之后,接上電源,發現數碼管沒有出現正常的“000.0”,而是出現了“666.6”,在檢查線路無誤之后,和其他的同學討論之后得出結論:書中程序是對于單片機、電阻及數碼管是直接連接而設計的,而在加入了74LS244之后,要將8個輸入輸出端口進行掉序。于是,我便將8個端口進行調換,之后再次接通電源,數碼管顯示“000.0”,調試成功。在自己的溫度計制作完成之后,我還幫助其他沒有完成的同學進行檢修,并且成功幫助2位同學找到問題進行解決,最后都調試成功。總之,在這2個星期中,通過自己在實驗室動手制作數字溫度計,不僅將課本的知識與實踐相結合,而且在實
15、踐中更加深入了解書中原本抽象的知識。這也是整個課程設計中最有收獲的地方。7. 附 錄源程序代碼/*/ / DS18B20溫度計C程序/ 2005.2.28通過調試/*/使用AT89C2051單片機,12MHZ晶振,用共陽LED數碼管/P1口輸出段碼,P3口掃描/#pragma src(d:aa.asm)#include reg51.h#include intrins.h /_nop_();延時函數用#define Disdata P1 /段碼輸出口#define discan P3 /掃描口#define uchar unsigned char#define uint unsigned int
16、sbit DQ=P37; /溫度輸入口sbit DIN=P10; /LED小數點控制uint h;/*溫度小數部分用查表法*/Uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09uchar code dis_712=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf;/* 共陽LED段碼表 0 1 2 3 4 5 6 7 8 9 不亮 - */ uchar code scan_con4
17、=0xfe,0xfd,0xfb,0xf7; / 列掃描控制字uchar data temp_data2=0x00,0x00; / 讀出溫度暫放uchar data display5=0x00,0x00,0x00,0x00,0x00;/顯示單元數據,共4個數據,一個運算暫存用/*11微秒延時函數*/void delay(uint t)for(;t0;t-);/*顯示掃描函數*/scan()char k; for(k=0;k0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = va
18、l&0x01; /最低位移出delay(6); /66usval=val/2; /右移一位DQ = 1;delay(1); /*18B20讀1個字節函數*/從總線上讀取一個字節uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66u
19、sDQ=1;return(value);/*讀出溫度函數*/read_temp()ow_reset(); /總線復位write_byte(0xCC); / 發Skip ROM命令write_byte(0xBE); / 發讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發轉換命令/*溫度數據處理函數*/work_temp()uchar n=0; /if(temp_data1127) temp_data1=(256-temp_data1);temp_data0=(256-temp_data0);n=1;/負溫度求補碼display4=temp_data0&0x0f;display0=ditabdisplay4;display4=(temp_data0&0xf0)4)|(temp_data1&0x0f)4);/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第三單元課外古詩詞誦讀《定風波(莫聽穿林打葉聲)》課件-2024-2025學年統編版語文九年級下冊
- Brand KPIs for pet supply online shop ZooRoyal in Germany-外文版培訓課件(2025.2)
- 餐飲業勞動合同范本
- 房屋租賃標準合同模板
- 2025版簡單門面房租賃合同模板
- 人教版小學二年級上冊數學 5.1 觀察物體 課件
- 陽光心理全力中考(主題班會)教學設計
- FOB貿易合同示例
- 2025寫字樓租賃合同范本 商業地產合同范本
- 《小貓找主人微》課件
- 撤資退股合同協議
- 上海市嘉定區聯考2023-2024學年五年級下學期期中數學試題(含答案)
- 賓館住房協議書范本
- 統編版(2024)一年級語文下冊12荷葉圓圓 課件
- 免除責任協議書范文
- 人教版(2024)七年級下冊英語期中質量檢測試卷(含答案)
- 熱泵基礎知識培訓課件
- 防中暑課件部隊
- 2023-2029年中國熱浸鍍鋅行業市場發展監測及投資潛力預測報告
- 復習資料準備2024年記者證考試試題及答案
- 2025年03月河北邯鄲叢臺區春季博碩人才引進50人筆試歷年參考題庫考點剖析附解題思路及答案詳解
評論
0/150
提交評論