OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6459|回复: 5

超声波测距,求大侠帮助

[复制链接]

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
发表于 2012-9-1 09:39:44 | 显示全部楼层 |阅读模式
#include"reg52.h"
#define u unsigned int
#define uchar unsigned char
uchar code table0[]="距离是:";
uchar code table[]="0123456789";
u s,time;
uchar bai,shi,ge,qian;
sbit trig=P2^1;
sbit echo=P2^2;
sbit en=P3^4;
sbit rs=P3^5;
sbit rw=P3^6;
sbit psb=P3^7;
void delay(u x)
{
 u y,z;
 for(y=x;y>0;y--)
  for(z=110;z>0;z--);
}
void mai()
{
 trig=0;
 delay(1);
 trig=1;
 delay(1);         
 trig=0;
}
void wrcom(uchar com)
{
 rs=0;
 rw=0;
 0=com;
 delay(1);
 en=1;
 delay(1);
 en=0;
}
void wrdat(uchar dat)
{
 rs=1;
 rw=0;
 0=dat;
 delay(1);
 en=1;
 delay(1);
 en=0;
}
void init()
{
 EA=1;
 TMOD=0x01;
 ET0=1;
 TH0=0;
 TL0=0;
 psb=1;
 wrcom(0x38);
 wrcom(0x0c);
 wrcom(0x01);
}
void dis0()
{
 uchar i;
 wrcom(0x80);
 for(i=0;i<8;i++)
 {
  wrdat(table0);
  delay(1);
 }
 wrcom(0x86);
 wrdat('c');
 wrdat('m');
}
void dis()
{
 wrcom(0x84);
 wrdat(table[qian]);
 wrdat(table[bai]);
 wrdat(table[shi]);
 wrdat(table[ge]);
}
void jisuan()
{
 time=TH0*256+TL0;
 s=time*1.87/100+1;
 TH0=0;
 TL0=0;
 if(s>9999)
 {
  uchar i;
  wrcom(0x86);
  for(i=0;i<4;i++)
  {
   wrdat('-');
  }
 }
 else
 {
  qian=s/1000;
  bai=s%1000/100;
  shi=s%100/10;
  ge=s%10;
 }
}
void main()
{
 init();
 dis0();
 while(1)
 {
  mai();
  while(!echo);
  TR0=1;
  while(echo);
  TR0=0;
  jisuan();
  dis();
  delay(1000);
 }
}
void timer0() interrupt 1
{
 TH0=0;
 TL0=0;
}

在测距时,显示的数字总是卡死
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-9-1 10:04:58 | 显示全部楼层
你分析过问题没有?
你自己觉得最可能出问题在哪里?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
 楼主| 发表于 2012-9-1 10:11:02 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
小弟觉得应该是程序出问题了,可是就是检查不出哪里出错,有时候程序可以执行,但是一变换距离就卡了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-9-1 11:43:34 | 显示全部楼层
我也觉得是程序有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

31

主题

270

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2012-5-18
在线时间
6 小时
发表于 2012-9-1 12:24:28 | 显示全部楼层
回复【3楼】电子狼:
---------------------------------
肯定是程序有问题吗嘛~
谁来买我的火柴.....
回复 支持 反对

使用道具 举报

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
 楼主| 发表于 2012-9-1 18:14:39 | 显示全部楼层
谢谢大侠们,问题解决
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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