熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
|
/*********************超聲波測距程序*****************************/ void send_wave() { c_send = 1; //10us的高電平觸發(fā) delay(); c_send = 0; TH0 = 0; //給定時(shí)器0清零 TL0 = 0; TR0 = 0; //關(guān)定時(shí)器0定時(shí) while(!c_recive); //當(dāng)c_recive為零時(shí)等待 TR0=1; while(c_recive) //當(dāng)c_recive為1計(jì)數(shù)并等待 { flag_time0 = TH0 * 256 + TL0; if((flag_time0 > 40000)) //當(dāng)超聲波超過測量范圍時(shí),顯示3個(gè)888 { TR0 = 0; flag_csb_juli = 2; distance = 888; break ; } else { flag_csb_juli = 1; } } if(flag_csb_juli == 1) { TR0=0; //關(guān)定時(shí)器0定時(shí) distance = flag_time0; distance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M 算出來是米 if(distance > 600) //距離 = 速度 * 時(shí)間 { distance = 888; //如果大于3.8m就超出超聲波的量程 } } } 我的測距程序,求指導(dǎo),哪錯(cuò)了 |
Powered by 單片機(jī)教程網(wǎng)