Autor Tema: Problema con PIC16F628 y LCD  (Leído 1760 veces)

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

Desconectado quindary

  • PIC10
  • *
  • Mensajes: 2
Problema con PIC16F628 y LCD
« en: 29 de Mayo de 2010, 22:51:25 »
Hola.

Mi problema se refiere a lo siguiente:

Requiero recibir una contraseña y validarla, en caso de ser correcta, realiza otras acciones, el punto es que no se si ese bien la estructura de mi programa ya que me marca los errores 43 Expectin a declaration, 48 expecting a ( y error 28 expecting a identifier. Lo mas curioso es que si consegi compilarlo y generar el .hex, depués de algunas modificaciones fue cuando salieron estos errorcillos.

Otra cosa, mi asesor me menciono que puedo controlar un lcd de 16x2 con el pic 16F628, lo que quiero saber es si se puede conectar el LCD solo con los 4 bits (D4 a D7), sin tener que conectar los pines 4,5,y 6 al PIC. Y si no, como manejar las 16 lineas que me menciona mi asesor.

Anexo mi programa a ver si es posible que me auxilien  :oops:  :(.

« Última modificación: 30 de Mayo de 2010, 01:26:47 por quindary »

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Problema con PIC16F628 y LCD
« Respuesta #1 en: 30 de Mayo de 2010, 01:24:18 »
Fijate que en la función com_cont, la llave del final está mal puesta, la tienes en la línea 64
Código: C
  1. ...
  2.          if(bit_test(portb,3) == 1 && bit_test(portb,2) == 0 && bit_test(portb,1) == 0 && bit_test(portb,0) == 0)
  3.             k=8;
  4.          if(bit_test(portb,3) == 1 && bit_test(portb,2) == 0 && bit_test(portb,1) == 0 && bit_test(portb,0) == 1)
  5.             k=9;
  6.          /*if(bit_test(portb,3) == 1 && bit_test(portb,2) == 0 && bit_test(portb,1) == 1 && bit_test(portb,0) == 0)
  7.             k=0;*/
  8.          data[i]=k;
  9.          i++;
  10.       }
  11. } <-------!!!Aca esta mal!!!.
  12.    for(i=0;i<=2;i++) {             //Pasa datos de eeprom a la matriz clave
  13.    clave[i]=read_eeprom(i);
  14.    }
  15.  
  16.    if ((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==clave[2])){
  17.       printf(lcd_putc, "   Clave OK   ");
  18.       bit_clear(porta,0);
  19.       bit_set(portb,7);
  20.       delay_ms(1000);
  21.       bit_clear(portb,7);
  22.       bit_set(porta,0);
  23.       delay_ms(1000);
  24. ...

Y va al final de la función, en la línea 86.

Además en el final del main te falta un ; en la línea 172

Desconectado quindary

  • PIC10
  • *
  • Mensajes: 2
Re: Problema con PIC16F628 y LCD
« Respuesta #2 en: 30 de Mayo de 2010, 01:39:01 »
 :shock: Gracias pablomanieri, que errores tan vanales!  :oops: y no los vi! Por ahora ya me deja compilarlo y me crea el .hex, ahora lo k me queda pendiente es el como poder manejar las 16 líneas de puerto, para el LCD.


Una nueva duda, no consigo enviar nada por el lcd, estoy utilizando un pic16f84 y un lcd jhd162a, ni siquiera consigo enviar el "hola mundo".

Por favor si alguien puede auxiliarme, se lo agradecere muchisimo.

El programa que estoy haciendo es el adjuntado, tambien adjunto la libreria modficada para que me acepte el pto b. El problema es que cuando lo conecto enciende la luz y sale una línea de cuadritos negros nada más.
« Última modificación: 31 de Mayo de 2010, 20:17:36 por quindary »