📄 红绿灯.txt
字号:
//P1.0:东西红灯
//P1.1:东西黄灯
//P1.2:东西绿灯
//P1.3:南北红灯
//P1.4:南北黄灯
//P1.5:南北绿灯
#include <AT89X51.H>
#define WERed 1
#define WEYellow 2
#define WEGreen 4
#define NSRed 8
#define NSYellow 16
#define NSGreen 32
#define ON 1
#define OFF 0
unsigned char buffer;
void main(void)
{
IE=0x8A;
TMOD=0x11;
buffer=WERed+NSRed;
P1=buffer;
TR0=ON;
while(1);
}
void timer0() interrupt TF0_VECTOR
{
static unsigned char counter=23;
if(--counter==0)
{
if(buffer==WERed+NSRed)
{
buffer=WERed+NSGreen;
P1=buffer;
counter=153;
}
else if(buffer==WERed+NSGreen)
{
buffer=WERed+NSYellow;
P1=buffer;
counter=23;
TR1=ON;
}
else if(buffer==WERed+NSYellow)
{
buffer=WEGreen+NSRed;
P1=buffer;
counter=153;
TR1=OFF;
TH1=0;
TL1=0;
}
else if(buffer==WEGreen+NSRed)
{
buffer=WEYellow+NSRed;
P1=buffer;
counter=23;
TR1=1;
}
else if(buffer==WEYellow+NSRed)
{
buffer=WERed+NSGreen;
P1=buffer;
counter=153;
TR1=OFF;
TH1=0;
TL1=0;
}
}
}
void timer1() interrupt TF1_VECTOR
{
static unsigned char counter=4;
if(--counter==0)
{
counter=4;
if(buffer==WERed+NSYellow)
{
if(P1==WERed+NSYellow)
P1=WERed;
else
P1=WERed+NSYellow;
}
else
{
if(P1==WEYellow+NSRed)
P1=NSRed;
else
P1=WEYellow+NSRed;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -