




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要溫度的檢測與控制是工業(yè)生產過程中比較典型的應用。本設計以AT89C52單片機為核心,采用DS18B20溫度傳感器檢測溫度,由溫度采集、溫度顯示,溫度報警等功能模塊組成?;陬}目基本要求,本系統(tǒng)對溫度采集和溫度顯示系統(tǒng)行了重點設計。本系統(tǒng)大部分功能能由軟件實現(xiàn),吸收了硬件軟件化的思想。實際操作時,各功能在開發(fā)板上也能完美實現(xiàn)。本系統(tǒng)實現(xiàn)了要求的基本功能,其余發(fā)揮部分也能實現(xiàn)。關鍵字:AT89C52單片機、DS18B20溫度傳感器、數(shù)碼管顯示、溫度采集 目錄一緒論二設計目的三設計要求四設計思路五系統(tǒng)的硬件構成及功能5.1主控制器5.2顯示電路5.3溫度傳感器六系統(tǒng)整體硬件電路七系統(tǒng)程序設計八測
2、量及其結果分析九設計心得體會十參考文獻附錄1 源程序附錄2 元件清單及PCB圖一緒論隨著時代的發(fā)展,控制智能化,儀器小型化,功耗微量化得到廣泛關注。單片機控制系統(tǒng)無疑在這些忙面起到了舉足輕重的作用。單片機的應用系統(tǒng)設計業(yè)已成為新的技術熱點,其中數(shù)字溫度計就是一個典型的例子。 人民的生活與環(huán)境的溫度息息相關,在工業(yè)生產過程中需要實時測量溫度,在農業(yè)生產中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。測量溫度的關鍵是溫度傳感器,溫度傳感器的發(fā)展經歷了三個發(fā)展階段:傳統(tǒng)的分立式溫度傳感器模擬集成溫度傳感器智能集成溫度傳感器。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在2
3、0世紀90年代中期問世的,它是微電子技術、計算機技術和自動測試技術(ATE)的結晶,特點是能輸出溫度數(shù)據(jù)及相關的溫度控制量,適配各種微控制器(MCU)。社會的發(fā)展使人們對傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機的基礎上從模擬式向數(shù)字式,從集成化向智能化、網絡化的方向飛速發(fā)展,并朝著高精度、多功能、總線標準化、高可靠性及安全性、開發(fā)虛擬傳感器和網絡傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展,與傳統(tǒng)的溫度計相比,其具有讀數(shù)方便,測溫范圍廣,測溫準確,輸出溫度采用數(shù)字顯示,主要用于對測溫要求比較準確的場所,或科研實驗室使用。該設計控制器使用ATMEL公司的AT89C52單片機,測溫
4、傳感器使用DALLAS公司DS18B20,用數(shù)碼管來實現(xiàn)溫度顯示。二設計目的1. 掌握單片機的工作原理;2. 能夠進行單片機簡單系統(tǒng)的設計,包括電源模塊、復位模塊、鍵盤模塊及相應控制模塊的設計;3. 掌握單片機的指令系統(tǒng)及程序的編制結構,能夠對具體的設計要求編寫相應的控制程序;4. 能夠根據(jù)相應的控制要求選擇外圍器件實現(xiàn)控制任務;學習proteus仿真軟件三設計要求利用51單片機設計一數(shù)字溫度計,要求合適的傳感器及相應的AD轉換芯片,通過傳感器來采集室內溫度,并由LED進行顯示。具體要求如下:1. 設計單片機工作電源模塊及其復位電路;2. 設計顯示模塊:兩個LED顯示當前溫度值;3. 設計傳感
5、器模塊,將選擇的傳感器與A/D轉換芯片相連,并通過單片機采集其數(shù)據(jù);4. 繪制控制軟件流程圖;5. 編寫相應的控制程序;利用proteus進行仿真。四設計思路1根據(jù)設計要求,選擇AT89C52單片機為核心器件。2.溫度檢測器件采用DS18B20數(shù)字式溫度傳感器。與單片機的接口為P3.6引腳。3.鍵盤采用獨立式按鍵,由三個按鍵組成,分別是:設置鍵(SET),加一建(+1),確認鍵(RET)。SET鍵(上下限溫度設置鍵):當該鍵按下時,進入上下限溫度設置功能。通過P3.1引腳接入。+1鍵(加一調整鍵):在輸入上下限溫度時,該鍵按下一次,被調整位加一。通過P3.2引腳接入。RET鍵(確認鍵):當該鍵
6、按下時,指向下一個要調整的位。通過P3.3引腳接入。4.聲音報警蜂鳴器通過P1.7引腳接入。 硬件電路設計總體框圖為圖4.1:3位LED顯示器LED顯示器驅動電路單片機按鍵輸入電路時鐘電路復位電路溫度檢測蜂鳴器電路 圖4.1五、系統(tǒng)的硬件構成及功能1.主控制器 單片機AT89S52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。很適合便攜手持式產品的設計使用。 AT89S52在仿真軟件中的圖像為圖5.1 圖5.1 2.
7、顯示電路 顯示電路采用四位共陽LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。 LED數(shù)碼管在仿真軟件中如圖5.2 圖5.2 3.溫度傳感器 DS18B20是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下: 獨特的單線接口僅需一個端口引腳進行通訊 簡單的多點分布應用 無需外部器件 可通過數(shù)據(jù)線供電 零待機功耗 測溫范圍-55+125,以0.5遞增。華氏器件-67+2570F,以0.90F 遞增 溫度以9 位數(shù)字量讀出 溫度數(shù)字量轉換時間20
8、0ms(典型值) 用戶可定義的非易失性溫度報警設置 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件。DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖 所示,DQ 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源;GND為地信號;VDD為可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。其電路圖如圖所示.。 圖5.3.1 外部封裝形式 在仿真軟件中如圖所示 圖DS18B20的測溫原理如圖所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響
9、很小用于產生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產生的時鐘脈沖后進行計數(shù),進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預置在-55 所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時溫度寄存器的值將加1,減法計數(shù)器 1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振
10、產生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。另外,由于DS18B20單線通信功能是分時完成的,有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。圖 在正常測溫情況下,DS1820的測溫分辨力為0.5,可采用下述方法獲得高分辨
11、率的溫度測量結果:首先用DS1820提供的讀暫存器指令(BEH)讀出以0.5為分辨率的溫度測量結果,然后切去測量結果中的最低有效位(LSB),得到所測實際溫度的整數(shù)部分Tz,然后再用BEH指令取計數(shù)器1的計數(shù)剩余值Cs和每度計數(shù)值CD??紤]到DS1820測量溫度的整數(shù)部分以0.25、0.75為進位界限的關系,實際溫度Ts可用下式計算: 表1.部分溫度值對應的二進制溫度數(shù)據(jù)。溫度/二進制表示十六進制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000
12、 0000 1010 000100A2H+0.50000 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ù)設計要求與設計思路,硬件電路設計框圖如圖6.1所示,在仿真軟件Proteus上完成。其中LED數(shù)碼管以動態(tài)掃描法實現(xiàn)溫度顯示,由四個PNP型晶體管Q2,Q3,Q4,Q5和八個電阻組成,基極與單片
13、機的P1.0,P1.1,P1.2連接。DS18B20的數(shù)據(jù)I/O端與單片機P3.6引腳連接。外部晶振為12MHz。蜂鳴器通過Q1放大后與引腳P1.7相連。圖中有三個獨立式按鍵可以分別調整溫度計的上下限報警設置,圖中蜂鳴器可以在被測溫度不在上下限范圍內時,發(fā)出報警鳴叫聲音,同時LED數(shù)碼管將沒有被測溫度值顯示,這時可以調整報警上下限,從而測出被測的溫度值。圖中的按健復位電路是上電復位加手動復位,使用比較方便,在程序跑飛時,可以手動復位,這樣就不用在重起單片機電源,就可以實現(xiàn)復位。 圖6.1系統(tǒng)總體硬件電路七系統(tǒng)程序設計數(shù)字式溫度計的應用程序主要包括主程序,溫度檢測程序,溫度轉換程序, LED顯示
14、程序等。系統(tǒng)的主程序主要用來初始化一些系統(tǒng)參數(shù),對DS18B20的配置數(shù)據(jù)進行一系列的設定。溫度檢測程序是對DS18B20的狀態(tài)不斷地查詢,讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫,讀取當前的溫度值后,進行溫度轉化程序,對溫度符號處理和溫度值的BCD碼處理,進行溫度值正負的判定,將其段碼送至顯示緩沖區(qū),以備定時掃描服務程序處理。LED顯示程序主要對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為0時,將符號顯示位移入下一位。總程序程序代碼見附錄一開始 顯示緩沖區(qū)初始化 復位DS18B20 發(fā)跳過ROM命令發(fā)溫度轉換命令延時復位DS18B20發(fā)跳過ROM命
15、令發(fā)讀存儲器命令讀溫度數(shù)據(jù)溫度符號判定將溫度轉換為BCD碼更新顯示緩沖區(qū)八測量及其結果分析 1.Proteus仿真結果軟件方面,在Proteus編譯下進行,源程序編譯及仿真調試。在軟件中選定傳感器后可對其進行環(huán)境溫度設置,如圖,將環(huán)境溫度設為34.9。 圖然后點擊軟件執(zhí)行鍵,按操作步驟實施后,觀察LED數(shù)碼管示數(shù),此時示數(shù)如圖。圖可見本次軟件測試結果良好。2硬件測試結果在硬件測試方面,檢查電路板及焊接的質量情況,在檢查無誤后通電檢查LED顯示器。其中 DS18B20實物圖為 在室溫下,LED顯示器示數(shù)如圖,為26.4攝氏度 圖用手蓋住溫度傳感器后,LED顯示器示數(shù)如圖,為29.7攝氏度。比較可
16、知,硬件調試結果也達到了要求。九設計心得體會本次課設對我來說是一次難得的經歷,首先是第一次接觸了仿真軟件Proteus,在使用時經歷了很多次失敗,因為這款軟件與以前使用的各種軟件有很多不同,使用時不停出錯,接線時由于元件放置不合理而接的雜亂無章;輸入源程序時還較為順利,顯示結果比較滿意。其次是程序設計,我們在參考別人成功先例的基礎上根據(jù)自己設計的需要編制程序,其中歷經不少曲折,最后我的收獲是,編程一定要細心,針對每一個細節(jié),稍有疏忽,程序就不能正常工作。最后是單片機實踐操作,由于我自己已買了一塊開發(fā)板,所以硬件調試比較順利,效果也不錯,就是DS18B20溫度傳感器靈敏度不太高,示數(shù)變化不大。另
17、外,我前期花了一些時間專門學習這塊芯片,了解了DS18B20的工作原理的時序圖。在這次的實踐與學習中,盡管期間困難重重,但我還是從中學習了不少新的知識與技能和解決困難的方法,也終于體驗到了經歷困難到最終獲得成功的那種無以言表的喜悅之情,總之,本次課設是我收獲最多的一次,也希望自己在以后的各項研究活動中能堅持這種精神。十參考文獻【1】 李朝青 單片機原理及接口技術。北京航空航天大學出版社,2005年【2】 李群芳 肖看 單片機原理、接口及應用。清華大學出版社,2005年【3】 陳汝全 電子技術常用器件應用手冊。機械工業(yè)出版社,2004年【4】 將輝平,基于proteus的單片機系統(tǒng)設計與仿真實例
18、,2007年張俊謨 單片機中級教程原理與應用。北京航空航天大學出版社,2000年附錄一 源程序#include <AT89X52.h>#include "DS18B20.h" #define uint unsigned int#define uchar unsigned char /宏定義#define SET P3_1 /定義調整鍵#define DEC P3_2 /定義減少鍵#define ADD P3_3 /定義增加鍵#define BEEP P3_7 /定義蜂鳴器bit shanshuo_st; /閃爍間隔標志bit beep_st; /蜂鳴器間隔標志s
19、bit DIAN = P27; /小數(shù)點uchar x=0; /計數(shù)器signed char m; /溫度值全局變量uchar n; /溫度值全局變量uchar set_st=0; /狀態(tài)標志signed char shangxian=38; /上限報警溫度,默認值為38signed char xiaxian=15; /下限報警溫度,默認值為5uchar code LEDData=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*延時子程序*/void Delay(uint num) while( -num );/*初始化定時器0*/voi
20、d InitTimer(void) TMOD=0x1; TH0=0x4c; TL0=0x00; /50ms(晶振12M)/*定時器0中斷服務程序*/void timer0(void) interrupt 1 TH0=0x4c; TL0=0x00; x+;/*外部中斷0服務程序*/void int0(void) interrupt 0 EX0=0; /關外部中斷0 if(DEC=0&&set_st=1) shangxian-; if(shangxian<xiaxian)shangxian=xiaxian; else if(DEC=0&&set_st=2) x
21、iaxian-; if(xiaxian<0)xiaxian=0; /*外部中斷1服務程序*/void int1(void) interrupt 2 EX1=0; /關外部中斷1 if(ADD=0&&set_st=1) shangxian+; if(shangxian>99)shangxian=99; else if(ADD=0&&set_st=2) xiaxian+; if(xiaxian>shangxian)xiaxian=shangxian; /*讀取溫度*/void check_wendu(void) uint a,b,c; c=Read
22、Temperature()-5; /獲取溫度值并減去DS18B20的溫漂誤差 a=c/100; /計算得到十位數(shù)字 b=c/10-a*10; /計算得到個位數(shù)字 m=c/10; /計算得到整數(shù)位 n=c-a*100-b*10; /計算得到小數(shù)位 if(m<0)m=0;n=0; /設置溫度顯示上限 if(m>99)m=99;n=9; /設置溫度顯示上限 /*顯示開機初始化等待畫面*/Disp_init() P2=0xbf; P1=0xfe; Delay(200); P2=0xbf; P1=0xfd; Delay(200); P2=0xbf; P1=0xfb; Delay(200);
23、P2=0xbf; P1=0xf7; /第四 Delay(200); P1=0xff; /關閉顯示/*顯示溫度子程序*/Disp_Temperature() /顯示溫度 P2=0xc6; /顯示C P1=0xf7; / Delay(300); P2=LEDDatan; /顯示個位 P1=0xfb; / Delay(300); P2=LEDDatam%10; /顯示小數(shù)點 DIAN=0; P1=0xfd; Delay(300); P2=LEDDatam/10; /顯示百位 P1=0xfe; Delay(300); P1=0xff; /關閉顯示/*顯示報警溫度子程序*/Disp_alarm(ucha
24、r baojing) P2=0xc6; /顯示C P1=0xf7; Delay(200); P2=LEDDatabaojing%10; /顯示十位 P1=0xfb; Delay(200); P2=LEDDatabaojing/10; /顯示百位 P1=0xfd; Delay(200); if(set_st=1)P2=0x89; else if(set_st=2)P2=0xc7; /上限H、下限L標示 P1=0xfe; Delay(200); P1=0xff;/*報警子程序*/void Alarm() if(x>=10)beep_st=beep_st;x=0; if(m>=shang
25、xian&&beep_st=1)|(m<xiaxian&&beep_st=1)BEEP=0; else BEEP=1;/*主函數(shù)*/void main(void) uint z; InitTimer(); /初始化定時器 EA=1; /全局中斷開關 TR0=1; ET0=1; /開啟定時器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z<300;z+) Disp_init(); while(1) if(SET=0) Delay(2000); dowhile(SET=0); set_st+;
26、x=0;shanshuo_st=1; if(set_st>2)set_st=0; if(set_st=0) EX0=0; /關閉外部中斷0 EX1=0; /關閉外部中斷1 check_wendu(); Disp_Temperature(); Alarm(); /報警檢測 else if(set_st=1) BEEP=1; /關閉蜂鳴器 EX0=1; /開啟外部中斷0 EX1=1; /開啟外部中斷1 if(x>=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(shangxian); else if(set_st=2
27、) BEEP=1; /關閉蜂鳴器 EX0=1; /開啟外部中斷0 EX1=1; /開啟外部中斷1 if(x>=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(xiaxian); /*END*/DS18B20.h:#include <AT89X52.h>#define DQ P3_6 /定義DS18B20總線I/O/*延時子程序*/void Delay_DS18B20(int num) while(num-) ;/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復位 Delay_DS18B20(8); /稍做延時 DQ = 0; /單片機將DQ拉低 Delay_DS18B20(80); /精確延時,大于480us DQ = 1; /拉高總線 Delay_DS18B20(14); x = DQ; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗 Delay_DS18B20(20)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園消防逃生安全教育指南
- DB43-T 2856.3-2023 社會保障卡一卡通應用技術規(guī)范 第3部分:應用系統(tǒng)接入規(guī)范
- 子宮肌瘤中醫(yī)培訓
- 幼兒園小班社會教案《一起玩》
- 力學持久測試題及答案
- 育嬰員考試題型及答案
- 監(jiān)測監(jiān)控面試題及答案
- java面試題及答案單例模式
- transientjava面試題及答案
- 分析基礎考試題及答案
- 物業(yè)小飯桌管理制度
- 2025年湖南省普通高中學業(yè)水平考試合格性考試模擬試題(長郡版高一生物)(原卷版)
- 2025春國家開放大學《思想道德與法治》終考大作業(yè)答案
- 2025年廣東省廣州市白云區(qū)中考語文二模試卷
- 【英語(新高考Ⅰ卷)】2025年普通高等學校招生全國統(tǒng)一考試
- 2025年天津市河西區(qū)中考二模數(shù)學試題(含部分答案)
- 醫(yī)院培訓課件:《藥品不良反應報告和監(jiān)測工作簡介》
- 廣東省東莞市2025屆九年級下學期中考三模語文試卷(含答案)
- 2025 屆九年級初三畢業(yè)典禮校長講話:星河長明共赴新程
- 2025年生態(tài)文明建設的考核試卷及答案
- GM/T 0009-2023SM2密碼算法使用規(guī)范
評論
0/150
提交評論