找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2401|回復(fù): 7
收起左側(cè)

單片機(jī)程序查錯(cuò)error C141: syntax error near '}'

[復(fù)制鏈接]
ID:1044901 發(fā)表于 2023-4-21 07:20 | 顯示全部樓層 |閱讀模式
100黑幣
麻煩大家?guī)臀覚z查一下程序程序,運(yùn)行結(jié)果是這樣的
compiling 123.c...
123.C(34): error C141: syntax error near '}'
123.c - 1 Error(s), 0 Warning(s).
程序如下
#include <reg51.h>
#include <intrins.h>
#include <math.h>
#define uchar unsigned char
#define uint  unsigned int
sbit E=P2^0;
sbit RW=P2^1;
sbit RS=P2^2;
sbit key=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
sbit key4=P1^4;
sbit key5=P1^5;
sbit key6=P1^6;
uchar code tab1[]="H2:056 CH4:061";
uchar code tab2[]="C2H2:031 C2H4:032";
uchar code tab3[]="C2H6:075 CO:000";
uchar code tab4[]=" BI:0-1-0   ";
uchar code tab5[]="wendu:028";
uchar code tab6[]="dianliu:10";
uchar code tab7[]="dianya:205";
uint wendu=28;
uint dianliu=10;
uint dianya=205;
moshi=0;

sbit beer=P2^6;
//蜂鳴器-
void beerc()
{
beer=0; _delay_ms();
beer=1;_delay_ms();
}
sbit led1=P1^7;
sbit led2=P3^7;
void led()
{
  while(1);
  led1=0;led2=1;
   led1=1;led2=0;
  delay()
  }
void main()
{
uint n=0;
key=1;  moshi=0;
key=~key; moshi=1;
key1=0; wendu=wendu+3;
key2=0;wendu=wendu-3;
key3=0; dianya=dianya+2;
key4=0; dianya=dianya-2;
key5=0; dianliu=dianliu+1;
key5=0; dianliu=dianliu-1;
if(wendu<=0&&wendu>=55)
if(dianya<=180&&dianya>=250)
if(dianliu<=6&&dianliu>=16)
moshi=1;beer=0;case0;  
}
void xianshi()
{
if(key=~key)
  moshi=1;
  uchar code tab1[]="H2:056 CH4:061";
  uchar code tab2[]="C2H2:031 C2H4:032";
  uchar code tab3[]="C2H6:075 CO:000";
  uchar code tab4[]=" BI:0-1-0 ";
  if(key=1)
  moshi=0;
  uchar code tab5[]="wendu:028";
  uchar code tab6[]="dianliu:10";
  uchar code tab7[]="dianya:205";
}
void delay(uint del)
{
        uint i,j;
        for(i=0;i<del;i++)
            for(j=0;j<=168;j++);
}
void writecmd(uchar com)
{
        E=0;
        RS=0;   //寫入命令
        RW=0;
        P0=com;
        delay(2);
        E=1;
        delay(2);
        E=0;
}
void writedata(uchar dat)
{
        E=0;
        RS=1;     //寫入數(shù)據(jù)
        RW=0;
        P0=dat;
        delay(2);
        E=1;
        delay(2);
        E=0;
}
void init(void)
{
        writecmd(0x38);    //設(shè)置16*4顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
        writecmd(0x0c);    //顯示開(kāi),關(guān)光標(biāo)
        writecmd(0x06);    //移動(dòng)光標(biāo)
        writecmd(0x01);    //清除LCD的顯示內(nèi)容
}
void main(){
        uchar j;
        init();
        writecmd(0x80);
        for(j=0;j<13;j++)
        {
                writedata(tab1[j]);
                delay(2);
        }
        writecmd(0x80+0x40);
        for(j=0;j<16;j++)
        {
                writedata(tab2[j]);
                delay(2);
        }
        writecmd(0x90);
        for(j=0;j<13;j++)
        {
                writedata(tab3[j]);
                delay(2);
        }
        writecmd(0x90+0x40);
        for(j=0;j<16;j++)
        {
                writedata(tab4[j]);
                delay(2);
        }
        while(1);
}


回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-4-21 09:22 | 顯示全部樓層
只有支持C99標(biāo)準(zhǔn)的編譯器在打開(kāi)C99開(kāi)關(guān)后才可以隨用隨定義變量遺憾的是KeilC51并不支持C99標(biāo)準(zhǔn)。
回復(fù)

使用道具 舉報(bào)

ID:743654 發(fā)表于 2023-4-21 09:42 | 顯示全部樓層
怎么有兩個(gè)main() 函數(shù)?
回復(fù)

使用道具 舉報(bào)

ID:743654 發(fā)表于 2023-4-21 09:43 | 顯示全部樓層
雙擊error處,看會(huì)指到哪一行,那一行就有錯(cuò)。
回復(fù)

使用道具 舉報(bào)

ID:570727 發(fā)表于 2023-4-21 09:53 來(lái)自觸屏版 | 顯示全部樓層
定義變量的時(shí)候,moshi是什么類型的變量?
回復(fù)

使用道具 舉報(bào)

ID:101869 發(fā)表于 2023-4-21 11:42 來(lái)自觸屏版 | 顯示全部樓層
兩個(gè) main  delay沒(méi)有聲明
回復(fù)

使用道具 舉報(bào)

ID:807182 發(fā)表于 2023-4-21 14:49 | 顯示全部樓層
你看看是不是這里,并且,一般先定義delay函數(shù),在進(jìn)行調(diào)用
51hei.png
回復(fù)

使用道具 舉報(bào)

ID:584814 發(fā)表于 2023-4-21 17:37 | 顯示全部樓層
error C141: syntax error near '}'
可按E文的原意理解找問(wèn)題,也可以將
sbit led1=P1^7;
sbit led2=P3^7;
調(diào)整到void beerc()之前試試。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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