我在學習單片機中斷的時候,看到那些程序時,就是不知道那些程序是怎么運行的,他們的步驟是怎么樣的,我不清楚,盼你來幫我解釋一下,謝謝!
首先,你要知道中斷都有哪些?它們的入口地址是什么
外部中斷0,定時器0,外部中斷1,定時器1,串口中斷。
這些中斷定時器都有優(yōu)先級的,他們的優(yōu)先級是:0,1,2,3,4(對應(yīng)上一句)
入口地址分別為:0003H,000BH,0013H,001BH,0023H
其次,你要知道中斷是如何產(chǎn)生的?
比如說,外部中斷0,它的外部接口就是P3.2,當P3.2口有低電平或者下降沿觸發(fā)的時候,外部中斷0就產(chǎn)生了。具體要用電平觸發(fā)還是邊沿觸發(fā),這就要設(shè)置TCON。
再次,你要知道中斷產(chǎn)生后,跑哪里去了?
當中斷產(chǎn)生后,如外部中斷0產(chǎn)生了,單片機檢測到后,就會跳到相應(yīng)的外部中斷0的處理子函數(shù)去處理這個中斷,沒有這個子函數(shù)則表示不處理。C語言寫的外部中斷0的模式如:ext0_intrupt()interrupt 0 {}
而匯編的模式則如:ORG 0000H
AJMP MAIN ;跳到主程序
ORG 0003H ;定義外部中斷0服務(wù)程序入口地址
AJMP OUTINT0 ;跳到外部中斷0處理函數(shù)
...
MAIN: ...
OUTINT0: ... ;外部中斷0處理函數(shù)
RETI
END
頂
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |