基于NTC熱敏電阻的溫度測量與控制系統(tǒng)的設(shè)計(jì)_第1頁
基于NTC熱敏電阻的溫度測量與控制系統(tǒng)的設(shè)計(jì)_第2頁
基于NTC熱敏電阻的溫度測量與控制系統(tǒng)的設(shè)計(jì)_第3頁
基于NTC熱敏電阻的溫度測量與控制系統(tǒng)的設(shè)計(jì)_第4頁
基于NTC熱敏電阻的溫度測量與控制系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

圖表SEQ圖表\*ARABIC4在這次試驗(yàn)中可以先通過試驗(yàn)得到AD轉(zhuǎn)換的值和對(duì)應(yīng)的溫度然后以AD值為橫坐標(biāo),溫度值為縱坐標(biāo)。將每個(gè)AD值和對(duì)應(yīng)的溫度制成表格,當(dāng)采集到AD值時(shí)便可以通過查表將對(duì)應(yīng)的溫度查詢出來從而實(shí)現(xiàn)了線性化處理。系統(tǒng)流程圖主程序AD轉(zhuǎn)換程序溫度報(bào)警程序SEQ溫度報(bào)警程序\*ARABIC1濾波程序顯示程序系統(tǒng)性能測試與分析測試測試儀器與設(shè)備測試器件:水銀溫度計(jì) 直流穩(wěn)壓電源 萬用表測試方案與結(jié)果測試環(huán)境與結(jié)果:將系統(tǒng)分別在20攝氏度的冷水中,室溫下,50—60設(shè)施度得溫水中,和80攝氏度的熱水中進(jìn)行測試,測試結(jié)果如下。 結(jié)論本文主要論述了基于NTC熱敏電阻的溫度測量和控制系統(tǒng)的設(shè)計(jì)。對(duì)整個(gè)系統(tǒng)的核心做了介紹。對(duì)系統(tǒng)的各個(gè)模塊做了比較深入的研究,主要包括以下幾個(gè)方面。1.對(duì)系統(tǒng)進(jìn)行了方案的論證,進(jìn)行了方案的討論,并最終確定了系統(tǒng)=方案。2.查找了系統(tǒng)上相關(guān)的芯片資料并仔細(xì)的閱讀,并查閱了大量的相關(guān)文獻(xiàn)資料。理解各個(gè)芯片的工作原理,完成各個(gè)模塊電路的設(shè)計(jì),完成開題報(bào)告。3.對(duì)系統(tǒng)的原理進(jìn)行了討論,對(duì)硬件部分各個(gè)模塊進(jìn)行充分的說明。4.用protel完成了系統(tǒng)各個(gè)模塊的原理圖設(shè)計(jì)和PCB制作。5.完成電路板的焊接,并排查焊接錯(cuò)誤,檢查系統(tǒng)電路。6.通過軟件多核心板的各個(gè)模塊進(jìn)行了測試。7.對(duì)整個(gè)設(shè)計(jì)的過程,擬出簡要的大綱,并完成詳細(xì)的論文報(bào)告。修改論文,完成最終定稿。致謝本論文是在實(shí)驗(yàn)室老師的指導(dǎo)下完成的,實(shí)驗(yàn)室在參加比賽過程中給了我們極大的幫助和支持,并在我們共同努力下取得了一定的成績。至此,我們要非常感謝老師對(duì)我的幫助。本次課題的完成也離不開實(shí)驗(yàn)室老師的指導(dǎo),在這些過程中老師給了我們極大的幫助,他們的認(rèn)真負(fù)責(zé)的態(tài)度和孜孜不倦的精神使我受益匪淺,從老師身上學(xué)習(xí)到了很多專業(yè)知識(shí),這對(duì)我們以后的工作有很大的幫助,在此,向?qū)嶒?yàn)室老師表示深深的敬意,感謝他對(duì)我們的指導(dǎo)和幫助。參考文獻(xiàn)黃賢武,鄭筱霞.傳感器原理與應(yīng)用.電子科技大學(xué)出版社,1995年五月。譚浩強(qiáng).C語言程序設(shè)計(jì).清華大學(xué)出版社,2005年七月。白駒荇,雷曉平.電子科技大學(xué)出版社,2005年九月。附錄系統(tǒng)PCB電路圖圖表SEQ圖表\*ARABIC5實(shí)驗(yàn)程序#include<reg52.h>#defineuintunsignedint#defineucharunsignedchar/**********************變量定義*************************************/sbitheat=P2^2;//水泥電阻驅(qū)動(dòng)使能sbitbeep=P2^3;//蜂鳴器使能sbitdioLE=P2^5;//八位LED鎖存器開關(guān)使能sbitdula=P2^6;//LED段選sbitwela=P2^7;//LED位選sbitadcs=P2^4;//AD片選sbitadd=P3^5;//加鍵sbitsub=P3^4;//減鍵sbitadrd=P3^7;//AD讀sbitadwr=P3^6;//AD寫ucharcodeLED_Segment[]={//0-9和攝氏度單位的段碼0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58};ucharcodeLED_Segment1[]={//0-9含小數(shù)點(diǎn)的段碼0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};ucharcodetemdata[75]={11,17,34,41,52,61,69,79,90,100,111,117,126,132,138,145,149,154,160,165,169,173,178,182,186,188,193,196,199,203,205,207,208,209,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253};//AD轉(zhuǎn)換值floatcodetemtest[75]={5.5,6.0,7.3,8.1,9.0,10.0,11.0,12.0,14.1,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,36.3,36.9,37.5,39.1,39.4,39.8,40.1,40.6,41.0,41.4,41.7,42.5,42.8,43.0,43.2,44.8,44.9,45.0,45.3,46.1,46.8,47.3,47.8,48.9,49.5,50.3,51.0,51.7,52.3,52.9,53.5,54.1,54.8,55.6,56.0,58.3,59.0,59.8,60.6,62.4,63.8,65.1,66.3,67.6};//測試點(diǎn)溫度值/*floatcodeslop[20]={2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5};*///斜率uintidatarecord[48];uintTH=30*10,TL=20*10;//溫度上下限報(bào)警設(shè)定初值ucharLPFdata;uinttemperature,max,min,average,dif;ucharflag;/**********************函數(shù)聲明*************************************/ucharAD();//AD轉(zhuǎn)換子程序voidDelay(ucharz);//延時(shí)子程序voidDisplay(uinta);//數(shù)碼管驅(qū)動(dòng)顯示子程序voidLPF();//數(shù)據(jù)濾波voidData_temperature();//AD采樣數(shù)據(jù)轉(zhuǎn)換為溫度值voidAlarm();//溫度報(bào)警voidSet_hitemperature();//設(shè)定最高報(bào)警溫度voidSet_lotemperature();//設(shè)定最低報(bào)警溫度voidSet_function(uchara);//按鍵功能判定voidDisp_record();//顯示記錄溫度值voidSet_tempreature();//溫度控制設(shè)定voidDriveled(ucharwei,ucharduan);/**********************主函數(shù)*************************************/voidmain(){// ucharflag=0; TMOD=0X11; TH0=0X4C; TL0=0; TH1=0XDC; TL1=0; EA=1; ET0=1; ET1=1; TR0=1; while(1) { //P1=0XFF; //dioLE=0; LPF();//將采集到的數(shù)據(jù)進(jìn)行濾波 Data_temperature();//將濾波后的數(shù)據(jù)轉(zhuǎn)換成溫度值 Set_function(flag);//按鍵功能判定 //Data_temperature();//將濾波后的數(shù)據(jù)轉(zhuǎn)換成溫度值 Alarm();//調(diào)用報(bào)警程序當(dāng)溫度超過設(shè)定上下限時(shí)變報(bào)警 if(adwr==0)//按功能鍵切換工作狀態(tài) { Delay(5); if(adwr==0) { flag++; if(flag>5) { flag=0; } while(adwr==0); } } if(adrd==0)//OK鍵 { Delay(5); if(adrd==0) { flag=0; while(adrd==0); } } if(flag==5)//當(dāng)進(jìn)入溫度控制模式時(shí)啟動(dòng)定時(shí)器,PWM控制加熱 TR1=1; else TR1=0; }}/**********************延時(shí)函數(shù)*************************************/voidDelay(ucharz){ ucharx,y; for(y=10;y>0;y--) for(x=z;x>0;x--); }/**********************AD采樣函數(shù)*************************************/ucharAD() { ucharvalue; adcs=0; //選通AD轉(zhuǎn)換器片選adwr=0; //AD寫入(主要是為了啟動(dòng)AD轉(zhuǎn)換)Delay(1);adwr=1; P1=0xff;//讀取P1口之前先給其寫全1adrd=0;//AD讀使能 value=P1; //AD數(shù)據(jù)讀取賦給P1口adrd=1; adcs=1; P1=0xff; return(value);}/**********************數(shù)碼管驅(qū)動(dòng)顯示函數(shù)*************************************/voidDisplay(uinta){ dula=0; //送溫度值十位 P0=0xff; wela=1; P0=0xfe;// wela=0; P0=0; dula=1; P0=LED_Segment[a/100]; dula=0; Delay(10); dula=0;//送溫度值個(gè)位,含小數(shù)點(diǎn) P0=0xff; wela=1; P0=0xfd;// wela=0; P0=0; dula=1; P0=LED_Segment1[a/10%10]; dula=0; Delay(10); dula=0;//送溫度值小數(shù)點(diǎn)位 P0=0xff; wela=1; P0=0xfb;// wela=0; P0=0; dula=1; P0=LED_Segment[a%10]; dula=0; Delay(10); dula=0;//送攝氏度單位 P0=0xff; wela=1; P0=0xf7;// wela=0; P0=0; dula=1; P0=LED_Segment[10]; dula=0; Delay(10);}/**********************數(shù)據(jù)濾波動(dòng)函數(shù)*************************************/voidLPF(){ uchartemp[7],a; uchari,j,k; for(i=0;i<=6;i++)//數(shù)據(jù)采集存儲(chǔ) { temp[i]=AD(); Delay(5); } for(j=0;j<=6;j++)//按小到大排序 { for(k=j;k<=6;k++) { if(temp[j]>=temp[k]) { a=temp[j]; temp[j]=temp[k]; temp[k]=a; } } } temp[0]=temp[6]=0;//去掉最大最小值 LPFdata=(temp[1]+temp[2]+temp[3]+temp[4]+temp[5])/5;//求平均值}/**********************AD轉(zhuǎn)換值轉(zhuǎn)溫度值函數(shù)*************************************/voidData_temperature(){ floatb; uchari; for(i=0;i<=74;i++) { if((LPFdata>=temdata[i])&(LPFdata<temdata[i+1])) { b=temtest[i]+(LPFdata-temdata[i])*((temtest[i+1]-temtest[i])/(temdata[i+1]-temdata[i])); break; } } temperature=b*10;//強(qiáng)制轉(zhuǎn)化為整形}/**********************溫度報(bào)警函數(shù)*************************************/voidAlarm(){ if((temperature>=TH)|(temperature<=TL)) { //dioLE=1; P1=0; beep=0; } else { if((temperature<(TH-10))&(temperature>TL+10)) //回差 { P1=0xff; beep=1; } } }/*****************************設(shè)定最高報(bào)警溫度**********************************/voidSet_H(){ Display(TH); if(add==0) { Delay(10); if(add==0) { TH=TH+10; } while(add==0);//防止按鍵重入 } if(sub==0) { Delay(10); if(sub==0) { TH=TH-10; } while(sub==0);//防止按鍵重入 } Driveled(0xef,0x76);//顯示H標(biāo)志}/*********************************************設(shè)定最低報(bào)警溫度*****************************************/voidSet_L(){ Display(TL); if(add==0) { Delay(10); if(add==0) { TL=TL+10; if(TL+30>=TH) { TL=TH-40;//最低報(bào)警溫度應(yīng)小于最高報(bào)警溫度-4 } } while(add==0);//防止按鍵重入 } if(sub==0) Delay(10); if(sub==0) { TL=TL-10; } while(sub==0);//防止按鍵重入 Driveled(0xef,0x38);//顯示“L”標(biāo)志}ucharp;//占空比控制/*********************************設(shè)定控制溫度*****************************************/uintset_value=400;//溫度設(shè)定初值40攝氏度voidSet_tempreature(){ if(add==0) { Delay(10); if(add==0) { set_value=set_value+10; } while(add==0);//防止按鍵重入 } if(sub==0) { Delay(10); if(sub==0) { set_value=set_value-10; } while(sub==0);//防止按鍵重入 }/* if((set_value-temperature)>100) { p=100; } else { if((set_value-temperature)>50) p=50; else { if(set_value>temperature) p++; else p--; } } */ /* if(set_value>temperature) { if((set_value-temperature)>100) { p=100; } else { if((set_value-temperature)>50) { p=50; } else { p++; } } } else { p=0; }*/ if(set_value>temperature) { if((set_value-temperature)>=100) { p=200; } elseif((set_value-temperature)>=80) { p=160; } elseif((set_value-temperature)>=60) { p=120; } elseif((set_value-temperature)>=40) { p=80; } elseif((set_value-temperature)>=20) { p=40; } elseif((set_value-temperature)>=10) { p=10; } else { p++; if(p>200) { p=200; } } } else p=0; Display(temperature);//顯示測定溫度 dula=0; //顯示設(shè)定溫度 P0=0xff; wela=1; P0=0xef; wela=0; P0=0; dula=1; P0=LED_Segment[set_value/100]; dula=0; Delay(10); dula=0;//送溫度值個(gè)位,含小數(shù)點(diǎn) P0=0xff; wela=1; P0=0xdf; wela=0; P0=0; dula=1; P0=LED_Segment1[set_value/10%10]; dula=0; Delay(10); dula=0; //送溫度值小數(shù)位 P0=0xff; wela=1; P0=0xbf;// wela=0; P0=0; dula=1; P0=LED_Segment[set_value%10]; dula=0; Delay(10); dula=0;//送攝氏度單位 P0=0xff; wela=1; P0=0x7f; wela=0; P0=0; dula=1; P0=LED_Segment[10]; dula=0; Delay(10); }voidDriveled(ucharwei,ucharduan){ dula=0; P0=0xff; wela=1; P0=wei; wela=0; P0=0; dula=1; P0=duan; dula=0; Delay(10);}uchari;voidDisp_record(){ Display(record[i]);//顯示記錄值 Driveled(0xef,0x40);//顯示- Driveled(0xdf,LED_Segment[(i+1)/10]);//顯示第i個(gè)值 Driveled(0xbf,LED_Segment[(i+1)%10]); if(add==0) Delay(5); if(add==0) { i++; if(i>47) i=0; } while(add==0); if(sub==0) Delay(5); if(sub==0) { i--; if(i==255) i=47; } while(sub==0);}/*************************顯示平均溫度,最大最小溫度,最大溫差******************************/ucharii;voidDisp_cal(){ if(add==0)//進(jìn)入后按加鍵切換顯示查看平均、最大最小、最大溫差值 Delay(40); if(add==0) { ii++; if(ii>3) ii=0; }while(add==0); switch(ii) { case0:Display(average); Driveled(0xef,0x40); Driveled(0xdf,0x40); Driveled(0xbf,0x40); break; case1:Display(max); Driveled(0xef,0x1); Driveled(0xdf,0x1); Driveled(0xbf,0x1); break; case2:Display(min); Driveled(0xef,0x8); Driveled(0xdf,0x8); Driveled(0xbf,0x8); break; case3:Display(dif); Driveled(0xef,0x5e); Driveled(0xdf,0x06); Driveled(0xbf,0x71); break; } }/**********************************按鍵功能判斷*****************************************/voidSet_function(uchara){ switch(a) { case0:Display(te

溫馨提示

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

評(píng)論

0/150

提交評(píng)論