US-100超声波 使用

来源:互联网 发布:野人升级数据 编辑:程序博客网 时间:2024/04/29 13:43

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

#define UT_Trig  PORTA_PA0// 发送触发信号   超声波#define UT_Echo  PORTA_PA1// 接收回响信号uint distance;        // 单位: mmulong 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