请教数码管锁存问题 点击:60 | 回复:0



blhyy

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2019年2月27日
发表于:2019-04-04 15:49:06
楼主

单片机数码管显示锁存问题

各位大神,下面是烧写到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;            //




热门招聘
相关主题

官方公众号

智造工程师