Autor Tema: matriz  (Leído 2363 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado miguelloco01

  • PIC10
  • *
  • Mensajes: 1
matriz
« en: 02 de Mayo de 2017, 18:16:30 »
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

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Re:matriz
« Respuesta #1 en: 18 de Mayo de 2017, 07:18:18 »
Ayudar o hacertelo?


 

anything