智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3890|回复: 12
打印 上一主题 下一主题

求助STC12C5A60S2的超声波测距问题

  [复制链接]

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
跳转到指定楼层
1#
发表于 2012-11-7 16:26:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
用普通51是可以的,但换上加强型的就不行了trig=1;//   delay20us();   trig=0; 这一句,我用while语句循环,输出波形是预料中的,但是衔接起来就不行了,时间被拉得很长,软件就测不到超声波模块的echo的信号了(因为回复信号在trig还没有降到低电平前就完了)困惑我好几天了#include<reg51.h>
#include<intrins.h>
#include "6x8.h"
#include "LQ12864.h"
#define uint unsigned int
#define uchar unsigned char
sbit trig=P1^7;
sbit echo=P3^2; uint succeed;
float t,d;
uint distance,timeh,timel;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay20us()
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
} void init_time1()
{
TMOD=0x11; //两个定时器都工作为16位定时器
TH1=0; //清零
TL1=0; //
}
void T1_time() interrupt 3
{
TH1=0;
TL1=0;
succeed=0;
EA=0;
}
void ex0()interrupt 0
{
timeh=TH1;
timel=TL1;
t=(timeh*256+timel)*1.09;
d=t*0.17;
distance=(int)d;
succeed=1;
TH1=0;
TL1=0;
EA=0;
}void main()
{
LCD_Init();
LCD_6x8(60,0,"start");
init_time1();
while(1)
{
trig=0;
echo=0;
succeed=0;
trig=1;
delay20us();
trig=0;

while(echo==0);
EA=1;
EX0=1;
ET1=1; //定时器1中断允许
TR1=1;
delay(60);
switch(succeed)
{
case 1:
LCD_Cler_6x8(0,0,4);
display();
break;
case 0:
LCD_Cler_6x8(0,2,6);
displayerror();
break;
}
// delay(1000);
}
}
程序就死在红色字体那边



0

主题

136

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3714
QQ
威望
1952
贡献
1206
兑换币
1190
注册时间
2013-8-21
在线时间
278 小时
13#
发表于 2015-1-5 18:47:33 | 只看该作者
楼主你的问题解决了吗?如果解决了,和大家分享一下哦。
回复 支持 反对

使用道具 举报

0

主题

136

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3714
QQ
威望
1952
贡献
1206
兑换币
1190
注册时间
2013-8-21
在线时间
278 小时
12#
发表于 2015-1-5 18:46:46 | 只看该作者
#include<reg51.h>
你把这个头文件给换掉换成你所用的芯片的头文件试试。
回复 支持 反对

使用道具 举报

0

主题

49

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1462
威望
520
贡献
704
兑换币
338
注册时间
2014-7-24
在线时间
119 小时
毕业学校
湖北工业大学
11#
发表于 2014-7-25 12:47:10 | 只看该作者
程序应该没有进入中断。。。
回复 支持 反对

使用道具 举报

19

主题

171

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2786
威望
1410
贡献
766
兑换币
880
注册时间
2013-12-25
在线时间
305 小时
10#
发表于 2014-7-17 20:55:30 | 只看该作者
我也一样,不过我一开始是在开发板上实验的,后来感觉程序没错,换了个自己焊的最小系统,就可以了。(我没有仔细看你的程序哈
回复 支持 反对

使用道具 举报

13

主题

99

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2166
威望
970
贡献
536
兑换币
607
注册时间
2013-7-29
在线时间
330 小时
9#
发表于 2014-6-29 16:22:20 | 只看该作者
遇到和楼主一样的问题,请问楼主有没有解决?怎么解决的?
回复 支持 反对

使用道具 举报

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
8#
 楼主| 发表于 2012-12-31 20:25:57 | 只看该作者
夏唯夕 发表于 2012-12-31 19:01

????????
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

注册会员

Rank: 2

积分
71
威望
51
贡献
12
兑换币
25
注册时间
2012-12-29
在线时间
4 小时
毕业学校
wzdx
7#
发表于 2012-12-31 19:01:13 | 只看该作者
回复 支持 反对

使用道具 举报

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
6#
 楼主| 发表于 2012-12-24 10:47:07 | 只看该作者
冰葑世纪 发表于 2012-12-24 08:31
试下更改头文件

哪个头文件?
回复 支持 反对

使用道具 举报

8

主题

442

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4937
威望
1850
贡献
1481
兑换币
215
注册时间
2011-6-22
在线时间
803 小时
5#
发表于 2012-12-24 08:31:05 | 只看该作者
试下更改头文件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 00:01 , Processed in 0.064216 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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