單片機源程序如下:
- #include <reg51.h>
- #uint unsigned int
- //控制端
- sbit Trig =P2^0;
- //輸出端
- sbit Echo=P2^1;
- /*測波函數*/
- TH0=0;
- TL0=0;
- uint get_distance()
- {
- uint speed=340;
- uint time;
- uint distance;
- //發出超聲波
- trig=1;
- for(i=0;i<=1000;i++);
- trig=0;
- //第二步:讀取超聲波返回時間
- while(Echo==0);//等待超聲波發出
- TR0=1;//超聲波開始發出,開啟定時器
- while(Echo==1)//超聲波還在發送中
- TR0=0;//超聲波回來,立即關閉定時器
- distance=speed*((dounle)time/1000000)/2*100;
- return distance;
- }
- void inittimer0()
- {
- TMOD=0x01;
- TG0=0;
- TL0=0;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void main()
- {
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
超聲波測距.zip
(35.31 KB, 下載次數: 15)
2018-1-22 15:30 上傳
點擊文件名下載附件
超聲波測距
|