首先,你要知道中斷都有哪些?它們的入口地址是什么
外部中斷0,定時器0,外部中斷1,定時器1,串口中斷。
這些中斷定時器都有優先級的,他們的優先級是:0,1,2,3,4(對應上一句)
入口地址分別為:0003H,000BH,0013H,001BH,0023H
其次,你要知道中斷是如何產生的?
比如說,外部中斷0,它的外部接口就是P3.2,當P3.2口有低電平或者下降沿觸發的時候,外部中斷0就產生了。具體要用電平觸發還是邊沿觸發,這就要設置TCON。
再次,你要知道中斷產生后,跑哪里去了?
當中斷產生后,如外部中斷0產生了,單片機檢測到后,就會跳到相應的外部中斷0的處理子函數去處理這個中斷,沒有這個子函數則表示不處理。C語言寫的外部中斷0的模式如:ext0_intrupt()interrupt 0 {}
而匯編的模式則如:ORG 0000H
AJMP MAIN ;跳到主程序
ORG 0003H ;定義外部中斷0服務程序入口地址
AJMP OUTINT0 ;跳到外部中斷0處理函數
...
MAIN: ...
OUTINT0: ... ;外部中斷0處理函數
RETI
END |