第6章MCS-51單片機(jī)的中斷系統(tǒng)_第1頁(yè)
第6章MCS-51單片機(jī)的中斷系統(tǒng)_第2頁(yè)
第6章MCS-51單片機(jī)的中斷系統(tǒng)_第3頁(yè)
第6章MCS-51單片機(jī)的中斷系統(tǒng)_第4頁(yè)
第6章MCS-51單片機(jī)的中斷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程主講:訾學(xué)博 第第1 1章章: :微機(jī)原理微機(jī)原理 概述概述 第第2 2章章: :單片機(jī)概單片機(jī)概 述述 第第3 3章章: MCS-: MCS- 5151單片機(jī)的硬單片機(jī)的硬 件結(jié)構(gòu)件結(jié)構(gòu)( (* *) ) 第第4 4章章: MCS-: MCS- 5151單片機(jī)指令單片機(jī)指令 系統(tǒng)系統(tǒng)( (* *) ) 第第5 5章章: MCS-: MCS- 5151單片機(jī)程序單片機(jī)程序 設(shè)計(jì)設(shè)計(jì)( (* *) ) 第第7 7章章: MCS-: MCS- 5151的定時(shí)器的定時(shí)器/ /計(jì)計(jì) 數(shù)器數(shù)器( (* *) ) 第第6 6章章: MCS-: MCS- 5151的中斷系統(tǒng)的中斷系統(tǒng)( (* *) )

2、第第8 8章章: MCS-: MCS- 5151的串行口的串行口( (* *) ) 第第9 9章章: : 系統(tǒng)擴(kuò)系統(tǒng)擴(kuò) 展技術(shù)展技術(shù) 第第1010章章: : 模擬模擬接接 口口 第第1111章章: : 人機(jī)交人機(jī)交 互接口互接口 課程內(nèi)容 2 8051單片機(jī)的中斷系統(tǒng) 8051單片機(jī)的中斷處理過(guò)程 8051單片機(jī)的中斷服務(wù)程序設(shè)計(jì) 8051的多中斷源系統(tǒng)設(shè)計(jì) 本講主要內(nèi)容 3 某人看書(shū)某人看書(shū)某人正在處理一件事某人正在處理一件事A 手機(jī)鈴響手機(jī)鈴響出現(xiàn)另一件須立即解決的事出現(xiàn)另一件須立即解決的事B 暫??磿?shū)暫停看書(shū)中止中止A 書(shū)中作記號(hào)書(shū)中作記號(hào)記錄斷點(diǎn),便于接續(xù)記錄斷點(diǎn),便于接續(xù) 電話談話電

3、話談話處理處理B 繼續(xù)看書(shū)繼續(xù)看書(shū)繼續(xù)繼續(xù)A的工作的工作 保護(hù)斷點(diǎn) 中斷響應(yīng) 中斷請(qǐng)求 中斷返回 (1) 現(xiàn)實(shí)生活中的中斷:現(xiàn)實(shí)生活中的中斷: 6.1.1 6.1.1 中斷的概念中斷的概念 4 中斷原因:中斷原因: 一個(gè)人不可能同一個(gè)人不可能同 時(shí)完成兩項(xiàng)任務(wù)。時(shí)完成兩項(xiàng)任務(wù)。 單片機(jī)只有單片機(jī)只有一個(gè)一個(gè)CPU,一,一 旦面臨多任務(wù),它也會(huì)旦面臨多任務(wù),它也會(huì) 中斷嗎?中斷嗎? 先接電話,然后 再繼續(xù)看書(shū),這 樣效率最高! 5 (2) 單片機(jī)的中斷單片機(jī)的中斷 CPUCPU進(jìn)行工作進(jìn)行工作A A時(shí)發(fā)生了事件時(shí)發(fā)生了事件B B,請(qǐng)求,請(qǐng)求CPUCPU馬上處理馬上處理 CPUCPU暫時(shí)中斷當(dāng)前工

4、作暫時(shí)中斷當(dāng)前工作A A,轉(zhuǎn)去處理事件,轉(zhuǎn)去處理事件B B 事件事件B B處理完后,回到工作處理完后,回到工作A A被中斷的地方繼續(xù)處理被中斷的地方繼續(xù)處理A A工作工作 中斷源 中斷請(qǐng)求 中斷服務(wù) 中斷返回 中斷系統(tǒng) 中斷的優(yōu)點(diǎn) v 利用率高 v 實(shí)時(shí)性強(qiáng) v 可靠性好 中斷 當(dāng)CPU正在處理某件事情時(shí), 單片機(jī)外部或內(nèi)部發(fā)生的某 一緊急事件請(qǐng)求CPU立即去處 理,于是,CPU暫時(shí)中止當(dāng)前 的工作,轉(zhuǎn)去處理這個(gè)緊急 事件,待處理完畢后,再回 到原來(lái)被中止的地方,繼續(xù) 原來(lái)的工作。 中斷系統(tǒng) 能夠?qū)崿F(xiàn)中斷處理功能的部 件 中斷處理過(guò)程 中斷請(qǐng)求 中斷響應(yīng) 中斷服務(wù) 中斷返回 7 主程序 中斷請(qǐng)

5、求 響應(yīng)中斷請(qǐng)求 返回主程序 中斷服務(wù)程序 繼續(xù)執(zhí)行主程序 中斷源 引起中斷的原因,或者是 能發(fā)出中斷申請(qǐng)的來(lái)源 又被稱作“中斷請(qǐng)求源” 中斷請(qǐng)求 中斷源向CPU提出的處理 請(qǐng)求 外部中斷0和1(INT0、 INT1) 采集到低電平或者脈沖下降 沿時(shí),產(chǎn)生中斷請(qǐng)求。 INT0來(lái)自P3.2引腳 INT1來(lái)自P3.3引腳 定時(shí)/計(jì)數(shù)器0和1(T0、T1) 定時(shí)功能時(shí),計(jì)數(shù)脈沖來(lái)自 片內(nèi) 計(jì)數(shù)功能時(shí),計(jì)數(shù)脈沖來(lái)自 片外 T0來(lái)自P3.4引腳 T1來(lái)自P3.5引腳 計(jì)數(shù)值由8個(gè)1變成8個(gè)0時(shí), 產(chǎn)生中斷請(qǐng)求。 串行中斷 發(fā)送或接收完一個(gè)字節(jié)數(shù)據(jù) 時(shí),產(chǎn)生中斷請(qǐng)求 發(fā)送來(lái)自P3.0引腳 接收來(lái)自P3.1

6、引腳 8 MCS-51MCS-51的中斷源的中斷源 并行處理并行處理 CPUCPU可以與多臺(tái)外設(shè)并行工作,并分時(shí)與他們進(jìn)行信息可以與多臺(tái)外設(shè)并行工作,并分時(shí)與他們進(jìn)行信息 交換,提高了交換,提高了CPUCPU的工作效率。的工作效率。 實(shí)時(shí)控制實(shí)時(shí)控制 單片機(jī)應(yīng)用系統(tǒng)可能隨機(jī)請(qǐng)求單片機(jī)應(yīng)用系統(tǒng)可能隨機(jī)請(qǐng)求CPUCPU提供服務(wù)。有了中斷提供服務(wù)。有了中斷 系統(tǒng),系統(tǒng),CPUCPU就可以立即響應(yīng)并予以處理。就可以立即響應(yīng)并予以處理。 故障處理故障處理 單片機(jī)系統(tǒng)在工作時(shí)可能會(huì)出現(xiàn)一些突發(fā)故障,如電源單片機(jī)系統(tǒng)在工作時(shí)可能會(huì)出現(xiàn)一些突發(fā)故障,如電源 斷電,存儲(chǔ)器出錯(cuò),程序執(zhí)行錯(cuò)誤(如除數(shù)為斷電,存儲(chǔ)器

7、出錯(cuò),程序執(zhí)行錯(cuò)誤(如除數(shù)為0 0)等,一旦出)等,一旦出 現(xiàn)故障,現(xiàn)故障,CPUCPU就可及時(shí)轉(zhuǎn)去執(zhí)行故障處理程序,而不必停機(jī)。就可及時(shí)轉(zhuǎn)去執(zhí)行故障處理程序,而不必停機(jī)。 9 為實(shí)現(xiàn)中斷功能而配置的硬件和編寫(xiě)的軟件就是中斷為實(shí)現(xiàn)中斷功能而配置的硬件和編寫(xiě)的軟件就是中斷 系統(tǒng)。系統(tǒng)。 中斷功能由中斷系統(tǒng)來(lái)執(zhí)行。中斷功能由中斷系統(tǒng)來(lái)執(zhí)行。 10 11 0INT 1INT IT0=0 IT0=1 IE0 TF0 IE1 TF1 TI RI T0 T1 TX RX + ES ET1 EX1 ET0 EX0 1 0 PT0 1 0 PT1 1 0 PX1 1 0 PS 1 0 PX0 矢量 地址 自

8、然 優(yōu) 先 級(jí) 矢量 地址 自 然 優(yōu) 先 級(jí) 低 級(jí) 中 斷 請(qǐng) 求 PC 高 級(jí) 中 斷 請(qǐng) 求 PC IE IP IT1=0 IT1=1 硬件查詢 硬件查詢 源允許總允許優(yōu)先級(jí)中斷請(qǐng)求標(biāo)記 中斷觸發(fā)方式 中斷源 中斷請(qǐng)求中斷請(qǐng)求 中斷允許中斷允許中斷優(yōu)先級(jí)中斷優(yōu)先級(jí) 中斷響應(yīng)中斷響應(yīng) 8051中斷系統(tǒng)的結(jié)構(gòu) 5個(gè)中斷源、個(gè)中斷源、2個(gè)中斷優(yōu)先級(jí)個(gè)中斷優(yōu)先級(jí) 8051單片機(jī)有單片機(jī)有5個(gè)中斷源。見(jiàn)下表個(gè)中斷源。見(jiàn)下表 哪些哪些部件可以部件可以 向向CPU申請(qǐng)中申請(qǐng)中 斷呢?斷呢? 中斷源中斷源 說(shuō)明說(shuō)明 外部中斷外部中斷 從從P3.2引腳引入的外部中斷申請(qǐng)引腳引入的外部中斷申請(qǐng) 定時(shí)器定時(shí)

9、器T0中斷中斷 定時(shí)器定時(shí)器T0溢出時(shí)引發(fā)中斷申請(qǐng)溢出時(shí)引發(fā)中斷申請(qǐng) 外部中斷外部中斷從從P3.3引腳引入的外部中斷申請(qǐng)引腳引入的外部中斷申請(qǐng) 定時(shí)器定時(shí)器T1中斷中斷定時(shí)器定時(shí)器T1溢出時(shí)引發(fā)中斷申請(qǐng)溢出時(shí)引發(fā)中斷申請(qǐng) 串行口中斷串行口中斷一次串行發(fā)送或接收完成后,發(fā)出中斷一次串行發(fā)送或接收完成后,發(fā)出中斷 申請(qǐng)申請(qǐng) 0INT 1INT 能夠向能夠向CPU發(fā)出中斷申請(qǐng)的部件稱為中斷源。發(fā)出中斷申請(qǐng)的部件稱為中斷源。 中斷允許寄存器中斷允許寄存器IE 中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IP 定時(shí)定時(shí)/計(jì)數(shù)器及外部中斷控制寄存器計(jì)數(shù)器及外部中斷控制寄存器TCON 串口控制寄存器串口控制寄存器SCO

10、N 單片機(jī)通過(guò)對(duì)單片機(jī)通過(guò)對(duì)4個(gè)特殊功能寄存器個(gè)特殊功能寄存器實(shí)施中斷控制:實(shí)施中斷控制: 13 觸發(fā)方式設(shè)置及中斷標(biāo)志觸發(fā)方式設(shè)置及中斷標(biāo)志 76543210 TCONTF1TR1TF0TR0IE1IT1IE0IT0字節(jié)地址:字節(jié)地址:88H 外部中斷觸發(fā)方式位IT1、IT0(用ITx表示) 電平方式(ITx=0),INTx引腳低電平時(shí)IEx=1,響應(yīng)中斷后IEx不自 動(dòng)清0(INTx引腳狀態(tài))。 邊沿方式(ITx=1),INTx引腳負(fù)跳變時(shí)IEx=1,響應(yīng)中斷后IEx自動(dòng) 清0。 外部中斷標(biāo)志IE1、IE0(用IEx表示) 兩種觸發(fā)方式比較: 電平方式時(shí)電平方式時(shí), INTx低電平必須保持

11、到響應(yīng)時(shí),否則就會(huì)漏掉;在中斷低電平必須保持到響應(yīng)時(shí),否則就會(huì)漏掉;在中斷 服務(wù)結(jié)束前,服務(wù)結(jié)束前,INTx低電平必須撤除,否則中斷返回之后將再次產(chǎn)生中斷。低電平必須撤除,否則中斷返回之后將再次產(chǎn)生中斷。 例,例,8255的中斷請(qǐng)求線在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此以其去請(qǐng)求的中斷請(qǐng)求線在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此以其去請(qǐng)求 電平觸發(fā)方式的中斷比較方便。電平觸發(fā)方式的中斷比較方便。 邊沿方式時(shí),邊沿方式時(shí),采樣到有效下降沿后,在采樣到有效下降沿后,在IEx中將鎖存一個(gè)中將鎖存一個(gè)1。若。若CPU暫暫 時(shí)不能響應(yīng),申請(qǐng)標(biāo)志也不會(huì)丟失,直到響應(yīng)時(shí)才清時(shí)不能響應(yīng),申請(qǐng)標(biāo)志也不會(huì)丟失,直到響應(yīng)時(shí)才

12、清0。 例,例,ADC0809的轉(zhuǎn)換結(jié)束信號(hào)的轉(zhuǎn)換結(jié)束信號(hào)EOC為正脈沖,經(jīng)反相后就可以作為為正脈沖,經(jīng)反相后就可以作為 8051的的INTx信號(hào)信號(hào) 。 溢出中斷標(biāo)志溢出中斷標(biāo)志TF1、TF0(用(用TFx表示)表示) 溢出中斷請(qǐng)求標(biāo)志溢出中斷請(qǐng)求標(biāo)志TFx ,Tx啟動(dòng)后就開(kāi)始由初值進(jìn)行加啟動(dòng)后就開(kāi)始由初值進(jìn)行加1計(jì)數(shù),直至計(jì)數(shù),直至 最高位產(chǎn)生溢出使最高位產(chǎn)生溢出使TFx=1向向CPU請(qǐng)求中斷。請(qǐng)求中斷。CPU響應(yīng)中斷后響應(yīng)中斷后TFx自動(dòng)自動(dòng) 清清0。 SCONSCON的中斷標(biāo)志的中斷標(biāo)志 76543210 SCONTIRI字節(jié)地址:字節(jié)地址:98H RI:串口:串口接收接收中斷標(biāo)志,響

13、應(yīng)中斷時(shí)中斷標(biāo)志,響應(yīng)中斷時(shí)不能自動(dòng)清除不能自動(dòng)清除 TI:串口:串口發(fā)送發(fā)送中斷標(biāo)志,響應(yīng)中斷時(shí)中斷標(biāo)志,響應(yīng)中斷時(shí)不能自動(dòng)清除不能自動(dòng)清除 外部中斷INTi(i=0,1) 電平方式觸發(fā)中斷 ITi設(shè)置為0 CPU在每個(gè)機(jī)器周期的S5P2采 樣INTi引腳,若INTi引腳為低 電平時(shí),則置IEi為1,產(chǎn)生中 斷請(qǐng)求。 跳沿方式觸發(fā)中斷 ITi設(shè)置為1 加到INT0上的信號(hào)電平從高跳 變到低時(shí),觸發(fā)中斷 當(dāng)CPU響應(yīng)中斷后,IEi由硬件 自動(dòng)復(fù)位 定時(shí)/計(jì)數(shù)器中斷Ti(i=0,1) Ti產(chǎn)生溢出(計(jì)數(shù)值由8個(gè)1變成8 個(gè)0)時(shí),TFi由0變成1,向CPU發(fā) 出中斷請(qǐng)求。 中斷響應(yīng)后,TFi自動(dòng)

14、復(fù)位。 串行中斷 發(fā)送(TX) 發(fā)送完一個(gè)字節(jié)數(shù)據(jù)時(shí),TI由0置 1,向CPU發(fā)出中斷請(qǐng)求。 中斷響應(yīng)后,必須用指令復(fù)位TI。 接收(RX) 接收完一個(gè)字節(jié)數(shù)據(jù)時(shí),RI由0置 1,向CPU發(fā)出中斷請(qǐng)求。 中斷響應(yīng)后,必須用指令復(fù)位RI。 17 S1S2S3S4S5S6 P1 P2 P1 P2P1 P2 P1 P2P1 P2 P1 P2 18 位地址8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位符號(hào)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1 TF0:當(dāng)定時(shí) 當(dāng)定時(shí)/計(jì)數(shù)器產(chǎn)生溢出時(shí),由硬件置計(jì)數(shù)器產(chǎn)生溢出時(shí),由硬件置 “1”,并申請(qǐng)中斷。當(dāng)轉(zhuǎn)向中斷

15、服務(wù)時(shí),并申請(qǐng)中斷。當(dāng)轉(zhuǎn)向中斷服務(wù)時(shí), 再由硬件自動(dòng)清再由硬件自動(dòng)清“0”。 IE1 IE0:當(dāng) 當(dāng)CPU采樣到外部中斷請(qǐng)求時(shí),由硬件置采樣到外部中斷請(qǐng)求時(shí),由硬件置 “1”。當(dāng)轉(zhuǎn)向中斷服務(wù)時(shí),再由硬件自動(dòng)。當(dāng)轉(zhuǎn)向中斷服務(wù)時(shí),再由硬件自動(dòng) 清清“0”。 IT1 IT0:為 為1時(shí),脈沖觸發(fā)方式,下降沿有效時(shí),脈沖觸發(fā)方式,下降沿有效 為為0時(shí),電平觸發(fā)方式,低電平有效時(shí),電平觸發(fā)方式,低電平有效 位地址9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位符號(hào)SM0 SM1 SM2 REN TB8 RB8TIRI TI:當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)后,由硬件置 當(dāng)串行口發(fā)送完一幀串行

16、數(shù)據(jù)后,由硬件置“1”; 在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清“0” RI:當(dāng)串行口接收完一幀串行數(shù)據(jù)后,由硬件置 當(dāng)串行口接收完一幀串行數(shù)據(jù)后,由硬件置“1”; 在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清“0” 中斷請(qǐng)求所影響到的位地址 中斷允許控制中斷允許控制 中斷源的開(kāi)放和屏蔽由IE控制(1,開(kāi)放;0,禁止) 76543210 IEEAESET1EX1ET0EX0字節(jié)地址:字節(jié)地址:A8H EX0:外中斷0允許 ET0:T0中斷允許 EX1:外中斷1允許 ET1:T1中斷允許 ES :串口中斷允許 EA :CPU中斷允許 20 位地址AFH AE

17、H ADH ACH ABH AAH A9H A8H 位符號(hào)EA-ESET1 EX1 ET0 EX0 EA:中斷允許總控制位。中斷允許總控制位。0禁止,禁止,1允許。允許。 ES:串行中斷允許控制位。串行中斷允許控制位。0禁止,禁止,1允許。允許。 ET1: 定時(shí)計(jì)數(shù)器定時(shí)計(jì)數(shù)器1中斷允許控制位。中斷允許控制位。0禁止,禁止,1允許。允許。 EX1外部中斷外部中斷1允許控制位。允許控制位。0禁止,禁止,1允許。允許。 ET0定時(shí)計(jì)數(shù)器定時(shí)計(jì)數(shù)器0中斷允許控制位。中斷允許控制位。0禁止,禁止,1允許。允許。 EX0外部中斷外部中斷0允許控制位。允許控制位。0禁止,禁止,1允許。允許。 中斷允許中斷

18、允許 21 【例】若允許片內(nèi)2個(gè)定時(shí)/計(jì)數(shù)器中斷,禁止其他中斷源 的中斷請(qǐng)求,試編寫(xiě)出設(shè)置IE的程序段。 CLR ES; ES=0,禁止串行口中斷 CLR EX0; EX0=0,禁止外部中斷0 CLR EX1; EX1=0,禁止外部中斷1 SETB ET0; ET0=1,允許定時(shí)/計(jì)數(shù)中斷0 SETB ET1; ET1=1,允許定時(shí)/計(jì)數(shù)中斷1 SETB EA; CPU開(kāi)中斷 (方法1) 用位操作指令 (方法2) 用字節(jié)操作指令 MOV IE,#10001010B IE 位地址AFH AEH ADH ACH ABH AAH A9H A8H 位符號(hào)EA-ESET1 EX1 ET0 EX0 100

19、01010 中斷優(yōu)先級(jí)控制 中斷優(yōu)先級(jí)由IP控制(1,高級(jí);0,低級(jí)) 76543210 IPPSPT1PX1PT0PX0字節(jié)地址:字節(jié)地址:B8H PX0:外中斷0優(yōu)先級(jí) PT0:T0中斷優(yōu)先級(jí) PX1:外中斷1優(yōu)先級(jí) PT1:T1中斷優(yōu)先級(jí) PS :串口中斷優(yōu)先級(jí) 同一優(yōu)先級(jí)的自然順序:同一優(yōu)先級(jí)的自然順序: 自高至低:自高至低:INT0、T0、INT1、T1、串口。、串口。 23 位地址BFH BEH BDH BCH BBH BAH B9H B8H 位符號(hào)-PSPT1 PX1 PT0 PX0 PX0: 外部中斷外部中斷0的優(yōu)先級(jí)設(shè)定位,的優(yōu)先級(jí)設(shè)定位,1為高,為高,0為低為低 PT0:

20、定時(shí)中斷定時(shí)中斷0的優(yōu)先級(jí)設(shè)定位,的優(yōu)先級(jí)設(shè)定位,1為高,為高,0為低為低 PX1: 外部中斷外部中斷1的優(yōu)先級(jí)設(shè)定位,的優(yōu)先級(jí)設(shè)定位,1為高,為高,0為低為低 PT1: 定時(shí)中斷定時(shí)中斷0的優(yōu)先級(jí)設(shè)定位,的優(yōu)先級(jí)設(shè)定位,1為高,為高,0為低為低 Ps:串行中斷的優(yōu)先級(jí)設(shè)定位,串行中斷的優(yōu)先級(jí)設(shè)定位,1為高,為高,0為低為低 中斷優(yōu)先級(jí)中斷優(yōu)先級(jí) 中斷優(yōu)先級(jí)遵循的原則 幾個(gè)中斷同時(shí)申請(qǐng),先響應(yīng)高級(jí)的中斷幾個(gè)中斷同時(shí)申請(qǐng),先響應(yīng)高級(jí)的中斷 正進(jìn)行的中斷服務(wù),同級(jí)或低級(jí)中斷不能對(duì)其中斷,正進(jìn)行的中斷服務(wù),同級(jí)或低級(jí)中斷不能對(duì)其中斷, 但可以被高級(jí)中斷所中斷。但可以被高級(jí)中斷所中斷。 為此,中斷系統(tǒng)

21、內(nèi)設(shè)有對(duì)應(yīng)高、低為此,中斷系統(tǒng)內(nèi)設(shè)有對(duì)應(yīng)高、低2個(gè)個(gè)優(yōu)先級(jí)狀態(tài)觸發(fā)器優(yōu)先級(jí)狀態(tài)觸發(fā)器 (用戶不能尋址)。(用戶不能尋址)。 狀態(tài)觸發(fā)器的復(fù)位由中斷返回指令狀態(tài)觸發(fā)器的復(fù)位由中斷返回指令RETI控制。控制。 25 【例】設(shè)置IP寄存器的初始值,使得MCS-51系統(tǒng)的2個(gè)外 中斷請(qǐng)求為高優(yōu)先級(jí),其他中斷請(qǐng)求為低優(yōu)先級(jí) SETB PX0; PX0=1,外中斷0為高優(yōu)先級(jí) SETB PX1; PX1=1,外中斷1為高優(yōu)先級(jí) CLR PT0; PT0=0,定時(shí)中斷0為低優(yōu)先 級(jí) CLR PT1; PT1=0,定時(shí)中斷1為低優(yōu)先 級(jí) CLR PS; PS=0,串行中斷為低優(yōu)先級(jí) (方法1) 用位操作指令

22、(方法2) 用字節(jié)操作指令 MOV IP,#00000101B 位地址BFH BEH BDH BCH BBH BAH B9H B8H 位符號(hào)-PSPT1 PX1 PT0 PX0 00000101 IP 6.2.1 6.2.1 中斷響應(yīng)條件和時(shí)間中斷響應(yīng)條件和時(shí)間 中斷響應(yīng)條件中斷響應(yīng)條件 CPU開(kāi)中斷開(kāi)中斷 中斷源發(fā)出中斷請(qǐng)求中斷源發(fā)出中斷請(qǐng)求 中斷源的中斷允許位中斷源的中斷允許位 為為1 無(wú)同級(jí)或更高級(jí)中斷無(wú)同級(jí)或更高級(jí)中斷 正在被服務(wù)正在被服務(wù) 中斷響應(yīng)的過(guò)程中斷響應(yīng)的過(guò)程 由硬件根據(jù)中斷源的由硬件根據(jù)中斷源的 類(lèi)型自動(dòng)生成一條長(zhǎng)調(diào)類(lèi)型自動(dòng)生成一條長(zhǎng)調(diào) 用指令用指令LCALL addr16

23、LCALL addr16。 Addr16Addr16為程序存儲(chǔ)器為程序存儲(chǔ)器 中相應(yīng)的中斷入口地中相應(yīng)的中斷入口地 址址 CPUCPU執(zhí)行執(zhí)行LCALL addr16LCALL addr16 (1) (1) 將將PCPC的內(nèi)容壓入的內(nèi)容壓入 堆棧,以保護(hù)斷點(diǎn)堆棧,以保護(hù)斷點(diǎn) (2) (2) 將中斷入口地址將中斷入口地址 裝入裝入PCPC,使程序轉(zhuǎn)向,使程序轉(zhuǎn)向 響應(yīng)中斷請(qǐng)求的中斷響應(yīng)中斷請(qǐng)求的中斷 入口地址。入口地址。 27 中斷源入口地址 外部中斷00003H 定時(shí)/計(jì)數(shù)器T0 000BH 外部中斷10013H 定時(shí)/計(jì)數(shù)器T1 001BH 串行中斷0023H 兩個(gè)中斷入口間隔只有8個(gè)字節(jié),

24、 一般情況下難以安排下一個(gè)完 整的中斷服務(wù)程序,通常只是 在中斷入口地址處放置一條無(wú) 條件轉(zhuǎn)移指令,使程序執(zhí)行轉(zhuǎn) 向在其他地址存放的中斷服務(wù) 程序。 中斷響應(yīng)被封鎖的三種情況中斷響應(yīng)被封鎖的三種情況 CPUCPU正在處理同級(jí)的或更高優(yōu)先級(jí)的中斷。正在處理同級(jí)的或更高優(yōu)先級(jí)的中斷。 一個(gè)中斷被響應(yīng)時(shí),要把中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器設(shè)置一個(gè)中斷被響應(yīng)時(shí),要把中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器設(shè)置 為為“1 1”( (該觸發(fā)器指出該觸發(fā)器指出CPUCPU處理的中斷優(yōu)先級(jí)別處理的中斷優(yōu)先級(jí)別) ),從,從 而封鎖低級(jí)中斷和同級(jí)中斷請(qǐng)求。而封鎖低級(jí)中斷和同級(jí)中斷請(qǐng)求。 查詢到中斷請(qǐng)求的機(jī)器周期不是當(dāng)前正在執(zhí)查詢到中斷請(qǐng)求的

25、機(jī)器周期不是當(dāng)前正在執(zhí) 行指令的最后一個(gè)機(jī)器周期。行指令的最后一個(gè)機(jī)器周期。 只有當(dāng)前指令執(zhí)行完畢后,才能響應(yīng)中斷請(qǐng)求,以確只有當(dāng)前指令執(zhí)行完畢后,才能響應(yīng)中斷請(qǐng)求,以確 保當(dāng)前指令完整的執(zhí)行。保當(dāng)前指令完整的執(zhí)行。 正在執(zhí)行的指令是正在執(zhí)行的指令是RETIRETI或是訪問(wèn)或是訪問(wèn)IEIE或或IPIP的指的指 令。令。 MCS-51MCS-51中斷系統(tǒng)規(guī)定,在執(zhí)行完上述指令后,需要再中斷系統(tǒng)規(guī)定,在執(zhí)行完上述指令后,需要再 去執(zhí)行完一條指令,才能響應(yīng)新的中斷請(qǐng)求。去執(zhí)行完一條指令,才能響應(yīng)新的中斷請(qǐng)求。 28 中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間 中斷響應(yīng)至少需要中斷響應(yīng)至少需要3個(gè)完整的機(jī)器周期個(gè)完整的

26、機(jī)器周期(38個(gè))!個(gè))! 受阻時(shí)要附加受阻時(shí)要附加35個(gè)機(jī)器周期個(gè)機(jī)器周期(無(wú)同級(jí)或高級(jí)中斷正進(jìn)行無(wú)同級(jí)或高級(jí)中斷正進(jìn)行) 查詢周期不是當(dāng)前指令的最后機(jī)器周期查詢周期不是當(dāng)前指令的最后機(jī)器周期(如如MUL,+3) 查詢周期恰逢查詢周期恰逢RETI類(lèi)指令類(lèi)指令(且后跟且后跟MUL指令指令+5) 6.2.2 6.2.2 中斷響應(yīng)過(guò)程中斷響應(yīng)過(guò)程 CPU響應(yīng)中斷過(guò)程響應(yīng)中斷過(guò)程 將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置1(阻斷后來(lái)同級(jí)或低級(jí)中斷阻斷后來(lái)同級(jí)或低級(jí)中斷 ) 執(zhí)行硬件執(zhí)行硬件LCALL指令(指令(PC入棧,中斷服務(wù)程序入口址送入棧,中斷服務(wù)程序入口址送PC) 執(zhí)行中斷服務(wù)程序執(zhí)

27、行中斷服務(wù)程序 編寫(xiě)中斷服務(wù)程序注意編寫(xiě)中斷服務(wù)程序注意 中斷服務(wù)程序入口存放指令中斷服務(wù)程序入口存放指令LJMP或或AJMP 現(xiàn)場(chǎng)保護(hù)與現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)保護(hù)與現(xiàn)場(chǎng)恢復(fù) 6.2.3 6.2.3 中斷返回中斷返回 中斷服務(wù)程序最后指令必須是中斷服務(wù)程序最后指令必須是RETI,其功能:,其功能: 將斷點(diǎn)從堆棧彈送將斷點(diǎn)從堆棧彈送PC,CPU從原斷點(diǎn)繼續(xù)執(zhí)行從原斷點(diǎn)繼續(xù)執(zhí)行 將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器清將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器清0,恢復(fù)原來(lái)工作狀態(tài),恢復(fù)原來(lái)工作狀態(tài) 注意注意 不能用不能用RET代替代替RETI 中斷服務(wù)程序中中斷服務(wù)程序中PUSH和和POP必須成對(duì)使用必須成對(duì)使用 6.2.4 6.2.4 中

28、斷請(qǐng)求的清除中斷請(qǐng)求的清除 CPU響應(yīng)某中斷后,在中斷返回前,中斷請(qǐng)求應(yīng)被撤除,否響應(yīng)某中斷后,在中斷返回前,中斷請(qǐng)求應(yīng)被撤除,否 則會(huì)引起另一次中斷。則會(huì)引起另一次中斷。 1、定時(shí)器、定時(shí)器0和定時(shí)器和定時(shí)器1中斷中斷 CPU在響應(yīng)中斷后用在響應(yīng)中斷后用硬件硬件自動(dòng)清除有關(guān)的中斷請(qǐng)求標(biāo)志自動(dòng)清除有關(guān)的中斷請(qǐng)求標(biāo)志TF0 或或TF1。 2、邊沿觸發(fā)的外部中斷、邊沿觸發(fā)的外部中斷 在硬件在硬件CPU在響應(yīng)中斷后用在響應(yīng)中斷后用硬件硬件自動(dòng)清除有關(guān)的中斷請(qǐng)求標(biāo)自動(dòng)清除有關(guān)的中斷請(qǐng)求標(biāo) 志志IE0或或IE1。 3、電平觸發(fā)的外部中斷、電平觸發(fā)的外部中斷 在硬件上在硬件上CPU對(duì)對(duì)/INT0、INT1

29、沒(méi)有控制,因此必須另外采取沒(méi)有控制,因此必須另外采取 措施措施加外部加外部硬件控制硬件控制和和軟件編程軟件編程。 4、串行口中斷、串行口中斷 CPU在響應(yīng)中斷后沒(méi)有用硬件自動(dòng)清除中斷請(qǐng)求標(biāo)志在響應(yīng)中斷后沒(méi)有用硬件自動(dòng)清除中斷請(qǐng)求標(biāo)志RI和和TI, 必須在中斷服務(wù)程序中用必須在中斷服務(wù)程序中用軟件軟件清除之,以撤除中斷請(qǐng)求。清除之,以撤除中斷請(qǐng)求。 32 33 ORG 0000H;程序開(kāi)始 LJMP START;= LJMP 1000H ORG 0003H;外部中斷外部中斷0入口地址入口地址 LJMP INT ORG 1000H;主程序入口 START: MOV P1, #0AAH ; 0AAH

30、=10101010B SETB EX0;允許外部中斷0 SETB PX0;設(shè)置外部中斷0為高優(yōu)先級(jí) SETB IT0;設(shè)置外部中斷0為負(fù)跳變觸發(fā) SETB EA;開(kāi)中斷 SJMP $;原地跳轉(zhuǎn),等待中斷 INT:CLR EA;關(guān)中斷 PUSH PSW;現(xiàn)場(chǎng)保護(hù) PUSH ACC; SETB EA;開(kāi)中斷 CPL A;對(duì)累加器A按位取反 MOV P1, A;累加器A值送P1端口 CLR EA;關(guān)中斷 POP ACC;現(xiàn)場(chǎng)保護(hù) POP PSW; SETB EA;開(kāi)中斷 RETI; 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 中斷服務(wù)程序的基本流程 34 為了防止此時(shí)有高

31、一級(jí)的中斷進(jìn)入,以免現(xiàn)場(chǎng)保 護(hù)的執(zhí)行過(guò)程被中斷。 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 35 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 所謂現(xiàn)場(chǎng)是指中斷時(shí)刻單片機(jī)中某些寄存器和存 儲(chǔ)器單元中的數(shù)據(jù)或狀態(tài)。為了不讓中斷服務(wù)程 序的執(zhí)行破壞這數(shù)據(jù)或狀態(tài),以免中斷返回后影 響主程序的運(yùn)行,需要將他們送入堆棧保存起來(lái)。 36 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 為了允許有更高級(jí)的中斷進(jìn)入。 這樣一來(lái),除了現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)外,中斷處 理的過(guò)程仍允許中斷嵌套的功能 37 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理

32、 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 為了防止此時(shí)有高一級(jí)的中斷進(jìn)入,以免現(xiàn)場(chǎng)恢 復(fù)的執(zhí)行過(guò)程被中斷。 38 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 中斷處理結(jié)束后,在返回主程序前,把保存的現(xiàn) 場(chǎng)的內(nèi)容從堆棧中彈出,以恢復(fù)那些寄存器和存 儲(chǔ)單元中的原有內(nèi)容 39 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 為了允許有更高級(jí)的中斷進(jìn)入。 現(xiàn)場(chǎng)恢復(fù)后,仍允許中斷嵌套的功能。 40 關(guān)中斷 現(xiàn)場(chǎng)保護(hù) 開(kāi)中斷 中斷處理 關(guān)中斷 現(xiàn)場(chǎng)恢復(fù) 開(kāi)中斷 中斷返回 必須是返回指令RETI。 CPU執(zhí)行完這條指令后,把響應(yīng)中斷時(shí)所置“1” 的優(yōu)先級(jí)狀態(tài)觸發(fā)器清“0”,然后從堆棧中彈出 棧頂上的兩個(gè)字節(jié)的斷點(diǎn)地址送到程序計(jì)數(shù)器PC, 彈出的第一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論