Hola a todos soy nuevo o novato con el basic y necesito hacer rotar el contenido de la variable aux y no puedo, no doy con la tecla de como hacerlo con este soft yo me cree otro que si me funciona pero la variable la cargo con decimales y uso el registro como barrido y las columnas como llenado, lo opuesto a este soft. Desde ya gracias a los que puedan aportar algo.
DEVICE 18F452 'the pic controler'
XTAL=4 'FRECUENCIA DE TRABAJO'
ALL_DIGITAL = TRUE 'todos los puertos en digital mode'
'CONFIGURO PUERTOS'
'CONFIG PORTB'
TRISB.0=0
TRISB.1=0
TRISB.2=0
TRISB.3=0
TRISB.4=0
TRISB.5=0
TRISB.6=0
TRISB.7=0
'CONFIG PORTD'
TRISD.0=0
TRISD.1=0
TRISD.2=0
TRISD.3=0
TRISD.4=0
TRISD.5=0
TRISD.6=0
TRISD.7=0
'CONFIG PORTC'
TRISC.0=0
TRISC.1=0
TRISC.2=0
TRISC.3=0
TRISC.4=0
TRISC.5=0
TRISC.6=0
TRISC.7=0
'CONFIG PORTA'
TRISA.0=0
TRISA.1=0
TRISA.2=1
TRISA.3=1
TRISA.4=1
TRISA.5=0
'CONFIG PORTE'
TRISE.0=1
TRISE.1=1
TRISE.2=1
'simbolos de identificacion de los puertos en el soft'
SYMBOL DATA1=PORTA.0
SYMBOL CLOCK=PORTA.1
symbol f1=portb.0
symbol f2=portb.1
symbol f3=portb.2
symbol f4=portb.3
symbol f5=portb.4
symbol f6=portb.5
symbol f7=portb.6
symbol f8=portb.7
symbol fA1=portd.0
symbol fA2=portd.1
symbol fA3=portd.2
symbol fA4=portd.3
symbol fA5=portd.4
symbol fA6=portd.5
symbol fA7=portd.6
symbol fA8=portd.7
symbol fB1=portc.0
symbol fB2=portc.1
symbol fB3=portc.2
symbol fB4=portc.3
symbol fB5=portc.4
symbol fB6=portc.5
symbol fB7=portc.6
symbol fB8=portc.7
symbol IN = PORTE
SYMBOL IN2 = PORTA.2
SYMBOL MODE=PORTA.3
SYMBOL LED = PORTA.5
'Dimensiones de variables '
dim aux as dword
dim col as byte
dim time as byte
'======================'
'////////////'
'----------'
time = 2
clock = 0
data1 = 0
'--------------------------------------------------------------------------'
' for make the number in big 15 '
LOOPA:
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111000000000000000000
Gosub escribo
f1=1
pause time
f1=0
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111100000000000000000
Gosub escribo
f2=1
pause time
f2=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111110000000000000000
Gosub escribo
f3=1
pause time
f3=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111111000000000000000
Gosub escribo
f4=1
pause time
f4=0
'
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111111111100000000000000
Gosub escribo
f5=1
pause time
f5=0
'
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111111111110000000000000
Gosub escribo
f6=1
pause time
f6=0
'
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
f7=1
pause time
f7=0
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
f8=1
pause time
f8=0
'STAGE 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
aux = %000000000000000000000001
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA1=1
pause time
fA1=0
aux = %000000000000000000000111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA2=1
pause time
fA2=0
'
aux = %000000000000000000001111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA3=1
pause time
fA3=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA4=1
pause time
fA4=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA5=1
pause time
fA5=0
'
aux = %000000000000000000111111
Gosub escribo
aux = %000000000000000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA6=1
pause time
fA6=0
'
aux = %000000000000000001111110
Gosub escribo
aux = %000000000000000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA7=1
pause time
fA7=0
aux = %000000000000000001111110
Gosub escribo
aux = %000000000000000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA8=1
pause time
fA8=0
'STAGE 3//////////////////////////////////////////////////////////'
aux = %000000000000000001111100
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB1=1
pause time
fB1=0
aux = %000000000000000001111100
Gosub escribo
aux = %000000000011111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB2=1
pause time
fB2=0
'
aux = %000000000000000000111110
Gosub escribo
aux = %000000000111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB3=1
pause time
fB3=0
'
aux = %000000000000000000111111
Gosub escribo
aux = %111111111111111000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB4=1
pause time
fB4=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111110000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB5=1
pause time
fB5=0
'
aux = %000000000000000000001111
Gosub escribo
aux = %111111111111110000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB6=1
pause time
fB6=0
'
aux = %000000000000000000000111
Gosub escribo
aux = %111111111111100000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB7=1
pause time
fB7=0
aux = %000000000000000000000000
Gosub escribo
aux = %111111111111000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB8=1
pause time
fB8=0
GOTO LOOPA
End
'
'Subrutina que llena el registro
escribo:
For col = 1 To 24
If aux.23= 0 Then
data1 = 0
pauseUS 2
clock = 0
pauseUS 2
clock = 1
pauseUS 2
Else
data1 = 1
pauseUS 2
clock = 0
pauseUS 2
clock = 1
pauseUS 2
ENDIF
aux = aux << 1
Next col
Return
Ver el archivo adjunto IMG_0142 (2).rar >>Imagen adjunta de la matriz <<
DEVICE 18F452 'the pic controler'
XTAL=4 'FRECUENCIA DE TRABAJO'
ALL_DIGITAL = TRUE 'todos los puertos en digital mode'
'CONFIGURO PUERTOS'
'CONFIG PORTB'
TRISB.0=0
TRISB.1=0
TRISB.2=0
TRISB.3=0
TRISB.4=0
TRISB.5=0
TRISB.6=0
TRISB.7=0
'CONFIG PORTD'
TRISD.0=0
TRISD.1=0
TRISD.2=0
TRISD.3=0
TRISD.4=0
TRISD.5=0
TRISD.6=0
TRISD.7=0
'CONFIG PORTC'
TRISC.0=0
TRISC.1=0
TRISC.2=0
TRISC.3=0
TRISC.4=0
TRISC.5=0
TRISC.6=0
TRISC.7=0
'CONFIG PORTA'
TRISA.0=0
TRISA.1=0
TRISA.2=1
TRISA.3=1
TRISA.4=1
TRISA.5=0
'CONFIG PORTE'
TRISE.0=1
TRISE.1=1
TRISE.2=1
'simbolos de identificacion de los puertos en el soft'
SYMBOL DATA1=PORTA.0
SYMBOL CLOCK=PORTA.1
symbol f1=portb.0
symbol f2=portb.1
symbol f3=portb.2
symbol f4=portb.3
symbol f5=portb.4
symbol f6=portb.5
symbol f7=portb.6
symbol f8=portb.7
symbol fA1=portd.0
symbol fA2=portd.1
symbol fA3=portd.2
symbol fA4=portd.3
symbol fA5=portd.4
symbol fA6=portd.5
symbol fA7=portd.6
symbol fA8=portd.7
symbol fB1=portc.0
symbol fB2=portc.1
symbol fB3=portc.2
symbol fB4=portc.3
symbol fB5=portc.4
symbol fB6=portc.5
symbol fB7=portc.6
symbol fB8=portc.7
symbol IN = PORTE
SYMBOL IN2 = PORTA.2
SYMBOL MODE=PORTA.3
SYMBOL LED = PORTA.5
'Dimensiones de variables '
dim aux as dword
dim col as byte
dim time as byte
'======================'
'////////////'
'----------'
time = 2
clock = 0
data1 = 0
'--------------------------------------------------------------------------'
' for make the number in big 15 '
LOOPA:
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111000000000000000000
Gosub escribo
f1=1
pause time
f1=0
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111100000000000000000
Gosub escribo
f2=1
pause time
f2=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111110000000000000000
Gosub escribo
f3=1
pause time
f3=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111111111000000000000000
Gosub escribo
f4=1
pause time
f4=0
'
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111111111100000000000000
Gosub escribo
f5=1
pause time
f5=0
'
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111111111110000000000000
Gosub escribo
f6=1
pause time
f6=0
'
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
f7=1
pause time
f7=0
aux = %000000000000000000000000
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
f8=1
pause time
f8=0
'STAGE 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
aux = %000000000000000000000001
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA1=1
pause time
fA1=0
aux = %000000000000000000000111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA2=1
pause time
fA2=0
'
aux = %000000000000000000001111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA3=1
pause time
fA3=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA4=1
pause time
fA4=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA5=1
pause time
fA5=0
'
aux = %000000000000000000111111
Gosub escribo
aux = %000000000000000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA6=1
pause time
fA6=0
'
aux = %000000000000000001111110
Gosub escribo
aux = %000000000000000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA7=1
pause time
fA7=0
aux = %000000000000000001111110
Gosub escribo
aux = %000000000000000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fA8=1
pause time
fA8=0
'STAGE 3//////////////////////////////////////////////////////////'
aux = %000000000000000001111100
Gosub escribo
aux = %000000000001111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB1=1
pause time
fB1=0
aux = %000000000000000001111100
Gosub escribo
aux = %000000000011111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB2=1
pause time
fB2=0
'
aux = %000000000000000000111110
Gosub escribo
aux = %000000000111111100000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB3=1
pause time
fB3=0
'
aux = %000000000000000000111111
Gosub escribo
aux = %111111111111111000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB4=1
pause time
fB4=0
'
aux = %000000000000000000011111
Gosub escribo
aux = %111111111111110000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB5=1
pause time
fB5=0
'
aux = %000000000000000000001111
Gosub escribo
aux = %111111111111110000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB6=1
pause time
fB6=0
'
aux = %000000000000000000000111
Gosub escribo
aux = %111111111111100000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB7=1
pause time
fB7=0
aux = %000000000000000000000000
Gosub escribo
aux = %111111111111000000000000
Gosub escribo
aux = %111110000000000000000000
Gosub escribo
fB8=1
pause time
fB8=0
GOTO LOOPA
End
'
'Subrutina que llena el registro
escribo:
For col = 1 To 24
If aux.23= 0 Then
data1 = 0
pauseUS 2
clock = 0
pauseUS 2
clock = 1
pauseUS 2
Else
data1 = 1
pauseUS 2
clock = 0
pauseUS 2
clock = 1
pauseUS 2
ENDIF
aux = aux << 1
Next col
Return
Ver el archivo adjunto IMG_0142 (2).rar >>Imagen adjunta de la matriz <<
Última edición: