找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2133|回復: 7
打印 上一主題 下一主題
收起左側

求解答,編譯出現(xiàn)這個錯誤是什么原因2 交通燈.c(24): error C129: missing ';' be...

[復制鏈接]
跳轉到指定樓層
樓主
ID:776635 發(fā)表于 2020-6-12 08:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#include<delay.h>


/*************************函數(shù)聲明**************************/
void show();          //顯示函數(shù)
void init();
/************************端口定義**************************/
sbit k1=P3^7;         //        K1  時間加
sbit k2=P3^6;         //        K2  時間減
sbit k3=P3^5;         //        K3  暫停,確認

sbit led_red_a=P2^0;         //       
sbit led_red_b=P2^2;         //
sbit led_green_a=P2^1;         //       
sbit led_green_b=P2^3;         //

sbit WX_a_1=P2^4;             //       
sbit WX_a_2=P2^5;             //
sbit WX_b_1=P2^6;             //       
sbit WX_b_2=P2^7;             //
/************************變量定義**************************/
char temp1 = 30;          // 初始紅綠燈時間
uchar temp2;         //產生1秒 計數(shù)變量...........................................................這個出錯
uchar temp4=30;          //存儲時間更改變量

uchar flag1=0;                  //a,b,兩個方向紅路燈切換標志
uchar flag2=0;                  //暫停標志
/**********************數(shù)組定義***************************/
uchar tab_dx[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共陰,不帶小數(shù)點

/************************顯示**************************/
void show()
{       
         
          if(flag1==0)                         //a  紅燈亮 綠燈滅       b        紅燈滅 綠燈亮
           {  
              led_red_a=0;               
          led_red_b=1;         
          led_green_a=1;         
          led_green_b=0;         
           }
          else                                   //a  紅燈滅 綠燈亮        b        紅燈亮 綠燈滅
           {
              led_red_a=1;               
          led_red_b=0;         
          led_green_a=0;         
          led_green_b=1;
           }
                       

          if(flag1==0)
          {
                 WX_a_1=1;            
             WX_a_2=1;            
             WX_b_1=1;                    
             WX_b_2=0;
                                                       
         P0=tab_dx[temp1%10];
             delayxms(3);
             P0=0x00;

                 WX_a_1=1;            
             WX_a_2=1;            
             WX_b_1=0;                    
             WX_b_2=1;

         P0=tab_dx[temp1/10];
             delayxms(3);
             P0=0x00;
          }       
          else
          {
               WX_a_1=1;            
             WX_a_2=0;            
             WX_b_1=1;                    
             WX_b_2=1;
                                                       
         P0=tab_dx[temp1%10];
             delayxms(3);
             P0=0x00;

                 WX_a_1=0;            
             WX_a_2=1;            
             WX_b_1=1;                    
             WX_b_2=1;

         P0=tab_dx[temp1/10];
             delayxms(3);
             P0=0x00;
         }                       
}
/************************顯示1**************************/
void show_1()
{       
                 static uchar kk;
         kk++;

             led_red_a=0;               
         led_red_b=0;         
         led_green_a=1;         
         led_green_b=1;         

                 WX_a_1=1;            
             WX_a_2=1;            
             WX_b_1=1;                    
             WX_b_2=0;
                                                       
         P0=tab_dx[temp4%10];
             delayxms(kk/126);
             P0=0x00;

                 WX_a_1=1;            
             WX_a_2=1;            
             WX_b_1=0;                    
             WX_b_2=1;

         P0=tab_dx[temp4/10];
             delayxms(kk/126);
             P0=0x00;
          
               WX_a_1=1;            
             WX_a_2=0;            
             WX_b_1=1;                    
             WX_b_2=1;
                                                       
         P0=tab_dx[temp4%10];
             delayxms(kk/126);
             P0=0x00;

                 WX_a_1=0;            
             WX_a_2=1;            
             WX_b_1=1;                    
             WX_b_2=1;

         P0=tab_dx[temp4/10];
             delayxms(kk/126);
             P0=0x00;               
}

/************************按鍵檢測**************************/
void key()
{               
                  if(k1==0)           //時間加
           {
                 delayxms(10);
                 while(k1==0) ;
                 temp4++;
                 temp1=temp4;
                 if(temp4==91)
                  {
                   temp4=0;
                  }
           }

                   if(k2==0)         //          時間減
           {
                 delayxms(10);
                 while(k2==0);
                 temp4--;
                 temp1=temp4;
                 if(temp4==-1)
                  {
                   temp4=90;
                  }
           }

           if(k3==0)                     // 暫停,確認
           {
                 delayxms(10);
                 while(k3==0);
                 flag2=~flag2;
           }
}

/************************中斷初始化**************************/
void init()
{
      TMOD=0x11;              //設置定時器0,1為工作方式1
          TH0=(65536-50000)/256;  //初值
          TL0=(65536-50000)%256;
//          TH1=(65536-50000)/256;  //初值
//          TL1=(65536-50000)%256;
          EA=1;                   //打開中斷總開關
          ET0=1;                  //開定時器0中斷
//          ET1=1;                                  //開定時器1中斷
          TR0=1;                  //啟動定時器0   
          EX0 = 1;                /* 允許外部中斷0中斷 */
      PX0 = 1;                /* 外部中斷0為高優(yōu)先級 */
}
/************************************************************
                   主函數(shù)
*************************************************************/
void main()
{
   init();  

   while(1)
        {
           key();

           if(flag2==0)
           {   
               TR0=1;
                      show();  //顯示函數(shù)
           }

           else
           {
               TR0=0;
                      show_1();  //顯示函數(shù)
           }
          }
}

/* ----------------- t0中斷函數(shù) ----------------- */
void time1() interrupt 1                                               
{

  TH0=(65536-50000)/256;  //
  TL0=(65536-50000)%256;

  temp2++;
  if(temp2 == 20)
  {         
     temp2=0;
         temp1=temp1-1;
         if(temp1==-1)  
         {
                 temp1=temp4;
                 flag1=~flag1;
         }
   }  

}

/* ----------------- 外部中斷函數(shù) ----------------- */
int0_srv( ) interrupt 0 using 2
  {
    uchar a,b,c,d;

    int i;
        for (i = 0;i<10000;i++);

        if ( INT0 ==0)
        {
         a=led_red_a;                 //保留指示燈狀態(tài)
         b=led_red_b;         
         c=led_green_a;         
         d=led_green_b;
           while(INT0==0)
           {         
             led_red_a=0;               
         led_red_b=0;         
         led_green_a=1;         
         led_green_b=1;              /* 使兩邊亮起紅燈 */

           if(flag1==0)
          {
                 WX_a_1=1;            
             WX_a_2=1;            
             WX_b_1=1;                    
             WX_b_2=0;
                                                       
         P0=tab_dx[temp1%10];
             delayxms(3);
             P0=0x00;

                 WX_a_1=1;            
             WX_a_2=1;            
             WX_b_1=0;                    
             WX_b_2=1;

         P0=tab_dx[temp1/10];
             delayxms(3);
             P0=0x00;
          }       
          else
          {
               WX_a_1=1;            
             WX_a_2=0;            
             WX_b_1=1;                    
             WX_b_2=1;
                                                       
         P0=tab_dx[temp1%10];
             delayxms(3);
             P0=0x00;

                 WX_a_1=0;            
             WX_a_2=1;            
             WX_b_1=1;                    
             WX_b_2=1;

         P0=tab_dx[temp1/10];
             delayxms(3);
             P0=0x00;
         }                                 
       }               
         led_red_a=a;                 
         led_red_b=b;         
         led_green_a=c;         
         led_green_b=d;                              /* 恢復指示燈狀態(tài)  */
    }
  }



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:776635 發(fā)表于 2020-6-12 08:42 | 只看該作者
2  交通燈.c(24): error C129: missing ';' before 'temp2'
這是錯誤的全部
回復

使用道具 舉報

板凳
ID:776954 發(fā)表于 2020-6-12 09:57 | 只看該作者
你有定義過uchar嗎
例如
#define uchar unsigned char
不寫的話怎么能使用uchar
回復

使用道具 舉報

地板
ID:739545 發(fā)表于 2020-6-12 10:58 | 只看該作者
uchar 沒有宏定義
回復

使用道具 舉報

5#
ID:24758 發(fā)表于 2020-6-12 11:00 | 只看該作者
里面的uchar 沒有定義過,前面缺了#define  uchar  unsigned char
回復

使用道具 舉報

6#
ID:452950 發(fā)表于 2020-6-12 11:12 | 只看該作者
uchar未定義
回復

使用道具 舉報

7#
ID:584814 發(fā)表于 2020-6-12 11:39 | 只看該作者
Keil 5 表示編譯通過
回復

使用道具 舉報

8#
ID:342822 發(fā)表于 2020-6-12 11:56 | 只看該作者
#include<delay.h>沒有地雷文件嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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