11 de abril de 2011

Temporización de 10 ms

En el ejemplo, se pedía temporizar 10ms usando el micro visto en clase. Como en todos los ejercicios de temporizadores, hay que seguir unos pasos sencillos:

1. Definir todos los registros necesarios con "sfr" y "sbit".
Necesitamos: "TMOD", "TCON", "TL0" y "TH0", además de algunos bits como: "TR0" y "TF0".

2. Escribir el bloque principal de tu programa.
Todo programa debe tener un bloque "void main(void) { }"donde se escriben las instrucciones.

3. Calcular la cuenta inicial.
Nos piden 10ms=10000microsegundos --> 65.536-10.000=55536=0xD8F0.

3. Asignar los valores a los registros.
Configurar el modo de funcionamiento del temporizador y fijar la cuenta inicial (10ms=0xD8F0).

4. Empezar la temporización y esperar el desborde.
El temporizador se pone en marcha con "TR0" y se espera el desborde mirando "TF0". Se puede hacer cómodamente con una instrucción while.



La instrucción "while" funciona del siguiente modo:

- Si "TF0" es "0" entonces la condición del bucle es "1" (está negada) y se queda en el bucle..
- Si "TF0" es "1" entonces la condición del bucle es "0" (está negada) y sale del bucle, ejecutando las instrucciones que tengamos más adelante. Por lo tanto dichas instrucciones se ejecutarán cuando finalice la temporización. Como puedes ver, es una de las muchas maneras que puedes usar para controlar los debordamientos.

* Puedes descargar el ejercicio aquí.

No hay comentarios: