Autor Tema: Teclado y LCD Juntos  (Leído 6590 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

AABHGA

  • Visitante
Teclado y LCD Juntos
« en: 10 de Septiembre de 2006, 21:26:07 »
Hola a todos los miembros de esta comunidad, soy no muy nuevo por aca pero es la primera vez que pregunto, frecuentemente visito su web y saco información que me ha sido muy valiosa en algunos proyectos.

Lo que intento hacer actualmente es con un PIC 16F628 es conectar un lcd y un teclado de 4x4, ya tengo el programa y me trabaja muy bien, pero en un 16F877, al quererlo pasar al 628 he encontrado algunos problemas ya resueltos casi todos excepto uno que es el uso 16 puertos como I/O y no he podido configurar el PORTA(5) (Pin Nº 4) para que me trabaje de esta manera, no se si la respuesta a esto será de configuración a la hora de grabar el programa en el micro o alguna modificación en la electrónica del proyecto.

Bueno eso es todo, mil gracias y espero su respuesta.
« Última modificación: 12 de Septiembre de 2006, 18:04:31 por LordLafebre »

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Teclado y LCD Juntos
« Respuesta #1 en: 10 de Septiembre de 2006, 21:33:50 »
hola!!  :P Bienvenido al FORO :-/ :-/

primero en que estas programando en C?

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Teclado y LCD Juntos
« Respuesta #2 en: 10 de Septiembre de 2006, 23:32:42 »
Hola AABHGA:

Pues te ocurre eso porque el pin RA5 es solo entrada, todo los demas son I/O.

Dale una revisada al datasheet pagina 11, 13 segun adobe.

Suerte.
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

AABHGA

  • Visitante
Re: Teclado y LCD Juntos
« Respuesta #3 en: 11 de Septiembre de 2006, 00:28:31 »
Gracias por tu respuesta veguepic, no había revisado eso, si es solo entrada, pero entonces me queda una duda, ¿es necesario utilizar siempre la resistencia de 4.7K que va entre este pin y el positivo? si no es necesario, ¿debo aplicar alguna instrucción en especial en el programa como un DEFINE?

Para samshiel_pic, estoy programando en Basic, ya que desde hace muchos años conozco este lenguaje y me defiendo muy bien con el, porque C la verdad no me es muy agradable y Assembler me encanta pero no le he dedicado el tiempo suficiente a aprender.

De nuevo gracias.

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Teclado y LCD Juntos
« Respuesta #4 en: 11 de Septiembre de 2006, 01:08:23 »
Sin un diagrama para ver como conectas tus pines es bastante dificil responderte. Supongo que la resistencia de 4.7K es de pull up, por lo cual dependiendo de lo que quieres hacer sera necesaria, pues en el puerto A no tiene internamente.

Con respecto al DEFINE, sin saber que deseas hacer no sabria decirte.

Saludos.
« Última modificación: 11 de Septiembre de 2006, 14:18:41 por veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Teclado y LCD Juntos
« Respuesta #5 en: 11 de Septiembre de 2006, 05:38:54 »
hola  AABHGA (parece que me e  atragantao jeje  :D) prueba poniendo este define.

@ DEVICE PIC16F628,WDT_OFF,PWRT_ON,MCLR_OFF,BOD_OFF,CPD_OFF,PROTECT_OFF

con esto creo que deberias de solucionar lo de RA5, ya que no estoy muy ducho en basic

AABHGA

  • Visitante
Re: Teclado y LCD Juntos
« Respuesta #6 en: 11 de Septiembre de 2006, 14:32:40 »
Gracias por la info samshiel_pic, voy a probar haber que tal, en si lo que ando haciendo es un sistema donde pueda diferenciar tipos de moneda (estilo teléfono monedero) para el cual necesito un LCD que consume 6 puertos en total, los optoacopladores que son 2 puertos, y los 8 que se consume el teclado de 4x4.

Lo de la resistencia de 4.7K si es una pull up (que la verdad no se que significa xD).

Ahora otro problema que se me presenta es que necesité modificar el programa para reducir algunas lineas porque la verdad el proyecto final me va a consumir casi toda la capacidad del 628, al hacer las variaciones en el código me presentó el problema que no trabaja, aca a continuación les dejo un copy/paste del código haber si me pueden dar una pequeña mano que la verdad no se de donde viene el error.

Código: [Seleccionar]
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 6
DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 7
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

COL VAR BYTE
FIL VAR BYTE
KEY VAR BYTE

TECLADO:
FOR  COL = 0 TO 3 STEP 1
    HIGH PORTB(COL)
        FOR FIL = 3 TO 7 STEP 1
            IF PORTB(FIL) = 1 THEN
                IF FIL = 4 THEN KEY = (COL+1) + (FIL-3) + 47
                IF FIL = 5 THEN KEY = (COL+1) + (FIL-3) + 49
                IF FIL = 6 THEN KEY = (COL+1) + (FIL-3) + 51
                IF FIL = 7 THEN
                    IF COL = 0 THEN KEY = 42
                    IF COL = 1 THEN KEY = 48
                    IF COL = 2 THEN KEY = 35
                ENDIF
                IF COL = 3 THEN
                    IF FIL = 4 THEN KEY = 65
                    IF FIL = 5 THEN KEY = 66
                    IF FIL = 6 THEN KEY = 67
                    IF FIL = 7 THEN KEY = 68
                ENDIF
                GOSUB DISPLAY
            ENDIF
        NEXT FIL   
    PAUSE 50
    LOW PORTA(COL)
    PAUSE 50
NEXT COL
GOTO TECLADO

DISPLAY:
LCDOUT $FE, 1, KEY
RETURN
END

Por si se preguntan porque asigno valores en vez de la letra es porque utilizo el código ASCII correspondiente a cada letra, asi acorto muchas lineas de código.

Gracias de nuevo.

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: Teclado y LCD Juntos
« Respuesta #7 en: 11 de Septiembre de 2006, 16:23:28 »
Una traduccion literial seria "jalar arriba"  :?, la wiki-pic de Nocturno te explica mejor:

http://www.elrebujito.es/modules.php?name=Guiki&MODE=SHOW&PAGE=Pull-Up

Tu tema no pertenecia al foro de primeros pasos, en este lugar tendras mayor probabilidad de respuesta.

Suerte.  :wink:
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

AABHGA

  • Visitante
Re: Teclado y LCD Juntos
« Respuesta #8 en: 11 de Septiembre de 2006, 16:53:01 »
Si,  con el último post hize que el tema no perteneciese ahi, en todo caso thx por la info.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Teclado y LCD Juntos
« Respuesta #9 en: 11 de Septiembre de 2006, 18:56:40 »
Hola AABHGA por aqui pusieron un teclado con pullups pero para ahorrate la busqueda aqui lo pongo, el autor hijole, no me acuerdo deja checo........no pues no lo encontre.

aqui el programa

optionreg.7 = 0 'habilitar pullups

 Col    var byte            ' COLUMNAS
 Row    var byte            ' FILAS
 Key    var byte[3]         ' TECLAS



 main:

  Gosub Getkey             ' LEER TECLA PRESIONADA
 
goto main

getkey:

  pause 50              ' ANTIRREBOTE

 getkeyu:               ' ESPERA QUE TODAS LAS TECLAS ESTEN ABIERTAS           

 PORTB = 0              ' TODO EL PORTB APAGADO
 TRISB = 240            ' MITAD SALIDA Y MITAD ENTRADA
 If (PORTB >> 4) <> 15 Then Getkeyu ' SI CUALQUIER TECLA ES APRETADA, REGRESA
 
 pause 50               ' ANTIREBOTE

 getkeyp:
                        ' ESPERA POR UNA TECLA
         
  For Col = 0 to 3            ' 4 COLUMNAS EN TECLADO
   PORTB = 0                  ' TODOS LOS PINES DE SALIDA APAGADOS
   TRISB = (Dcd Col) ^ 255    ' PONER UN PIN DE COLUMNA COMO SALIDA
   row = PORTB >> 4           ' LEER FILA
    If Row <> 15 Then Gotkey  ' SI UNA TECLA APRETADA VE A GOTKEY
  Next Col

 Goto Getkeyp                 


 Gotkey:                      ' CAMBIA FILA Y COLUMNA POR TECLA DE 0-9, * o #
      lcdout $fe,1,bin row
      pause 1000
     Key = (Col * 3) + (Ncd (Row ^ 15))
     
     if key=10 then
      goto ini
      endif
   
     if key=11 then
      key=0
     endif
     
     if key=12 then
      key="#"
     endif
return

es para un 877 por el option reg no se como se habiliten en el 628 si sirve  comprobado.
---------------------------------------------------------------------------

Ya encontre pude entrar a MIarroba gracias a Pao fue LEDROJ quien me lo paso y aqui lo dejo tal cual me lo mando



« Última modificación: 11 de Septiembre de 2006, 19:13:20 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Teclado y LCD Juntos
« Respuesta #10 en: 12 de Septiembre de 2006, 18:35:40 »
Hola:

mira aqui:

http://www.todopic.com.ar/foros/index.php?topic=3676.15

Batman123 puso un teclado y un lcd en un solo puerto y le funciono sin problemas, puedes estudiar ese codigo, este es el diagrama:



y aqui esta el hex:

http://miarroba.com/foros/ver.php?foroid=348538&temaid=3821626
« Última modificación: 12 de Septiembre de 2006, 18:37:21 por LordLafebre »

AABHGA

  • Visitante
Re: Teclado y LCD Juntos
« Respuesta #11 en: 12 de Septiembre de 2006, 19:52:03 »
Esta excelente eso, lo voy a estudiar, no pensé que fuese posible hacer eso, mis respetos al que lo diseño.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Teclado y LCD Juntos
« Respuesta #12 en: 13 de Septiembre de 2006, 12:05:10 »
Yo todos mis montajes con LCD y teclado son como se muestran en la foto anterior y todo va de lujo no ahi ningun problema ni diferencia solo que tienes que utilizar una libreria modificada de lcd y teclado.
El problema es que yo el programa lo realizo en CCS y en basic como que toy muy pez  :D

AABHGA

  • Visitante
Re: Teclado y LCD Juntos
« Respuesta #13 en: 13 de Septiembre de 2006, 15:33:48 »
Y en el caso mio es todo lo contrario, a duras penas me defiendo en basic.

AABHGA

  • Visitante
Re: Teclado y LCD Juntos
« Respuesta #14 en: 15 de Septiembre de 2006, 14:35:15 »
Lord, una última preguntica, traté de comunicarme con batman123 pero parece que no se conecta mucho, la duda es que revisando el código, veo que no hay nada de especial en la lectura del teclado ni en mostrar las cosas en el lcd, entonces me preguntaba si cuando uno usa el teclado, no empieza a mostar cosas raras en el lcd?