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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4288|回復: 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色视频| 伊人影院99 | 一区视频 | 国产精品99久久久久久宅男 | 1级毛片 | 国产一区久久久 | 成人精品一区二区三区中文字幕 | 99精品国产一区二区三区 | 久久高清免费视频 | 国产一区免费视频 | www.午夜| 青青久草| 91久久精品一区二区二区 | 久久久久久久av | 亚洲日韩中文字幕一区 | 亚洲视频一区在线 | 蜜臀av日日欢夜夜爽一区 | 久久成人av电影 | 精品一区二区免费视频 | 成人在线免费看 | 久久激情网| 日本不卡一区 | 黄网免费 | 久久久久久久久久久久亚洲 | 中文无码日韩欧 | 久久国产精品精品国产色婷婷 |