《單片機(jī)中斷程序設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)中斷程序設(shè)計(jì)(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,單片機(jī)技術(shù)與項(xiàng)目實(shí)踐,項(xiàng)目教學(xué)課件,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),西安航空職業(yè)技術(shù)學(xué)院,自動(dòng)化教研室 王曙霞,中斷處理過程,返回,中斷處理過程分為三個(gè)階段:,中斷響應(yīng)、中斷處理和中斷返回。,一、,中斷響應(yīng),二、,中斷處理,(,又稱中斷服務(wù),),三、,中斷返回,四、,中斷請(qǐng)求的撤除,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),中斷的響應(yīng),中斷響應(yīng)是在滿足,CPU,的中斷響應(yīng)條件之后,,CPU,對(duì)中斷源中斷請(qǐng)求的回答,在這一階段,,CPU,要完成中斷服務(wù)以前的所有準(zhǔn)備工作。這些準(zhǔn)備工作包括保護(hù)斷點(diǎn)和把程序轉(zhuǎn)向中斷服務(wù)程序的
2、,入口地址,(,通常稱矢量地址,),。,特別注意:,這些工作是硬件自動(dòng)完成的!,入口地址示意圖如下:,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),程序存儲(chǔ)器,ROM,0000H,:,復(fù)位后,程序的入口地址,(PC=0000H),0023H,:,串行口中斷入口,0003H,:,外部中斷,0,入口,000BH,:,定時(shí)器,0,溢出中斷入口,0013H,:,外部中斷,1,入口,001BH,:,定時(shí)器,1,溢出中斷入口,002AH,使用時(shí),通常在這些入口地址處存放一條絕對(duì)跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去!參見實(shí)訓(xùn),5,定時(shí)器中斷方式。,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),中斷處理,中斷服務(wù)程序從入口地
3、址開始執(zhí)行,直到返回指令,RETI,為止,這個(gè)過程稱為中斷處理,(,或中斷服務(wù),),。此過程一般包括兩部分內(nèi)容,,一是保護(hù)現(xiàn)場(chǎng),二是處理中斷源的請(qǐng)求。,因?yàn)橐话阒鞒绦蚝椭袛喾?wù)程序都可能會(huì)用到累加器、,PSW,寄存器及其它一些寄存器。,CPU,在進(jìn)入中斷服務(wù)程序后,用到上述寄存器時(shí),就會(huì)破壞它原來存在寄存器中的內(nèi)容,一旦中斷返回,將會(huì)造成主程序的混亂,因而在進(jìn)入中斷服務(wù)程序后,一般要先保護(hù)現(xiàn)場(chǎng),然后再執(zhí)行中斷處理程序,在返回主程序以前,再恢復(fù)現(xiàn)場(chǎng)。,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),中斷返回是指中斷服務(wù)完后,計(jì)算機(jī)返回到原來斷開的位置,(,即斷點(diǎn),),,繼續(xù)執(zhí)行原來的程序
4、。中斷返回由專門的中斷返回指令,RETI,來實(shí)現(xiàn),該指令的功能是把斷點(diǎn)地址取出,送回到程序計(jì)數(shù)器,PC,中去。另外,它還通知中斷系統(tǒng)已完成中斷處理,將清除優(yōu)先級(jí)狀態(tài)觸發(fā)器。特別注意:,不能用,RET,指令代替,RETI,指令!,中斷返回,中斷處理過程示意圖,中斷源發(fā)中斷請(qǐng)求,中斷響應(yīng)條件,是否滿足?,中斷是否受阻?,把,PC,斷點(diǎn)地址壓入堆棧,相應(yīng)中斷源的中斷入口地址送入,PC,,,轉(zhuǎn)向中斷服務(wù)程序,N,Y,Y,N,由硬件,自動(dòng)完成,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),關(guān)中斷,保護(hù)現(xiàn)場(chǎng),中斷服務(wù),開中斷,關(guān)中斷,恢復(fù)現(xiàn)場(chǎng),開中斷,中斷返回,斷點(diǎn)地址由堆棧彈入,PC,保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的過程中不允許中斷
5、,以免現(xiàn)場(chǎng)遭到破壞。,保護(hù)和恢復(fù)現(xiàn)場(chǎng)之后的開中斷是為了允許有更高級(jí)中斷打斷此中斷服務(wù)程序。,中斷服務(wù)程序,硬件自動(dòng)完成,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),中斷請(qǐng)求的撤除,CPU,響應(yīng)某中斷請(qǐng)求后,在中斷返回前,應(yīng)該撤除該中斷請(qǐng)求,否則會(huì)引起另一次中斷。,定時(shí)器,0,或,1,溢出:,CPU,在響應(yīng)中斷后,硬件清除了有關(guān)的中斷請(qǐng)求標(biāo)志,TFO,或,TF1,,,即,中斷請(qǐng)求是自動(dòng)撤除的,。,邊沿激活的外部中斷:,CPU,在響應(yīng)中斷后,也是,用硬件自動(dòng)清除,有關(guān)的中斷請(qǐng)求標(biāo)志,IE0,或,IE1,。,串行口中斷:,CPU,響應(yīng)中斷后,沒有用硬件清除,T1,、,R1,,,故這些中斷不能自動(dòng)撤除,而,要靠軟件來
6、清除相應(yīng)的標(biāo)志,。,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),撤除方法較復(fù)雜。因?yàn)樵陔娖接|發(fā)方式中,,CPU,響應(yīng)中斷時(shí)不會(huì)自動(dòng)清除,IEI,或,IE0,標(biāo)志,所以在響應(yīng)中斷后應(yīng)立即撤除,INT0,或,INT1,引腳上的低電平。,在硬件上,,CPU,對(duì),INT0,和,INT1,引腳的信號(hào)不能控制,所以這個(gè)問題要通過硬件,再配合軟件來解決。參見教材圖,5.10,電平激活的外部中斷源中斷標(biāo)志的撤除,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),外部中斷源的擴(kuò)展,單片機(jī)僅有兩個(gè)外部中斷輸入端,.,可用兩種方法擴(kuò)展,:,1.,定時(shí)器,T0,T1,。(,工作在計(jì)數(shù)方式下。),2.,中斷和查詢結(jié)合。,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),在實(shí)際生
7、活中,我們?cè)诮煌房诳吹降氖嵌〞r(shí)控制的交通燈。這里將給出一個(gè)在定時(shí)交通燈控制的基礎(chǔ)上,增加允許急救車優(yōu)先通過的交通控制系統(tǒng)。,當(dāng)有急救車到達(dá)時(shí),路口的信號(hào)燈全紅以便讓急救車通過。急救車,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),交通信號(hào)燈控制,定義中斷系統(tǒng),A,線綠燈亮,,B,線紅燈亮,A,線黃燈亮,,B,線紅燈亮,延時(shí),5,秒,延時(shí),3,秒,A,線紅燈亮,,B,線綠燈亮,延時(shí),5,秒,A,線紅燈亮,,B,線黃燈亮,延時(shí),3,秒,主程序流程圖,中斷響應(yīng),A,線紅燈亮,,B,線紅燈亮,恢復(fù)原狀態(tài),延時(shí),10,秒,返回,中斷服務(wù)程序流程圖,任務(wù)三 單片機(jī)中
8、斷程序設(shè)計(jì),ORG 0003H,AJMP INT0P,ORG 0030H,MAIN,:,MOV SP,,,#60H,SETB EA,SETB EX0,SETB IT0,LOOP,:,MOV R0,,,#0F3H,MOV P1,,,R0,MOV R7,,,#19H,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),LOOP1,:,LCALL DELAY,DJNZ R7,,,LOOP1,MOV R0,,,#0F5H,MOV P1,,,R0,MOV R7,,,#05H,LOOP2,:,LCALL DELAY,DJNZ R7,,,LOOP2,MOV R0,,,#0DEH,MOV P1,,,R0,MOV R7,,,#19H,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),LOOP3,:,LCALL DELAY,DJNZ R7,,,LOOP3,MOV R0,,,#0EEH,MOV P1,,,R0,MOV R7,,,#05H,LOOP4,:,LCALL DELAY,DJNZ R7,,,LOOP4,AJMP LOOP,任務(wù)三 單片機(jī)中斷程序設(shè)計(jì),INT0P,:,MOV P1,,,#0F6H,MOV R7,,,#0A0H,DEL,:,ACALL DELAY,DJNZ R7,,,DEL,MOV P1,R0,RETI,謝謝!,西安航空職業(yè)技術(shù)學(xué)院,電氣自動(dòng)化教研室 王曙霞,