超聲波數碼管顯示

2021-10-07 19:19:22 字數 1416 閱讀 6155

(1)採用 io 觸發測距,給至少 10us 的高電平訊號;

(2)模組自動傳送 8 個 40khz 的方波,自動檢測是否有訊號返回;

(3)有訊號返回,通過 io 輸出一高電平,高電平持續的時間就是超聲波從發射到返回的時間;

(4)超聲波從發射到返回的時間.測試距離=(高電平時間*聲速(340m/s))/2;

介面定義

vcc、 trig(控制端)、 echo(接收端)、 gnd

注意事項

1:此模組不宜帶電連線,如果要帶電連線,則先讓模組的 gnd 端先連線。否則會影響

模組工作。

2:測距時,被測物體的面積不少於 0.5 平方公尺且要盡量平整。否則會影響測試結果。

3:超聲波測距的測距能力,要保證第一次發射的超聲波有足夠的時間反射回來,得算出時差並通過聲速計算出距離,然後才能發射第二次,假設量程為3.4m,則超聲波從發射到接受需要20ms 為乙個測量週期, 量程與發射間隔成正比,理論上是這樣。為了取得更好效果,超聲波測距儀間隔取50-100ms 。

#include

"reg51.h"

#include

sbit rx=p2^1;

sbit tx=p2^0;

unsigned

int time=0;

unsigned

int timer=0;

bit flag=0;

unsigned

long s=0;

#define gpio_dig p0

sbit lsa=p2^2;

sbit lsb=p2^3;

sbit lsc=p2^4;

unsigned

char disbuff[4];

unsigned

char code dig_code[17]

=;void

digdisplay()

gpio_dig=disbuff[i]

;//傳送段碼

j=10;

//掃瞄時間間隔

while

(j--);

gpio_dig=

0x00

;//消隱}}

void

conut

(void

)else

//距離

}void

zd0(

) interrupt 1

//t0溢位標誌

void

zd3(

) interrupt 3

//80ms啟動一次模組

}void

main

(void

)}

數碼管顯示

數碼管顯示 最近因為對突然對電子感興趣,前幾天在路過電子 時買了乙個數碼管。因為以前總是紙上談兵,根本沒實驗過,連數碼見都沒見過,所以開始覺得將這塊數碼管顯示出來是非常具有挑戰性的工作。今天正好有空,拿來了我的數碼管,並在網上看了一些資料,才發現並不是想象中的那麼難,其實更準確的說是太簡單了。不到半...

數碼管顯示

一 區分數碼管的類別 共陰數碼管 即所有數碼管的陰極接在一起。要使某個數碼管點亮,只需置上高電平,中該位置 1 共陽數碼管 即所有數碼管的陽極接在一起。要使某個數碼管點亮,只需置上低電平,中該位置 0 二 單個數碼管顯示 a h 表示單個數碼管上面的8個led。根據共陰共陽的特性,點亮相應的led,...

數碼管顯示

數碼管由8個led組成,對應乙個i o口的輸出.根據連線方式不同分為共陽和共陰數碼管 可以看到,由於結構不同,共陽和共陰使led亮起的輸出電平也不同,如下是兩種連線方式對應的16進製製碼 當我們要對多個數碼管進行控制的時候,不僅需要控制顯示內容 段碼 還要控制顯示的位置 位碼 簡單一點的方法可以用另...