<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于STC89C52單片機的智能交通燈設計

精通單片機與嵌入式 ? 來源:精通單片機與嵌入式 ? 2023-09-04 09:52 ? 次閱讀

功能

1、本設計基于STC89C51/52(與AT89S51/52、AT89C51/52通用,可任選)單片機

2、數碼管倒計時顯示時間。

3、東西和南北方向各有兩個數碼管,分別顯示時間,東西和南北的時間是不一樣的哦,要相差黃燈的時間才是正確的。

4、可以分別設置主干道和支干道的通行時間。

5、有緊急模式,可以特種車輛優先通行或交通事故應急處理。

操作說明

按鍵依次功能:黃燈長亮(深夜模式)、紅燈長亮(禁行)、確定調時時間、時間加、時間減、切換調時方向(東西和南北均可以分別設置通行時間)。單獨的是復位按鍵。

參考論文

206cf92a-4a5b-11ee-97a6-92fbcf53809c.png

原理圖

20ad5326-4a5b-11ee-97a6-92fbcf53809c.png

程序源代碼

//主程序
void main()
{
  TMOD=0X11;             //定時器設置
  TH1=0X3C;    
  TL1=0XB0;
  TH0=0X3C;          //定時器0置初值 0.05S
  TL0=0XB0;
  EA=1;            //開總中斷
  ET0=1;            //定時器0中斷開啟
  ET1=1;             //定時器1中斷開啟
  TR0=1;            //啟動定時0
  TR1=0;               //關閉定時1
    logo();            //開機初始化
  P2=0Xc3;          // 開始默認狀態,東西綠燈,南北黃燈   
    sec_nb=sec_dx+5;       //默認南北通行時間比東西多5秒
  while(1)            //主循環
  {   
    key();           //調用按鍵掃描程序
    display();         //調用顯示程序
  }  
}
//函數的定義部分
void key(void)  //按鍵掃描子程序
{   
  if(k1!=1)              //當K1(時間加)按下時
  {
    display();               //調用顯示,用于延時消抖
    if(k1!=1)              //如果確定按下
    {
        TR0=0;                 //關定時器  
      shanruo=0;          //閃爍標志位關
      P2=0x00;          //滅顯示
      TR1=0;              //啟動定時1
      if(set==0)          //設置鍵按下
        set_timedx++;       //南北加1S
      else
        set_timenb++;        //東西加1S
      if(set_timenb==100)
        set_timenb=1;
      if(  set_timedx==100)
        set_timedx=1;       //加到100置1
      sec_nb=set_timenb ;     //設置的數值賦給東西南北
      sec_dx=set_timedx;      
        do
       { 
        display();         //調用顯示,用于延時
      }
      while(k1!=1);       //等待按鍵釋放
    }
  }


  if(k2!=1)              //當K2(時間減)按鍵按下時
  {    
    display();               //調用顯示,用于延時消抖  
    if(k2!=1)            //如果確定按下
    {  
       TR0=0;                 //關定時器0  
      shanruo=0;          //閃爍標志位關
      P2=0x00;          //滅顯示
      TR1=0;            //關定時器1  
      if(set==0)
        set_timedx--;        //南北減1S
      else
        set_timenb--;        //東西減1S
      if(set_timenb==0)
        set_timenb=99;  
      if(  set_timedx==0 )
        set_timedx=99;       //減到1重置99
      sec_nb=set_timenb ;       //設置的數值賦給東西南北
      sec_dx=set_timedx;
        do  
        { 
        display();           //調用顯示,用于延時
      }
      while(k2!=1);         //等待按鍵釋放
    }
  }


  if(k3!=1)              //當K3(確認)鍵按下時
  {  
    display();               //調用顯示,用于延時消抖
    if(k3!=1)            //如果確定按下
    {
      TR0=1;              //啟動定時器0
      sec_nb=set_timenb;        //從中斷回復,仍顯示設置過的數值
      sec_dx=set_timedx;        //顯示設置過的時間
      TR1=0;              //關定時器1  
      if(set==0)            //時間倒時到0時
      { 
        P2=0X00;           //滅顯示
        Green_dx=1;            //東西綠燈亮
        Red_nb=1;          //南北紅燈亮
        sec_nb=sec_dx+5;       //回到初值
      }
      else 
      { 
        P2=0x00;          //南北綠燈,東西紅燈
        Green_nb=1;
        Red_dx=1;
        sec_dx=sec_nb+5; 
      }
    }
  }


  if(k4!=1)              //當K4(切換)鍵按下
    {
    display();               //調用顯示,用于延時消抖
    if(k4!=1)            //如果確定按下
    {  
       TR0=0;            //關定時器0  
      set=!set;          //取反set標志位,以切換調節方向
      TR1=0;            //關定時器1
      dx_nb=set;
      do
      {
        display();          //調用顯示,用于延時
      }        
      while(k4!=1);        //等待按鍵釋放
    }
  }  


  if(k5!=1)              //當K5(禁止)鍵按下時
  {
       display();               //調用顯示,用于延時消抖
       if(k5!=1)            //如果確定按下
       {   
        TR0=0;            //關定時器
      P2=0x00;          //滅顯示
      Red_dx=1;
      Red_nb=1;          //全部置紅燈
      TR1=0;
      sec_dx=00;          //四個方向的時間都為00
      sec_nb=00;
      do
      {
        display();         //調用顯示,用于延時
      }  
      while(k5!=1);      //等待按鍵釋放  
       }
  }
  if(k6!=1)              //當K6(夜間模式)按下 
  {
       display();               //調用顯示,用于延時消抖 
       if(k6!=1)            //如果確定按下
       {   
        TR0=0;            //關定時器
      P2=0x00;
      TR1=1;
      sec_dx=00;          //四個方向的時間都為00
      sec_nb=00;
      do
      {
        display();         //調用顯示,用于延時
      }  
      while(k6!=1);      //等待按鍵釋放  
       }
  }
}

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6006

    文章

    44019

    瀏覽量

    622045
  • STC89C52
    +關注

    關注

    40

    文章

    327

    瀏覽量

    81390
  • 數碼管
    +關注

    關注

    31

    文章

    1831

    瀏覽量

    90041
  • 智能交通燈
    +關注

    關注

    0

    文章

    15

    瀏覽量

    9541

原文標題:【畢業設計004】-基于STC89C52的智能交通燈(程序、原理圖、視頻講解、操作說明、參考lunwen)

文章出處:【微信號:精通單片機與嵌入式,微信公眾號:精通單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    stc89c52stc89c51

    stc89c52stc89c51有啥區別呀,小白剛剛學單片機
    發表于 11-28 23:22

    STC89C52單片機書籍分享

    STC89C52單片機書籍
    發表于 01-24 16:14

    STC89C52單片機

    ????STC89C52單片機,單片機是典型的嵌入式微控制器(Microcontroller Unit),由運算器,控制器,存儲器,輸入輸出設備等構成,相當于一個微型的計算機
    發表于 07-14 06:07

    基于STC89C52單片機的門禁系統設計

    本課題設計的門禁系統主要采用STC89C52 單片機作為控制核心,外圍加藍牙模塊電路、電控鎖控制電路等。門禁系統主要組成:由
    發表于 09-17 08:31

    如何去實現一種基于STC89C52單片機點亮LED的設計

    如何去實現一種基于STC89C52單片機點亮LED的設計?有哪些操作步驟?
    發表于 09-23 06:28

    怎樣去設計基于STC89C52單片機的霓虹

    基于STC89C52單片機的霓虹1、設計要求使用PWM驅動8個LED 人眼不能觀察到燈光全滅 燈光要有動畫效果2、設計概述 本實驗所用芯片為ST
    發表于 12-02 07:03

    基于單片機STC89C52的搖搖棒

    基于單片機STC89C52的搖搖棒設計,有電路圖和源程序
    發表于 11-23 14:38 ?28次下載

    基于STC89C52單片機交通燈控制系統設計

    基于STC89C52單片機交通燈控制系統設計 論文類
    發表于 12-14 15:44 ?167次下載

    STC89C52單片機燒寫軟件

    STC89C52單片機燒寫軟件 可以直接燒寫程序,有免安裝版的
    發表于 12-31 16:09 ?8次下載

    單片機STC89C52程序

    單片機STC89C52源程序。
    發表于 01-11 18:16 ?107次下載

    基于STC89C52單片機智能交通燈控系統設計

    基于STC89C52單片機智能交通燈控系統設計
    發表于 02-22 11:37 ?105次下載

    基于STC89C52單片機智能循跡小車設計

    基于STC89C52單片機智能循跡小車設計,做畢業設計的人很有用。
    發表于 05-09 10:59 ?87次下載

    STC89C52單片機介紹

    STC89C52單片機介紹。
    發表于 05-20 13:55 ?257次下載

    基于STC89C52單片機智能小車設計

    基于STC89C52單片機智能小車設計方法介紹。
    發表于 05-28 10:57 ?102次下載

    基于單片機STC89C52控制的智能小車簡介

    基于單片機STC89C52控制的智能小車簡介(單片機原理圖)-該文檔為基于單片機STC89C52
    發表于 07-22 14:21 ?62次下載
    基于<b class='flag-5'>單片機</b><b class='flag-5'>STC89C52</b>控制的<b class='flag-5'>智能</b>小車簡介
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>