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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AT89C51單片機的交通燈控制系統(tǒng)設(shè)計與仿真

          基于AT89C51單片機的交通燈控制系統(tǒng)設(shè)計與仿真

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

          2.1 最小應(yīng)用系統(tǒng)
          系統(tǒng)中,復(fù)位電路、時鐘電路與51組成最小應(yīng)用系統(tǒng),使可以正常工作。其中復(fù)位電路采用按鍵復(fù)位,如圖2所示。

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

          a.JPG


          2.2 數(shù)碼時間顯示電路
          七段LED數(shù)碼管是由八個發(fā)光二極管構(gòu)成,通過給其引腳不同的高低電平,從而顯出0~9的數(shù)字和小數(shù)點,本文通過四個一位數(shù)碼管并聯(lián)通過P3口當(dāng)中的P3.0與P3.1與STATIC DISPLAY模塊來控制數(shù)碼管時間的顯示,如圖2所示。
          2.3 信號燈電路
          本電路的,應(yīng)用P2口中的P2.1~P2.6通過7405芯片來控制12個發(fā)光二極管模擬信號燈的工作情況,其中P2.1,P2.2,P2.3分別通過7405來控制A道路的綠燈、黃燈和紅燈,用P2.4,P2.5,P2.6分別通過7405來控制B道路的綠燈、黃燈和紅燈。采用共陽極的連接方式,所以當(dāng)P2.1~P2.6中相應(yīng)輸出高電平經(jīng)過7405取反變成低電平時對應(yīng)的發(fā)光二極管變亮。
          根據(jù)上述對系統(tǒng)各部分的電路,本文設(shè)計的完整系統(tǒng)電路圖如圖2所示。
          2.4 控制開關(guān)
          當(dāng)需要根據(jù)實時堵塞情況實行人為控制時或遇到緊急情況時,開關(guān)能夠起到控制的作用,并能使各路交通回到初始狀態(tài)。

          3 軟件設(shè)計
          主程序中完成對交通燈系統(tǒng)的初始化工作,使得主干道與支道能正常轉(zhuǎn)換工作,在此系統(tǒng)中,由于要用七段LED數(shù)碼管顯示交通倒計時間,在主程序當(dāng)中,分別調(diào)用了三個子程序,一個是延時子程序,延時500ms,在用一個寄存器來計循環(huán)次數(shù),循環(huán)2次,達(dá)到定時1 s,分別為綠燈閃爍調(diào)用時間,數(shù)碼管顯示調(diào)用時間,一個是顯示子程序,用來顯示主干道與支道的時間,另一個是中斷子程序。主程序流程圖如圖3所示。
          本系統(tǒng)采用兩種中斷來實現(xiàn)交通燈控制器的功能。
          設(shè)置外部中斷INT0,該中斷用來處理緊急情況,當(dāng)交通燈控制器出現(xiàn)故障或交通出現(xiàn)嚴(yán)重事故需要封鎖道路時,調(diào)用該中斷,使主道和支道的交通燈均為紅燈20 s。該中斷具有最高的優(yōu)先級。
          設(shè)置外部中斷INT1,該中斷用來處理根據(jù)主道與支道車輛實時交通情況的多少實行延長時間通行,通行延時30s。



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();