基于單片機的溫度控制系統(tǒng)設(shè)計_第1頁
基于單片機的溫度控制系統(tǒng)設(shè)計_第2頁
基于單片機的溫度控制系統(tǒng)設(shè)計_第3頁
基于單片機的溫度控制系統(tǒng)設(shè)計_第4頁
基于單片機的溫度控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機的溫度控制系統(tǒng)設(shè)計摘要:這次綜合設(shè)計,主要是設(shè)計一個溫度控制系統(tǒng),用STC89C52單片機控制,用智能溫度傳感器DS18B20對溫度進行采集,用LCD1602液晶顯示屏將采集到的溫度顯示出來。系統(tǒng)可以有效的將溫度控制在設(shè)定的范圍內(nèi)。如果實際溫度超出了控制范圍,那么系統(tǒng)會有自動的提示信號,并且相應(yīng)的繼電器會動作。我們的實際生活離不開對溫度的控制,在很多情況下我們都要對我們所處的環(huán)境進行溫度檢測,然后通過一定的措施進行調(diào)節(jié),從而到達我們自己想要的溫度,使我們的生活環(huán)境更加適宜。關(guān)鍵字:單片機;液晶顯示屏;溫度傳感器;繼電器;提示信號Abstract:Thisintegrateddesignisthedesignofatemperaturecontrolsystem.AsmarttemperaturesensorDS18B20isusedtocollecttemperatureandaLCD1602LiquidScreenisusedtodisplaythecollectedtemperature.ThesystemcontrolledbySTC89C52caneffectivelycontrolthetemperaturewithinthesettinglimits.Iftheactualtemperatureexceedsthesettingrange,thesystemwillautomaticallygivesignal,andthecorrespondingRelaywilltakerelatedactions.Itisnecessaryforustocontrolthetemperaturebecauseinmanysituationsthetemperaturearoundusisnotproperforus.Soweneedtodetectitandtakesomeactionstoadjustittothetemperaturewewanttomaketheenvironmentaroundusbetter.KeyWords:DS18B20;LCD1602;STC89C52;Relay;Signal引言目前,測控系統(tǒng)在工業(yè)生產(chǎn)中起著把關(guān)者和指導(dǎo)者的作用,它從生產(chǎn)現(xiàn)場到各種參數(shù)的獲取,運用科學規(guī)律和系統(tǒng)工程的做法,綜合有效地利用各種先進技術(shù),通過自動手段和裝備,使每個生產(chǎn)環(huán)節(jié)得到優(yōu)化,進而保證生產(chǎn)標準化,提高產(chǎn)品質(zhì)量,降低本錢,滿足需要,保證平安生產(chǎn)。傳統(tǒng)的測控系統(tǒng)主要由“測控電路〞組成,所具備的功能較少,也比擬弱。隨著計算機技術(shù)的迅速開展,使得傳統(tǒng)的系統(tǒng)發(fā)生了根本性的變化,即采用微型計算機作為測控系統(tǒng)的主題和核心,代替?zhèn)鹘y(tǒng)測控系統(tǒng)的常規(guī)電子線路,從而成為新一代的微機化測控系統(tǒng)。目前,單片機在工業(yè)控制系統(tǒng)諸多領(lǐng)域得到了極為廣泛的應(yīng)用。特別是其中的C51系列的單片機的出現(xiàn),具有更好的穩(wěn)定性,更快和更準確的運算精度,推動了工業(yè)生產(chǎn),影響著人們的工作和學習。在現(xiàn)代社會中,溫度控制不僅應(yīng)用在工廠生產(chǎn)方面,其作用也表到達了各個方面,隨著人們生活質(zhì)量的提高,酒店廠房及家庭生活中都會見到溫度控制的影子,溫度控制將更好的效勞于社會.而今,空調(diào)等家用電器隨著生產(chǎn)技術(shù)的開展和生活水平的提高越來越普及,一個簡單,穩(wěn)定的溫度控制系統(tǒng)能更好的適應(yīng)市場。為了滿足當前社會市場需求,我設(shè)計了此溫度控制系統(tǒng),以STC89C52為核心,以及液晶顯示器,電磁繼電器,電阻,按鍵等元件作為輔助,以電路分析作為理論指導(dǎo)和理論根底,設(shè)計出此系統(tǒng),將被控對象的溫度控制在一定的范圍內(nèi),通過液晶顯示器直觀的顯示出來,并且通過發(fā)光二極管,蜂鳴器等不同的信號告訴我們現(xiàn)在的溫度在什么范圍內(nèi),以便于我們做出相應(yīng)的處理措施。1設(shè)計方案及原理1.1系統(tǒng)總體的設(shè)計方案首先由智能傳感器(DS18B20)采集到溫度,通過單片機的P3.7口將采集到的數(shù)據(jù)信息輸送到單片機中,經(jīng)過微處理器對其進行運算,并且和設(shè)定的值進行比擬,然后根據(jù)比擬的結(jié)果,即根據(jù)溫度信號所在的范圍,微處理器執(zhí)行相對應(yīng)的操作。由于我們所處的環(huán)境對溫度的這個系統(tǒng)還具有溫度范圍調(diào)節(jié)功能。例如:假設(shè)檢測到的溫度在最高溫度和最低溫度之間,那么黃燈亮,假設(shè)檢測到的溫度比最低溫度低,那么綠燈閃爍,蜂鳴器發(fā)出聲音,繼電器閉合開始加熱,假設(shè)檢測到的溫度高于最高溫度,那么紅燈閃爍,并且蜂鳴器發(fā)出警報。1.2系統(tǒng)組成框圖本系統(tǒng)組成主要有以下局部:溫度采集局部、數(shù)據(jù)運算處理局部、溫度顯示局部以及相應(yīng)的提示信號局部。溫度采集DS18B20STC89C52溫度顯示與設(shè)定值進行運算比擬根據(jù)比擬結(jié)果CPU執(zhí)行相應(yīng)指令圖1總體結(jié)構(gòu)圖1.3系統(tǒng)原理組成和系統(tǒng)結(jié)構(gòu)這個智能溫度控制系統(tǒng)由溫度采集模塊、溫度顯示模塊、溫度比擬模塊、處理模塊等四大模塊組成。系統(tǒng)具體運行過程如下:首先由智能溫度傳感器DS18B20從外界環(huán)境中采集到被測溫度信號,將此信號發(fā)送到STC89C52單片機,然后單片機執(zhí)行相應(yīng)的指令,使繼電器,發(fā)光二級管,蜂鳴器做出相應(yīng)的動作。2硬件設(shè)計此系統(tǒng)的硬件電路包括以下局部,STC89C52單片機、LCD1602液晶顯示屏、DS18B20、蜂鳴器、發(fā)光二極管、電磁繼電器、加熱裝置、電阻、直流電壓源、貼片按鍵以及晶振、導(dǎo)線等局部組成。系統(tǒng)總體來說由四大局部構(gòu)成:溫度范圍設(shè)定,溫度采集,數(shù)據(jù)處理,溫度顯示,處理機構(gòu)等。最初溫度范圍設(shè)定在軟件中,但是可以通過按鍵對其進行調(diào)整。溫度采集采用的是溫度智能傳感器(DS18B20),這個智能傳感器和單片機接口只需要一個I/O口,硬件電路連接比擬方便,并且具有極強的抗干擾糾錯能力。數(shù)據(jù)處理采用的是STC89C52單片機,當溫度低于設(shè)定溫度時,綠燈會閃爍,并且蜂鳴器發(fā)出響聲,繼電器會閉合,進行加熱;當溫度高于設(shè)定溫度時,紅燈會閃爍,蜂鳴器發(fā)出警報;當溫度在設(shè)定范圍內(nèi)時,黃燈亮。溫度顯示采用的是1602液晶顯示器。顯示器上會顯示出當前溫度、最高溫度、最低溫度。圖2晶振電路:為單片機提供時鐘信號圖3復(fù)位電路圖4繼電器電路原理:當單片機P2.4引腳輸出低電平時,三極管導(dǎo)通,那么繼電器線圈中會有電流流過,電流會產(chǎn)生電磁場,在電磁場的作用下,開關(guān)會被吸合。當P2.4為高電平時,三極管處于截止狀態(tài),那么線圈中沒有電流流過,因此開關(guān)因失去磁場的吸合力而斷開。繼電器電路中二極管的作用:由于當P2.4由低電平突然變?yōu)楦唠娖綍r,繼電器線圈中的電流會突然消失,根據(jù)電磁感應(yīng)原理以及楞次定理,線圈兩邊會產(chǎn)生一個瞬時的反向高壓,為了防止線圈產(chǎn)生的瞬時高電壓形成閉合回路,產(chǎn)生大電流,因此,在中間加一個反向二極管,起到抑制反向電流的作用。圖5溫度范圍指示燈依次為綠、紅、黃圖6蜂鳴器電路圖原理:當P1.0為低電平時,三極管導(dǎo)通,那么蜂鳴器中有電流流過,因此蜂鳴器發(fā)聲。當P1.0為高電平時,三極管截止,蜂鳴器由于沒有電流通過,因此停止發(fā)聲。圖7溫度傳感器電路原理:DS18B20在出廠時默認配置為十二位,其中最高位是符號位,因此溫度值共11位,單片機在讀取數(shù)據(jù)時,一次會讀2字節(jié)共十六位,讀完后將低11位的二進制數(shù)轉(zhuǎn)換成十進制數(shù)再乘以0.0625便為所測的真實值。另外,還需要判斷溫度的正負。前五位數(shù)字是符號位,這五位同時變化,我們只需要判斷11位就可以了。前五位為1時,讀取溫度為負值,那么測量到的數(shù)值需要求出補碼〔求反加一〕,再乘以0.0625才得到實際溫度值。前五位為0時,讀取溫度為正值,只要將測得數(shù)值乘以0.0625即可得到實際溫度值。圖8顯示局部原理:此溫控系統(tǒng)的顯示采用的是LCD1602液晶顯示器,各個引腳的功能和作用如下:VSS連接電源地,VDD連接電源正極,VO是液晶顯示比照度調(diào)節(jié)端,RS是數(shù)據(jù)/命令選擇端,RW是讀寫選擇端,E是使能信號端。D0~D7是數(shù)據(jù)端。通過RS確定是寫數(shù)據(jù)還是寫命令。寫命令包括液晶光標顯示不顯示、光標閃爍不閃爍、需不需要移屏、在液晶的什么位置顯示,等等。寫數(shù)據(jù)是指要顯示什么內(nèi)容。讀/寫控制端設(shè)置為寫模式,即低電平。將數(shù)據(jù)或命令送達數(shù)據(jù)線上。給E一個高脈沖將數(shù)據(jù)送入液晶顯示器,完成寫操作。圖9按鍵電路圖原理:由電路圖可知某個按鍵被按下的標志是這個按鍵所對應(yīng)的引腳的電平由高電平變?yōu)榈碗娖?。因此,微處理器只需要檢測P1.2、P1.3以及P1.4的電平變化然后經(jīng)過去抖動后,假設(shè)對應(yīng)的引腳依然為低電平,那么表示此鍵被按下。假設(shè)電平由低變成高,那么表示按鍵彈起。3軟件設(shè)計4系統(tǒng)仿真及調(diào)試我的程序是在KeilC軟件中編寫的,經(jīng)過在軟件中不斷地調(diào)試,修改,最終終于編譯通過。編譯通過后,生成hex文件。然后翻開Proteus軟件,將生成的hex文件下載到單片機中,液晶顯示屏上就顯示出了如下圖的效果。由于測到的溫度是四十五度,而設(shè)定的范圍是四十度到九十度,因此實際檢測到的溫度在設(shè)定溫度范圍之內(nèi),自己期望的效果是液晶屏上顯示最高溫度、最低溫度、測到的實際溫度,并且黃色的發(fā)光二極管發(fā)光。從仿真結(jié)果來看,實際效果到達了自己所期望的效果。圖10系統(tǒng)仿真結(jié)果總結(jié)本次單片機課程設(shè)計一共是兩周的時間,在這忙碌的兩周時間,我學到了很多東西。現(xiàn)在依然記得很清楚當時剛剛拿到題目時的那種茫然,感覺題目有一定的難度,而自己卻無從下手,不知道從什么地方開始做起。在高老師的帶著和指導(dǎo)下,我那種消極的情緒漸漸的消失了,漸漸的明白了應(yīng)該去做哪些準備工作,應(yīng)該去查閱哪方面的資料。就這樣我又重新找回了自己的自信心,開始通過網(wǎng)絡(luò)和書籍查找自己所需元件的特性和使用方法。查清楚所需要的元件資料大概花費了四天的時間,我便開始設(shè)計自己的電路圖,搭建電路圖可不是一件容易的事,不過在同學和老師的幫助以及自己的努力下,大概花了一天的時間,我的電路設(shè)計圖就完成了。接下來的主要任務(wù)就是根據(jù)自己的電路編寫程序,如果說設(shè)計電路不容易,那么編寫程序我就只能用“非常難〞這三個字來形容了。由于我們上學期學的是匯編語言單片機,而我自己之前自學過C語言單片機,對于我自己來說,我感覺用C語言來編寫比擬方便一些,于是,我便開始了自己的編程。編程需要耐心,因為我們編寫出來的程序難免會有錯誤之處,在編譯時不能通過,因此需要不斷地去調(diào)試,直到編譯通過為止。經(jīng)過幾天反復(fù)的編寫,在軟件中編譯,調(diào)試,糾錯,最終編譯結(jié)果終于通過。接下來就是仿真了,需要在Proteus中將自己的硬件電路和軟件結(jié)合起來,看能不能到達自己預(yù)期的效果。第一次仿真時,非常期待結(jié)果馬上就能出現(xiàn),并且能夠到達預(yù)期的效果??墒乾F(xiàn)實和期待值總是存在一定的差距。電路圖難免會出現(xiàn)連接失誤,連接不完全等等之類的問題,經(jīng)過我的努力修改,最終我的電路終于到達了我預(yù)的期望值,當我看到液晶顯示屏上的結(jié)果,發(fā)光二級管閃爍,以及繼電器,蜂鳴器按照我的要求動作時,我的心中有說不出的快樂和愉悅。通過這次的課程設(shè)計,我懂得了如何將自己學過的東西用于實踐,即理論和實踐相結(jié)合。增強了我和同學之間的互動能力,使我能夠更好地和各個班的同學相互交流,相互學習共同進步。在以后的學習中,我會更加努力,堅持理論和實踐相結(jié)合的思想,去探索,去追求。參考文獻[1]王振紅.綜合電子技術(shù)與實踐[M].北京:清華大學出版社,2005.2:28-33.[2]梅麗鳳.單片機原理及接口技術(shù)[M].北京:清華大學出版社,2006.8:63-72.[3]徐愛華.單片機應(yīng)用技術(shù)教程[M].機械工業(yè)出版社,2003.7:128-156.[4]謝宜仁,謝東辰.單片機實用技術(shù)問答[M].人民郵電出版社,2003.2:235-269.[5]何立民.單片機應(yīng)用技術(shù)選編[M].北京:北京航空航天大學出版社,1997.10:20-35.[6]郭天祥.51單片機C語言教程[M].電子工業(yè)出版社,2023.1:343-349.附錄源程序代碼:#include<reg52.h>#include<intrins.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintsbitcgq=P3^7;//18B20接口sbitd1=P2^0;//高于上限時,紅燈閃爍sbitd2=P2^1;//低于下限溫度時,綠燈閃爍sbitd3=P2^2;//黃燈正常時發(fā)光sbitfeng=P1^0;//不在正常范圍內(nèi)時蜂鳴器響sbitsw=P2^4;//當?shù)陀谙孪迺r,繼電器吸合,升溫開始工作sbitrs=P2^6;//1602控制位選擇sbitrw=P2^5;sbiten=P2^7;bitflag;bitflag_f;chartemph,templ;//上限溫度下線溫度變量定義ucharcodetable1[]={"CT:C"};ucharcodetable2[]={"H:+90.0L:+40.0"};charhf='+',hs=9,hg=0,hd=0,lf='+',ls=4,lg=0,ld=0;//溫度調(diào)整全局變量voiddelayus(uintus)//延長時間為11*us+3微秒{ while(--us)_nop_();}voiddelayms(uintms)//延時函數(shù)1秒{uintx,y; for(x=ms;x>0;x--) for(y=0;y<110;y++);}//*************LCD1602控制函數(shù)*****************//voidlcd_write_com(ucharcom)//寫指令{delayms(5);//維持信號穩(wěn)定 rs=0; rw=0; en=0;delayms(1); en=1; P0=com; en=0;}voidlcd_write_date(uchardate)//寫數(shù)據(jù){ delayms(5);//維持信號穩(wěn)定rs=1; rw=0; en=0; delayms(1); en=1; P0=date; en=0; rs=0;}voidlcd_init()//液晶初始化{ uchari; delayms(15); lcd_write_com(0x38); delayms(5); lcd_write_com(0x38); delayms(5); lcd_write_com(0x38); delayms(1); lcd_write_com(0x01); delayms(1); lcd_write_com(0x06); delayms(1); lcd_write_com(0x0f); delayms(1); lcd_write_com(0x80); delayms(1); for(i=0;i<14;i++) {lcd_write_date(table1[i]); delayms(1);} lcd_write_com(0x80+0x40); for(i=0;i<17;i++) {lcd_write_date(table2[i]); delayms(1);}}/***************溫度控制函數(shù)******************/voidds18b20_init()//18B20初始化{ucharx; cgq=1; delayus(8); cgq=0; delayus(50); cgq=1;delayus(20); x=cgq; delayus(5);}voidds18b20_write_date(uchardate)//向DS18B20中寫入一個字節(jié){ uchari; for(i=0;i<8;i++) {cgq=0; cgq=date&0x01; delayus(5); cgq=1; date>>=1; } delayus(5);}uchards18b20_read_date(void)//從18B20中讀出一個字節(jié){uchari,date; TR0=0; for(i=0;i<8;i++) {cgq=0; date>>=1; cgq=1; if(cgq) date|=0x80; delayus(5);}TR0=1; returndate;}voidds18b20_start()//啟動溫度轉(zhuǎn)換{ds18b20_init(); ds18b20_write_date(0xcc);//跳過讀取序列號 ds18b20_write_date(0x44);//啟動溫度轉(zhuǎn)換 delayus(200);}uintds18b20_temperature(void)//讀取溫度{uchara; uintb,t; ds18b20_init(); ds18b20_write_date(0xcc);//跳過讀取序列號 ds18b20_write_date(0x44);//啟動溫度轉(zhuǎn)換 delayus(200); ds18b20_init(); ds18b20_write_date(0xcc); ds18b20_write_date(0xbe);//讀取溫度存放器,共九個節(jié) a=ds18b20_read_date(); b=ds18b20_read_date();b<<=8; t=a+b; returnt; }/****************按鍵調(diào)整******************/sbitk1=P1^2;sbitk2=P1^3;sbitk3=P1^4;uchark;voidkey_scan(){if(k1==0) {delayms(10); if(k1==0) {while(!k1); delayms(10); k++; if(k==9)k=0;} } switch(k) {case0:{flag=1; lcd_write_com(0x0c); lcd_write_com(0x80); }break; case1:{flag=0;d1=1;d2=1;d3=1;feng=1; lcd_write_com(0x0f); lcd_write_com(0x80+0x40+2); }break; case2:{ lcd_write_com(0x80+0x40+3); }break; case3:{lcd_write_com(0x80+0x40+4); }break; case4:{lcd_write_com(0x80+0x40+6); }break; case5:{lcd_write_com(0x80+0x40+11); }break; case6:{lcd_write_com(0x80+0x40+12); }break; case7:{lcd_write_com(0x80+0x40+13); }break; case8:{lcd_write_com(0x80+0x40+16); }break; } if(k) {if(k2==0) {delayms(10); if(k2==0) {while(!k2); delayms(10); if(k==1) {if(hf=='+')hf='-'; elsehf='+'; lcd_write_date(hf); lcd_write_com(0x80+0x40+2);} if(k==2) {hs++; if(hs>=10)hs=0; lcd_write_date(hs+0x30); lcd_write_com(0x80+0x40+3);} if(k==3) {hg++;if(hg>=10)hg=0; lcd_write_date(hg+0x30); lcd_write_com(0x80+0x40+4);} if(k==4) {hd++;if(hd>=10)hd=0; lcd_write_date(hd+0x30); lcd_write_com(0x80+0x40+6);} if(k==5) {if(lf=='+')lf='-'; elself='+'; lcd_write_date(lf); lcd_write_com(0x80+0x40+11);} if(k==6) {ls++; if(ls>=10)ls=0; lcd_write_date(ls+0x30); lcd_write_com(0x80+0x40+12);} if(k==7) {lg++; if(lg>=10)lg=0; lcd_write_date(lg+0x30); lcd_write_com(0x80+0x40+13);} if(k==8) {ld++; if(ld>=10)ld=0; lcd_write_date(ld+0x30); lcd_write_com(0x80+0x40+16);} } } if(k3==0) {delayms(10); if(k3==0) {while(!k3); delayms(10); if(k==1) {if(lf=='+')lf='-'; elself='+'; lcd_write_date(lf); lcd_write_com(0x80+0x40+2);} if(k==2) {hs--; if(hs<0)hs=9; lcd_write_date(hs+0x30); lcd_write_com(0x80+0x40+3);} if(k==3) {hg--;if(hg<0)hg=9; lcd_write_date(hg+0x30); lcd_write_com(0x80+0x40+4);} if(k==4) {hd--;if(hd<0)hd=9; lcd_write_date(hd+0x30); lcd_write_com(0x80+0x40+6);} if(k==5) {if(lf=='+')lf='-'; elself='+'; lcd_write_date(lf); lcd_write_com(0x80+0x40+11);} if(k==6) {ls--; if(ls<0)ls=9; lcd_write_date(ls+0x30); lcd_write_com(0x80+0x40+12);} if(k==7) {lg--;if(lg<0)lg=9; lcd_write_date(

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論