仪器网(yiqi.com)欢迎您!

| 注册2 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

帮帮忙 帮我解释详细下 这个程序 超声波测距的

古玥美 2013-06-17 03:22:24 445  浏览
  • void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.72)/100; //算出来是CM

参与评论

全部评论(1条)

  • 热情的张钧翔 2013-06-18 00:00:00
    time=TH0*256+TL0;//读取测量得到的时间,单位是微秒,是超声波发送出去到反射回来的时间。 TH0=0;//T0定时器高位清零。 TL0=0;//T0定时器低位清零。 S=(time*1.72)/100; //计算测量了出来的距离值 (3.44/100/2)=1.72/100,是超声波的速度,单位是厘米/微秒,式中除2是超声波一个来回所以要除2。

    赞(10)

    回复(0)

    评论

热门问答

帮帮忙 帮我解释详细下 这个程序 超声波测距的
void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.72)/100; //算出来是CM
2013-06-17 03:22:24 445 1
超声波测距程序问题
#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long sbit Tx = P3^3; //产生脉冲引脚 sbit Rx = P3^2; //回波引脚 uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0...
2012-07-17 06:51:21 566 2
这个51单片机HC-SR04超声波测距程序哪里错了
//晶振11.0592MHz #include #define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TI... //晶振11.0592MHz #include #define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TIM1init(void)//定时器1初始化 { TMOD=0x22;//定时器1工作方式2,TH1是重装值,TL1是初值 TH1=0xd2; //重载值 溢出一次约50us TL1=0xd2; //初始化值 ET1=1; //开中断 } void EX1init(void) //外部中断1初始化 { IT1 = 1; //指定外部中断0下降沿触发,INT1 (P3.3) EA = 1; //开总中断 } /*------------------------------------------------ 定时器1中断处理 ------------------------------------------------*/ void tim1_isr (void) interrupt 3 { irtime++; //用于计数2个下降沿之间的时间 } /*------------------------------------------------ 外部中断1中断处理 ------------------------------------------------*/ void EX1_ISR (void) interrupt 2 //外部中断1服务函数 { dis=340*(irtime/2.0)*50/10000; irtime=0; TR1=0; EX1=0; } void test(void) { trig=1; delay_20us(); trig=0; EX1=1; while(!echo); TR1=1; } void main(void) { TIM1init(); EX1init(); while(1) { test(); display(dis); } } 主函数调用test,然后在数码管上显示(显示函数略过),测试的时候,在数码管上显示的距离明显不对,还各种不稳定,有时就个位数上显示一个1或2,不知道怎么回事 展开
2016-01-25 09:17:10 369 2
质量流量计怎么发油?谁能帮我详细解释下质量流量计的具体使用方法
 
2012-10-25 11:18:15 619 3
求一份verilog的超声波测距程序
基本要求: 1) 测量距离不低于0.5m,测量精度优于0.1m。 2) 数字显示测量结果,并能动态更新,更新周期约为0.5s。 拓展要求: 1) 测量距离大于1m,测量精度优于0.05m,显示精度为0.01m,显示要求同上。 2) 数字显示测量结果的更新周期可调,显示... 基本要求: 1) 测量距离不低于0.5m,测量精度优于0.1m。 2) 数字显示测量结果,并能动态更新,更新周期约为0.5s。 拓展要求: 1) 测量距离大于1m,测量精度优于0.05m,显示精度为0.01m,显示要求同上。 2) 数字显示测量结果的更新周期可调,显示稳定。当距离小于0.5m时,通过蜂鸣器给出间歇式的“滴-滴”声响告警;当距离小于0.3m时,告警声响变得更加急促。 3) 其它功能(如使用多个超声波传感器实现汽车倒车雷达的功能)。 拓展要求可要可不要,求做过的大佬给份程序谢谢。 展开
2018-07-02 06:15:24 270 1
我用AT89S52做频率计,谁能帮我把这个程序添加详细的注释
#include unsigned char code Tab[]={ 0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE, 0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00,}; unsigned char cfDispPos=0; unsigned long ifTimes=0; unsigned long Freq=0; unsigned long DispNow;... #include unsigned char code Tab[]={ 0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE, 0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00,}; unsigned char cfDispPos=0; unsigned long ifTimes=0; unsigned long Freq=0; unsigned long DispNow; bit bfComplete=0; bit bfTesting=0; unsigned char Method=0; unsigned int ifms=0; bit bfShow=1; sbit KEY=P3^7; void Delay(int t) { while(t--); } void StartFreq(unsigned char Method) { switch(Method) { case 0: {EX0=1; //从中断开定时器,测周法
IT0=1;
TMOD=0x11; //Timer0 for precise Time
EA=1;
break;} case 1: {//计数测频法 TH0=0xf8;TL0=0x30; //1ms ifTimes=0; TMOD=0x51; //Time0 for precise Time ,Timer1 for counter TH1=0;TL1=0; EA=1; ET0=1; TR0=1;TR1=1;ET1=1; PT1=1; }default:break; } } void timer0 (void) interrupt 1 { switch(Method) { case 0: //用于计数功能 ifTimes++; break; case 1: //work with T1 TH0=0xf8; TL0=0x30; //1ms ifTimes++; if(ifTimes>2000) //2s { TR1=0; TR0=0; EA=0; ET0=0; ET1=0; Freq+=(TH1*256+TL1); Freq=Freq*10/2; //Keep One bit for '.' if(Freq>900000)Freq=0; bfShow=1; bfComplete=1; } break; default:break; } } void timer1(void) interrupt 3 //测频测周 { switch(Method) { case 0: TH1=0xf8; TL1=0x30; ifms++; if(ifms>1000) { ifms=0;bfShow=1; } case 1: Freq+=65536;break; default:break; } } void EX0_IRQ(void) interrupt 0 //测周法使用 { if(!bfTesting) //first falling edge { TH0=0x0;TL0=0x0; //1ms ifTimes=0; ET0=1; TR0=1; //Timer0 for Time TH1=0xf8;TL1=0x30; TR1=1;ET1=1; bfTesting=1; } else //second falling edge { EA=0;TR0=0; ET0=0; EX0=0; //ET0=0; Freq=(ifTimes*65536+256*TH0+TL0)/2;// us S Freq=10000000/Freq; //Keep one bit for '.' bfComplete=1; } } void SystemInitial(void) { SCON=0X00; //TH0=0xfc;TL0=0x18; //0.5ms StartFreq(Method); } void main(void) { SystemInitial(); while(1) { if(!KEY) { Delay(2000); if(!KEY) { while(!KEY); if(Method) Method=0; else Method=1; DispNow=0; StartFreq(Method); } } if(bfComplete)//开始测量 { if(bfShow) { bfShow=0; DispNow=Freq; } Freq=0; bfComplete=0; bfTesting=0; StartFreq(Method); } {//显示 switch(cfDispPos) { case 0:P2=0x6E; P0=0xFE;break; case 1:P2=Tab[DispNow/1%10]; P0=0xFD;break; case 2:P2=Tab[DispNow/10%10]|(~Tab[8]); P0=0xFB;break; case 3:P2=Tab[DispNow/10]; P0=0xF7;break; case 4:P2=Tab[DispNow/1000%10]; P0=0xEF;break; case 5:P2=Tab[DispNow/10000%10]; P0=0xDF;break; case 6:P2=Tab[DispNow/100000%10]; P0=0xBF;break; case 7:if(Method)P2=0x02;else P2=0; P0=0x7F;break; } Delay(100);cfDispPos++; if(cfDispPos>=8){cfDispPos=0;} } } } 展开
2018-12-03 12:11:00 468 0
帮我分析下这个开关电源的原理图?
2013-01-24 03:28:42 412 3
求一个cc2530 超声波模块测距的程序
 
2013-08-02 21:14:16 352 2
基于89C52单片机的HC-SR04超声波测距系统程序
 
2018-12-09 01:37:42 331 0
详细解释下测量当中GPS-RTK ,RTK的含义
 
2013-07-26 14:23:04 753 1
调节阀的功能和结构详细解释下啊
 
2009-04-29 20:12:40 351 2
STM32下的串口超声测距程序应该怎么写?
超声测距模块的应用是这样的:接在STM32芯片的串口3上,由串口往模块以波特率9600-8-N-1发送启动信号0x55,由模块检测回波信号和校正,若成功则向stm32返回两字节的距离数据,diyi个字节为距离的高8位Hdata,第二个字节为距离的低8位Ldata。则实际距离为Hdata... 超声测距模块的应用是这样的:接在STM32芯片的串口3上,由串口往模块以波特率9600-8-N-1发送启动信号0x55,由模块检测回波信号和校正,若成功则向stm32返回两字节的距离数据,diyi个字节为距离的高8位Hdata,第二个字节为距离的低8位Ldata。则实际距离为Hdata*256+Ldata。现要求间隔一秒循环测量并循环将测得结果打印至串口1。 求例程或思路。 展开
2015-05-25 08:04:27 406 1
求一份如图 基于单片机超声波倒车测距的程序
2016-08-01 00:14:58 618 1
plc程序解释
这个plc程序什么意思?求大神帮忙解释一下, 1.整个程序什么意思 2.中间两个常闭代表什么 3.diyi个常开T0是否可以理解为通电后常开变为常闭
2018-06-12 22:30:11 563 1
谁有基于AVR atmega16超声波测距程序 发给我
 
2011-04-03 04:30:42 337 1
帮忙解释下这个继电器用法和规格
网上买的,找半天找不到它资料,而且有些资料也看不懂,本人理解力有点问题(还望见谅)。下面有图片,上面标好了号,希望能根据标号一一说明下!那个引脚图希望说下,各引脚是怎么接的,接哪的?正面的电压电流那些,希望说的通俗一点,谢了!
2011-04-11 00:42:17 634 5
超声波测距
time=timeH*256+timeL; distance=time*0.0172; //厘米 0.0172怎么来的 , distance怎么来的 求具体转换过程,只要真心,一定采纳
2013-11-23 11:03:17 422 1
血尿酸偏高谁知道啊?详细帮我介绍下吧
 
2012-05-05 03:35:17 407 1

12月突出贡献榜

推荐主页

最新话题