欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

超声波测距仪编程_超声波测距仪程序

发布时间:2024/3/7 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 超声波测距仪编程_超声波测距仪程序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

l Inc,2001.

这个网上可以找到的~~我帮你找了这个程序,是别人测试成功的~~共阴的~ 你试试

#include &ltREG2051.H&gt

#define k1 P3_4

#define csbout P3_5 //超声波发送

#define csbint P3_7 //超声波接收

#define csbc=0.034

#define bg P3_3

unsigned char csbds,opto,digit,buffer[3],xm1,xm2,xm0,key,jpjs;//显示标识

unsigned char convert[10]={0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9段码

unsigned int s,t,i, xx,j,sj1,sj2,sj3,mqs,sx1;

bit cl;

void csbcj();

void delay(j); //延时函数

void scanLED(); //显示函数

void timeToBuffer(); //显示转换函数

void keyscan();

void k1cl();

void k2cl();

void k3cl();

void k4cl();

void offmsd();

void main() //主函数

{

EA=1; //开中断

TMOD=0x11; //设定时器0为计数,设定时器1定时

ET0=1; //定时器0中断允许

ET1=1; //定时器1中断允许

TH0=0x00;

TL0=0x00;

TH1=0x9E;

TL1=0x57;

csbds=0;

csbint=1;

csbout=1;

cl=0;

ōpto=0xff;

jpjs=0;

sj1=45;

sj2=200;

sj3=400;

k4cl();

TR1=1;

while(1)

{

keyscan();

if(jpjs&lt1)

{

csbcj();

if(s&gtsj3)

{

buffer[2]=0x76;

buffer[1]=0x76;

buffer[0]=0x76;

}

else if(s&ltsj1)

{

buffer[2]=0x40;

buffer[1]=0x40;

buffer[0]=0x40;

}

else timeToBuffer();

}

else timeToBuffer(); //将值转换成LED段码

offmsd();

scanLED(); //显示函数

if(s&ltsj2)

bg=0;

bg=1;

}

}

void scanLED() //显示功能模块

{

digit=0x04;

for( i=0; i&lt3; i++) //3位数显示

{

P3=~digit&opto; //依次显示各位数

P1=~buffer; //显示数据送P1口

delay(20); //延时处理

P1=0xff; //P1口置高电平(关闭)

if((P3&0x10)==0) //判断3位是否显示完

key=0;

digit&gt&gt=1; //循环右移1位

}

}

void timeToBuffer() //转换段码功能模块

{

xm0=s/100;

xm1=(s-100*xm0)/10;

xm2=s-100*xm0-10*xm1;

buffer[2]=convert[xm2];

buffer[1]=convert[xm1];

buffer[0]=convert[xm0];

}

void delay(i)

{

while(--i);

}

void timer1int (void) interrup

总结

以上是生活随笔为你收集整理的超声波测距仪编程_超声波测距仪程序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。