标题: 流水灯程序错误error C141: syntax error near 'unsigned' [打印本页]

作者: 苏苏彧    时间: 2020-2-7 16:59
标题: 流水灯程序错误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


作者: 学子哟    时间: 2020-2-7 19:16
你把main函数cnt定义放到第一行就可以编译成功了
u8 cnt=0;
  led=0x01;
作者: banalsheep    时间: 2020-2-7 19:23
LED=... 和u8 cnt两行颠倒一下
作者: odfggf    时间: 2020-2-7 21:31

LED=... 和u8 cnt两行颠倒一下,或者删去 led=0x01;这行。
另外 delay(50000);这行后面应该加上cnt++; 否则后面的if语句就没有作用了,就不是流水灯,而是闪烁了
作者: bh2030693    时间: 2020-2-8 16:00
“u8  cnt” 定义变量应放在首行,led赋值不应该放在首行。
程序中cnt没有变化,led反复取反,结果不易控制。
一般是这样写的:




作者: 苏苏彧    时间: 2020-2-9 19:42
好嘞,谢谢各位啦,问题已解决!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1