无法运行的流水灯程序,求大神帮忙找一下问题
时间:10-02
整理:3721RD
点击:
刚学51单片机,但是运行这个流水灯程序的时候出现了错误,下附代码和运行结果,真心求解。
#include<reg52.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
void main()
{
ADDR0=1;
ADDR1=1;
ADDR2=0;
ADDR3=1;
ENLED=0;
unsigned int i = 0;
unsigned char cnt=0;
while(1)
{ P0=~(0x01<<cnt);
for(i=0;i,20000;++i)
cnt++;
if (cnt>=8)
{
cnt=0;
}
}
}
运行结果:
Build target 'Target 1'
assembling STARTUP.A51...
compiling led流水灯.c...
LED流水灯.C(16): error C141: syntax error near 'unsigned'
LED流水灯.C(16): error C202: 'i': undefined identifier
LED流水灯.C(17): error C141: syntax error near 'unsigned'
LED流水灯.C(17): error C202: 'cnt': undefined identifier
LED流水灯.C(20): error C202: 'cnt': undefined identifier
LED流水灯.C(21): error C202: 'i': undefined identifier
LED流水灯.C(22): error C202: 'cnt': undefined identifier
LED流水灯.C(23): error C202: 'cnt': undefined identifier
LED流水灯.C(25): error C202: 'cnt': undefined identifier
Target not created
#include<reg52.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
void main()
{
ADDR0=1;
ADDR1=1;
ADDR2=0;
ADDR3=1;
ENLED=0;
unsigned int i = 0;
unsigned char cnt=0;
while(1)
{ P0=~(0x01<<cnt);
for(i=0;i,20000;++i)
cnt++;
if (cnt>=8)
{
cnt=0;
}
}
}
运行结果:
Build target 'Target 1'
assembling STARTUP.A51...
compiling led流水灯.c...
LED流水灯.C(16): error C141: syntax error near 'unsigned'
LED流水灯.C(16): error C202: 'i': undefined identifier
LED流水灯.C(17): error C141: syntax error near 'unsigned'
LED流水灯.C(17): error C202: 'cnt': undefined identifier
LED流水灯.C(20): error C202: 'cnt': undefined identifier
LED流水灯.C(21): error C202: 'i': undefined identifier
LED流水灯.C(22): error C202: 'cnt': undefined identifier
LED流水灯.C(23): error C202: 'cnt': undefined identifier
LED流水灯.C(25): error C202: 'cnt': undefined identifier
Target not created
头文件呢?
兄弟,你这报错全是语法错误或是没有定义变量,变量不能放在中间定义,你把unsigned int i=0;unsigned char cnt=0;这两句放到main函数下面第一行(即位变量赋值的前面)再编译看看
还有,你的LED灯是共阴极的还是用P1口控制位选的?如果是共阴极的,那定义那么多P1口干啥?流水灯是51中最简单的程序,我看你这写的好复杂啊,呵呵
这程序好多漏洞
这写的。
我刚学单片机,看不懂,就是感觉有几个地方怪怪的,for语句的 i,20000,++i?我看视频是for(i=0;i大于等于小于x;i++){}
i=0;i,20000;++i错了。
栏目分类
射频专业培训教程推荐