版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
摘要隨著時代的進步和開展,溫度的測試已經(jīng)影響到我們的生活、工作、科研、各個領域,已經(jīng)成為了一種非常重要的事情,因此設計一個溫度測試的系統(tǒng)勢在必行。本文主要介紹了一個基于AT89C52單片機的數(shù)字溫度報警器系統(tǒng)。詳細描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各局部的電路也一一進行了介紹,該系統(tǒng)可以方便的實現(xiàn)溫度的采集和報警,并可以根據(jù)需要任意上下限報警溫度,它使用起來相當方便,具有量程寬、體積小、功耗低等優(yōu)點,適合于我們日常生活和工、農(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當做溫度處理模塊潛入其他系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20與AT89C52結合實現(xiàn)最簡溫度報警系統(tǒng),該系統(tǒng)結構簡單,有廣泛的應用前景。關鍵詞:單片機;溫度檢測;AT89C52;DS18B20;目錄摘要I1設計要求及方案選擇11.1設計要求11.2方案選擇12理論分析與設計12.1芯片介紹12..1.1DS18B20概述12.1.2STC89C52介紹22.2系統(tǒng)結構框圖32.3程序原理表達33.電路設計33.1硬件設計3報警模塊4單片機最小系統(tǒng)電路4溫度采集模塊53.2軟件設計5流程框圖及仿真電路圖6程序設計64、系統(tǒng)測試215、總結22.參考文獻231.設計要求及方案選擇1.1設計要求根本功能:1、用DS18B20進行溫度采樣2、將采樣的溫度值進行顯示擴展功能:1、可設置一個溫度控制范圍2、當溫度超過設定值時或低于設定值時,進行報警,超過設定值時為其降溫直至到達溫度范圍內。1.2方案選擇采用單總線數(shù)字溫度傳感器DS18B20測量溫度,直接輸出數(shù)字信號。便于單片機處理及控制,節(jié)省硬件電路。且該芯片的物理化學性很穩(wěn)定,此元件線形性能好,在0—100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器STC89C52構成的溫度裝置,它直接輸出溫度的數(shù)字信號到微控制器。每只DS18B20具有一個獨有的不可修改的64位序列號,根據(jù)序列號可訪問不同的器件。并選擇數(shù)碼管作為輸出顯示,蜂鳴器位報警裝置;2理論分析與設計2.1芯片介紹2.1.1DS18B20概述DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉換時的延時時間由2s減為750ms。DS18B20測溫原理。圖中低溫度系數(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重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度存放器值的累加,此時溫度存放器中的數(shù)值即為所測溫度。它的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。圖2-1-1DS18B20封裝形式和引腳功能如圖2-1-1所示,DS18B20的外形如一只三極管,引腳名稱及作用如下:GND:接地端。DQ:數(shù)據(jù)輸入/輸出腳,與TTL電平兼容。VDD:可接電源,也可接地。因為每只DS18B20都可以設置成兩種供電方式,即數(shù)據(jù)總線供電方式和外部供電方式。采用數(shù)據(jù)總線供電方式時VDD接地,可以節(jié)省一根傳輸線,但完成數(shù)據(jù)測量的時間較長;采用外部供電方式那么VDD接+5V,多用一根導線,但測量速度較快2.1.2STC89C52介紹STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用宏晶科技公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。由于此單片機應用在倉庫溫濕度檢測上,所以本設計選用了低功耗、高性能、低價格。小管腳(40腳)的STC89C52單片機。如圖2-1-2所示:圖2-1-2STC89C52單片機2.2系統(tǒng)結構框圖系統(tǒng)主要包括數(shù)據(jù)采集模塊,單片機控制模塊,顯示模塊和溫度設置模塊,驅動電路五個局部。系統(tǒng)框圖如圖2-2-1所示。單片機單片機顯示電路報警電路溫度傳感器圖2-2-1系統(tǒng)結構款圖2.3程序原理表達其中溫度采集模塊負責利用DS18B20傳感器實時采集溫度數(shù)據(jù),并將采集到的溫度數(shù)據(jù)傳輸?shù)絾纹瑱C控制模塊,單片機控制模塊將檢測到的數(shù)據(jù)進行處理后送到LCD顯示模塊進行顯示,同時將數(shù)據(jù)與系統(tǒng)默認的溫度上限32°C進行比擬,如果檢測到的溫度超過35°C或低于25°C,蜂鳴器會發(fā)出不同頻率的聲音進行報警。3.電路設計3.1硬件設計3.1.1報警模塊報警電路用一個三極管驅動一只蜂鳴器組成,驅動信號由芯片的管腳RD/P3.7控制。當顯示的溫度不在設定的溫度范圍內,即不在TL與TH之間那么驅動蜂鳴器發(fā)聲報警,其電路如圖3-1-1所示?;虿捎靡粋€揚聲器即可。圖3-1-1報警電路3.1.2單片機最小系統(tǒng)電路在課題設計的溫度控制系統(tǒng)設計中,控制核心是STC89C52單片機,該單片機為51系列增強型8位單片機,它有32個I/O口,片內含4KFLASH工藝的序存儲器,便于用電的方式瞬間擦除和改寫,而且價格廉價,其外部晶振為12M一個指令周期為1μS。使用該單片機完全可以完成設計任務,其最小系統(tǒng)主包括:復位電路、震蕩電路以及存儲器選擇模式,如圖3-2-1所示圖3-1-2單片機最小電路3.1.3溫度采集模塊在硬件完成后,為了使作品能夠實現(xiàn)預定的功能和效果,因此需要對環(huán)境溫度進行采集.在本設計中采用外部供電方式實現(xiàn)DS18B20傳感器與單片機的連接如圖3-1-3所示.圖3-1-3溫度傳感器接口3.2.1流程框圖及仿真電路圖圖3-2-1程序流程框圖圖3-2-2仿真電路圖3.1.4鍵盤3.2.2程序設計主函數(shù)所在C文件://數(shù)碼管顯示程序,FromWilliamsYouth20180104#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#include"DS18B20.h"#include"NixieLight.h"#include"Button.h"#include"BuzzerWarning.h"voidmain(){ uchari; DS18B20_reset(); buzInit();while(1){P0=0x00; if(keyadd==0||keydec==0)i++;//設置標志位i,只有加或減鍵被按下之 //后報警程序啟動;防止當前溫度在界限之外一直報警并無法設定問題 t=read_temperature();//讀溫度 formatTemp(t); keyboard(); if(i>=1)WhetherWarn(t); }}數(shù)碼管顯示局部:sbitfir=P2^1;sbitsec=P2^2;sbitthr=P2^3;voiddisplay(ucharnum,uchardat);//數(shù)碼管顯示數(shù)字的編碼table[0]就是顯示0ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, //不帶共陽極小數(shù)點的0-9編碼0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10 //帶共陽極小數(shù)點的0-9編碼};voiddelay(uchari) //1Ms毫秒延時{ucharj,k;for(j=i;j>0;j--)for(k=125;k>0;k--);}voidformatTemp(uintt)//格式化數(shù)據(jù)以顯示于數(shù)碼管{ uchari; i=t/100;display(1,i); i=t%100/10+10;display(2,i); i=t%100%10;display(3,i);}voiddisplay(ucharnum,uchardat){switch(num) {case1:P0=table[dat];fir=0;delay(5);fir=1;break;//十位 case2:P0=table[dat];sec=0;delay(5);sec=1;break;//個位 case3:P0=table[dat];thr=0;delay(5);thr=1;break;//小數(shù)點位 } }DS18B20測試溫度局部:voidDS18B20_Delayus(uintus);voidDS18B20_reset();voidDS18B20_write(uchardat);ucharDS18B20_data();uintread_temperature();sbitDQ=P3^7;uintt=0;//1820溫度變量uintset_hightemp=200,set_lowtemp=150; //高溫界限20度,低溫警報15度/*us級延時函數(shù)*/voidDS18B20_Delayus(uintus){while(--us);}//初始化DS18B20voidDS18B20_reset(){ucharx=0;DQ=1;DS18B20_Delayus(16);//稍做延時DQ=0;//將DQ拉低DS18B20_Delayus(160);//延時400us~960usDQ=1;//拉高總線DS18B20_Delayus(28);//延時15us~60usx=DQ;//如果=0那么初始化成功=1那么初始化失敗DS18B20_Delayus(40);//延時60us~240us}/*寫一個字節(jié)*/voidDS18B20_write(uchardat){uchari;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;DS18B20_Delayus(10);DQ=1;dat>>=1;}}/*讀一個字節(jié)*/ucharDS18B20_data(){uchari,dat;for(i=8;i>0;i--){DQ=0;//給脈沖信號dat>>=1;DQ=1;//給脈沖信號if(DQ)dat|=0x80;DS18B20_Delayus(8);}returndat;}/*讀取溫度*/uintread_temperature(){uchara,b;uintt=0;floattt=0;DS18B20_reset();//DS18B20復位DS18B20_write(0xcc);//跳過讀序號列號的操作DS18B20_write(0x44);//啟動溫度轉換DS18B20_reset();//DS18B20復位DS18B20_write(0xcc);//跳過讀序號列號的操作DS18B20_write(0xbe);//讀取溫度存放器a=DS18B20_data();//讀低8位b=DS18B20_data();//讀高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t=tt*10+0.5;//放大10倍輸出并四舍五入return(t);}蜂鳴器工作局部://溫度超過界限報警并采取措施程序,F(xiàn)romWilliams//溫度高于20度Beep報警,溫度低于15度Beep報警ucharCount;sbitbuz=P3^6;sbitmotor=P2^7;voiddelay2(void){uintk;for(k=1700;k>0;k--);}voidbuzInit()//主函數(shù)初始化{Count=0x00;buz=1;TMOD=0x01;TH0=0x00;TL0=0xff;EA=1;ET0=1;}/********************************************************BEEP工作函數(shù)*********************************************************/voidbuzWork()//beep工作函數(shù){ charshowtime=127; do{Count++;delay2();}while(Count!=0xff); if(t>set_hightemp){do {Count--; delay2(); }while(Count!=0x00); } TR0=0; }/*********************************************************Time0中斷函數(shù)**********************************************************/voidTime0(void)interrupt1using0{TH0=0xfe;TL0=Count;buz=~buz;}//判斷函數(shù)voidWhetherWarn(uintt){ if(t<set_lowtemp&&t!=850){TR0=1;buzWork();} elseTR0=0; if(t>set_hightemp&&t!=850){TR0=1;buzWork();} elseTR0=0;}按鈕工作局部:sbitkeyh=P3^5;sbitkeyl=P3^4;sbitkeyadd=P3^3;sbitkeydec=P3^2;voidkeyboard(){ucharh=0,l=0;/////設置高溫界限 if(keyh==0) //K3anxia {delay(10);if(keyh==0) {while(!keyh);h++; }}//進入K3 while(h==1) {formatTemp(set_hightemp);//顯示最高值 if(keyadd==0) {delay(10); if(keyadd==0){ formatTemp(set_hightemp); while(!keyadd); set_hightemp+=10;}} if(keydec==0) {delay(10); if(keydec==0){ formatTemp(set_hightemp); while(!keydec); set_hightemp-=10;}} if(keyh==0) {delay(10); if(keyh==0){ formatTemp(set_hightemp); while(!keyh); h++;}} }//////////////設置低溫界限 if(keyl==0) //K3anxia {delay(10);if(keyl==0) {while(!keyl);l++; }}//進入K3 while(l==1) {formatTemp(set_lowtemp);//顯示最高值 if(keyadd==0) {delay(10); if(keyadd==0){ formatTemp(set_lowtemp); while(!keyadd); set_lowtemp+=10;}} if(keydec==0) {delay(10); if(keydec==0){ formatTemp(set_lowtemp); while(!keydec); set_lowtemp-=10;}} if(keyl==0) {delay(10); if(keyl==0){ formatTemp(set_lowtemp); while(!keyl); l++;}} } }4、系統(tǒng)測試當溫度傳感器DS18B20接受到外界環(huán)境溫度的變化時,如:將火苗靠近傳感器或用電吹風對傳感器加熱等,這時傳感器對這個信號進行采樣處理,將這個數(shù)字信號輸入到主模塊單片機STC89C52中進行處理。由單片機的P3.6腳接入高溫報警電路控制局部,用于發(fā)光二極管和繼電器的控制。檢查焊接是否標準,線路是否接錯,確保根本的錯誤沒有后,接通電源,檢查前級和后級,看看數(shù)碼管是否正常顯示,最后再加熱傳感器,使其到達設定的高溫臨界點,如果實現(xiàn)了報警,證明設計成功了,如果沒有還需一級一級的仔細檢查。在焊接的過程中,為保證焊點牢固、接觸良好與美觀,不存在虛焊、假焊,在焊接前要用刀、斷鋸條或砂紙刮去或打光引腳引線上的油污、氧化膜或漆,直至露出光亮干凈的外表,之后涂上松香溶液,其上搪一層錫。焊接時應掌握好溫度及時間,焊接時間一般在3~5秒。假設焊接時間過短,焊錫未與焊件充分浸熔易產(chǎn)生虛焊、假焊;時間過長,那么將燙壞印制板的銅箔或元件。焊接時,烙鐵頭應同時緊貼引腳或引線頭及印制板上的焊盤銅箔,當焊點溫度升至焊錫熔點時,焊錫熔化即自動流到引線與銅箔間,形成錐狀光滑焊點,之后迅速移開烙鐵。焊錫未完全凝固前,不能移動或搖動被焊元器件。焊錫可事前熔在烙鐵頭上,亦可在烙鐵貼在焊點加熱時將其送入。各元件焊接完畢,焊接結束后必須檢查有無漏焊、虛焊以及由于焊錫流淌造成的元件短路。虛焊較難發(fā)現(xiàn),可用鑷子夾住元件引腳輕輕拉動,如發(fā)現(xiàn)搖動應立即補焊。5、總結本設計是以溫度采集及控制過程設計為總目標,以89C52單片機最小應用系統(tǒng)為總控制中心,輔助設計有溫度采樣電路、LED數(shù)碼管動態(tài)串行顯示器等。本設計的重點、難點是:〔1〕要掌握溫度傳感器的原理、結構、應用等;〔2〕考慮從非電量信號到電量信號的電路實現(xiàn)原理以及與單片機的接口;〔3〕熟悉MCS-51編程的技術,實現(xiàn)單片機對溫度的調節(jié)控制;〔4〕整體電路的仿真調試。本次設計優(yōu)點:采用的單片機STC89C52性價比高;熱敏電阻溫度傳感器轉化溫度的方法非常簡潔且精度高、測試范圍較廣。由于時間及精力所限,對溫度控制系統(tǒng)做了整體設計,具體實現(xiàn)了其中的溫度報警局部設計,即溫度控制系統(tǒng)的采集、顯示及報警模塊。6、設計過程2017-12-2822:16:11單片機開發(fā)板數(shù)碼管為共陽數(shù)碼管;【驗證正確】測試數(shù)碼管程序是否正確;測試DS18B20是否工作正常;2017年12月29日13:03:35可以正常用數(shù)碼管顯示溫度;開始做功能二:溫度過高用蜂鳴器報警并使電機工作以降溫;2017年12月30日18:41:58蜂鳴器疑心損壞或電路不正確:蜂鳴器為無源蜂鳴器且P04口驅動蜂鳴器存在問題,考慮不用P04口2018年1月1日星期一17:11:58確定蜂鳴器接口為P36,不是P04,溫度過高報警功能完成,報警方式消防車報警聲2017年12月29日18:42:27Proteus問題4位一體數(shù)碼管:共陽,abcdefgh為接低電平相應段亮;2018年1月1日星期一11:03:36設計:用鍵盤更改設定溫度程序功能設定:按鍵k3〔P35〕:選定+確定功能,用于設定上限溫度,按一下設置十位,再按一下設定個位,再按第三次設定小數(shù)點后一位,最后按壓一次設置完成;〔整個設置過程中假設中途有3s不操作那么跳出設置,根據(jù)當前已更改和未更改值設定溫度〕2018年1月1日星期一17:17:09按鍵k4〔P34〕:選定+確定功能,用于設定下限溫度,按一下設置十位,再按一下設定個位,再按第三次設定小數(shù)點后一位,最后按壓一次設置完成;〔整個設置過程中假設中途有3s不操作那么跳出設置,根據(jù)當前已更改和未更改值設定溫度〕按鍵k5〔P33〕:溫度設置加;按鍵k6〔P32〕:溫度設置減;功能流程圖描述:設定的下限溫度十位閃爍設定的下限溫度十位閃爍K6按下〔溫度減〕K5按下〔溫度加〕K4按下〔進入設定下限溫度〕2018/1/121:30:02解決proteus仿真不成功問題〔未解決〕2018年1月2日星期二17:06:09報警程序問題:不能跳出;21時3分25秒按鈕設置溫度;2018年1月3日星期三10:52:34按鈕程序問題,while循環(huán)不能成功循環(huán)【問題已解決,編譯器問題,之前翻開的button.h編輯無效,通過主程序翻開的button.h才能被編輯】2018年1月3日星期三19:34:54嘗試解決仿真不通過問題;〔未解決〕2018年1月4日10:30:33嘗試參加電機控制程序,單片機負載電流不夠,所以考慮用驅動IC,查找并嘗試使用74LS245及74LS04芯片,無法驅動74LS245雙向總線驅動器,驅動單片機系統(tǒng)總線總線驅動芯片,用來驅動led或者其
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO 11908:2025 EN Binders for paints and varnishes - Amino resins - General methods of test
- 愚人節(jié)搞笑文案3篇
- 開展世界地球日的活動總結
- 崗前培訓方案(17篇)
- 建材開業(yè)致辭7篇
- 超聲造影在乳腺良惡性腫瘤鑒別診斷中的應用
- 二零二五版影視作品攝像授權合同范本3篇
- 暴力抗議事件應急預案
- 二零二五年個人股權繼承協(xié)議范本4篇
- 提升醫(yī)院管理的關鍵策略
- 2025年中國南方航空股份有限公司招聘筆試參考題庫含答案解析
- 商務部發(fā)布《中國再生資源回收行業(yè)發(fā)展報告(2024)》
- 2025年福建新華發(fā)行(集團)限責任公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 江蘇省駕??荚嚳颇恳豢荚囶}庫
- 四川省成都市青羊區(qū)成都市石室聯(lián)合中學2023-2024學年七上期末數(shù)學試題(解析版)
- 咨詢公司績效工資分配實施方案
- 2025新人教版英語七年級下單詞表
- 2024年專升本考試-專升本考試(機械設計基礎)筆試歷年真題薈萃含答案
- 部編版五年級語文下冊第七單元大單元教學設計
- 藥品儲存養(yǎng)護知識大全
- 新版藥品批發(fā)企業(yè)質量管理體系文件大全
評論
0/150
提交評論