<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AT89S52的交通燈綜合實驗設計

          基于AT89S52的交通燈綜合實驗設計

          作者: 時間:2013-08-06 來源:網(wǎng)絡 收藏

          3 軟件
          3.1 工作模式說明
          系統(tǒng)分3種工作模式:正常模式、特殊事件模式和時間設置模式,并且通過圖1中K1、K2按鈕可實現(xiàn)模式選擇。燈的主要狀態(tài)示意圖,如圖2所示,南北方向燈亮滅順序及時間長短如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/170444.htm

          b.JPG


          (1)正常模式。
          狀態(tài)1 如圖2程序開始運行先南北段通行60 s,其中車輛和人行道的直行通行40 s,數(shù)碼管顯示時間40 s,此時南北段直行通行綠燈亮(SG)、左轉(zhuǎn)紅燈亮(LR),東西段直行左轉(zhuǎn)紅燈都亮60 s,同時南北段和東西段方向的數(shù)碼管分別從40 s和60 s開始倒計時。
          狀態(tài)2 南北段直行倒計時至最后5 s時,直行綠燈同時黃燈閃爍(SG SY);左轉(zhuǎn)紅燈同時黃燈閃爍(LR LY),如圖3所示。
          狀態(tài)3 如圖2所示,南北段直行倒計時為0時,數(shù)碼管顯示時間從20 s開始倒計時,直行通行紅燈亮(SR)、左轉(zhuǎn)綠燈亮(LC),表示禁止車輛和人的直行,允許左轉(zhuǎn),左轉(zhuǎn)通行20 s,東西段紅燈繼續(xù)倒計時。
          狀態(tài)4 南北段左轉(zhuǎn)倒計時至最后5 s時,直行紅燈繼續(xù)亮(SR),左轉(zhuǎn)綠燈同時黃燈閃爍(LG LY),如圖3所示。
          狀態(tài)5 南北段左轉(zhuǎn)倒計時為0時,數(shù)碼管顯示時間從60 s開始倒計時,直行紅燈亮(SR)、左轉(zhuǎn)紅燈亮(LR),表示禁止南北段的直行和左轉(zhuǎn)。東西段狀態(tài)與南北段交替,開始允許直行通行40 s后左轉(zhuǎn)通行20 s,再循環(huán)至狀態(tài)1。
          (2)特殊事件模式。特殊事件指臨時需緊急通行的事件,比如急救車、消防車、警車等。此時,應使東西南北4個方向全亮紅燈,并延時10 s,以便特殊事件得到解決。
          (3)時間設置模式。如果某路段的時間初始值與該路段的車輛通行狀況不符,可按下中斷鍵進入時間設置模式,對該路段各個路口的直行、左轉(zhuǎn)時間長度進行設置。
          3.2 程序流程圖
          軟件主要用C語言編程,總程序分為3部分:主程序;顯示控制、狀態(tài)處理等子程序;定時、特殊事件和時間設置等中斷處理程序。
          (1)主程序流程。系統(tǒng)以正常狀態(tài)下信號燈各狀態(tài)的循環(huán)顯示為主程序,如圖4所示。在主程序中,調(diào)用數(shù)碼管倒計時子程序和中斷延時以實現(xiàn)各種交通狀態(tài)。

          c.JPG

          手機電池相關文章:手機電池修復




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();