超声波测距 c语言程序流程图,超声波测距单片机C程序+原理图+PCB源文件

该博客详细介绍了使用STC89C52单片机进行超声波测距的C语言程序设计,包括程序流程、延时函数、DS18B20温度传感器的初始化和读取,以及如何计算并显示距离。通过中断处理超声波模块的测量,并在5米量程内准确计算距离,超过5米则显示溢出标识888。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include          //STC89C52头文件

#define uchar unsigned char

#define uint unsigned int

unsigned int  time=0;

unsigned int  timer=0;

unsigned long S=0;         //距离变量

bit  flag =0;                 //超声波模块量程溢出标志(>5米时置1)

sbit echo=P1^0;               //超声波模块的发射端

sbit trig=P1^1;               //超声波模块的接收端

sbit ds=P2^2;                //DS18B20的信号线

sbit P24=P2^4;

sbit P25=P2^5;

sbit P26=P2^6;

sbit P27=P2^7;

sbit P07=P0^7;

int temp;

//八位共阳极

unsigned char code shuzu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

/*********************************************************/

//毫秒级延时

void delayms(unsigned char z)

{

unsigned char a,b;

for(a=z; a>0; a--)

for(b=110; b>0; b--);

}

/*********************************************************/

/*********************************************************/

//微秒级延时

void delayus(unsigned char z)

{

while(z)

z--;

}

/********************************************************/

void delay_ms(unsigned int ms)  //1ms延时

{

uchar a;

while(ms--)

for(a=123;a>0;a--);

}

/*********************************************************/

//DS18B20初始化

void ds18b20init()

{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值