单片机数码管显示锁存问题
各位大神,下面是烧写到89C52单片机内要求显示数据累加结果的小程序,但运行结果只是一位一位地显示,如数据累加到1234,数码管只是先显示1,关闭后再显示2,之后再3,之后再是4,没有显示“1234”整个数,与我希望看到整个数据显示不符,不知道哪里有问题,请指教一下。谢谢!!!
//四位数码管位定义:
sbit SMG_q = P1^0; //位定义
sbit SMG_b = P1^1; //
sbit SMG_s = P1^2; //
sbit SMG_g = P1^3; //
uchar table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//四位共阳数码管值
void INT1_init() interrupt 2 using 2 //2号中断函数,希望能显示不断增加的数值
{
while(1)
{
da=da+1;//循环一次累加1
SMG_q=0; //千位
P0=table[da/1000]; //取千位数值
delay(1250); //延时
P0=0XFF; //
SMG_q=1; //
SMG_b=0; //百位
P0=table[da%1000/100]; //
delay(1250); //
P0=0XFF; //
SMG_b=1; //
SMG_s=0; //十位
P0=table[da%100/10]; //
delay(1250); //
P0=0XFF; //
SMG_s=1; //
SMG_g=0; //个位
P0=table[da%10]; //
delay(1250); //
SMG_g=1;
P0=0XFF; //
}
}