|
就是按照我的思路敲了一個代碼,實現兩路通行的,但是我的黃燈閃爍5次,只閃爍了3次就執行下一個函數了,為什么啊,賦值循環次數已經是5次了啊,是哪里沖突了嗎?求大佬解答一下
單片機代碼如下:
#include<reg51.h>
sbit P01=P0^1;
sbit P04=P0^4;
void delay1ms()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++)
;
}
void delay(unsigned char n)
{
unsigned char i;
for(i=0;i<n;i++)
delay1ms();
}
void Level_Yellow() //水平黃燈閃爍
{ unsigned char k1;
P0=0XF5; //1111 1001 - 1111 1010閃爍
for(k1=0;k1<5;k1++) // 閃爍5次
{ P01=~P01;
delay(200);
}
}
void Level_Pass() //水平通行
{
unsigned char k3;
P0=0XF3;
for(k3=0;k3<10;k3++)
delay(200);
}
void Vertical_Pass() //垂直通行
{
unsigned char k4;
P0=0Xde;
for(k4=0;k4<10;k4++)
delay(200);
}
void Vertical_Yellow() //垂直黃燈閃爍
{ unsigned char k2;
P0=0XEE;
for(k2=0;k2<5;k2++)
{ P04=~P04;
delay(200);
}
}
void main(void)
{
while(1)
{
Level_Pass();
Level_Yellow ();
Vertical_Pass();
Vertical_Yellow();
}
}
|
|