標題: 給大家分享個紅綠燈程序 [打印本頁]

作者: 淡定孤鴻    時間: 2018-3-13 14:14
標題: 給大家分享個紅綠燈程序
#include <reg51.h>
sbit R=P2^0;//HONG
sbit W=P2^1;//HUANG
sbit L=P2^2;//LV
unsigned int a,b=0;
//unsigned char code c[]={0xfe,0xfc,0xfb};//1110,1100,1011
unsigned char code c[]={0xfe,0xfD,0xfb,0xfd};//1110,1101,1011,1101//紅 黃 綠 黃//修正黃燈的值,增加一個狀態(tài)
void timer10s () interrupt 1
{

if (a<2000)
    {
        TH0=0xec;//5ms
        TL0=0x78;
        a++;
  //      b=0;//這里不能對b賦值
        TR0=1;
        TR1=0;//【增加】
    }
    if (a>=2000)
    {
        TH0=0xec;
        TL0=0x78;
        a=0;
        b++;//b=1;
        if(b==4) b=0;//【增加】
        TR1=1;
        TR0=0;//【增加】
    }
}
void timer2s ()interrupt 3
{

   if (a<400)
    {
        TH1=0xec;
        TL1=0x78;
        a++;
        TR1=1;
        TR0=0;
    }
    if (a>=400)
    {
        TH1=0xec;
        TL1=0x78;
        a=0;
        b++;//b=2;
        //
        if(b==4) b=0;//【增加】
        TR0=1;
        TR1=0;//【增加】
    }
}
void main ()
{
    EA=1;
    ET0=1;
    ET1=1;
    TMOD=0X11;
    TH0=0xec;//5MS
    TL0=0x78;
    TH1=0xec;
    TL1=0x78;
    TR0=1;
    TR1=0;
    P2=c[0];
    b=0;////【增加】
    while (1)
    {
        switch (b)
        {
            case 0x00:P1=c[0];break;
            case 0x01:P1=c[1];break;
            case 0x02:P1=c[2];break;
            case 0x03:P1=c[3];break;//增加一個狀態(tài)
        }
    }
}


作者: 淡定孤鴻    時間: 2018-3-13 14:15
可以,加油,點點進步




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1