❶ 怎樣51單片機調用兩個子程序
MOV R0,#08H
MOV A,#0FEH
LOOP: MOV P1,A
LCALL DEL
RR A
DJNZ R0,LOOP
使用DJNZ 指令。為0執行下一指令,不為0跳轉。
就可以調用兩個子程序了
❷ 大俠們,51單片機如何利用有限的外部中斷控制多個子程序謝謝啦
單片機外部中斷有限,僅有兩個,在某些系統設計中可能會不夠用。這里給大家推薦一個比較簡單的擴展外部中斷的方法。靈感來至於單片機鍵盤設計!
在有些鍵盤設計中,如果在程序中採用輪詢的方法在檢測按鍵,會花費大量的cpu資源,特別是還要進行大量的數據處理的情況下。所以很多按鍵設計都加入了中斷,上一篇博文里的按鍵設計其實都可以加入中斷,這樣可以更好的利用cpu資源。
一般在按鍵設計中只會用一個中斷,但是卻可以控制n多的按鍵。每一個按鍵的按下都相當於產生了一個中斷,所以利用這個原理,我們也可以『無限』的擴展外部中斷。一個簡單的電路圖如下:
這樣當外部送來一個低電平的信號時,通過與非門後將產生一個中斷信號,這個信號可以送到單片機的外部中斷1,然後檢測p00到p03的電平狀態,就可以判別是根線上產生了外部中斷,從而運行相應的中斷服務子程序。
這個電路原理可以結合前面的按鍵來進行進一步的發揮(每個按鍵信號可以當做一個中斷信號),那樣可以產生跟多的中斷信號。
❸ 51單片機怎麼把多個子程序做成頭文件,然後調用
你可以寫一個頭文件,比如說<delay.h>之類的,開始寫51程序的時候,#include <delay.h>就可以放進去了,這條語句相當於展開這個文件。你可以把它放在任意的路徑,最好是和<reg51.h>一個文件夾,方便直接用,就不用每次使用都要查找它的路徑了。希望能夠幫到你
❹ 51單片機如何調用兩個不同的中斷子程序
當然不可行了,中斷服務程序是不能調用的,只能靠硬體觸發。
你可以初始化時只開啟第一個中斷,在第一個中斷服務程序里,開啟第二個中斷,這樣還是可以的。
❺ 51單片機如何在主程序循環的時候通過按鍵進入中斷子程序
只要在P3.2和P3.3腳外部有按鍵,而且按下是接地,那按下鍵就會引起外部中斷0和外部中斷1申請中斷。在主程序初始化時,設置外部中斷為下降沿觸發,並開中斷就行。