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

下載本文檔

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

文檔簡(jiǎn)介

湖南科技大學(xué)課程設(shè)計(jì)-24-附錄附錄一:系統(tǒng)原理圖附錄二:仿真圖附錄三:系統(tǒng)程序#include<reg52.h> //52系列頭文件#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintsbitds=P3^4;sbitdula=P2^6;sbitbeep=P1^4; //定義蜂鳴器uinttemp,t,w; //定義整型的溫度數(shù)據(jù)ucharflag;floatf_temp; //定義浮點(diǎn)型的溫度數(shù)據(jù)//uintlow; //定義溫度下限值是溫度乘以10后的結(jié)果uinthigh=100; //定義溫度的上限值sbitjdq=P1^0; //控制發(fā)光二極管sbitled=P1^1; //控制發(fā)光二極管sbits1=P3^5;sbits2=P3^6;sbits3=P3^7;ucharflag1,flag2,flag3,flag4,s1num;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6}; //共陽(yáng)數(shù)碼管段碼表ucharcodetable1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//帶小數(shù)點(diǎn)的編碼voiddelay(ucharz) //延時(shí)函數(shù){uchara,b;for(a=z;a>0;a--)for(b=100;b>0;b--);}voidinit(){/*EA=1;ET1=1;TR1=1;TMOD=0x10;TH1=(65536-4000)/256;TL1=(65536-4000)%256;*/flag=0;high=100;jdq=1;}voiddidi(){beep=0;led=0;delay(500);beep=1;led=1;delay(500);}voiddsreset(void) //DS18b20復(fù)位,初始化函數(shù){uinti;ds=0;i=103; //延時(shí)最短480uswhile(i>0)i--;ds=1; //等待16-60us,收到低電平一個(gè)約60-240us則復(fù)位成功i=4;while(i>0)i--;}bittempreadbit(void) //讀1位數(shù)據(jù)函數(shù){uinti;bitdat;ds=0;i++;ds=1;i++;i++; //i++起到延時(shí)作用dat=ds;i=8;while(i>0)i--;return(dat);}uchartempread(void) //讀1字節(jié)的數(shù)據(jù)函數(shù){uinti,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1);//讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在dat里}return(dat);}voidtempwritebyte(uchardat)//向DS18B20寫(xiě)一個(gè)字節(jié)的數(shù)據(jù)函數(shù){uinti;ucharj;bittestb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) //寫(xiě)1 { ds=0; i++;i++; ds=1; i=8; while(i>0) i--; }else //寫(xiě)0{ ds=0; i=8; while(i>0)i--; ds=1; i++;i++; }}}voidtempchange(void) //DS18B20開(kāi)始獲取溫度并轉(zhuǎn)換{dsreset();delay(1);tempwritebyte(0xcc); //寫(xiě)跳過(guò)讀ROM指令tempwritebyte(0x44); //寫(xiě)溫度轉(zhuǎn)換指令}uintget_temp() //讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù){uchara,b;dsreset();delay(1);tempwritebyte(0xcc); //寫(xiě)跳過(guò)讀ROM指令tempwritebyte(0xbe); //寫(xiě)溫度轉(zhuǎn)換指令a=tempread(); //讀低8位b=tempread(); //讀高8位temp=256*b+a;f_temp=temp*0.0625; //溫度在寄存器中為12位,分辨率為0.0625temp=f_temp*10+0.5; //乘以10表示小數(shù)點(diǎn)后面只取一位returntemp; //temp是整型}voidkeyscan(){ if(s1==0) {P2=0xff; delay(5); if(s1==0) { while(!s1); s1num++; if(s1num==1) { flag=1; } if(s1num==2) { s1num=0; flag=0; } } } if(s1num==1) { flag=1; if(s2==0) { delay(5); if(s2==0) { while(!s2); high+=10; if(high==1000) high=100; } } if(s3==0) { delay(5); if(s3==0) { while(!s3); high-=10; if(high==0) high=100; } } }}voiddisplay(uinttem){uchari;keyscan();for(i=0;i<50;i++){t++;if(flag==0){if(t==4)t=0;switch(t){case0:P0=table[tem/100];P2=0x01;break;case1:P0=table1[tem%100/10];P2=0x02;break;case2:P0=table[tem%10];P2=0x04;break;}delay(30);}if(flag==1){if(t==4)t=0;switch(t){case1:P0=table[high/100];P2=0x01;break;case2:P0=table[high%100/10];P2=0x02;break;case3:P0=table[high%10];P2=0x04;break;}delay(30);}P2=0;}}voidmain() //主函數(shù){uinttp;init();while(1){tempchange(); //溫度轉(zhuǎn)換函數(shù)tp=get_temp();display(tp);if(tp<(high-10)){jdq=0; didi();}if((

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論