标题:
求解答,这个程序在单片机上为什么不按预想的工作
[打印本页]
作者:
devil11
时间:
2015-1-30 18:26
标题:
求解答,这个程序在单片机上为什么不按预想的工作
#include<reg52.h>
unsigned char LED;
void delay(unsigned int z);
void main()
{
unsigned char a;
LED=0X01;
while(1)
{
for(a=0;a<8;++a)
{
P0=LED;
delay(500);
LED=LED <<1;
LED=LED & 0xFF;
}
}
}
void delay(unsigned int z)
{ unsigned char x,y;
for(;z>0;z--)
{
for(y=1110;y>0;y++)
{ for(x=11110;x>0;x++) ;
}
}
}
本想做一个流水灯,结果死活做不出来,求指教,不甚感激!!
作者:
wind02072107
时间:
2015-1-30 19:03
#include<reg52.h>
unsigned char LED;
void delay(unsigned int z);
void main()
{
unsigned char a;
LED=0X01;
while(1)
{
for(a=0;a<8;a++)
{
P0=LED;
delay(500);
LED=LED <<1;
if(LED==0X00)
LED = 0X01;
}
}
}
void delay(unsigned int z)
{ unsigned char x,y;
for(;z>0;z--)
{
for(y=1110;y>0;y++)
{ for(x=11110;x>0;x++) ;
}
}
}
作者:
devil11
时间:
2015-1-30 19:25
wind02072107 发表于 2015-1-30 19:03
#include
unsigned char LED;
void delay(unsigned int z);
谢谢你,能否留下QQ,新手上路,还希望能多指教
作者:
liaolinhui
时间:
2015-1-31 00:55
x,y,你定义的类型是unsigned char ,unsigned char 的取值范围是0-255,而你程序确是y=1110,x=11110超出范围了,所以要把unsigned char 改成unsigned int
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1