交通信号灯不能切换信号灯状态

/***************************************************************************
程序名称:program4-3.c
程序功能:模拟交通信号灯的定时控制
****************************************************************************/
#include "reg51.h"	     	//包含头文件reg51.h
unsigned char t,t1;         //全局变量
/***************************************************************************
函数名称:delay1s 
函数功能:用T0的模式1编写1s延时函数
形式参数:无
返回值:无
****************************************************************************/
void delay1s()
{ 
   while(20)
   {for(t=0;t<0x14;t++)	    // 变量t用作循环控制变量
     {  
       TMOD=0X05;
	     TH0=0x3c;			// 设置计数器初值
       TL0=0xb0;           //
       TR0=1;// 启动T0
       while(!TF0);// 查询计数器是否溢出,即定时50ms时间到
       TF0=0;				// 50ms定时时间到,溢出标志位TF0清零
      }
	  }
}
/***************************************************************************
函数名称:delay_t1
函数功能:实现1秒~256秒延时函数
形式参数:unsigned char t2,控制循环次数
返回值:无
****************************************************************************/
void delay_t1(unsigned char t2)
{
     for(t1=0;t1<t2; t1++)		// 采用全局变量t1作为循环控制变量
	   
     delay1s();              //1s延时函数调用
}
/***************************************************************************
函数名称:main 
函数功能:实现交通信号灯的定时控制
****************************************************************************/
void main( )		     	//主函数			
{
  //unsigned char k;
    TMOD=0x01;			// T0工作在模式1
    while(1)
    {  
      P1=0x33;			     // A线放行,B线禁行 
      delay_t1(25);		   //延时25秒
      P1=0x35;           // A线警告,B线禁行
      delay_t1(5);		   //延时5秒
      P1=0x1e;			     // A线禁行,B线放行 
      delay_t1(25);		   //延时25秒
      P1=0x2e;			     // A线禁行,B线警告
      delay_t1(5);		   //延时5秒
     }
}


代码如上所示,

 

要实现的目的:

交通信号灯基本变化规律:

放行线:绿灯亮放行25s,黄灯亮警告5s,然后红灯亮禁止。

禁行线:红灯亮禁止30s,然后绿灯亮放行。

proteus图如下:

初始状态是红灯、绿灯亮;25s后切换到黄灯,到25s后,依然还是初始状态

你代码应该在delay1s()有问题,建议梳理一下这部分代码逻辑

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y