m0_73677084 2023-05-09 18:42 采纳率: 100%
浏览 50
已结题

C语言错误main.c(106): error C141: syntax error near 'void', expected '__asm'

代码如下,错误在定义函数error处

#include <reg52.h>
#define LEDCA P0
#define shixu P2
#define key1 P3^0
#define key2 P3^1
/*0xFE最上=0
  0xFD右上=1
  0xFB右下=2
  0xF7最下=3
  0xEF左下=4
  0xDF左上=5
  0xBF中间=6
  0x7F小数点=7
  */
int a[8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};                //笔画
int b[8] = {0xFF,0xFE,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8};                //收发器控制时序
int c[11] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF};    //数字+横杠
int shi = 0;
int feng = 0;
int miao = 0;
int i = 0;                                                            //计数单位
int x = 0;
int wei = 0;
int shan = 0;
int kaiguan = 0;
void delay_ms(unsigned num);
void init(){
    EA = 1;                                                            //中断总开关
    EX0 = 1;                                                        //外部中断开关
    IT0 = 1;                                                        //下降沿触发
    EX1 = 1;
    IT1 = 1;
    TMOD = 0x01;                                                    //T0为工作方式1
    ET0 = 1;                                                        //计时器开关
    TR0 = 1;                                                        //计时器运行开关
    TH0 = (65536-50000)/256;
    TL0 = (65536-50000)%256;                                         //设置50ms为一个计数单位
    PX0 = 1;                                                        //外部中断优先
    PX1 = 1;    
}
void shizhong(){                                                    //时间计算法则
    if(miao>=60){
        miao = miao%60;
        feng++;
    }
    if(feng>=60){
        feng = feng%60;
        shi++;
    }
    if(shi>=24){
        shi = shi%24;
    }
}
void show(){
    int d[8];
    d[0] = miao%10;
    d[1] = miao/10;
    d[2] = 10;
    d[3] = feng%10;
    d[4] = feng/10;
    d[5] = 10;
    d[6] = shi%10;
    d[7] = shi/10;
    for(x = 0;x<=7;x++){
        shixu = b[x];        
        if(wei==1 && x==0){
            if(shan==0){
                LEDCA = c[d[x]];
            }else{LEDCA = 0xFF;}
        }else if(wei==2 && x==1){
            if(shan==0){
                LEDCA = c[d[x]];
            }else{LEDCA = 0xFF;}
        }else if(wei==3 && x==3){
            if(shan==0){
                LEDCA = c[d[x]];
            }else{LEDCA = 0xFF;}
        }else if(wei==4 && x==4){
            if(shan==0){
                LEDCA = c[d[x]];
            }else{LEDCA = 0xFF;}
        }else if(wei==5 && x==6){
            if(shan==0){
                LEDCA = c[d[x]];
            }else{LEDCA = 0xFF;}
        }else if(wei==6 && x==7){
            if(shan==0){
                LEDCA = c[d[x]];
            }else{LEDCA = 0xFF;}
        }else{
            LEDCA = c[d[x]];
        }
        
        delay_ms(100);
    }

}
void yiwei(){
    if(kaiguan == 1 && key1 == 0){
        wei++;
        if(wei == 7){
            TR0 = 1;
            wei = 1;
        }
}
void error(){
    if(kaiguan == 1 && key2 == 0){
        switch (wei){
            case 1:
                miao--;
                shizhong();
                break;
            case 2:
                miao = miao-10;
                shizhong();
                break;
            case 3:
                feng--;
                shizhong();
                break;
            case 4:
                feng = feng-10;
                shizhong();
                break;
            case 5:
                shi--;
                shizhong();
                break;
            case 6:
                shi = shi-10;
                shizhong();
                break;
        }
    }
}
void main(){
    init();
    while(1){
        yiwei();
        
        for(shan = 0;shan<4;shan++){
            show();
        }
        delay_ms(100);
    }
}

void EXINTO0() interrupt 0{
    TR0 = !TR0;
    kaiguan = !kaiguan;
    }
}
void EXINTO1() interrupt 2{
    EX1 = 0;
    switch (wei){
    case 0:
        break;
    case 1:
        miao++;
        shizhong();
        break;
    case 2:
        miao = miao+10;
        shizhong();
        break;
    case 3:
        feng++;
        shizhong();
        break;
    case 4:
        feng = feng+10;
        shizhong();
        break;
    case 5:
        shi++;
        shizhong();
        break;
    case 6:
        shi = shi+10;
        shizhong();
        break;
    
    }
    EX1 = 1;
}
void TIMER0() interrupt 1{
    TH0 = (65536-50000)/256;
    TL0 = (65536-50000)%256;//恢复初值
    i++;
    if(i==20){
        miao++;
        shizhong();
        i = 0;
    }
    
}
void delay_ms(unsigned num){
   unsigned int x,y ;
   
    for(x=num;x>0;x--);
    for(y=110;y>0;y--);
}

  • 写回答

2条回答 默认 最新

  • ℘诗ོꦿ࿐ 2023-05-09 19:19
    关注

    你的void yiwei()函数少了一个后括号

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 5月9日

悬赏问题

  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 火车票关联12306问题
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算