如何基于如下Proteus 8完成C语言编程的交通信号灯?

图片说明

新手的我写到这就没有头绪了,#include

typedef unsigned int u16;

typedef unsigned char u8;

sbit RED_A=P0^0;

sbit YELLOW_A=P0^1;

sbit GREEN_A=P0^2;

sbit RED_B=P0^3;

sbit YELLOW_B=P0^4;

sbit GREEN_B=P0^5;


主要要弄清楚交通信号灯的原理,想好哪些灯是同步的,灯之间如何变化,只要把这个弄好了,大体上就完成了。
如果你想做得更好一点,建议加个时间显示用来倒计时,用中断来定时。

定义好交通灯花样,要求不高就用延时函数控制交通灯时间间隔。以前写过1个,用的P1口取反后接的交通灯。代码供参考

#include <reg51.h>   //预处理(定义了特殊寄存器的名称)

//定义交通灯花样数据
unsigned char code design[]={0x11,0x33,0x35,0x1e,0x2e};

// 延时函数
void delay_ms(unsigned int time) 
{ 
    unsigned int t; 
    for(;time>0;time--) 
    { 
        t=1600; 
        while(t--); 
    } 
} 


/***************************************************************************
* 函数名:  主函数main        
* 函数功能:让交通灯按照花样中的数据显示
* 入口参数:无
* 出口参数:无
***************************************************************************/
void main()
{
 int j;
 while(1)
{
 for(j=1;j<=4;j++)           
 {
  P1=design[j];  //读交通灯数据写到P1口
  if(j%2)
    delay_ms(500);
  else
    delay_ms(100);  
 }
}
}