lv123123123 发表于 2011-4-29 22:22:59

求基于51单片机的超声波测距仪电路 原理图

基于51单片机的超声波测距    要求测距4米以上用74ls04cx20106a为主要元件要电路图哦还有简单c程序哦   哪位大仙懂的帮小弟一把小弟在此先谢过了急急急急!!!!!!!!!!!!

lv123123123 发表于 2011-4-29 22:23:55

五一过后就要喽   急急急啊!!

lv123123123 发表于 2011-4-29 22:27:42

之前做的电路图       http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_635297X7ENSC.png
(原文件名:QQ截图未命名.png)

lv123123123 发表于 2011-4-29 22:28:42

测的距离就0.5米左右   不符合要求啊   求大侠帮忙

lv123123123 发表于 2011-4-29 22:39:37

探头是       型号:TCT40-16R/T(直径16mm)


1.标称频率(KHz):40KHz

2.发射声压at10V(0dB=0.02mPa):≥117dB

3.接收灵敏度at40KHz (0dB=V/ubar):≥-65dB

4.静电容量at1KHz,<1V (PF):2000±30%
一个为接收,一个为发射,收发分体,T为发射,R为接收收发称对出售,不拆卖。


标有T字样的是发射头,标有R字样的是接收头

以下资料只供参考.

Part number             NU25C16T-1   

Using Method         Transmitter   

Construction            Open structure type   

Center frequency      40.0±1.0KHz      

Sound pressure level    112dB min.   

Sensitivity      

Capacitance             2400Pf±20%   

Maximum input voltage   60Vp-p   

Directivity             60°±15° (-6dB)   

Operating temperature   -20°C~+70°C   

Storage Temperature   -40°C~+85°C 

Weight               2.2g

lv123123123 发表于 2011-5-22 07:52:39

终于做出来了   哈哈哈   传点资料吧
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_641950L3LJOW.JPG
(原文件名:???ù?¨.JPG)

lv123123123 发表于 2011-5-22 07:54:09

距离在4米左右

at89S53 发表于 2011-5-23 01:43:05

楼主你好!能否把你成功的资料给大家共享一下,对于这个设计我还有很多疑问。能否联系上你,我的QQ是:844871403

mrsz 发表于 2011-5-29 14:45:47

这不是今年比赛的题目么

lv123123123 发表于 2011-6-1 23:23:30

附上源程序

   
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit send=P0^0;       
sbit recept=P3^2;
uint t=0,n=0,flag=0,c=0;
uint temp1,temp2;
int b,s,g,f;
sbit RS=P2^4;
sbit RW=P2^5;
sbit EN=P2^6;
sbit in=P3^2;
sbit out=P3^3;
sbit d1=P1^0;
uchar code num[]="0123456789";
uchar code error[]="too short";
void init();
void delay(uint t);
void delay1(uint t);
void write_com(uchar com);
void write_data(uchar date);
bit LCD_Check_Busy(void) ;
bit LCD_Check_Busy(void)
{
       P0= 0xFF;
       RS=0;
       RW=1;
       EN=0;
       _nop_();
       EN=1;
       return (bit)(P0 & 0x80);
}
void init()
{
        EA=1;
        TMOD=0X11;
        write_com(0x38);/*显示模式设置*/
        delay1(10);
        write_com(0x38);/*显示模式设置*/
        delay1(10);
        write_com(0x38);/*显示模式设置*/
        delay1(10);
        write_com(0x38);/*显示模式设置*/
        delay1(10);
        write_com(0x0c);/*显示开及光标设置*/
        delay1(10);
        write_com(0x06);/*显示光标移动设置*/
        delay1(10);
        write_com(0x01);
        delay1(10);
}
void write_com(uchar com)
{
    while(LCD_Check_Busy());
        RS=0;
        RW=0;
        EN=1;
        P0=com;
        delay1(70);
        EN=0;
}
void write_data(uchar date)
{
       while(LCD_Check_Busy());
        RS=1;
        RW=0;
        EN=1;
        P0=date;
        delay1(70);
        EN=0;
}
void delay(uint i)
{
        uchar x, j;
        for(j=0; j<i; j++)
        for(x=0; x<=140; x++);       
}
void delay1(uint i)
{
        uchar x, j;
        for(j=0; j<i; j++)
        for(x=0; x<=110; x++)        ;       
}
voiddelay100us()
{
    uchar i;
      for(i=0;i<100;i++)   ;
}
void T_50ms()                                           //T0        装入初值50MS
{
        TH0=0x3c;
        TL0=0xb0;
}
void T1_in()                                           //T1        装入初值
{
        TH1=0x8a;
        TL1=0xd0;
}
void sendwave()   
{
       int i;
       TR1=1;                  //开启T1计时
       for(i=8;i>0;i--)
       {               
               send=!send;
                       _nop_();
                       _nop_();               
                       _nop_();
                       _nop_();
                       _nop_();
                       _nop_();
                       _nop_();
                       _nop_();
                       _nop_();

                       
                          
       }
       send=1;
}               
void main()
{       
        init();
        T_50ms();
        ET0=1;
        TR0=1;
        while(1)
        {
               
        }
}
void recept_break() interrupt 0
{       

        EX0=0;
        d1=0;
        t=(TH1-0x8a)*256+(TL1-0xd0);        //计算时间
        n=t*0.17-26; //测出单位为MM
        flag=1;       
        ET1=0;
                b=(int)(n/1000);
                s=(int)(n%1000/100);       
                g=(int)(n%1000%100/10);       
                f=(int)(n%1000%100%10);       
                write_com(0x80);
                delay1(50);
                write_data(num);
                delay1(50);
                write_data(num);
                delay1(50);
                write_data(num);
                delay1(50);
                write_data('.');
                delay1(50);
                write_data(num);
                delay1(50);                                                       
                write_data('c');
                delay1(50);
                write_data('m');
                delay1(50);
                delay1(80);
       

}
void Timer0() interrupt 1 //计时器0程序
{

        TH0=0x3c;
        TL0=0xb0;       
        T1_in();        //T1计时器装入数       
        sendwave();       
        delay1(1);                        //延迟1ms
        ET1=1;                //开启T1中断
        EX0=1;                                       //开启外部中断
}                  
void Timer1() interrupt 3       //计时器1程序
{
        EX0=0;
        TR1=0;
}

lv123123123 发表于 2011-6-1 23:24:49

哪位大侠改进下啊!!!

avr-arm 发表于 2011-6-2 08:13:18

我的帖子有,所有资料开源,2cm-400cm 精度2mm-4mm,稳定性不错,未做任何软件滤波,每次结果直接串口输出
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4771251&bbs_page_no=1&search_mode=3&search_text=avr-arm&bbs_id=9999

申明--本作品无法量产,无广告嫌疑!小弟感谢ourdev这样好的交流平台,爱好者们随便拿来做参考设计,吼吼

cyc2009 发表于 2011-6-2 08:56:36

mark

sun05134863 发表于 2011-6-2 16:41:16

回复【2楼】lv123123123 lv
-----------------------------------------------------------------------

你好,我想问下你图的右边74ls04是干啥的呢?

sun05134863 发表于 2011-6-2 18:00:50

回复【楼主位】lv123123123 lv
-----------------------------------------------------------------------

我现在也在做一个单片机控制超声波的测距设计,我还想问一下,显示的TC1602和LCM1602有啥不一样呢,我看网上的介绍也少,因为我接触的少,所以不懂得很多,楼主知道的话,给我讲讲 谢谢

sun05134863 发表于 2011-6-2 18:01:43

回复【楼主位】lv123123123 lv
-----------------------------------------------------------------------

我的QQ是943884844 可以的话 加我好友 谢谢

lv123123123 发表于 2011-6-2 18:07:23

要如何减小盲区呢???   改程序??? 该电路???

lv123123123 发表于 2011-6-2 23:33:56

qq1033294817   方便联系

lv123123123 发表于 2011-6-6 21:02:51

回复【17楼】sun05134863
-----------------------------------------------------------------------

我的q 1033294817

shennaijun0433 发表于 2011-6-10 19:31:52

mark

Aaron_John 发表于 2011-8-12 09:46:44

mark

ZWzw007aa 发表于 2012-3-6 13:29:02

mark

lv123123123 发表于 2012-3-6 16:25:48

回复【25楼】ZWzw007aa
-----------------------------------------------------------------------

小伟子

h7abel 发表于 2012-3-29 12:00:57

你们都好强啊{:funk:}

lv123123123 发表于 2012-4-2 23:49:22

h7abel 发表于 2012-3-29 12:00 static/image/common/back.gif
你们都好强啊

只要肯学都会的,加油啊

a312835782 发表于 2012-4-3 15:13:29

这个论坛搜索下就有的,挺多
页: [1]
查看完整版本: 求基于51单片机的超声波测距仪电路 原理图