用AT89C2051設(shè)計(jì)超聲波測距儀
/*主程序用延時(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++){;}
}
/*鍵盤延時(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);
/*把測量結(jié)果置換入顯示緩沖區(qū)*/
init-lcd();/*初始化液晶*/
display(ON);/*更新顯示*/
}
}
5 結(jié)束語
雖然用一個(gè)單獨(dú)計(jì)時(shí)器電路也可以測量超聲波的傳輸時(shí)間,但利用AT89C2051單片機(jī)可以簡化設(shè)計(jì),便于操作和直觀讀數(shù)。該系統(tǒng)經(jīng)實(shí)際測試證明,可以滿足大多數(shù)場合的測距要求。
評(píng)論