參考資訊:
http://plit.de/asem-51/
http://www.stcisp.com/stcisp620_off.html
https://sourceforge.net/projects/mcu8051ide/
I/O的Input中斷可以使用輪詢(Poll)或者中斷向量(Vector)兩種處理方式,輪詢的方式就是一直檢查中斷旗標,藉此得知Input是否有中斷發生,當然這種方式比較耗CPU資源,因為CPU無法在此期間去做其它事情,另一種方式則是在中斷向量表設定要處理的副程式,當Input中斷發生時,因為Input中斷具有高優先權,CPU會優先跳轉到設定的副程式處理Input中斷
設定步驟如下:
1. 開啟中斷功能(EA) 2. 開啟INT1中斷功能(EX1) 3. 設定觸發方式(IT1) 4. 設定中斷向量表(.org 13h) 5. 撰寫中斷副程式(硬體會自動清除中斷旗標)
IE
TCON
main.s
btn .equ p3.3 led .equ p3.2 .org 0h jmp _start .org 13h jmp int1_handle .org 100h _start: setb ea setb ex1 setb it1 setb led clr c jmp $ int1_handle: jc i0 setb c clr led reti i0: clr c setb led reti .end
P.S. 程式利用C旗標當作LED設定判斷,ON、OFF交互設定
編譯
$ mcu8051ide --compile main.s
完成