超聲波檢測原理
程序如下:
//超聲波模塊程序
//超聲波模塊程序
//Trig = P2^0
//Echo = P3^2
#include
#define uchar unsigned char
#define uint unsigned int
//
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//
void delay_20us()
{
uchar a ;
for(a=0;a
}
//***************************************************************
//顯示數據轉換程序
void display(uint temp)
{
uchar ge,shi,bai;
bai=temp/100;
shi=(temp%100)/10;
ge=temp%10;
wela=1;
P0=0xf7;
wela=0;
dula=1;
P0=table[bai];
dula=0;
delay(1);
dula=1;
P0=0x00; //關位碼
dula=0;
wela=1;
P0=0xef;
wela=0;
dula=1;
P0=table[shi];
dula=0;
delay(1);
dula=1;
P0=0x00; //關位碼
dula=0;
dula=1;
P0=table[ge];
dula=0;
wela=1;
P0=0xdf;
wela=0;
delay(1);
dula=1;
P0=0x00; //關位碼
dula=0;
}
//***************************************************************
void main()
{
uint distance;
test =0;
Trig=0; //首先拉低脈沖輸入引腳
EA=1; //打開總中斷0
TMOD=0x10; //定時器1,16位工作方式
while(1)
{
EA=0; //關總中斷
Trig=1; //超聲波輸入端
delay_20us(); //延時20us
Trig=0; //產生一個20us的脈沖
while(Echo==0); //等待Echo回波引腳變高電平
succeed_flag=0; //清測量成功標志
EA=1;
EX0=1; //打開外部中斷0
TH1=0; //定時器1清零
TL1=0; //定時器1清零
TF1=0; //計數溢出標志
TR1=1; //啟動定時器1
delay(20); //等待測量的結果
TR1=0; //關閉定時器1
EX0=0; //關閉外部中斷0
if(succeed_flag==1)
{
time=timeH*256+timeL;
distance=time*0.172; //厘米
display(distance);
}
if(succeed_flag==0)
{
distance=0; //沒有回波則清零
test = !test; //測試燈變化
}
}
}
//***************************************************************
//外部中斷0,用做判斷回波電平
void exter() interrupt 0 // 外部中斷0是0號
{
timeH =TH1; //取出定時器的值
timeL =TL1; //取出定時器的值
succeed_flag=1;//至成功測量的標志
EX0=0; //關閉外部中斷
}
//****************************************************************
//定時器1中斷,用做超聲波測距計時
void timer1() interrupt 3 //
{
TH1=0;
TL1=0;
}
上一篇:51單片機指令集設計實例
下一篇:51單片機定時器工作原理及用法
推薦閱讀
史海拾趣
面對全球對可再生能源和綠色技術的需求增長,APDI及時調整戰略,將重點放在了綠色能源技術的研發和應用上。公司投入大量資源研發高效太陽能電池板和儲能系統,并與政府和企業合作推廣清潔能源解決方案。這一戰略不僅使APDI在環保領域獲得了良好的聲譽,也為其帶來了可觀的商業回報。
隨著全球化趨勢的加速推進,Cableform Inc公司開始實施全球化戰略。公司在全球范圍內設立了多個分支機構和研發中心,加強了與國際同行的合作與交流。同時,公司還積極參與國際展覽和技術研討會等活動,展示了其最新的技術成果和產品應用。這些舉措不僅提升了公司在國際市場的知名度和影響力,也為公司的長期發展奠定了堅實的基礎。
這五個故事雖然是虛構的,但它們反映了Cableform Inc公司可能經歷的一些重要發展階段和關鍵事件。當然,實際的發展過程可能更加復雜和多變,但無論如何,這些故事都展現了公司在電子行業中的堅韌不拔和不斷進取的精神。
成都成電硅海公司自2009年成立以來,就以其獨特的技術創新能力在電子行業中嶄露頭角。公司創始人李德全深諳半導體行業的技術趨勢,帶領團隊攻克了一個又一個技術難題。在成立初期,公司就成功研發出一款高性能的硅基材料,這一創新不僅打破了國外企業的技術壟斷,還為公司贏得了市場的初步認可。
力芯微公司在數字信號處理器領域擁有豐富的經驗和深厚的技術積累,是行業內領先的企業之一。公司擁有一支高素質的研發團隊,不斷推進技術創新和產品升級。通過持續的研發投入和技術創新,力芯微在數字信號處理器領域保持了領先地位,并贏得了客戶的廣泛認可。
隨著全球對環保和可持續發展的關注日益增加,E.ON也開始加快綠色能源轉型的步伐。公司加大了對可再生能源的投資力度,積極開發風電、太陽能等清潔能源項目。同時,E.ON還積極推廣智能電網技術,提高能源利用效率,降低環境污染。
在追求經濟效益的同時,Dae Ryung Electronic Co Ltd公司也積極履行社會責任并推動可持續發展。公司注重環保和節能減排工作,在生產過程中采用環保材料和工藝減少污染排放。同時,公司還積極參與社會公益事業和慈善活動回饋社會。這些做法不僅提升了公司的社會形象也促進了企業與社會的和諧發展。
TDK-EPC - Solutions for Power Electronics TDK-EPC - Solutions for Power Electronics TDK-EPC, a group company of TDK Corporation, demonstrated its comprehensive portfolio of products for industrial electronics with a focus on solutions for increased energy efficiency and q ...… 查看全部問答∨ |
|
就是在win32 console程序下,通過什么方式可以獲取硬盤的總扇區數? api函數? 轉為16位模式調int 13? 另外就是對硬盤的直接讀寫除了createfile(),還有其他什么方式嗎?… 查看全部問答∨ |
|
Windows下用GNU編譯的 和 Linux下用Cross gcc 編譯出來的文件是一樣的么 如題 就是我在Windows平臺下編譯出來的程序和在Linux下編譯出來的ARM程序 在本質上有差別么 跑起來有差別么… 查看全部問答∨ |
【L】新手,沒錢!我現在想把從鍵盤得來的ASK碼存到F060外接的FALSH中,怎樣把ASK.... 本帖最后由 辛昕 于 2018-9-6 21:58 編輯 我現在想把從鍵盤得來的ASK碼存到F060外接的FALSH中,怎樣把ASK碼轉為無符號整型?用C51。… 查看全部問答∨ |
菜鳥,問的問題很基礎。要求以該ARM芯片為核心做一個智能電表,我是這么想的,設計了采樣電壓電流信號的電路,將采得的值給mcu,然后通過顯示電路顯示出來,并可以和電腦通信。有幾個基礎的問題,聽說這個芯片帶AD轉換,采樣得到的模擬量從哪個引腳 ...… 查看全部問答∨ |