單片機課程設計基于多任務實時操作系統RTX51的交通燈系統_第1頁
單片機課程設計基于多任務實時操作系統RTX51的交通燈系統_第2頁
單片機課程設計基于多任務實時操作系統RTX51的交通燈系統_第3頁
單片機課程設計基于多任務實時操作系統RTX51的交通燈系統_第4頁
單片機課程設計基于多任務實時操作系統RTX51的交通燈系統_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 欽 州學院單片機課程設計報告基于多任務實時操作系統RTX51的交通燈系統院 系 物理與電子工程學院 專 業 電子信息工程 學 生 班 級 2010級2班 指導教師單位 物理與材料科學學院 指導教師姓名 包敬海 指導教師職稱 副教授 2013年10月基于多任務實時操作系統RTX51的交通燈系統電子信息工程專業2010級 呂凱強 凌嘉麗指導教師 包敬海摘要本系統由單片機系統、鍵盤、交通燈演示系統組成。系統包括人行道、左轉、右轉、以及基本的交通燈的功能。系統除基本交通燈功能外,還具有緊急情況處理、分時段調整信號燈的點亮時間以及根據具體情況手動控制等功能。紅綠燈控制是智能交通系統的一個重要部分,本文

2、給出了一個用單片機控制的簡易交通紅綠燈自動控制系統。該系統適用于十字路口,并對放行和禁行時間進行倒計時顯示(秒)。 在車輛通行繁忙的十字交叉路口設置的交通燈控制系統,其特點是:道路較窄而車流量較大,主干道,支干道的車輛通行時間不等,同時設有道路應急控制。具體的情況是:在正常的情況下,東西支干道通行時間為20秒,南北主干道通行時間為30秒,每個方向在綠燈轉為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道。并且能夠在人工監控狀態下,如果一道有車而另一道無車,交通燈控制系統能立即讓有車道放行。而且有緊急車輛要求通過時,系統要能禁止普通車輛通行。 關鍵詞;交通燈控制系統;實時操作系統;RTX51設計目的

3、 :(1)進一步掌握單片機課程所學的基礎理論知識。(2)熟悉單片機最小系統,并掌握其工作原理,進一步學會使用其進行電路設計。(3)學會利用實時操作系統,RTX51設計交通燈控制系統。設計技術指標與要求要求具備紅、黃、綠燈的基本功能,具備LED數字顯示剩余時間的功能,具備設置時間長度的功能。可以自行添加其他功能。目錄 前言11 基于多任務實時操作系統RTX51的交通燈系統 11.1 設計思想 1 設計方案1 設計所需的元件21.2 設計原理 31.2.1 基于RTX51的軟件設計部分51.2.2 程序設計部分72 電路仿真 93 電路連接測試 103.1 安裝焊接 103.2 測試 113.2.

4、1 使用儀器 113.2.2 測試結果 124 設計體會 12參考文獻 13前言隨著科學技術的快速發展,人們對各類傳統產品都有了越來越高的要求。其中,傳統的電子系統,例如常見的單片機控制系統,主要采用單機工作方式或者簡單的C/S模式。這種工作方式在網絡化快速普及的新形勢下,其網絡性能不強、靈活性不高、難以滿足遠程控制和管理的需求等諸多弱點越來越明顯。要使得傳統單片機控制系統實現網絡化,將上位機的Web服務器與下位機單片機融合是一個比較理想的解決方法。目前,網絡技術已經廣泛應用于各類企業和工業系統,越來越多的信息化產品需要能夠接入互聯網并且能夠通過Web頁面進行遠程訪問和控制1。Web 具有操作

5、簡便、交互界面良好等優點, 而單片機系統具有底層控制簡單、強大的特點, 使得Web 和單片機系統的結合成為今后工業生產監測與處理的新趨勢。單片機技術與網絡技術的融合,為現場檢測與控制設備的智能化、微型化奠定了良好的技術基礎,使數據采集系統迅速得到廣泛應用,它滲透到地質、醫療、農業生產、通訊等各個領域,為獲取數據提供了良好的基礎。根據該思路,設計了一個基于Web的溫度測控系統。該系統分為上位機(計算機)和下位機(單片機)兩部分。其中,下位機以STC89C52單片機為主控制器,將從溫度傳感器DS18B20采集到的數據發送給上位機。上位機利用VC+編寫的管理程序接收溫度數據,并插入到MySQL。由于

6、上位機通過Apache構建了一個基于PHP的Web服務器,使得用戶可以在任何一個能連接到該網絡的地方,都能便捷的訪問該服務器并獲取當前的數據。同時,用戶還能通過控制頁面對下位機進行控制。1基于多任務實時操作系統RTX51的交通燈系統1.1設計思想設計方案 交通信號燈控制系統主要實現以下三個功能:    (1)信號燈指示,即完成十字路口紅、黃、綠交通信號燈的控制。    (2)時間顯示,各個信號燈持續的時間顯示。    (3)緊急情況響應,當系統出現故障或者有緊急情況是能夠及時響應。 &

7、#160;  根據以上功能要求,完整的交通燈控制系統硬件電路如圖l所示,主要由三部分模塊組成:單片機最小系統模塊、紅綠色顯示模塊、倒計時顯示模塊、緊急中斷模塊。 (4)單片機最小系統:包括時鐘電路和開關復位電路。單片機選用具有成本低廉且具有串口ISP下載功能的STC89C52單片機,晶振選用12 MHz。    (5)信號燈指示電路:東西南北四個方向分別有紅、綠、黃三個狀態指示的燈,其中南北方向的紅綠黃發光二極管分別連接到P1OP12,東西方向的紅綠黃發光二極管分別連接到P13P15。    (6)倒計時顯示:每個交通燈狀態

8、倒計時時間由兩位共陽數碼管顯示,八位段碼分別連接到P00P27,兩位位選通過反向器分別連接到P34、P35。    (7)緊急中斷:開關K1為緊急中斷開關,當有特殊情況時按下K1,K1連接到單片機P32外部中斷O輸入端。1.1.2 設計所需元件 1.2 設計原理 一個高效的單片機智能控制系統,不僅要求系統能夠同時執行多個任務,對每個任務作出實時響應,而且要求系統能夠及時響應隨機發生的外部事件,并對其作出快速處理。對于這樣的系統應用,采用實時操作系統RTOS(Real-time-Operating System)作為系統軟件設計平臺是一個良好的選擇,它可以靈活地安排

9、系統資源,簡化復雜的軟件設計,加快軟件的開發效率,大大縮短了項目的開發周期。道路交通燈是最常見的一種多任務控制系統,本文以此為倒,詳細闡述了51嵌入式實時操作系統RTX51開發軟件的方法和步驟。設計原理圖基于RTX51的軟件設計    2 RTX51介紹RTX51有2個模式:RTX51完全模式和最小模式。RTX51最小模式版是RTX51完全版的一個子集,可以很容易地運行在8051系統上,而不需要外部RAM(XDATA)。RTX51完全模式有4個任務優先級,可以和中斷函數并行處理,各個任務之間通過使用“郵箱”系統來進行信號和消息的傳遞,可以從內存池中申請和

10、釋放內存;同時,可以強制一個任務停止執行,等待一個中斷,或者是其它中斷傳來的信號量或者消息。RTX51對系統硬件的要求如表1所列。   描述                       RTX51完全模式    RTX51最小模式任務數最大256,19個激活任務,其中16個標準任務,3個快速任務16

11、RAM4046字節RAM 20200字節IDATA 最少450字節XDATA7字節DATA 3*任務數IDATA 不需要XDATAROM6KB8KB900字節定時器定時器0或1定時器0表12.1 RTX51任務    RTX51區分2類任務:快速任務和標準任務。快速任務有很快的響應速度,每個快速任務使用8051一個單獨的寄存器組,并且有自己的堆棧區域。RTX51支持最大同時有3個快速任務。標準任務需要多一點的時間來進行任務切換,因此使用的內部RAM相對快速任務要少,所有的標準任務共用1個寄存器組和堆棧。當任務切換的時候,當前

12、任務的寄存器狀態和堆棧內容轉移到外部存儲器中。RTX51支持最大16個標準任務。    RTX51任務狀態:    (1)運行(RUNNING)-當前正在運行的任務處于RUNNING狀態,同一時間只有1個任務可以運行。    (2)就緒(READY)-等待運行的任務處于READY狀態,在當前運行的任務退出運行狀態后,就緒隊列中優先級最高的任務進入到運行狀態。    (3)阻塞(BLOCKED)-等待一個事件的任務處于BLOCKED狀態,如果事件發生且優先級比正在運行的任務高,

13、此任務進入運行狀態;如果優先級比正在運行的任務低,此任務進入READY狀態。    (4)刪除(DELETED)-沒有開始的任務處于刪除狀態。    (5)任務切換-RTX51包含一個事件驅動的任務切換機制,它能夠按照任務的優先級進行切換,也就是搶占式多任務系統;另外還有一個可選的時間片輪轉切換任務模式,在時間片輪轉模式下,同級別的任務是按照時間片分別占用CPU 的。RTX51任務有4個優先級:0、1、2 可以分配給標準任務,優先級3是為快速任務保留的。每個任務都可以等待事件的發生,而并不增加系統的負擔;任務可以等待消息、信

14、號、 中斷、超時事件或者它們的組合。任務切換是按照一定規則進行的,包括:進入到“就緒”狀態的優先級高的任務先執行;如果“就緒” 狀態的幾個任務是同一個優先級,那么最先進入“就緒”狀態的先執行。       3 應用實例    以下給出RTX51在單片機控制的GPS接收板上的應用。    (1)系統硬件組成    單片機W77E58、快速8051內核、32KB ROM、1KB的XDATA RAM,符

15、合使用RTX51的硬件要求;鍵盤、GPS定位模塊、液晶顯示模塊。    (2)系統軟件構成    軟件運行環境KEIL uVision2 6.20集成開發環境加上RTX51完全版。任務KEY-BOARD,監測鍵盤的情況,如果有按鍵按下,把按鍵的編碼發送到郵箱1,外部中斷1等待接收GPS數據,并把數據存儲起來,向DISPLAY任務發出信號,進行處理。任務SEND_OUT,把接收到的數據 進行處理,并發送出去。任務VOICE進行語音輸出。     下面給出簡寫的源程序: 

16、0;  #include<RTX51.h>                                /包含RTX51文件     #define DISPLAY 0     #def

17、ine SEND_OUT 1     #define KEY_BOARD 2     #define VOICE 3     void main(void)       init system();                   &#

18、160;           /系統初始化        os start system(DISPLAY);                    /啟動RTX51      &#

19、160;      viodtask0(void)_task DISPLAY       os set slice(1000);                          /設置時間片大小     &#

20、160;  os enable isr(0);                            /允許外部中斷0        os creat task(SEND_OUT);     

21、0;               /啟動SEND_OUT任務        os creat task(KEY_BOARD);                    /啟動KEY_BOARD任務

22、60;       os creat task(VOICE);                        /啟動VOICE任務        for(;)       

23、; switch(os wait(K_SIG+K_MBX+1255,& keyboard) /等待接收信號和鍵盤消息,分類處理       case EVENT_SIGNAL;                           /當接收到信號的時候  

24、;         display1(); break;        case EVENT_MBOX:                             /當從郵

25、箱接收到數據的時候        switch(keyboard)          case '1':           .           os send signal(SEND_OUT);   

26、;              /向任務SEND_OUT發送信號           .           os send signal(VOICE);          

27、;         /向任務VOICE發送信號           .;           .;                   &#

28、160;  void task1(void)_task SEND_OUT            /處理發送數據任務          while(1)               os wait(K_SIG,255,0)   &#

29、160;             /等待信號                operation send();                void task3(void)_task VO

30、ICE       while(1)           os wait signal(K_SIG,255,0);              /等待語音處理信號           voice(); 

31、               void interrupt1(void)interrupt 2 using 1          read gps data (p gps_ data);               /接收數據  

32、         isr send signal(DISPLAY);                 /向DISPLAY任務發信號                   # pragma RE

33、GISTERBANK (2)                  /使用寄存器組2        void task2(void)_task_KEYBOARD_priority_3    /設置為快速任務          os attach inte

34、rrupt(0);                   /綁定任務和外部中斷0           while(1)           os_ wait(K_INT,255,0);   &

35、#160;                 /等待中斷的發生           KEY=iic read_ keyboard();           os send message(1,KEY,0);   

36、             /將鍵盤編碼發送到郵箱1        近年來,利用嵌入式實時操作系統來開發嵌入式系統的軟件已是大勢所趨。這是因為傳統的這類設計中,大多采用了中斷結合單任務的順序機制進行,這種設計方法雖然比較直觀,但是也帶來了諸如穩定性差、不便于調試等問題。尤其是當系統比較復雜、實時性要求比較高時,這種單任務機制的缺陷更為明顯。利用嵌入式實時操作系統,程序開發者可以將復雜的系統分成多個相對獨立的任

37、務,從而分而治之,降低了系統的復雜性;通過對不同的任務賦以不同的優先級,從而能夠保證系統的實時性;同時,由于軟件系統有多個任務組成,所以其模塊化程度好。提高了系統的可維護性。因此,這里利用實時操作系統RTX51來進行軟件系統的設計。TX51實時操作系統介紹    RTX51是美國Keil公司開發的一種運行于8051單片機環境中的實時多任務操作系統(RTOS),其常用于處理復雜的多任務控制系統。8051單片機支持典型的RTX-51Tiny和RTX-51 Full實時多任務操作系統。在Keil Vison3集成開發環境中提供了RTX-51實時操作系統的編譯和仿真調試支

38、持。    在多任務嵌入式系統中,合理的任務調度必不可少。單純通過提高處理器速度無法達到目的,這樣就要求嵌入式系統的軟件必須具有多任務調度能力。在微控制器應用系統中通常可以分解為多個相互獨立的功能模塊,在RTX51嵌入式實時操作系統中將這些模塊劃分為任務,引入多任務機制管理。依據系統功能優先級分配不同的任務,多個任務分別在各自的時間片內訪問CPU,從而產生了微觀上輪流運行、宏觀上并行運行的多任務效果,保證了對外界的信息足夠快的速度進行響應處理,又能并行運行多個任務,因此能很好完成對多個信息的實時測量、處理并進行響應的多個實時控制。22 任務分配 

39、0;  在本系統中,依據交通燈控制系統功能的分析,將整個軟件系統分解為以下三個任務,系統初始化、紅綠黃燈顯示、倒計時顯示。具體情況如下:    任務0:用于系統初始化,開外部中斷0;啟動任務1和任務2。    任務1:紅綠黃信號指示燈控制,實現紅綠黃燈的五種狀態控制。狀態0:東西方向紅燈亮,同時南北方向綠燈亮,亮的時間為30 S;狀態1:東西方向紅燈亮,南北方向黃燈閃爍,時間為3 S;狀態2:東西方向綠燈亮,同時南北方向紅燈亮,時間為30 S;狀態3:東西方向黃燈閃爍,南北方向紅燈亮,時間為3 S;狀態4:當緊急開關按下時,

40、響應緊急狀況或者故障狀態,東西南北四個方向紅燈均亮,時間為10S。任務2:各個狀態指示燈倒計時顯示。兩個數碼管采用動態掃描顯示,實時顯示當前交通指示燈狀態的倒計時時間。時間顯示部分7.定時/計數器8051有兩個16位的可編程定時/計數器,以實現定時或計數產生中斷用于控制程序轉向。2.2系統方框圖電 源交通燈AT89S52交通燈時間顯示部分時鐘電路復 位電 路2.3工作原理由軟件設置交通燈的初始時間,南北方向通行30秒,東西方向通行20秒,數碼管采用動態顯示,P0口送字形碼,P2口送字位選通信號,通過單片機的P1口控制各種信號燈的燃亮與熄滅。采用中斷方式實現按鍵的功能。東西方向 EW G Y R

41、 緊急轉換 車輛檢測 系統控制 電路南北方向 NS G Y R 程序設計部分依據任務分配,將三個任務分別規劃為_task_0,_task_1,_task_2,由于完整的程序較大,這里不便給出,只給出部分代碼,如下所示。電路仿真2.交通燈南北方向綠燈向紅燈轉變,黃燈閃爍時仿真圖(見圖-8)。圖-84.2仿真結果分析仿真實驗實現南北方向車道和東西方向車道兩條交叉道路的車輛交替運行,南北方向(主干道)每次通行時間設為30秒、東西方向通行時間設為20秒,時間可以在程序中修改。同時能夠實現紅燈、黃燈、綠燈狀態轉換,紅綠燈轉換時間為5秒,轉黃期間黃燈亮。可以準確顯示每個狀態所剩余的時間,按下禁行普通車輛鍵,東西南北方向都亮紅燈;按下南北放行鍵,南北綠燈亮,東西紅燈亮;按下東西放行鍵,東西綠燈亮,南北紅燈亮;任何時候按下返回鍵,此系統都將回到初始狀態,當

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論