发现了一个很严重的问题,无法产生对应的汇编,求高人...

2019-07-16 05:06发布

先贴上完整程序


#include<reg52.h>
#include<intrins.h>
#define LED P0
#define duan P2

sbit mi=P3^1;
sbit sh=P3^2;
sbit fe=P3^3;
unsigned char a,b,c,d,e,miao,fen,shi,jc;
int gewei,shiwei;

unsigned char code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0XBF};

void delay(xms)
{
  unsigned char i,j;
        for(i=xms;i>0;i--)
        for(j=110;j>0;j--);
}




void xianshi()
{
        int i;
           for(i=3;i>0;i--)
         {
         switch(i)
          {case 3:gewei=shi%10;shiwei=shi/10;break;
          case 2:gewei=fen%10;shiwei=fen/10;break;
          case 1:gewei=miao%10;shiwei=miao/10;break;}

         jc=duan;
         LED=~smg[shiwei];
         duan=jc+4;
         delay(5);
         LED=0X00;

         jc=duan;
         LED=~smg[gewei];
         duan=jc+4;  
         delay(5);
        LED=0X00;

         jc=duan;
         if(duan<28)
           {LED=~smg[10];
             duan=jc+4;
             delay(10);
                 LED=0X00;
           }
        jc=duan;
        }
         duan=0x00;
}


void main()
{
        TMOD=0x01;
        EA=1;
        ET0=1;
        TH0=(65536-100)/256;
        TL0=(65536-100%256);
        TR0=1;

        duan=0x00;
        P1=0XFF;
        while(1)
         {
           /*if(mi!=mi)
             {
                   xianshi();
                   if(mi==0) miao=0;       
                 }
           if(fe!=fe)
             {
                   xianshi();
                   if(fe==0) fen++;       
                 }
                   if(sh!=sh)
             {
                   xianshi();
                   if(sh==0) shi++;       
                 }
           if(b>9) c++;b=0;
           if(c>99) miao++;c=0;
           if(miao>59)  fen++;miao=0;
           if(fen>59)   shi++;fen=0;
           if(shi>23)   shi=0;        */
           shi=24;
           fen=58;
           miao=59;
           xianshi();
          


         }

}
void time() interrupt 1 using 3
        {
                   TH0=(65536-1000)/256;
                TL0=(65536-1000)%256;
           a++;
           if(a>99) b++;a=0;          
        }








我的代码之中,有两段duan的赋值函数,对应P2口,负责选择哪个数码管,

可是我发现其中两句居然是没有对应的汇编的,这是为什么。

在另外的一句中,是有对应的汇编的,我试过很多方法,都没办法产生对应的汇编,为什么会这样,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
随喜_寻满世界
1楼-- · 2019-07-16 10:06
我试图用JC来赋值duan,但还是这样,还是有的没有汇编,有的有汇编。
lstcspring
2楼-- · 2019-07-16 14:46
编译没有出问题?程序运行正常不?你直接用P2试一下呢

一周热门 更多>