標(biāo)題: 51交通燈和 仿真 [打印本頁(yè)]

作者: 青色    時(shí)間: 2020-6-16 22:22
標(biāo)題: 51交通燈和 仿真
void main()
{
   P1=0x21;  //剛開(kāi)始南北的紅燈亮,東西的綠燈亮
   TMOD=0x01;
   TH0=(65535-50000)/256;
   TL0=(65535-50000)%256;   //初值
   EA=1;     //打開(kāi)總中斷
   ET0=1;    //定時(shí)器0允許中斷
   TR0=1;    //定時(shí)器0開(kāi)始計(jì)時(shí)
   EX0=1;    //外部中斷0允許位
   IT0=1;    //外部中斷0觸發(fā)方式(下降沿)
   while(1)
   {
      if(flag)
      {
               if(!p)
      {
          shi1=time1/10;   //南北十位
          ge1=time1%10; //南北個(gè)位
          shi2=time2/10;   //東西十位
          ge2=time2%10; //東西個(gè)位
          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   //定時(shí)中斷程序
{
   TH0=(65535-50000)/256;
   TL0=(65535-50000)%256;     //重新賦初值
   temp++;
   if(temp==20)   //說(shuō)明過(guò)去了1秒
   {
      temp=0;   //清零,重新加到20
      //東西方向南北方向時(shí)間自減
      time1--;
      time2--;
      if(time1>time2)  //南北大于東西
      {
          time1=time2+3;
          P1=0x21;  //南北紅燈亮起,東西綠燈亮起
         if(time2==0&&time1==3)  
          {
             time2=3;  //重新賦南北和東西的差值,與南北方向一起倒計(jì)時(shí)
             P1=0x11;  //東西黃燈亮起,東西綠燈關(guān)閉
             tab=0;  //標(biāo)志位
          }  
      }
      if(time1<time2)  //南北小于東西
      {  
          time2=time1+3;      
          P1=0x0c;  //南北綠燈亮起,東西紅燈亮起
          if(time1==0&&time2==3)  
          {
             time1=3;  //重新賦南北和東西的差值,與東西方向一起倒計(jì)時(shí)
             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)  //東西倒計(jì)時(shí)結(jié)束
      {
          time1=t1;
          time2=t1+3;
          P1=0x0c;   //東西紅燈,南北綠燈
      }
      if(time1==0&&time2==0&&tab==1)  //南北倒計(jì)時(shí)結(jié)束
      {
         time1=t2+3;
          time2=t2;
          P1=0x21;   //南北紅燈,東西綠燈
      }  
   }  

}

交通燈-1.zip

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






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