找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14621|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

求助大佬,keil出現(xiàn)error c202編譯錯誤 在線感謝

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:492908 發(fā)表于 2019-3-18 02:32 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
有大哥可以給我解決下這個問題嗎,謝謝大家了

9{2)LQ(ZKZD$7BT24M_ZH)L.png (14.83 KB, 下載次數(shù): 64)

9{2)LQ(ZKZD$7BT24M_ZH)L.png

11I$G`)YWQM6ZO1}{$)(F]7.png (14.6 KB, 下載次數(shù): 64)

11I$G`)YWQM6ZO1}{$)(F]7.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:277550 發(fā)表于 2019-3-18 07:43 | 只看該作者
unit未定義吧,,,,,,,到前面檢查一下是否定義好了

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:164602 發(fā)表于 2019-3-18 07:51 | 只看該作者
錯誤內(nèi)容是:"MS"沒有定義
C語言的基本規(guī)則是:先申明后使用。你的ms這個變量沒有先申明,后以報錯

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:134317 發(fā)表于 2019-3-18 07:58 | 只看該作者
第40 行while后少分號

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:94031 發(fā)表于 2019-3-18 08:36 | 只看該作者
我試了沒問題,是否介意把整個工程發(fā)出來。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:490426 發(fā)表于 2019-3-18 09:10 | 只看該作者
將uint換成unsigned int   或者宏定義一下#define  uint  unsigned int

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

7#
ID:234075 發(fā)表于 2019-3-18 10:00 | 只看該作者
這個問題應(yīng)該是你在函數(shù)初始只定義了uchar,沒有定義uint,造成37行的Error 141錯誤,然后提示40行“ms”未定義的錯誤;查看你程序的初始部分,是否只有“#define uchar unsigned char”,而沒有"#define uint unsigned int"?把后面這一句添上就行了!

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

8#
ID:492967 發(fā)表于 2019-3-18 15:10 | 只看該作者
沒有定義啊   在前面加上 #define uint unsigned int  定義一下

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

9#
ID:492908 發(fā)表于 2019-3-18 18:55 | 只看該作者
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}
void LCD_Initialize();
void LCD_set_pos(ucgar);
void LCD_write_data(uchar);
void Display_String(uchar*,uchar);
sbit K1=P1^0;
sbit K2=P2^0;
sbit BEEP=P3^0;
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1 ;
sbit LCD_EN=P2^2;
uchar KeyCount=0;
uchar code msg1[]={"Second Watch 0"};
uchar code msg2[]={">>>>        "};
uchar code  prompts[][16]=
{
{"::1---->"},
{"::1---->::2"},
{"::1->2::3-->"},
{"::1->2::3->4"}
};
uchar Time_Buffer[]    ={0,0,0,0} ;
uchar LCD_Dispaly_Buffer[]={"00:00:00:00"};
void Beep()
{
uchar i,j=70;
for(i=0;i<180;i++)
{
  while(--j);BEEP=~BEEP         ;
}
BEEP= 0 ;
}         
void DelayX(uint ms)            
{
uchar i;
while(ms--)for(i=0;i<120;i++);
}
void Show_second()
{
uchar i;
LCD_Set_POS(0x45);        //設(shè)置LCD顯示起點
for(i=3;i!= 0xff ;i--)
{
  LCD_Display_BUffer[2*i+1]=Time_Buffer[i]/10+'0';
  LCD_Display_BUffer[2*i  ]=Time_Buffer[i]&10+'0';
  LCD_write_Data(LCD_Display_Buffer[2*i+1])        ;
  LCD_write_Data(LCD_Display_Buffer[2*i]);
  LCD_write_Data (':');
  }
}
void Time() interrupt 1 using         0
{
  TH0         =-10000/256;
  TLO    =-10000&256;
  Time_Buffer[0]++;
  if(Time_Buffer[0]==100)
  {
           Time_Buffer[0]=0;Time_Buffe[1]++;
  }
  if(Time_Buffer[1]==60)  
  {
   Time_Buffer[1]=0;Time_Buffer[2]++;
  }
if(Time_Buffer[2]==60)
  {
   Time_Buffer[2]=0;Time_Buffer[3]++;
  }
  if(Time_Buffer[3]==24)
     Time_Buffer[3]        =0;;
}
void main ()
{
uchar i ;
IE=0x82
TMOD=0X01
THO=-10000/256        ;
TLO=-10000%256;
LCD_Initialize();
Display_string(msg1,0x00);
Display_string(msg2,0x40);
while(1)
{
  if(K1==0)
  {
    DelayX(100);
        i=++KeyCount;
        switch(i)
        {
         case1;
         case3;TRO=1;
              Display_string(Prompts[i-1],0);
         case2;
         case4;TRO=0;
              Display_string(Prompts[i-1],0);
                  break;
        default :TRO =0;
              break;
        }
        while (K1==0);  
        Beep();
    }
        else
        if(K2==0)
        {
         TRO=0;
         Keycount ;
         for ( i=0 ;i<4;i++)
         Time_Buffer[i]=0;
         Display_String(msg1,0);
         Beep();
         DelayX(100);
         while(K2==0);  
         }
         show_Second();
         }
}
#include  <reg51.h>
#include  <intrins.h>
#define  uchar  unsigned char        
typedef unsigned char  INT8U;
#define   DelayNOP(){_nop_();_nop_();_nop_();_nop_();}
sbit LCD_RS=P2^0 ;
sbit LCD_RW=P2^1;
sbit LCD_EN=P2^2;
bit  LCD_BUSY_Check();
void  LCD_Tnitialize();
void  LCD_Set_Pos(uchar);
void  LCD_Write_Coommand(uchar);
void  LCD_Write_Data(uchar);
void DelayMS(uint  ms)
{
uchar t;
while(ms--)  for  (t=0  ;t<120;t++  );
}
bit LCD_Busy_check()
{
  bit  Result;
  LCD_RS  =0  ;  LCD_RW=1  ;LCD_EN=1;  DelayNOP();
  Resullt = (bit)(P0&0x80);
  LCD_EN=0;
  return   Result;
}
void LCD_write_Command (uchar  cmd)
{
  while (LCD_Busy_Check());
  LCD_RS=0 ;LCD_RW=0 ; LCD_EN=0 ;
  _nop_();  _nop_();
  p0=cmd;  DelayNOP();
  LCD_EN=1 ; DelayNOP();
  LCD_EN=0 ;
}
void  LCD_Write_Data(uchar  str)
{
  while (LCD_Busy_check());
  LCD_RS=1;LCD_RW=0; LCD_EN=0; P0=STR; DelayNOP();
  LCD_EN=1;  DelayNOP();  LCD_EN=0;
}
void LCD_Initialize()
{
DelayMS(5);LCD_Write_Command(0x38);
DelayMS(5);LCD_Write_Command(0x0c);
DelayMS(5);LCD_Write_Command(0x06);
DelayMS(5);LCD_Write_Command(0x01);
DelayMS(5);
}
void LCD_set_Pos(uchar Position)
{
  LCD_Write_Command(Position  0x80);
}
void Display_String(uchar*str, uchar LineNo)
{
  uchar  k;
  LCD_Set_Pos(LineNo);
  for  (k=0 ; k<16;k++)  LCD_write_Data(str[k]);
}
小胖胖的 2019/3/16/周六 18:42:40
for (i=3; i !=0xff;i--)
{
LCD_Display_Buffer[2*i+1]=Time_Buffer[i]/10+'0';
LCD_Display_Buffer[2*i  ]=Time_Buffer[i]&10+'0';
LCD_write_Data(LCD_Display_Buffer[2*i+1])        ;
LCD_write_Data(LCD_Display_Buffer[2*i]);
LCD_write_Data (':');
}
}
void Time() interrupt 1 using         0
{
  TH0         =-10000/256;
  TLO    =-10000&256;
  Time_Buffer[0]++;
  if(Time_Buffer[0]==100)
  {
           Time_Buffer[0]=0;Time_Buffe[1]++;
  }
  if(Time_Buffer[1]==60)  
  {
   Time_Buffer[1]=0;Time_Buffer[2]++;
  }
if(Time_Buffer[2]==60)
  {
   Time_Buffer[2]=0;Time_Buffer[3]++;
  }
  if(Time_Buffer[3]==24)
     Time_Buffer[3]        =0;;
}
void main ()
{
uchar i ;
IE=0x82
TMOD=0X01
THO=-10000/256        ;
TLO=-10000%256;
LCD_Initialize();
Display_string(msg1,0x00);
Display_string(msg2,0x40);
while(1)
{
  if(K1==0)
  {
    DelayX(100);
        i=++KeyCount;
        switch(i)
        {
         case1;
         case3;TRO=1;
              Display_string(Prompts[i-1],0);
         case2;
         case4;TRO=0;
              Display_string(Prompts[i-1],0);
                  break;
        default :TRO =0;
              break;
        }
        while (K1==0);  
        Beep();
    }
        else
        if(K2==0)
        {
         TRO=0;
         Keycount ;
         for ( i=0 ;i<4;i++)
         Time_Buffer[i]=0;
         Display_String(msg1,0);
         Beep();
         DelayX(100);
         while(K2==0);  
         }
         show_Second();
         }
}
#include  <reg51.h>
#include  <intrins.h>
#define  uchar  unsigned char        
typedef unsigned char  INT8U;
#define   DelayNOP(){_nop_();_nop_();_nop_();_nop_();}
sbit LCD_RS=P2^0 ;
sbit LCD_RW=P2^1;
sbit LCD_EN=P2^2;
bit  LCD_BUSY_Check();
void  LCD_Tnitialize();
void  LCD_Set_Pos(uchar);
void  LCD_Write_Coommand(uchar);
void  LCD_Write_Data(uchar);
void DelayMS(uint  ms)
{
uchar t;
while(ms--)  for  (t=0  ;t<120;t++  );
}
bit LCD_Busy_check()
{
  bit  Result;
  LCD_RS  =0  ;  LCD_RW=1  ;LCD_EN=1;  DelayNOP();
  Resullt = (bit)(P0&0x80);
  LCD_EN=0;
  return   Result;
}
void LCD_write_Command (uchar  cmd)
{
  while (LCD_Busy_Check());
  LCD_RS=0 ;LCD_RW=0 ; LCD_EN=0 ;
  _nop_();  _nop_();
  p0=cmd;  DelayNOP();
  LCD_EN=1 ; DelayNOP();
  LCD_EN=0 ;
}
void  LCD_Write_Data(uchar  str)
{
  while (LCD_Busy_check());
  LCD_RS=1;LCD_RW=0; LCD_EN=0; P0=STR; DelayNOP();
  LCD_EN=1;  DelayNOP();  LCD_EN=0;
}
void LCD_Initialize()
{
DelayMS(5);LCD_Write_Command(0x38);
DelayMS(5);LCD_Write_Command(0x0c);
DelayMS(5);LCD_Write_Command(0x06);
DelayMS(5);LCD_Write_Command(0x01);
DelayMS(5);
}
void LCD_set_Pos(uchar Position)
{
  LCD_Write_Command(Position  0x80);
}
void Display_String(uchar*str, uchar LineNo)
{
  uchar  k;
  LCD_Set_Pos(LineNo);
  for  (k=0 ; k<16;k++)  LCD_write_Data(str[k]);
}         

回復(fù)

使用道具 舉報

10#
ID:339010 發(fā)表于 2019-3-18 19:19 | 只看該作者
根據(jù)錯誤提示,說明ms附近少了一個)右括號,故需要仔細檢查ms附近的代碼,使括號匹配即可。

評分

參與人數(shù) 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

11#
ID:94031 發(fā)表于 2019-3-19 09:25 | 只看該作者
709242699 發(fā)表于 2019-3-18 18:55
#include
#include
#define uchar unsigned char

是復(fù)制粘貼的原因,那么多main函數(shù)?
回復(fù)

使用道具 舉報

12#
ID:494146 發(fā)表于 2019-3-19 18:28 | 只看該作者
函數(shù)沒定義吧
回復(fù)

使用道具 舉報

13#
ID:453974 發(fā)表于 2019-3-19 21:30 | 只看該作者
首先是這個void LCD_set_pos(ucgar);應(yīng)該寫成void LCD_set_pos(uchar);,個人覺得里面應(yīng)該加上變量,但是剛剛改的時候有點問題,不知道什么原因
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表