Aunque llega tarde:
En aplicaciones por el puerto paralelo para el manejo de circuitos basados en I2C uso la siguiente temporización y va muy bien.
La dejo ya que buscando otra cosa me encontre con este post
Código:
Procedure Dly5;
(* Delay of 5 uSec *)
Var F : Int64;
T_Start, T_Stop, T_Now : Int64;
Begin
QueryPerformanceCounter (T_Start);
QueryPerformanceFrequency (F);
T_Stop := T_Start + F * 5 Div 1000000;
Repeat
Application.ProcessMessages;
QueryPerformanceCounter (T_Now)
Until T_Now >= T_Stop
End;
Como se ve se puede variar la temporización a voluntad en la formulita del T_Stop.
Los Pcf 8574 estan probados y funcionando correctamente. Si hacen falta más librerías para el manejo las puedo subir.