keil5代码

#include<regx51.h>
#define LIGHT P1
void delay_ms(unsigned int ms);
void tinerInit();
void main()
{
 unsigned char table[]={0xF3,0xFE,0xEB,0xDE,0xDD};
 unsigned char i;
 tinerInit();
 EX0=1;IT0=1;EX1=1;IT1=1;EA=1;
  while(1)
  {
   LIGHT = table[0];
   delay_ms(5000);
   for(i=0;i<3;i++){
    LIGHT=table[1];
	delay_ms(500);
	LIGHT= table[0];
	delay_ms(500);
   }
	 LIGHT=table[2];
	 delay_ms(2000);
	 LIGHT=table[3];
	 delay_ms(5000);
	 for(i=0;i<3;i++)
	 {
	  LIGHT=table[4];delay_ms(500);
	  LIGHT=table[3];delay_ms(500);
	 }
	  LIGHT=table[5];delay_ms(2000);

  }
}

 void tinerInit()
 {
  TMOD=0x10;
  TH1=(65536-50000)/256;
  TL1=(65536-50000)%256;

 }
 //延时函数
 void delay_ms(unsigned int ms)
 {
  unsigned int i;
  for(i=0;i<ms;i++){
  TH1=0xFC;TL1=0x18;
  TR1=1;
  while(!TF1);
  TF1=0;


  }
 }
 //函数名int_0
 //功能:  外部中断0中断函数,紧急情况处理,当cpu响应外部中断0的中断请求时。
 //        自动执行该函数,实现两个方向红灯同时亮10s 
void int_0() interrupt 0
 {
  unsigned char i,l,m;
  i=P1;
  l=TH1;
  m=TL1;
  P1=0xdb;
  delay_ms(2000);
  P1=1;
  TH1=1;TL1=m;

 }
 //函数名:int_1
 //功能;外部中断1中断函数,特殊情况处理,当cpu响应外部中断1中断请求时,
 //自动执行该函数,实现A道放行5s
 void int_1() interrupt 2
 {
  unsigned char i,l,m;
  EA=0;
  i=P1;
  l=TH1;
  m=TL1;
  EA=1;
  P1=0xf3;
  delay_ms(1000);
  EA=0;
  P1=1;
  TH1=l;
  TL1=m;
  EA=1;

 }

keil5和proteus源文件都在下面请自行下载

proteus中元件名称数量
74HC573
AT89C51单片机
BUTTON按键
CAP电容
CAP-ELEC极性电容
CRYSTAL晶振
LED-RED
LED-YELLOW
RES电阻
电路图在下面资源中
相关文件下载地址
*该资源需回复评论后下载,马上去发表评论?
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

被岁月冰封的一簇火苗,等待理想把它融化、燃烧。