搜索
bottom↓
回复: 29

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

[复制链接]

出0入0汤圆

发表于 2011-4-29 22:22:59 | 显示全部楼层 |阅读模式
基于51单片机的超声波测距    要求测距4米以上  用74ls04  cx20106a  为主要元件  要电路图哦还有简单c程序哦   哪位大仙懂的  帮小弟一把  小弟在此先谢过了  急急急急!!!!!!!!!!!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-4-29 22:23:55 | 显示全部楼层
五一过后就要喽   急急急啊!!

出0入0汤圆

 楼主| 发表于 2011-4-29 22:27:42 | 显示全部楼层
之前做的电路图      
(原文件名:QQ截图未命名.png)

出0入0汤圆

 楼主| 发表于 2011-4-29 22:28:42 | 显示全部楼层
测的距离就0.5米左右   不符合要求啊     求大侠帮忙

出0入0汤圆

 楼主| 发表于 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

出0入0汤圆

 楼主| 发表于 2011-5-22 07:52:39 | 显示全部楼层
终于做出来了   哈哈哈     传点资料吧

(原文件名:???ù?¨.JPG)

出0入0汤圆

 楼主| 发表于 2011-5-22 07:54:09 | 显示全部楼层
距离在4米左右

出0入0汤圆

发表于 2011-5-23 01:43:05 | 显示全部楼层
楼主你好!能否把你成功的资料给大家共享一下,对于这个设计我还有很多疑问。能否联系上你,我的QQ是:844871403

出0入0汤圆

发表于 2011-5-29 14:45:47 | 显示全部楼层
这不是今年比赛的题目么

出0入0汤圆

 楼主| 发表于 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++)        ;       
}
void  delay100us()
{
    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[g]);
                delay1(50);
                write_data('.');
                delay1(50);
                write_data(num[f]);
                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;
}

出0入0汤圆

 楼主| 发表于 2011-6-1 23:24:49 | 显示全部楼层
哪位大侠改进下啊!!!

出0入0汤圆

发表于 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这样好的交流平台,爱好者们随便拿来做参考设计,吼吼

出0入0汤圆

发表于 2011-6-2 08:56:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-2 16:41:16 | 显示全部楼层
回复【2楼】lv123123123 lv
-----------------------------------------------------------------------

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

出0入0汤圆

发表于 2011-6-2 18:00:50 | 显示全部楼层
回复【楼主位】lv123123123 lv
-----------------------------------------------------------------------

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

出0入0汤圆

发表于 2011-6-2 18:01:43 | 显示全部楼层
回复【楼主位】lv123123123 lv
-----------------------------------------------------------------------

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

出0入0汤圆

 楼主| 发表于 2011-6-2 18:07:23 | 显示全部楼层
要如何减小盲区呢???   改程序  ??? 该电路???

出0入0汤圆

 楼主| 发表于 2011-6-2 23:33:56 | 显示全部楼层
qq  1033294817   方便联系

出0入0汤圆

 楼主| 发表于 2011-6-6 21:02:51 | 显示全部楼层
回复【17楼】sun05134863
-----------------------------------------------------------------------

我的q 1033294817

出0入0汤圆

发表于 2011-6-10 19:31:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-12 09:46:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-6 13:29:02 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2012-3-6 16:25:48 | 显示全部楼层
回复【25楼】ZWzw007aa
-----------------------------------------------------------------------

小伟子

出0入0汤圆

发表于 2012-3-29 12:00:57 | 显示全部楼层
你们都好强啊

出0入0汤圆

 楼主| 发表于 2012-4-2 23:49:22 | 显示全部楼层
h7abel 发表于 2012-3-29 12:00
你们都好强啊

只要肯学都会的,加油啊

出0入0汤圆

发表于 2012-4-3 15:13:29 来自手机 | 显示全部楼层
这个论坛搜索下就有的,挺多
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 03:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表