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

下載本文檔

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

文檔簡介

1、一數(shù)字溫度計的總體方案設計根據(jù)系統(tǒng)設計的功能,本時鐘溫度系統(tǒng)的設計必須采用單片機軟件系統(tǒng)實現(xiàn),用單片機的自動控制能力來測量、顯示溫度數(shù)值。初步確定設計系統(tǒng)由單片機主控模塊、測溫模塊、顯示模塊共3個模塊組成,電路系統(tǒng)框圖如圖1.1所示。 圖1.1 系統(tǒng)基本方框圖對于單片機的選擇,如果用8051系列,由于它沒有內部RAM,系統(tǒng)又需要一定的內存存儲數(shù)據(jù)。AT89S52是一個低功耗、高性能CMOS 8位的單片機,片內含8k Bytes ISP的可反復擦寫1000次的Flash只讀程序存儲器,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,功能強大的AT89S52可為許多嵌入式控制應用系統(tǒng)提供高性價比

2、的解決方案。而AT89S52與AT89C51相比,外型管腳完全相同,AT89C51的HEX程序無須任何轉換可直接在AT89S52運行,且AT89S52比AT89C51新增了一些功能,相比較后,在本設計中選用AT89S52更能很好的實現(xiàn)溫度計控制功能。 測溫電路可以使用熱敏電阻之類的器件,利用其感溫效應,將被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數(shù)據(jù)處理。但是這種感溫電路比較復雜,且采用熱敏電阻精度低,重復性、可靠性都比較差。如果采用溫度傳感器DS18B20可以減少外部硬件電路,而且可以很容易直接讀取被測溫度值,進而轉換,且成本低、易使用,可以很好的滿足設計要求。所

3、以本文采用傳感器DS18B20代替?zhèn)鹘y(tǒng)的測溫電路。溫度的顯示可以采用LED數(shù)碼管來顯示,LED亮度高、醒目,但是電路復雜,占用資源多且信息量小。而采用液晶顯示器有明顯的優(yōu)點:工作電流比LED小幾個數(shù)量級,功耗低;尺寸小,厚度約為LED的1/3;字跡清晰、美觀、使人舒服;壽命長,使用方便,可得性強。故本設計采用LCD來顯示溫度。二、系統(tǒng)器件的具體選擇 2.1單片機的選擇本次設計采用的是單片機AT89C52。AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的

4、高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應用。 圖2.1 PDIP封裝的AT89C52 引腳圖AT89C52為8 位通用微處理器,采用工業(yè)標準的C51內核,在內部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調整時的功能控制。功能包括對會聚主IC 內部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。R

5、ST/Vpd(9 腳)為復位輸入端口,外接電阻電容組成的復位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設計中,P0 端口(3239 腳)被定義為N1 功能控制端口,分別與N1的相應功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板CPU 的相應功能端,用于當前制式的檢測及會聚調整狀態(tài)進入的控制功能。2.2 溫度傳感器的選擇2.2.1 DS18B2

6、0的簡單介紹DS18B20溫度傳感器是一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下: 獨特的單線接口僅需要一個端口引腳進行通信; 多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能; 無須外部器件; 可通過數(shù)據(jù)線供電,電壓范圍為3.05.5; 零待機功耗; 溫度以或位數(shù)字; 負電壓特性,電極接反時,溫度計不會因發(fā)熱而燒毀,只是不能正常工作。2.2.2 DS18B20的外形和內部結構DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度

7、報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖 2.3 所示,DQ 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源;GND為地信號;VDD為可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。 圖2.2 外部封裝形式 圖2.3 DS18B20的電路DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內部結構框圖如圖2-4所示。I/OC64 位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位CRC發(fā)生器Vdd圖2-4 DS18B20內部結構64位ROM的結構開始8位是產(chǎn)品類型的

8、編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。DS18B20溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為9字節(jié)的存儲器。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內容用于確定溫度值的數(shù)字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數(shù)值。低5位一直為1,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被

9、設置為0,用戶要去改動,R1和R0決定溫度轉換的精度位數(shù),來設置分辨率。2.2.3 DS18B20的測溫原理DS18B20的溫度值的位數(shù)因分辨率不同而不同,溫度轉換時的最大延時為750ms。 DS18B20測溫原理如圖2.5所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在55所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系

10、數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。圖2.5 DS18B20測溫原理2.2.4 DS18B2的外部電路圖根據(jù)設計要求,傳感器的硬件電路圖如圖2.6所示。圖2.6 DS18B20外部電路圖三程序流程圖3.1 DS18B20溫度計主程序流程圖 圖3.2 讀出溫度子程序流程圖 圖3.3計算溫度子程序 圖3.4顯示數(shù)據(jù)刷新子程序流程圖4 Proteus仿真調試結果及分析溫度計電路設計原理圖如圖4.1所示,控制器使用單片機AT89C205

11、2,溫度計傳感器使用DS18B20,用液晶實現(xiàn)溫度顯示。本溫度計大體分三個工作過程。首先,由DS18820溫度傳感器芯片測量當前的溫度,并將結果送入單片機。然后,通過89C2052單片機芯片對送來的測量溫度讀數(shù)進行計算和轉換,井將此結果送入液晶顯示模塊。最后,SMC1602A芯片將送來的值顯示于顯示屏上。由圖4.1可看到,本電路主要由DSl8820溫度傳感器芯片、SMCl602A液晶顯示模塊芯片和89C2052單片機芯片組成。其中,DSI8B20溫度傳感器芯片采用“一線制”與單片機相連,它獨立地完成溫度測量以及將溫度測量結果送到單片機的工作。 圖3.1 溫度計電路設計仿真圖5 硬件調試結果及分

12、析 5.1軟件調試根據(jù)流程圖編寫程序軟件。本次設計系統(tǒng)的調試以程序的調試為主。程序的調試我們采用eil C51Keil C51 軟件是眾多單片機應用開發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM 語言和 C 語言的程序設計,界面友好,易學易用。5.2系統(tǒng)調試軟硬件分別調試完成以后,將程序下載入單片機中,電路板接上電源,按刷新按鈕LCD顯示當前溫度。用手去碰觸溫度傳感器,按刷新按鈕,溫度顯示值出現(xiàn)變化,顯示當前手的溫度值。完成了我們預期的要求。6 設計感受與見解 本次綜合實訓是針對MCS-51系列的單片機芯片STC89C52來設計一個數(shù)字溫度計,該設計充分利用了溫度傳感器DS1

13、8B20功能強大的優(yōu)點,如DS18B20可以直接讀出被測溫度值,進行轉換;而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點,大大簡化了硬件電路,也使得該數(shù)字溫度計不僅具有結構簡單、成本低廉、精確度較高、反應速度較快、數(shù)字化顯示和不易損壞等特點,而且性能穩(wěn)定,適用范圍廣,因此特別適用于對測溫要求比較準確的場所。 在這次設計中,熟悉了制作一個產(chǎn)品的總體流程,能熟練使用一些必要的設計工具和仿真工具等。通過選認元件,連線,調試檢測等過程,鍛煉自己的理論聯(lián)系實際的能力和實際操作能力,從而綜合性地鞏固所學的知識,為將來的工作做一次實戰(zhàn)演習。經(jīng)過將近2周的綜合實訓,終于完成了我的數(shù)

14、字溫度計的設計,雖然沒有完全達到設計要求,但從心底里說,還是高興的,從這次的課程設計中,我真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次實訓中的最大收獲。七附件一:元器件清單STC89C51 1個溫度傳感器DS18B20 1個插針 1排LCD1602 1個40腳插座 1個12MHZ晶振 1個電容 30PF 2個 22UF 1個電阻 10K 2個 4.7K 1個附件二:源程序#include#define uchar unsigned char#define uint unsigne

15、d intsbit DQ=P37;/ds18b20與單片機連接口sbit RS=P30;sbit RW=P31;sbit EN=P32;unsigned char code str1=temperature: ;unsigned char code str2= ;uchar data disdata5;uint tvalue;/溫度值uchar tflag;/溫度正負標志/*lcd1602程序*/void delay1ms(unsigned int ms)/延時1毫秒(不夠精確的)unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0;

16、/給脈沖信號 dat=1; DQ = 1; /給脈沖信號 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*寫數(shù)據(jù)*/unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; read_temp()/*讀取溫度值并轉換*/uchar a,b;ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ds1820wr(0x44);/*啟動溫度轉換*

17、/ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ ds1820wr(0xbe);/*讀取溫度*/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/溫度值擴大10倍,精確到1位小數(shù)return(tvalue);/*/ void ds1820disp()/溫度值顯示 uchar flagdat; disdata0=tvalue/1000+0

18、x30;/百位數(shù) disdata1=tvalue%1000/100+0x30;/十位數(shù) disdata2=tvalue%100/10+0x30;/個位數(shù) disdata3=tvalue%10+0x30;/小數(shù)位 if(tflag=0) flagdat=0x20;/正溫度不顯示符號 else flagdat=0x2d;/負溫度顯示負號:- if(disdata0=0x30) disdata0=0x20;/如果百位為0,不顯示 if(disdata1=0x30) disdata1=0x20;/如果百位為0,十位為0也不顯示 wr_com(0xc0); wr_dat(flagdat);/顯示符號位 wr_c

溫馨提示

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

評論

0/150

提交評論