打印
[疑难问答]

请问程序为什么显示时 个位总是跳

[复制链接]
1148|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#include<reg52.h>
unsigned char code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void timer();
void  xianshi();
unsigned char M,shi,miao,g;
  void delay(unsigned int i)
{          char j;
             for(i; i > 0; i--)
    for(j = 115; j> 0; j--);
}

void main ()
{
miao=0;

        while(1)
{ miao++;
if(miao<60)
{
  timer();
  xianshi();
}
else
miao=0;
}
  }
void timer()interrupt 1
{  EA=1;
TMOD = 0x01;
TH0=(65536-50000)/256;   
TL0=(65536-50000)%256;
ET0=1;
  TR0=1;
  M=0;
while(M<20)
{
  if(TF0==1)
{ M++;
TF0 = 0;
}
}
                       
}
  void  xianshi()
  {       
  shi=miao/10;
  g=miao%10;
  P2=0xfe;
  P0=a[g];
  delay(10);
  P2=0xfd;
P0=a[shi];
  delay(10);
}
沙发
forget345| | 2015-11-5 10:26 | 只看该作者
timer(); 这个定时器中断服务程序,不是你main调用它,它才会执行,也不需要你调用
miao++; 应该放在 timer();里面
while(1)
{ miao++;
if(miao<60)
{
  timer();
  xianshi();
}
else
miao=0;
}
  } 这一段写的什么鬼

使用特权

评论回复
板凳
毁灭2012| | 2015-11-6 21:35 | 只看该作者
一看就知道是定时中断出现了问题了

使用特权

评论回复
地板
boy1990| | 2015-11-8 10:52 | 只看该作者
大概看了看,是不是还少了一个中断??

使用特权

评论回复
5
sourceInsight| | 2015-11-8 11:05 | 只看该作者
不好说,也不定会是程序的问题,考虑程序和串口线。供你参考。

使用特权

评论回复
6
yyyjjjbbb| | 2015-11-30 08:44 | 只看该作者
是不是取模取余占用了太多机器周期时间,导致实际刷新率并非10毫秒

使用特权

评论回复
7
dml19890601| | 2015-12-5 14:21 | 只看该作者
你好,我是笙泉单片机代理,你可以加我QQ3166720948。或者打我电话15295658706,样品我可以寄给你测试

使用特权

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

本版积分规则

13

主题

27

帖子

0

粉丝