溫度控制器設(shè)計(jì)報(bào)告_第1頁
溫度控制器設(shè)計(jì)報(bào)告_第2頁
溫度控制器設(shè)計(jì)報(bào)告_第3頁
溫度控制器設(shè)計(jì)報(bào)告_第4頁
溫度控制器設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、溫度控制器課程設(shè)計(jì)報(bào)告 隨著社會的發(fā)展、科技的進(jìn)步以及溫度控制器在各個領(lǐng)域的應(yīng)用,自動化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來,溫度控制器已廣泛應(yīng)用于人們生活的各個方面。溫度控制在日常生活及工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛,比如溫室、水池、發(fā)酵缸、電源等場所。以往的溫度控制都是由人工完成,而且大家都不重視溫度控制,因而常常發(fā)生意外。所以為了防止意外發(fā)生,許多場所都需要對溫度實(shí)行監(jiān)控。本文利用AT89C51單片機(jī)、ADC0909模數(shù)轉(zhuǎn)換器等芯片設(shè)計(jì)一個數(shù)碼管顯示的熱水器控制器,通過調(diào)節(jié)開關(guān)來上下調(diào)節(jié)溫度。 現(xiàn)在介紹一下關(guān)于這個熱水器控制器的具體情況,它是用6只共陰極的八段數(shù)碼管來分別顯示工作狀態(tài)、

2、設(shè)定溫度和實(shí)際溫度溫度。用3只按鈕來分別作為開機(jī)/關(guān)機(jī)鍵、溫度設(shè)定上升鍵和下降鍵。用1只LED發(fā)光二極管來表示加熱器開關(guān)量控制輸出,發(fā)光二極管要求用三極管放大驅(qū)動。溫度設(shè)定范圍099,在裝置處于開機(jī)狀態(tài)情況下,當(dāng)實(shí)際溫度高于等于設(shè)定溫度時,加熱器控制輸出“關(guān)”;當(dāng)實(shí)際溫度低于設(shè)定溫度5時,加熱器控制輸出“開”。上電后,自動顯示關(guān)機(jī)狀態(tài)、設(shè)定溫度50和實(shí)際室內(nèi)溫度,這時用戶可以設(shè)定溫度進(jìn)行設(shè)定,但只有在按下ON鍵后,控制器正式工作;在運(yùn)行期間,若對溫度狀態(tài)進(jìn)行設(shè)定,則控制器按新設(shè)定開始。若關(guān)機(jī)后(非斷電)重新啟動控制器,則自動進(jìn)入上次關(guān)機(jī)前的設(shè)定狀態(tài)。溫度傳感器采用AT502熱敏電阻。 基于以上

3、這些情況,通過protues軟件做出溫度控制器的電路圖,(protues軟件是由英國Labcenter Electronics公司開發(fā)的EDA工具軟件,它集電路設(shè)計(jì)、制版及仿真等多種功能于一身,不僅能夠?qū)﹄姽ぁ㈦娮蛹夹g(shù)學(xué)科涉及的電路進(jìn)行設(shè)計(jì)與分析,還能夠?qū)ξ⑻幚砥鬟M(jìn)行設(shè)計(jì)和仿真。)并列出以下材料清單其中,LED數(shù)碼管是數(shù)字量輸出,工作方式是動態(tài)掃描顯示,按鈕是數(shù)字量輸入,工作方式是直接電平輸入,加熱器是開關(guān)量輸出,工作方式是電平控制輸出,溫度傳感器是模擬量輸入,工作方式是電壓輸入。 此電路圖主要芯片是AT89C51,4k字節(jié) Flash 閃速存儲器,128字節(jié)內(nèi)部RAM,32 個I/

4、O 口線,兩個16位定時/計(jì)數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。將LED和AT89C51通過ULN2003A、RESPACK-8和RESPACK-7鏈接起來,夠成LED顯示電路,即這張圖。因?yàn)橐ㄟ^3個按鈕分別作為開機(jī)/關(guān)機(jī)鍵、溫度設(shè)定上升鍵和下降鍵,通過這3個按鈕來實(shí)現(xiàn)對此電路的操控。然后是要對交流電源進(jìn)行

5、控制輸出,通過繼電器來實(shí)現(xiàn)。最后還有AD采樣對于以上一些元件的參數(shù)在此提出提示,(1)ADC0808的數(shù)字輸出端順序是反的,(2)ADC0808的CLK端輸入500kHz的脈沖,(3)加熱器用燈代替,并接入220V的交流電源,為了顯示加熱的閃動效果,將交流電頻率改為1Hz,(4)控制繼電器的電壓改為5V,內(nèi)阻為240歐姆,(5)單片機(jī)的晶振用6MHz,(6)溫度采集電路的可調(diào)電阻值為200歐姆。接著,介紹一下P0和P1的結(jié)構(gòu)通過以上資料各種綜合,我做出了完整的溫度控制器電路圖,程序如下:#include<reg51.h>#define uint unsigned int#defin

6、e uchar unsigned charsbit Power_out =P10;sbit Key1 =P15;sbit Key2=P16;sbit Key3=P17;sbit Eoc=P33;sbit led1=P20; sbit led2=P21; sbit led3=P22; sbit led4=P23; sbit led5=P24; sbit led6=P25;uint turn;#define ADC0808_ADDR0XBF00#defineifAdEoc(!Eoc)uchar code ad2TempTable=0x63,0x61,0x5d,0x5c,0x5a,0x59,0x58

7、,0x56,0x55,0x54,0x52,0x51,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x41,0x40,0x3f,0x3e,0x3e,0x3d,0x3c,0x3b,0x3a,0x3a,0x39,0x38,0x38,0x37,0x37,0x36,0x35,0x34,0x34,0x33,0x33,0x32,0x32,0x31,0x30,0x30,0x2f,0x2e,0x2e,0x2d,0x2d,0x2c,0x2c,0x2b,0x2b,0x2a,0x2a,0x29,0x29,0x28

8、,0x28,0x27,0x27,0x26,0x26,0x25,0x25,0x24,0x24,0x23,0x23,0x22,0x22,0x21,0x21,0x20,0x20,0x1f,0x1f,0x1e,0x1e,0x17,0x17,0x16,0x16,0x15,0x15,0x15,0x15,0x13,0x13,0x12,0x12,0x12,0x12,0x11,0x11,0x10,0x10,0x0f,0x0f,0x0e,0x0e,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x08,0x08,0x07

9、,0x07,0x06,0x06,0x05,0x05,0x04,0x04,0x04,0x03,0x03,0x02,0x02,0x01,0x01,0x00,0x00;uchar code Led_seg10 =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar idata temp_now;uchar idata temp_set;uchar idata time_cnt;bitsample_flag;void delay(uint k)uint x,y;for(x=k;x>0;x-)for(y=125;y>0;y-);voi

10、dGet_temp(void)/ad處理得到溫度uchar ad;uchar xdata *ptr;ptr=ADC0808_ADDR;*ptr =0;delay(1);while(!ifAdEoc);delay(1);ad = *ptr;if(ad>=24)ad-=24;else ad = 0;temp_now=ad2TempTablead;void main_Init(void) /開中斷 TMOD = 0x01;TR0=1;ET0=1;IT0=1;EX0=1;EA=1;Power_out=0;temp_now=20;temp_set=50;time_cnt=10;sample_fla

11、g=1;void outside0() interrupt 0 EX0=0; /執(zhí)行外部中斷1程序時,屏蔽外部中斷1的響應(yīng) if(Key1=0) /是否有key1按鍵按下 delay(10); /有,延遲,消抖 if(Key1=0) /確認(rèn)是否有key1按鍵 按下 if(turn=0) /ON/OFF選擇 turn=1; /turn為0,按下key1, turn為1表開機(jī) else / turn=0; /turn為1,按下key1, turn為0表關(guān)機(jī) if(Key2=0) /是否有key2按鍵按下 delay(10); /有,延遲,消抖 if(Key2=0) /確認(rèn)是否有key2按鍵 按下

12、/開機(jī)時 if(temp_set<=99) /settep設(shè)定溫度小于 等于98時,可以繼續(xù)加 temp_set+; if(Key3=0) /是否有key3按鍵按下 delay(10); /有,延時,消抖 if(Key3=0) /確認(rèn)是否有key3按鍵 按下 /開機(jī)時 if(temp_set>=1) /settep設(shè)定溫度大于等于 1時,可以繼續(xù)減 temp_set -; EX0=1; /允許外部中斷1中斷,繼續(xù) 等待按鍵 void display(uchar turn,uchar temp_set,uchar temp_now) /顯示子函數(shù) turn表示開關(guān),settep表示

13、uchar setshi,setge,realshi,realge; /setshi,setge對設(shè) 定溫度的settep的十位和個 setshi=temp_set/10; /settep的十位放在setshi setge=temp_set%10; /settep的個位放在setge realshi=temp_now/10; /realtep的十位放在realshi realge=temp_now%10; /realtep的個位放在 realgeP0=0xff; /清除P0口 led1=1; /選通數(shù)碼管1 P0= Led_segturn; /P0口送數(shù) delay(1); /點(diǎn)亮,延遲5ms

14、 led1=0; /關(guān)閉數(shù)碼管1 P0=0xff; /清除P0口 led2=1; /選通數(shù)碼管2 P0= Led_segturn; /P0口送數(shù) delay(1); /點(diǎn)亮,延遲5ms led2=0; /關(guān)閉數(shù)碼管2 P0=0xff; /清除P0口 led3=1; /選通數(shù)碼管3 P0= Led_segsetshi; /P0口送數(shù) delay(1); /點(diǎn)亮,延遲5ms led3=0; /關(guān)閉數(shù)碼管3 P0=0xff; /清除P0口 led4=1; /選通數(shù)碼管4 P0= Led_segsetge; /P0口送數(shù) delay(1); /點(diǎn)亮,延遲5ms led4=0; /關(guān)閉數(shù)碼管4 P0=0

15、xff; /清除P0口 led5=1; /選通數(shù)碼管5 P0= Led_segrealshi; /P0口送數(shù) delay(1); /點(diǎn)亮,延遲5ms led5=0; /關(guān)閉數(shù)碼管5 P0=0xff; /清除P0口 led6=1; /選通數(shù)碼管6 P0= Led_segrealge; /P0口送數(shù)delay(1); /點(diǎn)亮,延遲5ms led6=0; /關(guān)閉數(shù)碼管6 void heat() if(turn=1) /開機(jī)時,才能進(jìn)行加 熱 if(temp_set<=temp_now) /當(dāng)實(shí)際溫度大于等于 設(shè)定溫度,停止加熱 Power_out=1; /加熱關(guān) if(temp_set-4)=

16、temp_now) /當(dāng)實(shí)際溫度小于設(shè)定 溫度5度以下,開始加熱 Power_out=1; /加熱開 if(temp_set-3)=temp_now) /當(dāng)實(shí)際溫度小于設(shè)定 溫度5度以下,開始加熱 Power_out=1; /加熱開 if(temp_set-2)=temp_now) /當(dāng)實(shí)際溫度小于設(shè)定 溫度5度以下,開始加熱 Power_out=1; /加熱開 if(temp_set-1)=temp_now) /當(dāng)實(shí)際溫度小于設(shè)定 溫度5度以下,開始加熱 Power_out=1; /加熱開 if(temp_set-5)>temp_now) /當(dāng)實(shí)際溫度小于設(shè)定 溫度5度以下,開始加熱

17、Power_out=0; /加熱開 else if (turn=0) Power_out=1; void timer0 (void)interrupt 1/定時器中斷子程序TH0 = (65535-10000)/256;TL0 =(65535-10000)%256;if(time_cnt>0)time_cnt-;else time_cnt=10;sample_flag=1;void main(void)/主函數(shù)main_Init();while(1)if(sample_flag=1)sample_flag=0;Get_temp();display(turn,temp_set,temp_now);heat() ;PCON=0x01; 本文介紹了關(guān)于溫度控制器的電路圖和連接方式,此溫度控制器可進(jìn)行上下

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論