我的绿灯不会闪烁,求大神求救
#include<AT89X52.H>
sbit NSG=P1^0;
sbit NSY=P1^1;
sbit NSR=P1^2;
sbit WEG=P1^3;
sbit WEY=P1^4;
sbit WER=P1^5;
void Delay(z)
{
unsigned char i;
TMOD=0X10;
for(i=0;i<z;i++)
{
TH1=0X3C;
TL1=0XB0;
TR1=1;
while(!TF1);
TF1=0;
}
}
void main()
{
unsigned char i,t,j,k;
while(1)
{
//南北红灯30S
for(j=30,k=25;j>0;j--)
{
k--;
if(k==0)
{
k=3;
//绿灯闪烁
if(j>=4&&j<=6)
{
NSR=0;
WEG=0;
Delay(10);
WEG=1;
Delay(10);
}
//黄灯亮,红灯横闪烁
else if(j>=1&&j<=3)
{
WEG=1;
WEY=0;
NSR=0;
Delay(10);
NSR=1;
Delay(10);
}
}
else
{
NSR=0;
WER=1;
NSG=1;
WEG=0;
NSY=1;
WEY=1;
Delay(20);
}
}
//东西红灯40S
for(i=40,t=35;i>0;i--)
{
t--;
if(t==0)
{
t=3;
//绿灯闪烁
if(i>=4&&i<=6)
{
WER=0;
NSG=0;
Delay(10);
NSG=1;
Delay(10);
}
//黄灯亮,红灯闪烁
else if(i>=1&&i<=3)
{
NSG=1;
NSY=0;
WER=0;
Delay(10);
WER=1;
Delay(10);
}
}
else
{
WER=0;
NSR=1;
WEG=1;
NSG=0;
WEY=1;
NSY=1;
Delay(20);
}
}
}
}
此帖出自
小平头技术问答
一周热门 更多>