bloodthrons 2022-08-22 23:59 采纳率: 100%
浏览 286
已结题

error C141: syntax error near 'void', expected '__asm'

img

#include <STC89C5xRC.H>//使用线反转扫描法 检测按键按下 按下后在数码管上显示音调 并调动蜂鸣器发声 

typedef unsigned char u8;
typedef unsigned int u16;

#define GPIO_key P1
#define GPIO_smg P0

sbit buzzer = P2^0;//蜂鸣器

u8 keyvalue;//存键值

u8 code smgduan[16]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};//显示0-9、A-F。 

u16 code buzzerbeep[16]={100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600};
//用来产生各频率延时信号

void delay(u16 i)        //约10us
{
  while(i--);
}


void keypros()//检测是否有按键按下并输出键值
{
    u8 i;
    GPIO_key=0xF0;   //检测行
    if(GPIO_key!=0xF0)
    {
        delay(1000);
        if(GPIO_key!=0xF0)
        {
            switch(GPIO_key)
            {
                case(0x70):keyvalue=0;break;
                case(0xB0):keyvalue=4;break;
                case(0xD0):keyvalue=8;break;
                case(0xE0):keyvalue=12;break;
                default:break;
            }
        GPIO_key=0x0F;   //检测列
        switch(GPIO_key)
          {
               case(0x07):keyvalue=keyvalue;break;
               case(0x0B):keyvalue=keyvalue+1;break;
               case(0x0D):keyvalue=keyvalue+2;break;
              case(0x0E):keyvalue=keyvalue+3;break;
               default:break;
          }
            while((i<50)&&(GPIO_key!=0x0F))
            {
                i++;
              delay(1000);
            }
        }

}
    
void smgdisplay()//静态数码管显示0~F表示音调高低
{

        GPIO_smg=smgduan[keyvalue];
}    

void BEEP()//蜂鸣器发声
{
    u8 i=50;
  buzzer=1;
    while(i--)
    {
        delay(buzzerbeep[keyvalue]);
        buzzer=~buzzer;
    }
}

void main()
{
  while(1)
    {
        keypros();
        smgdisplay();
        BEEP();
    }
}

img

  • 写回答

2条回答 默认 最新

  • qllaoda 2022-08-23 00:32
    关注

    void smgdisplay()这个函数的前面那个函数,少了一个后花括号
    if(GPIO_key!=0xF0)这句话对应的后花括号漏掉了。

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

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 8月22日

悬赏问题

  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下: