標(biāo)題: XF.C(16): error C141: syntax error near 'bit' [打印本頁]

作者: pingdiguo    時(shí)間: 2018-11-9 23:18
標(biāo)題: XF.C(16): error C141: syntax error near 'bit'
#include <reg52.h>         //LED雙閃訓(xùn)練+定時(shí)器中斷+包括精度訓(xùn)練+中斷
                    //注:配置定時(shí)器中斷時(shí),需要加EA(總開關(guān)) = 1,ET0(定時(shí)器0中斷使能) = 1

sbit ADDR0 = P1^0;                                       
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

sbit LED  = P0;                //定義P0端口為LED動態(tài)顯示接口

unsigned char code LEDShow[] = {0xE7,0xDB,0xBD,0x7E};  //lLED雙閃段


unsigned int cnt = 0;           //記錄進(jìn)入定時(shí)器次數(shù)
unsigned bit sym = 0;   //進(jìn)入預(yù)定時(shí)間標(biāo)志

void main()

{
     unsigned char i = 0;//LED步調(diào)指示

     EA = 1;           //中斷總開關(guān)
     ADDR3 = 1;                   //啟動74HC138譯碼器使能端子
     ENLED = 0;                   //啟動74HC138譯碼器使能端子
         
     ADDR0 = 0;                   //選擇LED的控制位
     ADDR1 = 1;                   //選擇LED的控制位
     ADDR2 = 1;                   //選擇LED的控制位

     TMOD&= 0xF0;           //選擇定時(shí)器模式
         TMOD|= 0x01;           //選擇定時(shí)器模式

         TL0 = 0x00;        //配置T0的初始值
         TH0 = 0xB8;                   //配置T0的初始值
         
         ET0 = 1;                   //打開定時(shí)器T0中斷使能開關(guān)
         TR0  = 1;                   //打開定時(shí)器開關(guān)


        while(1)
        {
                if (sym==1)
                {
                  sym = 0;

                  P0 = LEDShow[i];
                  i++;
                  if(i>=4)
                  P0 = LEDShow[8-i];
                  if(i>=8)
                  i = 0;
               
               
                }
        }

}

void InterruptTimer0() interrupt 1
{
        unsigned int tmp;
        tmp = 11059200/12;
        tmp = tmp*2/1000;
        tmp = 65536-tmp;
        tmp = tmp+18;                                           //補(bǔ)償計(jì)時(shí)誤差

        TH0 = (unsigned char)(tmp>>8);          //重裝T0定時(shí)器高8位
        TL0 =  (unsigned char)tmp;                   //重裝T0定時(shí)器低8位

         cnt++;
         if(cnt==20)
        sym = 1;
}
同志們,俺有個(gè)問題,請教下各位大佬:為什么加上bit 關(guān)鍵字就報(bào)上面的錯誤提示,把bit改成char就無錯誤,無警告呢?


作者: pingdiguo    時(shí)間: 2018-11-9 23:22
補(bǔ)充一下,這句:sbit LED  = P0;刪除后還是報(bào)一樣的錯誤  
作者: zhanghyg    時(shí)間: 2018-11-10 11:50
這句應(yīng)該這樣寫#define  LED   P0
作者: HC6800-ES-V2.0    時(shí)間: 2018-11-10 18:59
你的程序中,有兩個(gè)錯誤。
第一:第十行sbit LED=P0;
開玩笑,定義一個(gè)位變量的sbit,你定義了一個(gè)口。但編譯時(shí)這里沒有報(bào)錯。應(yīng)該改為#define LED P0;
第二:你說的報(bào)錯,在十六行unsigned bit sym = 0;   //進(jìn)入預(yù)定時(shí)間標(biāo)志
開玩笑,有無符號位這樣的數(shù)據(jù)類型嗎?bit定義一個(gè)位變量,只有一位,要么0,要么1,需要定義有無符號嗎?
應(yīng)該改為bit sym=0;
作者: sxhwdz    時(shí)間: 2018-11-11 09:37
沒有這個(gè)數(shù)據(jù)類型:   unsigned bit




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1