流水灯程序总提示错误
时间:10-02
整理:3721RD
点击:
#include<reg51.h>
sbit m=P1;
void delay()
{
int x=32766;
while(x--);
}
void main()
{
char i;
while(1)
{
for(i=0;i<8;i++)
{
P0=m;
delay();
m<<=1;
}
}
}
提示错误:EX8.C(17): error C193: '<<=': bad operand type
sbit m=P1;
void delay()
{
int x=32766;
while(x--);
}
void main()
{
char i;
while(1)
{
for(i=0;i<8;i++)
{
P0=m;
delay();
m<<=1;
}
}
}
提示错误:EX8.C(17): error C193: '<<=': bad operand type
貌似你这个m没有赋值,默认为0
小编是想P1口赋值给m作为初值吗,可以这样
#include<reg51.h>
void delay()
{
int x=32766;
while(x--);
}
void main()
{
char i,m;
m=P1;
while(1)
{
for(i=0;i<8;i++)
{
P0=m;
delay();
m<<=1;
}
}
}
和2楼的观点一样,欢迎加入我的小组http://bbs.elecfans.com/group-352-1.html
真心搞不懂小编:sbit m=P1;这个是什么意思
如果是楼上所说的意思,那楼上正解,
如果只是P0接LED灯,与P1无关,做流水灯,那就这样
#include<reg51.h>
void delay()
{
int x=32766;
while(x--);
}
void main()
{
char i,m;
m=0xfe;
while(1)
{
for(i=0;i<8;i++)
{
P0=m;
delay();
m<<=1;
}
}
}
嗯,这样改就可以了,谢谢了
sbit用法错误!
自己在Keil的help中搜索sbit。会有相关的说明。英文的。
m<<=1;就是P1<<=1;应该是不能直接对IO口移位操作的吧
旁观
mark下
顶!
很强啊
第一句没必要,删了
讲解得好
就这样。
有很多地方都不太规范,建议你先看懂一段其他的流水灯程序先