51單片機匯編版的多任務實時操作系統(tǒng)

51單片機匯編版的多任務實時操作系統(tǒng)

ID:10998888

大?。?7.03 KB

頁數(shù):11頁

時間:2018-07-09

51單片機匯編版的多任務實時操作系統(tǒng)_第1頁
51單片機匯編版的多任務實時操作系統(tǒng)_第2頁
51單片機匯編版的多任務實時操作系統(tǒng)_第3頁
51單片機匯編版的多任務實時操作系統(tǒng)_第4頁
51單片機匯編版的多任務實時操作系統(tǒng)_第5頁
資源描述:

《51單片機匯編版的多任務實時操作系統(tǒng)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、51單片機匯編版的多任務實時操作系統(tǒng)????一個CPU核心是不可能同時處理多條指令的,只能是一條一條的順序執(zhí)行。如果我們需要同時執(zhí)行多個任務,但又不能等一個任務執(zhí)行完了再執(zhí)行下一個任務,有的任務還需要等待一個信號觸發(fā)才能往下執(zhí)行,信號遲遲未來那就什么也做不了了??!操作系統(tǒng)的出現(xiàn),就是為了解決這一問題的。它的功能就是能讓CPU“同時”處理多個任務,當然不是真正的同時,它只是把這些任務的分成不同的時間段來處理,每個任務只執(zhí)行很短的的時間(只執(zhí)行一部分指令),然后保存斷點就切換到下一個任務的指令去執(zhí)行,同樣只執(zhí)行很短的

2、的時間(只執(zhí)行一部分指令),再保存斷點切換任務。等所有的任務都執(zhí)行一次后再回來從斷點處繼續(xù)執(zhí)行,時間到,再保存斷點切換任務,如此反復。因為CPU的頻率高,所以完成一次循環(huán)的時間極短,51單片機的頻率一般40MHz以內(nèi),所需時間是ms、us級的,電腦的主頻是GHz級別的,那更不用說,這樣短的時間對于我們來說就是同時的。???學過C51的大都知道RTX51,它是單片機實時多任務系統(tǒng),是kill51自帶的,但是還有很多匯編愛好者不能使用它,因為它是C語言的。為此本人設計了兩個個簡單的匯編語言版的多任務實時系統(tǒng),專為匯編

3、愛好者提供一個參考。高手勿噴!????本程序使用定時器中斷的方法產(chǎn)生時間輪片,每個任務分配在一個時間輪片上。如果一個時間輪片(定時器的時間)是250us,那每個任務執(zhí)行一次的時間就是250us(因為任務切換的時間極短,所以里省略了);有4個任務要執(zhí)行,那么系統(tǒng)完成一次循環(huán)的時間是250*4=1000us=1ms。即先執(zhí)行任務一250us,然后保存任務一的斷點,切換到任務二執(zhí)行250us,再保存任務二的斷點,切換到任務三執(zhí)行250us,接著保存任務三的斷點,切換到任務四執(zhí)行250us,保存任務四的斷點,再次切到任務

4、一斷點處繼續(xù)往下執(zhí)行250us,再保存再切換到下一個任務的斷點處執(zhí)行,照此循環(huán)。所以這些任務并不是同1us內(nèi)完成的,而是同1ms內(nèi)完成的,當然更是同時同分同秒完成的。程序只是個演示程序,功能的開發(fā)看個人要求而定!輕量四任務實時系統(tǒng)?ORG0000HRW1_SP?DATA??20H;任務堆棧指針位置寄存器RW2_SP?DATA??21HRW3_SP?DATA??22HRW4_SP?DATA??23H?ORG0000HAJMPMAINORG000BHLJMPRWQHCXORG0076H???;============

5、====任務切換程序===========================================RWQHCX:JNB??RS0,LOOP3JNB??RS1,LOOP4;==============任務4現(xiàn)場保護PUSH?ACC????????;需注意與任務4現(xiàn)場還原對應PUSH?BPUSH?PSWMOV??RW4_SP,SP??;保存任務4的堆棧指針位置;==============任務2現(xiàn)場還原MOV??SP,RW1_SP??;取任務1的堆棧指針位置,任務1使用寄存器0組POP?PSW????????

6、??;需注意與任務1現(xiàn)場保護對應POP?BPOP?ACCRETILOOP2:;==============任務1現(xiàn)場保護PUSH?ACC????????;需注意與任務1現(xiàn)場還原對應PUSH?BPUSH?PSWMOV??RW1_SP,SP??;保存任務1的堆棧指針位置;==============任務3現(xiàn)場還原MOV??SP,RW2_SP??;取任務2的堆棧指針位置,任務2使用寄存器1組POP?PSW??????????;需注意與任務2現(xiàn)場保護對應POP?BPOP?ACCRETILOOP3:JNB??RS1,LOO

7、P2;==============任務2現(xiàn)場保護PUSH?ACC????????;需注意與任務2現(xiàn)場還原對應PUSH?BPUSH?PSWMOV??RW2_SP,SP??;保存任務2的堆棧指針位置;==============任務4現(xiàn)場還原MOV??SP,RW3_SP??;取任務3的堆棧指針位置,任務3使用寄存器2組POP?PSW???????????;需注意與任務3現(xiàn)場保護對應POP?BPOP?ACCRETILOOP4:;==============任務3現(xiàn)場保護PUSH?ACC????????;需注意與任務3現(xiàn)

8、場還原對應PUSH?BPUSH?PSWMOV??RW3_SP,SP??;保存任務4的堆棧指針位置;==============任務1現(xiàn)場還原MOV?SP,RW4_SP??;取任務4的堆棧指針位置,任務4使用寄存器3組POP?PSW?????????;需注意與任務4現(xiàn)場保護對應POP?BPOP?ACCRETI?;========任務一程序==================

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。