自制简单超声波模块问题

[复制链接]
3067|8
 楼主| lison0103 发表于 2012-3-7 21:19 | 显示全部楼层 |阅读模式
自制的超声波模块,用的是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电容的电路图,不知道这两种有没有区别。这是我第一次自己做一个小东西,希望大家指点一下,看看有什么问题,感激不尽!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
chunyang 发表于 2012-3-8 23:55 | 显示全部楼层
首先,40KHz要尽量准确,其次用示波器查看接收侧的信号强度,然后才是软件。
tobevan 发表于 2012-3-18 23:20 | 显示全部楼层
这个接收电路我试过,不行的。
guoyanbird 发表于 2012-10-16 14:49 | 显示全部楼层
楼主的东东完成了吗,我也在做,而且超声波探头前要加个板挡着,测不出来啊……
鼎志昌盛 发表于 2012-11-11 12:46 | 显示全部楼层
我试过,4米以内可测
鼎志昌盛 发表于 2012-11-11 12:47 | 显示全部楼层
我试过,4米以内可测
guolonglee 发表于 2012-11-14 16:23 | 显示全部楼层
pinghaowin 发表于 2012-11-27 15:57 | 显示全部楼层
5# 鼎志昌盛 有程序吗 ? 能给我一份吗? 我的邮箱pinghaowin@sina.com
xuxikfg 发表于 2012-11-27 21:01 | 显示全部楼层
这个电路距离做不远
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部