新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)超聲波測距原理圖

單片機(jī)超聲波測距原理圖

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏

void scanLED()//顯示功能模塊
{
digit=0x04;
for( i=0; i<3; i++)//3位數(shù)顯示
{
P3=~digit&opto;//依次顯示各位數(shù)
P1=~buffer[i];//顯示數(shù)據(jù)送P1口
delay(20);//延時(shí)處理
P1=0xff;//P1口置高電平(關(guān)閉)
if((P3&0x10)==0) //判斷3位是否顯示完
key=0;
digit>>=1;//循環(huán)右移1位
}
}

本文引用地址:http://butianyuan.cn/article/201611/321765.htm

void timeToBuffer()//轉(zhuǎn)換段碼功能模塊
{
xm0=s/100;
xm1=(s-100*xm0)/10;
xm2=s-100*xm0-10*xm1;
buffer[2]=convert[xm2];
buffer[1]=convert[xm1];
buffer[0]=convert[xm0];
}

void delay(i)//延時(shí)子程序
{
while(--i);
}

void timer1int (void)interrupt 3using 2 //終斷處理程序,1秒測量一次
{
TH1=0x9E;
TL1=0x57;
csbds++;
if(csbds>=15)
{
csbds=0;
cl=1;
}
}

void csbcj()//超聲波測距子程序
{
if(cl==1)
{
TR1=0;
TH0=0x00;
TL0=0x00;
i=8;

while(i--)
{
csbout=1;
}
TR0=1;
i=70;
while(i--)
{
}
i=0;
while(csbint)//判斷接收回路是否收到超聲波的回波
{
i++;
if(i>=500)

csbint=0;
}
TR0=0;
TH1=0x9E;
TL1=0x57;
t=TH0;
t=t*256+TL0;
s=t*csbc;//計(jì)算測量結(jié)果
TR1=1;
cl=0;
}
}


void offmsd()//百位為數(shù)0判斷模塊
{
if (buffer[0] == 0x3f)//如果值為零時(shí)百位不顯示
buffer[0] = 0x00;
}


上一頁 1 2 下一頁

評(píng)論


技術(shù)專區(qū)

關(guān)閉