freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c51單片機(jī)的多任務(wù)機(jī)制及應(yīng)用-資料下載頁

2025-08-12 10:11本頁面

【導(dǎo)讀】出了源代碼和一個(gè)應(yīng)用實(shí)例。通過中斷進(jìn)行實(shí)時(shí)任務(wù)切換,具有結(jié)構(gòu)簡單清晰、代碼量少、不需使用匯編等優(yōu)點(diǎn)。該方法亦可應(yīng)用于其他單片機(jī)系統(tǒng)。然而由于程序只能按順序依次執(zhí)行,缺乏靈活性,只能使用中斷。函數(shù)實(shí)時(shí)地處理一些較短的任務(wù),在較復(fù)雜的應(yīng)用中使用極為不便。務(wù)操作系統(tǒng)的出現(xiàn)解決了這個(gè)問題。在多任務(wù)系統(tǒng)中,可以同時(shí)執(zhí)行多個(gè)并行任。務(wù),任務(wù)之間可以相互跳轉(zhuǎn)。但是嵌入式操作系統(tǒng)在提供強(qiáng)大功能的同時(shí),也帶。來了代碼量大、結(jié)構(gòu)復(fù)雜、對硬件要求較高、開發(fā)難度大且成本高等問題。之間通過信號量、郵箱、消息隊(duì)列等傳遞信息。在很多情況下并不需要這些功能,撥打戶主電話、通知管理中心等工作。當(dāng)發(fā)生火災(zāi)地震時(shí),管理中心發(fā)送一個(gè)串??诖a給主板CPU,使CPU進(jìn)入災(zāi)難報(bào)警狀態(tài),執(zhí)行響警鈴、語音報(bào)警等操作。板的CPU有4種不同的工作狀態(tài)。其次,各狀態(tài)之間的切換十分困難,用C語言寫的程序?yàn)榍竽K化,一般。性強(qiáng)的多任務(wù)程序,程序流程如圖3所示。

  

【正文】 鍵盤發(fā)送一串口數(shù)據(jù)并要求鍵盤回送。這樣就實(shí)現(xiàn)了各個(gè)狀態(tài)的切換。 實(shí)現(xiàn)任務(wù)調(diào)度需要解決 3 個(gè)關(guān)鍵問題: ① 獲取任務(wù)入口點(diǎn)的程序地址。由于使用 C 語言不能直接獲取和修改程序計(jì)數(shù)器 PC 的值,而在調(diào)用函數(shù)時(shí)會將 PC 值入棧,利用這個(gè)特點(diǎn)在任務(wù)入口處之前調(diào)用 Get_Next_PC 函數(shù)即可從堆棧中獲得入口地址。 Get_Next_PC 中, SP為堆棧指針,得到的 PC值要加 4才是任務(wù)入口地址,因?yàn)椴榭捶磪R編窗口可知,將函數(shù)返回值傳給全局變量 PC_Value 需要兩條 2 字節(jié)長的 mov 指令。 ② 修改中斷返回地址。修改中斷返回地址的操作與獲取 PC 值類似,都是通過修改堆棧中的內(nèi)容實(shí)現(xiàn)。但是由于編譯器自身的特點(diǎn),在進(jìn)入中斷時(shí),編譯器除了把返回地址入棧外,還會計(jì)算自身及它所調(diào)用的函數(shù)對寄存器 ACC、 B、 DPH、 DPL、 PSW、 R0 ~ R7 的改變,并將它認(rèn)為被改變了的寄存器也入棧保護(hù)。如果堆棧結(jié)構(gòu)會隨中斷函數(shù)內(nèi)容改變而變化,就沒辦法計(jì)算中斷返回地址堆棧中的位置。解決方法是,在中斷函數(shù)定義時(shí)加上關(guān)鍵字 using 0 告訴編譯器中斷函數(shù)及其調(diào)用的函數(shù)將使用寄存器組 0,這樣工作寄存器 R0~ R7 將不會被保存。 ACC、 PSW、 DPH、 DPL在對 PC_Value 操作時(shí)已經(jīng)用到,在中斷函數(shù)開頭定義兩個(gè)變量 a b1 并令它們相乘,使 B寄存器也被入棧,這樣堆棧的結(jié)構(gòu)就是固定的了。 ③防止堆棧溢出。由于在調(diào)用函數(shù)時(shí)編譯器會將當(dāng)前地址入棧,返回時(shí)再出棧,當(dāng)任務(wù)切換即中斷多次發(fā)生在函數(shù)調(diào)用過程中時(shí),堆棧會因?yàn)橹蝗氩怀龆罱K導(dǎo)致溢出。這是不能容許的。因此,應(yīng)在主函數(shù)開頭初始化后立刻將SP值保存,再在每次任務(wù)切換后都將SP恢復(fù)為初值 ,這可以有效防止堆棧溢出。 結(jié)語 根據(jù)以上的比較與分析可以看出這種實(shí)現(xiàn)多任務(wù)機(jī)制的方法具有如下優(yōu)點(diǎn):與采用單任務(wù)機(jī)制的程序相比,其結(jié)構(gòu)簡單清晰,易于控制;利用中斷和堆棧實(shí)現(xiàn)任務(wù)切換時(shí)的長跳轉(zhuǎn),完全不需使用匯編語言,可移植性強(qiáng);增加的代碼量極小,實(shí)時(shí)性好,節(jié)省程序開發(fā)時(shí)間。 以上介紹的方法已經(jīng)通過測試并應(yīng)用于幾個(gè)實(shí)際項(xiàng)目中,包括智能小區(qū)安防系統(tǒng)、汽車 CAN 總線控制系統(tǒng)等,取得了良好效果。只要根據(jù)具體的硬件與編譯環(huán)境稍作修改,亦可應(yīng)用于其他的單片機(jī)系統(tǒng)中。 參考文獻(xiàn) 1. 張培仁 . 基于 C語言編 程 MCS51單片機(jī)原理與應(yīng)用 . 北京:清華大學(xué)出版社 , . 2. 胡大可等 . 基于單片機(jī) 8051 的嵌入式開發(fā)指南 . 北京:電子工業(yè)出版社 ,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1