《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 其他 > 教程:51單片機(jī)中斷簡(jiǎn)介及例程分析

教程:51單片機(jī)中斷簡(jiǎn)介及例程分析

2023-01-31
來(lái)源:滑小稽筆記
關(guān)鍵詞: 51單片機(jī) 寄存器 CPU

  5.1 中斷概念

  中斷是指計(jì)算機(jī)運(yùn)行過(guò)程中,,出現(xiàn)某些意外情況需主機(jī)干預(yù)時(shí),,機(jī)器能自動(dòng)停止正在運(yùn)行的程序并轉(zhuǎn)入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續(xù)運(yùn)行,,以一個(gè)例子來(lái)說(shuō)明什么叫做中斷。

  假設(shè)一個(gè)人在家看電視,,這時(shí)候突然門(mén)鈴響了,,這個(gè)人此時(shí)就要停止看電視去開(kāi)門(mén),然后關(guān)上門(mén)后繼續(xù)回來(lái)看電視,,這個(gè)例子當(dāng)中看電視這個(gè)動(dòng)作就是常規(guī)的計(jì)算機(jī)運(yùn)行過(guò)程,,門(mén)鈴響就相當(dāng)于一個(gè)中斷信號(hào)(中斷請(qǐng)求),用戶這時(shí)停止看電視(中斷當(dāng)前程序)起來(lái)開(kāi)門(mén)(中斷響應(yīng)),,關(guān)上門(mén)后(中斷處理結(jié)束)繼續(xù)看電視(繼續(xù)執(zhí)行當(dāng)前程序),。這一整個(gè)過(guò)程就是中斷發(fā)生時(shí),CPU的處理方式,。

  還是上面的例子,,現(xiàn)在假設(shè)門(mén)鈴響的時(shí)候水燒開(kāi)了,此時(shí)用戶可以選擇先開(kāi)門(mén)后關(guān)水,,也可以選擇先關(guān)水后開(kāi)門(mén),,這個(gè)先后關(guān)系就是中斷優(yōu)先級(jí),假設(shè)門(mén)鈴的中斷優(yōu)先級(jí)比燒水的優(yōu)先級(jí)高,那就會(huì)先開(kāi)門(mén),,后關(guān)水,,反之,則會(huì)先關(guān)水,,后開(kāi)門(mén),,這就是針對(duì)兩個(gè)及兩個(gè)以上中斷同時(shí)發(fā)生的時(shí)候CPU根據(jù)中斷優(yōu)先級(jí)執(zhí)行中斷的過(guò)程。

  CPU在處理某一件事件A時(shí),,發(fā)生了另外一件事件B請(qǐng)求CPU迅速去處理(中斷發(fā)生),,此時(shí)CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)過(guò)去處理事件B(中斷響應(yīng)與中斷服務(wù)),,等到CPU將事件B處理結(jié)束后,,再回到原來(lái)事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過(guò)程叫做中斷,。

  傳統(tǒng)51單片機(jī)具有5個(gè)中斷源,,中斷優(yōu)先級(jí)從高到低依次是:外部中斷0(interrupt0)、定時(shí)器0(interrupt1),、外部中斷1(interrupt2),、定時(shí)器1(interrupt3)和串口中斷(interrupt4)。

  引起CPU中斷的根源,,稱為中斷源,。中斷源向CPU提出的中斷請(qǐng)求。CPU暫時(shí)中斷原來(lái)的事務(wù)A,,轉(zhuǎn)去處理事件B,。對(duì)事件B處理完畢后,再回到原來(lái)被中斷的地方(即斷點(diǎn)),,稱為中斷返回,。實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機(jī)構(gòu))。

  5.2 51單片機(jī)中斷簡(jiǎn)介

  51單片機(jī)的中斷結(jié)構(gòu)圖如下圖所示,。

255.JPG

  從圖中可知配置外部中斷必須先配置IT0(或者IT1,,定時(shí)器與串口沒(méi)有這一項(xiàng)),根據(jù)賦值選擇觸發(fā)方式,,外部中斷的觸發(fā)方式總共有兩種,,下降沿觸發(fā)與高電平觸發(fā),然后配置對(duì)應(yīng)的中斷使能,,EX0,,ET0,EX1,,ET1,,ES,最后開(kāi)啟總中斷EA即可。

  5.3 外部中斷相關(guān)寄存器

  5.3.1 中斷控制寄存器IE

  寄存器地址:0xA8

259.JPG

  Bit 7:總中斷使能

  0:關(guān)閉

  1:開(kāi)啟

  Bit 4:串口中斷使能

  0:關(guān)閉

  1:開(kāi)啟

  Bit 3:定時(shí)器1中斷使能

  0:關(guān)閉

  1:開(kāi)啟

  Bit 2:外部中斷1中斷使能

  0:關(guān)閉

  1:開(kāi)啟

  Bit 1:定時(shí)器0中斷使能

  0:關(guān)閉

  1:開(kāi)啟

  Bit 0:外部中斷0中斷使能

  0:關(guān)閉

  1:開(kāi)啟

  5.3.2 中斷標(biāo)志寄存器TCON

  寄存器地址:0x88

258.JPG

  Bit 7:定時(shí)/計(jì)數(shù)器1溢出中斷請(qǐng)求標(biāo)志位

  0:沒(méi)有產(chǎn)生中斷

  1:產(chǎn)生中斷

  Bit 6:定時(shí)/計(jì)數(shù)器1使能

  0:定時(shí)/計(jì)數(shù)器1關(guān)閉

  1:定時(shí)/計(jì)數(shù)器1使能

  Bit 5:定時(shí)/計(jì)數(shù)器0溢出中斷請(qǐng)求標(biāo)志位

  0:沒(méi)有產(chǎn)生中斷

  1:產(chǎn)生中斷

  Bit 4:定時(shí)/計(jì)數(shù)器0使能

  0:定時(shí)/計(jì)數(shù)器0關(guān)閉

  1:定時(shí)/計(jì)數(shù)器0使能

  Bit 3:外部中斷1中斷請(qǐng)求標(biāo)志位

  0:沒(méi)有產(chǎn)生中斷

  1:產(chǎn)生中斷

  Bit 2:外部中斷1觸發(fā)方式控制位

  0:電平觸發(fā)方式

  1:邊沿觸發(fā)方式(下降沿有效)

  Bit 1:外部中斷0中斷請(qǐng)求標(biāo)志位

  0:沒(méi)有產(chǎn)生中斷

  1:產(chǎn)生中斷

  Bit 0:外部中斷0觸發(fā)方式控制位

  0:電平觸發(fā)方式

  1:邊沿觸發(fā)方式(下降沿有效)

  5.3.3 中斷優(yōu)先級(jí)控制寄存器IP

  寄存器地址:0xB8

257.JPG

  Bit 5:定時(shí)/計(jì)數(shù)器2優(yōu)先級(jí)設(shè)置

  Bit 4:串口優(yōu)先級(jí)設(shè)置

  Bit 3:定時(shí)/計(jì)數(shù)器1優(yōu)先級(jí)設(shè)置

  Bit 2:外部中斷1優(yōu)先級(jí)設(shè)置

  Bit 1:定時(shí)/計(jì)數(shù)器0優(yōu)先級(jí)設(shè)置

  Bit 0:外部中斷0優(yōu)先級(jí)設(shè)置

  5.4 例程分析

  5.4.1 原理圖

254.JPG

  5.4.2 實(shí)現(xiàn)的功能

  沒(méi)有中斷發(fā)生時(shí),,D1~D8按順序循環(huán)點(diǎn)亮,,每次只亮一個(gè)LED,當(dāng)按鍵按下時(shí),,LED燈全亮1s,,1s后從LED燈斷開(kāi)的位置繼續(xù)循環(huán)點(diǎn)亮(不允許從從開(kāi)始點(diǎn)亮)。

  5.4.3 源代碼

253.JPG



更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]