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