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