用AT89C2051設計超聲波測距儀
/*主程序用延時(shí)子程序*/
woid main-delay(void)
{
register i;
TRO=1;
for(i=0;i15;i++)
{
TH0=0;
TL0=0;
Do{}while(!TF0);
TF0=0;
}
TR0=0;
}
*/通用延時(shí)子程序*/
void delay(void)
{
unint i;
for(i=0;i200;i++){;}
}
/*鍵盤(pán)延時(shí)子程序*/
void key-delay(void)
{
unint i;
for(i=0;i200;i++){;}
}
/*初始化程序*/
void start_main()
{
tegister i;
uchar a[16]={’’,’L’,’E’,’N’,’G’,’T’,’H’,’=,’8’,’.’,’8’,’8’,’m’,’’,’’,’’};
for(i=0;16;i++)
{ON[i]=a[i];}
nitlcd();/*初始化液晶*/
display(ON);/*更新顯示*/
}
/*主程序*/
void main()
{
register s,keycode;
long idata t;
start-main();/*初始化*/
main-delay();/*延時(shí)*/;
if(keycoed= =true)
{
keycode=key-scan-wait();
/*判斷是否有測量鍵按下*/
t=measure();*/測量*/
S=0.5*t*C;*/換算*/
Decode-bcd(s.0x09);
/*把測量結果置換入顯示緩沖區*/
init-lcd();/*初始化液晶*/
display(ON);/*更新顯示*/
}
}
5 結束語(yǔ)
雖然用一個(gè)單獨計時(shí)器電路也可以測量超聲波的傳輸時(shí)間,但利用AT89C2051單片機可以簡(jiǎn)化設計,便于操作和直觀(guān)讀數。該系統經(jīng)實(shí)際測試證明,可以滿(mǎn)足大多數場(chǎng)合的測距要求。
評論