数码管显示0-100,求帮忙看看程序

2019-07-16 05:17发布

RT,好心人帮我看看写的哪里错啊?数码只显示000,不会跳动。
小弟初学,求指教,谢谢~

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f
,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值01234567
unsigned char code  seg[]={0,1,2,3,4
,5,6,7};//分别对应相应的数码管点亮,即位码
int a=0,task=0;
void initial();
void display(int z);
void delay(int t);
void main()
{
initial;
while(1)
{
  if(a==20)
    {
   a=0;
   task++;
   if(task==100)
      {
     task=0;
      }
   
    }
  
  display(task);
}
}

void initial()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(665536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(665536-50000)%256;
a++;
}
void display(int z)
{ int ge= z%10;
  int shi= z%100/10;
  int bai= z/100;
  P0=dofly[ge];
  P2=seg[2];
  delay(1);
  P0=dofly[shi];
  P2=seg[1];
  delay(1);
  P0=dofly[bai];
  P2=seg[0];
  delay(1);
}
void delay(int t)
{
int x,y;
for(x=t;x>0;x--)
  for (y=110;y>0;y--);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。