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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于RTX51實時操作系統(tǒng)的交通燈控制系統(tǒng)的設(shè)計

          基于RTX51實時操作系統(tǒng)的交通燈控制系統(tǒng)的設(shè)計

          作者: 時間:2010-12-22 來源:網(wǎng)絡(luò) 收藏

          2.1 RTX51實時操作系統(tǒng)介紹
          RTX51是美國Keil公司開發(fā)的一種運行于8051環(huán)境中的實時多任務(wù)操作系統(tǒng)(RTOS),其常用于處理復(fù)雜的多任務(wù)控制系統(tǒng)。8051支持典型的RTX-51Tiny和RTX-51 Full實時多任務(wù)操作系統(tǒng)。在Keil μVison3集成開發(fā)環(huán)境中提供了RTX-51實時操作系統(tǒng)的編譯和仿真調(diào)試支持。
          在多任務(wù)嵌入式系統(tǒng)中,合理的任務(wù)調(diào)度必不可少。單純通過提高處理器速度無法達(dá)到目的,這樣就要求嵌入式系統(tǒng)的軟件必須具有多任務(wù)調(diào)度能力。在微控制器應(yīng)用系統(tǒng)中通常可以分解為多個相互獨立的功能模塊,在RTX51嵌入式實時操作系統(tǒng)中將這些模塊劃分為任務(wù),引入多任務(wù)機制管理。依據(jù)系統(tǒng)功能優(yōu)先級分配不同的任務(wù),多個任務(wù)分別在各自的時間片內(nèi)訪問CPU,從而產(chǎn)生了微觀上輪流運行、宏觀上并行運行的多任務(wù)效果,保證了對外界的信息足夠快的速度進行響應(yīng)處理,又能并行運行多個任務(wù),因此能很好完成對多個信息的實時測量、處理并進行響應(yīng)的多個實時控制。
          2.2 任務(wù)分配
          在本系統(tǒng)中,依據(jù)交通燈控制系統(tǒng)功能的分析,將整個軟件系統(tǒng)分解為以下三個任務(wù),系統(tǒng)初始化、紅綠黃燈顯示、倒計時顯示。具體情況如下:
          任務(wù)0:用于系統(tǒng)初始化,開外部中斷0;啟動任務(wù)1和任務(wù)2。
          任務(wù)1:紅綠黃信號指示燈控制,實現(xiàn)紅綠黃燈的五種狀態(tài)控制。狀態(tài)0:東西方向紅燈亮,同時南北方向綠燈亮,亮的時間為30 S;狀態(tài)1:東西方向紅燈亮,南北方向黃燈閃爍,時間為3 S;狀態(tài)2:東西方向綠燈亮,同時南北方向紅燈亮,時間為30 S;狀態(tài)3:東西方向黃燈閃爍,南北方向紅燈亮,時間為3 S;狀態(tài)4:當(dāng)緊急開關(guān)按下時,響應(yīng)緊急狀況或者故障狀態(tài),東西南北四個方向紅燈均亮,時間為10S。
          任務(wù)2:各個狀態(tài)指示燈倒計時顯示。兩個數(shù)碼管采用動態(tài)掃描顯示,實時顯示當(dāng)前交通指示燈狀態(tài)的倒計時時間。
          2.3 程序設(shè)計
          依據(jù)任務(wù)分配,將三個任務(wù)分別規(guī)劃為_task_0,_task_1,_task_2,由于完整的程序較大,這里不便給出,只給出部分代碼,如下所示。

          b.JPG


          關(guān)鍵詞: 單片機 智能控制

          評論


          相關(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); })();