基于單片機的數(shù)字溫度計設(shè)計課程設(shè)計報告_第1頁
基于單片機的數(shù)字溫度計設(shè)計課程設(shè)計報告_第2頁
基于單片機的數(shù)字溫度計設(shè)計課程設(shè)計報告_第3頁
基于單片機的數(shù)字溫度計設(shè)計課程設(shè)計報告_第4頁
基于單片機的數(shù)字溫度計設(shè)計課程設(shè)計報告_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、-. z.摘要溫度的檢測與控制是工業(yè)生產(chǎn)過程中比擬典型的應(yīng)用。本設(shè)計以AT89C52單片機為核心,采用DS18B20溫度傳感器檢測溫度,由溫度采集、溫度顯示,溫度報警等功能模塊組成。基于題目根本要求,本系統(tǒng)對溫度采集和溫度顯示系統(tǒng)行了重點設(shè)計。本系統(tǒng)大局部功能能由軟件實現(xiàn),吸收了硬件軟件化的思想。實際操作時,各功能在開發(fā)板上也能完美實現(xiàn)。本系統(tǒng)實現(xiàn)了要求的根本功能,其余發(fā)揮局部也能實現(xiàn)。關(guān)鍵字:AT89C52單片機、DS18B20溫度傳感器、數(shù)碼管顯示、溫度采集目錄 TOC o 1-3 h z u HYPERLINK l _Toc295153825一緒論HYPERLINK l _Toc2951

2、53830二設(shè)計目的HYPERLINK l _Toc295153831三設(shè)計要求HYPERLINK l _Toc295153835四設(shè)計思路HYPERLINK l _Toc295153836五系統(tǒng)的硬件構(gòu)成及功能HYPERLINK l _Toc2951538375.1主控制器HYPERLINK l _Toc2951538385.2顯示電路HYPERLINK l _Toc2951538395.3溫度傳感器HYPERLINK l _Toc295153840六系統(tǒng)整體硬件電路HYPERLINK l _Toc295153841七系統(tǒng)程序設(shè)計HYPERLINK l _Toc295153842八測量及其結(jié)

3、果分析HYPERLINK l _Toc295153843九設(shè)計心得體會HYPERLINK l _Toc295153844十參考文獻附錄1 源程序附錄2 元件清單及PCB圖一緒論隨著時代的開展,控制智能化,儀器小型化,功耗微量化得到廣泛關(guān)注。單片機控制系統(tǒng)無疑在這些忙面起到了舉足輕重的作用。單片機的應(yīng)用系統(tǒng)設(shè)計業(yè)已成為新的技術(shù)熱點,其中數(shù)字溫度計就是一個典型的例子。人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的開展經(jīng)歷了三個開展階段:傳統(tǒng)的分立式溫度傳感器模擬集

4、成溫度傳感器智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀90年代中期問世的,它是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)(ATE)的結(jié)晶,特點是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU)。社會的開展使人們對傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機的根底上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速開展,并朝著高精度、多功能、總線標準化、高可靠性及平安性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速開展,與傳統(tǒng)的溫度計相比,其具有讀數(shù)方便,測溫*圍廣,測溫準確,輸出溫度采用數(shù)字顯示,主要用于對測溫要求比擬準確的場

5、所,或科研實驗室使用。該設(shè)計控制器使用ATMEL公司的AT89C52單片機,測溫傳感器使用DALLAS公司DS18B20,用數(shù)碼管來實現(xiàn)溫度顯示。二設(shè)計目的掌握單片機的工作原理;能夠進展單片機簡單系統(tǒng)的設(shè)計,包括電源模塊、復(fù)位模塊、鍵盤模塊及相應(yīng)控制模塊的設(shè)計;掌握單片機的指令系統(tǒng)及程序的編制構(gòu)造,能夠?qū)唧w的設(shè)計要求編寫相應(yīng)的控制程序;能夠根據(jù)相應(yīng)的控制要求選擇外圍器件實現(xiàn)控制任務(wù);學(xué)習(xí)proteus仿真軟件三設(shè)計要求利用51單片機設(shè)計一數(shù)字溫度計,要求適宜的傳感器及相應(yīng)的AD轉(zhuǎn)換芯片,通過傳感器來采集室內(nèi)溫度,并由LED進展顯示。具體要求如下:設(shè)計單片機工作電源模塊及其復(fù)位電路;設(shè)計顯示模

6、塊:兩個LED顯示當前溫度值;設(shè)計傳感器模塊,將選擇的傳感器與A/D轉(zhuǎn)換芯片相連,并通過單片機采集其數(shù)據(jù);繪制控制軟件流程圖;編寫相應(yīng)的控制程序;利用proteus進展仿真。四設(shè)計思路1根據(jù)設(shè)計要求,選擇AT89C52單片機為核心器件。2.溫度檢測器件采用DS18B20數(shù)字式溫度傳感器。與單片機的接口為P3.6引腳。3.鍵盤采用獨立式按鍵,由三個按鍵組成,分別是:設(shè)置鍵SET,加一建+1,確認鍵RET。SET鍵上下限溫度設(shè)置鍵:當該鍵按下時,進入上下限溫度設(shè)置功能。通過P3.1引腳接入。+1鍵加一調(diào)整鍵:在輸入上下限溫度時,該鍵按下一次,被調(diào)整位加一。通過P3.2引腳接入。RET鍵確認鍵:當該

7、鍵按下時,指向下一個要調(diào)整的位。通過P3.3引腳接入。4.聲音報警蜂鳴器通過P1.7引腳接入。硬件電路設(shè)計總體框圖為圖4.1:3位LED顯示器LED顯示器驅(qū)動電路單片機按鍵輸入電路時鐘電路復(fù)位電路溫度檢測蜂鳴器電路圖4.1五、系統(tǒng)的硬件構(gòu)成及功能1.主控制器單片機AT89S52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。很適合便攜手持式產(chǎn)品的設(shè)計使用。 AT89S52在仿真軟件中的圖像為圖5.1圖5.1 2.顯示電

8、路顯示電路采用四位共陽LED數(shù)碼管,從P3口R*D,T*D串口輸出段碼。 LED數(shù)碼管在仿真軟件中如圖5.2圖5.2 3.溫度傳感器 DS18B20是美國DALLAS半導(dǎo)體公司最新推出的一種改良型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:獨特的單線接口僅需一個端口引腳進展通訊簡單的多點分布應(yīng)用無需外部器件可通過數(shù)據(jù)線供電零待機功耗測溫*圍-55+125,以0.5遞增。華氏器件-67+2570F,以0.90F 遞增溫度以9 位數(shù)字量讀出溫度數(shù)字量轉(zhuǎn)換時間200ms典型值用戶可定義的非

9、易失性溫度報警設(shè)置報警搜索命令識別并標志超過程序限定溫度溫度報警條件的器件。DS18B20內(nèi)部構(gòu)造主要由四局部組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置存放器。DS18B20的管腳排列、各種封裝形式如圖所示,DQ 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源;GND為地信號;VDD為可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。其電路圖如圖所示.。圖5.3.1 外部封裝形式在仿真軟件中如圖所示圖DS18B20的測溫原理如圖所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1

10、,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門翻開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進展計數(shù),進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度存放器中,減法計數(shù)器1和溫度存放器被預(yù)置在-55 所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進展減法計數(shù),當減法計數(shù)器1的預(yù)置值減到0時溫度存放器的值將加1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器1重新開場對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進展計數(shù),如此循環(huán)直到減法計數(shù)器

11、2計數(shù)到0時,停頓溫度存放器值的累加,此時溫度存放器中的數(shù)值即為所測溫圖中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度存放器值到達被測溫度值,這就是DS18B20的測溫原理。另外,由于DS18B20單線通信功能是分時完成的,有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進展。操作協(xié)議為:初始化DS18B20發(fā)復(fù)位脈沖發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。圖5.3.3 在正常測溫情況下,DS1820的測溫分辨力為0.5,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用DS1820提供

12、的讀暫存器指令BEH讀出以0.5為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位LSB,得到所測實際溫度的整數(shù)局部Tz,然后再用BEH指令取計數(shù)器1的計數(shù)剩余值Cs和每度計數(shù)值CD??紤]到DS1820測量溫度的整數(shù)局部以0.25、0.75為進位界限的關(guān)系,實際溫度Ts可用下式計算:表1.局部溫度值對應(yīng)的二進制溫度數(shù)據(jù)。溫度/二進制表示十六進制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50

13、000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H六系統(tǒng)整體硬件電路根據(jù)設(shè)計要求與設(shè)計思路,硬件電路設(shè)計框圖如圖6.1所示,在仿真軟件Proteus上完成。其中LED數(shù)碼管以動態(tài)掃描法實現(xiàn)溫度顯示,由四個PNP型晶體管Q2,Q3,Q4,Q5和八個電阻組成,基極與單片機的P1.0,P1.1,P1.2連接。DS18B20

14、的數(shù)據(jù)I/O端與單片機P3.6引腳連接。外部晶振為12MHz。蜂鳴器通過Q1放大后與引腳P1.7相連。圖中有三個獨立式按鍵可以分別調(diào)整溫度計的上下限報警設(shè)置,圖中蜂鳴器可以在被測溫度不在上下限*圍內(nèi)時,發(fā)出報警鳴叫聲音,同時LED數(shù)碼管將沒有被測溫度值顯示,這時可以調(diào)整報警上下限,從而測出被測的溫度值。圖中的按健復(fù)位電路是上電復(fù)位加手動復(fù)位,使用比擬方便,在程序跑飛時,可以手動復(fù)位,這樣就不用在重起單片機電源,就可以實現(xiàn)復(fù)位。圖6.1系統(tǒng)總體硬件電路七系統(tǒng)程序設(shè)計數(shù)字式溫度計的應(yīng)用程序主要包括主程序,溫度檢測程序,溫度轉(zhuǎn)換程序, LED顯示程序等。系統(tǒng)的主程序主要用來初始化一些系統(tǒng)參數(shù),對DS

15、18B20的配置數(shù)據(jù)進展一系列的設(shè)定。溫度檢測程序是對DS18B20的狀態(tài)不斷地查詢,讀出RAM中的9字節(jié),在讀出時需進展CRC校驗,校驗有錯時不進展溫度數(shù)據(jù)的改寫,讀取當前的溫度值后,進展溫度轉(zhuǎn)化程序,對溫度符號處理和溫度值的BCD碼處理,進展溫度值正負的判定,將其段碼送至顯示緩沖區(qū),以備定時掃描效勞程序處理。LED顯示程序主要對顯示緩沖器中的顯示數(shù)據(jù)進展刷新操作,當最高顯示位為0時,將符號顯示位移入下一位。總程序程序代碼見附錄一開場顯示緩沖區(qū)初始化復(fù)位DS18B20發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換命令延時復(fù)位DS18B20發(fā)跳過ROM命令發(fā)讀存儲器命令讀溫度數(shù)據(jù)溫度符號判定將溫度轉(zhuǎn)換為BCD碼更

16、新顯示緩沖區(qū)八測量及其結(jié)果分析1.Proteus仿真結(jié)果軟件方面,在Proteus編譯下進展,源程序編譯及仿真調(diào)試。在軟件中選定傳感器后可對其進展環(huán)境溫度設(shè)置,如圖,將環(huán)境溫度設(shè)為34.9。圖然后點擊軟件執(zhí)行鍵,按操作步驟實施后,觀察LED數(shù)碼管示數(shù),此時示數(shù)如圖。圖可見本次軟件測試結(jié)果良好。2硬件測試結(jié)果在硬件測試方面,檢查電路板及焊接的質(zhì)量情況,在檢查無誤后通電檢查LED顯示器。其中 DS18B20實物圖為在室溫下,LED顯示器示數(shù)如圖,為26.4攝氏度圖用手蓋住溫度傳感器后,LED顯示器示數(shù)如圖,為29.7攝氏度。比擬可知,硬件調(diào)試結(jié)果也到達了要求。九設(shè)計心得體會本次課設(shè)對我來說是一次難

17、得的經(jīng)歷,首先是第一次接觸了仿真軟件Proteus,在使用時經(jīng)歷了很屢次失敗,因為這款軟件與以前使用的各種軟件有很多不同,使用時不停出錯,接線時由于元件放置不合理而接的雜亂無章;輸入源程序時還較為順利,顯示結(jié)果比擬滿意。其次是程序設(shè)計,我們在參考別人成功先例的根底上根據(jù)自己設(shè)計的需要編制程序,其中歷經(jīng)不少曲折,最后我的收獲是,編程一定要細心,針對每一個細節(jié),稍有疏忽,程序就不能正常工作。最后是單片機實踐操作,由于我自己已買了一塊開發(fā)板,所以硬件調(diào)試比擬順利,效果也不錯,就是DS18B20溫度傳感器靈敏度不太高,示數(shù)變化不大。另外,我前期花了一些時間專門學(xué)習(xí)這塊芯片,了解了DS18B20的工作原

18、理的時序圖。在這次的實踐與學(xué)習(xí)中,盡管期間困難重重,但我還是從中學(xué)習(xí)了不少新的知識與技能和解決困難的方法,也終于體驗到了經(jīng)歷困難到最終獲得成功的那種無以言表的喜悅之情,總之,本次課設(shè)是我收獲最多的一次,也希望自己在以后的各項研究活動中能堅持這種精神。十參考文獻李朝青單片機原理及接口技術(shù)。航空航天大學(xué),2005年李群芳肖看單片機原理、接口及應(yīng)用。清華大學(xué),2005年陳汝全電子技術(shù)常用器件應(yīng)用手冊。機械工業(yè),2004年將輝平,基于proteus的單片機系統(tǒng)設(shè)計與仿真實例,2007年*俊謨單片機中級教程原理與應(yīng)用。航空航天大學(xué),2000年附錄一源程序#include #include DS18B20

19、.h #define uint unsigned int#define uchar unsigned char /宏定義#define SET P3_1 /定義調(diào)整鍵#define DEC P3_2 /定義減少鍵#define ADD P3_3 /定義增加鍵#define BEEP P3_7 /定義蜂鳴器bit shanshuo_st; /閃爍間隔標志bit beep_st; /蜂鳴器間隔標志sbit DIAN = P27; /小數(shù)點uchar *=0; /計數(shù)器signed char m; /溫度值全局變量uchar n; /溫度值全局變量uchar set_st=0; /狀態(tài)標志signe

20、d char shang*ian=38; /上限報警溫度,默認值為38signed char *ia*ian=15; /下限報警溫度,默認值為5uchar code LEDData=0*c0,0*f9,0*a4,0*b0,0*99,0*92,0*82,0*f8,0*80,0*90;/*延時子程序*/void Delay(uint num) while( -num );/*初始化定時器0*/void InitTimer(void) TMOD=0*1; TH0=0*4c; TL0=0*00; /50ms晶振12M/*定時器0中斷效勞程序*/void timer0(void) interrupt 1

21、 TH0=0*4c; TL0=0*00; *+;/*外部中斷0效勞程序*/void int0(void) interrupt 0 E*0=0; /關(guān)外部中斷0 if(DEC=0&set_st=1) shang*ian-; if(shang*ian*ia*ian)shang*ian=*ia*ian; else if(DEC=0&set_st=2) *ia*ian-; if(*ia*ian99)shang*ian=99; else if(ADD=0&set_st=2) *ia*ian+; if(*ia*ianshang*ian)*ia*ian=shang*ian; /*讀取溫度*/void che

22、ck_wendu(void) uint a,b,c; c=ReadTemperature()-5; /獲取溫度值并減去DS18B20的溫漂誤差 a=c/100; /計算得到十位數(shù)字 b=c/10-a*10; /計算得到個位數(shù)字 m=c/10; /計算得到整數(shù)位 n=c-a*100-b*10; /計算得到小數(shù)位 if(m99)m=99;n=9; /設(shè)置溫度顯示上限/*顯示開機初始化等待畫面*/Disp_init() P2=0*bf; P1=0*fe; Delay(200); P2=0*bf; P1=0*fd; Delay(200); P2=0*bf; P1=0*fb; Delay(200); P

23、2=0*bf; P1=0*f7; /第四 Delay(200); P1=0*ff; /關(guān)閉顯示/*顯示溫度子程序*/Disp_Temperature() /顯示溫度 P2=0*c6; /顯示C P1=0*f7; / Delay(300); P2=LEDDatan; /顯示個位 P1=0*fb; / Delay(300); P2=LEDDatam%10; /顯示小數(shù)點 DIAN=0; P1=0*fd; Delay(300); P2=LEDDatam/10; /顯示百位 P1=0*fe; Delay(300); P1=0*ff; /關(guān)閉顯示/*顯示報警溫度子程序*/Disp_alarm(uchar

24、 baojing) P2=0*c6; /顯示C P1=0*f7; Delay(200); P2=LEDDatabaojing%10; /顯示十位 P1=0*fb; Delay(200); P2=LEDDatabaojing/10; /顯示百位 P1=0*fd; Delay(200); if(set_st=1)P2=0*89; else if(set_st=2)P2=0*c7; /上限H、下限L標示 P1=0*fe; Delay(200); P1=0*ff;/*報警子程序*/void Alarm() if(*=10)beep_st=beep_st;*=0; if(m=shang*ian&beep

25、_st=1)|(m*ia*ian&beep_st=1)BEEP=0; else BEEP=1;/*主函數(shù)*/void main(void) uint z; InitTimer(); /初始化定時器 EA=1; /全局中斷開關(guān) TR0=1; ET0=1; /開啟定時器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z2)set_st=0; if(set_st=0) E*0=0; /關(guān)閉外部中斷0 E*1=0; /關(guān)閉外部中斷1 check_wendu(); Disp_Temperature(); Alarm(); /報警檢測 else

26、if(set_st=1) BEEP=1; /關(guān)閉蜂鳴器 E*0=1; /開啟外部中斷0 E*1=1; /開啟外部中斷1 if(*=10)shanshuo_st=shanshuo_st;*=0; if(shanshuo_st) Disp_alarm(shang*ian); else if(set_st=2) BEEP=1; /關(guān)閉蜂鳴器 E*0=1; /開啟外部中斷0 E*1=1; /開啟外部中斷1 if(*=10)shanshuo_st=shanshuo_st;*=0; if(shanshuo_st) Disp_alarm(*ia*ian); /*END*/DS18B20.h:#include #define DQ P3_6 /定義DS18B20總線I/O/*延時子程序*/void Delay_DS18B20(int num) while(num-) ;/*初始化DS18B20*/void Init_DS18B20(void) unsigned char *=0; DQ = 1; /DQ復(fù)位 Delay_DS18B20(8); /稍做延時 DQ = 0; /單片機將DQ拉低 Delay_DS18B20(80); /準確延時,大于480us DQ = 1; /拉高總線 Delay_DS18B20(14); * = DQ; /稍做延時后,如果*=0則初始化

溫馨提示

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

最新文檔

評論

0/150

提交評論