<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Small RTOS51實(shí)現基于8位單片機的溫控器設計

Small RTOS51實(shí)現基于8位單片機的溫控器設計

作者: 時(shí)間:2009-11-12 來(lái)源:網(wǎng)絡(luò ) 收藏
目前,8位在測控領(lǐng)域和智能化電子產(chǎn)品應用中仍占有重要地位.而應用嵌入式實(shí)時(shí)操作系統(ERTOS)會(huì )對8位的軟件開(kāi)發(fā)帶來(lái)極大方便。在此簡(jiǎn)要介紹嵌入式實(shí)時(shí)操作系統及其在程序中的優(yōu)越性,重點(diǎn)介紹了適合于小RAM的嵌入式實(shí)時(shí)操作系統 ,以及8位單片機的硬件和軟件的方法和過(guò)程。

1 嵌入式實(shí)時(shí)操作系統 簡(jiǎn)介
嵌入式系統已成為當今的熱門(mén)話(huà)題之一,從消費類(lèi)電子產(chǎn)品到各種工業(yè)設備,嵌入式系統已滲透到日常生活的各個(gè)角落。對于嵌人式系統,一個(gè)重要的特征是實(shí)時(shí)性,即在確定的時(shí)間內完成規定的功能,并能對外部異步事件做出正確響應。確保系統的實(shí)時(shí)性,需要軟硬件配合來(lái)完成,首先必須保證硬件處理速度滿(mǎn)足實(shí)時(shí)要求,而對于軟件,就是采用與之相適應的嵌入式實(shí)時(shí)操作系統(Embedded Real_TimeOperating System,ERTOS)。
采用嵌入式實(shí)時(shí)操作系統(ERTOS),能夠保證系統中任務(wù)切換的實(shí)時(shí)性,事件響應時(shí)間的確定性及系統的高可靠性,同時(shí),ERTOS將用戶(hù)應用程序看成是其上運行的多個(gè)任務(wù),這就為程序的編寫(xiě)、調試和系統功能的擴展提供了極大方便,并且由于ERTOS的使用,客觀(guān)上使得應用軟件與下層硬件環(huán)境無(wú)關(guān),便于嵌入式軟件的移植,從而可以大大降低系統開(kāi)發(fā)成本和開(kāi)發(fā)周期。目前,已推出的嵌入式實(shí)時(shí)操作系統有很多種,比較常用的有VxWorks,WinCE,VRTX,pSOS,Palm OS,嵌入式Linux,Delta OS等。對于8051系列單片機,由于具有很少的RAM和ROM,在嵌入式實(shí)時(shí)操作系統中,比較適合于這種單片機操作系統是 ,它使用Keil C51所帶得RTX Tiny的堆棧管理機制,并和μC/OS-Ⅱ一樣是搶占式的。目前,Small RTOS的最新版本為1.20.3,可以支持任務(wù)的動(dòng)態(tài)建立與刪除,支持C51的重入函數,支持動(dòng)態(tài)內存分配等。

本文引用地址:http://dyxdggzs.com/article/173565.htm


2 嵌入式
2.1 嵌入式的結構及原理
由Small RTOS518位單片機的的系統結構如圖1所示。單片機作為控制核心,負責讀取溫度傳感器的溫度,并輸出至LED顯示器顯示,按鍵用來(lái)設置溫控器的溫度,當溫度超限時(shí)由輸出控制部分輸出控制信號,驅動(dòng)繼電器或者報警裝置,電源部分為整個(gè)系統供電。
2.2 嵌入式溫控器硬件電路
由于溫控器的外圍電路比較簡(jiǎn)單,主控器所需的輸入/輸出口不多,故采用Atmel公司的AT89C2051,溫度傳感器采用美國DALLAS半導體公司的DS18B20,其數據信號線(xiàn)接微控制器P3.7,LED顯示器采用4個(gè)共陰極數碼管構成,由4個(gè)串入并出的移位寄存器74LS164驅動(dòng),采用靜態(tài)顯示方式,P1.1作為L(cháng)ED顯示器的串行數據輸入,P1.0作為L(cháng)ED顯示器的串行時(shí)鐘輸入,輸出控制信號由P1.7輸出,控制PNP型晶體管,另外設置4個(gè)按鍵分別連接微控制器的P3.2~P3.5,其硬件電路如圖2所示。

3 系統軟件
3.1 任務(wù)的分解劃分
任務(wù)的劃分包括確定哪些變換屬于哪個(gè)任務(wù),以及確定各任務(wù)的優(yōu)先級。具體劃分原則可參考文獻[1]。根據任務(wù)劃分的原則以及嵌入式溫控器的具體功能,本系統將任務(wù)分解劃分為按鍵顯示處理,溫度測量,和輸出執行3個(gè)任務(wù)。
3.2 系統軟件的設計
系統軟件設計主要包括主程序設計和各任務(wù)程序設計。
該設計主程序流程圖如圖3所示。主程序進(jìn)行初始化以后,順序建立3個(gè)任務(wù),進(jìn)入CPU休眠狀態(tài),各個(gè)任務(wù)運行后,首先進(jìn)入任務(wù)休眠狀態(tài),等待相應任務(wù)的喚醒,任務(wù)被喚醒以后,進(jìn)行相應處理,再次進(jìn)入休眠狀態(tài)。各個(gè)任務(wù)均采用無(wú)限循環(huán)結構,其形式如下:


任務(wù)喚醒用函數OSTaskResume(TASK_ID)來(lái)完成。在KeilμVision 2下建立工程,編輯相應的頭文件config.h,并對OS_CFG.h和OS_CPU.h的有關(guān)內容進(jìn)行相應設置,進(jìn)行編譯直到成功為止。

4 結 語(yǔ)
根據嵌入式溫控器的硬件電路,利用嵌入式實(shí)時(shí)操作系統Small RTOS51對其進(jìn)行程序設計,KeilμVision 2建立工程并進(jìn)行編譯,下載代碼后溫控器工作正常。對于現在仍然使用廣泛的8位單片機,采用Small RTOS51進(jìn)行程序設計,既簡(jiǎn)單又方便。利用中斷、信號量、消息隊列,可以更多功能和作用;另外實(shí)時(shí)操作系統有多種,但其原理類(lèi)似,懂得了其中之一,可以舉一反三,理解和應用其他嵌入式實(shí)時(shí)操作系統。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>