#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define time 50000
#define on 0
#define off 1
sbit RED_ZHU = P0^0; //南北 红灯
sbit YELLOW_ZHU = P0^1;//南北 黄灯
sbit GREEN_ZHU = P0^2; //南北 绿灯
sbit RED_ZHI = P0^3; //东西 红灯
sbit YELLOW_ZHI = P0^4; //东西 黄灯
sbit GREEN_ZHI = P0^5; //东西 绿灯
sbit P23 = P3^4;
sbit P22 = P3^5; //东西方向数码管位选
sbit P21 = P3^6;
sbit P20 = P3^7; //南北方向数码管位选
sbit int0_key = P3^2;
sbit int1_key = P3^3;
void display1(uchar,uchar);
void display2(uchar,uchar);
void delayms(uint k);
uchar temp1,temp2,temp3,temp4,temp5,temp6;
/*===============倒计时=========================*/
uchar N = 50,Y = 45,Z = 50,M = 75,G = 80,U =80;
uchar C50ms,t0;
uchar seg = 1;
uchar flag=0,led_data_temp;
void InitialT1(void)
{
TMOD = 0x11; //定时器0,1工作在方式1
TH1 = (65536 - time)/256; //相当于(65536-time)/256;
TL1 = (65536 - time)%256;//初值为time(50ms)
TR1 = 1;//开定时器1中断
ET1 = 1;//允许定时器1中断
ET0 = 1;
TH0 = (65536 - time)/256;
TL0 = (65536 - time)%256;
EX0 = 1; //允许外部中断0
IE0 = 1;//启动外部中断0
PX0 = 1;
EX1=1;
IE1=1;
EA = 1; //开总中断
}
void int0(void) interrupt 0 //外中断0
{
flag = 0;
led_data_temp = P0;
t0 = 20;
if(!int0_key)
{
delayms(10);
if(!int0_key)
{