![第5章中斷與定時(shí)系統(tǒng)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-6/10/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee1.gif)
![第5章中斷與定時(shí)系統(tǒng)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-6/10/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee2.gif)
![第5章中斷與定時(shí)系統(tǒng)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-6/10/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee3.gif)
![第5章中斷與定時(shí)系統(tǒng)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-6/10/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee4.gif)
![第5章中斷與定時(shí)系統(tǒng)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-6/10/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee/85c0f741-9fa1-4e8e-8120-4f6eaddcb4ee5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、“十二五”職業(yè)教育國(guó)家規(guī)劃教材單片機(jī)原理及接口技術(shù)(第2版)v數(shù)據(jù)傳送的控制方式v中斷的基本概念vMCS-51的中斷系統(tǒng)v中斷源和中斷標(biāo)志v中斷的允許和優(yōu)先權(quán)v中斷的處理過(guò)程v外部中斷源的擴(kuò)展v中斷的應(yīng)用第第章章中中斷斷與與定定時(shí)時(shí)系系統(tǒng)統(tǒng) 本章內(nèi)容本章內(nèi)容Single Chip Microcomputer中斷系統(tǒng)中斷系統(tǒng)1. 定時(shí)方法2. 定時(shí)和計(jì)數(shù)功能3. 定時(shí)/計(jì)數(shù)器的控制4. 定時(shí)/計(jì)數(shù)器初值的計(jì)算5. 定時(shí)/計(jì)數(shù)器的工作方式6 .定時(shí)/計(jì)數(shù)器應(yīng)用舉例 7.定時(shí)/計(jì)數(shù)器與中斷綜合應(yīng)用舉例 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器數(shù)據(jù)傳送控制方式v中央處理器可以采用查詢、中斷和DMA 3種方式控制接口
2、的傳送數(shù)據(jù)的操作。v1.查詢方式v 查詢方式即中央處理器隨時(shí)詢問(wèn)接口,數(shù)據(jù)傳送完否或數(shù)據(jù)準(zhǔn)備好否。在查詢方式下,中央處理器需要完成下面操作:v中央處理器向接口發(fā)出傳送命令,輸入數(shù)據(jù)或輸出數(shù)據(jù);v中央處理器查詢接口狀態(tài),數(shù)據(jù)發(fā)送完否或輸入數(shù)據(jù)準(zhǔn)備好否,如接口狀態(tài)允許發(fā)送,則中央處理器向接口發(fā)出數(shù)據(jù);如輸入準(zhǔn)備好,則中央處理器取回?cái)?shù)據(jù)。v查詢方式下,中央處理器需要花費(fèi)較多的時(shí)間去“詢問(wèn)”狀態(tài),而接口處于被動(dòng)狀態(tài)。v2.中斷方式v中斷方式下,中央處理器不必定時(shí)查詢接口狀態(tài),而由接口在數(shù)據(jù)發(fā)送完畢或接收數(shù)據(jù)準(zhǔn)備好時(shí)通知中央處理器,中央處理器再發(fā)送或接收數(shù)據(jù)。中斷方式提高了系統(tǒng)工作效率,使中央處理器可以
3、管理更多的接口。v3.DMA方式vDMA方式即是數(shù)據(jù)不經(jīng)過(guò)中央處理器在存儲(chǔ)器和外設(shè)之間直接傳送的操作方式。DMA方式適合大量的高速數(shù)據(jù)傳送,如存儲(chǔ)器與磁盤之間的數(shù)據(jù)傳送。但DMA方式控制復(fù)雜,需要專用接口控制芯片中斷的基本概念v日常生活中斷的例子v單片機(jī)中的中斷概念v中斷技術(shù)的優(yōu)點(diǎn) 日常中斷的例子日常中斷的例子 你正在專心看書,突然電話鈴響,于是你記下正在看的書的頁(yè)數(shù),去接電話,接完電話后再回來(lái)接著看書。 計(jì)算機(jī)中的中斷概念計(jì)算機(jī)中的中斷概念中斷中斷是指由于某種隨機(jī)事件的發(fā)生,計(jì)算機(jī)暫?,F(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序,以處理發(fā)生的事件,處理完畢后又自動(dòng)返回原來(lái)的程序繼續(xù)運(yùn)行。將能引起中斷的事
4、件稱為中斷源中斷源。CPU現(xiàn)行運(yùn)行的程序稱為主程序主程序。處理隨機(jī)事件的程序稱為中斷服務(wù)中斷服務(wù)子程序子程序。 中斷技術(shù)的優(yōu)點(diǎn)中斷技術(shù)的優(yōu)點(diǎn)v分時(shí)操作分時(shí)操作 CPU可以同多個(gè)外設(shè)“同時(shí)”工作v實(shí)時(shí)處理實(shí)時(shí)處理 CPU及時(shí)處理隨機(jī)事件v故障處理故障處理 電源掉電、存儲(chǔ)出錯(cuò)、運(yùn)算溢出 MCS-51中斷系統(tǒng)v中斷源中斷源v中斷標(biāo)志中斷標(biāo)志v中斷允許中斷允許v中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)vMCS-51MCS-51中斷系統(tǒng)結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)v中斷寄存器中斷寄存器 MCS-51MCS-51的中斷系統(tǒng)的中斷系統(tǒng)中斷源中斷源8051單片機(jī)有5個(gè)個(gè)中斷請(qǐng)求源:?jiǎn)纹瑱C(jī)單片機(jī)INT0或 外部輸入中斷源INT0(P3.2)I
5、NT1或 外部輸入中斷源INT1(P3.3)T0 片內(nèi)定時(shí)器T0的溢出T1 片內(nèi)定時(shí)器T1的溢出串行口 片內(nèi)串行口發(fā)送或接收中斷源 MCS-51MCS-51的中斷系統(tǒng)的中斷系統(tǒng)中斷標(biāo)志中斷標(biāo)志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 每一個(gè)中斷源都有相應(yīng)的中斷標(biāo)志位; 某一個(gè)中斷源申請(qǐng)中斷,相應(yīng)中斷標(biāo)志位置1。 MCS-51MCS-51的中斷系統(tǒng)的中斷系統(tǒng)中斷允許中斷允許CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 EA總中斷允許位,總中斷允許位,EA=1開放所有中斷,開
6、放所有中斷,EA=0,禁止所有中斷;禁止所有中斷; 某一個(gè)中斷源還有相應(yīng)的中斷允許位,某一個(gè)中斷源還有相應(yīng)的中斷允許位,1允許相應(yīng)中斷源的中斷,允許相應(yīng)中斷源的中斷,0禁禁止相應(yīng)中斷源的中斷。止相應(yīng)中斷源的中斷。中斷允許中斷允許ESET0EX0EX1ET1EA MCS-51MCS-51的中斷系統(tǒng)的中斷系統(tǒng)中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 單片機(jī)中有兩個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)中斷和低優(yōu)先級(jí)中斷,前單片機(jī)中有兩個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)中斷和低優(yōu)先級(jí)中斷,前者優(yōu)先權(quán)高于后者(在程序中設(shè)置,相應(yīng)位者優(yōu)先權(quán)高于后
7、者(在程序中設(shè)置,相應(yīng)位=1=1,為高優(yōu)先級(jí));,為高優(yōu)先級(jí)); 同一優(yōu)先級(jí)別的中斷源按照自然優(yōu)先級(jí)順序確定優(yōu)先級(jí)別(硬件同一優(yōu)先級(jí)別的中斷源按照自然優(yōu)先級(jí)順序確定優(yōu)先級(jí)別(硬件形成,無(wú)法改變)。形成,無(wú)法改變)。中斷允許中斷允許ESET0EX0EX1ET1EA自然優(yōu)先級(jí)自然優(yōu)先級(jí)高低優(yōu)先控制優(yōu)先控制PSPT0PX0PX1PT1 IE0TCONSCONINT0 IT0=0 IT0=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)
8、求PX0PT0PX1PT1PSIEIP MCS-51 MCS-51的中斷系統(tǒng)結(jié)構(gòu)圖的中斷系統(tǒng)結(jié)構(gòu)圖中斷標(biāo)志位中斷源允許總允許中斷優(yōu)先級(jí)TCON寄存器T0和T1控制寄存器 TF1 TF0 IE1 IT1 IE0 IT0TCONT1溢出中斷標(biāo)志溢出中斷標(biāo)志(TCON.7): T1啟動(dòng)計(jì)數(shù)后,計(jì)滿溢出由硬件置位TF1=1,向CPU請(qǐng)求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動(dòng)清0。也可用軟件查詢?cè)摌?biāo)志,并由軟件清0。76543210 TF1 TF0 IE1 IT1 IE0 IT0TCON 88H外部中斷外部中斷INT1中斷標(biāo)志中斷標(biāo)志位位(TCON.3) : IE11,外部中斷1向CPU申
9、請(qǐng)中斷 外部中斷外部中斷INT1觸發(fā)方觸發(fā)方式控制位式控制位(TCON.2): IT1=0,電平觸發(fā)方式 IT1=1, 下降沿觸發(fā)方式76543210TCON寄存器T0和T1控制寄存器注意:該寄存器可以位尋址。 TI (SCON.1)串行發(fā)送中斷標(biāo)志。 RI (SCON.0)串行接收中斷標(biāo)志。 TI RISCON寄存器串行口控制寄存器SCON 98H76543210注意:該寄存器可以位尋址。IE寄存器中斷允許寄存器 IE A8H EA ESET1EX1 ET0EX0例:允許定時(shí)器T0中斷: SETB EA SETB ET0 或 MOV IE,#82H76543210注意:該寄存器可以位尋址。
10、51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí)單片機(jī)有兩個(gè)中斷優(yōu)先級(jí)高級(jí)和低級(jí)高級(jí)和低級(jí) 專用寄存器專用寄存器IP為中斷優(yōu)先級(jí)寄存器,用戶可用軟件設(shè)定為中斷優(yōu)先級(jí)寄存器,用戶可用軟件設(shè)定 相應(yīng)位為相應(yīng)位為1,對(duì)應(yīng)的中斷源被設(shè)置為,對(duì)應(yīng)的中斷源被設(shè)置為高優(yōu)先級(jí)高優(yōu)先級(jí),相應(yīng)位為,相應(yīng)位為0,對(duì)應(yīng),對(duì)應(yīng)的中斷源被設(shè)置為低優(yōu)先級(jí)的中斷源被設(shè)置為低優(yōu)先級(jí) 系統(tǒng)復(fù)位時(shí),均為低優(yōu)先級(jí)系統(tǒng)復(fù)位時(shí),均為低優(yōu)先級(jí) 該寄存器可以位尋址該寄存器可以位尋址 PSPT1PX1PT0PX0IP寄存器中斷優(yōu)先級(jí)寄存器 IP B8H 76543210中斷處理過(guò)程 中斷處理過(guò)程分為三個(gè)階段:中斷響應(yīng)、中斷處理和中斷返回。v 中斷響應(yīng)v 中斷處理(
11、又稱中斷服務(wù))v 中斷返回v 中斷請(qǐng)求的撤除中斷請(qǐng)求的撤除 中斷響應(yīng)中斷返回中斷響應(yīng)(以外部中斷0為例)中斷響應(yīng):在滿足CPU的中斷響應(yīng)條件之后,CPU對(duì)中斷源中斷請(qǐng)求予以處理。中斷響應(yīng)過(guò)程: 保護(hù)斷點(diǎn)地址;中斷響應(yīng) 把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址(通常稱矢量地址)。特別注意:這些工作是硬件自動(dòng)完成的! 斷點(diǎn)地址中斷服務(wù)子程序的入口地址外部中斷外部中斷0 0入口地址入口地址0003ZD0AJMP ORG 0003HAJMP ZD0ZD0中斷響應(yīng)中斷服務(wù)子程序入口地址又稱為中斷矢量或中斷向量。中斷響應(yīng)單片機(jī)中5個(gè)中斷源的矢量地址是固定固定的,不能改動(dòng)。斷點(diǎn)地址中斷服務(wù)子程序的入口地址程序存儲(chǔ)器
12、程序存儲(chǔ)器ROMROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001BH:定時(shí)器1溢出中斷入口002AH使用時(shí),通常在這些入口地址處存放一條跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去!程序存儲(chǔ)器程序存儲(chǔ)器ROMROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001BH:定時(shí)器1溢出中斷入口002AH包含T0中斷服務(wù)子程序的程序結(jié)構(gòu):ORG
13、 0000HORG 0000HAJMP MAINORG 000BHORG 000BHAJMP INTT0ORG 0100HORG 0100HMAIN: . . .INTT0:. . . RETI ENDAJMP MAINAJMP INTT0中斷處理中斷處理中斷服務(wù)程序從中斷子程序入入口地址口地址開始執(zhí)行,直到返回指令RETI為止,這個(gè)過(guò)程稱為中斷處理(或中斷服務(wù))。中斷服務(wù)子程序一般包括兩部分內(nèi)容,一是保護(hù)和恢復(fù)現(xiàn)場(chǎng),二是處理中斷源的請(qǐng)求。中斷響應(yīng)入口地址入口地址RETI中斷處理中斷處理INTT0: PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中斷源服務(wù) POP P
14、SW POP DPL POP DPH POP ACC RETI保護(hù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)中斷返回 中斷返回是指中斷服務(wù)完后,計(jì)算機(jī)返回到原來(lái)暫停的位置(即斷點(diǎn)),繼續(xù)執(zhí)行原來(lái)的程序。 中斷返回由專門的中斷返回指令RETI來(lái)實(shí)現(xiàn)。中斷響應(yīng)中斷返回中斷返回 RETI指令功能:把斷點(diǎn)地?cái)帱c(diǎn)地址取出,送回到程序計(jì)數(shù)器址取出,送回到程序計(jì)數(shù)器PC中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級(jí)狀態(tài)觸發(fā)器。 特別注意:不能用RET指令代替RETI指令!中斷響應(yīng)中斷返回中斷處理過(guò)程示意圖中斷源發(fā)中斷請(qǐng)求中斷源發(fā)中斷請(qǐng)求中斷響應(yīng)條件中斷響應(yīng)條件 是否滿足?是否滿足?中斷是否受阻?中斷是否受阻? 把把PC斷點(diǎn)地址
15、壓入堆棧斷點(diǎn)地址壓入堆棧 相應(yīng)中斷源的中斷入口地址相應(yīng)中斷源的中斷入口地址送入送入PC,轉(zhuǎn)向中斷服務(wù)程序轉(zhuǎn)向中斷服務(wù)程序NYYN 由硬件自動(dòng)完成 關(guān)中斷關(guān)中斷保護(hù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)中斷服務(wù)中斷服務(wù) 開中斷開中斷 關(guān)中斷關(guān)中斷恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng) 開中斷開中斷中斷返回中斷返回?cái)帱c(diǎn)地址由堆棧彈入斷點(diǎn)地址由堆棧彈入PC保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的過(guò)程中不允許中斷,以免現(xiàn)場(chǎng)遭到破壞。保護(hù)和恢復(fù)現(xiàn)場(chǎng)之后的開中斷是為了允許有更高級(jí)中斷打斷此中斷服務(wù)程序。 中斷服務(wù)程序硬件自動(dòng)完成中斷請(qǐng)求的撤除中斷請(qǐng)求的撤除 CPU響應(yīng)某中斷請(qǐng)求后,在中斷返回前,應(yīng)該撤除該中斷請(qǐng)求,否則會(huì)引起另一次中斷。 定時(shí)器0或1溢出:CPU在響應(yīng)中斷
16、后,硬件清除了有關(guān)的中斷請(qǐng)求標(biāo)志TFO或TF1,即中斷請(qǐng)求是自動(dòng)撤除的中斷請(qǐng)求是自動(dòng)撤除的。 邊沿激活的外部中斷:CPU在響應(yīng)中斷后,也是用硬件自動(dòng)用硬件自動(dòng)清除清除有關(guān)的中斷請(qǐng)求標(biāo)志IE0或IE1。 串行口中斷:CPU響應(yīng)中斷后,沒有用硬件清除T1、R1,故這些中斷不能自動(dòng)撤除,而要靠軟件來(lái)清除相應(yīng)的標(biāo)志要靠軟件來(lái)清除相應(yīng)的標(biāo)志。電平觸發(fā)外部中斷撤除方法較復(fù)雜。 因?yàn)樵陔娖接|發(fā)方式中,CPU響應(yīng)中斷時(shí)不會(huì)自動(dòng)清除IE1或IE0標(biāo)志,所以在響應(yīng)中斷后應(yīng)立即撤除INT0或INT1引腳上的低電平。 在硬件上,CPU對(duì)INT0和INT1引腳的信號(hào)不能控制,所以這個(gè)問(wèn)題要通過(guò)硬件,再配合軟件來(lái)解決。電
17、平激活的外部中斷源中斷標(biāo)志的撤除電平激活的外部中斷源中斷標(biāo)志的撤除外部中斷源的擴(kuò)展v單片機(jī)僅有兩個(gè)外部中斷輸入端.v可用兩種方法擴(kuò)展: 1. 定時(shí)器T0,T1。(工作在計(jì)數(shù)方式下) 2. 中斷和查詢結(jié)合。 1用定時(shí)器作外部中斷源 例例5.5 將定時(shí)器T0擴(kuò)展為外部中斷源。解解:將定時(shí)器T0設(shè)定為方式2(自動(dòng)恢復(fù)計(jì)數(shù)初值),TH0和TF0的初值均設(shè)置為FFH,允許T0中斷,CPU開放中斷,源程序如下:MOVTMOD,#06H MOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA T0引腳每輸入一個(gè)負(fù)跳變,TF0都會(huì)置1,向CPU請(qǐng)求中斷 T0腳相當(dāng)于邊沿觸發(fā)的
18、外部中斷源輸入線。腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。2中斷和查詢相結(jié)合 MCS-511P3.3P1.0P1.1P1.2P1.3EXINT0EXINT1EXINT2EXINT3圖: 一個(gè)外中斷擴(kuò)展成多個(gè)外中斷的原理圖中斷服務(wù)程序如下:中斷服務(wù)程序如下: ORG0003H;外部中斷0入口 AJMP INT0;轉(zhuǎn)向中斷服務(wù)程序入口 INT0: PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH ACC JB P1.0,EXT0 ;中斷源查詢并轉(zhuǎn)相應(yīng)中斷服務(wù)程序 JB P1.1,EXT1 JB P1.2,EXT2 JB P1.3,EXT3 EXIT: POP ACC ;恢復(fù)現(xiàn)場(chǎng) POP PSW RETIEXT0
19、: ; EXINT0中斷服務(wù)程序 AJMPEXITEXT1: ; EXINT1中斷服務(wù)程序 AJMPEXITEXT2: ;EXINT2中斷服務(wù)程序AJMPEXITEXT3: ;EXINT3中斷服務(wù)程序 AJMP EXIT 同樣,外部中斷同樣,外部中斷1也可作相應(yīng)的擴(kuò)展。也可作相應(yīng)的擴(kuò)展。例:在例:在P1.0上產(chǎn)生周期為上產(chǎn)生周期為10ms的方波,設(shè)晶振頻率的方波,設(shè)晶振頻率12MHz.(要求分別以查詢方式和中斷方式設(shè)計(jì)程序)要求分別以查詢方式和中斷方式設(shè)計(jì)程序)查查詢?cè)兎椒绞绞? ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H SETB T
20、R1WAIT:JBC TF1,NX SJMP WAIT NX:CPL P1.0 MOV TH1,#0CEH MOV TL1,#78H SJMP WAIT END中中斷斷方方式式: ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H MOV IE, #88H SETB TR1WAIT: SJMP WAIT ORG 001BH CPL P1.0 MOV TH1,#0CEH MOV TL1,#78H RETI中斷系統(tǒng)的應(yīng)用v實(shí)例:LED數(shù)碼管顯示。v使用技術(shù):中斷、中斷優(yōu)先級(jí)、中斷優(yōu)先權(quán)中斷嵌套、中斷過(guò)程。1.中斷初始化v中斷初始化應(yīng)在產(chǎn)生中斷請(qǐng)求前
21、完成,一般放在主程序中,與主程序其他初始化內(nèi)容一起完成。v(1)定義中斷優(yōu)先級(jí)。將中斷優(yōu)先級(jí)控制寄存器IP中相關(guān)的控制位置位。v(2)若是外中斷,則要定義外中斷觸發(fā)方式,將控制寄存器TCON中相關(guān)的控制位置位。v(3)開中斷。將控制寄存器中IE中的中斷控制位EA和相應(yīng)的中斷允許控制位置位。2.中斷服務(wù)程序v編寫中斷服務(wù)程序的要求如下:v(1)在相應(yīng)的中斷入口地址處設(shè)置一條跳轉(zhuǎn)指令(SJMP、AJMP或LJMP),將中斷服務(wù)程序轉(zhuǎn)到合適的ROM空間。若中斷服務(wù)程序小于等于8個(gè)字節(jié),可直接放置在中斷入口地址處。v(2)根據(jù)需要保護(hù)現(xiàn)場(chǎng)。為減輕堆棧負(fù)擔(dān),保護(hù)現(xiàn)場(chǎng)的數(shù)據(jù)存儲(chǔ)單元數(shù)量力求少。v(3)CP
22、U響應(yīng)中斷后不能自動(dòng)清除中斷請(qǐng)求標(biāo)志位時(shí),應(yīng)考慮的清除中斷請(qǐng)求標(biāo)志位的其他操作。v(4)恢復(fù)現(xiàn)場(chǎng)。v(5)最后一條指令必須是中斷返回指令RETI.外部中斷實(shí)驗(yàn)圖圖5-5 5-5 外部中斷實(shí)驗(yàn)電路原理圖外部中斷實(shí)驗(yàn)電路原理圖Key30p30p8.2k22u+512M100+5EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PS
23、EN29ALE/P30TXD11RXD1089C51S0INT0 顯示123456789VCC300abfcgde8LED1234567abcdefgdp 8comcom300abfcgde8LED1234567abcdefgdp 8comcom+5V主程序顯示D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7電阻排圖圖5-6 主程序流程圖主程序流程圖 圖圖5-7 中斷服務(wù)程序流程圖中斷服務(wù)程序流程圖開始關(guān)顯示STAR:中斷允許設(shè)置調(diào)用延時(shí)DELAY中斷觸發(fā)方式設(shè)置滅;循環(huán)ST1:(P0)(A)改變(A)(R2)-10?外中斷0ACC入棧保護(hù)計(jì)數(shù)器賦初值(R2)=8LOOP:P2
24、口顯示“8.”關(guān)顯示,調(diào)延時(shí)中 斷 返 回YESNOvORG 0000HvSJMP STARvORG 03H;INT0中斷入口地址vSJMPINT0S;轉(zhuǎn)INT0中斷服務(wù)vORG30HSTAR:MOV IE,#10000001B;INT0開中vMOVTCON,#O1H;INT0邊沿觸發(fā)方式vMOVA,#0FEH;P0口輸出初值ST1:MOVP0,AvACALL DELAY;延時(shí)vRLA ;改變輸出數(shù)據(jù)vSJMPST1 ;主程序循環(huán)INT0S:PUSHACC ;保護(hù)現(xiàn)場(chǎng)vMOVR2,#8 ;INT0中斷服務(wù),R2計(jì)數(shù)器賦初值LOOP:CLRAvMOVP2,A ;數(shù)碼管亮vACALL DELAY;
25、延時(shí)vMOVA,#0FFHvMOVP2,A;數(shù)碼管各段全暗vACALL DELAY;延時(shí)vDJNZR2,LOOP;循環(huán)8次vPOP ACC;恢復(fù)現(xiàn)場(chǎng),AvRETIDELAY: ;延時(shí)子程序,500msv外中斷v中斷優(yōu)先級(jí)v中斷優(yōu)先權(quán)5.2 MCS-51定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器v1.定時(shí)方法 v(1)軟件定時(shí)v即讓機(jī)器執(zhí)行一個(gè)程序段。軟件定時(shí)占用CPU,降低了CPU的利用率 v(2)不可編程的硬件定時(shí)v可以采用如小規(guī)模集成電路器件555,外接定時(shí)部件(電阻和電容)構(gòu)成。通過(guò)改變電阻和電容,可以使定時(shí)在一定的范圍內(nèi)改變。v(3)可編程定時(shí)器v可編程的定時(shí)器。v它的定時(shí)值及其范圍,可以很容易地由軟
26、件來(lái)確定和改變,能夠滿足各種不同的定時(shí)要求。 實(shí)質(zhì)是計(jì)數(shù)器,脈沖每一次下降沿,計(jì)數(shù)寄存器數(shù)值將加1。 計(jì)數(shù)的脈沖如果來(lái)源于單片機(jī)內(nèi)部的晶振,由于其周期極為準(zhǔn)確,這時(shí)稱為定時(shí)器。計(jì)數(shù)的脈沖如果來(lái)源于單片機(jī)外部的引腳,由于其周期一般不準(zhǔn)確,這時(shí)稱為計(jì)數(shù)器。 8031 有2個(gè)可獨(dú)立控制的16位定時(shí)器/計(jì)數(shù)器:T0、T1。+1計(jì)數(shù)器溢出中斷脈沖控制開關(guān)MCS-51 MCS-51 計(jì)數(shù)計(jì)數(shù)/ /定時(shí)器的原理定時(shí)器的原理定時(shí)器控制、狀態(tài)寄存器1)TMOD定時(shí)器方式寄存器(89H)1)功能選擇位C/T: =0,定時(shí)功能,計(jì)數(shù)內(nèi)部機(jī)器周期脈沖; =1,計(jì)數(shù)功能,計(jì)數(shù)引腳T0(T1)輸入的負(fù)脈沖。2)方式選擇位
27、M1、M0:3)門控方式選擇位GATE 計(jì)數(shù)器啟動(dòng)方式的選擇 確定定時(shí)器工作方式指令: MOV TMOD,#方式字 例:設(shè)T0用方式2非門控定時(shí),T1用方式1門控計(jì)數(shù)。 MOV TMOD,#0D2H ; 1101 0010 B GATEC/TM1M0GATEC/TM1M0T1T0M1 M0方方式式功功能能描描述述0 0013 位位0 1116 位位1 028 位位自自動(dòng)動(dòng)重重裝裝1 13T0 為為兩兩個(gè)個(gè) 8 位位2.4.2 定時(shí)器工作方式定時(shí)器工作方式 由方式選擇位M1、M0設(shè)定一、 方式0 13位定時(shí)/計(jì)數(shù)器。 THx 8位和TLx低5位組成13位加1 計(jì)數(shù)器,此種方式與MCS48系列兼容
28、,如果不是為了兼容的目的,一般不用方式0. 方式0的全部功能,方式1都可以代替。二、二、 方式方式1 1 16位定時(shí)/計(jì)數(shù)器。 THx8位和TLx8位組成16位加1計(jì)數(shù)器最大計(jì)數(shù)脈沖個(gè)數(shù):165536(216),最長(zhǎng)定時(shí)時(shí)間(晶振12MHz T=1s):1s 65536T= 65.54ms非門控方式:當(dāng)非門控方式:當(dāng)GATE0, 控制權(quán)由控制權(quán)由 TRx 決定決定 TRx1 計(jì)數(shù)開始計(jì)數(shù)開始 TRx 0 計(jì)數(shù)停止計(jì)數(shù)停止門控方式:當(dāng)門控方式:當(dāng)GATE1、TRx1 控制權(quán)由控制權(quán)由 INTx 決定決定 INTx1 計(jì)數(shù)開始計(jì)數(shù)開始 INTx 0 計(jì)數(shù)停止計(jì)數(shù)停止啟動(dòng)計(jì)數(shù)方式:?jiǎn)?dòng)計(jì)數(shù)方式:三、
29、三、 方式方式2 2 用于需要重復(fù)定時(shí)和計(jì)數(shù)的場(chǎng)合。 最大計(jì)數(shù)值:256 (28) 最大定時(shí)時(shí)間(晶振12MHz時(shí) T=1s): 256s 自動(dòng)恢復(fù)初值8位定時(shí)/計(jì)數(shù)器。TLx為8位加1計(jì)數(shù)器,THx為8位初值暫存器。四、四、方式方式3 3 T0分成2個(gè)8位定時(shí)器:TL0定時(shí)/計(jì)數(shù)器和TH0定時(shí)器 TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位:TR1。T1不能使用方式3工作2.4.3 計(jì)算時(shí)間常數(shù)計(jì)算時(shí)間常數(shù)X(X(計(jì)算初值計(jì)算初值) ) 計(jì)數(shù)功能:X= 2n -計(jì)數(shù)值 n:8/13/16 定時(shí)功能:X= 2n - t/T t:定時(shí)時(shí)間(s) T:機(jī)器周期12/晶振頻率
30、 如:晶振為12MHz時(shí),T12/12 MHz12(1210-6)(秒)110-61us一、一、 MCS-51MCS-51定時(shí)器的應(yīng)用定時(shí)器的應(yīng)用 定時(shí)器初始化編程:使用定時(shí)器工作之前,先寫入控 制寄存器,確定好定時(shí)器工作方式。 初始化編程格式:MOV TMOD,# 方式字 ;選擇方式MOV THx,#XH ;裝入Tx時(shí)間常數(shù)MOV TLx,#XLSETB EA ;開Tx中斷SETB ETxSETB TRx ;啟動(dòng)Tx定時(shí)器。 例:由P1.0輸出方波信號(hào),周期為2ms,設(shè)fosc=12MHz。2ms解:每隔1ms改變一次P1.0的輸出狀態(tài),即形成方波,用T0非門控方式1定時(shí)。 計(jì)算時(shí)間常數(shù):X
31、 = 216 - t/T = 216 (/1000)/10-6 = 65536-1000 = 64536 = FC18H ORG0000HAJMPMAINORG000BH ;T0中斷硬件入口地址AJMPPT0INT ;跳到中斷服務(wù)程序ORG0030H MAIN:MOVTMOD,#01H ;中斷方式MOVTL0,#18H ;計(jì)數(shù)初值MOVTH0,#0FCHSETBEA ;開放總中斷SETBET0 ;開放T0中斷SETBTR0 ;啟動(dòng)定時(shí)器 HERE:SJMPHERE ;等待中斷,相當(dāng)于執(zhí)行其它任務(wù) PT0INT: MOVTL0,#18H ;中斷服務(wù)程序;置初值MOVTH0,#0FCHCPLP1.
32、0 ;取反,產(chǎn)生方波RETI ;中斷返回例 P1.7驅(qū)動(dòng)LED亮1秒滅1秒地閃爍,設(shè)時(shí)鐘頻率為12MHz。 長(zhǎng)定時(shí)方法:增加一個(gè)軟件計(jì)數(shù)器(如R7), 記錄中斷次數(shù),計(jì)滿n個(gè)中斷為1秒。 ORG 0000H AJMP MAIN ORG 001BH AJMP PT1INT ORG 0030HSTART:MOV R7,#00H MOV TMOD,#10H MOV TL1, #0F0H MOV TH1, #0D8H SETB EA SETB ET1 SETB TR1HERE: SJMP HEREPT1INT: MOV TL1,#0F0H MOV TH1,#0D8H INC R7 CJNE R7,#1
33、0, PEND MOV R7, #00H CPL P1.7PEND: RETI例 定時(shí)器外部引腳T0(T1)用作外部中斷信號(hào)輸入端。外部負(fù)脈沖引起中斷請(qǐng)求,選計(jì)數(shù)方式,時(shí)間常數(shù)為FFH。例:門控方式測(cè)量正脈沖寬度 解:INT1引腳輸入被檢測(cè)信號(hào),記錄在正脈沖的時(shí)間內(nèi)包含機(jī)器脈沖個(gè)數(shù)。 設(shè)脈寬小于65.5ms 等待查詢INT0,正脈沖過(guò)后,讀出TH1TL1。START: MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00HWAIT1: JBP3.3,WAIT1 SETB TR1WAIT2 :JNBP3.3,WAIT2 WAIT3 : JBP3.3,WAIT3CLRTR1
34、MOV R2,TL1MOV R3,TH1TR1=1 T1啟動(dòng) TR1=0 T1停止INT1v解 計(jì)數(shù)初值計(jì)算:200us的初值為9CH,400us的初值為38H,即TH0=38H,TL0=9CH;v程序如下:vORG 00Hv AJMP MAINv 0RG 000BHv MOV TL0,#9CH ;以下中斷服務(wù)程序共6字節(jié)v CPL P1.0v RETIv 0RG 001BHv MOV TH0,#38Hv CPL P1.1v RETIvMAIN:MOV TMOD,#3 ;T0方式3v MOV TI0,#9CHv MOV THO,#38Hv MOV IE,#8AH ;允許兩個(gè)定時(shí)器中斷v SET
35、B TR0v SETB TR1v SJMP $例 應(yīng)用定時(shí)器T0的方式3分別產(chǎn)生200us和400us的定時(shí),并使P1.0。和P1.1分別輸出周期為400us和800us的連續(xù)方波,設(shè)。1 1實(shí)訓(xùn)目的實(shí)訓(xùn)目的(1) 利用單片機(jī)的定時(shí)與中斷方式,實(shí)現(xiàn)對(duì)信號(hào)燈的復(fù)雜控制。(2) 通過(guò)定時(shí)器程序調(diào)試,學(xué)會(huì)定時(shí)器方式1的使用。(3) 通過(guò)中斷程序調(diào)試,熟悉中斷的基本概念。實(shí)訓(xùn)實(shí)訓(xùn) 信號(hào)燈的控制信號(hào)燈的控制2 2實(shí)訓(xùn)設(shè)備與器件實(shí)訓(xùn)設(shè)備與器件 (1)實(shí)訓(xùn)設(shè)備:?jiǎn)纹瑱C(jī)開發(fā)系統(tǒng)、微機(jī)。 (2) 實(shí)訓(xùn)器件:實(shí)訓(xùn)電路板。3 3實(shí)訓(xùn)程序?qū)嵱?xùn)程序1)定時(shí)器查詢方式)定時(shí)器查詢方式ORG0000HCONT: MOVR2
36、,#07HMOVA,#0FEHNEXT:MOVP1,AACALLDELAYRLADJNZR2,NEXTMOV R2,#07HNEXT1:MOVP1,ARRAACALLDELAYDJNZR2,NEXT1SJMPCONTDELAY: MOV R3,#14H;置;置50ms計(jì)數(shù)循環(huán)初值計(jì)數(shù)循環(huán)初值MOVTMOD,#10H;設(shè)定時(shí)器;設(shè)定時(shí)器1為方式為方式1MOVTH1,#3CH;置定時(shí)器初值;置定時(shí)器初值MOVTL1,#0B0HSETBTR1;啟動(dòng);啟動(dòng)T1LP1:JBCTF1,LP2 ;查詢計(jì)數(shù)溢出;查詢計(jì)數(shù)溢出SJMPLP1;未到;未到50ms繼續(xù)計(jì)數(shù)繼續(xù)計(jì)數(shù)LP2:MOVTH1,#3CH ;重
37、新置定時(shí)器初值;重新置定時(shí)器初值MOVTL1,#0B0HDJNZR3,LP1 ;未到;未到1s繼續(xù)循環(huán)繼續(xù)循環(huán)RET;返回主程序;返回主程序ENDTF1=12)定時(shí)器中斷方式)定時(shí)器中斷方式ORG0000H;程序入口;程序入口AJMP0100H;指向主程序;指向主程序ORG001BH;定時(shí)器;定時(shí)器T1中斷入口中斷入口AJMPCONT;指向中斷服務(wù)程序;指向中斷服務(wù)程序ORG0100HMAIN:MOVTMOD,#10H;置;置T1為工作方式為工作方式1MOVTH1,#3CH;置;置50ms定時(shí)初值定時(shí)初值MOVTL1,#0B0HSETBEA;CPU開中斷開中斷SETBET1;定時(shí)器;定時(shí)器T1開中斷開中斷SETBTR1;啟動(dòng);啟動(dòng)T1CLR08H;清;清1s計(jì)滿標(biāo)志位計(jì)滿標(biāo)志位MOVR3,#14H;置;置50ms循環(huán)初值循環(huán)初值DISP:MOVR2,07HMOVA,#0FEHNEXT:MOVP1,AJNB08H,$;查詢;查詢1s時(shí)間到否時(shí)間到否CLR08H;清標(biāo)志位;清標(biāo)志位RLADJNZR2,NEXTMOVR2,#07HNEXT1: MOV P1,AJNB08H,$CLR08
溫馨提示
- 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能辦公時(shí)代下的教師技能需求分析
- 老年人家庭醫(yī)療護(hù)理常識(shí)全解析
- 跨領(lǐng)域合作學(xué)校對(duì)外交流的多元發(fā)展
- 智慧教育如何用科技助力小學(xué)生閱讀
- 構(gòu)建和諧家園關(guān)系共筑孩子美好未來(lái)
- 茶文化在小學(xué)教育中的價(jià)值體現(xiàn)及實(shí)踐路徑
- 2025年襄陽(yáng)職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 綜合教育與技術(shù)支持下的學(xué)生視力保健實(shí)踐方案
- 2025年珠海城市職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年漳州理工職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 加油站廉潔培訓(xùn)課件
- 2022版義務(wù)教育(生物學(xué))課程標(biāo)準(zhǔn)(附課標(biāo)解讀)
- 2023屆上海市松江區(qū)高三下學(xué)期二模英語(yǔ)試題(含答案)
- 誡子書教案一等獎(jiǎng)?wù)]子書教案
- 《民航服務(wù)溝通技巧》教案第16課民航服務(wù)人員平行溝通的技巧
- 深圳市物業(yè)專項(xiàng)維修資金管理系統(tǒng)操作手冊(cè)(電子票據(jù))
- 2023年鐵嶺衛(wèi)生職業(yè)學(xué)院高職單招(數(shù)學(xué))試題庫(kù)含答案解析
- 起重機(jī)械安裝吊裝危險(xiǎn)源辨識(shí)、風(fēng)險(xiǎn)評(píng)價(jià)表
- 華北理工兒童口腔醫(yī)學(xué)教案06兒童咬合誘導(dǎo)
- 中國(guó)建筑項(xiàng)目管理表格
- 高一3班第一次月考總結(jié)班會(huì)課件
評(píng)論
0/150
提交評(píng)論