traffic_light.c

来自「单片机设计的交通信号灯控制程序源代码」· C语言 代码 · 共 98 行

C
98
字号
#include<reg51.h>
#include"max7221.h"

#define uchar unsigned char

sbit green=P2^3;
sbit yellow=P2^4;
sbit red=P2^5;

uchar counter,flag,time_g,time_y,time_r;

void init_timer0()
{
	TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    EA=1;
    ET0=1;
    TR0=1;	
}

void init()
{
    time_g=30;
    time_y=5;
    time_r=35;
    green=0;
    red=0;
    yellow=0;	 
}

void main()
{
	init_timer0();
    InitialMax7221();
    init();
    while(1);	
}

void timer0()interrupt  1
{
	TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    counter++;
    if(counter==20)
    {
     	counter=0;
        switch(flag)
        {   
          case 0:
	            {   
                    red=0;
		         	green=1;
		            WriteMax7221(1,time_g/10);
		            WriteMax7221(2,time_g%10);
		            time_g--;
		            if(time_g==0)
		            {
		             	time_g=30;
		                flag++;
		            }
	            }
                break;
    	 case 1:
	            {   
                    green=0;
		         	yellow=1;
		            WriteMax7221(1,time_y/10);
		            WriteMax7221(2,time_y%10);
		            time_y--;
		            if(time_y==0)
		            {
		             	time_y=5;
		                flag++;
		            }
	            }
                break;
          case 2:
	            {   
                    yellow=0;
		         	red=1;
		            WriteMax7221(1,time_r/10);
		            WriteMax7221(2,time_r%10);
		            time_r--;
		            if(time_r==0)
		            {
		             	time_r=35;
		                flag=0;
		            }
	            }
                break;
           default :   break;
               
        }		
    }	
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?