[求助] 求大神打救我的交通灯

Winner24   2012-6-14 16:46 楼主

我的绿灯不会闪烁,求大神求救

#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);
   }
   }

   }
 }

回复评论 (6)

程序加些注释吧,否则对看程序的人是一种折磨。
除了绿灯不会闪烁,黄灯,红灯闪烁正常吗?
点赞  2012-6-14 17:38
也不会哦
点赞  2012-6-14 18:18
//南北红灯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);
                 }
          }
点赞  2012-6-14 18:36
没有用定时器中断么??感觉怪怪的
点赞  2012-6-14 20:08
大神不喜欢看这么乱的代码的。。。。除非楼主是妹子。。。。
点赞  2012-6-18 02:29
初学者也不喜欢看这么乱的代码的。。。。除非楼主是美女。。。。
点赞  2012-6-22 23:57
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复