找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2943|回复: 4
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:423872 发表于 2018-11-9 23:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>         //LED双闪训练+定时器中断+包括精度训练+中断
                    //注:配置定时器中断时,需要加EA(总开关) = 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动态显示接口

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


unsigned int cnt = 0;           //记录进入定时器次数
unsigned bit sym = 0;   //进入预定时间标志

void main()

{
     unsigned char i = 0;//LED步调指示

     EA = 1;           //中断总开关
     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中断使能开关
         TR0  = 1;                   //打开定时器开关


        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 关键字就报上面的错误提示,把bit改成char就无错误,无警告呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:423872 发表于 2018-11-9 23:22 | 只看该作者
补充一下,这句:sbit LED  = P0;删除后还是报一样的错误  
回复

使用道具 举报

板凳
ID:330198 发表于 2018-11-10 11:50 | 只看该作者
这句应该这样写#define  LED   P0
回复

使用道具 举报

地板
ID:164602 发表于 2018-11-10 18:59 | 只看该作者
你的程序中,有两个错误。
第一:第十行sbit LED=P0;
开玩笑,定义一个位变量的sbit,你定义了一个口。但编译时这里没有报错。应该改为#define LED P0;
第二:你说的报错,在十六行unsigned bit sym = 0;   //进入预定时间标志
开玩笑,有无符号位这样的数据类型吗?bit定义一个位变量,只有一位,要么0,要么1,需要定义有无符号吗?
应该改为bit sym=0;
回复

使用道具 举报

5#
ID:387733 发表于 2018-11-11 09:37 | 只看该作者
没有这个数据类型:   unsigned bit
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表