通信電子專業(yè)畢業(yè)設(shè)計基于MCS-51系列單片機智能超聲波測距儀的設(shè)計與實現(xiàn)_第1頁
通信電子專業(yè)畢業(yè)設(shè)計基于MCS-51系列單片機智能超聲波測距儀的設(shè)計與實現(xiàn)_第2頁
通信電子專業(yè)畢業(yè)設(shè)計基于MCS-51系列單片機智能超聲波測距儀的設(shè)計與實現(xiàn)_第3頁
通信電子專業(yè)畢業(yè)設(shè)計基于MCS-51系列單片機智能超聲波測距儀的設(shè)計與實現(xiàn)_第4頁
通信電子專業(yè)畢業(yè)設(shè)計基于MCS-51系列單片機智能超聲波測距儀的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEXIV畢業(yè)設(shè)計基于MCS-51系列單片機智能超聲波測距儀的設(shè)計與實現(xiàn)一.選題的背景及意義由于超聲測距是一種非接觸檢測技術(shù),不受光線、被測對象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護、不污染、高可靠、長壽命等特點。因此可廣泛應(yīng)用于紙業(yè)、礦業(yè)、電廠、化工業(yè)、水處理廠、污水處理廠、農(nóng)業(yè)用水、環(huán)保檢測、食品(酒業(yè)、飲料業(yè)、添加劑、食用油、奶制品)、防汛、水文、明渠、空間定位、公路限高等行業(yè)中。可在不同環(huán)境中進行距離準(zhǔn)確度在線標(biāo)定,可直接用于水、酒、糖、飲料等液位控制,可進行差值設(shè)定,直接顯示各種液位罐的液位、料位高度。因此,超聲在空氣中測距在特殊環(huán)境下有較廣泛的應(yīng)用。利用超聲波檢測往往比較迅速、方便、計算簡單、易于實現(xiàn)實時控制,并且在測量精度方面能達到工業(yè)實用的指標(biāo)要求,因此為了使移動機器人能夠自動躲避障礙物行走,就必須裝備測距系統(tǒng),以使其及時獲取距障礙物的位置信息(距離和方向)。因此超聲波測距在移動機器人的研究上得到了廣泛的應(yīng)用。同時由于超聲波測距系統(tǒng)具有以上的這些優(yōu)點,因此在汽車倒車?yán)走_的研制方面也得到了廣泛的應(yīng)用。設(shè)計任務(wù)及要求項目設(shè)計的是一款智能超聲波測距儀,要求主要采用MCS-51系列單片機作為主控芯片,能夠?qū)崿F(xiàn)超聲波測距,數(shù)據(jù)顯示,參數(shù)設(shè)置等功能。具體要求如下:(1)完成鍵盤的設(shè)計,分配好各個按鍵輸入對應(yīng)單片機各口的控制信息;(2)完成數(shù)碼管顯示電路的設(shè)計,實現(xiàn)具體的控制、提示信息的顯示;(3)完成超聲波測距電路的設(shè)計,使其能夠準(zhǔn)確測量距離;(4)還可以通過按鍵設(shè)置下限報警距離,假如測量的距離低于設(shè)置的報警值則通過蜂鳴器發(fā)聲提醒用戶超出允許范圍。三、項目分析與方案論證1.過程分析分析要設(shè)計的智能超聲波測距儀該有的系統(tǒng)的控制要求。1)具有數(shù)據(jù)采集功能2)具有按鍵控制功能3)能夠用四位數(shù)碼管顯示4)具有報警功能5)能夠指示運行狀態(tài)6)具有智能模式,假如測量的距離低于設(shè)置的報警值則通過蜂鳴器發(fā)聲提醒用戶超出允許范圍。2.方案論證選擇方案1:單片機是一種集成電路芯片,單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上,它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件,在工業(yè)控制領(lǐng)域廣泛應(yīng)用。方案2:可編程序控制器(PLC)是綜合了計算機技術(shù)、自動控制技術(shù)和通訊技術(shù)而發(fā)展起來的一種新型的工業(yè)控制裝置,它具有可靠性高、編程簡單、維護方便等優(yōu)點,已在工業(yè)控制領(lǐng)域得到廣泛地應(yīng)用。若利用PLC來控制智能窗簾,成本較高,而且設(shè)備龐大,占用空間較多。因此,我們選擇方案1單片機來實現(xiàn)的智能超聲波測距儀的設(shè)計。四、項目設(shè)計本項目利用單片機、超聲波傳感器、蜂鳴器實現(xiàn)了智能超聲波測距儀的設(shè)計,具有利用超聲波特性測距的功能,其具體方框圖如圖1所示:圖1智能超聲波測距儀結(jié)構(gòu)圖五、項目實施過程1.成員任務(wù)安排從接受任務(wù)后具體成員的任務(wù)安排及時間安排如表1所示:表1任務(wù)實施計劃實施計劃時間主要任務(wù)負(fù)責(zé)人階段成果2023.4-2023.5功能分析,電路及系統(tǒng)控制部分的設(shè)計實現(xiàn)段世行初步方向確立2023.4-2023.5程序設(shè)計調(diào)試、樣機的修改段世行、馮新智樣機和程序完成2023.5-2023.6系統(tǒng)整體調(diào)試以及相關(guān)實驗資料整理陳嘉新、李笑笑、孫靜實體完成2023.5-2023.6項目所有資料的完善陳嘉新、李笑笑、孫靜總體完成2.原理圖繪制主控制最小系統(tǒng)電路如圖2所示。圖2最小系統(tǒng)硬件電路總設(shè)計見圖3,從以上的分析可知在本設(shè)計中要用到如下器件:STC89C52、超聲波傳感器、按鍵、四位數(shù)碼管、蜂鳴器等一些單片機外圍應(yīng)用電路。其中D1為電源工作指示燈。電路中用到3個按鍵,一個是設(shè)定鍵,一個加鍵,一個減鍵。圖3總設(shè)計電路圖3.硬件焊接根據(jù)原理圖焊接元器件,形成的硬件電路板如圖3所示:圖3智能超聲波測距儀電路板4.智能超聲波測距儀的軟件設(shè)計程序流程圖如圖4所示:系統(tǒng)初始化系統(tǒng)初始化報警結(jié)束測得距離與設(shè)定值比較,小于距離比較,報警是否持續(xù)開始啟動報警電路開始報警再次檢測等待下次報警結(jié)束YNNYYN圖4流程圖5.智能超聲波測距儀的調(diào)試(1)調(diào)試步驟1)按照原理圖連接。2)編程:編寫智能超聲波測距儀的程序。3)將程序下載到STC89C52單片機,電路上電運行。。4)觀察并記錄能否實現(xiàn)程序的功能,如有錯誤,檢查硬件接線是否錯誤,如果連接正確,再檢查程序,直到調(diào)試成功為止。(2)調(diào)試要點1)如果在硬件調(diào)試時,某些元器件沒起到作用,應(yīng)該用萬用表測量元器件的好壞,還有可能是電阻阻值選用不合理等問題。2)將設(shè)計好的程序下載到STC89C52單片機中,首先要做的就是仔細(xì)檢查程序,是否出現(xiàn)語法錯誤,延時時間是否算對,主程序是否成功調(diào)用子程序。程序一般先在仿真軟件上調(diào)試,然后再在焊接成功的電路板上調(diào)試。六、總結(jié)與體會本次學(xué)期從選題到設(shè)計,原理圖的繪制到PCB圖的設(shè)計,程序的設(shè)計以及軟硬件的調(diào)試等工作,進一步掌握了電子產(chǎn)品設(shè)計的步驟和方法,學(xué)會綜合利用模擬電子技術(shù)、數(shù)字電路技術(shù)、單片機原理與應(yīng)用等知識,并了解超聲波測距的原理,熟練并深刻掌握且應(yīng)用了DXP軟件、keil軟件,也對單片機燒寫器的理解和應(yīng)用更透徹了,更是歷時一個學(xué)期之久。設(shè)計項目最終實現(xiàn)了預(yù)定的功能,外觀也是比較漂亮和時尚的,應(yīng)該說取得了一定的成果。這次學(xué)期項目感受最深的是團隊合作,畢竟個人能力有限,掌握的知識不夠全面。所以在項目執(zhí)行過程中,團隊分工合作,在每個時間節(jié)點積極完成所需要完成的工作。另外,在這里要感謝蘇老師的認(rèn)真指導(dǎo),經(jīng)常與我們小組交流設(shè)計理念,并且在一定程度上幫助了我們大多數(shù)難題,包括程序上的、硬件上的一些問題。由于時間的關(guān)系,設(shè)計的智能超聲波測距儀雖然完成了一定的功能,但還有很多地方是值得改進的,今后還可以根據(jù)需要加強在功能及外觀上的設(shè)計。實體安裝設(shè)計圖:程序:#include<reg52.h> //調(diào)用單片機頭文件#defineucharunsignedchar//無符號字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號整型宏定義 變量范圍0~65535#include<intrins.h>//數(shù)碼管段選定義012345 6 7 8 9 ucharcodesmg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0}; //斷碼uchardis_smg[4]={0xff,0xff,0xff,0xff};//數(shù)碼管位選定義sbitsmg_we1=P3^4; //數(shù)碼管位選定義sbitsmg_we2=P3^5;sbitsmg_we3=P3^6;sbitsmg_we4=P3^7;sbitc_send=P3^2; //超聲波發(fā)射sbitc_recive=P3^3; //超聲波接收sbitbeep=P2^3;//蜂鳴器IO口定義uintflag_300ms=1;longdistance; //距離uintset_d=50; //距離ucharflag_csb_juli;//超聲波超出量程uintflag_time0;//用來保存定時器0的時候的ucharmenu_1;//菜單設(shè)計的變量/***********************1ms延時函數(shù)*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/********************獨立按鍵程序*****************/ucharkey_can; //按鍵值voidkey() //獨立按鍵程序{ staticucharkey_new;//key_new這個變量的功能是做按鍵松手檢測的 key_can=0;//按鍵值還原 P2|=0x07; if((P2&0x07)!=0x07) //按鍵按下 { delay_1ms(1); //按鍵消抖動 if(((P2&0x07)!=0x07)&&(key_new==1)) { //確認(rèn)是按鍵按下 key_new=0; //key_new=0說明按鍵已按下 switch(P2&0x07) { case0x06:key_can=3;break; //得到k3鍵值 case0x05:key_can=2;break; //得到k2鍵值 case0x03:key_can=1;break; //得到k1鍵值 } } } else key_new=1; //key_new=1說明按鍵已經(jīng)松開了}/****************按鍵處理顯示函數(shù)***************/voidkey_with(){ if(key_can==1) //設(shè)置鍵 { menu_1++; if(menu_1>=2) { menu_1=0; } } if(menu_1==1) //設(shè)置報警 { if(key_can==2) { set_d++; //加1 if(set_d>500) set_d=500; } if(key_can==3) { set_d--; //減1 if(set_d<=1) set_d=1; } dis_smg[0]=smg_du[set_d%10]; //取小數(shù)顯示 dis_smg[1]=smg_du[set_d/10%10];//取個位顯示 dis_smg[2]=smg_du[set_d/100%10]&0xdf;//取十位顯示 dis_smg[3]=0x60; //a } }/****************報警函數(shù)***************/voidclock_h_l(){ if(distance<=set_d)//低于設(shè)置的距離就會報警 { beep=~beep; //蜂鳴器報警 } else { beep=1; //取消報警 } }/***********************數(shù)碼位選函數(shù)*****************************/voidsmg_we_switch(uchari){ switch(i) { case0:smg_we1=0;smg_we2=1;smg_we3=1;smg_we4=1;break; case1:smg_we1=1;smg_we2=0;smg_we3=1;smg_we4=1;break; case2:smg_we1=1;smg_we2=1;smg_we3=0;smg_we4=1;break; case3:smg_we1=1;smg_we2=1;smg_we3=1;smg_we4=0;break; } }/***********************數(shù)碼顯示函數(shù)*****************************/voiddisplay(){ staticuchari; i++; if(i>=4) i=0; smg_we_switch(i); //位選 P1=dis_smg[i]; //段選 }/******************小延時函數(shù)*****************/voiddelay(){ _nop_(); //執(zhí)行一條_nop_()指令就是1us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();}/*********************超聲波測距程序*****************************/voidsend_wave(){ c_send=1; //10us的高電平觸發(fā) delay(); c_send=0; TH0=0; //給定時器0清零 TL0=0; TR0=0; //關(guān)定時器0定時 while(!c_recive); //當(dāng)c_recive為零時等待 TR0=1; while(c_recive) //當(dāng)c_recive為1計數(shù)并等待 { flag_time0=TH0*256+TL0; if((flag_time0>40000))//當(dāng)超聲波超過測量范圍時,顯示3個888 { TR0=0; flag_csb_juli=2; distance=888; break; } else { flag_csb_juli=1; } } if(flag_csb_juli==1) { TR0=0; //關(guān)定時器0定時 distance=flag_time0; //讀出定時器0的時間 distance*=0.017;//0.017=340M/2=170M=0.017M算出來是米 if((distance>600)) //距離=速度*時間 { distance=888; //如果大于6m就超出超聲波的量程 } }}/*********************定時器0、定時器1初始化******************/voidtime_init() { EA=1; //開總中斷 TMOD=0X11; //定時器0、定時器1工作方式1 ET0=0; //關(guān)定時器0中斷 TR0=1; //允許定時器0定時 ET1=1; //開定時器1中斷 TR1=1; //允許定時器1定時 }/***************主函數(shù)***

溫馨提示

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

評論

0/150

提交評論