|
小弟做了一个超声波测距模块,可是怎么调都不好使, 不知道为什么在发射头那边测得的波形是18KHZ(想要40KHZ)的方波,接收头那一边测得是36--46KHZ的不规则波形,这是原理图ourdev_602529MCVZGU.pdf(文件大小:428K) (原文件名:原理图.pdf)
还有CX20106的6脚接的电容,我换成了331的,并且为了调试 , 特意弄了一个简单程序希望高手指点指点,帮我找找错误。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit fa=P1^2;
sbit liang=P1^1;
uint j,k=0;
uchar rec_flag=0;
/*1MS为单位的延时程序*/
void delay_1ms(uchar x)
{
uchar i;
while(x--)
for(i=0;i<100;i++);
}
void main()
{
TMOD=0x20; /*T1为8位自动重装模式*/
TH1=0xf2; /*12us计数初值*/
TL1=0xf2;
EA=1;
ET1=1;
TR1=1;
IT0=1;
EX0=1;
fa=0;
while(1)
{
while(rec_flag)
{
liang=0;
delay_1ms(50);
}
}
}
/*定时器T1中断程序*/
void TIMER1() interrupt 3
{
fa=!fa;
k++;
if(k>=4) /*超声波肪冲个数控制(为赋值的一半)*/
{
k=0;
// TR1=0;
// ET1=0;
// for(j=200;j>0;j--); /*1ms延时避开盲区*/
// for(j=200;j>0;j--);
// for(j=200;j>0;j--);
/*开启外部中断0*/
}
}
/*外部中断0程序*/
void PINT0() interrupt 0
{
ET0=0;
EA=0;
rec_flag=1; /*接收成功标志位置1*/
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|