#include<REG51.H>
#include<stdio.h>
Sbit snred=P1^0;
Sbit snyellow=P1^1;
Sbit sngreen=P1^2;
Sbit ewred=P1^3;
Sbit ewyellow=P1^4;
Sbit ewgreen=P1^5;
void delay20() /延时20秒子程序
{
unsigned char i,j;
for(i=0;i<5000;i++)
for(j=0;j<2000;j++);
}
void delay5() //延时5秒子程序
{
unsigned char i,j;
for(i=0;i<5000;i++)
for(j=0;j<500;j++);
}
unsigned char data bHasInt0=0;
void START(void) interrupt 0
{
while(bHasInt0!=1)
{ snyellow=0
Ewred=0;
ewgreen=1;
snred=1; //东西通行,南北禁止
delay20(); //20秒延时
ewgreen=0;
ewyellow=1; //东西亮黄灯,南北禁止
delay5(); //5秒延时
ewyellow=0;
ewred=1;
snred=0;
sngreen=1; //东西禁止,南北通行
delay20(); //20秒延时
sngreen=0;
snyellow=1; //东西禁止,南北亮黄灯
delay5(); //5秒延时
}
}
void STOP (void) interrupt 1
{ bHasInt0=1;
snred=0;
snyellow=0;
sngreen=0;
ewred=0;
ewyellow=0;
ewgreen=0; //关闭所有信号灯
}
void main()
{
snred=0;
snyellow=0;
sngreen=0;
ewred=0;
ewyellow=0;
ewgreen=0; //关闭所有信号灯
EX1=1; //开中断
EA=1;
}