Programa para mover motor a pasos
;base a la siguiente tabla:
;
; PA1 PA0 | Operacion
; -------------------------
; 0 0 | nada
;0 1 | girar a la izq.
; 1 0 | girar a la der.
; 1 1 | nada (no activado)
LIST P=16F84
W EQU 00H
PTOA EQU05H
PTOB EQU 06H
ESTADO EQU 03H
REG1 EQU 22H
REG2 EQU 23H
ORG 00H
CALL PROG_PTOSCLRF PTOB ;borra las salidas del pto B
RADIO BTFSS PTOA,0 ;si el bit0 = 1 del ptoA salta una linea sino, continua
GOTO POLY ;salto a la etiquetaPOLY (PA0=0) ----- 1ra cdn
GOTO POCKET ;Salto a la etiqueta POCKET (PA0=1)
POLY BTFSS PTOA,1 ;si el bit1 = 1 del ptoA salta una linea sino,continua
GOTO RADIO ;salto a la etiqueta Radio (PA1=0) ----- 1ra cdn
;................ Derecha.................... (PA1=1)
LOVE MOVLW 08H;Mueve el dato 08H al registro W
MOVWF PTOB ;Mueve lo que tenga el registro
DREAM CALL RETARDO ;llama a la subrutina retardo
RRFPTOB,1 ;rota el bit a la derecha, si d=1 hacerlo en el registro, ptoB
BTFSS PTOB,0 ;pregunta si el bit0=1 del pto B, si lo es salta una linea.
GOTODREAM ;vuelve a la etiqueta dream
CALL RETARDO ;llama a la subrutina retardo
CLRF PTOB ;borra las salidas del ptoB
GOTOLOVE ;vuelve a la etiqueta Love
CALL RETARDO ;llama a la subrutina retardo
GOTO RADIO
POCKET BTFSC PTOA,1 ;reafirma si en...
Regístrate para leer el documento completo.