久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1664|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

簡易模擬交通燈

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:427473 發(fā)表于 2018-11-16 01:03 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 池上柳 于 2018-11-16 10:44 編輯

#include<reg51.h>
#define        uchar        unsigned char
#define        uint        unsigned int


sbit        DX_LED2=P2^3;        
sbit        DX_LED1=P2^2;
sbit        NB_LED2=P2^1;        
sbit        NB_LED1=P2^0;


sbit    NB_Yellow=P1^6;
sbit    DX_Yellow=P1^2;
sbit    DX_Red=P1^3;
sbit    NB_Red=P1^7;
bit     Flag_SN_Yellow;
bit     Flag_EW_Yellow;
char        Time_EW;
char        Time_SN;
sbit    key0=P3^0;
sbit    key1=P3^2;
sbit    key2=P3^3;
sbit    key3=P3^6;
sbit    key4=P3^7;
sbit    led1=P3^1;
sbit    led2=P3^4;
sbit    led3=P3^5;
sbit    led4=P2^6;
sbit    led5=P2^7;
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[6]={0X28,0X18,0X48,0X82,0X84,0X81};
void Delay(uchar         a)
{
                /*uchar        i;
                i=a;
                while(i--){;} */
        uchar i,j;
          for(i=a;i>0;i--)
           for(j=110;j>0;j--);
}


void Display(void)
{
                char h,l;
                h=Time_EW/10;
                l=Time_EW%10;


              P0=table[l];
                DX_LED2=1;
                Delay(2);
                DX_LED2=0;


            P0=table[h];
                DX_LED1=1;
                Delay(2);
                DX_LED1=0;


                h=Time_SN/10;
                l=Time_SN%10;
                P0=table[l];
            NB_LED2=1;
                Delay(2);
                NB_LED2=0;
            P0=table[h];
                NB_LED1=1;
                Delay(2);
                NB_LED1=0;               
}
void main(void)
{         
    TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
    TR0=1;


        IT0=1;
        EX0=1;
        PX0=1;
        
        IT1=1;
        EX1=1;
        PX1=1;


    ET1=1;
        PT1=1;
        TR1=1;


        led1=0;led3=0;
        led2=0;led4=0;led5=0;
   while(1)
   {                                       
        Time_EW=EW;        
        Time_SN=SN;               
        while(Time_SN>=5)
        {P1=S[0];         //南北通行,東西紅燈
        Display();}
        P1=0x00;
        while(Time_SN>=0)
        {Flag_SN_Yellow=1;
        DX_Red=1;Display();}
    Flag_SN_Yellow=0;  
         Time_SN=SNL;
         while(Time_SN>=5)
        {P1=S[1];Display();} //南北左拐,東西紅燈
    while(Time_SN>=0)
        {Flag_SN_Yellow=1;
        DX_Red=1;Display();}
    Flag_SN_Yellow=0;  
        
        Time_EW=SN;
        Time_SN=EW;
        while(Time_EW>=5)
        { P1=S[3];//東西通行,南北紅燈
        Display();}
    P1=0x00;
        while(Time_EW>=0)
        {Flag_EW_Yellow=1;
        NB_Red=1;Display();}
    Flag_EW_Yellow=0;
        Time_EW=EWL;
        while(Time_SN>=5)
        {P1=S[5];Display();} //東西左拐,南北紅燈
        while(Time_EW>=0)
        {Flag_EW_Yellow=1;
        NB_Red=1;Display();}
    Flag_EW_Yellow=0;  
                        
        EW=EW1;
        SN=SN1;
        EWL=EWL1;
        SNL=SNL1;
        }
}
void timer0(void)interrupt 1
{
        static uchar t;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        t++;
        
        if(t==10)
        {
          if(Flag_SN_Yellow==1)
          {NB_Yellow=~NB_Yellow;}
          if(Flag_EW_Yellow==1)  
          {DX_Yellow=~DX_Yellow;}
        }
        if(t==20)
        {
        Time_EW--;
        Time_SN--;
        if(Flag_SN_Yellow==1)
            {NB_Yellow=~NB_Yellow;}
        if(Flag_EW_Yellow==1)
            {DX_Yellow=~DX_Yellow;}
        t=0;
        }
        
        if(key0==0)
  {
    Delay(5);
        if(key0==0)//此處按鍵按下,數(shù)碼管端口會被阻塞,當(dāng)然,這也是我要的結(jié)果以便進行下一步的操作
        {
          TR0=0;
          P2=0x00;
          P1=0x88;
          led1=1;
          while(!key0);
          TR0=1;led1=0;
        }
  }        
}
void ext0() interrupt 0//這些外部中斷以及定時器1的中斷都設(shè)置了高優(yōu)先級以打斷定時器0,并保持數(shù)碼管處于閉塞的狀態(tài)
{
        if(key1==0)
        {
          P1=0x82;
          led2=1;
          while(!key1);
          P1=0x88;led2=0;
        }         
}
void ext1() interrupt 2
{
   if(key2==0)
   {
    P1=0x28;
        led3=1;
        while(!key2);
        P1=0x88;led3=0;
   }
}


void T1_timer() interrupt 3
{
        if(key3==0)
        {
         P1=0x81;
         led4=1;
         while(!key3);
         P1=0x88;led4=0;
        }
        if(key4==0)
        {
         P1=0x18;
         led5=1;
         while(!key4);
         P1=0x88;led5=0;
        }
}//原理圖中的非門其實沒有必要連接,可以將顯示代碼稍微改一下就可以不用非門了,先將位選端的電平拉低稍作軟件延時后再拉高就可以了

LJ8SKWBTOKSIH3XKUOKQ9@A.png (117.02 KB, 下載次數(shù): 28)

LJ8SKWBTOKSIH3XKUOKQ9@A.png

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-11-16 03:41 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報

板凳
ID:427473 發(fā)表于 2018-11-16 10:28 | 只看該作者
admin 發(fā)表于 2018-11-16 03:41
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣

好的
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美福利 | 一区二区三区在线 | 欧 | 青春草在线 | 欧美一区二区在线观看 | 国产最新视频在线 | 国产精品1区2区 | 欧美精品中文 | 在线免费观看a级片 | 日韩国产中文字幕 | 狠狠伊人| 狠狠操狠狠干 | 91精品入口蜜桃 | 午夜99 | 毛片日韩| 中文字幕一区二区三区乱码在线 | 亚洲一区二区久久久 | 日日综合 | 久久久久亚洲精品 | 人人干人人干人人干 | 男人的天堂久久 | 亚洲社区在线 | 日韩精品亚洲专区在线观看 | 精品国产一区二区三区性色av | 色毛片| 五月综合久久 | 欧美日韩国产精品激情在线播放 | 欧美一级黄色片免费观看 | 亚洲成人免费视频 | 99免费看 | 成人不卡一区二区 | 免费人成激情视频在线观看冫 | 人人草人人干 | 久久亚洲国产 | www.4hu影院 | 亚洲视频一区在线观看 | 伊人一区| 国产精品一区二区视频 | 极情综合网 | 精品国产31久久久久久 | 午夜天堂精品久久久久 | 99视频在线免费观看 |