51单片机驱动HC-SR04超声波测距模块(LED1602显示结果)

HC-SR04超声波测距模块的使用时非常广泛的,而且驱动它的单片机也有很多。在这里我主要说一下51单片机的代码。

51单片机虽然简单,但是实际操作起来也会碰到很多问题:

1.ECHO返回的电平用什么方式去判断

2.20us的演示函数怎么编写

3.距离怎么用自己的方法换算

在下面的程序中,我用了以下方法解决上述问题:

1.ECHO的返回电平用外部中断的方式判断

2.在12MHz的晶振下,51的机器周期是1us,所以执行一条_nop()指令的时间就是1us。而跳转需要2us的时间,包括跳入函数和跳出函数,所以具体演示函数就可以根据这个要需要编写。

3.采集完ECHO电平后,定时器计数器里存放的是计数值,这个值得倒数是时间,再乘以340/2即可。

另外,LCD1602的驱动程序固定,可以自己去找。

sbit Trig  = P3^1; 
sbit Echo  = P3^2; 
sbit LED1  = P3^4;
sbit BEEP  = P3^5;

uchar ge,shi,bai,outcomeH,outcomeL; 
bit succeed_flag;  
unsigned int c=0;

void delay_20us();   
int Gotdis()   
{	
	uint distance_data=0;          
	Trig=0;         
	TMOD=0x11;         
	IT0=0;   //µÍµçƽ´¥·¢             
	EX0=0;
  ET1 = 0;
	TF1 = 0;	
	EA=0;  
	Trig=1;  
	delay_20us();  
	Trig=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值