Hola!!

aqui esta lo que he estado haciendo.. bueno como mencione antes se trata de un 18F4550 funcionando con un cristal de 20Mhz, la libreria lcd.h esta basada en la libreria xlcd.h de microchip, la encontre en otro hilo del foro

funciona muy bien (ya la he probado en otros trabajos), asi que segun yo esto deberia funcionar, en proteus no me arroja ningun error, pero lo que sale en el LCD no es lo que deberia obtener

a ver si me das una mano micro. gracias de antemano!
El código:
#include<p18f4550.h>
#include<delays.h>
#include<stdlib.h>
#include<adc.h>
#include "lcd.h"
#pragma config PLLDIV = 5//CONFIG1L
#pragma config FCMEN = OFF,IESO = OFF,FOSC=HS //CONFIG1H
#pragma config PWRT = OFF,BORV = 0 //CONFIG2L
#pragma config WDT = OFF,WDTPS = 32768 //CONFIG2H
#pragma config MCLRE = ON,LPT1OSC = OFF,PBADEN = OFF, CCP2MX = OFF//CONFIG3H
#pragma config STVREN = OFF,LVP = OFF,XINST = OFF,DEBUG = OFF//CONFIG4L
#pragma config CP0 = OFF,CP1 = OFF,CP2 = OFF//CONFIG5L
#pragma config CPB = OFF,CPD = OFF//CONFIG5H
#pragma config WRT0 = OFF,WRT1 = OFF,WRT2 = OFF//CONFIG6L
#pragma config WRTB = OFF,WRTC = OFF,WRTD = OFF//CONFIG6H
#pragma config EBTR0 = OFF,EBTR1 = OFF,EBTR2 = OFF//CONFIG7L
#pragma config EBTRB = OFF//CONFIG7H
int v = 0;
char s[]={""};
void main(void)
{
OpenXLCD(FOUR_BIT & LINES_5X7);
WriteCmdXLCD(BLINK_ON);
WriteCmdXLCD(CLEAR);
TRISA = 0x0F;
OpenADC(ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_0_TAD,//Config ADCON2
ADC_CH0 & ADC_INT_OFF, //Config ADCON0
12); //Config ADCON1
for( ; ; )
{
Delay10TCYx(5); //Dealy de 50Ci
ConvertADC();
while(BusyADC());
v = ReadADC();
itoa(v,s); //conversion de un entero a una cadena
WriteCmdXLCD(CLEAR);//visualizacion de resultado en LCD (2x16)
putrsXLCD("V = ");
putsXLCD(s);
Delay10KTCYx(100); //Delay de 400ms
}
}