MSP430-assembly language part-1.1-Interrupt & Pull up/down

Photo of author

By Jackson Taylor

Digital input with INTERNAL PULL DOWN in “P1.4”       .include “msp430g2x31.inc”       org 0xf800                                  mov.w #(WDTPW|WDTHOLD), &WDTCTL       mov.b #0x10, P1REN       CLR.B P1OUT       CLR R5         mov.b #0x1, &P1DIR  L1:   MOV.b &P1IN,  r5       AND.b #0x10,r5       tst r5       JZ L1       mov.b #0x41, &P1OUT      L3:   jmp L3       org 0xfffe       dw 0xf800 External interrupt at port 1 Basic Steps 1)Enable global interrupt(eint) 2)Enable external interrupt (on p1.4–P1IE  ) 3)select interrupt edge (IP1IES) 4)clear P1IFG flag starting the program 5)clear P1IFG flag in your interrupt service routine .include “msp430g2x31.inc”       org 0xf800                        mov.w #(WDTPW|WDTHOLD), &WDTCTL       mov.w #0x280, SP       mov.b #0x10, P1REN       CLR.B P1OUT       mov.b   #001h,&P1DIR                  bis.b   #010h,&P1IE        ;enable interrupt on p1.4          bis.b   #010h,&P1IES       ;select -ve edge       bic.b   #010h,&P1IFG       ;clear interuupt flag              eint ;enables interrup       gg:jmp gg    P1ISR:    mov.b   #001h,&P1OUT                     bic.b   #010h,&P1IFG                      reti                                     ORG     0FFE4h                            DW      P1ISR               ORG     0FFFEh                            DW      0xf800 LONG DELAY LOOP .INCLUDE “msp430x2xx.inc”  ORG 0xf800          MOV #(WDTPW|WDTHOLD), &WDTCTL  MOV #0x280,SP  MOV.B #0x41, &P1DIR  MOV.B #0x41, &P1OUT LOOP1:  MOV #65000,R4  MOV #65000,R5  CALL #LOOP2  JMP LOOP1 LOOP2:  DEC R4  TST R4  JNZ LOOP2 LOOP3:  DEC R5   TST R5  JNZ LOOP3  XOR.B #0x41,&P1OUT  RET  ORG 0xfffe DW 0xF800 LED BLINKING USING BIT INSTRUCTION .INCLUDE “msp430x2xx.inc”  ORG 0xf800          MOV #(WDTPW|WDTHOLD), &WDTCTL  MOV #0x280,SP  MOV.B #0x41, &P1DIR  MOV.B #0, &P1OUT LOOP2:  MOV #65000,R4  CALL #LOOP1  JMP LOOP2 LOOP1:  DEC R4  BIT #0xFFFE,R4   ;SIMPLY “AND”S BETWEEN SRC & DST.                                  ;RESULT WILL NOT AFFECT SRC & DST.                                   ;USED FOR BIT TESTING  JNZ LOOP1  XOR.B #0x41,&P1OUT  RET  ORG 0xfffe   DW 0xF800 Next Timer
See also
PIC16F877A-HITECH C-Part1 1) All pin in the PORTB high ADC
http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php Basic Steps 1)Enable global interrupt(eint) 2)Enable external interrupt (on p1.4–P1IE  ) 3)select interrupt edge (IP1IES) 4)clear P1IFG flag starting the program 5)clear P1IFG flag in your interrupt service routine .include “msp430g2x31.inc”       org 0xf800                        mov.w #(WDTPW|WDTHOLD), &WDTCTL       mov.w #0x280, SP       mov.b #0x10, P1REN       CLR.B P1OUT       mov.b   #001h,&P1DIR                  bis.b   #010h,&P1IE        ;enable interrupt on p1.4          bis.b   #010h,&P1IES       ;select -ve edge       bic.b   #010h,&P1IFG       ;clear interuupt flag              eint ;enables interrup       gg:jmp gg    P1ISR:    mov.b   #001h,&P1OUT                     bic.b   #010h,&P1IFG                      reti                                     ORG     0FFE4h                            DW      P1ISR               ORG     0FFFEh                            DW      0xf800 LONG DELAY LOOP .INCLUDE “msp430x2xx.inc”  ORG 0xf800          MOV #(WDTPW|WDTHOLD), &WDTCTL  MOV #0x280,SP  MOV.B #0x41, &P1DIR  MOV.B #0x41, &P1OUT LOOP1:  MOV #65000,R4  MOV #65000,R5  CALL #LOOP2  JMP LOOP1 LOOP2:  DEC R4  TST R4  JNZ LOOP2 LOOP3:  DEC R5   TST R5  JNZ LOOP3  XOR.B #0x41,&P1OUT  RET  ORG 0xfffe DW 0xF800 LED BLINKING USING BIT INSTRUCTION .INCLUDE “msp430x2xx.inc”  ORG 0xf800          MOV #(WDTPW|WDTHOLD), &WDTCTL  MOV #0x280,SP  MOV.B #0x41, &P1DIR  MOV.B #0, &P1OUT LOOP2:  MOV #65000,R4  CALL #LOOP1  JMP LOOP2 LOOP1:  DEC R4  BIT #0xFFFE,R4   ;SIMPLY “AND”S BETWEEN SRC & DST.                                  ;RESULT WILL NOT AFFECT SRC & DST.                                   ;USED FOR BIT TESTING  JNZ LOOP1  XOR.B #0x41,&P1OUT  RET  ORG 0xfffe   DW 0xF800 Next Timer http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit 
See also
MSP430-INTERNAL PULL DOWN
http://www.mikekohn.net/micro/naken_asm.php http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-2.html for More examples visit  http://www.mikekohn.net/micro/naken_asm.php