蓝桥杯笔记之 超声波程序设计(十一)

原理介绍

发射电路
发射电路
接收电路
接收电路
跳线帽
跳线帽
1. 使用超声波模块时跳线帽的连接方式
1-3 P10控制超声波发射
2-4 P11控制超声波接收

2. 超声波发射后若遇到物体即返回RX(即P11)接收到返回的超声波后为低电平

3. 超声波的频率要为40khz即一个周期为25us

例程

测距程序

void get_distance()
{
	send_wave();	//发射声波
	TR1=1;	//开始计时
	while(TF1==0&&RX==1);	//等待声波返回或定时器1溢出
	TR1=0;	//关闭定时器

	if(TF1==1&&RX==1)	//定时器溢出
	{
		distance=999;

		TL1 = 0x00;		//清零
		TH1 = 0x00;
		TF1=0;		//注意不要忘了清零

	}
	if(TF1==0&&RX==0)	//检测到声波
	{
		time=(TH1<<8)+TL1;	//	这是定时器的计数次数,注意设置的是1T还是12T
		distance=time*0.017;

		TL1 = 0x00;		//清零
		TH1 = 0x00;
	}
}

·
·
定时器1初始化

void Timer1Init(void)		
{
	TMOD= 0x00;		//设置定时器模式,这里顺便把定时器0,1都设置了
	TL1 = 0x00;		//设置定时初值
	TH1 = 0x00;		//设置定时初值
	TF1 = 0;		//清除TF1标志
	TR1 = 0;		//定时器1先不开始计时
}

.
.
发送八个周期为25us的超声波

void send_wave()
{
	int i;
	for(i=0;i<8;i++)
	{
	 	TX=0;
		Delay12us();
		TX=1;
		Delay12us();
	}

}

.
.
延时大约12.5us

void Delay12_5us()		//@11.0592MHz
{
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	_nop_();_nop_();
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值