El microcontrolador té quatre temporitzadors físics que poden funcionar de diferents maneres.
El Timer0 és un comptador configurable com de 8 o 16 bits. Quan funciona com a temporitzador, agafa la sortida del rellotge del del cicle d'instrucció (període de quatre microsegons), el divideix per un factor d'escala i el fa servir per incrementar el registre TMR0. Quan aquest registre arriba a zero (dóna la volta) s'activa un bit en un altre registre.
La configuració del Timer0 es fa al registre T0CON on els tres bits de la dreta indiquen el factor d'escala pel que es divideix el rellotge. El registre TMR0 (format per dos registres físics) és on hi ha el valor actual de comptatge de Timer0; hi podem escriure un valor per tal que en aquell cicle comenci a comptar a partir d'ell. Quan el registre de Timer0 arriba a zero (ha incrementat un 255 o un 65535, segons la configuració) s'activa el bit TMR0IF del registre INTCON. Aquest bit s'ha de desactivar des del programa per tal de poder veure quan es torna a activar. A l'Exemple TM es pot veure una aplicació del Timer 0.
Quan el Timer 0 treballa en mode de 16 bits i volem posar-li un valor inicial per tal que comenci a comptar des d'allí, ens podem trobar amb un problema ja que no podem modificar dos registres al mateix temps. El microcontrolador implementa un sistema per evitar aquest problema. Nosaltres escriurem primer els 8 bits de més pes al registre TMR0H que no és propiament el registre del Timer 0 sinó un registre intermig. Quan nosaltres guardem els 8 bits de menys pes a TMR0L, el microcontrolador copiarà simultàniament el valor de TMR0H al seu lloc definitiu.
En lloc de consultar manualment el bit T0IF, podem fer que el Timer 0 faci una interrupció cada cop que arribi a zero. Per habilitar la interrupció del Timer0 cal activar el bit TMR0IE del registre INTCON; també cal activar globalment les interrupcions amb el bit GIE del mateix registre. Això ho podem veure a l'Exemple IT
A continuació tenim les funcions dels bits de T0CON:
| Bits | Nom | Funció | Observacions |
| 7 | TMR0ON | Activació del Timer 0 | Quan s'activa, posa en marxa el Timer 0 |
| 6 | T08BIT | Selecció de 8 o 16 bits | Si és 1 treballem a 8 bits |
| 5 | T0CS | Rellotge del Timer 0 | Si és 1 es controla externament (pota T0CKI) i si és 0 depèn del rellotge |
| 4 | T0SE | Control extern de Timer 0 | Si és 0 serà a l'activar T0CKI i si és 1 al desactivar |
| 3 | PSA | Ús del prescalador | Si és 1 no fem servir preescalador (preescala 1/1) |
| 2-0 | T0PS | Prescalador | Valors per al Timer 0:000 1/2 001 1/4 010 1/8 011 1/16 100 1/32 101 1/64 110 1/128 111 1/256 |
El següent tros de programa mostra una possible configuració i utilització:
... // Configuració del Timer 0 FiTimer0 = 0; // Aquest bit es posarà a 1 quan el temporitzador acabi // cal desactivar-lo des del programa T0CON = 0b00000001; // El timer 0 és de 16 bits i compta temps amb pre-escalat 1/4 TMR0H = 0; // Posem el comptador a 0, primer el registre H TMR0L = 0; // i després el registre L T0CONbits.TMR0ON = 1; // Fem que Timer 0 comenci a comptar ...
Per a una informació completa del Timer 0, consulteu l'apartat 12 del document de característiques del PIC 18F45K20.

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