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

正文內(nèi)容

基于89c51單片機(jī)的超聲波測(cè)距-資料下載頁(yè)

2025-11-01 16:09本頁(yè)面

【導(dǎo)讀】隨著社會(huì)的發(fā)展,人們對(duì)距離或長(zhǎng)度測(cè)量的要求越來(lái)越高。超聲波測(cè)距由于其能。進(jìn)行非接觸測(cè)量和相對(duì)較高的精度,越來(lái)越被人們所重視。本設(shè)計(jì)的超聲波測(cè)距儀,可以對(duì)不同距離進(jìn)行測(cè)試,并可以進(jìn)行詳盡的誤差分析。能進(jìn)一步提高自身的電路設(shè)計(jì)水平,深入對(duì)單片機(jī)的理解和應(yīng)用。超聲波傳感器模塊在測(cè)量方面有著廣泛、普遍的應(yīng)用。利用單片機(jī)控制超聲波檢。科學(xué)家們將每秒鐘振動(dòng)的次數(shù)稱為聲音的頻率,它的。因此,把頻率高于20K赫茲的聲波稱。通常用于醫(yī)學(xué)診斷的超聲波頻率為1~5兆赫。超聲波具有方向性好,超聲波在介質(zhì)中傳播時(shí),介質(zhì)質(zhì)點(diǎn)振動(dòng)的頻率很高,因而能量很大。用小風(fēng)扇把霧滴吹入室內(nèi),就可以增加室內(nèi)空氣濕度.這就是超聲波加濕器的原理。超聲波的波速c與溫度有關(guān),表1-1列出了幾種不同溫度下的。只要測(cè)得超聲波往返的時(shí)間t,即可求得距離S。單片機(jī)控制超聲波模塊發(fā)射及檢波接收,其系統(tǒng)原理框圖如圖1-3所示。

  

【正文】 la=0。 wela=0。 P0=0xbf。 wela=1。 wela=0。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 30 頁(yè) delay(2)。 P0=table[mm]。 dula=1。 dula=0。 P0=0xdf。 wela=1。 wela=0。 delay(2)。 } void dsreset(void) //send reset and initialization mand { uint i。 DS=0。 i=103。 while(i0)i。 DS=1。 i=4。 while(i0)i。 } bit tmpreadbit(void) //read a bit { uint i。 bit dat。 DS=0。i++。 //i++ for delay DS=1。i++。i++。 dat=DS。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 31 頁(yè) i=8。while(i0)i。 return (dat)。 } uchar tmpread(void) //read a byte date { uchar i, j, dat。 dat=0。 for(i=1。i=8。i++) { j=tmpreadbit()。 dat=(j7)|(dat1)。 //讀出的數(shù)據(jù) 最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里 } return(dat)。 } void tmpwritebyte(uchar dat) //write a byte to ds18b20 { uint i。 uchar j。 bit testb。 for(j=1。j=8。j++) { testb=datamp。0x01。 dat=dat1。 if(testb) //write 1 { DS=0。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 32 頁(yè) i++。i++。 DS=1。 i=8。while(i0)i。 } else { DS=0。 //write 0 i=8。while(i0)i。 DS=1。 i++。i++。 } } } void tmpchange(void) //DS18B20 begin change { dsreset()。 delay(1)。 tmpwritebyte(0xcc)。 // address all drivers on bus tmpwritebyte(0x44)。 // initiates a single temperature conversion } uint tmp() //get the temperature { float tt。 uchar a, b。 dsreset()。 delay(1)。 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 33 頁(yè) tmpwritebyte(0xcc)。 tmpwritebyte(0xbe)。 a=tmpread()。 b=tmpread()。 temp=b。 temp=8。 //two byte pose a int variable temp=temp|a。 tt=temp*。 temp=tt*10+。 return temp。 } void readrom() //read the serial { uchar sn1, sn2。 dsreset()。 delay(1)。 tmpwritebyte(0x33)。 sn1=tmpread()。 sn2=tmpread()。 } void main(void) { uint distance_data。 uchar a。 float tem。 flag=0。 //標(biāo)志位, 1 表示收到回波, 0則未收到 test=0。 //控制燈閃爍 Trig=0。 TMOD=0x11。 //對(duì)定 時(shí)器 1 選擇 16位模式 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 34 頁(yè) IT0=0。 //設(shè)置觸發(fā)方式為低電平觸發(fā) IE0=0。 EA=1。 //開(kāi)總中斷 tmpchange()。 //測(cè)出當(dāng)時(shí)溫度 ET0=0。 TR0=0。 while(1) { EA=0。 TH1=0。 TL1=0。 Trig=1。 //讓 TRIG 引腳為高電平 delay_20us()。 //延時(shí) 20us Trig=0。 //產(chǎn)生方波 while(Echo==0)。 //等待 Echo 變?yōu)榈碗娖?,即開(kāi)始發(fā)射超聲波 TR1=1。 //開(kāi)始計(jì)時(shí) succeed_flag=0。 EX0=1。 TF1=0。 EA=1。 while((TH125)amp。amp。(!IE0))。 //等待 25us 或者中斷產(chǎn)生(即收到回波) TR1=0。 //停止計(jì)時(shí) EX0=0。 //關(guān)閉中斷 if(succeed_flag==1) //如果收到回波 { distance_data=outeH。 //先保存高 8位 distance_data=8。 //將高 8位左移,低八位則全置0 遼寧科技大學(xué)本科生畢業(yè)設(shè)計(jì) 第 35 頁(yè) distance_data=distance_data|outeL。 //將高低八位組成新的 16位數(shù)據(jù) tem=tmp()。 //取得溫度 tem/=10。 tem=+*tem。 //得出當(dāng)前波速 tem/=2020。 distance_data*=tem。 distance_data=distance_data*126000/120200。 //代入晶振頻率及當(dāng)前波速算出距離 for(a=300。a0。a) { display(distance_data)。 //顯示距離 } } if(succeed_flag==0) //如果沒(méi)有收到回波 { distance_data=0。 test = !test。 } } } INTO_() interrupt 0 //外部中斷 0 { outeH =TH1。 outeL =TL1。 succeed_flag=1。 EX0=0。 } (完)
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1