找回密码
 立即注册

QQ登录

只需一步,快速开始

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

流水灯程序错误error C141: syntax error near 'unsigned'

[复制链接]
跳转到指定楼层
楼主
自学单片机中,写这个流水灯程序,不知道是哪步错了,求各位指点,万分感谢!
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
#define led P2
void delay(u16 i)
{
        while(i--);
}
void main()
{
        led=0x01;
        u8 cnt=0;
        while(1)
        {
            led=~(led<<cnt);
            delay(50000);
                if(cnt>=8)
                {cnt=0;}
        }
}

错误提示如下
liushuideng.c(14): error C141: syntax error near 'unsigned'
liushuideng.c(14): error C202: 'cnt': undefined identifier

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

使用道具 举报

沙发
ID:621199 发表于 2020-2-7 19:16 | 只看该作者
你把main函数cnt定义放到第一行就可以编译成功了
u8 cnt=0;
  led=0x01;
回复

使用道具 举报

板凳
ID:168996 发表于 2020-2-7 19:23 | 只看该作者
LED=... 和u8 cnt两行颠倒一下
回复

使用道具 举报

地板
ID:642838 发表于 2020-2-7 21:31 | 只看该作者

LED=... 和u8 cnt两行颠倒一下,或者删去 led=0x01;这行。
另外 delay(50000);这行后面应该加上cnt++; 否则后面的if语句就没有作用了,就不是流水灯,而是闪烁了
回复

使用道具 举报

5#
ID:245004 发表于 2020-2-8 16:00 | 只看该作者
“u8  cnt” 定义变量应放在首行,led赋值不应该放在首行。
程序中cnt没有变化,led反复取反,结果不易控制。
一般是这样写的:



回复

使用道具 举报

6#
ID:688693 发表于 2020-2-9 19:42 | 只看该作者
好嘞,谢谢各位啦,问题已解决!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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