打印

测距程序问题

[复制链接]
1685|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2012-11-17 07:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下程序出不来结果,哪位大侠指点一下
#include<reg52.h>
#define date P0
#define uchar unsigned char
#define uint unsigned int
sbit D=P2^2;    //段码控制位
sbit W=P2^3;    //位码控制位
sbit T=P1^0;    //发射控制位
//sbit S=P2^0;    //蜂鸣器控制位
uchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};    //0-9编码
uchar code wei[]={0xef,0xdf,0xbf,0x7f};    //数码管四个位编码
uchar temp[3];
uint timeh,timel,time;
bit succeed_flag;
void delayus(uchar t)  //延时子函数
{
while(t--);   
}
void delayms(uint o)
{
while(o--)
{
delayus(245);    //大约延时1ms ,12m晶振
delayus(245);
}
}
void desplay(uint num)      //显示距离子函数
{

uint ge,shi,bai,qian,i;
ge=(num%1000)%100%10;
shi=(num%1000)%100/10;
bai=num%1000/100;
qian=num/1000;
temp[3]=duan[ge];
temp[2]=duan[shi];
temp[1]=duan[bai];
temp[0]=duan[qian];
for(i=0;i<4;i++)
{
date=wei[i];
W=1;
W=0;
date=temp[i];
D=1;
D=0;
delayus(20);
}
}
void init_timer0()          //定时器初始化
{
TMOD|=0x01;
TH0=(65536-5)/256;
     TL0=(65536-5)%256;

}
void main()
{  
while(1)
{
uint distance;   
EA=0;
T=1;     
T=0;  
delayus(7);    //产生一个20us的脉冲
T=1;
init_timer0();
EA=1; IT0=1;ET0=1; TR0=1; EX0=1;  
// while(succeed_flag==0);   
if(succeed_flag==1)
{
  distance=time*7;
  desplay(distance);  
  succeed_flag=0;
  time=0;
}
else
{
   
  desplay(125);
}
}

}

void timer0() interrupt 1      //定时器中断
{      
TH0=(65536-5)/256;
     TL0=(65536-5)%256;
time++;
}

void ext() interrupt 0      //外部中断0
{
succeed_flag=1;
EX0=0;
TR0=0;     
}

相关帖子

沙发
秋天落叶| | 2012-11-17 08:03 | 只看该作者
LZ要学会自己调程序

使用特权

评论回复
板凳
baidudz| | 2012-11-17 08:15 | 只看该作者
找一些例程参考一下,网上有很多的

使用特权

评论回复
地板
dfsa| | 2012-11-17 08:29 | 只看该作者
有很多开发板有例子找来看看

使用特权

评论回复
5
火箭球迷| | 2012-11-17 08:32 | 只看该作者
超声波测距应该是比较基础的问题

使用特权

评论回复
6
renyunling18| | 2012-11-17 21:59 | 只看该作者
楼主自己可以找点例程

使用特权

评论回复
7
gxgclg| | 2012-11-18 10:58 | 只看该作者
这个测距的例程网上有很多

使用特权

评论回复
8
baidudz| | 2012-11-18 11:07 | 只看该作者
程序有点长,估计很少有人有耐性看完

使用特权

评论回复
9
txcy| | 2012-11-19 23:46 | 只看该作者
的确是太长了

使用特权

评论回复
10
summerlover| | 2012-11-20 20:57 | 只看该作者
通过串口一点一点调吧 这个是设计必须要经过的繁琐事

使用特权

评论回复
11
autor| | 2012-11-20 20:58 | 只看该作者
楼主不要太依赖别人,还是自己调试

使用特权

评论回复
12
wulala| | 2012-11-20 21:01 | 只看该作者
真的好长啊,看着都累

使用特权

评论回复
13
lagogo2012| | 2012-11-20 21:03 | 只看该作者
能详细说遇到什么问题了吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝