PROYECTOS » control de luces 

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

'*  Name    : UNTITLED.BAS                                      *

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

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

'*          : All Rights Reserved                               *

'*  Date    : 7/04/2022                                         *

'*  Version : 1.0                                               *

'*  Notes   :                                                   *

'*          :                                                   *

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

DEFINE OSC 4

'DIFINICION DE VARIABLES'

T VAR BYTE

VECES VAR WORD

LED VAR BYTE

P VAR BYTE

'DIFINICION DE ALIAS'

INCRE VAR PORTA.0

DECRE VAR PORTA.1

DER VAR PORTA.2

IZQ VAR PORTA.3

T=500

'ESTADOS INICIALES'

TRISA=%11111111    'DIRECCION DE REG TRIS A'

TRISB=134     'DIRECCION DE REG TRIS A'

VECES=100 

POKE 134,0   '00110000'

POKE 6,0      'ESTADO INICIAL APAGADO TODO PUERTO B'


'PROGRAMA PRINCIPAL'

INICIO:

    FOR LED=0 TO 7       'BUCLE ACTIVACION DE SALIDAS

        HIGH LED         'ACTIVA PORT.0....HASTA PORTB.7

        GOSUB TIEMPO     'SALTO A RUTINA TIEMPO

        LOW LED          'DESACTIVA PORTB.0....HASTA PORT.7

    NEXT LED

    GOTO INICIO          'RETORNO A ETIQUETA INICIO

    

TIEMPO:

    IF INCRE=1 THEN GOSUB SUMAR   'SI ACTIVA BOTON INCRE, SALTA A SUMAR

    IF DECRE=1 THEN GOSUB RESTAR  'SI ACTIVA BOTON DECRE, SALTA A RESTAR

    FOR P=1 TO VECES              'BUCLE DE RETARDO DE 1 HASTA VALO VECES

        PAUSE 5

    NEXT

    RETURN

    

SUMAR:                            'RUTINA INCREMENTO DE TIEMPO

    IF VECES>500 THEN RETURN      'CONDICION DE VECES NO MAYOR DE 500

    VECES=VECES+25                'INCREMENTO DE VARIABLE EN 25

    RETURN

    

RESTAR:                           'RUTINA DECREMENTO DE TIEMPO

    IF VECES<50 THEN RETURN       'CONDICION DE VECES NO MENOR DE 50

    VECES=VECES-25                'DECREMENTO DE VARIABLE EN 25

    IF DER=0 THEN DERECHA

    RETURN

    

    

DERECHA:

        HIGH PORTB.0     'ACTIVA LED 

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.0      'DESACTIVA 

        HIGH PORTB.1     'ACTIVA LED 

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.1      'DESACTIVA 

        HIGH PORTB.2

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.2      'DESACTIVA 

        HIGH PORTB.3

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.3      'DESACTIVA 

        HIGH PORTB.4     'ACTIVA LED 

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.4      'DESACTIVA 

        HIGH PORTB.5     'ACTIVA LED 

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.5      'DESACTIVA 

        HIGH PORTB.6

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.6      'DESACTIVA 

        HIGH PORTB.7

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.7  

        IF IZQ=0 THEN IZQUIERDA

        GOTO DERECHA 


IZQUIERDA:

        

        HIGH PORTB.7

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.7 

        HIGH PORTB.6

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.6      'DESACTIVA 

        HIGH PORTB.5     'ACTIVA LED 

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.5      'DESACTIVA

        HIGH PORTB.4     'ACTIVA LED 

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.4      'DESACTIVA

        HIGH PORTB.3     'ACTIVA LED L9

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.3      'DESACTIVA L9

        HIGH PORTB.2     'ACTIVA LED L8

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.2      'DESACTIVA L8

        HIGH PORTB.1

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.1      'DESACTIVA L6

        HIGH PORTB.0

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.0      'DESACTIVA L7

        IF DER=0 THEN CENTRO

        GOTO IZQUIERDA

CENTRO:

        HIGH PORTB.0

        PAUSE T          'ESPERA T SEGUNDO 

        LOW PORTB.0      'DESACTIVA

        HIGH PORTB.2

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.2      'DESACTIVA

        HIGH PORTB.4

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.4      'DESACTIVA

        HIGH PORTB.6

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.6      'DESACTIVA

        IF IZQ=0 THEN COSTADO


        GOTO CENTRO  

COSTADO:

        

        HIGH PORTB.0

        PAUSE T          'ESPERA T SEGUNDO 

        HIGH PORTB.1

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.0      'DESACTIVA

        LOW PORTB.1      'DESACTIVA

        HIGH PORTB.2

        PAUSE T          'ESPERA T SEGUNDO 

        HIGH PORTB.3

        PAUSE T          'ESPERA T SEGUNDO

        LOW PORTB.2      'DESACTIVA

        LOW PORTB.3      'DESACTIVA

        HIGH PORTB.4

        PAUSE T          'ESPERA T SEGUNDO

        HIGH PORTB.5

        PAUSE T    

        LOW PORTB.4      'DESACTIVA

        LOW PORTB.5      'DESACTIVA

        HIGH PORTB.6

        PAUSE T          'ESPERA T SEGUNDO

        HIGH PORTB.7

        PAUSE T    

        LOW PORTB.6      'DESACTIVA

        LOW PORTB.7     'DESACTIVA

        IF DER=0 THEN DERECHA

        GOTO COSTADO               

    END