//項目:利用開發板上的開關及可受單片機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);
}
}
|