【单片机期中测试】13.串口通信的应用(2)—— 超声波通过串口返回数据

本文详细介绍了一款基于C51语言的超声波测距程序,通过串口实时显示距离。程序中包括延时函数、发送和接收信号、测量距离的函数。关键步骤涉及超声波模块的trig和echo引脚连接到P1^7和P1^6,以及串口调试工具的使用。适合初学者了解嵌入式硬件和串口通信实践。
摘要由CSDN通过智能技术生成
#include<reg52.h>
#define uc unsigned char

uc ms=0,s=0;

sbit trig=P1^7;
sbit echo=P1^6;

void delay(uc c)
{
	while(--c);
}

void delay1(uc c1)
{
	uc a,b;
	for(;c1>0;c1--)
		for(a=38;a>0;a--)
			for(b=130;b>0;b--);
	
}

void putc(uc j)
{
	SBUF=j;
	while(TI==0);
	TI=0;
}

void putstr(uc * k)
{
	while(*k!='\0')
		putc(*k++);
}

void send()
{
	trig=1;
	delay(5);
	trig=0;
}

void main()
{
	TMOD=0X21;	
	TH0=0;
	TL0=0;
	TH1=0XFD;
	TL1=0XFD;
	TR1=1;
	SCON=0X50;
	ET0=1;
	EA=1;

	while(1)
	{
		send();
		
		while(echo==0);
		TR0=1;
		TH0=0;
		TL0=0;
		while(echo==1);
		TR0=0;
		
		s=(TH0*256+TL0)/58;
		putstr("距离为:");
		putc(s/100+'0');
		putc(s/10%10+'0');
		putc(s%10+'0');	

		delay1(20);
	}

}

注:这个程序是利用串口调试工具实现的,所以需要单片机有USB转TTL模块,如果没有需要外界串口模块;同时,串口调试工具不同,返回的字符可能存在译码不正确的情况,如果出现大家可以在评论区或私信交流~

  • 接线:
  • 超声波模块:
  • VCC、GND与单片机的相应引脚连接
  • trig接P1^7
  • echo接P1^6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为梦而生~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值