51单片机 HC-SR04超声波测距 我写的C语言代码,请问

51单片机 HC-SR04超声波测距 我写的C语言代码,请问,第1张

1、HC-SR04使用方法:给触发端子trig一个10us以上的高电平即可触发,触发后echo端子将接受到高电平,高电平的持续时间就是测距的往返时间。

2、例程:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

/*位定义*/

sbit CHUFA=P0^1    //位定义超声波触发端(10us以上高电平触发)

sbit JIESHOU=P0^3    //接收端(接受高电平)

sbit BEEP=P2^0        //蜂鸣器

sbit OUT0=P3^2        //外部中断0

uchar JS_FLAG        //接收标志

uint CF_TIME,t0,t1,shu

/*函数声明*/

void timer0()        

void int0()

void display(uint)

main(){

    CHUFA=0        //初始化拉低触发端和接收端电平

    JIESHOU=0

    JS_FLAG=0        

    CF_TIME=15        //初始化触发时间(大于10us)

    TMOD=0x11        //定时器方式选择

    EA=1             //开总中断

    ET0=1            //开定时器0中断

    EX0=1             //开外部中断0

    IT0=0             //外部中断选择下降沿触发

    //JIESHOU=1

    while(1){

        OUT0=JIESHOU      //外部中断0被赋值为接收端信号,当出现下降沿是触发外部中断0

        if(JS_FLAG==0){        //如果没有接收到高电平则触发

            CHUFA=1

            while(CF_TIME--)    //10us以上高电平触发传感器

        }

        if(JIESHOU==1){        

            TR0=1            //如果接收端收到高电平则启动定时器

            JS_FLAG=1         //并且标志位置1

            BEEP=0            //蜂鸣器响    

        }

        display(t1)    //显示测量时间(秒)

    }

}

/*定时器0中断程序*/

void timer0() interrupt 1{    

    TH0=(65536-10000)/256    //装初值 10ms

    TL0=(65536-10000)%256

    t0++                    //每进入一次中断t0加1    

}

/*外部中断0中断程序*/

void int0() interrupt 0{

    TR0=0            //一旦进入外部中断0,说明接收端收到下降沿信号。关闭定时器0

    JS_FLAG=0        //接收标志位置0

    BEEP=1               //关闭蜂鸣器

    t1=t0*10/1000    //测量时间为 进入定时器中断次数t0乘以每次时间10ms,除以1000化为秒为单位

    t0=0            //t0清零

}

/*数码管显数函数*/

void display(uint shu){

    //数码管显示函数

}

//Function: 超声波测距,串口显示距离

#include <SR04.h>

#define TRIG_pin 13

#define ECHO_pin 11

SR04 my_SR04 = SR04(ECHO_pin,TRIG_pin)// 创建对象

long distance// 用于储存距离的变量

void setup(){

  Serial.begin(9600)

  delay(1000)// 适当延时使初始化

}

void loop(){

  distance = my_SR04.Distance()

  Serial.print(distance)

  Serial.print ln ("cm")

  //delay(100)

}

*粗体注意

右上角搜索那个图标是打开监测数据,看数据的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7744605.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存