最初接觸單片機的朋友對于中斷的問題總是有很多,今天就為大家用比較通俗的語言把中斷相關的問題做一下匯總整理和解答。
中斷是什么?
中斷其實很簡單,就是先保存目前的工作再去完成別的任務,任務完成后再繼續。舉例來說,正在你進行編寫單片機程序的工作時,突然電話響了,你女朋友來電話了,沒辦法,那可是必須要接,不然完蛋了。趕緊保存一下,然后接起電話,陪陪女朋友哈拉打屁。經過幾個小時的奮戰,電話打完了,得回到電腦旁,調出剛剛寫的程序,繼續寫程序……那么,在這個事情里面,你就好比一個單片機系統,編寫程序是個過程事件,就是執行正常的程序流程;電話鈴聲就是一個中斷信號,接電話聊天就是中斷響應事件或者中斷程序。當然在你響應這個事件之前得把編寫好的程序保存一下。執行完中斷程序也就是接完電話,那么當然,你得重新調出你編寫好的程序,繼續從上次結束點進入編寫程序的過程,這就是中斷返回,繼續執行正常程序流程。
中斷的作用是什么?
還是用剛才的例子來說,這就要從單片機的特性講起了,單片機是一個只能進行一項任務的處理器。而你的大腦是個多任務的CPU,當然你可以同時執行這兩件事情,甚至更多事情。但單片機只能同一個時刻,執行一件事情,如果不接電話只顧編寫程序,估計后果你也可想而知(如果是個暴力女友,那你點電腦可能就落個尸骨無存的下場)。所以,為了避免忽略掉某些重要的事情,造成不必要的損失,單片機引進了中斷機制。在電話響起的時候,還是女朋友的電話重要,優先級別高,先接電話吧。