 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''Programa realizado por: JOSE LUIS COMAS LLINAS          ''
''Luces auto increible2 con pic 16f628A, 13 leds y 3 botones ''
                                     
''                                                       ''
''5 de otubre de 2012                                    ''
                                                         ''
                                                         ''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

AllDigital
TRISA = %00111000
TRISB = %00000000

Dim intervalo As Byte
Dim suma As Byte
Dim secuencia As Byte
Dim ts As Byte
Dim rep As Byte

PORTA = %00000000
PORTB = %00000000

WaitMs 5
Read 1, secuencia
Read 0, suma
WaitMs 5

WaitMs 500

configuracion:
ts = secuencia + 1
If ts = 1 Then Goto inicio1
If ts = 2 Then Goto inicio2
If ts = 3 Then Goto inicio3
If ts = 4 Then Goto inicio4
If ts = 5 Then Goto inicio5
If ts = 6 Then Goto inicio6
If ts = 7 Then Goto inicio7
If ts = 8 Then Goto inicio8
If ts = 9 Then Goto inicio9
If ts = 10 Then Goto inicio10
If ts = 11 Then Goto inicio11
If ts = 12 Then Goto inicio12
If ts = 13 Then Goto inicio13
If ts = 14 Then Goto inicio14
If secuencia < 15 Then secuencia = 0
Gosub velocidad
Goto configuracion


inicio1:
PORTA = %00000000
PORTB = %00000001
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %00000000
PORTA = %11000011
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTA = %00000000
PORTB = %11110000
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Goto configuracion

inicio2:
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
Goto configuracion

inicio3:
PORTB = %10111111
PORTA = %11000111
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %10111111
PORTA = %11000111
Gosub velocidad
Goto configuracion

inicio4:
PORTB = %00111111
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %10000000
PORTA = %11000111
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio5:
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio6:
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %10111111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00001111
PORTA = %10000111
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio7:
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio8:
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
Goto configuracion

inicio9:
PORTB = %00000011
PORTA = %00000000
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00110111
Gosub velocidad
PORTB = %01101111
Gosub velocidad
PORTB = %11011011
Gosub velocidad
PORTB = %10110111
PORTA = %01000000
Gosub velocidad
PORTB = %01101111
PORTA = %11000000
Gosub velocidad
PORTB = %11011011
PORTA = %10000001
Gosub velocidad
PORTB = %10110111
PORTA = %01000011
Gosub velocidad
PORTB = %01101111
PORTA = %11000110
Gosub velocidad
PORTB = %11011011
PORTA = %10000101
Gosub velocidad
PORTB = %10110110
PORTA = %01000011
Gosub velocidad
PORTB = %10110000
PORTA = %01000011
Gosub velocidad
PORTB = %01100000
PORTA = %11000110
Gosub velocidad
PORTB = %10000000
PORTA = %01000011
Gosub velocidad
PORTB = %00000000
PORTA = %11000110
Gosub velocidad
PORTA = %10000101
Gosub velocidad
PORTA = %00000011
Gosub velocidad
PORTA = %00000110
Gosub velocidad  'comienza regreso
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %11000110
Gosub velocidad
PORTA = %01000111
PORTB = %10000000
Gosub velocidad
PORTA = %10000111
PORTB = %11000000
Gosub velocidad
PORTA = %11000110
PORTB = %01100000
Gosub velocidad
PORTA = %01000111
PORTB = %10110000
Gosub velocidad
PORTA = %10000111
PORTB = %11011000
Gosub velocidad
PORTA = %11000110
PORTB = %01101100
Gosub velocidad
PORTA = %01000111
PORTB = %10110110
Gosub velocidad
PORTA = %10000111
PORTB = %11011011
Gosub velocidad
PORTA = %11000110
PORTB = %01101101
Gosub velocidad
PORTA = %01000011
PORTB = %10110110
Gosub velocidad
PORTA = %10000001
PORTB = %11011011
Gosub velocidad
PORTA = %11000000
PORTB = %01101101
Gosub velocidad
PORTA = %01000000
PORTB = %10110110
Gosub velocidad
PORTA = %00000000
PORTB = %11011011
Gosub velocidad
PORTB = %01101101
Gosub velocidad
PORTB = %00110110
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00001101
Gosub velocidad
PORTB = %00000110
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Goto configuracion

inicio10:
PORTB = %01010101
PORTA = %01000101
Gosub velocidad
PORTB = %10101010
PORTA = %10111010
Gosub velocidad
Goto configuracion

inicio11:
PORTB = %00000001
PORTA = %00000000
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %11111111
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000111
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %00000000
PORTB = %11111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000001
Gosub velocidad
PORTB = %00000000
Gosub velocidad
Goto configuracion

inicio12:
PORTB = %00000001
PORTA = %00000000
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %11111111
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
Gosub velocidad
PORTB = %11111100
Gosub velocidad
PORTB = %11111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
Gosub velocidad
PORTB = %11000000
Gosub velocidad
PORTB = %10000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio13:
PORTB = %01111111
PORTA = %00000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000111
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000111
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Goto configuracion

inicio14:
For rep = 1 To 15
PORTA = %00000000
PORTB = %00000001
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %00000000
PORTA = %11000011
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTB = %10000000
PORTA = %11000001
Gosub velocidad
PORTB = %11000000
PORTA = %11000000
Gosub velocidad
PORTB = %11100000
PORTA = %01000000
Gosub velocidad
PORTA = %00000000
PORTB = %11110000
Gosub velocidad
PORTB = %01111000
Gosub velocidad
PORTB = %00111100
Gosub velocidad
PORTB = %00011110
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
Next rep


For rep = 1 To 15
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %10111111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00001111
PORTA = %10000111
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000000
PORTA = %00000000
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111111
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
PORTA = %11000011
Gosub velocidad
PORTB = %11111100
PORTA = %11000001
Gosub velocidad
PORTB = %11111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
PORTA = %00000000
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %00000001
PORTA = %00000100
Gosub velocidad
PORTB = %00000011
PORTA = %00000110
Gosub velocidad
PORTB = %00000111
PORTA = %00000111
Gosub velocidad
PORTB = %00001110
PORTA = %10000011
Gosub velocidad
PORTB = %00011100
PORTA = %11000001
Gosub velocidad
PORTB = %10111000
PORTA = %11000000
Gosub velocidad
PORTB = %11110000
PORTA = %01000000
Gosub velocidad
PORTB = %11100000
PORTA = %00000000
Gosub velocidad
PORTB = %01000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
Next rep

For rep = 1 To 15
PORTB = %00000011
PORTA = %00000000
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00110111
Gosub velocidad
PORTB = %01101111
Gosub velocidad
PORTB = %11011011
Gosub velocidad
PORTB = %10110111
PORTA = %01000000
Gosub velocidad
PORTB = %01101111
PORTA = %11000000
Gosub velocidad
PORTB = %11011011
PORTA = %10000001
Gosub velocidad
PORTB = %10110111
PORTA = %01000011
Gosub velocidad
PORTB = %01101111
PORTA = %11000110
Gosub velocidad
PORTB = %11011011
PORTA = %10000101
Gosub velocidad
PORTB = %10110110
PORTA = %01000011
Gosub velocidad
PORTB = %10110000
PORTA = %01000011
Gosub velocidad
PORTB = %01100000
PORTA = %11000110
Gosub velocidad
PORTB = %10000000
PORTA = %01000011
Gosub velocidad
PORTB = %00000000
PORTA = %11000110
Gosub velocidad
PORTA = %10000101
Gosub velocidad
PORTA = %00000011
Gosub velocidad
PORTA = %00000110
Gosub velocidad  'comienza regreso
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %11000110
Gosub velocidad
PORTA = %01000111
PORTB = %10000000
Gosub velocidad
PORTA = %10000111
PORTB = %11000000
Gosub velocidad
PORTA = %11000110
PORTB = %01100000
Gosub velocidad
PORTA = %01000111
PORTB = %10110000
Gosub velocidad
PORTA = %10000111
PORTB = %11011000
Gosub velocidad
PORTA = %11000110
PORTB = %01101100
Gosub velocidad
PORTA = %01000111
PORTB = %10110110
Gosub velocidad
PORTA = %10000111
PORTB = %11011011
Gosub velocidad
PORTA = %11000110
PORTB = %01101101
Gosub velocidad
PORTA = %01000011
PORTB = %10110110
Gosub velocidad
PORTA = %10000001
PORTB = %11011011
Gosub velocidad
PORTA = %11000000
PORTB = %01101101
Gosub velocidad
PORTA = %01000000
PORTB = %10110110
Gosub velocidad
PORTA = %00000000
PORTB = %11011011
Gosub velocidad
PORTB = %01101101
Gosub velocidad
PORTB = %00110110
Gosub velocidad
PORTB = %00011011
Gosub velocidad
PORTB = %00001101
Gosub velocidad
PORTB = %00000110
Gosub velocidad
PORTB = %00000011
Gosub velocidad
Next rep


For rep = 1 To 15
PORTB = %00000001
PORTA = %00000000
Gosub velocidad
PORTB = %00000011
Gosub velocidad
PORTB = %00000111
Gosub velocidad
PORTB = %00001111
Gosub velocidad
PORTB = %00011111
Gosub velocidad
PORTB = %00111111
Gosub velocidad
PORTB = %01111111
Gosub velocidad
PORTB = %11111111
Gosub velocidad
PORTA = %01000000
Gosub velocidad
PORTA = %11000000
Gosub velocidad
PORTA = %11000001
Gosub velocidad
PORTA = %11000011
Gosub velocidad
PORTA = %11000111
Gosub velocidad
PORTB = %11111110
Gosub velocidad
PORTB = %11111100
Gosub velocidad
PORTB = %11111000
Gosub velocidad
PORTB = %11110000
Gosub velocidad
PORTB = %11100000
Gosub velocidad
PORTB = %11000000
Gosub velocidad
PORTB = %10000000
Gosub velocidad
PORTB = %00000000
Gosub velocidad
PORTA = %10000111
Gosub velocidad
PORTA = %00000111
Gosub velocidad
PORTA = %00000110
Gosub velocidad
PORTA = %00000100
Gosub velocidad
PORTA = %00000000
Gosub velocidad
Next rep

Goto configuracion

End                                               

velocidad:

If PORTA.5 = 1 Then
WaitMs 500
secuencia = secuencia + 1
Write 1, secuencia
Endif

If PORTA.3 = 1 Then
WaitMs 500
suma = suma - 5
Write 0, suma
Endif

If PORTA.4 = 1 Then
WaitMs 500
suma = suma + 5
Write 0, suma
Endif

If PORTA.3 = 1 And PORTA.4 = 1 Then
WaitMs 1500
PORTA = %11000111
PORTB = %11111111
suma = 0
Write 0, suma
WaitMs 500
Endif

If PORTA.5 = 1 And PORTA.4 = 1 Then
WaitMs 1500
PORTA = %11000111
PORTB = %11111111
secuencia = 0
suma = 0
Write 0, suma
Write 1, secuencia
WaitMs 500
Endif

intervalo = suma + 75

WaitMs intervalo
Return