//////////////////////////////////////////////////////////////////////////////////////////
// //
// //
// Proposoito:guardar una configuracion(programacion) y visualizar en LCD 2 lineas //
// //
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
// //
// Usaré, de momento, un cristal de 4MHz, para usar en memoria interna de programa, tam-//
// bién de 4MHz, con propósito de usar el mismo tiempo de Delays que veo en manuales. //
// //
//////////////////////////////////////////////////////////////////////////////////////////
#include <p18f4550.h>
#include <p18cxxx.h>
#include <stdio.h>
#include <xlcd.h>
#include <delays.h>
#pragma config FOSC = HS
#pragma config CPUDIV = OSC1_PLL2
#pragma config VREGEN = OFF //Disabled USB power
#pragma config WDT = OFF// HW Disabled - SW Controlled
/////////// PROTOTIPO FUNCIONES PARA DELAYS y XLCD /////////////
//
void DelayFor18TCY(void){ // TCY=4/Frec.Trabajo
Delay10TCYx(2); // Mi TCY para F_trabajo=4MHz es de 1mS. El retardo que piden será pues de 18*TCY=18mS
} // 10*x*(4/4MHz)=18uS; aislamos x, y x=1,8, por eso se pone 2. Seria algo mas de 18 TCY.
void DelayPORXLCD(void){
//Delay1KTCYx(15); // 1000*15*(4/4MHz)= 0,015 s
Delay1KTCYx(18);
}
void DelayXLCD(void){
Delay1KTCYx(2); // 1000*2*(4/4MHz)= 0,002 s
}
// 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);
}
///////////////////////////////////////////////////////////////////
void main(){
char datoLCD={"Esto es 1 string"};
unsigned char ocupado;
TRISA = 0x00; //Define puerto A como pines de salida.
OpenXLCD(FOUR_BIT & LINES_5X7); // Iniciamos LCD.-
comandXLCD(0x06); // Nos aseguramos incremento de direccion, display fijo
comandXLCD(0x0C); // Encendemos LCD.-
putrsXLCD("Hola");
gotoxyXLCD(1,2); //Pasamos al oriden del Linea 2.-
putrsXLCD("Mundo!");
while(1) {
}
}