HC-SR04超声波测距代码

这篇博客介绍了如何使用C语言编写HC-SR04超声波测距模块的代码,包括初始化定时器、延时函数以及数据显示。通过设置Trig和Echo引脚进行测距,并将结果显示在LED显示器上。
摘要由CSDN通过智能技术生成
#include <reg52.h>


#define uint unsigned int
#define uchar unsigned char


sbit Trig = P1^0; //控制端
sbit Echo = P1^1; //接收端
sbit dula = P2^2;
sbit wela = P2^3;


uchar table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar table1[] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点的数


void timer0_init()
{
    TMOD = 0x01;
TH0 = 0;
TL0 = 0;
TR0 = 1;
ET0 = 1;
EA = 1;
}  


void DelayUs2x(uchar t)//大约延时t*2+5us
{
    while(--t);
}  


void delayMs(uchar x)
{
    uint i,j;
for(i = x;i > 0;i--)
for(j = 100;j > 0;j--);
}


void display(uint num)
{
    uint bai,shi,ge;


bai = num/100;
shi = (num%100)/10;
ge = num%10;
    
P0 = 0xdf;
wela = 1;
wela = 0;
P0 = table1[bai];
    dula = 1;
dula = 0;
delayMs(4);


P0 = 0xbf;
wela = 1;
wela = 0;
P0 = table[shi];
       dula = 1;
dula = 0;
delayMs(4);


P0 = 0x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值