找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2989|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

XF.C(16): error C141: syntax error near 'bit'

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:423872 發(fā)表于 2018-11-9 23:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>         //LED雙閃訓練+定時器中斷+包括精度訓練+中斷
                    //注:配置定時器中斷時,需要加EA(總開關(guān)) = 1,ET0(定時器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;           //記錄進入定時器次數(shù)
unsigned bit sym = 0;   //進入預(yù)定時間標志

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;           //選擇定時器模式
         TMOD|= 0x01;           //選擇定時器模式

         TL0 = 0x00;        //配置T0的初始值
         TH0 = 0xB8;                   //配置T0的初始值
         
         ET0 = 1;                   //打開定時器T0中斷使能開關(guān)
         TR0  = 1;                   //打開定時器開關(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;                                           //補償計時誤差

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

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

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

使用道具 舉報

沙發(fā)
ID:423872 發(fā)表于 2018-11-9 23:22 | 只看該作者
補充一下,這句:sbit LED  = P0;刪除后還是報一樣的錯誤  
回復(fù)

使用道具 舉報

板凳
ID:330198 發(fā)表于 2018-11-10 11:50 | 只看該作者
這句應(yīng)該這樣寫#define  LED   P0
回復(fù)

使用道具 舉報

地板
ID:164602 發(fā)表于 2018-11-10 18:59 | 只看該作者
你的程序中,有兩個錯誤。
第一:第十行sbit LED=P0;
開玩笑,定義一個位變量的sbit,你定義了一個口。但編譯時這里沒有報錯。應(yīng)該改為#define LED P0;
第二:你說的報錯,在十六行unsigned bit sym = 0;   //進入預(yù)定時間標志
開玩笑,有無符號位這樣的數(shù)據(jù)類型嗎?bit定義一個位變量,只有一位,要么0,要么1,需要定義有無符號嗎?
應(yīng)該改為bit sym=0;
回復(fù)

使用道具 舉報

5#
ID:387733 發(fā)表于 2018-11-11 09:37 | 只看該作者
沒有這個數(shù)據(jù)類型:   unsigned bit
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表