Вот исходник на MicroС.
Деморежима компилятора достаточно что бы все скомпилировать.
=================================
void init (void){
OSCCON = 0x62; //4MHz internal clk
ADCON1 |= 0x7F; // все порты цифровые
TRISB = 0; // настраиваем на выход
TRISA = 0xFF; // настраиваем на вход
Lcd_Custom_Config(&PORTB, 7, 6, 5, 3,&PORTB, 2, 1, 0);
// D7 D6 D4 D4 rs rw en - в работе RS&EN
Lcd_Custom_Cmd(LCD_CLEAR); // Clear display
Lcd_Custom_Cmd(LCD_CURSOR_OFF); // Turn cursor off
Lcd_Custom_Out(1, 1," ATG V2 monitor ");
delay_ms(1500);
Lcd_Custom_Cmd(LCD_CLEAR); // Clear display
Usart_Init(9600); // инициируем USART
// RB4-RX , RB1 -TX
}
unsigned short i=0x20, str[28], idx;
void main() {
init ();
idx=0;
do{ //main loop
if (Usart_Data_Ready()){ // если буфер готов - читаем
i = Usart_Read(); // Read the received data
str[idx] = i; // продолжаем чтение в буфер
idx++; //
if (i == '\r'){ // Если конец строки переходим к печати
if (idx<7) goto skip; // Если меньше семи символов - ложный пакет
for (i=0; i<15;i++){ // выводим первую строку на дисплей
Lcd_custom_chr(1,i+1,str); //
}
for (; i<idx-1;i++){ // вылодим вторую строку до конца
Lcd_custom_chr(2,i-13,str);
}
for (i = 0; i<4;i++){ // затераем хвосты от предыдуших
Lcd_custom_chr_cp(' '); // выводов
}
skip:
idx =0; // обнуляем индекс буфера
}
}
}while (1) ;
}//~!
==========================================================
Вот как что ставим в слове конфигурации.