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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4440|回復: 7
收起左側

單片機程序報錯error c129 missing';' before'milsec'

[復制鏈接]
ID:537981 發表于 2019-5-19 22:46 | 顯示全部樓層 |閱讀模式
大家幫我看看下面這個程序哪里出現問題了?為什么一直報錯error c129 missing';' before'milsec'

單片機源程序如下:
#define uchar unsigned char
#define uint unsigned int
#include <reg52.h>
#define FOSC 18432000L
#define T1MS 1536  //1ms 定時器

sbit relay =P3^7;          // 繼電器輸出
sbit touch =P1^0;         // 觸摸檢測

ut milsec;
uc sec,temp;


void delay(uc i)
{
       while(i)i--;
}

void InitUart (void);
void InintTimer0 (void);
void InitADC (void);
uc GetADCResult (uc ch);

void main(0)
{
       bitchanal;
       utsave_times,light,voice;
       AUXR= 0×00;
       InintTimer0();
       InitADC();
       sec= 0;
       relay= 0;
       while(1)   //進入主程序循環狀態,一直在這個while循環里檢測
              {
                    if(chanal)
                     {
                           light+=GetADCResult(2);      //光照強度檢測
                            save_times++;
                            }
       else
              {
                     voice+=GetADCResult(6);        //聲音分貝檢測
              }
       chanal= -chanal;
       if(save_times== 256).           //消抖
              {
                     save_times= -0;
                     light/= 256:
                     voice/= 256;
              }
       if((light>200) || (voice>50) || (touch==0)) relay = l;
       if(sec>=20) relay = 0;            //延時輸出20秒后滅燈
       delay(200);
       delay(200);
       }
}

void InirUart(void)
{
SCON = 0×5a;            //8個數據位,無校驗
TMOD = 0×20;           //8位自動裝載
THI = TL1 = -(FOSC/12/32/BAUD);      //設置波特率
TR1 = 1;                   //使能定時1
  }

void InintTimer0(void)
{
TMOD | = 0×01;
  TL0= T1MS;
  TH0= T1MS >> 8;
  TR0= 1;
  ET0= 1;
  EA= 1;
  }

Void InitADC(void)
{
P1 = P1M0 = 0×ff,
P1M1 = 0×00;
ADC _DATA = 0;
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
delay(2);
}

uc GetADCResult(uc ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch |ADC_START:
_nop_():
_nop_();
_nop_();
_nop_();
while(!(ADC_CONTR & ADC_FLAG);          //Wait complete flag
ADC_CONTR &= -ADC_FLAG;
return ADC_DATA;
}

void tm0_isr() interrupt 1 using 1
{
TL0 = T1MS;
TH0 = T1MS >> 8;
milsec++;
if (milsec == 1000)
{
if (sec<20) sec++;
}
}

回復

使用道具 舉報

ID:330198 發表于 2019-5-20 09:33 | 顯示全部樓層
你這個錯誤可不止這一個,自己再好好看看吧
回復

使用道具 舉報

ID:541189 發表于 2019-5-20 12:23 來自觸屏版 | 顯示全部樓層
怎么看到好多冒號啊
回復

使用道具 舉報

ID:511890 發表于 2019-5-20 14:50 | 顯示全部樓層
兩種改法:1、ut milsec;改成uint milsec;  uc sec,temp;改成uchar sec,temp;  
回復

使用道具 舉報

ID:511890 發表于 2019-5-20 14:51 | 顯示全部樓層
2、#define uchar unsigned char改成#define uc unsigned char    #define uint unsigned int改成#define ut unsigned int
回復

使用道具 舉報

ID:213173 發表于 2019-5-20 15:55 | 顯示全部樓層
樓主的程序需要用英文重新抄一遍,包含太多中文字符,不可能通過編譯。
回復

使用道具 舉報

ID:155507 發表于 2019-5-20 15:59 | 顯示全部樓層
給你改了,對比一下就知道哪里錯了。

  1. #include <reg52.h>
  2. #define uc unsigned char
  3. #define ut unsigned int

  4. #define FOSC 18432000L
  5. #define T1MS 1536  //1ms 定時器
  6. sfr P1M1 = 0x91;    //PxM1.n,PxM0.n     =00--->Standard,    01--->push-pull
  7. sfr P1M0 = 0x92;    //                  =10--->pure input,  11--->open drain
  8. sfr  AUXR       =   0x8e;       //輔助寄存器                              

  9. sfr ADC_CONTR   =   0xBC;           //ADC控制寄存器
  10. sfr ADC_RES     =   0xBD;           //ADC高8位結果
  11. sfr ADC_LOW2    =   0xBE;           //ADC低2位結果
  12. sfr P1ASF       =   0x9D;           //P1口第2功能控制寄存器
  13. #define ADC_POWER   0x80            //ADC電源控制位
  14. #define ADC_FLAG    0x10            //ADC完成標志
  15. #define ADC_START   0x08            //ADC起始控制位
  16. #define ADC_SPEEDLL 0x00            //540個時鐘
  17. #define ADC_SPEEDL  0x20            //360個時鐘
  18. #define ADC_SPEEDH  0x40            //180個時鐘
  19. #define ADC_SPEEDHH 0x60            //90個時鐘

  20. sbit relay =P3^7;          // 繼電器輸出
  21. sbit touch =P1^0;         // 觸摸檢測

  22. ut milsec;
  23. uc sec, temp;


  24. void delay(uc i)
  25. {
  26.         while(i)i--;
  27. }

  28. void InitUart (void);
  29. void InintTimer0 (void);
  30. void InitADC (void);
  31. uc GetADCResult (uc ch);

  32. void main(0)
  33. {
  34.         bit chanal;
  35.         ut save_times, light, voice;
  36.         AUXR= 0x00;
  37.         InintTimer0();
  38.         InitADC();
  39.         sec= 0;
  40.         relay= 0;
  41.         while(1)   //進入主程序循環狀態,一直在這個while循環里檢測
  42.         {
  43.                 if(chanal)
  44.                 {
  45.                         light+=GetADCResult(2);      //光照強度檢測
  46.                         save_times++;
  47.                 }
  48.                 else
  49.                 {
  50.                         voice+=GetADCResult(6);        //聲音分貝檢測
  51.                 }
  52.                 chanal= -chanal;
  53.                 if(save_times== 256).           //消抖
  54.                 {
  55.                         save_times= -0;
  56.                         light/= 256:
  57.                         voice/= 256;
  58.                 }
  59.                 if((light>200) || (voice>50) || (touch==0)) relay = l;
  60.                 if(sec>=20) relay = 0;            //延時輸出20秒后滅燈
  61.                 delay(200);
  62.                 delay(200);
  63.         }
  64. }

  65. void InirUart(void)
  66. {
  67.         SCON = 0x5a;            //8個數據位,無校驗
  68.         TMOD = 0x20;           //8位自動裝載
  69.         THI = TL1 = -(FOSC/12/32/BAUD);      //設置波特率
  70.         TR1 = 1;                   //使能定時1
  71. }

  72. void InintTimer0(void)
  73. {
  74.         TMOD | = 0x01;
  75.         TL0= T1MS;
  76.         TH0= T1MS >> 8;
  77.         TR0= 1;
  78.         ET0= 1;
  79.         EA= 1;
  80. }

  81. void InitADC(void)
  82. {
  83.         P1 = P1M0 = 0xff,
  84.         P1M1 = 0x00;
  85.         P1ASF = 0xff;                   //設置P1口為AD口
  86.         ADC_RES = 0;
  87.         ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
  88.         delay(2);
  89. }

  90. uc GetADCResult(uc ch)
  91. {
  92.         ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch |ADC_START:
  93.         _nop_():
  94.         _nop_();
  95.         _nop_();
  96.         _nop_();
  97.         while(!(ADC_CONTR & ADC_FLAG);          //Wait complete flag
  98.         ADC_CONTR &= -ADC_FLAG;
  99.         return ADC_RES;
  100. }

  101. void tm0_isr() interrupt 1 using 1
  102. {
  103.         TL0 = T1MS;
  104.         TH0 = T1MS >> 8;
  105.         milsec++;
  106.         if (milsec == 1000)
  107.         {
  108.                 if (sec<20) sec++;
  109.         }
  110. }
復制代碼
回復

使用道具 舉報

ID:530977 發表于 2019-5-21 20:55 | 顯示全部樓層
ut,uc就已經是錯的了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲九九精品 | 色综网 | 国产精品99久久久久久久vr | 日韩免费一区 | 欧美一区视频 | 亚洲综合二区 | 欧美综合一区 | 老司机成人在线 | 久久av在线播放 | 亚洲视频精品 | 国产女人叫床高潮大片免费 | 超黄毛片 | 亚洲美女一区 | 亚洲h在线观看 | 欧美精品1区2区 | 国产羞羞视频在线观看 | 日本三级电影在线观看视频 | 日韩免费av一区二区 | 欧美一级黄色片在线观看 | 精品欧美一区二区在线观看视频 | 亚洲精品高清视频 | 成人天堂噜噜噜 | 久久高清 | 日韩av在线播 | 久久久久久久av麻豆果冻 | 亚洲精品久久久久中文字幕欢迎你 | 久久久久国产一区二区三区 | 99精品视频免费在线观看 | av色站| 欧美一级二级三级视频 | 亚洲劲爆av| 久久国产区 | 丁香婷婷久久久综合精品国产 | 国产精品国产三级国产aⅴ中文 | 日本成人在线播放 | 中文字幕一区二区不卡 | 免费在线观看一区二区 | 欧美久久一区二区 | 欧美黑人激情 | 毛片久久久 | 激情网站在线观看 |