为什么我的数码管是一位一位显示的,求大佬帮忙,我是逻辑哪里错误了吗?

#include<reg52.h>
#define uint  unsigned int
#define uchar unsigned char
char code map[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
//共阴数码管段位显示
sbit duan=P0^0;           //段显示寄存器位
sbit wei=P0^1;             //选择数码管位
sbit shiwei=P1^0;         //时位调整
sbit fenwei=P1^1;           //分位调整
sbit miaowei=P1^2;             //秒位调整



unsigned int t;
uchar shige,shi,fenge,fen,miaoge,miao;

void delay(uint t)
{
    int i,j;
    for(i=t;i>0;i++)
    {
        for(j=30;j>0;j--);
        }    
}


void main()
{
    P1=0x00;       
    duan=1;
    duan=0;
    P1=0xff;
    wei=1;
    wei=0;
    //数码管初始化
    TH0=(65536-50000)/256;
    TH1=(65536-50000)%256;
    TMOD=0x01;
    TR0=1;
    ET0=1;
    EA=1;
    //计时中断设置,选择定时模式0,TR0置1,开中断
    while(1)//扫描按键
    {
    display(shige,shi,fenge,fen,miaoge,miao);    
    };
    shige=shi/10;
    fenge=fen/10;
    miaoge=miao/10;
    display(shige,shi,fenge,fen,miaoge,miao);

}
void time interrupt 1  //中断正常计时
{
    int num;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    num++;
    if(num==20)
    {
        miao++;
        num=0;
        if(miao==60)
        {
            fen++;
            miao=0;
            if(fen==60)
            {
                shi++;
                fen=0;
                if(shi==0)
                {s=0;}
                }
            }
        }
}
 void display(uchar a0,uchar a1,uchar a2,uchar a3,uchar a4,uchar a5)
 {
     P1=map[a0];
    duan=1;
    duan=0;
    P1=0x01;
    wei=1;
    wei=0;
    delay(10);
    delay(5);
    P1=map[a1];
    duan=1;
    duan=0;
    P1=0x02;
    wei=1;
    wei=0;
    delay(10);
    delay(5);
     P1=map[a2];
    duan=1;
    duan=0;
    P1=0x04;
    wei=1;
    wei=0;
    delay(10);
    delay(5);
     P1=map[a3];
    duan=1;
    duan=0;
    P1=0x08;
    wei=1;
    wei=0;
    delay(10);
    delay(5);
     P1=map[a4];
    duan=1;
    duan=0;
    P1=0x10;
    wei=1;
    wei=0;
    delay(10);
    delay(5);
     P1=map[a5];
    duan=1;
    duan=0;
    P1=0x20;
    wei=1;
    wei=0;
    delay(10);
    delay(5);
    }
阅读 1.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进