找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1701|回復(fù): 0
收起左側(cè)

單片機(jī)C語言交通信號(hào)燈

[復(fù)制鏈接]
ID:770077 發(fā)表于 2020-6-5 10:51 | 顯示全部樓層 |閱讀模式
綠燈先亮4秒
最后一秒為快閃(亮暗各0.1秒,閃爍5次)
然后黃燈亮2秒
最后紅燈亮4秒
    #include <reg52.h>
#define uchar unsigned char;
#define uint unsigned int;
sbit horizontal_red=P1^0;
sbit horizontal_yellow=P1^1;
sbit horizontal_green=P1^2;
sbit vertical_red=P1^3;
sbit vertical_yellow=P1^4;
sbit vertical_green=P1^5;
uchar code display_code[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X00};

//延時(shí)函數(shù)ms
void DelayMS(unsigned int a){
int i=0,j=a;
for(j=a;j>0;j--){
  for(i=0;i<120;i++){
   ;
  }
}
}        
   
//垂直通行
void vertical_1(){
  int i;   
for(i=0;i<=12;i++){
  horizontal_red=0;  //i<=12時(shí),水平方向紅燈亮,垂直方向綠燈亮倒計(jì)時(shí)9秒
  if(i<7){
   vertical_green=0;         
   P2=display_code[9-i];   
   DelayMS(1000);   
  }else if(i<=9){
   vertical_green=0;
     P2=display_code[9-i];
   DelayMS(200);
   P2=display_code[10];
   DelayMS(200);
  }else{
    vertical_green=1;        
      P2=0x00;
   vertical_yellow=0;            //垂直方向黃燈亮延遲3秒
   DelayMS(1000);
  }
  vertical_yellow=1;
  horizontal_red=1;         
}
}

//水平通行,垂直不通行
void horizontal_1(){
int i;   
for(i=0;i<=12;i++){
     vertical_red=0;    //i時(shí)<=12,垂直方向紅燈亮,水平方向綠燈亮
  if(i<9){      //前九秒,水平方向綠燈亮
   horizontal_green=0;
  }else{
   horizontal_green=1;
   horizontal_yellow=0;
  }   
  if(i>3){          //i>3開始倒計(jì)時(shí)
   P3=display_code[12-i];           
   DelayMS(1000);   
  } else{
   DelayMS(1000);
  }
  P3=0x00;
}
horizontal_yellow=1;
vertical_red=1;
}

void main(){
P2=0x00;
P3=0x00;
while(1){
  vertical_1();
  horizontal_1();
}  
}

HY[FIN4[NHNFC}1`O~_{DGY.png
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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