PROYECTOS » Motor DC

'****************************************************************

'*  Name    : UNTITLED.BAS                                      *

'*  Author  : [select VIEW...EDITOR OPTIONS]                    *

'*  Notice  : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *

'*          : All Rights Reserved                               *

'*  Date    : 25/02/2022                                        *

'*  Version : 1.0                                               *

'*  Notes   :                                                   *

'*          :                                                   *

'****************************************************************

''''DIRECCION DE RE3GISTROS'''

PORTA=5

PORTB=6

TRISA=133

TRISB=134


''CONFIGURACION DE PUERTOS''

POKE 133,7  'PORTA=00000011'

POKE 134,0  'PORTB=00000000(TODO SALIDAS)'


''DEFINICION DE ALIAS'''

IZQ  VAR PORTA.0   'PULSADOR DE GIRO IZQUIERDA'

PARO VAR PORTA.1   'PULSADOR DE PARO DE GIRO'

DER  VAR PORTA.2    'PULSADOR DE GIRO DERECHA'


'''DEFINICION DE VARIABLES'''

T VAR WORD    'VARAIABLE DE TIEMPO'

X VAR BYTE    'VARIABLE DE MANEJO DE PUERTO PB.0 HASTA PB.3'


'''ESTADOS INICIALES'''

T=500     'TIEMPO DE 500 ms'


'''programa principal''

INICIO:

        IF DER=0 THEN GIRO_DERECHA   'SI PA.0=0 ENTONCES SALTO A LAZO1'

        IF IZQ=0 THEN GIRO_IZQUIERDA   'SI PA.1=0 ENTONCES SALTO A LAZO2'

        PAUSE 300     'ESPERA DE 18 ms (APROX FREC DE 60 HZ)

        GOTO INICIO   'RETORNO A ETIQUETA INICIO'

        

GIRO_DERECHA:                      'BUCLE DE GIRO DERECHA

      FOR X=0 TO 3                 'ACTIVA SALIDAS DESDE PB,0 HASTA PB.3

        HIGH X                      'ACTIVA SALIDA X

        PAUSE T                     'ESPERA DE T MILISEGUNDOS

        LOW X                       'DESACTIVA SALIDA X

        IF PARO=0 THEN INICIO       'LEE PULSADOR DE PARO

        IF IZQ=0 THEN GIRO_IZQUIERDA 'LEE PULSADOR DE IZQUIERDA

       NEXT X

        GOTO GIRO_DERECHA             'CONTINUA BUCLE DE GIRO DERCHA'


GIRO_IZQUIERDA:                       'BUCLE DE GIRO IZQUIERDA

       FOR X=3 TO 0 STEP -1           'ACTIVA SALIDAS DESDE PB,3 HASTA PB.0

        HIGH X                        'ACTIVA SALIDA X

        PAUSE T                       'ESPERA DE T MILISEGUNDOS

        LOW X                         'DESACTIVA SALIDA X

        IF PARO=0 THEN INICIO        'LEE PULSADOR DE PARO

        IF DER=0 THEN GIRO_DERECHA 'LEE PULSADOR DE DERECHA

       NEXT X

        GOTO GIRO_IZQUIERDA   'CONTINUA BUCLE DE GIRO IZQUIERDA'


END