MSP430-assembly language part-1-DIGITAL IO

Photo of author

By Jackson Taylor

HERE I AM USING NAKEN430ASM COMPILER AND MSP430G2231 CONTROLLER

To turn on the 2 led (P1.0 & P1.6)

.include "msp430g2x31.inc"
 org 0xf800    ;SETS THE ADDRESS OF program to be stored
    mov.w #(WDTPW|WDTHOLD), &WDTCTL ;DISABLES WATCH DOG TIMER
 mov.b #0x41, &P1DIR ;selects the direction of the  I/O pins
 mov.b #0x41, &P1OUT  output on the corresponding I/O pin   
loop:
 jmp loop            ;runs the program into infinity loop
 org 0xfffe  ;SETS THE ADDRESS OF Reset vector to be stored
 dw 0xf800

To blink led

.include "msp430g2x31.inc"
 org 0xf800                       
 mov.w #(WDTPW|WDTHOLD), &WDTCTL
      CLR P1OUT 
 mov.b #0x41, &P1DIR  
 L1:   MOV.W #0xcd40,R4
DELAY:
 DEC R4
 JNZ DELAY
 xor.b #0x41, &P1OUT  
 JMP L1
 org 0xfffe
 dw 0xf800

Toggle 2 LEDS

.include "msp430g2x31.inc"
 org 0xf800                            
 mov.w #(WDTPW|WDTHOLD), &WDTCTL
 CLR  P1OUT 
 mov.b #0x41, &P1DIR
 mov.b #0x40, &P1OUT                    
L1:   MOV.W #0xCD40,R4
DELAY:
 DEC R4
 JNZ DELAY
 xor.b #0x41, &P1OUT  
 JMP L1
 org 0xfffe
 dw 0xf800

Toggle leds using the function calling

Hardware Hack

Stop Buying New Batteries for Your Tech

Electronics are expensive, but their power sources don't have to be. Discover the simple engineering trick to recondition dead batteries and bring your gadgets back to 100% capacity.

Watch the Free Video
.include "msp430g2x31.inc"
 org 0xf800               
 mov.w #(WDTPW|WDTHOLD), &WDTCTL
 mov.w #0x280, SP
 CLR  P1OUT 
 mov.b #0x41, &P1DIR
 mov.b #0x40, &P1OUT 
L2:   call #L1  
 JMP L2               
L1:   MOV.W #0xCD40,R4
DELAY:
 DEC R4
 JNZ DELAY
 xor.b #0x41, &P1OUT
 ret 
 org 0xfffe
 dw 0xf800

digital input using the P1.3 (pull down resistor required)

.include "msp430g2x31.inc"
 org 0xf800                   
 mov.w #(WDTPW|WDTHOLD), &WDTCTL
 CLR.B P1OUT
 CLR R5  
 mov.b #0x41, &P1DIR 
L1:   MOV.b &P1IN,  r5
 AND.b #0x8,r5
 tst r5
 JZ L1
 mov.b #0x41, &P1OUT 
L3:   jmp L3
 org 0xfffe
 dw 0xf800

Please see more @ http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-1.html

digital input using the P1.3 (pull down resistor required)

.include "msp430g2x31.inc"
 org 0xf800                   
 mov.w #(WDTPW|WDTHOLD), &WDTCTL
 CLR.B P1OUT
 CLR R5  
 mov.b #0x41, &P1DIR 
L1:   MOV.b &P1IN,  r5
 AND.b #0x8,r5
 tst r5
 JZ L1
 mov.b #0x41, &P1OUT 
L3:   jmp L3
 org 0xfffe
 dw 0xf800

Please see more @ http://jimmyjosep.blogspot.in/2013/12/msp430-assembly-language-part-1.html

See also
MSP430-TIMER

Revive Your Dead Electronics

Got a drawer full of dead gadgets or a failing car battery? Instead of paying a premium for replacements, use this simple trick to easily recondition them right from home.

See How It Works