Hola Buen dia estoy tratando de entender como funciona el LCD en C18 pero no logro hacer que me escriba nada. en cambio tengo un Cuadradito del LCD prendido y TITILANDO. No se que querra decir.
El ejemplo lo vi
http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-en-ucontrol/tutorial-mplab-c18-desde-0/ Esta cocnectado todo a la perfeccion lo unico que uso un cristal de 10mhz.
Acontinuacion les dejo el codigo.
#include <p18f4620.h>
#include <delays.h>
#include <xlcd.h>
#pragma config OSC = XT
#pragma config PWRT = ON
#pragma config WDT = OFF
#pragma config MCLRE = OFF
#pragma config STVREN = OFF
#pragma config LVP = OFF
#pragma congig PBADEN = ON
// Envia comando al LCD
void comandXLCD(unsigned char a){
BusyXLCD();
WriteCmdXLCD(a);
}
// Ubica cursor en (x = Posicion en linea, y = nº de linea)
void gotoxyXLCD(unsigned char x, unsigned char y){
unsigned char direccion;
if(y != 1)
direccion = 0x40;
else
direccion=0;
direccion += x-1;
comandXLCD(0x80 | direccion);
}
//Retardos
void DelayFor18TCY(void){
Delay10TCYx(2);
}
void DelayPORXLCD(void){
Delay1KTCYx(15);
}
void DelayXLCD(void){
Delay1KTCYx(2);
}
void parpadeo (void)
{
if(PORTDbits.RD2 == 0)
{
PORTDbits.RD2 = 1; // Si esta en 0 Encendemos leds.
Delay10KTCYx(300);
}
else
{
PORTDbits.RD2 = 0;
Delay10KTCYx(300);
}
}
void main (void)
{
ADCON1 = 0x0f;
TRISC = 0;
TRISE = 0;
TRISD = 0;
OpenXLCD(FOUR_BIT & LINES_5X7); // Iniciamos LCD.
comandXLCD(0x06); // Nos aseguramos incremento de direccion, display fijo
comandXLCD(0x0C);// Encendemos LCD.-
PORTD = 0x00;
while(1){
parpadeo();
gotoxyXLCD(1,1);
putrsXLCD("Hola");
gotoxyXLCD(1,2); //Pasamos al oriden del Linea 2.-
putrsXLCD("Por Suky");
}
}
La funcion papadeo es un led q parpadea para ver si el micro andaba o se tilda. Salduos
Cualquiero cosita que noten en el codigo para correjir sera de mucha ayuda yo por mi parte voy a seguir leyendo lo que hay en el foro.