找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2244|回復(fù): 1
收起左側(cè)

給大家分享個紅綠燈程序

[復(fù)制鏈接]
ID:291258 發(fā)表于 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)
        }
    }
}

回復(fù)

使用道具 舉報

ID:291258 發(fā)表于 2018-3-13 14:15 | 顯示全部樓層
可以,加油,點點進步
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表