//项目:利用开发板上的开关及可受单片机IO脚控制的发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。
//问题:如果删去第2,3,4个灯的代码,第一个灯就可以按下亮,但是加上后就全不亮了,也没有语法错误,我想知道我的问题出在哪里。
//我是一个初学者,还没有掌握这门技术,希望论坛的大哥们看到这么弱智的问题不要动怒,谢谢您们!!!!
单片机源程序如下:
#include<reg52.h>
sbit sp1=P3^0;
sbit sp2=P3^1;
sbit sp3=P3^2;
sbit sp4=P3^3;
void delay(int z)
{
int x,y;
for(x=z;x>0;x-- )
for(y=114;y>0;y--) ;
}
void main()
{
if(sp1==0)
{
delay(10);
if(sp1==0)
{P1=0xfe;
delay(5);}
while(1);
}
if(sp2==0)
{
delay(10);
if(sp2==0)
{P1=0xfd;
delay(5);}
while(1);
}
if(sp3==0)
{
delay(10);
if(sp3==0)
{P1=0xfb;
delay(5);}
while(1);
}
if(sp4==0)
{
delay(10);
if(sp4==0)
{P1=0xf7;
delay(5);}
while(1);
}
}
|