Посмотрел на ваш архив. Причина в том, что кто-то закомментировал все содержимое hd44780.c:
CODE
/* <-------
#include "hd44780.h"
......
// Входим в режим работы и устанавливем направление курсора и сдвиг экрана.
HD44780_SEND_ENTRY_MODE(HD44780_CONFIG_CURSOR_DIRECTION, HD44780_CONFIG_CURSOR_LCD_SHIFT);
}
*/ <-------------
QUOTE (Dele @ Apr 22 2012, 00:45)

Так же поменял в заголовочном файле дисплея типы unit8_t на unsignet char,
Глупость. Добавили ненужной писаниниы и ухудшили портируемость.
QUOTE (Dele @ Apr 22 2012, 00:45)

добавил некоторые заголовочные файлы типа delay.h и io.h из CVAVR так как их не хватало в IAR
Может быть их не зря не хватало? ИАР может не переварить системные заголовочные файлы от CVAVR. Просто потому, что в них могут использоваться какие-то нестандартные расширения компилятора (не говоря уже о том, что CVAVR является компилятором не С, а "языка, похожего на С"). Для задержек в IAR AVR есть встроенная (intrinsic) функция __delay_cycles().