A. 51單片機如何實現多線程多任務有哪些程序可以在「後台」自己運行
1、51單片機無法實現多線程任務,只能實現單線程。這是由51單片機的硬體決定的,否則多線程晶元就沒有必要設計出來了。
2、51單片機的硬體資源,如:定時器、計數器、捕獲器、比較器、AD轉換、pwm、UART等等大部分的硬體資源,初始化以及啟動由用戶控制。開始運行後,51單片機的相關硬體電路能自動運行,無需干預。
3、在這些硬體資源運行過程中,用戶可以進行其他操作(一般不更改正在運行的硬體資源,否則會影響初始設定)。
4、但在這些硬體資源運行結束後,大部分的情況下,對應的特殊寄存器(含中斷)會被更改,此時,需用戶進行查詢特殊寄存器或處理中斷。處理這些時,用戶需要停止正在運行的程序,不能同時進行其他工作。
例如:
用戶設置定時器為周期1S;開啟定時器中斷。
啟動定時器後,用戶可以執行其他無關定時器的運算、控制。到達1S的時間時,定時器產生中斷,用戶執行的程序將被停止,保存現場後,程序運行跳轉至定時器中斷,開始執行定時器中斷程序。在定時器中斷程序執行結束後,恢復現場,重新從用戶程序被中斷的位置開始運行。
B. 單片機 多任務 不在中斷中處理
可以在單片機的主循環中定義多個子過程處理,每個循環順序執行一遍。每個子過程處理就是一個任務處理
C. 怎麼解決單片機中中斷的沖突
1、不知道你所使用的是什麼樣的單片機。如果有中斷優先順序寄存器的話,那麼將重要中斷的優先順序設置成高,這樣低優先順序的中斷就不能幹擾到這個中斷的執行。
2、如果沒有中斷優先順序設置的話,這樣的方法也是可行的:當程序進入重要的中斷服務程序之後,先將總中斷關閉,等到中斷程序執行完畢之後再打開總中斷,這樣其它中斷也可以得到響應,而且也不會影響到你所要保護的中斷的程序的執行。
D. 單片機 同時處理多件事
單片機是不能同時處理多件事情。如果要想同步處理多件事情,只能是先中斷正在做的事情,轉移到其它需要做的事情上,等事情處理完畢,或者還是處理到一定程度,再轉回之前正在做的事情。
一、關於單片機:
單片機(Microcontrollers)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。
二、單片機的應用分類:
單片機(Microcontrollers)作為計算機發展的一個重要分支領域,根據發展情況,從不同角度,單片機大致可以分為通用型/專用型、匯流排型/非匯流排型及工控型/家電型。
1、通用型
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
2、匯流排型
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
3、控制型
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
E. 51單片機如何實現多線程多任務有哪些程序可以在「後台」自己運行
51單片機可以實現執行時間片形式的多線程任務,具體做法是:1、弄個表兩位元組一個單位存一下各個任務的執行地址。2、在中斷級別較高的T0定時器中斷中,把中斷壓進堆棧的那兩個位元組保存到表裡。3、用表裡別的線程的地址重壓進堆棧。4、從中斷里退出就可以切到另一個線程繼續跑了。
我記得這個在早先2000年那時候的大學計算機系單片機原理專業課里講過,但是那科掛掉的實在太多,現在好像已經把這些獨門絕技大多給砍沒了,就剩背背匯編指令集。
F. 為什麼單片機的兩個定時器不能同時用
既然是兩個定時器,就要考慮沖突的問題。為此,需要設置優先順序。
只要設置了優先順序,就不會不行。
至於究竟哪個優先權高,就要你自己好好考慮了。