中斷是為使單片機具有對外部或內部隨機發生的事件實時處理而設置的,中斷功能的存在,很大程度上提高了單片機處理外部或內部事件的能力。它也是單片機最重要的功能之一,是我們學習單片機必須要掌握的。很多初學者被困在中斷中,學了很久仍然不知道中斷究竟是個什么東西,大家千萬不要認為它有多難,其實只要掌握正確的學習方法,沒有哪個知識點是學不會的。 為了能讓大家更容易理解中斷概念,我們先來舉一個生活事例:你打開火,燒上一壺水。然后去洗衣服,在洗衣服的過程中,突然聽到水壺發出水開的報警聲,這時,你停止洗衣服動作,立即去關掉火,然后將開水灌入暖水瓶中,灌完開水后,你又回去繼續洗衣服。這個過程中實際上就發生了一次中斷。 對于單片機來講,中斷是指CPU在處理某一事件A時,發生了另一事件B,請求CPU迅速去處理(中斷發生);CPU暫時停止當前的工作(中斷響應),轉去處理事件B(中斷服務);待CPU將事件I.,處理完畢后,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回),這一過程稱為中斷。 再回來看前面講的生活事例,與單片機中斷結合分析,你的主任務是洗衣服,水開報警這是一個中斷請求,這一時刻相當于斷點處,你響應中斷去關火,然后將開水灌入暖水瓶中,這一動作實際上就是處理中斷程序,灌完開水后再回去繼續洗衣服,相當于處理完中斷程序后再返回主程序繼續執行主程序。這里需要注意的是,水開是隨時都有可能的,但是無論什么時候開,只要一開你將立即去處理它,處理完后再回來繼續接著洗剛才那件衣服。單片機在執行程序時,中斷也隨時有可能發生,但無論何時發生,只要一旦發生,單片機將立即暫停當前程序,趕去處理中斷程序,處理完中斷程序后再返回剛才暫停處接著執行原來的程序。單片機在執行程序時其程序流程圖。 引起CPU中斷的根源,稱為中斷源,中斷源向CPU提出中斷請求,CPU暫時中斷原來的事務A,轉去處理事件B,對事件B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現上述中斷功能的部件稱為中斷系統(中斷機構)。 中斷的開啟與關閉、設置啟用哪一個中斷等都是由單片機內部的一些特殊功能寄存器來決定的,在以前的學習中我們僅對單片機內部的特殊功能寄存器IO口寄存器設置過,從下節起我們將會設置單片機內部更多的特殊功能寄存器。
當中央處理機CPU正在處理某件事的時候外界發生了緊急事件請求,要求CPU暫停當前的工作,轉而去處理這個緊急事件,處理完以后,再回到原來被中斷的地方,繼續原來的工作,這樣的過程稱為中斷。實現這種功能的部件稱為中斷系統,請示CPU中斷的請求源稱為中斷源。微型機的中斷系統一般允許多個中斷源,當兒個中斷源同時向CPU請求中斷,要求為它服務的時候,這就存在CPU優先響應哪一個中斷源請求的問題。通常根據中斷源的輕重緩急排隊,優先處理最緊急事件的中斷請求源,即規定每一個中斷源有一個優先級別。CPU總是先響應優先級別最高的中斷請求。
|