999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

51單片機多任務編程設計及應用

2016-05-30 09:32:43李鵬
科技風 2016年16期
關鍵詞:單片機方法

李鵬

摘 要:在51單片機上實現多任務處理主要借鑒現代操作系統的分時處理方法,有幾種不同的實現策略。本文將基于此背景,討論51單片機多任務編程的設計和應用,詳細闡述其實現策略。

關鍵詞:51單片機;多任務編程;操作系統

單片機技術經歷幾十年的發展逐步走向成熟,被廣泛應用于各行業。51單片機指兼容Intel8031系統的單片機系統,在智能控制領域有廣泛的引用[ 1 ]。

一、多任務執行原理

51單片機的多任務執行機制主要借鑒現代操作系統的分時處理方法。事實上,多任務執行并非多個任務同時運行,而是CPU在不同的任務之間不停的切換,每次執行一個任務的一小部分,之后迅速切換至下一個任務,并執行這個任務的一小部分,然后在切換至另一個任務,以此循環往復。

從宏觀上來看,就好像多個任務在同時執行。系統通過合理的調度,將CPU的運行時間合理分配給各個任務,每個任務輪流占用一小部分時間。這就是現代操作系統分時機制的原理[ 3 ], 也是51單片機多任務執行的基本方法。

二、實現策略

51單片機多任務執行機制針對不同的應用場景和不同的單片機型號,在具體實現上有所區別,但從根本上來說都是以現代操作系統分時理論為基礎來實現的。下面將詳細講解具體如何使用時間片分配機制來實現51單片機的多任務執行。

基于時間片分配機制來實現51單片機多任務執行主要涉及三項內容。一是待執行程序,以列表形式組織,二是運算資源,也就是CPU,三是調度器,用于統籌安排待執行程序的執行順序,合理給各待執行程序分配運算資源。具體的運行機制如下。

首先,在初始化階段,待執行任務被組織為列表,然后調度器根據具體情況為各個任務分配不同數量的時間片。

然后在調度器的組織下,各個任務依次占用CPU,占用時間為各自對應數量的時間片。

通常來說,根據具體情況不同,各任務占用的時間片數目有所區別,但總數量都不會很多,CPU只執行任務的一小部分,然后迅速切換至下一個任務。

當CPU遍歷整個任務列表把所有任務的指定時間片都執行完畢之后,系統通過調度器從新為列表內的任務分配新的時間片數量,然后開始新一輪的運行。

三、涉及的問題及解決方法

在采用分時機制來實現多任務運行時,涉及的問題主要包括。

(一)常規任務

通常來說,系統需要執行的任務分為兩類,一類是立刻開始執行的任務,這類任務我們稱為實時任務;另一類任務需要觸發條件,只有在滿足特定的條件時,這類任務才會被執行,這種任務我們稱為常規任務。

實時任務可以直接安排進入上文的所談到的待執行任務列表內,CPU依次執行各實時任務。而常規任務需要一定設置。具體方法是為每一個常規任務設置一個空過程,在CPU運行至常規任務時,進行一次判斷。假如不滿足常規任務的執行條件,則執行空過程,CPU跳轉至下一個任務;若滿足常規任務的執行條件,則屏蔽空過程,CPU執行常規任務。

(二)延時等待

在執行任務時,會涉及數據讀取,外部通訊等各種情況,就必然會有延時和等待的情況出現。假如不對延時等待進行調度,CPU有可能一直延時或等待,無法繼續運行。針對延時等待的處理方法如下。

設計一個專門的任務來代表延時和等待,這個任務具有特定的時間片數目。每當CPU遇到延時等待情況時,調度器將CPU自動切換至這個特定的任務,CPU在這個任務內執行(等待)固定的時間片數目,然后跳轉至下一個任務。

比如,我們假設這個特定的代表延時等待的任務為任務7,為其分配1個時間片,整個任務列表包含20個任務,任務6在執行的過程中需要等待外部設備的響應。

在這個假設內,當CPU運行至任務6后,在執行任務的過程中遭遇等待,此時CPU直接切換至任務7,并空運轉(等待)1個時間片,之后迅速切換至任務8,繼續運行。當CPU運行至任務6時,假如任務6還是需要等待,則又迅速切換至任務7,空運轉(等待)1個時間片,然后繼續執行其它任務。

通過將延時和等待設計為一個特定的任務,可以更方便的管理延時和等待問題。在具體的實現過程中,可以采用預先插入代表等待的空任務,也可以在遭遇延時和等待時,讓調度器動態生成代表等待的空任務并插入列表。空任務占用的時間片也可以設置為0,這樣可以最大化CPU的運行效率。

(三)中斷處理

在具體的應用中,主要涉及的中斷通常來說包含兩類,一類是外部中斷,即來自于外部設備的中斷,比如外部設備向CPU提出需求[6];另一類是內部任務的中斷,即一些待執行任務提出的CPU需求[7]。對于這兩種中斷,可以采用一種方法來統一處理。

在傳統的實現方法下,當任務運行過程遭遇中斷時,調度器會將整個CPU的控制權交給中斷程序,直到中斷程序退出。在這種機制下,一旦普通任務遭遇中斷,CPU的控制權就喪失,待執行任務列表內所有任務的執行狀況完全取決于中斷程序何時退出,這將大大影響多任務執行的效率。

為在遭遇中斷時依然保持較高的多任務執行效率,需要改良傳統中斷機制。具體的實現方法是在待執行任務列表內添加一個代表中斷的任務A,并為其分配特點數量的時間片。任務A是中斷程序的引用,每當遭遇中斷時,將CPU自動切換至任務A,運行對應數量的時間片,然后切換至列表內的下一個任務。 開始下一次執行至任務A時,又繼續執行一定數量時間片的中斷程序。

綜上所述,針對常規任務、延時等待、中斷處理等問題,通過在待執行任務列表內設置對應的任務,均可以很好的解決這些問題。通過以上的方法,可以很好的實現51單片機的多任務運行,提高51單片機的運行效率,擴展51單片機的使用場景。

參考文獻:

[1] 陳淑芳. 基于51單片機的教學實驗系統的設計與開發[D].中國海洋大學,2011.

[2] 趙月靜,陳繼榮,張永弟.單片機原理及應用課程創新實踐教學改革[J].實驗技術與管理,2013(01): 176-179.

猜你喜歡
單片機方法
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
學習方法
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产在线观看99| 色播五月婷婷| 夜夜操天天摸| 欧美午夜一区| 亚洲一区二区视频在线观看| 国产成人成人一区二区| 老司机精品99在线播放| 精品福利国产| 婷婷亚洲综合五月天在线| 69av在线| 青草精品视频| 国产精品毛片一区| 青草精品视频| 日日噜噜夜夜狠狠视频| 久久五月视频| 青青草a国产免费观看| 欧美福利在线| 日韩 欧美 国产 精品 综合| 国产高清毛片| 亚洲精品大秀视频| 亚洲中文字幕无码爆乳| 国产精品一区在线观看你懂的| 国产一在线| 国产在线麻豆波多野结衣| 亚洲午夜国产精品无卡| 91精品国产麻豆国产自产在线| 99视频在线观看免费| 青青青亚洲精品国产| 一级毛片在线播放免费观看| 97视频免费在线观看| 夜夜操国产| 久久午夜夜伦鲁鲁片无码免费| 东京热一区二区三区无码视频| 无码一区18禁| 亚洲美女一区二区三区| 亚洲国产91人成在线| 亚洲资源在线视频| 一区二区三区四区在线| 国产精品999在线| 国产毛片久久国产| 国产福利大秀91| 久久先锋资源| 91在线无码精品秘九色APP| 91口爆吞精国产对白第三集| 一区二区三区在线不卡免费| 亚洲乱伦视频| 亚洲国产天堂久久综合| a国产精品| 欧美第九页| 制服丝袜 91视频| 在线中文字幕网| 国产成人精品无码一区二| 任我操在线视频| 亚洲精品视频在线观看视频| 99国产精品免费观看视频| 日本亚洲成高清一区二区三区| 最新日韩AV网址在线观看| 亚洲va欧美va国产综合下载| 永久免费av网站可以直接看的| 伊人色综合久久天天| 国产精品手机在线观看你懂的| 欧美日韩国产一级| 综合成人国产| 午夜精品福利影院| 九九久久99精品| 成人夜夜嗨| 97精品伊人久久大香线蕉| 亚洲一级毛片免费看| 欧美色视频在线| 国产成人午夜福利免费无码r| 免费观看成人久久网免费观看| 91在线中文| 四虎国产在线观看| 人妻无码AⅤ中文字| 日韩精品高清自在线| 国产精品永久在线| 人妻少妇乱子伦精品无码专区毛片| 91精品久久久久久无码人妻| 日韩一区精品视频一区二区| 69av在线| 老司机久久99久久精品播放| 国产高清不卡|