【摘 要】本文結(jié)合生活實(shí)例詳細(xì)講述了中斷系統(tǒng)的概念、中斷優(yōu)先級(jí)、中斷嵌套以及定時(shí)/計(jì)數(shù)器,通過實(shí)例編程解析了定時(shí)/計(jì)數(shù)器T0在AT89C51中斷系統(tǒng)中的應(yīng)用,實(shí)踐證明運(yùn)用綜合教學(xué)方法,教學(xué)效果顯著。
【關(guān)鍵詞】AT89C51 中斷系統(tǒng) 教學(xué)手段
【中圖分類號(hào)】TP399 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-4810(2015)01-0200-01
一 中斷系統(tǒng)
1.中斷概念
中斷的概念指CPU在執(zhí)行程序的過程中,當(dāng)出現(xiàn)異常情況或特殊請(qǐng)求時(shí),CPU停止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)向?qū)@些異常情況或特殊請(qǐng)求的處理,處理結(jié)束后再返回現(xiàn)行程序的間斷處,繼續(xù)執(zhí)行原程序。
2.中斷優(yōu)先級(jí)及中斷嵌套
你正在看書,突然有同學(xué)找你出去玩,同時(shí),班主任也找你談話,你優(yōu)先選擇執(zhí)行哪一個(gè),或者你在看書,突然同學(xué)找你出去玩,在玩的過程中,突然班主任找你談話,你是否執(zhí)行后者,這就是中斷優(yōu)先級(jí)。如果班主任的優(yōu)先級(jí)比同學(xué)的高,在玩的過程中,先執(zhí)行與班主任談話,就是中斷嵌套。
由于單片面中有多個(gè)中斷源,在實(shí)際的應(yīng)用中有可能同時(shí)用到多個(gè)中斷源。所以在使用單片機(jī)中斷時(shí),需要掌握中斷的嵌套和優(yōu)先級(jí)的處理。優(yōu)先級(jí)的問題不僅發(fā)生在多個(gè)中斷源同時(shí)請(qǐng)求CPU中斷的情況,也發(fā)生在一個(gè)中斷已執(zhí)行,又有一個(gè)中斷源請(qǐng)求中斷的情況。
當(dāng)CPU響應(yīng)某一中斷時(shí),若有優(yōu)先權(quán)高的中斷源提出中斷請(qǐng)求,CPU則中斷正在進(jìn)行的中斷服務(wù)程序,并保留這個(gè)程序的斷點(diǎn)(類似于子程序嵌套),響應(yīng)高優(yōu)先級(jí)中斷,高優(yōu)先級(jí)中斷處理結(jié)束后,再繼續(xù)進(jìn)行被中斷的中斷服務(wù)程序,這個(gè)過程稱為中斷嵌套。如果發(fā)出新的中斷請(qǐng)求的中斷源的優(yōu)先權(quán)級(jí)別與正在處理的中斷源同級(jí)或更低時(shí),CPU不會(huì)響應(yīng)這個(gè)中斷請(qǐng)求,直至正在處理的中斷服務(wù)程序執(zhí)行完以后才能去處理新的中斷請(qǐng)求。中斷嵌套示意圖,如下圖所示:
二 定時(shí)/計(jì)數(shù)器
例如:系統(tǒng)時(shí)鐘振蕩頻率為12MHz,用定時(shí)/計(jì)數(shù)器T0,工作在方式1,定時(shí)50ms。
其初始化程序編寫如下:
MOV TMOD, #01H ;選擇T0,工作方式1,定時(shí)狀態(tài)
MOV TH0, #3CH ;設(shè)定定時(shí)50ms的初始值
MOV TL0, #0B0H
SETB TR0
三 定時(shí)/計(jì)數(shù)器在中斷系統(tǒng)中的應(yīng)用
系統(tǒng)時(shí)鐘振蕩頻率為12MHz,要在MCS-51單片機(jī)的P1.0、P1.1端輸出周期為2s的方波,且P1.0和P1.1輸出的波形相反,該方波的周期用定時(shí)計(jì)數(shù)器T0來確定,且工作在方式1,采用中斷方法實(shí)現(xiàn)。
編程分析:在T0中設(shè)置一個(gè)定時(shí)常數(shù),使其每隔50ms產(chǎn)生一次中斷,CPU響應(yīng)中斷后,在中斷服務(wù)程序中恢復(fù)定時(shí)常數(shù),連續(xù)20次中斷后,對(duì)P1.0、P1.1端分別取反,T0的中斷服務(wù)程序入口地址為000BH。程序如下:
ORG 0000H
JMP START
ORG 000BH;T0中斷入口地址
JMP TT0
ORG 0100H
START:
MOV TMOD, #01H;選擇T0,工作方式1
MOV TH0, #3CH;設(shè)定50ms的初始值
MOV TL0, #0B0H
SETB TR0
SETB EA;開中斷
SETB ET0
CLR P1.0
SETB P1.1
LOOP:
MOV R2, #20;連續(xù)20個(gè)中斷,取反一次
LOOP1:
CJNE R2, #0,LOOP1
JMP LOOP
TT0:
MOV TH0, #3CH;重裝定時(shí)/計(jì)數(shù)器初始值
MOV TL0, #0B0H
DJNZ R2,REE
CPL P1.0;定時(shí)1s到,P1.0取反
CPL P1.1
REE: RETI
END
四 小結(jié)
在AT89C5151單片機(jī)中,中斷系統(tǒng)綜合了單片機(jī)幾乎所有的內(nèi)容,是綜合知識(shí)較強(qiáng)、內(nèi)容復(fù)雜、難度較大的一部分。
參考文獻(xiàn)
[1]陳玉平、牟應(yīng)華主編.單片機(jī)應(yīng)用技術(shù)[M].武漢:華中科技大學(xué)出版社,2008
[2]羅學(xué)恒主編.單片機(jī)實(shí)用教程——單片機(jī)原理·匯編語言·接口技術(shù)[M].北京:高等教育出版社,2006
[3]盧易楓、楊永霞.職業(yè)院校單片機(jī)教學(xué)心得[J].工業(yè)控制計(jì)算機(jī),2010(6)
〔責(zé)任編輯:林勁〕