




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用1、中斷的基本概念,中斷系統(tǒng)結(jié)構(gòu),中斷響應(yīng)過(guò)程,、中斷的基本概念,中斷系統(tǒng)結(jié)構(gòu),中斷響應(yīng)過(guò)程,中斷初始化程序及中斷服務(wù)程序的編寫(xiě);中斷初始化程序及中斷服務(wù)程序的編寫(xiě); 2、定時(shí)、定時(shí)/計(jì)數(shù)器結(jié)構(gòu)和工作原理,定時(shí)計(jì)數(shù)器結(jié)構(gòu)和工作原理,定時(shí)/計(jì)數(shù)器初始計(jì)數(shù)器初始化編程?;幊?。5.1 中斷系統(tǒng)中斷系統(tǒng)5.2 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器25.1 中斷系統(tǒng)中斷系統(tǒng)一、中斷的基本概念一、中斷的基本概念同學(xué)提問(wèn)教師講課教師答疑教師講課中斷示意圖1、日常生活中斷的例子、日常生活中斷的例子教師講課教師講課過(guò)程過(guò)程中,同學(xué)遇有疑問(wèn),中,同學(xué)遇有疑問(wèn),隨時(shí)向老師隨時(shí)向老師提問(wèn)提問(wèn),教
2、師終止當(dāng)前的講教師終止當(dāng)前的講課,課,解答解答學(xué)生疑問(wèn)學(xué)生疑問(wèn)后再后再繼續(xù)之前的講繼續(xù)之前的講課課。3中斷申請(qǐng)主程序中斷服務(wù)程序返回中斷示意圖2、計(jì)算機(jī)的中斷概念、計(jì)算機(jī)的中斷概念中斷中斷是指由于某種隨機(jī)事件的是指由于某種隨機(jī)事件的發(fā)生,計(jì)算機(jī)暫?,F(xiàn)行程序的運(yùn)發(fā)生,計(jì)算機(jī)暫?,F(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序,以處理行,轉(zhuǎn)去執(zhí)行另一程序,以處理發(fā)生的事件,處理完畢后又自動(dòng)發(fā)生的事件,處理完畢后又自動(dòng)返回原來(lái)的程序繼續(xù)運(yùn)行。返回原來(lái)的程序繼續(xù)運(yùn)行。 能引起中斷的事件稱(chēng)為能引起中斷的事件稱(chēng)為中斷源中斷源。 CPU現(xiàn)行運(yùn)行的程序稱(chēng)為現(xiàn)行運(yùn)行的程序稱(chēng)為主程主程序序。 處理隨機(jī)事件的程序稱(chēng)為處理隨機(jī)事件的
3、程序稱(chēng)為中斷中斷服務(wù)子程序服務(wù)子程序。43、中斷技術(shù)的優(yōu)點(diǎn)、中斷技術(shù)的優(yōu)點(diǎn) 1)分時(shí)操作分時(shí)操作。CPU可以分時(shí)為多個(gè)可以分時(shí)為多個(gè)I/O設(shè)備服務(wù),設(shè)備服務(wù),提高了計(jì)算機(jī)的利用率;提高了計(jì)算機(jī)的利用率;2)實(shí)時(shí)響應(yīng)實(shí)時(shí)響應(yīng)。CPU能夠及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事能夠及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時(shí)性大大增強(qiáng);件,系統(tǒng)的實(shí)時(shí)性大大增強(qiáng); 3)可靠性高可靠性高。CPU具有處理設(shè)備故障及掉電等突發(fā)具有處理設(shè)備故障及掉電等突發(fā)性事件的能力,從而使系統(tǒng)可靠性提高。性事件的能力,從而使系統(tǒng)可靠性提高。5二、二、MCS-51的中斷系統(tǒng)的中斷系統(tǒng)1)中斷請(qǐng)求信號(hào)中斷請(qǐng)求信號(hào)的產(chǎn)生的產(chǎn)生 ( 中斷源如何申請(qǐng)中
4、斷?中斷源如何申請(qǐng)中斷?)2)CPU如何響應(yīng)如何響應(yīng)?(如何知道有中斷請(qǐng)求?是否有求如何知道有中斷請(qǐng)求?是否有求必應(yīng)?響應(yīng)后的處理過(guò)程?必應(yīng)?響應(yīng)后的處理過(guò)程?)3)中斷)中斷優(yōu)先權(quán)優(yōu)先權(quán)問(wèn)題;問(wèn)題; 4)中斷的)中斷的具體服務(wù)具體服務(wù); 5)中斷服務(wù)完畢,如何)中斷服務(wù)完畢,如何返回返回原程序。原程序。中斷系統(tǒng)應(yīng)解決如下問(wèn)題:中斷系統(tǒng)應(yīng)解決如下問(wèn)題:6二、二、MCS-51的中斷系統(tǒng)的中斷系統(tǒng)80C51的中斷系統(tǒng)有的中斷系統(tǒng)有5個(gè)中斷源個(gè)中斷源,2個(gè)優(yōu)先級(jí)個(gè)優(yōu)先級(jí),可,可實(shí)現(xiàn)實(shí)現(xiàn)二級(jí)中斷嵌套二級(jí)中斷嵌套 ,其結(jié)構(gòu)如下圖所示。,其結(jié)構(gòu)如下圖所示。 IE0TCONSCONINT0 IT0=0 IT
5、0=1INT1 IT1=0 IT1=1TF0 IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級(jí)自然優(yōu)先級(jí)矢量矢量地址地址高級(jí)中斷請(qǐng)求高級(jí)中斷請(qǐng)求自然優(yōu)先級(jí)自然優(yōu)先級(jí)矢量矢量地址地址低級(jí)中斷請(qǐng)求低級(jí)中斷請(qǐng)求PX0PT0PX1PT1PSIEIP中斷標(biāo)志位中斷源允許總允許中斷優(yōu)先級(jí)71、中斷源、中斷源1)INT0(P3.2)??捎伞?捎蒊T0(TCON.0)選擇其為低電選擇其為低電平有效還是下降沿有效。當(dāng)平有效還是下降沿有效。當(dāng)CPU檢測(cè)到檢測(cè)到P3.2引腳上引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE0(TCON.1)置置1,向,向CPU
6、申請(qǐng)中斷。申請(qǐng)中斷。2)INT1(P3.3)??捎???捎蒊T1(TCON.2)選擇其為低電選擇其為低電平有效還是下降沿有效。當(dāng)平有效還是下降沿有效。當(dāng)CPU檢測(cè)到檢測(cè)到P3.3引腳上引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE1(TCON.3)置置1,向,向CPU申請(qǐng)中斷。申請(qǐng)中斷。 5個(gè)中斷源包含個(gè)中斷源包含2個(gè)外部中斷個(gè)外部中斷和和3個(gè)內(nèi)部中斷個(gè)內(nèi)部中斷。2個(gè)外部中斷個(gè)外部中斷81、中斷源、中斷源3)TF0(TCON.5),),片片內(nèi)定時(shí)內(nèi)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0溢出溢出中斷請(qǐng)求標(biāo)中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)志。當(dāng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0發(fā)生溢出時(shí),置位發(fā)生溢出時(shí),置位TF0
7、,并向,并向CPU申請(qǐng)中斷。申請(qǐng)中斷。4)TF1(TCON.7),),片片內(nèi)定時(shí)內(nèi)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1溢出溢出中斷請(qǐng)求標(biāo)中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)志。當(dāng)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1發(fā)生溢出時(shí),置位發(fā)生溢出時(shí),置位TF1,并向,并向CPU申請(qǐng)中斷。申請(qǐng)中斷。 5)RI(SCON.0)或或TI(SCON.1),串行口中斷請(qǐng)求串行口中斷請(qǐng)求標(biāo)標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TI,向,向CPU申請(qǐng)中斷。申請(qǐng)中斷。 3個(gè)內(nèi)部中斷個(gè)內(nèi)部中斷92、中斷請(qǐng)求標(biāo)志、中斷請(qǐng)求標(biāo)志IT0:外部中斷:外部中斷0觸發(fā)
8、方式控制位。觸發(fā)方式控制位。 當(dāng)當(dāng)IT0=0時(shí),為時(shí),為電平觸發(fā)電平觸發(fā)方式。方式。 當(dāng)當(dāng)IT0=1時(shí),為時(shí),為邊沿觸發(fā)邊沿觸發(fā)方式(下降沿有效)。方式(下降沿有效)。 IE0:外部中斷:外部中斷0中斷請(qǐng)求標(biāo)志位。中斷請(qǐng)求標(biāo)志位。 IT1:外部中斷:外部中斷1觸發(fā)方式控制位。觸發(fā)方式控制位。 IE1:外部中斷:外部中斷1中斷請(qǐng)求標(biāo)志位。中斷請(qǐng)求標(biāo)志位。 TF0:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。溢出中斷請(qǐng)求標(biāo)志位。 TF1:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。溢出中斷請(qǐng)求標(biāo)志位。 1)TCON的中斷標(biāo)志的中斷標(biāo)志TCON(88H)TF1TR1TF0TR0IE1IT1I
9、E0IT010若外部中斷定義為電平觸發(fā)方式:若外部中斷定義為電平觸發(fā)方式:中斷標(biāo)志位中斷標(biāo)志位的狀態(tài)隨的狀態(tài)隨CPU在每個(gè)機(jī)器周期采樣到的外部中斷在每個(gè)機(jī)器周期采樣到的外部中斷輸入引腳的電平變化而變化,這樣能提高輸入引腳的電平變化而變化,這樣能提高CPU對(duì)對(duì)外部中斷請(qǐng)求的響應(yīng)速度。但外部中斷源外部中斷請(qǐng)求的響應(yīng)速度。但外部中斷源若有請(qǐng)求若有請(qǐng)求,必須把必須把有效的低電平保持到請(qǐng)求獲得響應(yīng)時(shí)為止有效的低電平保持到請(qǐng)求獲得響應(yīng)時(shí)為止,不然就會(huì)漏掉;而在不然就會(huì)漏掉;而在中斷服務(wù)程序結(jié)束之前中斷服務(wù)程序結(jié)束之前,中斷,中斷源又源又必須撤消其有效的低電平必須撤消其有效的低電平,否則中斷返回之后,否則中
10、斷返回之后將再次產(chǎn)生中斷。將再次產(chǎn)生中斷。11若外部中斷定義為邊沿觸發(fā)方式:若外部中斷定義為邊沿觸發(fā)方式:在相繼連續(xù)在相繼連續(xù)的兩次采樣中,一個(gè)周期采樣到外部中斷輸入為高的兩次采樣中,一個(gè)周期采樣到外部中斷輸入為高電平,下一個(gè)周期采樣到為低電平,則在電平,下一個(gè)周期采樣到為低電平,則在IE0或或IE1中將鎖存一個(gè)邏輯中將鎖存一個(gè)邏輯1。即便是。即便是CPU暫時(shí)不能響應(yīng)暫時(shí)不能響應(yīng),中斷申請(qǐng)標(biāo)志也不會(huì)丟失中斷申請(qǐng)標(biāo)志也不會(huì)丟失,直到,直到CPU響應(yīng)此中斷響應(yīng)此中斷時(shí)才清零。這樣,為保證下降沿能被可靠地采樣到,時(shí)才清零。這樣,為保證下降沿能被可靠地采樣到,外中斷引腳上的外中斷引腳上的高低電平高低電
11、平(負(fù)脈沖的寬度)均(負(fù)脈沖的寬度)均至少至少要保持一個(gè)機(jī)器周期要保持一個(gè)機(jī)器周期(若晶振為(若晶振為12MHz時(shí),為時(shí),為1微微秒)。秒)。 122、中斷請(qǐng)求標(biāo)志、中斷請(qǐng)求標(biāo)志RI:串行口:串行口接收中斷接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位時(shí),每接收完一個(gè)串行幀,由硬件置位RI。RI必必須由軟件清除須由軟件清除。 TI:串行口:串行口發(fā)送中斷發(fā)送中斷標(biāo)志位。當(dāng)標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫(xiě)將一個(gè)發(fā)送數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過(guò)程。每發(fā)入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過(guò)程。每發(fā)送完一個(gè)串行幀,由硬件置位送完一個(gè)串行
12、幀,由硬件置位TI。CPU響應(yīng)中斷響應(yīng)中斷時(shí),不能自動(dòng)清除時(shí),不能自動(dòng)清除TI,TI必須由軟件清除必須由軟件清除。 2)SCON的中斷標(biāo)志的中斷標(biāo)志SCON(98H)TIRI133、中斷的控制、中斷的控制EX0:外部中斷:外部中斷0允許位;允許位; ET0:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0中斷允許位;中斷允許位; EX1:外部中斷:外部中斷0允許位;允許位; ET1:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1中斷允許位;中斷允許位; ES:串行口中斷允許位;:串行口中斷允許位; EA :CPU中斷允許(總允許)位。中斷允許(總允許)位。1)中斷允許控制)中斷允許控制IE(A8H)EAESET1EX1ET0EX0
13、CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開(kāi)放和屏蔽對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開(kāi)放和屏蔽是由是由中斷允許寄存器中斷允許寄存器IE控制的??刂频?。143、中斷的控制、中斷的控制PX0:外部中斷:外部中斷0優(yōu)先級(jí)設(shè)置位;優(yōu)先級(jí)設(shè)置位; PT0:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)置位;優(yōu)先級(jí)設(shè)置位; PX1:外部中斷:外部中斷0優(yōu)先級(jí)設(shè)置位;優(yōu)先級(jí)設(shè)置位; PT1:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)置位;優(yōu)先級(jí)設(shè)置位; PS:串行口優(yōu)先級(jí)設(shè)置位。:串行口優(yōu)先級(jí)設(shè)置位。2)中斷優(yōu)先級(jí)控制)中斷優(yōu)先級(jí)控制IP(B8H)PSPT1PX1PT0PX08051單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷服
14、務(wù)嵌單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套,由套,由中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IP中的相應(yīng)位的狀態(tài)來(lái)規(guī)定每個(gè)中中的相應(yīng)位的狀態(tài)來(lái)規(guī)定每個(gè)中斷源的優(yōu)先級(jí)斷源的優(yōu)先級(jí) 。15同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)先權(quán)排隊(duì)問(wèn)題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷先權(quán)排隊(duì)問(wèn)題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:CPU主主程程序序INT0INT1T0T1串口IE0TF0IE1TF1TISI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位中斷入口地址中斷入口地址0023H
15、000BH0003H0013H001BH自然優(yōu)先級(jí)自然優(yōu)先級(jí)高低16CPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求。最高的中斷請(qǐng)求。 正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷。中斷請(qǐng)求所中斷。正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中斷正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷。請(qǐng)求所中斷。 MCS-51單片機(jī)的中斷優(yōu)先級(jí)有單片機(jī)的中斷優(yōu)先級(jí)有三條原則三條原則:17三、中斷處理過(guò)程三、中斷處理過(guò)程1、中斷響應(yīng)的條件、中斷響應(yīng)的條件 中斷源有中斷請(qǐng)求;中斷源有中斷請(qǐng)求; 此
16、中斷源的中斷允許位為此中斷源的中斷允許位為1; CPU開(kāi)中斷(即開(kāi)中斷(即EA=1)。)。同時(shí)滿(mǎn)足時(shí),同時(shí)滿(mǎn)足時(shí),CPU才有可能響應(yīng)中斷。才有可能響應(yīng)中斷。CPU執(zhí)行程序過(guò)程中,在每個(gè)機(jī)器周期的執(zhí)行程序過(guò)程中,在每個(gè)機(jī)器周期的S5P2期間,中期間,中斷系統(tǒng)對(duì)各個(gè)中斷源進(jìn)行斷系統(tǒng)對(duì)各個(gè)中斷源進(jìn)行采樣采樣。這些采樣值在下一個(gè)機(jī)器周。這些采樣值在下一個(gè)機(jī)器周期內(nèi)按期內(nèi)按優(yōu)先級(jí)優(yōu)先級(jí)和和內(nèi)部順序內(nèi)部順序被依次查詢(xún)。被依次查詢(xún)。 如果某個(gè)中斷標(biāo)志在上一個(gè)機(jī)器周期的如果某個(gè)中斷標(biāo)志在上一個(gè)機(jī)器周期的S5P2時(shí)被置成了時(shí)被置成了1,那么它將于現(xiàn)在的查詢(xún)周期中及時(shí)被發(fā)現(xiàn)。接著,那么它將于現(xiàn)在的查詢(xún)周期中及時(shí)被
17、發(fā)現(xiàn)。接著CPU便便執(zhí)行一條由中斷系統(tǒng)提供的硬件執(zhí)行一條由中斷系統(tǒng)提供的硬件LCALL指令,轉(zhuǎn)向被稱(chēng)作指令,轉(zhuǎn)向被稱(chēng)作中中斷向量斷向量的特定地址單元,進(jìn)入相應(yīng)的的特定地址單元,進(jìn)入相應(yīng)的中斷服務(wù)程序中斷服務(wù)程序。 18若由于上述條件的阻礙中斷未能得到響若由于上述條件的阻礙中斷未能得到響應(yīng),當(dāng)條件消失時(shí)該中斷標(biāo)志卻已不再有效,應(yīng),當(dāng)條件消失時(shí)該中斷標(biāo)志卻已不再有效,那么該中斷將不被響應(yīng)。那么該中斷將不被響應(yīng)。遇以下任一條件,硬件將受阻,不產(chǎn)生遇以下任一條件,硬件將受阻,不產(chǎn)生LCALL指令:指令: CPU正在處理正在處理同級(jí)同級(jí)或或高優(yōu)先級(jí)高優(yōu)先級(jí)中斷;中斷; 當(dāng)前查詢(xún)的機(jī)器周期不是所執(zhí)行指令的
18、最后一個(gè)機(jī)器當(dāng)前查詢(xún)的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期,即在周期,即在完成所執(zhí)行指令前完成所執(zhí)行指令前,不會(huì)響應(yīng)中斷不會(huì)響應(yīng)中斷; 正在執(zhí)行的指令為正在執(zhí)行的指令為RET、RETI或任何訪問(wèn)或任何訪問(wèn)IE或或IP寄存寄存器的指令,即只有在這些指令后面至少再執(zhí)行一條指器的指令,即只有在這些指令后面至少再執(zhí)行一條指令時(shí)才能接受中斷請(qǐng)求。令時(shí)才能接受中斷請(qǐng)求。192、中斷響應(yīng)時(shí)間、中斷響應(yīng)時(shí)間 S1M1S2 S3 S4 S5 S6 S1M2S2 S3 S4 S5 S6 S1M3S2 S3 S4 S5 S6 S1M4S2 S3 S4 S5 S6 S1M5S2 S3 S4 S5 S6中斷中斷有效
19、有效標(biāo)志標(biāo)志鎖存鎖存標(biāo)志查詢(xún)標(biāo)志查詢(xún)保護(hù)斷點(diǎn),長(zhǎng)調(diào)用至入口保護(hù)斷點(diǎn),長(zhǎng)調(diào)用至入口中斷服務(wù)中斷服務(wù)某中斷的響應(yīng)時(shí)序圖:某中斷的響應(yīng)時(shí)序圖: 若若M1周期的周期的S5P2前某中斷生效,在前某中斷生效,在S5P2期間其中斷期間其中斷請(qǐng)求被鎖存到相應(yīng)的標(biāo)志位中去;請(qǐng)求被鎖存到相應(yīng)的標(biāo)志位中去;M2恰逢指令的最恰逢指令的最后一個(gè)機(jī)器周期,且該指令不是后一個(gè)機(jī)器周期,且該指令不是RETI或訪問(wèn)或訪問(wèn)IE、IP的的指令。于是,指令。于是,M3和和M4便可以執(zhí)行硬件便可以執(zhí)行硬件LCALL指令,指令,M5周期將進(jìn)入了中斷服務(wù)程序;周期將進(jìn)入了中斷服務(wù)程序; 80C51的中斷響應(yīng)時(shí)間(從標(biāo)志置的中斷響應(yīng)時(shí)間(從
20、標(biāo)志置1到進(jìn)入相應(yīng)的中到進(jìn)入相應(yīng)的中斷服務(wù)),至少要斷服務(wù)),至少要3個(gè)完整的機(jī)器周期;個(gè)完整的機(jī)器周期;203、中斷響應(yīng)過(guò)程、中斷響應(yīng)過(guò)程v將相應(yīng)的將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器優(yōu)先級(jí)狀態(tài)觸發(fā)器置置1(以阻斷后來(lái)的同(以阻斷后來(lái)的同級(jí)或低級(jí)的中斷請(qǐng)求)。級(jí)或低級(jí)的中斷請(qǐng)求)。 v執(zhí)行一條執(zhí)行一條硬件硬件LCALL指令,即把程序計(jì)數(shù)器指令,即把程序計(jì)數(shù)器PC的的內(nèi)容內(nèi)容壓入堆棧壓入堆棧保存,再將相應(yīng)的中斷服務(wù)程序的保存,再將相應(yīng)的中斷服務(wù)程序的入口地址入口地址送入送入PC。 v執(zhí)行執(zhí)行中斷服務(wù)中斷服務(wù)程序。程序。 中斷響應(yīng)過(guò)程的前兩步是由中斷系統(tǒng)內(nèi)部自動(dòng)中斷響應(yīng)過(guò)程的前兩步是由中斷系統(tǒng)內(nèi)部自動(dòng)完成的
21、,而中斷服務(wù)程序則要由用戶(hù)編寫(xiě)程序來(lái)完成的,而中斷服務(wù)程序則要由用戶(hù)編寫(xiě)程序來(lái)完成。完成。 214、中斷返回、中斷返回RETI指令的具體功能是:指令的具體功能是: v將中斷響應(yīng)時(shí)壓入堆棧保存的將中斷響應(yīng)時(shí)壓入堆棧保存的斷點(diǎn)地址斷點(diǎn)地址從棧頂彈出從棧頂彈出送回送回PC,CPU從原來(lái)中斷的地方從原來(lái)中斷的地方繼續(xù)執(zhí)行繼續(xù)執(zhí)行程序;程序; v將相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器將相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器清清0,通知中斷系統(tǒng),通知中斷系統(tǒng),中斷服務(wù)程序已中斷服務(wù)程序已執(zhí)行完畢執(zhí)行完畢。不能用不能用RET指令代替指令代替RETI指令。在中斷指令。在中斷服務(wù)程序中服務(wù)程序中PUSH指令與指令與POP指令必須指令必須
22、成對(duì)使成對(duì)使用用,否則不能正確返回?cái)帱c(diǎn),否則不能正確返回?cái)帱c(diǎn) 。22四、應(yīng)用四、應(yīng)用1、主程序部分、主程序部分 1)給堆棧指針)給堆棧指針SP賦值,賦值,設(shè)置設(shè)置一個(gè)深度適宜的一個(gè)深度適宜的堆棧堆棧; 2)如為外部中斷,)如為外部中斷,定義觸發(fā)方式定義觸發(fā)方式;3)根據(jù)需要給)根據(jù)需要給IP賦值,賦值,定義中斷優(yōu)先級(jí)定義中斷優(yōu)先級(jí); 4)給)給IE賦值,賦值,開(kāi)放中斷開(kāi)放中斷,即置位,即置位EA和其它需要的和其它需要的中斷允許位;中斷允許位; 5)安排好)安排好等待中斷過(guò)程等待中斷過(guò)程中主程序應(yīng)做的操作。中主程序應(yīng)做的操作。具體設(shè)計(jì)過(guò)程:具體設(shè)計(jì)過(guò)程:(包括(包括主程序主程序和和中斷服務(wù)程序中
23、斷服務(wù)程序的設(shè)計(jì)步驟)的設(shè)計(jì)步驟)232、中斷服務(wù)程序部分、中斷服務(wù)程序部分 1)在相應(yīng)的)在相應(yīng)的中斷入口中斷入口地址單元設(shè)置一條地址單元設(shè)置一條跳轉(zhuǎn)跳轉(zhuǎn)指令,使程序轉(zhuǎn)移到中斷服務(wù)程序的指令,使程序轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際實(shí)際入口處入口處; 2)根據(jù)需要)根據(jù)需要保護(hù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng); 3)若為電平觸發(fā)的外部中斷,應(yīng)有)若為電平觸發(fā)的外部中斷,應(yīng)有中斷信號(hào)中斷信號(hào)撤除撤除操作;操作;4)安排)安排中斷服務(wù)中斷服務(wù)所做的操作;所做的操作; 5)恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng); 6)中斷返回中斷返回。24SETB IT0 ; SETB PX0 ;SETB EA ; SETB EX0 ; 若規(guī)定外部中斷若規(guī)定外部中
24、斷0為邊沿觸發(fā)方式,高優(yōu)先級(jí),試寫(xiě)為邊沿觸發(fā)方式,高優(yōu)先級(jí),試寫(xiě)出有關(guān)的初始化程序。出有關(guān)的初始化程序。解:解: 1) 設(shè)觸發(fā)方式設(shè)觸發(fā)方式 2) 設(shè)優(yōu)先級(jí)設(shè)優(yōu)先級(jí) 3) 開(kāi)中斷開(kāi)中斷用位操作指令用位操作指令2、應(yīng)用舉例、應(yīng)用舉例用字節(jié)操作指令用字節(jié)操作指令ORL TCON,#01H ORL IP,#01HORL IE,#81H25ORG 0000 H ;LJMP MAIN ;主程序轉(zhuǎn)至主程序轉(zhuǎn)至MAIN處處 ORG 0013H ; LJMP INT ;中斷服務(wù)程序轉(zhuǎn)至中斷服務(wù)程序轉(zhuǎn)至INT處處 ORG 0030H MAIN:MOV SP, #6FH SETB IT1 ;邊沿觸發(fā)邊沿觸發(fā) CL
25、R PX1 ;設(shè)為低優(yōu)先級(jí)設(shè)為低優(yōu)先級(jí) SETB EA ;開(kāi)總中斷開(kāi)總中斷 SETB EX1 ;允許外中斷允許外中斷1中斷中斷 MOV B, #01H ;設(shè)設(shè)B的初值的初值 HALT:SJMP HALT ;暫停等待中斷暫停等待中斷 INT: MOV A, B ;AB RL A ; 左環(huán)移一位左環(huán)移一位 MOV B, A ;回送回送 RETI ; 中斷返回中斷返回 若規(guī)定外部中斷若規(guī)定外部中斷1為邊沿觸發(fā)方式,低優(yōu)先級(jí),在中為邊沿觸發(fā)方式,低優(yōu)先級(jí),在中斷服務(wù)程序中將寄存器斷服務(wù)程序中將寄存器B的內(nèi)容左環(huán)移一位,的內(nèi)容左環(huán)移一位,B的初值設(shè)的初值設(shè)為為01H。試編寫(xiě)主程序與中斷服務(wù)程序。試編寫(xiě)主
26、程序與中斷服務(wù)程序。解:解:返返 回回265.2 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器27定時(shí)器T0TH0TL0定時(shí)器T1TH1TL1工作方式工作方式啟動(dòng)啟動(dòng)工作方式工作方式控制寄存器方式寄存器溢出溢出溢出溢出啟動(dòng)啟動(dòng)中斷中斷內(nèi)部總線(xiàn)內(nèi)部總線(xiàn)T1(P3.5)T0(P3.4)一、結(jié)構(gòu)及原理一、結(jié)構(gòu)及原理1、結(jié)構(gòu)、結(jié)構(gòu)28一、結(jié)構(gòu)及原理一、結(jié)構(gòu)及原理2、工作原理(、工作原理(T0為例)為例)1)方式選擇部分:)方式選擇部分:選擇不同的計(jì)數(shù)脈沖選擇不同的計(jì)數(shù)脈沖2)計(jì)數(shù)部分:)計(jì)數(shù)部分:對(duì)脈沖進(jìn)行加一計(jì)數(shù)對(duì)脈沖進(jìn)行加一計(jì)數(shù)3)控制啟停部分:)控制啟停部分:控制計(jì)數(shù)啟動(dòng)控制計(jì)數(shù)啟動(dòng)/停止停止定時(shí)方式:定時(shí)方式:對(duì)內(nèi)
27、部機(jī)器周期計(jì)數(shù)對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)計(jì)數(shù)方式:計(jì)數(shù)方式:對(duì)外部引腳對(duì)外部引腳P3.4輸入脈沖計(jì)數(shù)輸入脈沖計(jì)數(shù)TL0(低(低8位)位) + TH0(高(高8位)位) TF0(溢出位)(溢出位)TR0(啟動(dòng)位)(啟動(dòng)位) = 129二、方式和控制寄存器二、方式和控制寄存器1、TMOD方式寄存器方式寄存器T1 T0TMOD(89H)GATEC/TM1M0GATEC/TM1M0GATE:門(mén)控位:門(mén)控位M1M0:工作方式設(shè)置位:工作方式設(shè)置位GATE0時(shí),只要用軟件使時(shí),只要用軟件使TCON中的中的TR0或或TR1為為1,就,就可以啟動(dòng)定時(shí)可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;計(jì)數(shù)器工作;GATA1時(shí),要用軟件使時(shí),要
28、用軟件使TR0或或TR1為為1,同時(shí)外部中斷引,同時(shí)外部中斷引腳或也為高電平時(shí),才能啟動(dòng)定時(shí)腳或也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。計(jì)數(shù)器工作。 定時(shí)定時(shí)/計(jì)數(shù)器有四種工作方式,由計(jì)數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。進(jìn)行設(shè)置。C/T :定時(shí)定時(shí)/計(jì)數(shù)模式選擇位計(jì)數(shù)模式選擇位C/T0為定時(shí)模式;為定時(shí)模式; C/T = 1為計(jì)數(shù)模式。為計(jì)數(shù)模式。 30二、方式和控制寄存器二、方式和控制寄存器2、TCON控制寄存器控制寄存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0TR1(TR0):):T1(T0)運(yùn)行控制位)運(yùn)行控制位TF1(TF0):):T1(T0)溢出中斷請(qǐng)
29、求標(biāo)志位)溢出中斷請(qǐng)求標(biāo)志位31三、定時(shí)三、定時(shí)/計(jì)數(shù)器的工作方式(計(jì)數(shù)器的工作方式(T0為例)為例)1、方式、方式0(13位)位)振蕩器12定時(shí)方式定時(shí)方式計(jì)數(shù)方式計(jì)數(shù)方式T0(P3.4)TL0低5位TH08位TF0&1TR0GATEINT0(P3.2)1C/T=0C/T=1控制控制計(jì)數(shù)范圍:計(jì)數(shù)范圍:1 213(8192)32三、定時(shí)三、定時(shí)/計(jì)數(shù)器的工作方式(計(jì)數(shù)器的工作方式(T0為例)為例)2、方式、方式1(16位)位)振蕩器12定時(shí)方式定時(shí)方式計(jì)數(shù)方式計(jì)數(shù)方式T0(P3.4)TL08位TH08位TF0&1TR0GATEINT0(P3.2)1C/T=0C/T=1控制控制
30、計(jì)數(shù)范圍:計(jì)數(shù)范圍:1 216(65536)33三、定時(shí)三、定時(shí)/計(jì)數(shù)器的工作方式(計(jì)數(shù)器的工作方式(T0為例)為例)3、方式、方式2(8位重裝)位重裝)振蕩器12定時(shí)方式定時(shí)方式計(jì)數(shù)方式計(jì)數(shù)方式T0(P3.4)TF0&1TR0GATEINT0(P3.2)1C/T=0C/T=1控制控制TL08位TH08位重裝初值控制重裝初值控制計(jì)數(shù)范圍:計(jì)數(shù)范圍:1 28(256)34三、定時(shí)三、定時(shí)/計(jì)數(shù)器的工作方式(計(jì)數(shù)器的工作方式(T0為例)為例)4、方式、方式3(8位,只位,只T0有)有)振蕩器12定時(shí)方式定時(shí)方式計(jì)數(shù)方式計(jì)數(shù)方式T0(P3.4)TF0&1TR0GATEINT0(P3.
31、2)1C/T=0C/T=1控制控制TL08位計(jì)數(shù)范圍:計(jì)數(shù)范圍:1 28(256)振蕩器12定時(shí)方式定時(shí)方式TF1TH08位TR1控制控制T1為波特率發(fā)生器為波特率發(fā)生器,可工作在方式可工作在方式0、1、2;T0被拆成兩個(gè)被拆成兩個(gè)8位定時(shí)位定時(shí)/計(jì)數(shù)器,借用計(jì)數(shù)器,借用T1的觸發(fā)位和溢出標(biāo)志。的觸發(fā)位和溢出標(biāo)志。35四、應(yīng)用四、應(yīng)用1、初始化編程、初始化編程1) 確定并設(shè)置工作方式確定并設(shè)置工作方式對(duì)對(duì)TMOD賦值賦值 原則:計(jì)數(shù)值原則:計(jì)數(shù)值最大計(jì)數(shù)值最大計(jì)數(shù)值 例:例:設(shè)機(jī)器周期為設(shè)機(jī)器周期為1us,則,則 延時(shí)延時(shí)100us:延時(shí):延時(shí)100us100次計(jì)數(shù)次計(jì)數(shù)各種方式均可(常為各種
32、方式均可(常為1、2) 延時(shí)延時(shí)50ms:延時(shí):延時(shí)50ms50000次計(jì)數(shù)次計(jì)數(shù)方式方式1適合適合2) 確定并預(yù)置初值確定并預(yù)置初值TH0(TH1)、TL0(TL1)賦值賦值3) 按需要開(kāi)定時(shí)按需要開(kāi)定時(shí)/計(jì)數(shù)器中斷計(jì)數(shù)器中斷直接對(duì)直接對(duì)IE賦值賦值4) 啟動(dòng)定時(shí)啟動(dòng)定時(shí)/計(jì)數(shù)器工作計(jì)數(shù)器工作將將TR0或或TR1置置“1” 定時(shí)時(shí)間:開(kāi)始計(jì)數(shù)定時(shí)時(shí)間:開(kāi)始計(jì)數(shù)溢出溢出定時(shí)方式:定時(shí)方式:C=M-X=M-t/T計(jì)數(shù)方式:計(jì)數(shù)方式:C=M-X36 設(shè)單片機(jī)系統(tǒng)的晶振頻率為設(shè)單片機(jī)系統(tǒng)的晶振頻率為12MHz,現(xiàn)用,現(xiàn)用T0實(shí)現(xiàn)實(shí)現(xiàn)5ms的延時(shí),試編寫(xiě)初始化程序。的延時(shí),試編寫(xiě)初始化程序。解:解:C
33、=M-X=65536-5000=60536=0EC78HTH0=0ECH, TL0=78H機(jī)器周期機(jī)器周期 T=121/12=1us計(jì)數(shù)值計(jì)數(shù)值 X=t/T=5ms/1us=5000(可選方式(可選方式0或或1)TMOD=0 0 0 0 0 0 0 1 B=01H(方式(方式1)T1 T0GATE C/T M1 M02、應(yīng)用舉例、應(yīng)用舉例37 設(shè)單片機(jī)系統(tǒng)的晶振頻率為設(shè)單片機(jī)系統(tǒng)的晶振頻率為12MHz,編程實(shí)現(xiàn),編程實(shí)現(xiàn)P1.0輸出周期為輸出周期為400us的方波。的方波。機(jī)器周期機(jī)器周期 T=121/12=1us計(jì)數(shù)值計(jì)數(shù)值 X=t/T=200us/1us=200(可選任一方式)(可選任一方
34、式)初值初值 C=M-X=65536-200=65336=FF38HTH0=0FFH, TL0=38HTMOD=0 0 0 0 0 0 0 1 B=01H方式一:方式一: T1 T0GATE C/T M1 M0初值初值 C=M-X=256-200=56=38HTH0=38H, TL0=38HTMOD=0 0 0 0 0 0 1 0 B=02H方式二:方式二: T1 T0GATE C/T M1 M0解:解:分析分析 400us200us38 方式一:方式一:ORG 0000HLJMP STARTORG 0100H START: MOV TMOD, #01H; 設(shè)設(shè)T0方式一定時(shí)方式一定時(shí)MOV
35、TH0, #0FFHMOV TL0, #38H ; 賦初值賦初值SETB TR0 ;啟動(dòng)啟動(dòng)T0WAIT:JBC TF0, NEXT ;查詢(xún)計(jì)數(shù)查詢(xún)計(jì)數(shù)溢出溢出SJMP WAITNEXT:CPL P1.0 ; 輸出取反輸出取反MOV TH0, #0FFHMOV TL0, #38H ; 重賦初值重賦初值SJMP WAIT 方式二:方式二:ORG 0000HLJMP STARTORG 0100H START: MOV SP,#6FH MOV TMOD, #02H; 設(shè)設(shè)T0方式二定時(shí)方式二定時(shí)MOV TH0, #38HMOV TL0, #38H ; 賦初值賦初值SETB TR0 ;啟動(dòng)啟動(dòng)T0WAIT:JBC TF0, NEXT ;查詢(xún)計(jì)數(shù)查詢(xún)計(jì)數(shù)溢出溢出SJMP WAITNEXT:CPL P1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 櫻桃供貨合同范本
- 煤礦高壓線(xiàn)路檢修工技能理論考試題庫(kù)150題(含答案)
- 磁性元器件在電動(dòng)汽車(chē)中的關(guān)鍵作用
- 社交媒體在節(jié)日禮品定制中的價(jià)值與挑戰(zhàn)
- 購(gòu)買(mǎi)礦石合同范本
- 2025年度生態(tài)循環(huán)農(nóng)業(yè)養(yǎng)殖土地租賃協(xié)議
- 2025至2030年中國(guó)膠頭碼件數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度親子樂(lè)園店鋪經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同樣本
- 科學(xué)指導(dǎo)下的老年人運(yùn)動(dòng)康復(fù)計(jì)劃
- 船員勞動(dòng)合同(二零二五年度)與船舶航行氣象服務(wù)協(xié)議
- 運(yùn)動(dòng)療法技術(shù)學(xué)
- 《蜀道難》理解性默寫(xiě)(帶答案)
- 塔吊租賃(大型機(jī)械)-招標(biāo)文件模板(完整版)2021.5.13
- 物品移交接收單(模板)
- 肺透明膜病課件
- 護(hù)理學(xué)基礎(chǔ)期末試卷及答案
- IMS攪拌樁施工方案
- 我的家鄉(xiāng)廣西南寧宣傳簡(jiǎn)介
- 變廢為寶-小學(xué)科學(xué)高段活動(dòng)案例
- 2《幼苗長(zhǎng)大了》課件
- 四川省政府采購(gòu)專(zhuān)家考試試題
評(píng)論
0/150
提交評(píng)論