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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3792|回復: 10
打印 上一主題 下一主題
收起左側

單片機程序編譯出現一大堆錯誤,怎樣解決?

[復制鏈接]
跳轉到指定樓層
樓主
ID:143767 發表于 2020-8-11 15:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
程序里面錯的地方是我從別的程序移植過來的,想請大家幫我分析一下錯在哪里,怎樣解決,謝謝!
單片機源程序如下:
  1. #include<reg52.h>

  2. //宏定義
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. #define Data_ADC0809 P0                   //定義P0口為Data_ADC0809
  6. //sbit PARSER = P2^0;                              //串并行控制位
  7. //sbit BYTE = P2^1;                                //高低字節控制位
  8. //sbit RC = P2^4;                                  //讀取轉換控制位
  9. //sbit BUSY = P2^2;                                                                 //忙狀態位

  10. //函數聲明
  11. extern uchar ADC0809();

  12. sbit ST=P2^0;
  13. sbit EOC=P2^1;
  14. sbit OE=P2^2;

  15. sbit ADDR_A = P3^5;                              //低位地址控制位
  16. sbit ADDR_B = P3^6;                              //低位地址控制位
  17. sbit ADDR_C = P3^7;                                                                 //高位地址控制位

  18. void ConfigUART(unsigned int baud);              //串行口配置函數
  19. void ConfigTimer0();                             //定時器0配置函數
  20. void SendData(unsigned char ch);                 //字符發送函數
  21. void SendString(char *s);                        //字符串發送函數
  22. void GetVoltage();                               //ADC電壓獲取函數
  23. unsigned int Linear(double v);                   //線性插值函數,參數v為實測電壓
  24. void DataProcess();                              //數據處理函數
  25. void LedBufRefresh();                            //數碼管顯示緩沖區刷新函數
  26. void UartSend();                                                                 //串口數據發送函數
  27. void delay(uint t);

  28. unsigned char voltage[] = {'0','.','0','0','0',0};
  29. unsigned char time_used[] = {'0','0','0',0};
  30. unsigned char percentage[] = {'0','0','0',0};
  31. unsigned long j,time_used_value,result,percentage_value,voltage_value;
  32. unsigned int code time_sample[21]={0,18,36,54,72,90,108,126,144,162,180,198,216,234,252,270,288,306,324,342,360};
  33. double code voltage_sample[21]={4.35,4.24,4.135,4.005,3.92,3.889,3.858,3.826,3.8,3.78,3.762,3.743,3.725,3.705,3.686,3.667,3.65,3.628,3.492,3.05,2};

  34. //共陽數碼管顯示字符轉換表
  35. unsigned char code LedChar[] = {
  36.         0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
  37.     0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
  38. };
  39. //數碼管顯示緩沖區,初值0x00確保啟動時都不亮
  40. unsigned char LedBuff[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

  41. void main()
  42. {
  43.         ConfigUART(9600);                            //配置串行口工作模式及參數
  44.         ConfigTimer0();                              //配置定時器0用于數碼管刷新
  45.         EA = 1;                                      //打開總中斷
  46.         while(1)
  47.         {
  48.                    //正常模式
  49.                 if(Mode==0)
  50.                 {
  51.                         //讀取AD值
  52.                         temp=ADC0809();

  53. }
  54.                 GetVoltage();                            //獲取ADC電壓值
  55.                 DataProcess();                           //數據處理
  56.                 LedBufRefresh();                         //顯示緩沖區刷新
  57.                 UartSend();                              //串口發送
  58.                 for(j=0;j<30000;j++);                    //延時讀取
  59.         }
  60. }
  61. /* 數據處理函數 */
  62. void DataProcess()
  63. {
  64.         /* 計算電壓值 */
  65.         voltage_value = (unsigned long)(((double)result * 10 / 32767) * 1000 + 0.5);
  66.         /* 電壓值數組 */
  67.         voltage[4] = '0' + voltage_value % 10;
  68.         voltage[3] = '0' + (voltage_value /10) % 10;
  69.         voltage[2] = '0' + (voltage_value /100) % 10;
  70.         voltage[0] = '0' + (voltage_value /1000) % 10;        
  71.         /* 剩余用時數組 */
  72.         time_used_value =  Linear((double)result * 10 / 32767);
  73.         time_used[2] = '0' + time_used_value % 10;
  74.         time_used[1] = '0' + (time_used_value / 10) % 10;
  75.         time_used[0] = '0' + (time_used_value / 100) % 10;
  76.         /* 百分比數組 */
  77.         percentage_value =
  78.         (unsigned long)((double)(180000 - time_used_value * 500) / 168000 * 100 + 0.5);//改過數據
  79.         percentage[2] = '0' + percentage_value % 10;
  80.         percentage[1] = '0' + (percentage_value / 10) % 10;
  81.         percentage[0] = '0' + (percentage_value / 100) % 10;
  82.         if((percentage_value / 100) % 10)            //處理百分比最高位
  83.         {
  84.                 percentage[0] = '0' + (percentage_value / 100) % 10;
  85.         }
  86.         else
  87.         {
  88.                 percentage[0] = ' ';
  89.         }
  90. }
  91. /* 線性插值函數,參數v為實測電壓,返回插值時間結果 */
  92. unsigned int Linear(double v)
  93. {
  94.         unsigned int i,t1,t2,t;
  95.         double v1,v2;
  96.         if(v >= 4.35)                                //大于最大電壓
  97.         {
  98.                 t = 0;
  99.                 return t;
  100.         }
  101.         if(v <= 2)                                   //小于最小電壓
  102.         {
  103.                 t = 360;
  104.                 return t;
  105.         }
  106.         for(i=0; i<21; i++)                          //遍歷插值范圍
  107.         {
  108.                 if(voltage_sample[i] < v)
  109.                 {
  110.                         v1 = voltage_sample[i-1];
  111.                         v2 = voltage_sample[i];
  112.                         t1 = time_sample[i-1];
  113.                         t2 = time_sample[i];
  114.                         t = t2 - (v - v2) * (double)(t2 - t1) / (v1 - v2);
  115.                         break;                               //計算插值結果t
  116.                 }
  117.                 else if(voltage_sample[i] == v)
  118.                 {
  119.                         t = time_sample[i];                  //恰好取采樣值
  120.                         break;
  121.                 }
  122.         }
  123.         return t;
  124. }
  125. /* ADC電壓獲取函數 */
  126. void GetVoltage()

  127. uchar ADC0809()
  128. {
  129.         uchar temp_=0x00;
  130.         //初始化高阻太
  131.         OE=0;
  132.         //轉化初始化
  133.         ST=0;
  134.         //開始轉換
  135.         ST=1;
  136.         ST=0;
  137.         //外部中斷等待AD轉換結束
  138.         while(EOC==0)
  139.         //讀取轉換的AD值
  140.         OE=1;
  141.         temp_=Data_ADC0809;
  142.         OE=0;
  143.         return temp_;
  144. }



  145. /* 定時器0中斷服務函數 */
  146. void InterruptTimer0() interrupt 1
  147. {
  148.         static unsigned char i = 0;                  //動態掃描的索引
  149.     TH0 = 0xFC;                                  //重新加載初值
  150.     TL0 = 0x67;
  151.                                                  //以下代碼完成數碼管動態掃描刷新
  152.     P1 = 0x00;                                                                    //顯示消隱
  153.     switch(i)                                    //動態掃描
  154.     {
  155.         case 0: ADDR_C = 0; ADDR_B = 0; ADDR_A = 0; i++; P1=LedBuff[0]; break;
  156.         case 1: ADDR_C = 0; ADDR_B = 0; ADDR_A = 1; i++; P1=LedBuff[1]; break;
  157.         case 2: ADDR_C = 0; ADDR_B = 1; ADDR_A = 0; i++; P1=LedBuff[2]; break;
  158.         case 3: ADDR_C = 0; ADDR_B = 1; ADDR_A = 1; i++; P1=LedBuff[3]; break;
  159.                 case 4: ADDR_C = 1; ADDR_B = 0; ADDR_A = 0; i++; P1=LedBuff[4]; break;
  160.         case 5: ADDR_C = 1; ADDR_B = 0; ADDR_A = 1; i++; P1=LedBuff[5]; break;
  161.         case 6: ADDR_C = 1; ADDR_B = 1; ADDR_A = 0; i=0; P1=LedBuff[6]; break;
  162.         //case 7: ADDR_C = 1; ADDR_B = 1; ADDR_A = 1; i=0; P1=LedBuff[7]; break;
  163.                 //保留最低為數碼管不使用
  164.         default: break;
  165.     }
  166. }
  167. /* 數碼管顯示緩沖區刷新函數 */
  168. void LedBufRefresh()
  169. {
  170.         LedBuff[6] = ~LedChar[percentage_value % 10];
  171.         LedBuff[5] = ~LedChar[(percentage_value / 10) % 10];
  172.         if((percentage_value / 100) % 10)                           //百分比最高位處理
  173.         {
  174.                 LedBuff[4] = ~LedChar[(percentage_value / 100) % 10];   //為1則顯示
  175.         }
  176.         else
  177.         {
  178.                 LedBuff[4] = 0;                                         //否則不顯示
  179.         }
  180.         LedBuff[3] = ~LedChar[voltage_value % 10];
  181.         LedBuff[2] = ~LedChar[(voltage_value /10) % 10];
  182.         LedBuff[1] = ~LedChar[(voltage_value /100) % 10];           
  183.         LedBuff[0] = ~(LedChar[(voltage_value /1000) % 10] & 0x7F); //最高位小數點處理
  184. }
  185. void UartSend()
  186. {
  187.         SendString("當前電壓:");
  188.         SendString(voltage);
  189.         SendString("V");
  190. //        SendString("    已用時間:");
  191. //        SendString(time_used);
  192. //        SendString("Min");
  193.         SendString("    剩余電量:");
  194.         SendString(percentage);
  195.         SendString("%\r\n");
  196. }
  197. /* 串口配置函數,baud-通信波特率 */
  198. void ConfigUART(unsigned int baud)
  199. {
  200.     SCON  = 0x50;                                //配置串口為模式1
  201.     TMOD &= 0x0F;                                //清零T1的控制位
  202.     TMOD |= 0x20;                                //配置T1為模式2
  203.     TH1 = 256 - (11059200/12/32)/baud;           //計算T1重載值
  204.     TL1 = TH1;                                   //初值等于重載值
  205.     ET1 = 0;                                     //禁止T1中斷
  206.     ES  = 1;                                     //使能串口中斷
  207.     TR1 = 1;                                     //啟動T1
  208. }
  209. /* 定時器0配置函數 */
  210. void ConfigTimer0()
  211. {
  212.     TMOD &= 0xF0;                                //清零T0的控制位
  213.         TMOD |= 0x01;                                //設置T0為模式1
  214.     TH0  = 0xFC;                                 //為T0賦初值0xFC67,定時1ms
  215.     TL0  = 0x67;
  216.         ET0  = 1;                                    //使能T0中斷
  217.     TR0  = 1;                                    //啟動T0
  218. }
  219. /* UART中斷服務函數 */
  220. void InterruptUART() interrupt 4
  221. {
  222.     if(RI)                                       //接收到字節
  223.     {
  224.         RI = 0;                                  //清零接收中斷標志位
  225.     }
  226.     if(TI)                                       //字節發送完畢
  227.     {
  228.         TI = 0;                                  //清零發送中斷標志位
  229.     }
  230. }
  231. /* UART字符發送函數 */
  232. void SendData(unsigned char ch)
  233. {
  234.     SBUF = ch;                                   //啟動發送
  235.         while(!TI);                                  //等待結束
  236. }
  237. /* UART字符串發送函數 */
  238. void SendString(unsigned char *s)
  239. {
  240.     while(*s)                                    //循環發送
  241.     {
  242.         SendData(*s++);
  243.     }
  244. }
復制代碼



編譯后報錯如下:
Build target 'Target 1'
compiling main.c...
MAIN.C(57): error C202: 'Mode': undefined identifier
MAIN.C(60): error C202: 'temp': undefined identifier
MAIN.C(138): error C132: 'ADC0809': not in formal parameter list
MAIN.C(138): error C141: syntax error near '{'
MAIN.C(139): error C244: 'temp_': can't initialize, bad type or class
MAIN.C(139): error C132: 'temp_': not in formal parameter list
MAIN.C(141): error C244: 'OE': can't initialize, bad type or class
MAIN.C(141): error C132: 'OE': not in formal parameter list
MAIN.C(143): error C244: 'ST': can't initialize, bad type or class
MAIN.C(143): error C132: 'ST': not in formal parameter list
MAIN.C(145): error C244: 'ST': can't initialize, bad type or class
MAIN.C(145): error C132: 'ST': not in formal parameter list
MAIN.C(146): error C244: 'ST': can't initialize, bad type or class
MAIN.C(146): error C132: 'ST': not in formal parameter list
MAIN.C(148): error C141: syntax error near 'while'
MAIN.C(148): error C141: syntax error near '==', expected ')'
MAIN.C(150): error C231: 'OE': redefinition
MAIN.C(150): error C231: 'OE': redefinition
MAIN.C(151): error C247: non-address/-constant initializer
MAIN.C(152): error C279: 'OE': multiple initialization
MAIN.C(152): error C231: 'OE': redefinition
MAIN.C(152): error C231: 'OE': redefinition
MAIN.C(153): error C141: syntax error near 'return'
MAIN.C(154): error C141: syntax error near '}'
Target not created

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

使用道具 舉報

沙發
ID:165455 發表于 2020-8-11 16:25 | 只看該作者
直接根據錯誤提示改就好了。你的error都是“未定義”,“重復定義”,“類型出錯”這種。很容易排查的
回復

使用道具 舉報

板凳
ID:654028 發表于 2020-8-11 17:24 | 只看該作者
沒有聲明變量。要定義變量。134行少了分號等等,總之雙擊錯誤去定位,然后去改,很容易的,這是基本的錯誤。
回復

使用道具 舉報

地板
ID:143767 發表于 2020-8-12 10:15 | 只看該作者

程序經過改錯就剩下一個地方有問題,不知怎樣解決,求高手指點,謝謝
#include<reg52.h>
#define Data_ADC0809 P0                   //定義P0口為Data_ADC0809

//ADC0809
sbit ST=P2^0;
sbit EOC=P2^1;
sbit OE=P2^2;

sbit ADDR_A = P3^5;                              //低位地址控制位
sbit ADDR_B = P3^6;                              //低位地址控制位
sbit ADDR_C = P3^7;                                                                 //高位地址控制位

//函數聲明
extern uchar ADC0809();

void ConfigUART(unsigned int baud);              //串行口配置函數
void ConfigTimer0();                             //定時器0配置函數
void SendData(unsigned char ch);                 //字符發送函數
void SendString(char *s);                        //字符串發送函數
//void GetVoltage();                               //ADC電壓獲取函數
unsigned int Linear(double v);                   //線性插值函數,參數v為實測電壓
void DataProcess();                              //數據處理函數
void LedBufRefresh();                            //數碼管顯示緩沖區刷新函數
void UartSend();                                                                 //串口數據發送函數

uhar temp=0;

unsigned char voltage[] = {'0','.','0','0','0',0};
unsigned char time_used[] = {'0','0','0',0};
unsigned char percentage[] = {'0','0','0',0};
unsigned long j,time_used_value,result,percentage_value,voltage_value;
unsigned int code time_sample[21]={0,18,36,54,72,90,108,126,144,162,180,198,216,234,252,270,288,306,324,342,360};
double code voltage_sample[21]={4.35,4.24,4.135,4.005,3.92,3.889,3.858,3.826,3.8,3.78,3.762,3.743,3.725,3.705,3.686,3.667,3.65,3.628,3.492,3.05,2};

//共陽數碼管顯示字符轉換表
unsigned char code LedChar[] = {
        0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
    0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
//數碼管顯示緩沖區,初值0x00確保啟動時都不亮
unsigned char LedBuff[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

void main()
{
        ConfigUART(9600);                            //配置串行口工作模式及參數
        ConfigTimer0();                              //配置定時器0用于數碼管刷新
        EA = 1;                                      //打開總中斷
        while(1)
        {
                //GetVoltage();                            //獲取ADC電壓值
                        //讀取AD值
                temp=ADC0809();
                DataProcess();                           //數據處理
                LedBufRefresh();                         //顯示緩沖區刷新
                UartSend();                              //串口發送
                for(j=0;j<30000;j++);                    //延時讀取
        }
}
/* 數據處理函數 */
void DataProcess()
{
        /* 計算電壓值 */
        voltage_value = (unsigned long)(((double)result * 10 / 32767) * 1000 + 0.5);
        /* 電壓值數組 */
        voltage[4] = '0' + voltage_value % 10;
        voltage[3] = '0' + (voltage_value /10) % 10;
        voltage[2] = '0' + (voltage_value /100) % 10;
        voltage[0] = '0' + (voltage_value /1000) % 10;       
        /* 剩余用時數組 */
        time_used_value =  Linear((double)result * 10 / 32767);
        time_used[2] = '0' + time_used_value % 10;
        time_used[1] = '0' + (time_used_value / 10) % 10;
        time_used[0] = '0' + (time_used_value / 100) % 10;
        /* 百分比數組 */
        percentage_value =
        (unsigned long)((double)(180000 - time_used_value * 500) / 168000 * 100 + 0.5);
        percentage[2] = '0' + percentage_value % 10;
        percentage[1] = '0' + (percentage_value / 10) % 10;
        percentage[0] = '0' + (percentage_value / 100) % 10;
        if((percentage_value / 100) % 10)            //處理百分比最高位
        {
                percentage[0] = '0' + (percentage_value / 100) % 10;
        }
        else
        {
                percentage[0] = ' ';
        }
}
/* 線性插值函數,參數v為實測電壓,返回插值時間結果 */
unsigned int Linear(double v)
{
        unsigned int i,t1,t2,t;
        double v1,v2;
        if(v >= 4.35)                                //大于最大電壓
        {
                t = 0;
                return t;
        }
        if(v <= 2)                                   //小于最小電壓
        {
                t = 360;
                return t;
        }
        for(i=0; i<21; i++)                          //遍歷插值范圍
        {
                if(voltage_sample[i] < v)
                {
                        v1 = voltage_sample[i-1];
                        v2 = voltage_sample[i];
                        t1 = time_sample[i-1];
                        t2 = time_sample[i];
                        t = t2 - (v - v2) * (double)(t2 - t1) / (v1 - v2);
                        break;                               //計算插值結果t
                }
                else if(voltage_sample[i] == v)
                {
                        t = time_sample[i];                  //恰好取采樣值
                        break;
                }
        }
        return t;
}
/* ADC電壓獲取函數 */

//ADC0809讀取信息
uchar ADC0809()
{
uchar temp_=0x00;
        //初始化高阻太
        OE=0;
        //轉化初始化
        ST=0;
        //開始轉換
        ST=1;
        ST=0;
        //外部中斷等待AD轉換結束
        while(EOC==0)
        //讀取轉換的AD值
        OE=1;
        temp_=Data_ADC0809;
        OE=0;
        return temp_;
}

/* 定時器0中斷服務函數 */
void InterruptTimer0() interrupt 1
{
        static unsigned char i = 0;                  //動態掃描的索引
    TH0 = 0xFC;                                  //重新加載初值
    TL0 = 0x67;
                                                 //以下代碼完成數碼管動態掃描刷新
    P1 = 0x00;                                                                    //顯示消隱
    switch(i)                                    //動態掃描
    {
        case 0: ADDR_C = 0; ADDR_B = 0; ADDR_A = 0; i++; P1=LedBuff[0]; break;
        case 1: ADDR_C = 0; ADDR_B = 0; ADDR_A = 1; i++; P1=LedBuff[1]; break;
        case 2: ADDR_C = 0; ADDR_B = 1; ADDR_A = 0; i++; P1=LedBuff[2]; break;
        case 3: ADDR_C = 0; ADDR_B = 1; ADDR_A = 1; i++; P1=LedBuff[3]; break;
                case 4: ADDR_C = 1; ADDR_B = 0; ADDR_A = 0; i++; P1=LedBuff[4]; break;
        case 5: ADDR_C = 1; ADDR_B = 0; ADDR_A = 1; i++; P1=LedBuff[5]; break;
        case 6: ADDR_C = 1; ADDR_B = 1; ADDR_A = 0; i=0; P1=LedBuff[6]; break;
        //case 7: ADDR_C = 1; ADDR_B = 1; ADDR_A = 1; i=0; P1=LedBuff[7]; break;
                //保留最低為數碼管不使用
        default: break;
    }
}
/* 數碼管顯示緩沖區刷新函數 */
void LedBufRefresh()
{
        LedBuff[6] = ~LedChar[percentage_value % 10];
        LedBuff[5] = ~LedChar[(percentage_value / 10) % 10];
        if((percentage_value / 100) % 10)                           //百分比最高位處理
        {
                LedBuff[4] = ~LedChar[(percentage_value / 100) % 10];   //為1則顯示
        }
        else
        {
                LedBuff[4] = 0;                                         //否則不顯示
        }
        LedBuff[3] = ~LedChar[voltage_value % 10];
        LedBuff[2] = ~LedChar[(voltage_value /10) % 10];
        LedBuff[1] = ~LedChar[(voltage_value /100) % 10];           
        LedBuff[0] = ~(LedChar[(voltage_value /1000) % 10] & 0x7F); //最高位小數點處理
}
void UartSend()
{
        SendString("當前電壓:");
        SendString(voltage);
        SendString("V");
//        SendString("    已用時間:");
//        SendString(time_used);
//        SendString("Min");
        SendString("    剩余電量:");
        SendString(percentage);
        SendString("%\r\n");
}
/* 串口配置函數,baud-通信波特率 */
void ConfigUART(unsigned int baud)
{
    SCON  = 0x50;                                //配置串口為模式1
    TMOD &= 0x0F;                                //清零T1的控制位
    TMOD |= 0x20;                                //配置T1為模式2
    TH1 = 256 - (11059200/12/32)/baud;           //計算T1重載值
    TL1 = TH1;                                   //初值等于重載值
    ET1 = 0;                                     //禁止T1中斷
    ES  = 1;                                     //使能串口中斷
    TR1 = 1;                                     //啟動T1
}
/* 定時器0配置函數 */
void ConfigTimer0()
{
    TMOD &= 0xF0;                                //清零T0的控制位
        TMOD |= 0x01;                                //設置T0為模式1
    TH0  = 0xFC;                                 //為T0賦初值0xFC67,定時1ms
    TL0  = 0x67;
        ET0  = 1;                                    //使能T0中斷
    TR0  = 1;                                    //啟動T0
}
/* UART中斷服務函數 */
void InterruptUART() interrupt 4
{
    if(RI)                                       //接收到字節
    {
        RI = 0;                                  //清零接收中斷標志位
    }
    if(TI)                                       //字節發送完畢
    {
        TI = 0;                                  //清零發送中斷標志位
    }
}
/* UART字符發送函數 */
void SendData(unsigned char ch)
{
    SBUF = ch;                                   //啟動發送
        while(!TI);                                  //等待結束
}
/* UART字符串發送函數 */
void SendString(unsigned char *s)
{
    while(*s)                                    //循環發送
    {
        SendData(*s++);
    }
}


報錯信息:
Build target 'Target 1'
compiling main.c...
MAIN.C(14): error C129: missing ';' before 'ADC0809'
Target not created


回復

使用道具 舉報

5#
ID:810978 發表于 2020-8-12 10:37 | 只看該作者
建議檢查錯誤的常用單詞還是要記一下的 對修改錯誤很有幫助
回復

使用道具 舉報

6#
ID:143767 發表于 2020-8-12 17:45 | 只看該作者
就是查不出所以才求助各位的,謝謝提醒
回復

使用道具 舉報

7#
ID:105449 發表于 2020-8-13 15:57 | 只看該作者
依提示修改,注意在輸入代碼前一定要切換到英文輸入模式,否則會報syntax error,特別是在沒切換的時候輸了空格,一時不知問題出在哪里。
回復

使用道具 舉報

8#
ID:814007 發表于 2020-8-13 23:26 | 只看該作者
dj3365191 發表于 2020-8-12 10:15
程序經過改錯就剩下一個地方有問題,不知怎樣解決,求高手指點,謝謝
#include
#define Data_ADC0809 P ...

在#include<reg52.h>下面添加#define uchar unsigned char
回復

使用道具 舉報

9#
ID:143767 發表于 2020-8-14 16:36 | 只看該作者
菜中菜 發表于 2020-8-13 23:26
在#include下面添加#define uchar unsigned char

謝謝指點,加入以后出現如下錯誤信息:
Build target 'Target 1'
compiling main.c...
MAIN.C(29): error C129: missing ';' before 'temp'
Target not created
回復

使用道具 舉報

10#
ID:155507 發表于 2020-8-15 14:33 | 只看該作者
你這里錯了
uhar temp=0;

改成這樣:
unsigned char temp=0;

回復

使用道具 舉報

11#
ID:744327 發表于 2020-8-15 15:18 | 只看該作者
uhar temp=0;沒有定義,需要加這一條語句 #define uchar unsigned char
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线看片 | 中文字幕一区二区在线观看 | 一区二区三区视频在线观看 | 激情婷婷 | 亚洲小视频在线观看 | 99精品一区二区 | 欧美精品v国产精品v日韩精品 | 亚洲精品国产偷自在线观看 | 精品一区二区三区在线视频 | 精品欧美一区二区中文字幕视频 | av黄色免费 | 亚洲高清一区二区三区 | 久久精品小短片 | 色资源在线视频 | 欧美一区二区在线 | 精品产国自在拍 | 午夜精品久久久久久久99黑人 | 国产高清视频在线播放 | 91精品国产综合久久久久久首页 | 久久久久国产成人精品亚洲午夜 | 精品99久久久久久 | 91精品国产高清一区二区三区 | 日本在线视频一区二区 | 日本亚洲一区二区 | 波多野结衣在线观看一区二区三区 | 有码在线| 成人在线视频一区 | 亚洲综合在线播放 | 免费看黄色小视频 | 亚洲视频二区 | 日韩免| 国产精品久久久久久久久久久新郎 | 午夜国产| 国产精品爱久久久久久久 | 色综合桃花网 | www.47久久青青 | 99精品视频在线观看 | 91porn成人精品 | 久久久国产一区二区三区 | 免费国产视频在线观看 | 99视频在线 |