freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)論文21-2基于51單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-07-20 22:25 本頁面
 

【文章內(nèi)容簡介】 數(shù)碼管的選擇上,為了使數(shù)碼管亮度大,我選擇了共陽極的數(shù)碼管,數(shù)碼管管腳接到低電平發(fā)亮。 顯示電路原理圖主程序?qū)φ麄€(gè)單片機(jī)系統(tǒng)進(jìn)行初始化后,同時(shí)將定時(shí)器T0啟動,然后調(diào)用距離計(jì)算的子程序,再根據(jù)定時(shí)器T0記錄的時(shí)間計(jì)算出所需要測量的距離,然后再調(diào)用顯示子程序,再將測出的距離以十進(jìn)制的形式送到數(shù)碼管顯示。最后主程序通過對回波信號的接收,完成后續(xù)的工作,假如標(biāo)志位清零則說明接收到了回波信號,就這樣,連續(xù)不斷地運(yùn)行,循環(huán)不斷地工作用來實(shí)現(xiàn)測距。 超聲波接收電路在接收到超聲波回波后,通過CX20106A電路進(jìn)行檢波整形比較,并向單片機(jī)發(fā)出有效信號,單片機(jī)通過外部中斷的改變記錄回波信號的到達(dá)時(shí)間,中斷發(fā)生之后就是表示已經(jīng)接收到了回波信號,這個(gè)時(shí)候停止計(jì)時(shí),并且讀取計(jì)數(shù)器中的數(shù)值,這個(gè)數(shù)值就是需要進(jìn)行測量的時(shí)間差的數(shù)據(jù)。程序中對測距距離的計(jì)算方法是按S=17N/100000=N(m)進(jìn)行計(jì)算的,其中,N為計(jì)數(shù)器的值,聲速的值取為340 m/s。:開始單片機(jī)初始化超聲波模塊復(fù)位發(fā)射超聲波并啟動T0開中斷接收到回波的同時(shí)中斷停止計(jì)算測量距離顯示距離延時(shí) 系統(tǒng)主程序流程圖系統(tǒng)主程序如下:void main(void){uchar i,j。for(i=0。i255。i++)for(j=0。j255。j++)。 //延時(shí),等待系統(tǒng)外圍復(fù)位完成 sys_init()。 //初始化display()。 //顯示sta_flag=0。 //標(biāo)準(zhǔn)復(fù)位 waitforstarting: while(START)。for(i=0。i20。i++)delay1ms()。if(START)goto waitforstarting。BUZZER=0。 i=100000。while(i)。BUZZER=1。i=100000。while(i)。TR0=1。 //啟動定時(shí)器0ET0=1。testtemp()。 while(1) { if(sta_flag) //60MS到了,超聲波已經(jīng)發(fā)送 { while(0==CSBIN)。 //等待超聲波返回TR1=0。jsh=TH1。 //停止計(jì)數(shù)jsl=TL1。if(15==count) {temp=wd()。 count=0。testtemp()。 //重新啟動轉(zhuǎn)換display()。 //刷新顯示}puter()。 //計(jì)算距離hextobcd()。 //轉(zhuǎn)化成BCD碼sta_flag=0。 //標(biāo)志清零} }}void sys_init(void){ uchar i。for(i=0。i29。i++) //顯示清零{ num[i]=0。}TMOD=0x11。TH0=0x15。TL0=0xA0。P0=0。CNT=0。 //超聲波發(fā)送關(guān)閉CSBIN=1。EA=1。 //開放總中斷Init_LCD()。負(fù)責(zé)計(jì)算距離是INT0的中斷程序。根據(jù)前面的對超聲接收電路的分析,在超聲波集成模塊接收到超聲波回波信號后,使系統(tǒng)中斷,則系統(tǒng)轉(zhuǎn)入中斷處理程序。進(jìn)入中斷處理后,定時(shí)器T0和外部中斷0就立即被關(guān)閉,同時(shí)讀取時(shí)間值,調(diào)用計(jì)算距離函數(shù),并給回波接收標(biāo)志位清零即成功接收到回波信號。中斷程序如下:void zd0() interrupt 1 //T0中斷用來計(jì)數(shù)器溢出,超過測距范圍{ flag=1; //中斷溢出標(biāo)志} void zd3() interrupt 3 //T1中斷用來掃描數(shù)碼管和計(jì)800 ms啟動模塊{ TH1=0xf8; TL1=0x30; Display(); DIDI(); timer++; if(timer=400) { timer=0; TX=1; //800 ms啟動一次模塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } }void main(void) { TMOD=0x11; //設(shè)T0為方式1,GATE=1; TH0=0; TL0=0; TH1=0xf8; //2 ms定時(shí) TL1=0x30; ET0=1; //允許T0中斷 ET1=1; //允許T1中斷 TR1=1; //開啟定時(shí)器 EA=1; //開啟總中斷 while(1) { while(!RX)。 //當(dāng)RX為零時(shí)等待 TR0=1; //開啟計(jì)數(shù) while(RX); //當(dāng)RX為1計(jì)數(shù)并等待 TR0=0; //關(guān)閉計(jì)數(shù) Count(); //計(jì)算 } }由于計(jì)算公式為S=17N/100000=N(m),可以從中看出如果想要得到具體的距離的值,就只需要得到從超聲波發(fā)送開始到接收到超聲波這個(gè)過程中定時(shí)器0的計(jì)數(shù)的次數(shù)。本設(shè)計(jì)中,采用了4位共陽極連接的數(shù)碼管顯示來顯示與障礙物之間的距離,同時(shí)數(shù)碼管與P1口連接進(jìn)行動態(tài)的段掃描。由于這個(gè)距離值是不斷變化的,所以,這個(gè)數(shù)碼管的顯示的過程是在外部中斷0發(fā)生后才進(jìn)行的。 所以當(dāng)主程序給超聲波發(fā)生器發(fā)送了信號后,此時(shí)中斷和定時(shí)器0就已經(jīng)被打開,并開始計(jì)時(shí)了。當(dāng)超聲波接收電路接收了到回波信號的同時(shí)時(shí),在單片機(jī)檢測到該信號后,定時(shí)器計(jì)時(shí)就將停止,同時(shí)定時(shí)器的計(jì)數(shù)的次數(shù)將被提取出來,這樣就可以得到以m為單位的測量的距離值。C程序如下:Void Count (void){ time=TH0*256+TL0; TH0=0; TL0=0; //time=23529; S=(time*); //算出來是m if((S=7000)||flag==1) //超出測量范圍顯示“” { flag=0; flag_beep=0; disbuff[0]=10; //“” disbuff[1]=10; //“” disbuff[2]=10; //“” disbuff[3]=10; //“” BEEP=1; } else { disbuff[0]=S/1000; disbuff[1]=S/100%10; disbuff[2]=S/10%10; disbuff[3]=S%10; } }:通過這次畢業(yè)設(shè)計(jì)對我來說收獲甚多。剛開始的時(shí)候毫無頭緒,在反復(fù)的查閱相關(guān)資料的情況下,慢慢的終于有了大概的思路,但是由于超聲波測距的課題涉及知識面很廣,對于設(shè)計(jì)菜鳥來說的我,實(shí)在是力不從心。但是在三個(gè)月的刻苦學(xué)習(xí)和與老師的幫助下,很快設(shè)計(jì)有了眉目,我的作品也慢慢步入正軌。三個(gè)月的辛苦是值得的,一個(gè)畢業(yè)設(shè)計(jì)把我整個(gè)大學(xué)期間的知識都用上了,還讓我學(xué)到了很多我沒接觸過的內(nèi)容,讓我受益匪淺,同時(shí)也鍛煉了我的動手能力,讓我對超聲波有了更進(jìn)一步的認(rèn)識。本次畢業(yè)設(shè)計(jì),雖然已經(jīng)完成了作品的制作,但是還有很多不完美的地方。經(jīng)過反復(fù)試驗(yàn),作品還存在較大的誤差,通過分析可能是以下原因產(chǎn)生的:(1)環(huán)境的溫度所引起的誤差環(huán)境溫度的影響是本設(shè)計(jì)在不同的溫度條件下測量數(shù)據(jù)存在誤差的主要原因,根據(jù)有關(guān)資料,在當(dāng)溫差較大時(shí),前后兩次測距的誤差肯定前后相差也比較大。而本設(shè)計(jì)中并沒有溫度補(bǔ)償模塊,由于知識面有限,只能完成超聲波測距的基本功能,希望隨著日后知識面的寬廣,能將作品完成的更加完美。 (2)不同障礙物表面材料的不同介質(zhì)引起的誤差因?yàn)楸砻娲植诘恼系K物介質(zhì)要比光滑介質(zhì)的測量結(jié)果要差,如果障礙物的發(fā)射面比較粗糙會引起發(fā)射信號散射開那么回波信號就會減弱,這樣就會導(dǎo)致測量結(jié)果的誤差增大。 (3)超聲波模塊的感應(yīng)角的影響兩個(gè)超聲波探頭即發(fā)射探頭和接收探頭和障礙物之間存在一個(gè)幾何角度,反射波入射
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1