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