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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1206|回復: 5
收起左側

c(99): error C129: missing ';' before '++'找了很久不知道是哪里出了問題

[復制鏈接]
ID:1005923 發表于 2022-3-13 15:13 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
#include<intrins.h>
/*******宏定義***********/
#define uint unsigned int
#define uchar unsigned char
/******位定義************/
sbit SH_CP=P3^1;           /*移位寄存器時鐘輸入*/
sbit ST_CP=P3^3;           /*存儲寄存器時鐘輸入*/
sbit DS=P3^2;                /****串行數據輸入****/
/******變量和數組*******/
uint key;
uint timecount;
uchar cnta;
uchar cntb;
uchar code key_num[8][8]={
                                                                                                                                                                0,1,2,3,4,5,6,7,
                                                                                                                                                                8,9,10,11,12,13,14,15,
                                                                                                                                                                16,17,18,19,20,21,22,23,
                                                                                                                                                                24,25,26,27,28,29,30,31,
                                                                                                                                                                32,33,34,35,36,37,38,39,
                                                                                                                                                                40,41,42,43,44,45,46,47,
                                                                                                                                                                48,49,50,51,52,53,54,55,
                                                                                                                                                                56,57,58,59,60,61,62,63,
};
uchar code table[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code digit_tab[10][8]={                                    /***字模 陽碼 逐列式 逆向 ***/
                                                                                                                                                {0xFF,0xC7,0xBB,0xBB,0xBB,0xBB,0xC7,0xFF},  /*"0",0*/
                                                                                                                                                {0xFF,0xB7,0xB7,0x83,0xBF,0xBF,0xFF,0xFF},    /*"1",1*/
                                                                                                                                                {0xFF,0xB7,0x9B,0x9B,0x9B,0xAB,0x93,0xFF},   /*"2",2*/
                                                                                                                                                {0xFF,0xD7,0xBB,0xB3,0xB3,0xAB,0xCB,0xFF}, /*"3",3*/
                                                                                                                                                {0xFF,0xEF,0xD7,0xDB,0x9B,0x81,0xFF,0xFF},   /*"4",4*/
                                                                                                                                                {0xFF,0xC3,0xAB,0xAB,0xAB,0xAB,0xDB,0xFF},/*"5",5*/
                                                                                                                                                {0xFF,0xC7,0xAB,0xAB,0xAB,0xAB,0xDF,0xFF},/*"6",6*/
                                                                                                                                                {0xFF,0xF3,0xFB,0x8B,0xEB,0xF3,0xFB,0xFF},   /*"7",7*/
                                                                                                                                                {0xFF,0xD3,0xAB,0xAB,0xAB,0xAB,0xD3,0xFF},/*"8",8*/
                                                                                                                                                {0xFF,0xF7,0xAB,0xAB,0xAB,0x8B,0xC7,0xFF}, /*"9",9*/
//                                                                                                                                {0x00,0x38,0x44,0x44,0x44,0x44,0x38,0x00},/*"0",0*/
//                                                                                                                                {0x00,0x48,0x48,0x7C,0x40,0x40,0x00,0x00},/*"1",1*/
//                                                                                                                                {0x00,0x48,0x64,0x64,0x64,0x54,0x6C,0x00},/*"2",2*/
//                                                                                                                                {0x00,0x28,0x44,0x4C,0x4C,0x54,0x34,0x00},/*"3",3*/
//                                                                                                                                {0x00,0x10,0x28,0x24,0x64,0x7E,0x00,0x00},/*"4",4*/
//                                                                                                                                {0x00,0x3C,0x54,0x54,0x54,0x54,0x24,0x00},/*"5",5*/
//                                                                                                                                {0x00,0x38,0x54,0x54,0x54,0x54,0x20,0x00},/*"6",6*/
//                                                                                                                                {0x00,0x0C,0x04,0x74,0x14,0x0C,0x04,0x00},/*"7",7*/
//                                                                                                                                {0x00,0x2C,0x54,0x54,0x54,0x54,0x2C,0x00},/*"8",8*/
//                                                                                                                                {0x00,0x08,0x54,0x54,0x54,0x74,0x38,0x00},/*"9",9*/         
};
/**************函數定義***********************/
/*********************************************/
/*******函數名稱:Ser_IN**********************/
/*******函數描述:串行數據輸入****************/
/*******輸入參數:Data************************/
/*******返回值    : 無**************************/
/*********************************************/
void Ser_IN(uchar Data)
{
        uchar i;
        for(i=0;i<8;i++)
        {
                SH_CP=0;
                DS=Data&0x08;
                Data<<=1;
                SH_CP=1;
                _nop_();
        }
}
/*********************************************/
/*******函數名稱:Par_OUT********************/
/*******函數描述:并行數據輸出****************/
/*******輸入參數:無**************************/
/*******返回值    :  無**************************/
/*********************************************/
void Par_OUT()
{
        ST_CP=1;
        _nop_( );
        _nop_( );
        ST_CP=0;
}
/*********************************************/
/*******函數名稱:Timer0**********************/
/*******函數描述:T0中斷函數******************/
/*******輸入參數:無**************************/
/*******返回值    :  無**************************/
/*********************************************/
void Timer0(void)  interrupt 1using 0
{
        TH0=(65536-1000)/256;              //12MHZ晶振定時時間為1ms
        TL0=(65536-1000)%256;
        Ser_IN(table[cntb]);                   //列掃描//
        Ser_IN(digit_tab[cntb][cnta]);      //串行數據輸入//
        Par_OUT();                             //并行數據輸出
        cnta++;
        if(cnta==8)
        {
                cnta=0;
        } ;
       
        timecount++;
        if(timecount==1000)
        {
                timecount=0;
                cntb ++;
                if(cntb==10)
                {
                        cntb=0;
                }
        }
        key=key_scan();
        if(key!=-1)
        {
                switch(key)
                        case 0:cntb=0;break;
                        case 1:cntb=1;break;
            case 2:cntb=2;break;
                  case 3:cntb=3;break;
                        case 4:cntb=4;break;
            case 5:cntb=5;break;
                  case 6:cntb=6;break;
                        case 7:cntb=7;break;
            case 8:cntb=8;break;
                  case 9:cntb=9;break;
                        case 10:cntb=10;break;
        }
}       
/*********************************************/
/*******函數名稱:key_scan*********************/
/*******函數描述:鍵盤掃描********************/
/*******輸入參數:無**************************/
/*******返回值    :  鍵值************************/
/*********************************************/
int key_scan()
{
         uint i,j;
         for(i=0;i<8;i++)
        {
                P0=table[i];
                if(P2!=0xff)
                {
                        delayms(2);
                        if(P2!=0xff)
                        {
                                 for(j=0;j<8;j++)
                                {
                                        if(P2==table[j])
                                                return key_num[i][j];
                                }
                        }
                }
                else
                        return -1;
        }
}
/*********************************************/
/*******函數名稱:delayms**********************/
/*******函數描述:延時函數********************/
/*******輸入參數:uint m***********************/
/*******返回值    :無***************************/
/*********************************************/
void delayms(uint m);
{
        uint i,j;
        for(i=0;i<m;i++)
                for(j=0;j<125;j++);
}
/*********************************************/
/*******函數名稱:main************************/
/*******函數描述:主函數**********************/
/*******輸入參數:無**************************/
/*******返回值    :無***************************/
/*********************************************/
void main()
{
        TMOD=0x01;
        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        TR0=1;
        ET0=1;
        EA=1;
        while(1)
        {
                ;
        }               
}
工程文件見附件。

keil.rar

6.48 KB, 下載次數: 6

回復

使用道具 舉報

ID:155507 發表于 2022-3-14 08:47 | 顯示全部樓層
給你改了,對比一下就知道哪里錯了。

  1. #include <reg51.h>
  2. #include <intrins.h>
  3. /*******宏定義***********/
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. /******位定義************/
  7. sbit SH_CP=P3^1;           /*移位寄存器時鐘輸入*/
  8. sbit ST_CP=P3^3;           /*存儲寄存器時鐘輸入*/
  9. sbit DS=P3^2;                /****串行數據輸入****/
  10. /******變量和數組*******/
  11. uint key;
  12. uint timecount;
  13. uchar cnta;
  14. uchar cntb;
  15. int key_scan(void);
  16. void delayms(uint m);

  17. uchar code key_num[8][8]={
  18.         0,1,2,3,4,5,6,7,
  19.         8,9,10,11,12,13,14,15,
  20.         16,17,18,19,20,21,22,23,
  21.         24,25,26,27,28,29,30,31,
  22.         32,33,34,35,36,37,38,39,
  23.         40,41,42,43,44,45,46,47,
  24.         48,49,50,51,52,53,54,55,
  25.         56,57,58,59,60,61,62,63,
  26. };//;// <--------------中文符號
  27. uchar code table[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  28. uchar code digit_tab[10][8]={                                    /***字模 陽碼 逐列式 逆向 ***/
  29.         {0xFF,0xC7,0xBB,0xBB,0xBB,0xBB,0xC7,0xFF},  /*"0",0*/
  30.         {0xFF,0xB7,0xB7,0x83,0xBF,0xBF,0xFF,0xFF},    /*"1",1*/
  31.         {0xFF,0xB7,0x9B,0x9B,0x9B,0xAB,0x93,0xFF},   /*"2",2*/
  32.         {0xFF,0xD7,0xBB,0xB3,0xB3,0xAB,0xCB,0xFF}, /*"3",3*/
  33.         {0xFF,0xEF,0xD7,0xDB,0x9B,0x81,0xFF,0xFF},   /*"4",4*/
  34.         {0xFF,0xC3,0xAB,0xAB,0xAB,0xAB,0xDB,0xFF},/*"5",5*/
  35.         {0xFF,0xC7,0xAB,0xAB,0xAB,0xAB,0xDF,0xFF},/*"6",6*/
  36.         {0xFF,0xF3,0xFB,0x8B,0xEB,0xF3,0xFB,0xFF},   /*"7",7*/
  37.         {0xFF,0xD3,0xAB,0xAB,0xAB,0xAB,0xD3,0xFF},/*"8",8*/
  38.         {0xFF,0xF7,0xAB,0xAB,0xAB,0x8B,0xC7,0xFF}, /*"9",9*/
  39.         //                                                                                                                                {0x00,0x38,0x44,0x44,0x44,0x44,0x38,0x00},/*"0",0*/
  40.         //                                                                                                                                {0x00,0x48,0x48,0x7C,0x40,0x40,0x00,0x00},/*"1",1*/
  41.         //                                                                                                                                {0x00,0x48,0x64,0x64,0x64,0x54,0x6C,0x00},/*"2",2*/
  42.         //                                                                                                                                {0x00,0x28,0x44,0x4C,0x4C,0x54,0x34,0x00},/*"3",3*/
  43.         //                                                                                                                                {0x00,0x10,0x28,0x24,0x64,0x7E,0x00,0x00},/*"4",4*/
  44.         //                                                                                                                                {0x00,0x3C,0x54,0x54,0x54,0x54,0x24,0x00},/*"5",5*/
  45.         //                                                                                                                                {0x00,0x38,0x54,0x54,0x54,0x54,0x20,0x00},/*"6",6*/
  46.         //                                                                                                                                {0x00,0x0C,0x04,0x74,0x14,0x0C,0x04,0x00},/*"7",7*/
  47.         //                                                                                                                                {0x00,0x2C,0x54,0x54,0x54,0x54,0x2C,0x00},/*"8",8*/
  48.         //                                                                                                                                {0x00,0x08,0x54,0x54,0x54,0x74,0x38,0x00},/*"9",9*/         
  49. };
  50. /**************函數定義***********************/
  51. /*********************************************/
  52. /*******函數名稱:Ser_IN**********************/
  53. /*******函數描述:串行數據輸入****************/
  54. /*******輸入參數:Data************************/
  55. /*******返回值    : 無**************************/
  56. /*********************************************/
  57. void Ser_IN(uchar Data)
  58. {
  59.         uchar i;
  60.         for(i=0;i<8;i++)
  61.         {
  62.                 SH_CP=0;//;//<-----------------中文符號
  63.                 DS=Data&0x08;
  64.                 Data<<=1;
  65.                 SH_CP=1;
  66.                 _nop_();
  67.         }
  68. }
  69. /*********************************************/
  70. /*******函數名稱:Par_OUT********************/
  71. /*******函數描述:并行數據輸出****************/
  72. /*******輸入參數:無**************************/
  73. /*******返回值    :  無**************************/
  74. /*********************************************/
  75. void Par_OUT()
  76. {
  77.         ST_CP=1;
  78.         _nop_( );
  79.         _nop_( );
  80.         ST_CP=0;
  81. }
  82. /*********************************************/
  83. /*******函數名稱:Timer0**********************/
  84. /*******函數描述:T0中斷函數******************/
  85. /*******輸入參數:無**************************/
  86. /*******返回值    :  無**************************/
  87. /*********************************************/
  88. void Timer0(void)  interrupt 1 using 0 //<--------這里不對
  89. {
  90.         TH0=(65536-1000)/256;              //12MHZ晶振定時時間為1ms
  91.         TL0=(65536-1000)%256;
  92.         Ser_IN(table[cntb]);                   //列掃描//
  93.         Ser_IN(digit_tab[cntb][cnta]);      //串行數據輸入//
  94.         Par_OUT();                             //并行數據輸出
  95.         cnta++;
  96.         if(cnta==8)
  97.         {
  98.                 cnta=0;
  99.         } ;
  100.        
  101.         timecount++;
  102.         if(timecount==1000)
  103.         {
  104.                 timecount=0;
  105.                 cntb ++;
  106.                 if(cntb==10)
  107.                 {
  108.                         cntb=0;
  109.                 }
  110.         }
  111.         key=key_scan();
  112.         if(key!=-1)
  113.         {
  114.                 switch(key)
  115.                 { //<-------這里少了
  116.                 case 0:cntb=0;break;
  117.                 case 1:cntb=1;break;
  118.                 case 2:cntb=2;break;
  119.                 case 3:cntb=3;break;
  120.                 case 4:cntb=4;break;
  121.                 case 5:cntb=5;break;
  122.                 case 6:cntb=6;break;
  123.                 case 7:cntb=7;break;
  124.                 case 8:cntb=8;break;
  125.                 case 9:cntb=9;break;
  126.                 case 10:cntb=10;break;
  127.                 }
  128.         }   
  129. }        //<--------這里少了
  130. /*********************************************/
  131. /*******函數名稱:key_scan*********************/
  132. /*******函數描述:鍵盤掃描********************/
  133. /*******輸入參數:無**************************/
  134. /*******返回值    :  鍵值************************/
  135. /*********************************************/
  136. int key_scan()
  137. {
  138.         uint i,j;
  139.         for(i=0;i<8;i++)
  140.         {
  141.                 P0=table[i];
  142.                 if(P2!=0xff)
  143.                 {
  144.                         delayms(2);
  145.                         if(P2!=0xff)
  146.                         {
  147.                                 for(j=0;j<8;j++)
  148.                                 {
  149.                                         if(P2==table[j])
  150.                                         return key_num[i][j];
  151.                                 }
  152.                         }
  153.                 }
  154.                 else
  155.                 return -1;
  156.         }
  157.         return -1; //<---------要加這個
  158. }
  159. /*********************************************/
  160. /*******函數名稱:delayms**********************/
  161. /*******函數描述:延時函數********************/
  162. /*******輸入參數:uint m***********************/
  163. /*******返回值    :無***************************/
  164. /*********************************************/
  165. void delayms(uint m) //; <------------不用加
  166. {
  167.         uint i,j;
  168.         for(i=0;i<m;i++)
  169.             for(j=0;j<125;j++);
  170. }
  171. /*********************************************/
  172. /*******函數名稱:main************************/
  173. /*******函數描述:主函數**********************/
  174. /*******輸入參數:無**************************/
  175. /*******返回值    :無***************************/
  176. /*********************************************/
  177. void main()
  178. {
  179.         TMOD=0x01;
  180.         TH0=(65536-1000)/256;
  181.         TL0=(65536-1000)%256;
  182.         TR0=1;
  183.         ET0=1;
  184.         EA=1;
  185.         while(1)
  186.         {
  187.                 ;
  188.         }               
  189. }




復制代碼
回復

使用道具 舉報

ID:161164 發表于 2022-3-14 10:16 | 顯示全部樓層
本帖最后由 lkc8210 于 2022-3-14 10:21 編輯

因為錯誤太多了
分號打成半形
2022-03-14_094853.png


分號打成半形
2022-03-14_094906.png


switch少了{}
2022-03-14_094941.png


delayms(uint m)多了;
2022-03-14_095002.png


函數沒有宣告或函數定義的順序錯誤
如: key_scan中有呼叫delayms,delayms的定義就要在key_scan之前或先進行函宣告
2022-03-14_095042.png


要確保每次呼叫函數都有return, 你的key_scan在P2不等于table[j]的情況下就沒有return
2022-03-14_095141.png


這是沒有警告和錯誤的樣子,但不保證運行正常
2022-03-14_095412.png

回復

使用道具 舉報

ID:844772 發表于 2022-3-14 11:08 | 顯示全部樓層
},/*"9",9*/        把這個花括號后邊的逗號刪掉試試唄
回復

使用道具 舉報

ID:1006852 發表于 2022-3-14 20:02 | 顯示全部樓層
看來基礎的問題有,手誤也有!
回復

使用道具 舉報

ID:106977 發表于 2022-3-15 17:18 | 顯示全部樓層
C編程最好編幾行就編譯一次且做好之前的備份。一旦出錯容易找到問題。大段程序有時誤操作多加一個或減了一個符號,會出現一大堆錯誤。僅根據Keil的錯誤提示,很難快速找到原因。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线免费观看一区二区 | 夜夜骑首页 | 国产精品欧美一区二区 | 婷婷桃色网 | av手机在线看 | 亚洲欧美国产一区二区三区 | 精品久久久久久久久久 | 中文字幕在线一区二区三区 | 九九综合 | 中文字幕二区三区 | 毛片免费视频 | 国产精品亚洲一区二区三区在线观看 | 国产精品久久久久久久久久免费看 | 91视频在线看| 夜夜操av| 国产一区二区三区免费 | 亚洲国产精品精华素 | 色888www视频在线观看 | 龙珠z国语版在线观看 | 亚洲精品久久久一区二区三区 | 欧美福利一区 | 正在播放国产精品 | 国产日韩欧美一区二区 | 天天干天天插 | 久久婷婷av | 在线看片网站 | 一区二区三区精品视频 | 中文字幕av一区二区三区 | 久久精品国产免费高清 | 精品乱码一区二区三四区 | 99久久婷婷 | 国产成人av电影 | 中文字幕在线看 | 亚洲精品在线免费看 | 日韩欧美中文在线 | 日韩在线视频免费观看 | 91大片| 国产精品一级 | 日韩精品一区二区三区 | 天天射天天干 | 天天色天天色 |