逼迫营业的咸鱼 2021-04-29 19:05 采纳率: 0%
浏览 30

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

/***************************************************************************
程序名称: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后,依然还是初始状态

  • 写回答

3条回答 默认 最新

  • CSDN专家-黄老师 2021-04-29 21:36
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住