51單片機(jī)匯編版的多任務(wù)實(shí)時(shí)操作系統(tǒng)

51單片機(jī)匯編版的多任務(wù)實(shí)時(shí)操作系統(tǒng)

ID:10998888

大?。?7.03 KB

頁(yè)數(shù):11頁(yè)

時(shí)間:2018-07-09

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

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

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

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

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

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

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

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

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

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

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