Ⅰ 單片機軟體中斷和硬體中斷的區別
單片機如果沒有操作系統是沒有軟體中斷,只有硬體中斷。軟體中斷是操作系統為一些特殊應用而設置的「中斷」,靠命令來觸發中斷。
Ⅱ 51單片機c語言中斷函數不能進行參數傳遞,是什麼意思,誰能解釋一下
是指中斷處理函數不能有輸入參數也不能有函數返回。因為中斷都是些硬體自動調用,沒有程序去給他傳遞參數,也沒有硬體去接收參數。
不過x86計算機的軟中斷可以有參數傳遞,不過他是用寄存器傳遞的。
Ⅲ 51單片機,用按鍵實現外部中斷,軟體如何去抖
外部中斷的一般都是採用延時程序,而且延時程序一般是利用定時器做10~15ms的延時去抖,來實現的,而且時間不是特別精確,單片機書上和有關資料上應該都有我寫一個參考一下:
void DelayMS(unsigned char a)
{int i;
for(;a>0;a--)
for(i=110;i>0;i--);
}延時約為a毫秒,不過不夠准確,可以通過keil軟體或者匯編來確立更精確的延時時間!
在中斷執行前先做判斷:用if語句看看引腳的電平,如果沒有跳變,那麼再延時判斷,如果還沒有跳變那麼再延時,如此重復;
等到電平跳變了,延時看看是不是電平收其他非操作性因素引起的,比如說電源抖動,延時之後再判斷如果的確是跳變了,可以進行中斷後的操作了!
Ⅳ 單片機的內部中斷和外部中斷有什麼區別
一、主體不同
1、內部中斷:斷是一個演算法指令,是由軟中斷指令啟動的中斷。
2、外部中斷:是單片機實時地處理外部事件的一種內部機制。
二、機制不同
1、內部中斷:執行除法指令時,出現除數為0或商超過寄存器所能表達的范圍,則產生類型為0 的內部中斷。是優先順序最高的內部中斷。
2、外部中斷:當某種外部事件發生時,單片機的中斷系統將迫使CPU暫停正在執行的程序,轉而去進行中斷事件的處理;中斷處理完畢後.又返回被中斷的程序處,繼續執行下去。
三、特點不同
1、內部中斷:由一條指令INT n產生中斷類型碼或者由指令規定,或者是預定的。不執行INTA匯流排周期,CPU也不發出響應信號INTA。
2、外部中斷:在實時控制中,現場的各種參數、信息均隨時問和現場而變化。這些外界變數可根據要求隨時向CPU發出中斷申請。請求CPU及時處琿中斷請求,如中斷條件。
Ⅳ 可以在子函數中調用中斷函數嗎
應該是可以的吧,將單片機A的timer0和timer1都初始化好,方波發生器用timer0,初始化時處於關閉狀態;串口用timer1做波特率發生器。串口用中斷模式,在中斷處理中,判斷如果收到的字元為'a',則開啟timer0。關鍵是看單片機B檢測高電平你是用什麼方法處理了。比如將送出的方波信號接外部中斷INT0,反向後接INT1,外部中斷沿觸發。在B中INT1的中服用來開啟定時器,INT0的中服用來關閉定時器並檢查是否在a~b之間,如果是開始閃爍LED的處理,如果不是清零定時器等待下一個高電平。我覺得LED不閃爍可能是單片機B對電平的檢測問題,也可能是LED閃爍程序的問,可以在判斷a~b成立後輸出個電平試試看。 查看原帖>>