基于51單片機壓力檢測系統(tǒng)設(shè)計_第1頁
基于51單片機壓力檢測系統(tǒng)設(shè)計_第2頁
基于51單片機壓力檢測系統(tǒng)設(shè)計_第3頁
基于51單片機壓力檢測系統(tǒng)設(shè)計_第4頁
基于51單片機壓力檢測系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

#頁共61頁致謝本次設(shè)計是在導(dǎo)師xxx老師的悉心指導(dǎo)下完成的?;叵氪蠖W(xué)習(xí)高頻電子技術(shù),xx老師的兢兢業(yè)業(yè),認真負責一直感染著我。在畢業(yè)設(shè)計開始階段,xx老師對我的學(xué)習(xí),設(shè)計實施選擇創(chuàng)造了許多有利條件,在方案設(shè)計中也給了我很多的建議和靈感。當我畏難時,xx老師一直鼓勵著我,才能令我將畢設(shè)功能完整的實現(xiàn)。xx老師他嚴謹細致的工作作風(fēng)、寬以待人的高尚品質(zhì)和諄諄教誨使我終身難忘。也感謝四年來對我傳業(yè)解惑,育我成材的各位老師,感謝你們的辛勞與無私。在此,向這些為學(xué)生成長付出大量心血的導(dǎo)師表示衷心的感謝!還要感謝在設(shè)計過程中幫助過我的所有同學(xué)和朋友們。在學(xué)習(xí)中我們互相幫助,互相鼓勵,使我能夠順利的完成我的學(xué)業(yè)。是你們的幫助使我發(fā)現(xiàn)設(shè)計上的誤區(qū),使我能及時的發(fā)現(xiàn)問題把設(shè)計順利的進行下去;是你們的監(jiān)督使我在設(shè)計過程中按時完成既定任務(wù)。本次設(shè)計尤其要感謝班上的蔡濤同學(xué),在我軟件設(shè)計上給了我很大的幫助,幫我解決了很多問題。沒有你們的幫助我不可能這樣順利地結(jié)稿。感謝陪伴我四年的同學(xué),讓我四年的大學(xué)生活充滿精彩,在此,請接受我真誠的謝意。最后,我還要特別感謝我的家人,正是他們的支持和教育讓我有機會坐在大學(xué)的課堂里,完成本科四年的學(xué)習(xí)。感謝母校xx大學(xué)給了我走入社會的資本和心理準備,讓我終生受益。

附錄A附:電路總原理圖3∕n∣wιlt*kpr4<J??tι"k,*rnΓ,∣,Γ"r*,PrrnΓ,“r,^,r?',r,^,vs?RΛY-Rs9do^s?^--9.R『邑1<~.?c?tmFgcw^c^w^rs.EW-t.5swg二w,(寫s?S^^?‰^-AR.g??-。玄Γ<.E?thNH2QU^sBκ^,θn?osSΛ^S-^h2Y豆w)r.-ft『國豆BM-t.κ亙MXΠOAδΛ#uftHeA^S^^E?lftI??EMmiku*oxi?t?8?^iW出世樂0v肯8ai?αα?Y3SVBBω>-?-穹附錄B附:系統(tǒng)主程序//定義標識volatilebitFlagTest=0; //定時測試標志,每0.5秒置位,測完清0volatilebitFlagKeyPress=0;//有鍵按下標志,處理完畢清0volatilebitFlagSetPrice=0;//價格設(shè)置狀態(tài)標志,設(shè)置好為1。//顯示用變量intCounter=0;unsignedlongidatalimit=9999;//閾值設(shè)置unsignedcharidatalocal[4]={68,84,92,100};unsignedcharidatalocal_index=0;//稱重用變量unsignedlongidataFullScale;//滿量程A/D值/1000//歷史記錄unsignedlongidatahistory[8]={0};intidatahisCount=0;voidmain(void){Rom_CS=1;initial_lcd();EA=0;beep=1;alert=1;Timer0_Init();//初始化完成,開中斷EA=1;//背光LedA=1;clear_screen();//clearalldots壓力檢測系統(tǒng)loA/Ding...To_Zero();delay(120);funcList();}//整型轉(zhuǎn)字符串的函數(shù),轉(zhuǎn)換范圍0--65536voidint2str(intx,char*str){inti=1;inttmp=10;while(x/tmp!=0){i++;tmp*=10;}tmp=x;while(i>1){str[--i]='0'+(tmp%10);tmp/=10;}str[0]=tmp+'0';}//重新找回零點,每次測量前調(diào)用voidTo_Zero(){FullScale=ReA/DCount()/1000;}//顯示重量,單位kg,兩位整數(shù),三位小數(shù)voiddisplayPress(unsignedlongweight,unsignedcharlineNum){unsignedinti,j;//weight單位是gi=weight/1000; //得到整數(shù)部分j=weight-i*1000;//得到小數(shù)部分memset(str1,0,6);int2str(i,str1);if(i>=10){display_GB2312_string(lineNum,60,str1);}else{display_GB2312_string(lineNum,68,str1);}memset(str1,0,6);int2str(j,str1);if(j<10){display_GB2312_string(lineNum,100,str1);}elseif(j<100){display_GB2312_string(lineNum,92,str1);}else{display_GB2312_string(lineNum,84,str1);}}//定時器0初始化voidTimer0_Init(){ET0=1; //允許定時器0中斷TMOD=1; //定時器工作方式選擇TL0=0x06;TH0=0xf8; //定時器賦予初值TR0=1; //啟動定時器}//定時器0中斷voidTimer0_ISR(void)interrupt1using0{TL0=0x06;TH0=0xf8; //定時器賦予初值//每0.5秒鐘刷新重量Counter++;if(Counter>=400){FlagTest=1;Counter=0;}}voidfuncList(){unsignedlongpress=0;unsignedcharkeyValue=0;unsignedcharflag=0;interface();while(1){if(FlagTest==1){//To_Zero();press=getPress();if(press>limit){beep=0;alert=0;}else{beep=1;alert=1;

}displayPress(press,1);}if(beep==1){keyValue=Getkeyboard();if(FlagKeyPress==0){FlagKeyPress=1;switch(keyValue){save(press);break;clear();

break;To_Zero();break;setLimit();clear_screen();interface();break;查詢歷史數(shù)據(jù)

數(shù)據(jù)統(tǒng)計分析查詢歷史數(shù)據(jù)查詢歷史數(shù)據(jù)

數(shù)據(jù)統(tǒng)計分析查詢歷史數(shù)據(jù)

數(shù)據(jù)統(tǒng)計分析flag=0;break;flag=1;break;case12:if(flag==0)checkHistory();elseanalysis();flag=0;clear_screen();interface();break;default:break;}FlagKeyPress=0;}delay(20);}}}voidinterface(){壓力:閾值:displayPress(limit,3);查詢歷史數(shù)據(jù)數(shù)據(jù)統(tǒng)計分析}unsignedlonggetPress(){unsignedlongweight=0;unsignedlongA/Dval=0;//稱重,得到重量值weight,單位為gA/Dval=ReA/DCount();weight=FullScale-A/Dval/1000;if(weight>0x8000)weight=0;weight=10000*weight/FullScale;weight=weight*RATIO;returnweight;}voidcheckHistory(){unsignedcharkeyValue=99;clear_screen();if(hisCount==0){當前無任何

歷史數(shù)據(jù)按return鍵返回while(1){keyValue=Getkeyboard();if(keyValue==8)break;delay(20);}}else{if(hisCount<=4){firstPage();while(1){keyValue=Getkeyboard();if(keyValue==8)break;delay(20);}}elseif(hisCount>4){firstPage();while(1){keyValue=Getkeyboard();if(keyValue==8)break;elseif(keyValue==10)secondPage();elseif(keyValue==6)firstPage();}}}return;}voidfirstPage(){chari;clear_screen();for(i=1;i<=hisCount;i++){memset(str1,0,6);int2str(i,str1);display_GB2312_string(i%5*2-1,17,str1);displayPress(history[i-1],i%5*2-1);if(i==4)break;}return;}voidsecondPage(){chari;clear_screen();for(i=5;i<=hisCount;i++){memset(str1,0,6);int2str(i,str1);display_GB2312_string((i-4)%5*2-1,17,str1);displayPress(history[i-1],(i-4)%5*2-1);}return;}voidanalysis(){unsignedcharkeyValue=0;unsignedlongidatatemp[9];intidatanum_num[4];intidatanum_index[4];inti,j,k,a,b;intidatazhongwei,junzhi,zhongshu;memset(temp,0,9);memset(num_index,0,4);zhongwei=0;junzhi=0;zhongshu=0;for(i=0;i<hisCount;i++)temp[i]=history[i];for(i=0;i<4;i++)num_num[i]=1;//排序--獲得最大值,最小值if(hisCount>1){for(i=0;i<hisCount-1;i++){for(j=0;j<hisCount-1-i;j++){if(temp[j]>=temp[j+1]){temp[8]=temp[j];temp[j]=temp[j+1];temp[j+1]=temp[8];}}}}//均值for(i=0;i<hisCount;i++){//temp[8]+=temp[i]/hisCount;junzhi+=(int)temp[i];}if(hisCount!=0)junzhi=junzhi/hisCount;//中位數(shù)if(hisCount!=0){if(hisCount%2==1){zhongwei=(int)temp[hisCount/2];}else{a=(int)temp[hisCount/2-1];b=(int)temp[hisCount/2];zhongwei=(a+b)/2;//temp[9]=b;}}//眾數(shù)if(hisCount>1){k=0;for(i=0;i<hisCount-1;i++){for(j=i;j<hisCount-1;j++){if(history[j]!=history[j+1])break;num_num[k]++;num_index[k]=i;}if(i!=j)k++;i=j;}}if(k!=0){i=0;j=i;if(k>1){while(1){if(num_num[i]<=num_num[i+1])j=i+1;if(i+1==k-1)break;i++;}}}clear_screen();均值:displayPress(junzhi,1);最大值:if(hisCount>1)displayPress(temp[hisCount-1],3);elsedisplayPress(temp[0],3);最小值:displayPress(temp[0],5);中位數(shù):displayPress(zhongwei,7);while(1){keyValue=Getkeyboard();if(keyValue==8)break;elseif(keyValue==6){clear_screen();均值:displayPress(junzhi,1);最大值:if(hisCount>1)displayPress(temp[hisCount-1],3);elsedisplayPress(temp[0],3);最小值:displayPress(temp[0],5);中位數(shù):displayPress(zhongwei,7);}elseif(keyValue==10){clear_screen();if(k==0||k==4||((k==1)&&(num_num[0]==hisCount))||((k==2)&&(hisCount==num_num[0]+num_num[1])))無眾數(shù)else{眾數(shù)for(i=0;i<k;i++){if(num_num[i]==num_num[j]){a=num_num[i];zhongshu=(int)temp[num_index[i]];memset(str1,0,6);int2str(a,str1);次display_GB2312_string((i+1)*2+1,1,str1);displayPress(zhongshu,(i+1)*2+1);}}}}}return;}voidsetLimit(){unsignedcharidatakeyValue=99;unsignedcharidataflag=0;local_index=0;clear_screen();閾值設(shè)置

閾值:displayPress(limit,3);while(1){keyValue=Getkeyboard();if(flag==0){flag=1;if(keyValue==9){if(local_index>0){local_index--;}}elseif(keyValue==11){if(local_index<3){local_index++;}}elseif(keyValue==2){local_index=0;limit=0;閾值:}elseif(keyValue==5||keyValue==7)compute(keyValue);elseif(keyValue==12)break;flag=0;}delay(20);}delay(20);return;}voidcompute(unsignedcharkey){unsignedlongidataindex_num[4]={

溫馨提示

  • 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

提交評論