US-100超声波 使用

1、只要给Trig端一个大于10us的高电平信号便能使模块工作,然后要做就是等待回波并测其脉宽而已,脉宽时间相当于声波从发射到返回来回的时间,所以 距离=时间*声速/2。

#define UT_Trig  PORTA_PA0	// 发送触发信号   超声波
#define UT_Echo  PORTA_PA1	// 接收回响信号

uint distance;      	  	// 单位: mm
ulong UT_time;

//===================== 超声波测距 ========================//
void Distance() 
{ 
    /* 给控制端一个大于10us的脉冲信号 */  
    UT_Trig = 1; 
    Delay_us(160);   //15us    
    UT_Trig = 0;
       
        
    /* 等待接收端产生高电平并计时 */ 
    while (!UT_Echo);    
    UT_time = 0;    
    while (UT_Echo);    
        
    distance = (int)(1.7 * UT_time);
}

//======================== 中断服务 =========================//
#pragma CODE_SEG __NEAR_SEG NON_BANKED     
void interrupt 66 PIT0_ISR(void)	//10us定时中断
{   
    ++UT_time;
    PITTF = 0x01;
}                         
#pragma CODE_SEG DEFAULT


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值