數字溫度計實習報告_第1頁
數字溫度計實習報告_第2頁
數字溫度計實習報告_第3頁
數字溫度計實習報告_第4頁
數字溫度計實習報告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數字式溫度表摘要:溫度的檢測與控制是工業(yè)生產過程中比擬典型的應用之一,隨著傳感器在生產和生活中的更加廣泛的應用,利用數字溫度傳感器實現對溫度的測試與控制得到更快的開發(fā),隨著時代的進步和開展,數字式溫度表已經普及到我們生活、工作、科研各個領域。數顯溫度表可以準確的判斷和測量溫度以數字顯示,而非指針或水銀顯示。故稱數字溫度計或數字溫度表。此電路是用數字溫度傳感器DS18B20作感溫元件,并利用溫度傳感器和4位共陽極LED數碼管動態(tài)掃描來完成溫度顯示。關鍵詞數字測溫溫度傳感器 數字控制 溫度計一 實驗目的:1、掌握電子產品的設計思想及數顯溫度表的原理和設計方法;2、掌握電子產品安裝的一般工藝流程;3

2、、掌握本電路所用元器件的原理、檢測、安裝、調試方法及工藝;4、掌握各種常用電子安裝工具及電子測量儀表、儀器的正確使用;二 系統(tǒng)各模塊簡介1.主控制器。主控制器使用STC89C52RC。 2. 顯示電路本設計的顯示局部由四位數碼管構成,采用的是動態(tài)掃描方式。在多個LED數碼管顯示時,為了簡化電路,通常將所有位的段選線相應地并聯(lián)在一起,由一個8位的I/O口控制,形成段選線的多路復用。而各位的共陽極或共陰極分別由相應的I/O口線控制,實現各位的分時選通。3.測溫電路溫度傳感器溫度傳感器使用DS18B20。DS18b20溫度傳感器能直接讀出被測溫度 ,并根據實際要求通過簡單的編程實現912位的數字直讀

3、方式。DS18B20的性能特點如下:獨特的單線接口僅需要一個端口引腳進行通信多個DS18B20可以并聯(lián)在唯一的三線上,實現多點組網功能不需要外部器件可通過數據線供電,電壓范圍溫度以912位數字量讀出用戶可定義的非易失性溫度報警裝置報警搜索命令識別并標志超過程序限定溫度溫度報警條件的器件負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,只是不能正常工作。三 系統(tǒng)原理與設計1.硬件設計按照系統(tǒng)設計功能的要求,確定系統(tǒng)由3個模塊組成:主控制器、測溫電路及顯示電路。數字溫度計電路設計控制器為STC89C52RC,溫度傳感器為DS18B20,用四位共陽LED數碼管以動態(tài)掃描法實現溫度顯示。STC89C

4、DS18B20的DQ端實現與DS18B20通信。2. 軟件設計軟件采用模塊化的設計思想來實現。系統(tǒng)程序主要包括:主程序,讀溫度子程序,溫度轉換命令子程序,計算溫度子程序和顯示數據刷新子程序。1主程序主程序的主要功能是負責溫度的實時顯示,讀出并處理DS18B20的測量溫度值。溫度測量每1s進行一次。2讀溫度子程序讀溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時必須進行CRC校驗,校驗有錯是不能進行溫度數據的改寫。3溫度轉換子程序溫度轉換子程序主要是發(fā)溫度轉換開始命令。當采用12位分辨率時,轉換時間約為750ms。在本程序設計中,采用1s顯示程序延時法等待轉換的完成。4計算溫度子程序計算溫度

5、子程序將RAM中讀取的BCD碼轉換運算,并進行溫度正負值的判定。5顯示數據刷新子程序顯示數據刷新子程序主要是對顯示緩沖器中的顯示數據進行刷新操作,當最高數據顯示位為0時,將符號顯示位移入下一位。系統(tǒng)調試以程序調試為主。硬件調試比擬簡單,首先檢查短路的焊接是否正確,然后可用萬用表測試或通電檢測。軟件調試可以先編寫程序并進行硬件的正確性檢查,然后分別進行主程序,讀溫度子程序,溫度轉換命令子程序,計算溫度子程序和顯示刷新子程序等的編程和測試。由于DS18B20與STC89C52RC采用串行數據傳送,因此對DS18B20進行讀或寫程序必須嚴格保證讀/寫時序;否那么將無法讀取測量結果。本程序采用C語言編

6、寫,用TKS或Keil C51 編譯器編程調試。軟件調試到能顯示溫度值,而且在有溫度變化時例如用手接觸顯示溫度改變,就根本完成。本設計重點研究了溫度傳感器的工作原理和應用。主要根據數字溫度傳感器DS18B20的結構特點、工作原理和通信協(xié)議設計DS18B20數字溫度計,同時結合軟件編程實現采集并顯示溫度的功能。硬件設計根據STC89C52RC引腳的功能和結構同時結合數字溫度傳感器DS18B20的引腳結構功能,原理圖使用protel99se來繪制。程序根據數字溫度傳感器DS18B20的通信協(xié)議和時序使用C語言編寫。軟件編譯用TKS和Keil C51生成程序二進制代碼。電路整體仿真使用proteus

7、軟件加載編譯生成的二進制代碼。本設計要求測溫范圍-55+125,測量誤差,直讀顯示。所以顯示電路采用4位共陽LED數碼管以動態(tài)掃描法實現溫度顯示,從P1口輸出段碼,需要上拉,選用8個510電阻。列掃描用P3.0P3.3來實現,列驅動用9012三極管。DS18B20數字溫度計的顯示電路4. 時鐘電路局部主控制器STC89C52RC工作時需要時鐘控制信號。STC89C52RC內部電路在時鐘信號控制下,嚴格按照時序執(zhí)行指令工作。因此,時鐘頻率直接影響STC89C52RC的速度,時鐘電路的質量也直接影響單片機的穩(wěn)定性。常用時鐘電路有兩種方式,一種是內部時鐘方式,另一種時外部時鐘方式。本設計采用內部時鐘

8、方式。STC89C52RC內部有一個用于構成振蕩器的高增益放大器,該高增益反相放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體和電容,構成自激振蕩器。晶振的頻率選擇12MHz,因為晶振的頻率越高那么系統(tǒng)的時鐘頻率也就越高,STC89C52RC的運行速度就越快。電容選擇30pF左右。外接內容們有嚴格的要求,但電容的大小會影響振蕩器的頻率、穩(wěn)定性和起振的快慢。復位引腳RST通過一個施密特觸發(fā)器與復位電路相連,施密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,施密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。DS18B20數字溫度計的

9、時鐘電路5 復位電路STC8952RC的9引腳是RST復位信號輸入端,高電平有效。當STC8952RC運行時,在此引腳上加持續(xù)時間大于2個機器周期(24個時鐘振蕩周期)的高電平,就可以完成復位操作。在STC8952RC正常工作時,此引腳應為0.5V低電平。復位電路施密特觸發(fā)器RST片內復位電阻STC8952RC內復位結構如圖復位引腳RST通過一個施密特觸發(fā)器與復位電路相連,施密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,施密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。復位電路通常采用上電自動復位和按鈕復位兩種方式。本設計采用按鈕手動復位方式,電路結構簡單,操

10、作方便。通過RST端經電阻與電源Vcc接通而實現的。STC89C52RCD的復位電路主程序的主要功能是負責溫度的實時顯示,讀出并處理DS18B20的測量溫度值,其流程圖如下:開始啟動溫度轉換讀取溫度LED顯示主程序如下:# include reg51.h# include intrins.h# define disdata P0# define discan P2# define uchar unsigned char# define uint unsigned intsbit BEEP = P36;sbit DQ = P37; /溫度輸入口sbit DIN = P07;/led小數點控制ui

11、nt h;uint tt;uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09;ucharcodedis_712=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff,0 xbf; /duanmauchar code scan_con4=0 xf7,0 xfB,0 xFD,0 xFE;/列掃描控制字uchar data temp_data2=0

12、 x00, 0 x00,; /讀出溫度暫存uchar data display5=0 x00,0 x00,0 x00,0 x00,0 x00; /顯示單元數據,共4個數據,1個運算暫存用/*延時*/ void delay(uint t)for(;t0;t-);/*DS復位函數*/ow_reset(void) char presence=1; while(presence) while(presence) DQ=1;_nop_();_nop_(); DQ=0; delay(50); /延時550毫秒 DQ=1; delay(6); presence=DQ; delay(45); presence

13、=DQ; DQ=1; /*DS寫命令函數*/ void write_byte(uchar val) /向1-WIRE總線上寫一字節(jié) uchar i; for(i=8;i0;i-) DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_(); DQ=val&0 x01; /最低位移出 delay(6); val=val/2; /右移1位 DQ=1; delay(1); /*DS讀一字節(jié)函數*/ uchar read_byte(void) uchar i; uchar value=0; for(i=8;i0;i-) DQ=1

14、;_nop_();_nop_(); value=1; DQ=0; _nop_();_nop_();_nop_();_nop_(); DQ=1;_nop_();_nop_();_nop_();_nop_(); if(DQ) value|=0 x80; delay(6); DQ=1; return(value); /*顯示掃描函數*/scan() char k; for(k=0;k4;k+) /4位LED掃描控制 disdata=dis_7displayk; if(k=1)DIN=0; /當K=1時,P07為低電平顯示小數點 discan=scan_conk; /列掃描 delay(30); di

15、scan=0 xFF; /*讀出溫度函數*/ read_temp() uint temp; ow_reset(); write_byte(0 xcc); write_byte(0 xbe); temp_data0=read_byte(); temp_data1=read_byte(); temp=temp_data1; temp127) temp_data1=(255-temp_data1); temp_data0=(255-temp_data0);n=1; /負溫度求補碼 display4=temp_data0&0 x0f;display0=ditabdisplay4; display4=(

16、temp_data0&0 xf0)4)|(temp_data1&0 x0f)0;i-) BEEP=BEEP; delay(100); /*溫度報警子函數*/void Alarm() BEEP=0;if(tt=75|tt15) Bee_con();else BEEP=1; /*主函數*/ main () disdata=0 xff;/ 初始化端口 discan=0 xff; for(h=0;h4;h+) /開機顯示“8888”scan(); displayh=8; ow_reset(); /開機先轉換一次 write_byte(0 xcc);/skip ROM write_byte(0 x44)

17、;/發(fā)轉換命令 for(h=0;h500;h+)/開機顯示“8888”兩秒 scan(); while(1) read_temp(); /讀出溫度數據 work_temp(); /處理溫度數據 Alarm(); /報警檢測 for(h=0;h500;h+) /顯示溫度兩秒scan(); 系統(tǒng)調試的目的:檢驗設計成果是否成功,是否穩(wěn)定,是否可靠,能不能到達設計要求。有關單片機技術的設計不僅要檢查硬件電路,而且要實現軟件系統(tǒng)仿真,最重要的是軟件硬件相結合實現設計功能并穩(wěn)定可靠。6硬件調試首先檢查電路的焊接是否正確。檢查單片機各個引腳與顯示電路、測溫電路、時鐘電路和復位電路之間的連接是否正確,連接正

18、確用萬用表檢測連線是否通路,有沒有兩條裸線交叉的,檢查是否有虛焊的地方。其次檢查各部件是否能正常工作。1判斷芯片的好壞:STC89C52RCD通電后用示波器查看ALE端是否有正脈沖信出。如果有脈沖信號輸出,那么STC89C52RCD是好的。2判斷數碼管是否能正常顯示:用萬用表接在數碼管的位選端和段碼端,一次檢查段碼a、b、c、d、e、f、g、dp,位選1、2、3、4。軟件調試由于DS18B20采用串行數據傳送,因此對DS18B20進行讀或寫程序必須嚴格保證讀/寫時序;否那么將無法讀取測量結果。1使用Keil C51建立一個工程文件 2為工程選擇一個目標芯片由于Keil C51不包含STC89C52RC而AT89C52和STC89C52RC的指令、管腳及功能通用,所以選擇AT89C52,這樣并不影響軟件仿真。3將軟件編輯程序參加目標5編譯程序生成二進制代碼文件DS18B20.HEX仿真1根據硬件設計電路,在Proteus元件庫中將所需要的元器件找出。2根據硬件設計電路中各個元件之間的關系,將各個元件連接起來。3檢查各個元件的排列、連接和元件的型號、大小4參加“

溫馨提示

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

評論

0/150

提交評論