Lamp: BOOL := FALSE;

Эта переменная всегда false....

И это, присваивать надо наоборот, Counter := вход такой-то