單片機多任務編程的話一般都是可以調數據,然後分程序來編程。
❷ 51單片機如何實現多線程多任務有哪些程序可以在「後台」自己運行
51單片機可以實現執行時間片形式的多線程任務,具體做法是:1、弄個表兩位元組一個單位存一下各個任務的執行地址。2、在中斷級別較高的T0定時器中斷中,把中斷壓進堆棧的那兩個位元組保存到表裡。3、用表裡別的線程的地址重壓進堆棧。4、從中斷里退出就可以切到另一個線程繼續跑了。
我記得這個在早先2000年那時候的大學計算機系單片機原理專業課里講過,但是那科掛掉的實在太多,現在好像已經把這些獨門絕技大多給砍沒了,就剩背背匯編指令集。
❸ 51單片機如何實現多線程多任務有哪些程序可以在「後台」自己運行
1、51單片機無法實現多線程任務,只能實現單線程。這是由51單片機的硬體決定的,否則多線程晶元就沒有必要設計出來了。
2、51單片機的硬體資源,如:定時器、計數器、捕獲器、比較器、AD轉換、pwm、UART等等大部分的硬體資源,初始化以及啟動由用戶控制。開始運行後,51單片機的相關硬體電路能自動運行,無需干預。
3、在這些硬體資源運行過程中,用戶可以進行其他操作(一般不更改正在運行的硬體資源,否則會影響初始設定)。
4、但在這些硬體資源運行結束後,大部分的情況下,對應的特殊寄存器(含中斷)會被更改,此時,需用戶進行查詢特殊寄存器或處理中斷。處理這些時,用戶需要停止正在運行的程序,不能同時進行其他工作。
例如:
用戶設置定時器為周期1S;開啟定時器中斷。
啟動定時器後,用戶可以執行其他無關定時器的運算、控制。到達1S的時間時,定時器產生中斷,用戶執行的程序將被停止,保存現場後,程序運行跳轉至定時器中斷,開始執行定時器中斷程序。在定時器中斷程序執行結束後,恢復現場,重新從用戶程序被中斷的位置開始運行。
❹ 單片機 外部中斷0不能立刻停止正在在執行的任務
同級中斷必須要等到其他中斷服務完成後才能進入中斷服務的。只有高級中斷才能打斷低級中斷的進程。因此,你可以設置外部中斷0位高級中斷,即PX0=1。
❺ 簡述單片機獨立按鍵的任務分為幾步,分別是什麼
5步。分別是判斷按鍵是否按下,延時消抖,再次判斷按鍵是否按下,等待按鍵抬起,執行預定語句。
一種是普通io口,一種是中彈的形式,普通io口是按下按鍵觸發按鍵子程序案件,指程序經過一段時間的,比如20~50毫秒的延時再次毒案件,如果按鍵值還是會按下,那麼就延時等待按鍵抬起按鍵,抬起後執行按鍵程序,然後返回中彈也是一樣的,按下按鍵之後進入中段讀按鍵狀態,是否還是為按一下是按一下等待延時再讀等待,然後等待案件採取後執行相應的代碼,然後退出總代。