Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
PIC 16f690 + lcd 4x20
#1
Hola, estoy intentando simular con proteus un hola mundo con el PIC 16f690 en un lcd genérico de 4x20. Utilizo como compilador el CCS C 4.140 y la versión 8 SP0 de proteus.
El codigo es el siguiente:
Código:
#include <16F690.h>
#fuses XT
#FUSES NOWDT
#FUSES NOPUT
#FUSES NOBROWNOUT
#FUSES NOCPD
#FUSES NOPROTECT

#use delay(clock= 4000000)

#define LCD_ENABLE_PIN  PIN_A4
#define LCD_RS_PIN      PIN_A5
#define LCD_RW_PIN      PIN_C7
#define LCD_DATA4       PIN_C5
#define LCD_DATA5       PIN_C4
#define LCD_DATA6       PIN_C3
#define LCD_DATA7       PIN_C6

#include <lcd.c>

//#use standard_io(A)
//#use standard_io(B)
//#use standard_io(C)

void main()
   {
   setup_oscillator(OSC_4MHZ|OSC_INTRC);
   setup_adc(ADC_OFF);
   set_tris_a(0x00);
   set_tris_c(0x00);
   lcd_init();
   lcd_putc("Hola Mundo");
}

El montaje en Proteus:
resim

El problema es que no sale nada por la pantalla, de echo, los pines de control no se iluminan en ningún momento.
He probado sin los setup de ADC y sin el de oscilador, tambien sin FUSES, pero no encuentro el fallo
Citar
#2
Esa libreria es para 4 bits?? En los antiguos micros de la serie 16F creo que R4 era salida a colector abierto, para funcionar como salida necesitaba una resistencia de pull-up no se si en este tambien pasara. Y en los Lcd's que yo tengo el pin3 es Vo, que va a un potenciometro para regular la iluminacion, en el tuyo no se que hara
Citar
#3
El pin 3 como bien dice kain589 es para el control de contraste pero si lo pones a masa esta bien también.
En cambio el pin 5 RW yo siempre lo pongo a negativo, nunca al pic.
Citar
#4
Vale, muchas gracias por la ayuda, el problema viene del puerto A, Los pines A3, A4, A5, no funcionan como salida, por lo menos no con la configuración base, voy a indagar a ver si hay algún fuse o registro que haga que los pueda usar (Por lo menos el A4 y A5)

El primer lcd que hice si que tenia pin RW a PIC pero ya vi esquemáticos con el a tierra, el real no ira con RW a PIC, pero lo primero que pensé fue que era la causa de que no funcionara.
Citar
#5
Hace tiempo que estuve con el lcd, pero creo que RW se usa en algunas librerias para ver cuando el lcd esta disponible, tal vez si no lo conectas al pic y la libreria hace uso de su funcion te de mas problemas. Respecto a A4 y A5 no creo que haya problemas para usarlos como salidas si mas bien lo que te apunte de las resistencias pull-up
Citar
#6
Voy a comprobar que funciona el montaje real con estos apaños y probare lo de los pull up
Citar
#7
Ya lo he probado, efectivamente hay que usar el pin RW, porlomenos con la libreria para lcd de 4 lineas (FLEX_LCD.c), la libreria que viene en css (lcd420.c) No me funcionaba, o no supe configurarla, (el lcd.c no vale para 4 lineas), pero ya funciona bien, gracias por la ayuda.
Citar
#8
Lograste configurarlo para 4 lineas? Tengo que usar un lcd de estos y lo quiero poner con 4 lineas tambien
Citar