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