En molts programes ens cal posar un temps de retard, ja sigui per esperar algun esdeveniment o per fer una velocitat de canvi compatible amb la visualització de l'usuari.
La manera més senzilla de fer un retard és amb la funció _delay( ) que fa un retard del nombre de cicles d'instrucció indicat entre parèntesi. La configuració per defecte del microcontrolador és amb un rellotge de 1 MHz de manera que el cicle d'instrucció va a 250 kHz, per tant un cicle és 4 μs. La funció està implementada al fitxer xc.h; o sigui que cal carregar-lo. La definició de la funció és:
void _delay(unsigned long cycles);
és a dir que la funció no retorna cap resultat. Un exemple d'ús:
... #include <xc.h> // Carrega el fitxer de funcions
void main (void) // Inici del programa principal
{
...
_delay(50000); // Retard de 50000 cicles (aprox. 0,2 s)
...
} // Fi del programa
Si volem més precisió, tenim dues funcions més: __delay_us( ) i __delay_ms( ), que fan un retard del temps especificat, la primera en μs i la segona en ms. Per tal que el compilador pugui implementar-ho, necessita saber la freqüència del rellotge del processador que li indicarem amb una línia addicional a la part de configuració, per exemple:
... #include <xc.h> // Carrega el fitxer de funcions #define _XTAL_FREQ 1000000 // La freqüència del rellotge és 1 MHz
void main (void) // Inici del programa principal
{
...
__delay_ms(500); // Retard de mig segon
...
} // Fi del programa
També podeu consultar el manual del MPLAB XC8 al web de Microchip.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.