高级会员

- 积分
- 726
- 金钱
- 726
- 注册时间
- 2014-3-6
- 在线时间
- 19 小时
|
超声波模块是HC-SR04,Trig用P1^0控制,ECHO用P1^1控制。我想把测出来啊的距离通过串口读出来,可是串口那边全是乱码。不知道程序错在哪,哪位高手解答一下??急吖!!明天就比赛了。。。
程序:#include"reg52.h"
#include"intrins.h"
sbit TRIG=P1^0;
sbit ECHO=P1^1;
#define uchar unsigned char
#define uint unsigned int
uchar timer,aa,flag,s;
uint time;
void delay(uint a)
{
uchar x,y;
for(x=a;x>0;x--)
for(y=110;y>0;y--);
}
void Conut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
s=time*1.7/10000;
}
int main(void)
{
TMOD=0x21;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
TH0=0;
TL0=0;
ET0=1;
EA=1;
ES=1;
while(1)
{
if(flag==1)
{
ES=0;
SBUF=aa;
while(!TI);
TI=0;
ES=1;
flag=0;
}
TRIG=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TRIG=0;
led=!led;
while(!ECHO); //测高电平时间
TR0=1;
while(ECHO);
TR0=0;
SBUF=s;
while(!TI);
TI=0;
}
}
void ser() interrupt 4
{
RI=0;
aa=SBUF;
flag=1;
}
|
|