⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 红绿灯.txt

📁 51实现交通灯控制,可以用于学习发光二极管的用法,也可以直接用于工业设计!是不可多得的源码!
💻 TXT
字号:
//P1.0:东西红灯
//P1.1:东西黄灯
//P1.2:东西绿灯
//P1.3:南北红灯
//P1.4:南北黄灯
//P1.5:南北绿灯

#include <AT89X51.H>
#define WERed 1
#define WEYellow 2
#define WEGreen 4
#define NSRed 8
#define NSYellow 16
#define NSGreen 32 
#define ON 1
#define OFF 0
unsigned char buffer;
void main(void)
{
    IE=0x8A;
    TMOD=0x11;
    buffer=WERed+NSRed;
    P1=buffer;
    TR0=ON;
    while(1);    
}

void timer0() interrupt TF0_VECTOR
{
    static unsigned char counter=23;
    if(--counter==0)
    {
        if(buffer==WERed+NSRed)
        {
            buffer=WERed+NSGreen;
            P1=buffer;
            counter=153;
        }
        else if(buffer==WERed+NSGreen)
        {
            buffer=WERed+NSYellow;
            P1=buffer;
            counter=23;
            TR1=ON;
        }
        else if(buffer==WERed+NSYellow)
        {
            buffer=WEGreen+NSRed;
            P1=buffer;
            counter=153;
            TR1=OFF;
            TH1=0;
            TL1=0;
        }
        else if(buffer==WEGreen+NSRed)
        {
            buffer=WEYellow+NSRed;
            P1=buffer;
            counter=23;
            TR1=1;
        }
        else if(buffer==WEYellow+NSRed)
        {
            buffer=WERed+NSGreen;
            P1=buffer;
            counter=153;
            TR1=OFF;
            TH1=0;
            TL1=0;
        }
    }
}


void timer1() interrupt TF1_VECTOR
{
    static unsigned char counter=4;
    if(--counter==0)
    {
        counter=4;
        if(buffer==WERed+NSYellow)
        {
            if(P1==WERed+NSYellow)
                P1=WERed;    
            else
                P1=WERed+NSYellow;
        }
        else
        {
            if(P1==WEYellow+NSRed)
                P1=NSRed;
            else
                P1=WEYellow+NSRed;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -