Если устройство ОЧЕНЬ простое и нетребовательное можно попытаться использовать чужой набор функций. Я писал свой. При компиляции выбирается тип ЖКИ.
Из хорошего могу сказать, что обмен с графическим ЖКИ более вменяемый, чем с символьным.
У символьных контроллеров (HD44780 и KS0066) есть откровенные грабли в обмене. 1) кривой 4-битный интерфейс 2) трудности с потоковым обменом (т.е., н-р, написано, что команда выполняется 39 мкс - на самом же деле всё как-то не так и сам же производитель в примерах ставит громадные (несколько мс) задержки и советует делать также)