打印

自制简单超声波模块问题

[复制链接]
1925|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
自制的超声波模块,用的是74ALS04驱动发射,用CX20106来接收,用单片机一个IO口软件产生40KHZ的方波发送,另一个端口接收。
我的程序:
#include <reg52.H> //器件配置文件
#include <intrins.h>
#define uchar unsigned char //定义一下方便使用
#define uint unsigned int
#define ulong unsigned long
sbit dula=P2^0;
sbit wela=P2^1;
sbit RX=P3^2;
sbit TX=P3^7;
uchar flag=0,tt=0,i=0;
uint ge=0,shi=0,bai=0,qian=0,S=0,time;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,0x8e,
0x89,0x86,0xc7,0xc0,0xff};
void delay(uint z)
{
uint t1,y;
for(t1=z;t1>0;t1--)
for(y=110;y>0;y--);
}
void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
dula=1;
P1=table[qian];
dula=0;
P1=0x01;
wela=1;
P1=0x01;
wela=0;
delay(4);

dula=1;
P1=table[bai];
dula=0;
P1=0x00;
wela=1;
P1=0x04;
wela=0;
delay(4);

dula=1;
P1=table[shi];
dula=0;
P1=0x00;
wela=1;
P1=0x02;
wela=0;
delay(4);

dula=1;
P1=table[ge];
dula=0;
P1=0x00;
wela=1;
P1=0x08;
wela=0;
delay(1);
}
void tx() //从P3.7发出40KHz的脉冲
{
uchar n,p;
TR0=1;
EX0=1;
RX=1;
for(n=0;n<40;n++)
{
TX=0;
for(p=0;p<3;p++);
TX=1;
for(p=0;p<2;p++);
TX=1;
}
}
void Conut(void)
{
flag=0;
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=time*0.17; //算出来是MM
qian=S/1000;
bai=S%1000/100;
shi=S%100/10;
ge=S%10;

display(qian,bai,shi,ge);
}


void main(void)
{
IT0=1; //外部中断低电平有效
TMOD=0x01; //设T0为方式1,GATE=1;
TH0=0;
TL0=0;
ET0=1; //允许T0中断
EA=1; //开启总中断
//RX=1;

while(1)
{

delay(13); //等待一会再发
tx();
while(!flag);
Conut();
}
}
void exter0() interrupt 0
{

TR0=0;
EX0=0;
flag=1;
}
void TimeOut(void) interrupt 1
{
TR0=0;
ET0=0;
EX0=0;
flag=1;

}
用的是stc89c52单片机
结果我直接把做好的模块放压在台面上,数码管也显示46mm,把它拿起来,数码管有反应,但是最多也只能到九十多mm,也就是只能检测5厘米,另外我看其他人的程序都是下降沿触发的,但是我试了用下降沿触发,结果没反应,用低电平还能检测几厘米,不知道是不是干扰而已,实际没有检测到。
电路图用的是网上的,不过接收电路CX20106我看到网上有两种接法,我用的是在端口1上接473电容的电路图,不知道这两种有没有区别。这是我第一次自己做一个小东西,希望大家指点一下,看看有什么问题,感激不尽!

ourdev_422392.jpg (48.13 KB )

ourdev_422392.jpg

ourdev_701390HDSISR.jpg (58.28 KB )

ourdev_701390HDSISR.jpg

ourdev_701391C4C79L.jpg (61.16 KB )

ourdev_701391C4C79L.jpg

相关帖子

沙发
chunyang| | 2012-3-8 23:55 | 只看该作者
首先,40KHz要尽量准确,其次用示波器查看接收侧的信号强度,然后才是软件。

使用特权

评论回复
板凳
tobevan| | 2012-3-18 23:20 | 只看该作者
这个接收电路我试过,不行的。

使用特权

评论回复
地板
guoyanbird| | 2012-10-16 14:49 | 只看该作者
楼主的东东完成了吗,我也在做,而且超声波探头前要加个板挡着,测不出来啊……

使用特权

评论回复
5
鼎志昌盛| | 2012-11-11 12:46 | 只看该作者
我试过,4米以内可测

使用特权

评论回复
6
鼎志昌盛| | 2012-11-11 12:47 | 只看该作者
我试过,4米以内可测

使用特权

评论回复
7
guolonglee| | 2012-11-14 16:23 | 只看该作者
4米

使用特权

评论回复
8
pinghaowin| | 2012-11-27 15:57 | 只看该作者
5# 鼎志昌盛 有程序吗 ? 能给我一份吗? 我的邮箱pinghaowin@sina.com

使用特权

评论回复
9
xuxikfg| | 2012-11-27 21:01 | 只看该作者
这个电路距离做不远

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

14

帖子

0

粉丝