打印

菜鸟求救,请高手帮忙看看这段程序

[复制链接]
1623|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szcn|  楼主 | 2010-2-26 17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void zhongduan() interrupt 0
{
  EX0=0;
  TR0=0;
  op555=0;
  k=(TH0*256+TL0);
   k*=34;
   k/=80;
   play=k;
   TH0=0;
   TL0=0;
   EX0=1;
   op555=1;
   TR0=1;
}
void played(void)                                  //显示
{  
   f[0]=play/100;f[1]=play/10%10;                  
   f[2]=play%10;
   f[3]=0;
   P0=ld[f[3]];
   led3=1;delay(2);led3=0;
   P0=ld2[f[2]];
   led2=1;delay(2);led2=0;
   P0=ld[f[1]];
   led1=1;delay(2);led1=0;
   P0=ld[f[0]];
   led0=1;delay(2);led0=0;
}
一段超声波测距程序,目前出现的问题是无 法 正 常显示数值,硬件问题已经排除.

相关帖子

沙发
sj_dai| | 2010-2-27 09:45 | 只看该作者
不是高手,你给的条件也太简单了,别人不好帮你回答,就好比我现在对你说“我有一个问题,答案是什么?”
这样你能给我答案吗?

void played(void)                                  //显示
{  
   f[0]=play/100;是不是想显示4位数据,前三位分别表示百位/十位/个位,最后一位保持0?                  
   f[1]=play/10%10;                  
   f[2]=play%10;
   f[3]=0;
//如果是这样改成下面形式
//unsigned char play_temp;
//play_temp=play;保证后面显示不同的位中间不会因中断而变化
//f[0]=play_temp/100;
//f[1]=(play_temp%100)/10;
//f[2]=play_temp%10;
//f[3]=0;
//运行到这里可以先在仿真模式下看看这几个数的值是否正确
   P0=ld[f[3]];
   led3=1;delay(2);led3=0;
   P0=ld2[f[2]];
   led2=1;delay(2);led2=0;
   P0=ld[f[1]];
   led1=1;delay(2);led1=0;
   P0=ld[f[0]];
   led0=1;delay(2);led0=0;
}

程序中的delay()时间不知道是多少,如果太短会点不亮LED,太长会闪烁,delay(1)在几个毫秒样子比较合适

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝