版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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)( (* *) )第第8 8章章: MCS-: MCS-
2、5151的串行口的串行口( (* *) )第第9 9章章: : 系統(tǒng)擴(kuò)系統(tǒng)擴(kuò)展技術(shù)展技術(shù)第第1010章章: : 模擬模擬接接口口第第1111章章: : 人機(jī)交人機(jī)交互接口互接口課程內(nèi)容2 8051單片機(jī)的中斷系統(tǒng) 8051單片機(jī)的中斷處理過程 8051單片機(jī)的中斷服務(wù)程序設(shè)計(jì) 8051的多中斷源系統(tǒng)設(shè)計(jì)本講主要內(nèi)容3某人看書某人看書某人正在處理一件事某人正在處理一件事A手機(jī)鈴響手機(jī)鈴響出現(xiàn)另一件須立即解決的事出現(xiàn)另一件須立即解決的事B暫??磿鴷和?磿兄怪兄笰 書中作記號(hào)書中作記號(hào)記錄斷點(diǎn),便于接續(xù)記錄斷點(diǎn),便于接續(xù) 電話談話電話談話處理處理B繼續(xù)看書繼續(xù)看書繼續(xù)繼續(xù)A的工作的工作保護(hù)斷點(diǎn)中斷
3、響應(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ù)看書,這樣效率最高!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)前工作暫時(shí)中斷當(dāng)前工作A A,轉(zhuǎn)去處理事件,轉(zhuǎn)去處理事件B B 事件事件B B處理完后,回到工作處理
4、完后,回到工作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è)緊急事件,待處理完畢后,再回到原來被中止的地方,繼續(xù)原來的工作。中斷系統(tǒng) 能夠?qū)崿F(xiàn)中斷處理功能的部件中斷處理過程 中斷請(qǐng)求 中斷響應(yīng) 中斷服務(wù) 中斷返回7主程序中斷請(qǐng)求響應(yīng)中斷請(qǐng)求返回主程序中斷服務(wù)程序繼續(xù)執(zhí)行主程序中斷源 引起中斷的原因,或者是能發(fā)出中斷申請(qǐng)的來源 又被稱作“中斷請(qǐng)求源”中斷請(qǐng)求
5、 中斷源向CPU提出的處理請(qǐng)求外部中斷0和1(INT0、INT1) 采集到低電平或者脈沖下降沿時(shí),產(chǎn)生中斷請(qǐng)求。 INT0來自P3.2引腳 INT1來自P3.3引腳定時(shí)/計(jì)數(shù)器0和1(T0、T1) 定時(shí)功能時(shí),計(jì)數(shù)脈沖來自片內(nèi) 計(jì)數(shù)功能時(shí),計(jì)數(shù)脈沖來自片外 T0來自P3.4引腳 T1來自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ā)送來自P3.0引腳 接收來自P3.1引腳8MCS-51MCS-51的中斷源的中斷源并行處理并行處理 CPUCPU可以與多臺(tái)外設(shè)并行工作,并分時(shí)與他們進(jìn)行信息可以與多臺(tái)外設(shè)并行工作,并分時(shí)與他們進(jìn)行信息交
6、換,提高了交換,提高了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ǔ)器出錯(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)中
7、斷功能而配置的硬件和編寫的軟件就是中斷為實(shí)現(xiàn)中斷功能而配置的硬件和編寫的軟件就是中斷系統(tǒng)。系統(tǒng)。中斷功能由中斷系統(tǒng)來執(zhí)行。中斷功能由中斷系統(tǒng)來執(zhí)行。10110INT1INTIT0=0IT0=1IE0TF0IE1TF1TIRIT0T1TXRX+ESET1EX1ET0EX010PT010PT110PX110PS10PX0矢量地址自然優(yōu)先級(jí)矢量地址自然優(yōu)先級(jí)低級(jí)中斷請(qǐng)求PC高級(jí)中斷請(qǐng)求PC IE IPIT1=0IT1=1硬件查詢硬件查詢?cè)丛试S總允許優(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è)
8、中斷優(yōu)先級(jí)個(gè)中斷優(yōu)先級(jí)8051單片機(jī)有單片機(jī)有5個(gè)中斷源。見下表個(gè)中斷源。見下表 哪些哪些部件可以部件可以向向CPU申請(qǐng)中申請(qǐng)中斷呢?斷呢?中斷源中斷源 說明說明 外部中斷外部中斷 從從P3.2引腳引入的外部中斷申請(qǐng)引腳引入的外部中斷申請(qǐng)定時(shí)器定時(shí)器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)0INT1INT能夠向能夠向CPU發(fā)出中
9、斷申請(qǐng)的部件稱為中斷源。發(fā)出中斷申請(qǐng)的部件稱為中斷源。中斷允許寄存器中斷允許寄存器IE中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IP定時(shí)定時(shí)/計(jì)數(shù)器及外部中斷控制寄存器計(jì)數(shù)器及外部中斷控制寄存器TCON串口控制寄存器串口控制寄存器SCON 單片機(jī)通過對(duì)單片機(jī)通過對(duì)4個(gè)特殊功能寄存器個(gè)特殊功能寄存器實(shí)施中斷控制:實(shí)施中斷控制:13 觸發(fā)方式設(shè)置及中斷標(biāo)志觸發(fā)方式設(shè)置及中斷標(biāo)志 76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0字節(jié)地址:字節(jié)地址:88H外部中斷觸發(fā)方式位IT1、IT0(用ITx表示) 電平方式(ITx=0),INTx引腳低電平時(shí)IEx=1,響應(yīng)中斷后IEx不自動(dòng)清0(
10、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低電平必須保持到響應(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ā)方式的中斷比較方便。邊
11、沿方式時(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í)才清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)后就開始由初值進(jìn)行加啟動(dòng)后就開始由初值進(jìn)行加1計(jì)數(shù),直至計(jì)數(shù),直至最高位產(chǎn)生溢出使最高位產(chǎn)生溢出使TFx=1向向CPU請(qǐng)求中
12、斷。請(qǐng)求中斷。CPU響應(yīng)中斷后響應(yīng)中斷后TFx自動(dòng)自動(dòng)清清0。 SCONSCON的中斷標(biāo)志的中斷標(biāo)志76543210SCONTIRI字節(jié)地址:字節(jié)地址:98HRI:串口:串口接收接收中斷標(biāo)志,響應(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)CP
13、U響應(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)復(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。17S1S2S3S4S5S6P1 P2 P1 P2P1 P2 P1 P2P1 P2 P1 P218位地址8FH 8EH 8DH 8CH 8BH 8AH 89H 88H位符號(hào)TF1 TR1 TF
14、0 TR0 IE1 IT1 IE0 IT0TF1 TF0:當(dāng)定時(shí)當(dāng)定時(shí)/計(jì)數(shù)器產(chǎn)生溢出時(shí),由硬件置計(jì)數(shù)器產(chǎn)生溢出時(shí),由硬件置“1”,并申請(qǐng)中斷。當(dāng)轉(zhuǎn)向中斷服務(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 9
15、8H位符號(hào)SM0 SM1 SM2 REN TB8 RB8TIRITI:當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)后,由硬件置當(dāng)串行口發(fā)送完一幀串行數(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)求所影響到的位地址 中斷允許控制中斷允許控制中斷源的開放和屏蔽由IE控制(1,開放;0,禁止) 76543210IEEAESET1EX1ET0EX0字節(jié)地址:字節(jié)地址:A8H EX0:外中斷0允許 ET0:T0中斷允許
16、 EX1:外中斷1允許 ET1:T1中斷允許 ES :串口中斷允許 EA :CPU中斷允許 20位地址AFH AEH ADH ACH ABH AAH A9H A8H位符號(hào)EA-ESET1 EX1 ET0 EX0EA:中斷允許總控制位。中斷允許總控制位。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允
17、許。允許。EX0外部中斷外部中斷0允許控制位。允許控制位。0禁止,禁止,1允許。允許。中斷允許中斷允許21【例】若允許片內(nèi)2個(gè)定時(shí)/計(jì)數(shù)器中斷,禁止其他中斷源的中斷請(qǐng)求,試編寫出設(shè)置IE的程序段。CLR ES; ES=0,禁止串行口中斷CLR EX0; EX0=0,禁止外部中斷0CLR EX1; EX1=0,禁止外部中斷1SETB ET0; ET0=1,允許定時(shí)/計(jì)數(shù)中斷0SETB ET1; ET1=1,允許定時(shí)/計(jì)數(shù)中斷0SETB EA; CPU開中斷(方法1) 用位操作指令(方法2) 用字節(jié)操作指令MOV IE,#10001010BIE位地址AFH AEH ADH ACH ABH AAH
18、A9H A8H位符號(hào)EA-ESET1 EX1 ET0 EX010001010 中斷優(yōu)先級(jí)控制中斷優(yōu)先級(jí)由IP控制(1,高級(jí);0,低級(jí)) 76543210IPPSPT1PX1PT0PX0字節(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 PX0PX0: 外部中斷外部中斷0的優(yōu)先級(jí)設(shè)定位,
19、的優(yōu)先級(jí)設(shè)定位,1為高,為高,0為低為低PT0: 定時(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為低為低PT0: 定時(shí)中斷定時(shí)中斷0的優(yōu)先級(jí)設(shè)定位,的優(yōu)先級(jí)設(shè)定位,1為高,為高,0為低為低PX:串行中斷的優(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í)中斷所中斷。但
20、可以被高級(jí)中斷所中斷。 為此,中斷系統(tǒng)內(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)
21、用位操作指令(方法2) 用字節(jié)操作指令MOV IP,#00000101B位地址BFH BEH BDH BCH BBH BAH B9H B8H位符號(hào)-PSPT1 PX1 PT0 PX000000101IP6.2.1 6.2.1 中斷響應(yīng)條件和時(shí)間中斷響應(yīng)條件和時(shí)間 中斷響應(yīng)條件中斷響應(yīng)條件CPU開中斷開中斷中斷源發(fā)出中斷請(qǐng)求中斷源發(fā)出中斷請(qǐng)求中斷源的中斷允許位中斷源的中斷允許位為為1無同級(jí)或更高級(jí)中斷無同級(jí)或更高級(jí)中斷正在被服務(wù)正在被服務(wù)中斷響應(yīng)的過程中斷響應(yīng)的過程 由硬件根據(jù)中斷源的由硬件根據(jù)中斷源的類型自動(dòng)生成一條長(zhǎng)調(diào)類型自動(dòng)生成一條長(zhǎng)調(diào)用指令用指令LCALL addr16LCALL add
22、r16。 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é),一般情況下難以安排下一個(gè)完整的中斷服務(wù)程序,通
23、常只是在中斷入口地址處放置一條無條件轉(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)求的機(jī)器周期不是當(dāng)前正在執(zhí)行指令的最后一個(gè)機(jī)器周期。行指令的最后一個(gè)
24、機(jī)器周期。 只有當(dāng)前指令執(zhí)行完畢后,才能響應(yīng)中斷請(qǐng)求,以確只有當(dāng)前指令執(zhí)行完畢后,才能響應(yīng)中斷請(qǐng)求,以確保當(dāng)前指令完整的執(zhí)行。保當(dāng)前指令完整的執(zhí)行。 正在執(zhí)行的指令是正在執(zhí)行的指令是RETIRETI或是訪問或是訪問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è)完整的機(jī)器周期(38個(gè))!個(gè))!受阻時(shí)要附加受阻時(shí)要附加35個(gè)機(jī)器周期個(gè)機(jī)器周期(
25、無同級(jí)或高級(jí)中斷正進(jìn)行無同級(jí)或高級(jí)中斷正進(jìn)行) 查詢周期不是當(dāng)前指令的最后機(jī)器周期查詢周期不是當(dāng)前指令的最后機(jī)器周期(如如MUL,+3)查詢周期恰逢查詢周期恰逢RETI類指令類指令(且后跟且后跟MUL指令指令+5)6.2.2 6.2.2 中斷響應(yīng)過程中斷響應(yīng)過程 CPU響應(yīng)中斷過程響應(yīng)中斷過程將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置1(阻斷后來同級(jí)或低級(jí)中斷阻斷后來同級(jí)或低級(jí)中斷 )執(zhí)行硬件執(zhí)行硬件LCALL指令(指令(PC入棧,中斷服務(wù)程序入口址送入棧,中斷服務(wù)程序入口址送PC)執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序 編寫中斷服務(wù)程序注意編寫中斷服務(wù)程序注意中斷服務(wù)程序入口存放指令中斷服務(wù)
26、程序入口存放指令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ù)原來工作狀態(tài),恢復(fù)原來工作狀態(tài) 注意注意不能用不能用RET代替代替RETI 中斷服務(wù)程序中中斷服務(wù)程序中PUSH和和POP必須成對(duì)使用必須成對(duì)使用6.2.4 6.2.4 中斷請(qǐng)求的清除中斷請(qǐng)求的清除 CPU響應(yīng)某中斷后,在中斷返回前,中斷請(qǐng)求應(yīng)被撤除,否響應(yīng)某中斷后,在
27、中斷返回前,中斷請(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沒有控制,因此必須另外采取沒有控制,因此必須另外采取措施措施加外部加外部硬件控制硬件控制和和軟件編程軟件編程。
28、4、串行口中斷、串行口中斷 CPU在響應(yīng)中斷后沒有用硬件自動(dòng)清除中斷請(qǐng)求標(biāo)志在響應(yīng)中斷后沒有用硬件自動(dòng)清除中斷請(qǐng)求標(biāo)志RI和和TI,必須在中斷服務(wù)程序中用必須在中斷服務(wù)程序中用軟件軟件清除之,以撤除中斷請(qǐng)求。清除之,以撤除中斷請(qǐng)求。3233ORG 0000H;程序開始LJMP START;= LJMP 1000HORG 0003H;外部中斷外部中斷0入口地址入口地址LJMP INTORG 1000H;主程序入口START: MOV P1, #0AAH; 0AAH=10101010BSETB EX0;允許外部中斷0SETB PX0;設(shè)置外部中斷0為高優(yōu)先級(jí)SETB IT0;設(shè)置外部中斷0為負(fù)跳變
29、觸發(fā)SETB EA;開中斷SJMP $;原地跳轉(zhuǎn),等待中斷INT:CLR EA;關(guān)中斷PUSH PSW;現(xiàn)場(chǎng)保護(hù)PUSH ACC;SETB EA;開中斷CPL A;對(duì)累加器A按位取反MOV P1, A;累加器A值送P1端口CLR EA;關(guān)中斷POP ACC;現(xiàn)場(chǎng)保護(hù)POP PSW;SETB EA;開中斷RETI;關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回中斷服務(wù)程序的基本流程34為了防止此時(shí)有高一級(jí)的中斷進(jìn)入,以免現(xiàn)場(chǎng)保護(hù)的執(zhí)行過程被中斷。關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回35關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回所謂現(xiàn)場(chǎng)是指中斷時(shí)刻單片機(jī)
30、中某些寄存器和存儲(chǔ)器單元中的數(shù)據(jù)或狀態(tài)。為了不讓中斷服務(wù)程序的執(zhí)行破壞這數(shù)據(jù)或狀態(tài),以免中斷返回后影響主程序的運(yùn)行,需要將他們送入堆棧保存起來。36關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回為了允許有更高級(jí)的中斷進(jìn)入。這樣一來,除了現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)外,中斷處理的過程仍允許中斷嵌套的功能37關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回為了防止此時(shí)有高一級(jí)的中斷進(jìn)入,以免現(xiàn)場(chǎng)恢復(fù)的執(zhí)行過程被中斷。38關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回中斷處理結(jié)束后,在返回主程序前,把保存的現(xiàn)場(chǎng)的內(nèi)容從堆棧中彈出,以恢復(fù)那些寄存器和存儲(chǔ)單元中的原有內(nèi)容39關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回為了允許有更高級(jí)的中斷進(jìn)入?,F(xiàn)場(chǎng)恢復(fù)后,仍允許中斷嵌套的功能。40關(guān)中斷現(xiàn)場(chǎng)保護(hù)開中斷中斷處理關(guān)中斷現(xiàn)場(chǎng)恢復(fù)開中斷中斷返回必須是返回指令RETI。CPU執(zhí)行完這條指令后,把響應(yīng)中斷時(shí)所置“1”的優(yōu)先級(jí)狀態(tài)觸發(fā)器清“0”,然后從堆棧中彈出棧頂上的兩個(gè)字節(jié)的斷點(diǎn)地址送到程序計(jì)數(shù)器PC,彈出的第一個(gè)字節(jié)送入PCH,第二個(gè)字節(jié)送入PCL,CPU從斷點(diǎn)處重新執(zhí)行被中斷的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤廠入股合同范例
- 售賣羊肉分割合同范例
- 寧夏清洗空調(diào)合同范例
- 定制家具簽單合同范例
- 物流車輛托管合同范例
- 玩具代理代銷合同范例
- 2025年三明如何考貨運(yùn)從業(yè)資格證
- 催乳師合同范例
- 2025年本溪貨運(yùn)資格證試題及答案
- 冷餐冰箱租賃合同范例
- GB/T 3217-1992永磁(硬磁)材料磁性試驗(yàn)方法
- GB/T 24531-2009高爐和直接還原用鐵礦石轉(zhuǎn)鼓和耐磨指數(shù)的測(cè)定
- 【原創(chuàng)課件】中班音樂游戲:《老鼠今天真快樂》PPT
- GB 2758-2012食品安全國(guó)家標(biāo)準(zhǔn)發(fā)酵酒及其配制酒
- 高考考前心理、復(fù)習(xí)指導(dǎo)-調(diào)整心態(tài)、積極備考
- 第三單元教學(xué)設(shè)計(jì)及實(shí)踐 課件 統(tǒng)編版高中語(yǔ)文選擇性必修中冊(cè)
- 可愛的四川精編版課件
- 鴻升聯(lián)合試運(yùn)轉(zhuǎn)報(bào)告
- 泌尿外科醫(yī)療質(zhì)量控制指標(biāo)(2022版)
- 分布式光伏電站培訓(xùn)課件
- 畢業(yè)設(shè)計(jì) 鋅電解車間的工藝流程和生產(chǎn)方法
評(píng)論
0/150
提交評(píng)論