单片机
返回首页

《逗比小憨憨51单片机Proteus仿真系列》第29期基于51单片机的形象化的交通灯设计

2025-10-09 来源:bilibili

源代码:

//关注逗比小憨憨

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit    Time_Show_LED2=P2^5;

sbit    Time_Show_LED1=P2^4;

sbit EW_LED2=P2^3;

sbit EW_LED1=P2^2;

sbit SN_LED2=P2^1;

sbit SN_LED1=P2^0;

sbit    SN_Yellow=P1^6;

sbit    EW_Yellow=P1^2;

sbit    EW_Red=P1^3;

sbit    SN_Red=P1^7;

sbit    EW_ManGreen=P3^0;

sbit    SN_ManGreen=P3^1;

sbit    Special_LED=P2^6;

sbit    Busy_LED=P2^7;

sbit    Nomor_Button=P3^5;

sbit    Busy_Btton=P3^6;

sbit    Special_Btton=P3^7;

sbit    Add_Button=P3^3;

sbit    Reduces_Button=P3^4;

bit     Flag_SN_Yellow; 

bit     Flag_EW_Yellow;

char Time_EW;

char Time_SN;

uchar EW=60,SN=40,EWL=19,SNL=19; 

uchar EW1=60,SN1=40,EWL1=19,SNL1=19;

uchar code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

uchar code S[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};

void Delay(uchar a)

{

while(a--);

}  

void Display(void)

{

char h,l;

h=Time_EW/10;

l=Time_EW%10;

    P0=table[l];

EW_LED2=1;

Delay(2);

EW_LED2=0;

    P0=table[h];

EW_LED1=1;

Delay(2);

EW_LED1=0;

h=Time_SN/10;

l=Time_SN%10;

P0=table[l];

SN_LED2=1;

Delay(2);

SN_LED2=0;

    P0=table[h];

SN_LED1=1;

Delay(2);

SN_LED1=0;

h= EW1/10;

l= EW1%10;

P0=table[l];

Time_Show_LED1=1;

Delay(2);

    Time_Show_LED1=0;

P0=table[h];

Time_Show_LED2=1;

Delay(2);

    Time_Show_LED2=0;

void EXINT0(void)interrupt 0 using 1

{

EX0=0; 

if(Add_Button==0) 

    EW1+=5;

    SN1+=5;

      if(EW1>=100)

   {

     EW1=99;

     SN1=79;

       }

    }

if(Reduces_Button==0) 

{

        EW1-=5;

        SN1-=5;

        if(EW1<=40)

        { 

     EW1=40;

         SN1=20;

        }

if(Nomor_Button==0)

      {

            EW1=60;

            SN1=40;

EWL1=19;

SNL1=19;

Busy_LED=0;

Special_LED =0;

   }

if(Busy_Btton==0) 

        {

    EW1=45;

            SN1=30;

EWL1=14;

SNL1=14;

Special_LED=0;

Busy_LED=1;

        }

if(Special_Btton==0)

        {

    EW1=75;

            SN1=55;

EWL1=19;

SNL1=19;

Busy_LED=0;

    Special_LED =1;

                  

    }

EX0=1;

}

void doubixiaohanhan(void)interrupt 1 using 1

{

static uchar count;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

if(count==10)

{

  if(Flag_SN_Yellow==1)

  {SN_Yellow=~SN_Yellow;}

  if(Flag_EW_Yellow==1)  

  {EW_Yellow=~EW_Yellow;} 

}

if(count==20)

{

Time_EW--;

Time_SN--;

if(Flag_SN_Yellow==1)

    {SN_Yellow=~SN_Yellow;}

if(Flag_EW_Yellow==1)

    {EW_Yellow=~EW_Yellow;}

count=0;

}

}

void main(void)

Busy_LED=0;

Special_LED=0;

IT0=1;

    TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1; 

ET0=1;

EX0=1;

    TR0=1;

    while(1)

{

EW_ManGreen=0;

        SN_ManGreen=1;

        Flag_EW_Yellow=0;  

Time_EW=EW;

Time_SN=SN;

while(Time_SN>=5)

    {P1=S[0];

         Display();}

    P1=0x00;

while(Time_SN>=0)

   {Flag_SN_Yellow=1;  

    EW_Red=1;      

     Display();

}

//关注逗比小憨憨

    Flag_SN_Yellow=0; 

Time_SN=SNL;

while(Time_SN>=5)

{P1=S[2];

Display();}

P1=0x00;

while(Time_SN>=0)

   {Flag_SN_Yellow=1;

    EW_Red=1;      

    Display();}

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

EW_ManGreen=~EW_ManGreen;

        SN_ManGreen=~SN_ManGreen;

Flag_SN_Yellow=0;  

Time_EW=SN;

Time_SN=EW;

    while(Time_EW>=5)

    {P1=S[4];  

Display();}

P1=0X00;

while(Time_EW>=0)

   {Flag_EW_Yellow=1;

    SN_Red=1;

    Display();}

Flag_EW_Yellow=0;     

Time_EW=EWL;

while(Time_EW>=5)

{P1=S[6];

Display();}

P1=0X00;

while(Time_EW>=0)

   {Flag_EW_Yellow=1; 

    SN_Red=1;

    Display();}

    EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

}

}



进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章