前面第5部分,我們講解了 51 定時器的使用。那么現(xiàn)在你手頭上也就有了一塊帶數(shù)字顯示的手表,它能不停的循環(huán)跑起來(從 初始值 -> 最大值 -> 0 -> 最大值).
其實呀,每次 51 定時器在從最大值跳轉(zhuǎn)到 0 的時候會有一個檢測。就好像鬧鐘一樣(比如你設(shè)置了 8 點的鬧鐘,但是鬧鈴你沒有開。雖然8點鐘到了,鬧鐘會啟動,但是不會吵醒你。所以你就遲到了。)這里一樣,51單片機在從最大值跳轉(zhuǎn)到0的時候也會啟動一個事情,但是,這個事情到底會不會去叫單片機還需要設(shè)置一個開關(guān)。而這個開關(guān)我們就叫它(定時器溢出中斷 ET0)也就是說,如果我們只需要在昨天的代碼上增加兩行如下代碼:
這樣,只要定時器從最大值跳轉(zhuǎn)到 0 的時候,它就會發(fā)生中斷(也就是鬧醒正在干其他事的單片機過來)。
那么單片機到底被叫去哪里了呢?只要定時器的鬧鐘一發(fā)生,它就會告訴單片機時間到了。而這時單片機就會去尋找如下形式的函數(shù)。(為什么單片機知道它呢?就是因為函數(shù)屁股后面跟了一個 interrupt 0 ,主要函數(shù)配備了這個東西,鬧鐘一響就會跑過來執(zhí)行它。不過盡量只有1個函數(shù)綁定它,否則單片機也會懵的,我到底選擇哪一個?)