汽車單片機(jī)技術(shù) 課件 4.3 超聲波測距顯示_第1頁
汽車單片機(jī)技術(shù) 課件 4.3 超聲波測距顯示_第2頁
汽車單片機(jī)技術(shù) 課件 4.3 超聲波測距顯示_第3頁
汽車單片機(jī)技術(shù) 課件 4.3 超聲波測距顯示_第4頁
汽車單片機(jī)技術(shù) 課件 4.3 超聲波測距顯示_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

超聲波測距顯示目錄超聲波測距原理傳感器的使用工作電壓:DC5V靜態(tài)電流:小于2mA電平信號輸出:高5V,低0V感應(yīng)角度:不大于15度探測距離:2cm-450cm(1)采用IO觸發(fā)測距,給至少10us的高電平信號;(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;(3)有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間.(4)單片機(jī)將得到的數(shù)據(jù)進(jìn)行處理計算,公式如下測試距離=(高電平時間*聲速(340M/S))/2案例分析sbitTrig=P2^0;//定義Trig引腳sbitEcho=P2^1;//定義Echo引腳voidInit_Timer0()//初始化定時器{TMOD&=0xF0;TMOD|=0x01;//設(shè)置為模式1TH0=0;//重置定時器初值TL0=0;}voidmain(){unsignedlongdistance;unsignedinttime;while(1){Trig=0;//將Trig引腳拉低至少2微秒DelayUs(2);Trig=1;//將Trig引腳拉高至少10微秒DelayUs(10);Trig=0;while(Echo==0);//等待Echo引腳變高Init_Timer0();//開始計時while(Echo==1);//等待Echo引腳變低TH0=TL0=0;//停止計時time=(TH0<<8)|TL0;//計算計時值distance=time*17/100;//計算距離}}目錄動態(tài)顯示軟件消隱動態(tài)顯示是指將一組數(shù)字分別顯示在數(shù)碼管的不同位上,并通過快速切換的方式來模擬多個數(shù)字的同時顯示。這種方式可以減少需要的數(shù)碼管數(shù)量,因此被廣泛應(yīng)用。動態(tài)顯示需要使用定時器來控制數(shù)碼管的切換頻率。具體來說,我們可以使用定時器中斷來控制數(shù)碼管的切換,以便每隔一段時間就切換一次。數(shù)碼管軟件消隱是指在數(shù)碼管動態(tài)顯示過程中,為了避免重影或者顯示混亂,需要通過編寫程序在某些時間段內(nèi)關(guān)閉不需要顯示的數(shù)碼管的顯示。這樣,可以確保數(shù)字在數(shù)碼管上的清晰可見。軟件消隱的實現(xiàn)需要使用單片機(jī)的定時器和中斷技術(shù)。在動態(tài)顯示過程中,通過設(shè)置定時器的計數(shù)時間和中斷的觸發(fā)時間,來控制數(shù)碼管的顯示和消隱。voidShow(unsignedintOut){ charduan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段碼 while(1) { ADDR2=0;ADDR1=0;ADDR0=0;//第四位(個位) Delay10us(); P3=duan[Out%10]; Delay1ms(); P3=0xff;

案例分析ADDR2=0;ADDR1=0;ADDR0=1;//第三位(十位) Delay10us(); P3=duan[(Out/10)%10]; Delay1ms(); P3=0xff; ADDR2=0;ADDR1=1;ADDR0=1;;//第二位(百位) Delay10us(); P3=duan[(Out/100)%10];Delay1ms(); P3=0xff; ADDR2=1;ADDR1=0;ADDR0=1;;//第一位(千位) Delay10us(); P3=duan[(Out/1000)%10]; Delay1ms(); P3=0xff; }}目錄超聲波顯示案例分析sbitTr=P1^0;//觸發(fā)信號sbitEc=P1^1;//回響信號sbitADDR0=P2^2;sbitADDR1=P2^3;sbitADDR2=P2^4;voidDelay10us(void);//10us延時函數(shù)voidDelay1ms(void);//1ms延時函數(shù)unsignedintRead_value(void);//讀值函數(shù)voidInitTimer0(void);//定時器0初始化voidshow(unsignedintOut);//顯示函數(shù)voidmain(){ unsignedintdistance; Tr=0;//出發(fā)引腳首先拉低 InitTimer0();//初始化定時器0 distance=Read_value();//讀值 show(distance);//顯示距離}/********************讀值函數(shù)***********************/unsignedintRead_value(){ floattemp; unsignedintresult; Tr=1;//觸發(fā)引腳發(fā)出11us的觸發(fā)信號(至少10us) Delay10us(); _nop_(); Tr=0; while(!Ec);//度過回響信號的低電平 TR0=1;//開啟定時器0 while(Ec);//度過回響信號高電平 TR0=0;//關(guān)閉定時器0 temp=TH0*256+TL0;//最終us時間 temp/=1000.0;//最終ms時間 temp*=17.0;//距離(cm)(17=光速34cm/ms除2) result=temp;//四舍五入 if(temp-result>=0.5) { result+=1; } returnresult;

}/***********************10us延時函數(shù)*****************************/voidDelay10us(){ unsignedchari; i=2; while(--i);

}/***********************1ms延時函數(shù)*****************************/voidDelay1ms(){unsignedchara,b,c;for(c=1;c>0;c--)for(b=142;b>0;b--)for(a=2;a>0;a--);}/************************定時器0初始化*****************************/voidInitTimer0(void){TMOD=0x01;TH0=0x00;TL0=0x00;TR0=0;//先關(guān)閉定時器0}/**********************顯示函數(shù)*************************************/voidShow(unsignedintOut){ charduan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段碼 while(1) { ADDR2=0;ADDR1=0;ADDR0=0;//第四位(個位) Delay10us(); P3=duan[Out%10]; Delay1ms(); P3=0xff;ADDR2=0;ADDR1=0;ADDR0=1;//第三位(十位) Delay10us(); P3=duan[(Out/10)%10]; Delay1ms(); P3=0xff; ADDR2=0;ADDR1=1;ADDR0=1;;//

溫馨提示

  • 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

提交評論