【文章內(nèi)容簡(jiǎn)介】
念 CPU在處理某一事件 A時(shí),發(fā)生了另一事件B請(qǐng)求 CPU迅速去處理( 中斷發(fā)生 ); CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件 B( 中斷響應(yīng)和中斷服務(wù) ); 待 CPU將事件 B處理完畢后,再回到原來事件 A被中斷的地方繼續(xù)處理事件 A( 中斷返回 ),這一過程稱為 中斷 。 MCS51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu) 執(zhí)行主程序 主程序 繼續(xù)執(zhí)行主程序 斷點(diǎn) 中斷請(qǐng)求 中斷響應(yīng) 執(zhí)行中斷處理程序 中斷返回 引起 CPU中斷的根源,稱為 中斷源 。中斷源向 CPU提出的中斷請(qǐng)求。 CPU暫時(shí)中斷原來的事務(wù) A,轉(zhuǎn)去處理事件 B。對(duì)事件 B處理完畢后,再回到原來被中斷的地方(即斷點(diǎn) ),稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為 中斷系統(tǒng) (中斷機(jī)構(gòu))。 主 程 序 A響 應(yīng)返 回?cái)?點(diǎn)R E T I??中 斷 服 務(wù) 程 序 B 隨著計(jì)算機(jī)技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機(jī)與慢速 I/O設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點(diǎn): ? 分時(shí)操作 。 CPU可以分時(shí)為多個(gè) I/O設(shè)備服務(wù),提高了計(jì)算機(jī)的利用率; ?實(shí)時(shí)響應(yīng) 。 CPU能夠及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時(shí)性大大增強(qiáng); ?可靠性高 。 CPU具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。 80C51中斷系統(tǒng)的結(jié)構(gòu) 80C51的中斷系統(tǒng)有 5個(gè)中斷源 ( 8052有 6個(gè)) , 2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套 。 E X 0E A P X 001E T 0P T 001E X 1P X 101E T 1P T 101E SP S01≥ 1R IT IS C O NT C O NI E 0T F 0I E 1T F 110101I T 0I T 1I N T 0I N T 1T 0T 1R XT XI EI P111111110硬 件 查 詢自然優(yōu)先級(jí)自然優(yōu)先級(jí)中 斷 入 口中 斷 入 口高級(jí)低級(jí)中 斷 源中 斷 源 ( ) 可由 IT0()選擇其為低電平有效還是下降沿有效 。 當(dāng) CPU檢測(cè)到 出現(xiàn)有效的中斷信號(hào)時(shí) , 中斷標(biāo)志 IE0()置 1, 向 CPU申請(qǐng)中斷 。 E X 0E A P X 001E T 0P T 001E X 1P X 101E T 1P T 101E SP S01≥ 1R IT IS C O NT C O NI E 0T F 0I E 1T F 110101I T 0I T 1I N T 0I N T 1T 0T 1R XT XI EI P111111110硬 件 查 詢自然優(yōu)先級(jí)自然優(yōu)先級(jí)中 斷 入 口中 斷 入 口高級(jí)低級(jí)中 斷 源中 斷 源E X 0E A P X 001E T 0P T 001E X 1P X 101E T 1P T 101E SP S01≥ 1R IT IS C O NT C O NI E 0T F 0I E 1T F 110101I T 0I T 1I N T 0I N T 1T 0T 1R XT XI EI P111111110硬 件 查 詢自然優(yōu)先級(jí)自然優(yōu)先級(jí)中 斷 入 口中 斷 入 口高級(jí)低級(jí)中 斷 源中 斷 源 () 可由 IT1()選擇其為低電平有效還是下降沿有效 。 當(dāng) CPU檢測(cè)到 出現(xiàn)有效的中斷信號(hào)時(shí) , 中斷標(biāo)志 IE1()置 1,向 CPU申請(qǐng)中斷 。 E X 0E A P X 001E T 0P T 001E X 1P X 101E T 1P T 101E SP S01≥ 1R IT IS C O NT C O NI E 0T F 0I E 1T F 110101I T 0I T 1I N T 0I N T 1T 0T 1R XT XI EI P111111110硬 件 查 詢自然優(yōu)先級(jí)自然優(yōu)先級(jí)中 斷 入 口中 斷 入 口高級(jí)低級(jí)中 斷 源中 斷 源 TF0( ) , 片內(nèi)定時(shí) /計(jì)數(shù)器 T0溢出中斷請(qǐng)求標(biāo)志 。 當(dāng)定時(shí) /計(jì)數(shù)器 T0發(fā)生溢出時(shí) , 置位 TF0, 并向 CPU申請(qǐng)中斷 。 E X 0E A P X 001E T 0P T 001E X 1P X 101E T 1P T 101E SP S01≥ 1R IT IS C O NT C O NI E 0T F 0I E 1T F 110101I T 0I T 1I N T 0I N T 1T 0T 1R XT XI EI P111111110硬 件 查 詢自然優(yōu)先級(jí)自然優(yōu)先級(jí)中 斷 入 口中 斷 入 口高級(jí)低級(jí)中 斷 源中 斷 源 TF1( ),片內(nèi)定時(shí) /計(jì)數(shù)器 T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí) /計(jì)數(shù)器 T1發(fā)生溢出時(shí),置位 TF1,并向 CPU申請(qǐng)中斷。 E X 0E A P X 001E T 0P T 001E X 1P X 101E T 1P T 101E SP S01≥ 1R IT IS C O NT C O NI E 0T F 0I E 1T F 110101I T 0I T 1I N T 0I N T 1T 0T 1R XT XI EI P111111110硬 件 查 詢自然優(yōu)先級(jí)自然優(yōu)先級(jí)中 斷 入 口中 斷 入 口高級(jí)低級(jí)中 斷 源中 斷 源 RI( )或 TI( ),串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位 RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位 TI,向 CPU申請(qǐng)中斷。 二 、 中斷請(qǐng)求標(biāo)志 TCON的中斷標(biāo)志 IT0( ),外部中斷 0觸發(fā)方式控制位。 當(dāng) IT0=0時(shí),為電平觸發(fā)方式。 當(dāng) IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。 IE0( ),外部中斷 0中斷請(qǐng)求標(biāo)志位。 IT1( ),外部中斷 1觸發(fā)方式控制位。 IE1( ),外部中斷 1中斷請(qǐng)求標(biāo)志位。 TF0( ),定時(shí) /計(jì)數(shù)器 T0溢出中斷請(qǐng)求標(biāo)志位。 TF1( ),定時(shí) /計(jì)數(shù)器 T1溢出中斷請(qǐng)求標(biāo)志位。 SCON的中斷標(biāo)志 ?RI( ),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位 RI。注意, RI必須由軟件清除。 ?TI( ),串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過程。每發(fā)送完一個(gè)串行幀,由硬件置位 TI。 CPU響應(yīng)中斷時(shí),不能自動(dòng)清除 TI,TI必須由軟件清除。 一、中斷允許控制 CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器 IE控制的。 80C51中斷的控制 ?EX0(),外部中斷 0允許位; ?ET0(),定時(shí) /計(jì)數(shù)器 T0中斷允許位; ?EX1(),外部中斷 0允許位; ?ET1(),定時(shí) /計(jì)數(shù)器 T1中斷允許位; ?ES( ),串行口中斷允許位; ?EA (), CPU中斷允許(總允許)位。 二、中斷優(yōu)先級(jí)控制 80C51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器 IP中的相應(yīng)位的狀態(tài)來規(guī)定的 。 ?PX0( ),外部中斷 0優(yōu)先級(jí)設(shè)定位; ?PT0( ),定時(shí) /計(jì)數(shù)器 T0優(yōu)先級(jí)設(shè)定位; ?PX1( ),外部中斷 0優(yōu)先級(jí)設(shè)定位; ?PT1( ),定時(shí) /計(jì)數(shù)器 T1優(yōu)先級(jí)設(shè)定位; ?PS ( ),串行口優(yōu)先級(jí)設(shè)定位; ?PT2 () ,定時(shí) /計(jì)數(shù)器 T2優(yōu)先級(jí)設(shè)定位。 ?PX0( ),外部中斷 0優(yōu)先級(jí)設(shè)定位; ?PT0( ),定時(shí) /計(jì)數(shù)器 T0優(yōu)先級(jí)設(shè)定位; ?PX1( ),外部中斷 0優(yōu)先級(jí)設(shè)定位; ?PT1( ),定時(shí) /計(jì)數(shù)器 T1優(yōu)先級(jí)設(shè)定位; ?PS ( ),串行口優(yōu)先級(jí)設(shè)定位; ?PT2 () ,定時(shí) /計(jì)數(shù)器 T2優(yōu)先級(jí)設(shè)定位。 而 80C52單片機(jī)有四個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)四級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)由中斷優(yōu)先級(jí)寄存器 IP和 IPH中的相應(yīng)位的狀態(tài)來規(guī)定的 。 同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)先權(quán)排隊(duì)問題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示: ? 設(shè)置 52單片機(jī)的 4個(gè)中斷源 ,使他們的優(yōu)順序?yàn)?T1,INT1,INT0,T0. IPH = 0X08。 PT1 = 1。 IP = 0X40。 PX1 = 1。 80C51單片機(jī)的中斷優(yōu)先級(jí)有三條原則: ?CPU同時(shí)接收到幾個(gè)中斷時(shí), 首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求 。 ?正在進(jìn)行的中斷過程 不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷 。 ?正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù), 能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷 。 為了實(shí)現(xiàn)上述后兩條原則, 中斷系統(tǒng)內(nèi)部設(shè)有兩個(gè)用戶不能尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。 其中一個(gè)置 1,表示正在響應(yīng)高優(yōu)先級(jí)的中斷,它將阻斷后來所有的中斷請(qǐng)求;另一個(gè)置 1,表示正在響應(yīng)低優(yōu)先級(jí)中斷,它將阻斷后來所有的低優(yōu)先級(jí)中斷請(qǐng)求。 80C51單片機(jī)中斷處理過程 中斷響應(yīng)條件 ? 中斷源有中斷請(qǐng)求; ? 此中斷源的中斷允許位為 1; ? CPU開中斷(即 EA=1)。 以上三條同時(shí)滿足時(shí), CPU才有可能響應(yīng)中斷 。 中斷響應(yīng)條件和時(shí)間 80C51的定時(shí) /計(jì)數(shù)器 實(shí)現(xiàn)定時(shí)功能, 比較方便的辦法是利用單片機(jī)內(nèi)部的定時(shí) /計(jì)數(shù)器 。也可以采用下面三種方法: ?軟件定時(shí) :軟件定時(shí)不占用硬件資源,但占用了CPU時(shí)間,降低了 CPU的利用率。 ?采用時(shí)基電路定時(shí) :例如采用 555電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時(shí)電路。但在硬件連接好以后,定時(shí)值與定時(shí)范圍不能由軟件進(jìn)行控制和修改,即不可編程。 ?采用可編程芯片定時(shí) :這種定時(shí)芯片的定時(shí)值及定時(shí)范圍很容易用軟件來確定和修改,此種芯片定時(shí)功能強(qiáng),使用靈活。在單片機(jī)的定時(shí) /計(jì)數(shù)器不夠用時(shí),可以考慮進(jìn)行擴(kuò)展。 定時(shí) /計(jì)數(shù)器的結(jié)構(gòu)和工作原理 一、定時(shí) /計(jì)數(shù)器的結(jié)構(gòu) 定時(shí) /計(jì)數(shù)器的實(shí)質(zhì)是加 1計(jì)數(shù)器( 16位),由高 8位和低 8位兩個(gè)寄存器組成。 TMOD是定時(shí) /計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能; TCON是控制寄存器,控制 T0、T1的啟動(dòng)和停止及設(shè)置溢出標(biāo)志 。 GATEC/TM1M0GATEC/TM1M0T H 1 T L 1 T H 0 T L 0T 1 方 式T 0 方 式T 1 引 腳T 0 引 腳機(jī) 器 周期 脈 沖內(nèi) 部 總 線T M O DT C O N外 部 中 斷 相 關(guān) 位TF1TR1TF0TR0二、定時(shí) /計(jì)數(shù)器的工作原理 加 1計(jì)數(shù)器 輸入的計(jì)數(shù)脈沖有兩個(gè)來源 ,一個(gè)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng) 12分頻后送來;一個(gè)是 T0或 T1引腳輸入的外部脈沖源。每來一個(gè)脈沖計(jì)數(shù)器加 1,當(dāng)加到計(jì)數(shù)器為全 1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使 TCON中TF0或 TF1置 1,向 CPU發(fā)出中斷請(qǐng)求(定時(shí) /計(jì)數(shù)器中斷允許時(shí))。如果定時(shí) /計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿。 可見,由溢出時(shí)計(jì)數(shù)器的值減去計(jì)數(shù)