单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 315|回复: 0
打印 上一主题 下一主题
收起左侧

可修改时间的智能路口红绿灯交通灯(引脚代码开头已注释)

[复制链接]
跳转到指定楼层
楼主
#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, 下载次数: 14)

QQ图片20190727094503.png

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

QQ图片20190727094518.png

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

QQ图片20190727094559.png

交通灯.zip

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

可修改时间的智能交通灯

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

快速回复 返回顶部 返回列表