я тут еще на силабовском форуме описал свою проблему. Там тоже никому не понравилась фишка с задержкой. Мне тоже там посоветовали избавиться от "delay loop". и переходить на таймеры. но с таймерами сложнее) сейчас разбираюсь с таймерами.
Немного порыскав там, я перешел сюда http://8052.com/ . там таких как я, у которых ниче с ЛСД не получается много)
Попытался проверить вот эту часть :
lcdport = (c & 0x0F) << 4; //send lower-order nibble
LCD_EN = 1;
Delay(50);//200microseconds
LCD_EN = 0; //LCD_STROBE;
lcdport = (c & 0xF0); // send higher-order nibble
LCD_EN = 1;
Delay(50);//200microseconds
LCD_EN = 0;//LCD_STROBE;
на свободном порту P2 там где у меня реле стоят. в итоге пришел к выводу что все таки в этой части получается так что Delay() напрочь убивают. задержку я чуть ли не на пару секунд ставил, а светодиоды релюшек на доли секунды вспыхивали и гасли, причем все одновременно.
2 Left Radio: спасибо, я обязательно проверю это вариант задержки
ЗЫ Это дело я не забросил. результат непременно напишу



