📄 traffic_light.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -