weixin_48691043 2020-08-11 16:57 采纳率: 0%
浏览 5929

main.c(266): error C141: syntax error near 'void', expected '__asm'这个错误怎么解决,我的代码如下:

#include
#include
#define uchar unsigned char
#define uint unsigned int
bit OK;
sbit speak=P2^0;
sbit start=P3^1;
sbit end=P3^6;
sbit add=P3^4;
sbit sub=P3^5;

sbit S1=P2^1;
sbit S2=P2^3;
sbit S3=P2^5;
sbit S4=P2^7;
uchar Q_T=20,H_T=30,qt,ht;

uchar a=11,b=11,c=11,d=11,n,m=0,k;

uchar code dis_7[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7,0x00,0x80};

void delay1ms(uint t)
{
uint i,j;
for(i=0;i<t;i++);
for(j=0;j<120;j++);
}

void nose()
{
speak=0;
delay1ms(500);
speak=1;
}

void display()
{
P0=dis_7[a];
S1=0;
delay1ms(5);
S1=1;
P0=dis_7[11];
S2=0;
delay1ms(5);
S2=1;
P0=dis_7[b];
S3=0;
delay1ms(5);
S3=1;
P0=dis_7[c];
S4=0;
delay1ms(5);
S4=1;
}

void false()
{
if(P1!=0xff)
{
if(P1==0xf7)
{
m=1;
}

if(P1==0xfb)
    {
    m=2;
    }

if(P1==0xfd)
{
    m=3;
}

if(P1==0xfe)
{
    m=4;
}

if(P1==0xef)
{
    m=5;
}

if(P1==0xdf)
{
    m=6;
}

if(P1==0xbf)
{
    m=7;
}

if(P1==0x7f)
{
    m=8;
}

n=0;
while(end==1)
{
    if(n<6)
    {
        a=10;b=10;c=10;
        display();
        speak=1;
    }
    if(n>=6)
    {
        a=m;b=11;c=11;
        display();
        speak=0;
    }
    if(n==20)
    {
        n=0;
    }
}

speak=1;m=0;
a=10;b=10;c=10;

}
}

main()
{
    TMOD=0x11;
    TH0=0x3c;
    TL0=0xb0;

    EA=1;
    ET0=1;
    EX0=1;
    EX1=1;
    OK=0;
    speak=1;
    TR0=1;

    while(1)
    {
        display();
        while(start==1)
        {
            false();
            display();
            if(start==0)
            {
                delay1ms(2);
                while(start==0);
                nose();
                OK=1;
                TR0=0;
                qt=Q_T;
                n=0;

        while(qt>0&&end==1&&OK==1&&P1==0xff)
        {
            TR0=1;
            a=10;
            b=qt/10;
            c=qt%10;
            display();
            speak=1;

            if(n>20)
            {
                n=0;
                qt--;
            }
            if(qt<=5)
            {
                if(n<7)
                {
                    speak=1;
                }
                if(n>7)
                {
                    speak=0;
                }
            }

            if(qt==0)
            {
                a=10;b=10;c=10;d=10;OK=0;speak=1;m=0;n=0;
            }
            if(end==0)
            {
                a=10;b=10;c=10;d=10;OK=0;speak=1;m=0;n=0;
            }
            if(P1!=0xff)
            {
                k=P1;
                nose();
                if(k==0xf7)
                {
                    m=1;
                }
                if(k==0xfb)
                {
                    m=2;
                }
        if(k==0xfd)
        {
            m=3;
        }
        if(k==0xfe)
        {
            m=4;
        }
        if(k==0xef)
        {
            m=5;
        }
        if(k==0xdf)
        {
            m=6;
        }
        if(k==0xbf)
        {
            m=7;
        }       
        if(k==0x7f)
        {        
            m=8;
        }

                n=0;
                ht=H_T;
                while(end==1&&ht>0)
                {
                    TR0=1;
                    a=m;
                    b=ht/10;
                    c=ht%10;
                    display();
                    speak=1;

                    if(n==20)
                    {
                        n=0;
                        ht--;
                    }
                    if(ht<=5)
                    {
                        if(n<7)
                        {
                            speak=1;
                        }
                    if(n>7)
                    {
                        speak=0;
                    }
                }
            }
        }

        {
            a=10;b=10;c=10;d=10;OK=0;speak=1;m=0;n=0;
        }
    }
}

}
}

void time_intt0(void) interrupt 1
{
    TH0=0x3c;TL0=0xb0;
    n++;
}

void time_intt2(void) interrupt 0
{
    while(end==1)
    {
        if(add==0)
        {
            delay1ms(2);
            while(add==0);
            if(Q_T>=99)
            {
                Q_T=0;
            }
            else
            {
                Q_T++;
            }
        }
        if(sub==0)
        {
            delay1ms(2);
            while(sub==0);
            if(Q_T<=0)
            {
                Q_T=99;
            }
            else
            {
                Q_T--;
            }
        }
        a=10;b=Q_T/10;c=Q_T%10;
        display();
    }
    a=10;b=10;c=10;
    display();
}

void time_intt3(void) interrupt 2
{
    while(end==1)
    {
        delay1ms(2);
        while(add==0);
        if(H_T>=99)
        {
            H_T=0;
        }
        else
        {
            H_T++;
        }
    }
    if(sub==0)
    {
        delay1ms(2);
        while(sub==0);
        if(H_T<=0)
        {
            H_T=99;
        }
        else
        {
            H_T--;
        }
    }
    a=10;b=H_T/10;c=H_T%10;
    display();
}
  a=10;b=10;c=10;
  display();

}

  • 写回答

2条回答 默认 最新

  • 喵喵锤锤你小可爱 2020-08-13 15:07
    关注

    花括号不匹配,你if else用的太多了,我帮你改了一下,麻烦结贴采纳,谢谢!图片说明图片说明

    
    #include <STC15F2K60S2.H>
    #define uchar unsigned char
    #define uint unsigned int
    bit OK;
    sbit speak = P2 ^ 0;
    sbit start = P3 ^ 1;
    sbit end = P3 ^ 6;
    sbit add = P3 ^ 4;
    sbit sub = P3 ^ 5;
    
    sbit S1 = P2 ^ 1;
    sbit S2 = P2 ^ 3;
    sbit S3 = P2 ^ 5;
    sbit S4 = P2 ^ 7;
    uchar Q_T = 20, H_T = 30, qt, ht;
    
    uchar a = 11, b = 11, c = 11, d = 11, n, m = 0, k;
    
    uchar code dis_7[] = { 0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7,0x00,0x80 };
    
    void delay1ms(uint t)
    {
        uint i, j;
        for (i = 0; i < t; i++);
        for (j = 0; j < 120; j++);
    }
    
    void nose()
    {
        speak = 0;
        delay1ms(500);
        speak = 1;
    }
    
    void display()
    {
        P0 = dis_7[a];
        S1 = 0;
        delay1ms(5);
        S1 = 1;
        P0 = dis_7[11];
        S2 = 0;
        delay1ms(5);
        S2 = 1;
        P0 = dis_7[b];
        S3 = 0;
        delay1ms(5);
        S3 = 1;
        P0 = dis_7[c];
        S4 = 0;
        delay1ms(5);
        S4 = 1;
    }
    
    void false()
    {
        if (P1 != 0xff)
        {
            if (P1 == 0xf7)
            {
                m = 1;
            }
    
            if (P1 == 0xfb)
            {
                m = 2;
            }
    
            if (P1 == 0xfd)
            {
                m = 3;
            }
    
            if (P1 == 0xfe)
            {
                m = 4;
            }
    
            if (P1 == 0xef)
            {
                m = 5;
            }
    
            if (P1 == 0xdf)
            {
                m = 6;
            }
    
            if (P1 == 0xbf)
            {
                m = 7;
            }
    
            if (P1 == 0x7f)
            {
                m = 8;
            }
    
            n = 0;
            while (end == 1)
            {
                if (n < 6)
                {
                    a = 10; b = 10; c = 10;
                    display();
                    speak = 1;
                }
                if (n >= 6)
                {
                    a = m; b = 11; c = 11;
                    display();
                    speak = 0;
                }
                if (n == 20)
                {
                    n = 0;
                }
            }
    
            speak = 1; m = 0;
            a = 10; b = 10; c = 10;
        }
    }
    
    main()
    {
        TMOD = 0x11;
        TH0 = 0x3c;
        TL0 = 0xb0;
    
        EA = 1;
        ET0 = 1;
        EX0 = 1;
        EX1 = 1;
        OK = 0;
        speak = 1;
        TR0 = 1;
    
        while (1)
        {
            display();
            while (start == 1)
            {
                false();
                display();
                if (start == 0)
                {
                    delay1ms(2);
                    while (start == 0);
                    nose();
                    OK = 1;
                    TR0 = 0;
                    qt = Q_T;
                    n = 0;
    
                    while (qt > 0 && end == 1 && OK == 1 && P1 == 0xff)
                    {
                        TR0 = 1;
                        a = 10;
                        b = qt / 10;
                        c = qt % 10;
                        display();
                        speak = 1;
    
                        if (n > 20)
                        {
                            n = 0;
                            qt--;
                        }
                        if (qt <= 5)
                        {
                            if (n < 7)
                            {
                                speak = 1;
                            }
                            if (n > 7)
                            {
                                speak = 0;
                            }
                        }
    
                        if (qt == 0)
                        {
                            a = 10; b = 10; c = 10; d = 10; OK = 0; speak = 1; m = 0; n = 0;
                        }
                        if (end == 0)
                        {
                            a = 10; b = 10; c = 10; d = 10; OK = 0; speak = 1; m = 0; n = 0;
                        }
                        if (P1 != 0xff)
                        {
                            k = P1;
                            nose();
                            if (k == 0xf7)
                            {
                                m = 1;
                            }
                            if (k == 0xfb)
                            {
                                m = 2;
                            }
                            if (k == 0xfd)
                            {
                                m = 3;
                            }
                            if (k == 0xfe)
                            {
                                m = 4;
                            }
                            if (k == 0xef)
                            {
                                m = 5;
                            }
                            if (k == 0xdf)
                            {
                                m = 6;
                            }
                            if (k == 0xbf)
                            {
                                m = 7;
                            }
                            if (k == 0x7f)
                            {
                                m = 8;
                            }
    
                            n = 0;
                            ht = H_T;
                            while (end == 1 && ht > 0)
                            {
                                TR0 = 1;
                                a = m;
                                b = ht / 10;
                                c = ht % 10;
                                display();
                                speak = 1;
    
                                if (n == 20)
                                {
                                    n = 0;
                                    ht--;
                                }
                                if (ht <= 5)
                                {
                                    if (n < 7)
                                    {
                                        speak = 1;
                                    }
                                    if (n > 7)
                                    {
                                        speak = 0;
                                    }
                                }
                            }
                        }
    
                        {
                            a = 10; b = 10; c = 10; d = 10; OK = 0; speak = 1; m = 0; n = 0;
                        }
                    }
                }
            }
        }
    }
    
    void time_intt0() interrupt 1
    {
        TH0 = 0x3c; TL0 = 0xb0;
        n++;
    }
    
    void time_intt2(void) interrupt 0
    {
        while (end == 1)
        {
            if (add == 0)
            {
                delay1ms(2);
                while (add == 0);
                if (Q_T >= 99)
                {
                    Q_T = 0;
                }
                else
                {
                    Q_T++;
                }
            }
            if (sub == 0)
            {
                delay1ms(2);
                while (sub == 0);
                if (Q_T <= 0)
                {
                    Q_T = 99;
                }
                else
                {
                    Q_T--;
                }
            }
            a = 10; b = Q_T / 10; c = Q_T % 10;
            display();
        }
        a = 10; b = 10; c = 10;
        display();
    }
    
    void time_intt3(void) interrupt 2
    {
        while (end == 1)
        {
            delay1ms(2);
            while (add == 0);
            if (H_T >= 99)
            {
                H_T = 0;
            }
            else
            {
                H_T++;
            }
        }
        if (sub == 0)
        {
            delay1ms(2);
            while (sub == 0);
            if (H_T <= 0)
            {
                H_T = 99;
            }
            else
            {
                H_T--;
            }
        }
        a = 10; b = H_T / 10; c = H_T % 10;
        display();
    
        a = 10; b = 10; c = 10;
        display();
    }
    
    
    评论

报告相同问题?