Забыл сказать. Каждый диодик -- автомат. Из макроса ему просто команда давалась (зажечься плавно/быстро до такой-то яркости). А он дальше в фоне сам исполнял. Пауза -- макрос ждал (ассемблер из него полученный) нужное время и ничего не делал. Автоматы диодов работают на прерываниях.