Steward
分享是一種喜悅、更是一種幸福
微處理器 - Microchip PIC12F1822 - Assembly - Interrupt On Change(IOC)
1. 設定TRISA輸入
2. 設定WPUA提昇電阻
3. 設定IOCAx正緣、負緣觸發
4. 開啟GPE、IOC中斷
5. 進入中斷後,清除IOC以及IOCA旗標
main.s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | list p= 12f1822 , r= hex # include < p12f1822 . inc > __config _CONFIG1 , _FOSC_INTOSC & _WDTE_OFF & _MCLRE_OFF __config _CONFIG2 , _LVP_OFF # define tmp 0x20 org 0x0000 goto start org 0x0004 goto myisr org 0x0100 myisr : banksel INTCON bcf INTCON , 7 bcf INTCON , 0 banksel IOCAF movlw 0xff xorwf IOCAF , w andwf IOCAF , f banksel tmp btfss tmp, 0 bcf PORTA , 0 btfsc tmp, 0 bsf PORTA , 0 movlw 0xff xorwf tmp, f banksel INTCON bsf INTCON , 7 retfie start : banksel TRISA bcf TRISA , 0 bsf TRISA , 3 banksel OPTION_REG bcf OPTION_REG , 7 banksel WPUA bsf WPUA , 3 banksel PORTA bsf PORTA , 0 banksel tmp clrf tmp banksel IOCAN bsf IOCAN , 3 banksel INTCON bsf INTCON , 7 bsf INTCON , 3 bcf INTCON , 0 goto $ end |
編譯
$ gpasm main.s
完成