① 超音波用英語怎麼說
超音波
[詞典]
ultrasonic(台語詞,等於普通話中的超聲波);
[例句]在對膽囊癌的診斷中常常要對腹部做超音波檢查。
An
abdominal
ultrasound
is
done
to
diagnose
gallbladder
cancer.
② 超聲波的超怎麼寫告訴我。
超聲波的超這么寫;
③ HC-SR04超聲波測距 程序怎麼寫啊!! 輸出代碼 和輸入定時器計數高電平時間代碼~ MSP430F149單片機
給你個at89c51的程序,自己稍微改一下就可以了。這個是用數碼管顯示的。
#include <REG52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
extern char *itoa(int i);
uint code SEG7[16]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,
0x30,0x25,0xa9,0x26,0xa1,0xb1};//0 1 2 3 4 5 6 7 8 9 A-E
uchar code ACT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //數碼管顯示位置
uchar dis[4];
sbit trig=P1^0;
sbit echo=P1^1;
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++)
{
for(j=0;j<121;j++)
{;}
}
}
void display(uint dis)
{
P0=SEG7[dis%10];
P2=ACT[3];
delay(1);
P0=SEG7[(dis/10)%10];
P2=ACT[2];
delay(1);
P0=SEG7[(dis/100)%10];
P2=ACT[1];
delay(1);
P0=SEG7[dis/1000];
P2=ACT[0];
delay(1);
}
void display2(uint Hi,uint Low)
{
P0=SEG7[Hi%10];
P2=ACT[3];
delay(1);
P0=SEG7[(Hi/10)%10];
P2=ACT[2];
delay(1);
P0=SEG7[(Hi/100)%10];
P2=ACT[1];
delay(1);
/* P0=SEG7[Hi/1000];
P2=ACT[0];
delay(1);
*/
//Low
P0=SEG7[Low%10];
P2=ACT[7];
delay(1);
P0=SEG7[(Low/10)%10];
P2=ACT[6];
delay(1);
P0=SEG7[(Low/100)%10];
P2=ACT[5];
delay(1);
/* P0=SEG7[Low/1000];
P2=ACT[4];
delay(1); */
}
void delay10us()
{
uchar i;
for(i=11;i>0;i--);
}
void init()
{
TMOD=0x21;//模式1
TH1=0xf3;//4800bps fosc=12M
TL1=0xf3;
TR0=0;
trig=0;
echo=0;
TH0=0;
TL0=0;
TCON=0x00;
SCON=0x50;//SM0=0 SM1=1 SM2=0 REN=1 TB8=0 R8=0 TI=0 RI=0
PCON=0x80;//SMOD=1
TR1=1;
ES=1;
EA=1;
}
uint getDistance()
{
uint i=29412;//5m來回需要的時間(us) (5*2/340)*1000000
TR0=0;
TH0=0;
TL0=0;
//接收信號端置0
echo=0;
//開始觸發
trig=1;
//延時10微秒
delay10us();
//停止觸發
trig=0;
//沒有信號返回並且在5米障礙物信號返回需要的時間前則等待 (無信號即時返回,防止死循環,阻礙其它程序的執行)
while(!echo&&i>0)
{
i--;
}
if(i>0)//小於5米,說明有信號返回
{
TR0=1;//開始計時
while(echo); //持續高電平則計時,轉為低電平則退出
TR0=0;//停止計時
return (uint)((TH0*256+TL0)*0.170); //單位:mm //340000/1000000/2=0.17 mm/us
}
//display2(TH0,TL0);
return 0; //大於5米則返回0
}
void SendChar(uchar ch)
{
SBUF=ch;
while(!TI);
TI=0;
}
void SendCmd(uchar *cmd,uchar sz)
{
uchar i=0;
SendChar('$');
for(i=0;i<sz;i++)
{
SendChar(*(cmd+i));
}
SendChar('@');
}
void main()
{
uint distance=0;
init();
while(1)
{
//測距
distance=getDistance();
//sprintf(dis,"%4d",distance);
//SendCmd(dis,4);
display(distance);
/* if(TF0)
{
TF0=0;
TH0=0;
TL0=0;
} */
}
}
void serial_serve(void) interrupt 4
{
}