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
賺錢方法
捕魚
主站蜘蛛池模板: 亚洲综合片| 国产成人av一区二区三区| 国产激爽大片在线播放| 亚洲免费福利视频| 激情六月丁香婷婷| 亚洲成人在线网| 日韩精品无码免费专网站| 久久久亚洲色| 国产精品毛片一区| 亚洲国产欧洲精品路线久久| 国产一区二区三区免费观看| 国产熟女一级毛片| 97超碰精品成人国产| 久久久久国产精品嫩草影院| 国产在线自乱拍播放| 国产美女无遮挡免费视频网站 | 亚洲欧美色中文字幕| 欧美一区中文字幕| 国产免费精彩视频| 伊人久久影视| 日韩av电影一区二区三区四区| 无码精品国产dvd在线观看9久| 亚洲精品无码抽插日韩| 国产啪在线91| 亚洲bt欧美bt精品| 免费高清a毛片| 成人免费一级片| 亚洲欧美综合在线观看| 色综合久久无码网| 极品国产在线| 日本不卡在线视频| 色亚洲成人| 四虎国产在线观看| 无码aaa视频| 永久成人无码激情视频免费| 亚洲天天更新| 日韩无码精品人妻| 日韩视频福利| www精品久久| 国产99欧美精品久久精品久久| 免费毛片网站在线观看| 日韩精品中文字幕一区三区| 成年av福利永久免费观看| 欧美成人一级| 中文无码伦av中文字幕| 激情午夜婷婷| 亚洲无码高清免费视频亚洲 | 污网站在线观看视频| 亚洲精品免费网站| 国产成人亚洲精品蜜芽影院| 国产乱码精品一区二区三区中文| 国产人成在线视频| 毛片免费在线| 免费AV在线播放观看18禁强制| 日本人妻一区二区三区不卡影院 | 香港一级毛片免费看| 日本道综合一本久久久88| 91精品久久久久久无码人妻| 在线欧美日韩国产| 国产成a人片在线播放| 自拍欧美亚洲| 久久熟女AV| 五月六月伊人狠狠丁香网| 日本道中文字幕久久一区| 中文字幕在线观看日本| 五月综合色婷婷| 成人字幕网视频在线观看| 91福利片| 亚洲综合第一区| 国产理论一区| 一级一级一片免费| 国产免费自拍视频| 91成人免费观看| 亚洲色欲色欲www在线观看| 国产在线精彩视频二区| 三级国产在线观看| hezyo加勒比一区二区三区| 亚洲av片在线免费观看| 四虎精品国产永久在线观看| 99在线国产| 国产成人免费观看在线视频| 亚洲av片在线免费观看|