Secuencia de Fases para Motor Unipolar MSP430G2553

Saludos
Hoy les traigo un programa en ensamblador para hacer girar un motor a pasos UNIPOLAR por medio del Controlador MSP430G2553.
Material
1 protoboard
1 ULN2803 integrado de transistores
1 Motor a pasos unipolar de 5V, 12V, 24V

implemetaré la siguiente secuencia
1100
0110
0011
1001
que es la secuencia normal
CÓDIGO
*********************************************************************************

;SECUENCIA DE MOTOR A PASOS CON SALIDA DE LED´s
;                MSP430x2xx
;             -----------------
;         /|\|              XIN|-
;          | |                 |
;          --|RST          XOUT|-
;            |                 |
;            |             P1.0|-->LED
;*******************************************************************************
            .cdecls C,LIST, "msp430G2553.h"  ; header
;-------------------------------------------------------------------------------
            .text                           ;  Inicio de programa
            .retain
            .retainrefs

;-------------------------------------------------------------------------------
RESET       mov.w   #250h,SP                ; Inicializar  stackpointer
AltoWDT     mov.w   #5A80h,&120h  ; Alto WDT
;--------------------------------------------------------
bis.b   #17h,&P1DIR ;definiedo P1.0, P1.1,  P1.2 y P1.4 como salidas
;--------------------------------------------------------
Sentido1:
            mov.b   #14h,&P1OUT  ;manda un 1 a las salidas P1.4 y P1.2
            call #Tiempo          ;llama subrutina de tiempo
            call #Tiempo

    mov.b   #06h,&P1OUT ;manda un 1 a las salidas P1.2 y P1.1
            call #Tiempo
            call #Tiempo

    mov.b   #03h,&P1OUT ;manda un 1 a las salidas P1.1 y P1.0
            call #Tiempo
            call #Tiempo

     mov.b   #11h,&P1OUT ;manda un 1 a las salidas P1.0 y P1.4
     call #Tiempo
     call #Tiempo

jmp Sentido1 ;repite el sentido1
;-------------------------------------------------------
Tiempo         mov.w   #0FFFFh,R5   ;subrutina (para que el motor gire más rápido podemos poner otras ;frecuencias #010FF ó #003FF)
LoopTiempo:    dec.w   R5
               jnz     LoopTiempo
               ret
;-------------------------------------------------------------------------------
;           Interrupt Vectors
;-------------------------------------------------------------------------------

  .sect   ".reset"                ;  Vector de RESET
          .short  RESET
********************************************************************************
Si quieren invertir el sentido de giro del motor, sólo intercambien las líneas 
 mov.b   #14h,&P1OUT <===>mov.b   #03h,&P1OUT

Conexión del ULN2803 con le motor a pasos 

P1.0=ActivaA
P1.1=ActivaC
P1.2=ActivaB
P1.4=ActivaD

OJO: NO CONECTAR GND Y VCC DEL MICROCONTROLADOR MSP430G2553 AL PROTOBOARD. SOLO CONECTAR LOS PUERTOS P1.0, P1.1,  P1.2 y P1.4.

Al motor a pasos le debemos conectar un Vcc de mínimo 6V para que gire, igual al ULN2803, éste soporta un Vcc hasta de 30V, pero su Vcc del UNL2803 estará definido por el máximo voltaje que soporte nuestro motor a pasos. 

Comentarios

Entradas populares de este blog

Mapas de Karnaugh

Sumador binario de 2 números de 2 Bits

EAGLE 9.0.0