hola amigo, aqui tengo una matris de leds de 8 x32 alguien me puede ayudar quiero aumentar dos pulsadoresel 1 salga el texto OCUP Y CON OTRO PULSADOR SALGA LA PALABRA "LIBRE"
Device = 16F877A
XTAL = 4
Dim A As Word
Dim B As Word
Dim C As Word
Dim W As Word
Dim LETRA As Word
Dim CONTADOR As Word
Dim CONTADOR1 As Byte
Dim CONTADOR2 As Byte
Dim CONTADOR3 As Byte
Symbol pul1 = PORTA.0 AQUI ESTA LA VARIABLE PARA LOS PULSADORES
Symbol pul2 = PORTA.1
Symbol FILA = PORTB
ALL_DIGITAL = True
TRISA = %11111111
TRISB = %00000000
TRISC = %00000110
CMCON=7
Low PORTB
Low PORTC
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 126,255,129,129,255,126,0,0 'LETRA "0"
Data 255,255,195,195,195,195,0,0 'LETRA "C"
Data 254,255,3,3,3,255,254,0,0 'LETRA "U"
Data 255,255,204,204,204,120,0,0 'LETRA "P"
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Data 0,0,0,0,0,0,0,0,0,0,0 'ESPACIO
Inicio:
B = 0 'B SERA EL INICIO DE LAS COLUMNAS DE IZQUIERDA A DERCHA.
B = B + W 'B SE INCREMENTARA DE A UNO, Y 1OOPRE ESTARA SEPARAD0 31 POSICIONES RESPECTO A 'C'
C = B + 31 'SON TODOS LAS COLUMNAS(32) DE DERCHA A ISQUIERDA.
For CONTADOR3 = 0 To 1 'VECES MENSAJE velocidad letras
A=1
For CONTADOR1 = 0 To 7 'ANCHO DE BITS O TAMAÑO DE LETRAS 8 bits
For CONTADOR = B To C 'LARGO DE MATRIS O # DE COLUMNAS(32).
Restore CONTADOR
Read LETRA
GoSub escribo
Next
FILA = ~A
DelayMS 1 'PARA VARIAR LA VELOCIDAD DE LAS LETRAS
A = A * 2
FILA = 255 'LA SUMA DE LOS 8 BITS (11111111)=255
Next
Next
W = W + 1 'W SUMA DE A 1 ASTA LLEGAR A 382
If W > 80 Then W=0 'NUMERO DE LETRAS AL DESPLAZARCE 40letras x 9.95 = 382
GoTo Inicio
End
'//////////////subrutina/////////////////
escribo:
Branch CONTADOR1, [b0,b1,b2,b3,b4,b5,b6,b7]
b0:
If LETRA.7 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
GoTo retorno
b1:
If LETRA.6 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
GoTo retorno
b2:
If LETRA.5 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
GoTo retorno
b3:
If LETRA.4 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
GoTo retorno
b4:
If LETRA.3 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
GoTo retorno
b5:
If LETRA.2 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
GoTo retorno
b6:
If LETRA.1 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
GoTo retorno
b7:
If LETRA.0 = 0 Then
PORTC.7 = 1 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
Else
PORTC.7 = 0 'data
DelayUS 1
PORTC.0 = 0 'clock
DelayUS 1
PORTC.0 = 1
DelayUS 1
EndIf
retorno:
Return