标题: 可修改时间的智能路口红绿灯交通灯(引脚代码开头已注释) [打印本页]

作者: ijnokmpl    时间: 2019-7-27 09:50
标题: 可修改时间的智能路口红绿灯交通灯(引脚代码开头已注释)
#include <reg51.h>
#define uchar   unsigned char

sbit NSgreen = P3^1; //南北人行道绿灯
sbit WEgreen = P3^0; //东西人行道绿灯
sbit Add_Button = P3^5;//加时间按键
sbit Sub_Button = P3^4;//减时间按键
sbit Reduces_Button = P3^3;//模式选择按键
sbit Y1 = P3^2;
sbit WEbuy_Button = P3^6 ;
sbit NSbuy_Button = P3^7 ;
uchar qiehuan=0;   
uchar  red = 33,yellow = 3,green_strant = 30,green_left = 30;
uchar Mode = 0;
uchar KeyDown=0;
uchar DisplayTab[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x79};  // 0 1 2 3 4 5 6 7 8 9 E
uchar led[8];

uchar Display_Number[] = {0x82,0x84,0x28,0x48,0x81,0x84,0x18,0x48}; //路口红绿灯状态

//延时
void Delay_ms(unsigned int Cnt )
{
unsigned int t;
while (Cnt--)
{         
  t=100;
  while(t--);
}
}

//动态显示
void Dynamic_display()
{
uchar i = 0;
for(i = 0; i < 8; i++)
{
  P0 = DisplayTab[ led[i] ];
     P2 = ~(0x01<<i);
  Delay_ms(1);
  P0 = 0x00;
    }
}

/***************中断程序***********************************/
/*******外部中断0**********/
void function_isr(void) interrupt 0
{
   EX0=0;  //关中断
  qiehuan++;
  if(qiehuan == 5)  Mode=0;  
  EX0=1; //开中断
   
}
//状态1
void luzhi1()
{
     led[4] = green_strant % 10;
     led[5] = green_strant / 10;
  led[6] = 1;
  led[7] = 10;
if(WEbuy_Button == 0)  //时间加
       {
            green_strant += 10;   
       }
}
//状态2
void luzhi2()
{
     led[4] = green_strant % 10;
     led[5] = green_strant / 10;
  led[6] = 3;
  led[7] = 5;
  if(NSbuy_Button == 0)  //时间加
       {
            green_strant += 10;
   
       }
}
/******外部中断2********/
void function_lib(void) interrupt 2
{
Mode++;
if(Mode == 5)  Mode=0;
KeyDown=1;

}

//模式1
void function1()
{
     led[4] = green_strant % 10;
     led[5] = green_strant / 10;
  led[6] = 1;
  led[7] = 10;
  if(Add_Button == 0)  //时间加
       {
            green_strant += 5;
            green_left += 5;
            red += 5;     
       }
     if(Sub_Button == 0) //时间减
       {
            green_strant -= 5;
   green_left -= 5;
            red -= 5;      
    }
     
}
//模式2
void function2()
{
     led[4] = green_left % 10;
     led[5] = green_left ;

//............................................剩余代码在压缩包............................

QQ图片20190727094503.png (207.87 KB, 下载次数: 70)

QQ图片20190727094503.png

QQ图片20190727094518.png (2.22 KB, 下载次数: 88)

QQ图片20190727094518.png

QQ图片20190727094559.png (197.02 KB, 下载次数: 69)

QQ图片20190727094559.png

交通灯.zip

311.64 KB, 下载次数: 35, 下载积分: 黑币 -5

可修改时间的智能交通灯






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1