久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MAIN.C(24) : error C141: syntax error near 'u16'求助解決單片機(jī)C語言代碼錯誤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1020806 發(fā)表于 2022-5-15 23:42 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
求助解決單片機(jī)C語言代碼錯誤
MAIN.C(24) : error C141: syntax error near ’u16‘



程序如下:

#include"reg51.h"

#define GPIO_KEY P1
#define GPIO_DIG P0

typedef unsigned char u8;
typedef unsigned int u16;

//138譯碼器選位
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u16 KeyValue;        //存健值
u16 KeySwitch;        //判斷是否按下按鍵?

//段選0-9,因為用的是字符,像0x3f中的字母,所以用u8型
u8 code duanxuan [] ={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} //顯示0~F的值

//u16 box[8]={0}; //用數(shù)組存放每一位段選得到的數(shù)字,0就是初始化,{}這是放著8個數(shù),開始就顯示8個0

//====延遲函數(shù)
u16 i;
void delay(u16 i)
{
while(i--);
}

u16 box[8]={0};//用數(shù)組存放每一位段選得到的數(shù)字,0就是初始化,{}這是放著8個數(shù),開始就顯示8個0
//====顯示函數(shù)
void display()
{
  //在138譯碼器中,是反著看,如100,其實在芯中是從下往上看
  LSA=0;LSB=0;LSC=0;GPIO_DIG=duanxuan[box[7]];delay(50);GPIO_DIG=0x00; //box[7]就是在段數(shù)組里選第一個數(shù),就是0x3f,就是十進(jìn)制的0
  LSA=1;LSB=0;LSC=0;GPIO_DIG=duanxuan[box[6]];delay(50);GPIO_DIG=0x00; //delay(50);GPIO_DIG=0x00;就是消影
  LSA=0;LSB=1;LSC=0;GPIO_DIG=duanxuan[box[5]];delay(50);GPIO_DIG=0x00;
  LSA=1;LSB=1;LSC=0;GPIO_DIG=duanxuan[box[4]];delay(50);GPIO_DIG=0x00;
  LSA=0;LSB=0;LSC=1;GPIO_DIG=duanxuan[box[3]];delay(50);GPIO_DIG=0x00;
  LSA=1;LSB=0;LSC=1;GPIO_DIG=duanxuan[box[2]];delay(50);GPIO_DIG=0x00;
  LSA=0;LSB=1;LSC=1;GPIO_DIG=duanxuan[box[1]];delay(50);GPIO_DIG=0x00;
  LSA=1;LSB=1;LSC=1;GPIO_DIG=duanxuan[box[0]];delay(50);GPIO_DIG=0x00;

}

//====按鍵掃描,看哪個鍵給按下
void KeyDown(void)
{
  u16 a=0;
  GPIO_KEY=0x0f; //因為GPIO_KEY=P1,這里是給P1的8個口,按0000 1111的順序輸入
  if(GPIO_KEY!=0x0f)
  {
          GPIO_KEY=0x0f;
          switch(GPIO_KEY)
        {
          case (0x07):KeyValue=0;break;
          case (0x0b):KeyValue=1;break;
          case (0x0d):KeyValue=2;break;
          case (0x0e):KeyValue=3;break;
        }
        GPIO_KEY=0xf0;
    switch(GPIO_KEY)
        switch(GPIO_KEY)
        {
          case (0x70):KeyValue=KeyValue;break;
          case (0xb0):KeyValue=KeyValue+4;break;
          case (0xd0):KeyValue=KeyValue+8;break;
          case (0xe0):KeyValue=KeyValue+12;break;
        }
        //如果能按中10個鍵中的一個
        if(KeySwitch==0||KeySwitch==1||KeySwitch==2||KeySwitch==3||KeySwitch==4||KeySwitch==5||KeySwitch==6||KeySwitch==7||KeySwitch==8||KeySwitch==9)
        {KeySwitch=1;}
        while((a<50)&&(GPIO_KEY!=0xf0))//松手監(jiān)測
         {
          dalay(1000);
          a++;
         }
  }
}
u16 i;
void main()
{
   u16 a=0,b=0,c=0;         //定義第一個數(shù),第二個數(shù),得數(shù)

   while(1)
   {
             display();        //調(diào)用數(shù)碼管函數(shù),讓8個管亮起來
          KeyDown();        //調(diào)用按鍵函數(shù),看一上哪個鍵按下了
          if(KeySwitch==1) //如果有鍵按下了,就執(zhí)行{}        內(nèi)和語句
          {
          for(i=7;i>0;i--)        //輸入一個數(shù),數(shù)字就向左移動
          {box[ i]=box[i-1;]}
           box[0]=KeyValue;
           KeySwitch=0;
          }
             else if (KeyValue==14)        //清零鍵
             {
          for(i=0;i<8;i++)
          box[ i]0;
          display();
          }

         //==========加法===============
            else if  (KeyValue==10) //加號
            { //計算第一個數(shù)的值存到a里
           a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
           //清空值,準(zhǔn)備取下一個數(shù)
           for(i=0;i<8;i++)
           box[ i]=0;

         while(1)
         {
          display();
          KeyDown();

         if(KeySwitch==1) //如果有鍵按下了,就執(zhí)行{}        內(nèi)和語句
          {
          for(i=7;i>0;i--)        //輸入一個數(shù),數(shù)字就向左移動
           {box[ i]=box[i-1;]}
            box[0]=KeyValue;
            KeySwitch=0;
          }
             if (KeyValue==15)break;        //等于號
            }
            //計算第二個數(shù)的值存到b里
         b=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
         
         c=a+b;
         //以下是把C輸入到box[]中去。
         box[0]=c%10;
         box[1]=c/10%10;
         box[2]=c/100%10;
         box[3]=c/1000%10;
         box[4]=c/10000%10;
         box[5]=c/100000%10;
         box[6]=c/1000000%10;
         box[7]=c/10000000%10;

         display();
     }

         //======乘法===========
         else if (KeyValue==12)        // 乘號
         {
          //第一個數(shù)
          a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
          for(i=0;i<8;i++)
          box[ i]=0;
          while(1)
         {
            display();
            KeyDown();

           if(KeySwitch==1) //如果有鍵按下了,就執(zhí)行{}        內(nèi)和語句
           {
            for(i=7;i>0;i--)        //輸入一個數(shù),數(shù)字就向左移動
             {box[ i]=box[i-1;]}
            box[0]=KeyValue;
            KeySwitch=0;
           }
              if (KeyValue==15)break;        //等于,KeyValue==15 是等于的意思
            }
            //計算第二個數(shù)的值存到b里
         b=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
         
         c=a*b;
         //以下是把C輸入到box[]中去。
         box[0]=c%10;
         box[1]=c/10%10;
         box[2]=c/100%10;
         box[3]=c/1000%10;
         box[4]=c/10000%10;
         box[5]=c/100000%10;
         box[6]=c/1000000%10;
         box[7]=c/10000000%10;

         display();
    }
        //======減法===========
         else if (KeyValue==11)        // 減號
         {
            //第一個數(shù)
            a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
            for(i=0;i<8;i++)
            box[ i]=0;
            while(1)
           {
             display();
             KeyDown();

             if(KeySwitch==1) //如果有鍵按下了,就執(zhí)行{}        內(nèi)和語句
              {
                for(i=7;i>0;i--)        //輸入一個數(shù),數(shù)字就向左移動
                 {box[ i]=box[i-1;]}
                box[0]=KeyValue;
                KeySwitch=0;
              }
             if (KeyValue==15)break;        //等于,KeyValue==15 是等于的意思
            }
            //計算第二個數(shù)的值存到b里
         b=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
         
         c=a-b;
         //以下是把C輸入到box[]中去。
         box[0]=c%10;
         box[1]=c/10%10;
         box[2]=c/100%10;
         box[3]=c/1000%10;
         box[4]=c/10000%10;
         box[5]=c/100000%10;
         box[6]=c/1000000%10;
         box[7]=c/10000000%10;

         display();
  }        
//======除法===========
         else if (KeyValue==13)        // 除號
         {
          //第一個數(shù)
          a=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
          for(i=0;i<8;i++)
          box[ i]=0;
          while(1)
         {
          display();
          KeyDown();

         if(KeySwitch==1) //如果有鍵按下了,就執(zhí)行{}        內(nèi)和語句
         {
          for(i=7;i>0;i--)        //輸入一個數(shù),數(shù)字就向左移動
          {box[ i]=box[i-1;]}
           box[0]=KeyValue;
           KeySwitch=0;
         }
             if (KeyValue==15)break;        //等于,KeyValue==15 是等于的意思
            }
            //計算第二個數(shù)的值存到b里
         b=box[0]+box[1]*10+box[2]*100+box[3]*1000+box[4]*10000+box[5]*100000+box[6]*1000000+box[7]*10000000
         
         c=a/b;
         //以下是把C輸入到box[]中去。
         box[0]=c%10;
         box[1]=c/10%10;
         box[2]=c/100%10;
         box[3]=c/1000%10;
         box[4]=c/10000%10;
         box[5]=c/100000%10;
         box[6]=c/1000000%10;
         box[7]=c/10000000%10;

         display();
  }               
}
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1012735 發(fā)表于 2022-5-16 05:37 | 只看該作者
u8 code duanxuan []={。。。}
括號尾部少分號
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2022-5-16 07:15 | 只看該作者
分號錯漏比比皆是
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品乱码8久久久久久日本 | 欧美精品在欧美一区二区少妇 | 午夜tv免费观看 | 色五月激情五月 | 精品久久99 | 日韩av第一页 | 碰碰视频| 亚洲精品9999 | 免费精品| 国产91久久久久久久免费 | 亚洲成人一二三 | 综合激情av | www久久久 | 国产一区二区三区在线 | 日韩三级一区 | 男人天堂网av | 男女深夜网站 | 成年人黄色一级毛片 | 老司机67194精品线观看 | 成人视屏在线观看 | 国产精品久久久久无码av | 在线高清免费观看视频 | 国产精品国产成人国产三级 | 91电影 | 国产亚洲精品美女久久久久久久久久 | 成人欧美一区二区三区 | 日本一区二区高清不卡 | 欧洲成人 | 视频一区二区三区四区五区 | 天堂网中文 | 久热久热| 欧美一级毛片免费观看 | 日韩精品视频在线观看一区二区三区 | 日日草天天干 | 永久免费视频 | 日本亚洲一区 | 黄色成人在线网站 | 中文字幕日韩欧美 | 天天干成人网 | 亚洲欧美综合精品另类天天更新 | 日韩快播电影网 |