找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51交通燈和 仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:588319 發(fā)表于 2020-6-16 22:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
void main()
{
   P1=0x21;  //剛開始南北的紅燈亮,東西的綠燈亮
   TMOD=0x01;
   TH0=(65535-50000)/256;
   TL0=(65535-50000)%256;   //初值
   EA=1;     //打開總中斷
   ET0=1;    //定時器0允許中斷
   TR0=1;    //定時器0開始計時
   EX0=1;    //外部中斷0允許位
   IT0=1;    //外部中斷0觸發(fā)方式(下降沿)
   while(1)
   {
      if(flag)
      {
               if(!p)
      {
          shi1=time1/10;   //南北十位
          ge1=time1%10; //南北個位
          shi2=time2/10;   //東西十位
          ge2=time2%10; //東西個位
          display(ge1,shi1,ge2,shi2); //顯示函數(shù)
      }
       if(p)
          dis();  //不顯示函數(shù)
      if(key==3)   //夜間模式
      {
          P0=0xff;
          q=!q;
          if(q!=0)
             P1=0x12;
          else
             P1=0;
          delay(200);
      }
   }  
}   
void ext0() interrupt 0
{
   flag=1;
   status=P2;
}
void timer() interrupt1   //定時中斷程序
{
   TH0=(65535-50000)/256;
   TL0=(65535-50000)%256;     //重新賦初值
   temp++;
   if(temp==20)   //說明過去了1秒
   {
      temp=0;   //清零,重新加到20
      //東西方向南北方向時間自減
      time1--;
      time2--;
      if(time1>time2)  //南北大于東西
      {
          time1=time2+3;
          P1=0x21;  //南北紅燈亮起,東西綠燈亮起
         if(time2==0&&time1==3)  
          {
             time2=3;  //重新賦南北和東西的差值,與南北方向一起倒計時
             P1=0x11;  //東西黃燈亮起,東西綠燈關(guān)閉
             tab=0;  //標(biāo)志位
          }  
      }
      if(time1<time2)  //南北小于東西
      {  
          time2=time1+3;      
          P1=0x0c;  //南北綠燈亮起,東西紅燈亮起
          if(time1==0&&time2==3)  
          {
             time1=3;  //重新賦南北和東西的差值,與東西方向一起倒計時
             P1=0x0a;  //南北黃燈亮起,南北綠燈關(guān)閉
             tab=1; //標(biāo)志位
          }  
      }
      if(!tab)        //黃燈閃爍三秒
      {
          if(time1==2&&time2==2)
             P1=0x01;
          if(time1==1&&time2==1)
             P1=0x11;
      }
      if(tab)
      {
          if(time1==2&&time2==2)
             P1=0x08;
          if(time1==1&&time2==1)
             P1=0x0a;
      }  
      if(time1==0&&time2==0&&tab==0)  //東西倒計時結(jié)束
      {
          time1=t1;
          time2=t1+3;
          P1=0x0c;   //東西紅燈,南北綠燈
      }
      if(time1==0&&time2==0&&tab==1)  //南北倒計時結(jié)束
      {
         time1=t2+3;
          time2=t2;
          P1=0x21;   //南北紅燈,東西綠燈
      }  
   }  

}

交通燈-1.zip

11.04 MB, 下載次數(shù): 40, 下載積分: 黑幣 -5

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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