Vending

Solo disponible en BuenasTareas
  • Páginas : 3 (645 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de febrero de 2010
Leer documento completo
Vista previa del texto
PROGRAMA PARA CONTROLAR UN MOTOR UNIPOLAR PASO A PASO CON UN PIC 16F877

; Declaración de variables
cblock 0x20
Count1 ; Contador Delay
Count2 ; Contador Delayendc
; Declare constants
WaitTime equ d'50' ; Espera 50 msec entre steps
Position1 equ b'1010' ; Valores de la Salida digital para 1er step
Position2 equb'1001' ; Valores de la Salida digital para 2do step
Position3 equ b'0101' ; Valores de la Salida digital para 3er step
Position4 equ b'0110' ; Valores de la Salida digitalpara 4to step
;**************** Inicio del Programa ***********************
org 0 ; Vector de Reset
nop ; nop para Microchip's In-Circuit Debugger (ICD);**************** Initialization *********************
banksel TRISA
movlw 0xC0
movwf TRISA ; Coloca bits 0-3 todas como Salidas en PortA
movlwb'00000110' ; Configura Port A como digital
movwf ADCON1
banksel PORTA ; Regreso al Bank 0
clrf Count1 ; Borra Contador
clrf Count2 ; BorraContador
movlw Position1 ; Comenzar motor in Posición 1
movwf PORTA
;******************** Motor drive *********************
Drive
movlw WaitTime; Inicializa WaitTime a Count1
movwf Count1
Loop call Timer ; Espera 1 msec
decfsz Count1, f ; Decrementa Count1. Count1 = 0 ?
goto Loop ; No –Mantente esperando
movf PORTA, w ; Leer la posición presente
sublw Position1
bnz Drive1
movlw Position2 ; En la Posición1 - step a la Posición2movwf PORTA
goto Drive ; otro Step
Drive1
movf PORTA, w ; Leer la posición actual
sublw Position4
bnz Drive2
movlw...
tracking img