欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3000|回復: 7
收起左側

為什么這程序Keil警告無法決定根目錄?求助

[復制鏈接]
ID:607192 發表于 2019-9-7 10:33 | 顯示全部樓層 |閱讀模式
圖片10.png 圖片9.png
源程序
#include <REGX51.H>

#include <stdio.h>
#define uchar unsigned char  
#define uint unsigned int

uchar h;
uint r=0;
uint s;
uchar code  dis[]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,
                  0X92,0X82,0Xf8,0X80,0X90,0Xff,};//數碼管譯碼表
void delay(uint c)  //定義延遲子程序
{
   uint i,j;
    for(i=0;i<c;i++)
          for(j=0;j<100;j++);
        
}

//中斷服務程序1
void t0(void) interrupt 0 using 1    //東西通行
{
  delay(2);
   if(INT0==0)
    {
      r++;
          if(r==2)
           {
                  r=0;
           }
        //  r%=2;
          if(r==0)
           {
                                P0=0xeb;
        P1=0x00;
        P2=0xff;
           }
                 while(1)
            {
                   if(INT0==0|INT1==0|T0==0)
                  {
                  delay(2);
                  if(INT0==0|INT1==0|T0==0)
                          break;
                  }

            };
         
    }

}

//中斷服務程序2
void t1(void) interrupt 2 using 1  //南北通行
{
  delay(2);
   if(INT1==0)
    {
          r++;
          if(r==2)
           {
                  r=0;
           }
          r%=2;
          if(r==0)
           {
            P0=0xdd;
        P1=0x00;
        P2=0xff;
           }
                 while(1)
            {
                   if(INT1==0|INT0==0|T0==0)
                  {
                   delay(2);
                   if(INT1==0|INT0==0|T0==0)
                          break;
                  }
            };
    }
}

//中斷服務程序3
void t2(void) interrupt 1 using 1  //緊急情況全部禁止
{
  TH0=0xff;
  TL0=0xff;
    delay(2);
     if(T0==0)
       {
                                P0=0xdb;
        P1=0x00;
        P2=0xff;
           }
                while(1)
            {
                   if(INT0==0|INT1==0)
                  {         
                    delay(2);
                        if(INT0==0|INT1==0)
                          break;
                  }

            };

}


//主函數
void main(void)
{
  TMOD=0x06;  //定時器T0工作方式2
  TH0=0xff;
  TL0=0xff;
  TR0=1;
  EA=1;  //允許總中斷
  EX0=1;
  EX1=1;
  ET0=1;  //允許定時器t0中斷


while(1)
{

                P0=0xeb;
    for(h=25;h>0;h--)
     {
       for(s=248;s>0;s--)
       {
        P1=0x00;
        P2=0xff;
        P1=0x01;
        P2=dis[h/10];
        delay(1);
                                P1=0x00;
        P2=0xff;
        P1=0x02;
        P2=dis[h%10];
                                delay(1);
                                P1=0x00;
        P2=0xff;
                                P1=0x04;
        P2=dis[(h+5)/10];
                                delay(1);
                                P1=0x00;
        P2=0xff;
                                P1=0x08;
        P2=dis[(h+5)%10];
        delay(1);
       }
     }

    delay(248);
                P0=0xf3;
    for(h=5;h>0;h--)
     {
        delay(392);
        P0=0xf3;
        delay(1);
        P1=0x00;
        P2=0xff;
        P1=0xaa;
        P2=dis[h%10];
        delay(600);
        P0=0xfb;
     }

    delay(248);
                P0=0xdd;
    for(h=25;h>0;h--)
     {
       for(s=248;s>0;s--)
       {
            
                                P1=0x00;
        P2=0xff;
        P1=0x01;
        P2=dis[(h+5)/10];
                                delay(1);
                                P1=0x00;
        P2=0xff;
        P1=0x02;
        P2=dis[(h+5)%10];
                                delay(1);
        P1=0x00;
        P2=0xff;
        P1=0x04;
        P2=dis[h/10];
        delay(1);
        P1=0x00;
        P2=0xff;
        P1=0x08;
        P2=dis[h%10];
        delay(1);
       }
     }

    delay(248);
    P0=0xde;
    for(h=5;h>0;h--)
     {
        delay(392);
        P0=0xde;
         delay(1);
        P1=0x00;
        P2=0xff;
        P1=0xaa;
        P2=dis[h%10];
        delay(600);
        P0=0xdf;

     }

         delay(248);

   }

}

為什么警告無法決定根目錄
交通燈沒辦法正常運行

回復

使用道具 舉報

ID:607192 發表于 2019-9-7 10:35 | 顯示全部樓層
求大神解惑
回復

使用道具 舉報

ID:235200 發表于 2019-9-7 12:56 | 顯示全部樓層
三個中斷程序中均有while(1),致使主程序無法知道要執行哪一個循環,所以編譯不能通過產生HEX文件,另外三個中斷均using 1,這樣編程達不到保護現場的作用!
回復

使用道具 舉報

ID:458699 發表于 2019-9-7 13:36 | 顯示全部樓層
你少了“STARTUP.A51”那個文件,用c語言寫51單片機程序都要有那個文件的。。創建工程時候會有個提示 copy “STARTUP.A51”。。。什么什么的,c語言寫程序要點是,那個是必須的。。。用匯編的話才要點否
回復

使用道具 舉報

ID:155507 發表于 2019-9-7 14:49 | 顯示全部樓層
就是你的程序問題  三個中斷程序中均有while(1)
先畫程序框圖,看看能不能行得通,越細越好。
回復

使用道具 舉報

ID:607192 發表于 2019-9-7 15:31 | 顯示全部樓層
csmyldl 發表于 2019-9-7 12:56
三個中斷程序中均有while(1),致使主程序無法知道要執行哪一個循環,所以編譯不能通過產生HEX文件,另外三個中 ...

大佬這個怎么改呢
回復

使用道具 舉報

ID:607192 發表于 2019-9-7 15:32 | 顯示全部樓層
aaaaabangw 發表于 2019-9-7 13:36
你少了“STARTUP.A51”那個文件,用c語言寫51單片機程序都要有那個文件的。。創建工程時候會有個提示 copy  ...

感謝。現在只有中斷還有點問題了
回復

使用道具 舉報

ID:607192 發表于 2019-9-7 16:27 | 顯示全部樓層
謝謝大家了,全部OK了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表