新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)控制交通燈c51程序

單片機(jī)控制交通燈c51程序

作者: 時間:2012-11-15 來源:網(wǎng)絡(luò) 收藏

先上圖

點(diǎn)擊瀏覽下一頁


點(diǎn)擊瀏覽下一頁

/*
程序效果:單片機(jī)模擬控制程序,規(guī)則如下:當(dāng)南北通車時,此時南北的綠燈亮,東西的紅燈亮,之后南北的綠燈閃爍3次,過后黃燈亮,延時片刻,轉(zhuǎn)東西綠燈亮同時南北紅燈亮,之后東西的綠燈閃爍3次,過后黃燈亮,延時片刻;數(shù)碼管顯示的值都同步,結(jié)束。全部代碼由http://www.51hei.com站長開發(fā)(由于站長對的規(guī)則不是特別了解,產(chǎn)生于事實(shí)沖突,敬請包涵)
*/
#includereg52.h> //頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int
uchar code table[]={0x00,0x01,0x02,0x03, //數(shù)碼管顯示的值
0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,
0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,
0x36,0x37,0x38,0x39,0x40,0x41,0x42,0x43,
0x44,0x45};
void delay(uint x)//延時子函數(shù)
{
  uint i,j;
  for(i=x;i>0;i--)
  for(j=500;j>0;j--);
}
void main() //主函數(shù)
{
  uchar i; //定義局部變量
  P1=table[0]; //數(shù)碼管顯示0
  delay(400); //延時一會兒,在此之前所有數(shù)碼管全為0,
  while(1) //所有的都亮
  {
    for(i=0;i45;i++) //南北通車較多,故延時較多
    {
      P2=0x0a; //南北綠燈亮,東西紅燈亮
       P1=table[i];
      delay(200);
    }
    for(i=0;i3;i++) //南北綠燈閃爍3次,同時東西紅燈亮
     {
       P2=0x0a;
      delay(200);
      P2=0x02;
      delay(200);
    }
    P2=0x22; //南北黃燈亮,同時東西紅燈亮
    delay(600); //延時片刻
    for(i=0;i35;i++) //東西開始通車,由于車輛較少,故延時較少
    {
      P2=0x11; //南北的紅燈亮 ,東西的綠燈亮
      P1=table[i];
      delay(200);
    }
    for(i=0;i3;i++) //東西的綠燈閃爍3次
    {
      P2=0x11;
      delay(200);
      P2=0x10;
      delay(200);
    }
    P2=0x14; //東西的黃燈亮
    delay(600); //延時片刻
  }
}



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉