Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

24/02/2009 #1

Avatar de cevollin

Control de Matriz de leds con teclado de pc
hola que tal camaradas y siguo dando lata con los carteles hace poco arme una matriz de leds de 7x40 el texto a mostrar se desplasa de derecha a izquierda ahora estuve investigando mas sobre el caso y vi este video que la verdad se me hiso super

YouTube - matrix de leds 80 columnas y teclado pc - pic16f628a

ahora mi pregunta es esta como le hago para que en mi matriz de leds el texto lo pueda modificar por medio de un teclado de pc como en el video

tengo una teoria que es que el pic se dedique a leer las teclas pulsadas del teclado de pc y estas las tradusca a un bit map correspondiente a la misma letra de la tecla pulsada en el teclado por ejemplo

01110 fila 1
10001 fila2
10001 fila3
11111 fila4
10001 fila5
10001 fila6
10001 fila7

y luego estos datos los grabe en una memoria eeprom (la memoria que el pic se dedica a leer para asi volcar los datos en la matriz de leds por medio de los registros de desplasamiento)

bueno esa es una teoria pero ps yo la verdad no se como es que funciona el teclado de la pc se que es como un teclado matricial pero no se como es el codigo correspondiente a cada tecla y como es que trasmite este codigo por medio serial o paralelo por el puerto del teclado
03/03/2009 #2

Avatar de cevollin

jajaja apenas ya hace una semana de postear esta pregunta y ya supe como modificar el texto por medio de la computadora del puerto serie
ps les cuento para todos aquellos que tenian la dudita como yo ps aqui les explico pues mira para
poder modificar el texto por pc es muy sencillo tienes que trabajar con interrupciones por rcie (en mi caso pic16f628a) este registro es la interrupcion por datos recibidos (pin rx en pic16f628a) pero mucho ojo antes de hacer esto habilita las interrupciones en el registro intcon pie1 y gie

ya que activaste las interrupciones dentro del vector de resetet 0x04 inserta el bit map correspondiente a cada tecla que pulsaste por ejemplo la tecla A seria

01110 fila 1
10001 fila2
10001 fila3
11111 fila4
10001 fila5
10001 fila6
10001 fila7

despues este dato lo grabas en la memoria eeprom que es la misma memoria que el pic se encarga de leer la información en ella para asi volcarla en el registro de desplasamiento

8-) 8-) 8-) 8-)
03/03/2009 #3


Ahora para ponerle mas sabor a tu proyecto por que no intentas omitir la Pc, y leer el teclado desde el pic.
a ver si te llama la atensión la idea.

saludos y exito.
04/03/2009 #5

Avatar de cevollin

monayo jonathan buen aporte ya havia leeido este articulo

el siguiente paso seria igual la lectura del teclado solo que utilisaria los scan codes del teclado en vez de el codigo assi generado por el puerto serie me imagino que la comounicacion entre pic y puerto serie es igual que la comunicacion entre pic y solamente el teclado solamente que con el teclado serian los escan codes y por el puerto serie seria codigo ascii
04/03/2009 #6

Avatar de Moyano Jonathan

Ha ya entendi vos te referis a leer los datos de la matriz del teclado y despúes interpretar el dato?
04/03/2009 #7

Avatar de cevollin

si a eso me referia jajajaja no suena muy complicado

los datos que se mandan desde el puerto serial es asincrono son 1 bite de star mas 8 de datos y 1 bit de stop pero es codigo ascii

y los datos que manda el teclado son asincronos 1 bit de star mas 8 bits de datos y 1 bit de stop pero los codigos son los llamados scan codes los codigos de la matriz del teclado
05/03/2009 #8


ole cevollin, me entro una duda,

como le estas haciendo para mandar los datos del teclado al puerto serie del pc? digo, la unica forma que se me ocurre es que usas un software que mande la tecla digitada, o el computador solo por que si al presionar una tecla lo manda por puerto serie? por que creo que esa parte la obviaste en la explicación dada, saludos
05/03/2009 #9

Avatar de cevollin

a pues mira el sofware que manda la información por medio del puerto serie es el hyper terminal de windows xp cuando instalas tu windos se instala ese programa en inicio todos los programas acessorios y comunicaciones este programa te manda la información en codigo ascii y te lo manda por el puerto que tu selecciones ya sea el puerto com1 (puerto serie)
puerto com2 etc y la información se mada a la velocidad que tu le configures baudios (bits por segundo)
adjunto tabla ascii
Imágenes Adjuntas
Tipo de Archivo: gif ascii1_134.gif (22,0 KB (Kilobytes), 625 visitas)
06/07/2009 #10


soy nuevo disculpen si les molesto pero podrian mandarme el circuito
07/07/2009 #11
Moderador

Avatar de Chico3001

Hay muchos carteles de leds por el foro... usa el buscador para localizarlos.....
31/12/2009 #12


Respuesta: Control de Matriz de leds con teclado de pc
buen aporte chevere el foro

cevollin la matriz que hiciste antes tenia una proogramacion fija???

podrias mandar la progracmacion del primero de 7x40?
23/12/2011 #13


Compartir informacion completa
Matriz de leds 7X32.
Pic 16f628a + 74lc164


Mi contribucion al foro por toda la ayuda brindada y espero que les sirva.


Proyecto completo codigo fuente + simulacion + proteus.


Descarga link http://www.forosdeelectronica.com/at...9&d=1324675703

video corriendo:http://www.youtube.com/v/108jzdzfBNw&hl


codigo fuente:
Código:
DEFINE OSC 4


LINEA            var byte[32]
CHAR             VAR BYTE[7]
CHAR_ACT         VAR BYTE ' puntero de caracter
CHAR_LENGTH_ACT  VAR BYTE 'puntero de la longitud del caracter
CHAR_LENGTH      var byte ' longitud de la longitud
Caracter         var byte
Counter1         var byte
Counter2         var byte
Counter3         var byte
Counter4         var byte



'declaracion de alias

DATOS            var PORTA.0
CLOCK            var PORTA.1

'Inicializacion de los datos


TRISB = 0
TRISA = 0

linea[1]=$FF
linea[2]=$FF
linea[3]=$FF
linea[4]=$FF
linea[5]=$FF
linea[6]=$FF
linea[7]=$FF
linea[8]=$FF
linea[9]=$FF
linea[10]=$FF
linea[11]=$FF
linea[12]=$FF
linea[13]=$FF
linea[14]=$FF
linea[15]=$FF
linea[16]=$FF
linea[17]=$FF
linea[18]=$FF
linea[19]=$FF
linea[20]=$FF
linea[21]=$FF
linea[22]=$FF
linea[23]=$FF
linea[24]=$FF
linea[25]=$FF
linea[26]=$FF
linea[27]=$FF
linea[28]=$FF
linea[29]=$FF
linea[30]=$FF
linea[31]=$FF
linea[32]=$FF

char_act=0
counter3=0
counter4=0
counter2=1
char_length_act = 1
low clock
low datos

DATA @0,"CRISTO VIENE PRONTO PREPARATE      FELIZ NAVIDAD 2011 FOROS UCONTROL  " 'aca guardamos nuetro programa, es modificable al gusto
read char_act,caracter
gosub tabla_char

'inicio del programa
Inicio:

MENSAJE:
        linea[1]=char[char_length_act]
        IF CHAR_LENGTh_act = char_length  then
           char_act = char_act + 1  
Mens_Salto1:
           read char_act,caracter
           if caracter=$FF then 
              char_act=0
              goto mens_salto1
           endif   
           gosub tabla_char
           char_length_act=0
        endif   
Img:
        counter1=0
                
LineH:
         PORTB = $FF
         counter1 = counter1 + 1      'envia LA ACTIVACION del registro
         if counter1 = counter2 then  'serial paralelo
            gosub send_data0          'para activar la linea vertical
         else
             gosub send_data1
         endif
         if counter1 = 32 then goto LineV
         goto lineh
LineV:
      PORTB = LINEA[COUNTER2]    'determina la posicion activa horizontal
      pauseus 500              'y genera la activacion de los leds verticales
      if counter2 = 32 then
           counter2 = 1
         gosub send_data0   
      ELSE
            counter2 = counter2 + 1
            gosub send_data1
      endif
 
      
Shift_Left:
           if counter3 = 35 then
                counter3 = 0
                COUNTER4 = COUNTER4 + 1
                if counter4 = 2 then ' 250 del counter3 *4 del 
                
                   linea[32]=linea[31]'                   
		           linea[31]=linea[30]'
                   linea[30]=linea[29]'counter4 es aprox 0.5seg
                   linea[29]=linea[28]'si hay mas lineas 
                   linea[28]=linea[27]'hay q agrandar losvectores
                   linea[27]=linea[26]'y cambiar por un for   
                   linea[26]=linea[25]  
                   linea[25]=linea[24]  
                   linea[24]=linea[23]
                   linea[23]=linea[22]'counter4 es aprox 0.5seg
                   linea[22]=linea[21]'si hay mas lineas 
                   linea[21]=linea[20]
                   linea[20]=linea[19]'y cambiar por un for   
                   linea[19]=linea[18]  
                   linea[18]=linea[17]  
                   linea[17]=linea[16]    
       			   linea[16]=linea[15]'
                   linea[15]=linea[14]'counter4 es aprox 0.5seg
                   linea[14]=linea[13]'si hay mas lineas 
                   linea[13]=linea[12]'hay q agrandar losvectores
                   linea[12]=linea[11]'y cambiar por un for   
                   linea[11]=linea[10]  
                   linea[10]=linea[9]  
                   linea[9]=linea[8]  
                   linea[8]=linea[7]'counter4 es aprox 0.5seg
                   linea[7]=linea[6]'si hay mas lineas 
                   linea[6]=linea[5]'hay q agrandar los vectores
                   linea[5]=linea[4]'y cambiar por un for   
                   linea[4]=linea[3]  
                   linea[3]=linea[2]  
                   linea[2]=linea[1]
                   counter4 = 0
                   char_length_act = char_length_act+1
                   GOTO INICIO
                endif
            ELSE
                counter3 = counter3 + 1
            endif
            goto IMG
                      
SEND_DATA0:
           low datos
           pauseus 2
           low clock
           pauseus 2
           high clock
           RETURN

SEND_DATA1:
           HIGH DATOS
           pauseus 2
           low clock
           pauseus 2
           high clock
           RETURN

'tabla de seleccion de caracter
           
TABLA_CHAR:
    select case caracter
            case " "
                char_LENGTH=5
                char[5]=$FF
                char[4]=$FF
                char[3]=$FF
                char[2]=$FF
                char[1]=$FF
            
            
            
           
           case "C"
                char_LENGTH=5
                char[5]=$FF
                char[4]=%1011101
                char[3]=%0111110
                char[2]=%0111110
                char[1]=%1000001 
            
                
              
            case "R"
                char_LENGTH=5
                char[5]=$FF
                char[4]=%1001000
                char[3]=%0110111
                char[2]=%0110111
                char[1]=%0000000  
                
            
            
            case "I"
                char_LENGTH=4
                char[4]=$FF
                char[3]=%0111110
                char[2]=%0000000
                char[1]=%0111110
                
            
            case "T"
                char_LENGTH=5
                char[5]=$FF
                char[4]=%0111111
                char[3]=%0000000
                char[2]=%0000000
                char[1]=%0111111
                       
                     
                
            
            case "O"
                char_LENGTH=6
                char[6]=$FF
                char[5]=%1000001
                char[4]=%0111110
                char[3]=%0111110
                char[2]=%0111110
                char[1]=%1000001
            
             ...........caracteres del A a la Z + numeros 
           
                
            case else
                char_LENGTH=5
                CHAR[1]=$FF
                CHAR[2]=$FF
                CHAR[3]=$FF
                CHAR[4]=$FF
                CHAR[5]=$FF

    end select
    return
             
                 
END



cevollin dijo: Ver Mensaje
hola que tal camaradas y siguo dando lata con los carteles hace poco arme una matriz de leds de 7x40 el texto a mostrar se desplasa de derecha a izquierda ahora estuve investigando mas sobre el caso y vi este video que la verdad se me hiso super

YouTube - matrix de leds 80 columnas y teclado pc - pic16f628a

ahora mi pregunta es esta como le hago para que en mi matriz de leds el texto lo pueda modificar por medio de un teclado de pc como en el video

tengo una teoria que es que el pic se dedique a leer las teclas pulsadas del teclado de pc y estas las tradusca a un bit map correspondiente a la misma letra de la tecla pulsada en el teclado por ejemplo

01110 fila 1
10001 fila2
10001 fila3
11111 fila4
10001 fila5
10001 fila6
10001 fila7

y luego estos datos los grabe en una memoria eeprom (la memoria que el pic se dedica a leer para asi volcar los datos en la matriz de leds por medio de los registros de desplasamiento)

bueno esa es una teoria pero ps yo la verdad no se como es que funciona el teclado de la pc se que es como un teclado matricial pero no se como es el codigo correspondiente a cada tecla y como es que trasmite este codigo por medio serial o paralelo por el puerto del teclado
12/09/2013 #14


hola soy nuevo en este foro,yo tambien estoy haciendo el matris de led controlado por teclado de pc porfabor ayudenme como instalar el teclado al pic con un diagrama se lo agradeceria mucho...
12/09/2013 #15
Moderador

Avatar de D@rkbytes

Sobre este enlace se encuentra más información:
Matriz de Leds PIC16f628a Controlada por Teclado PS2
Tema Cerrado
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.