¿Qué
significa realizar una demora?
Significa que el microprocesador no debe realizar
ninguna operación matemática o lógica
mientras dura el retardo. La sentencia NOP (no operation
= ninguna operación) es justamente una sentencia
inocua sobre todos los operadores internos, solo
se incrementa en una unidad el contador de programa
PC que indica el paso de programa que se esta ejecutando.
La sentencia NOP entonces aumenta
el contador de programa en una unidad dejando todos
los registros internos de la memoria y el registro
de trabajo W de la unidad aritmética y lógica
sin modificar.
Para recordar las sentencias el
autor recurre a fichas en donde se anotan todos
los detalles de las mismas.
La ficha correspondiente a la sentencia
NOP se puede observar en la figura 4.
Cuando se requiera un retardo superior
a 1µS, se deberá repetir la sentencia
NOP tanta veces como sea necesario para llegar al
retardo requerido.
Por ejemplo con un programa como
el de la figura 5 se consigue un retardo de 4µS.
Este sector elemental de un programa,
nos permitirá entender cómo funciona
internamente un microprocesador al realizar una
demora.
Un microprocesador es un sistema
muy ordenado de cálculo numérico.
El solo, realiza operaciones matemáticas
binarias entre la información binaria introducida
desde el puerto paralelo de entrada y guardada en
una posición de memoria determinada (por
ejemplo la 0009) y la contenida circunstancialmente
en un registro interno llamado registro de trabajo
W.
A su vez la información
binaria de ese registro fue introducida en un paso
previo de programa en otra determinada posición
de memoria como veremos más adelante. Lo
importante ahora es que tenemos dos números
binarios de 8 bits o lo que es lo mismo dos Bytes
uno en la posición de memoria 0009 y otro
guardado el registro W.
Las sentencias marcadas en la columna
central del programa le indican a la unidad aritmética
y lógica que tipo de operación debe
realizar entre ambos números binarios. En
la sentencia NOP no hay ningún resultado,
ni es necesario indicarle al micro en qué
posición de memoria se guardan los operandos
de la operación.
Pero cuando se usan otras sentencias
aparecen datos en la tercer columna que proveen
esta información (posición de memoria
de una de los operando, ya que el otro es el registro
W y además donde se debe guardar el resultado).
La operaciones que se realizan
utilizando una sola de las 32 sentencias que forman
el total que utiliza el PIC son operaciones de suma,
resta, comparación, borrado, control de un
dado bit, reubicación de bits, etc, etc.
Cada línea de programa tiene
un número interno correlativo que se guarda
en un registro de la memoria llamado PC (program
counter o contador de programa) de modo que cuando
se termina de realizar la operación se incrementa
el número en una unidad para realizar el
siguiente paso de programa. Cuando llegamos a la
primer línea NOP, estamos quizás con
el contador PC en 43. En el programa guardado en
el micro no tenemos la sentencia NOP, sino un código
de unos y ceros guardados en la posición
de memoria correspondiente al PC 43. Este código
numérico varía de acuerdo a la sentencia
(para el NOP es 00 0000 0XX0 0000) y le indica a
la ALU (unidad aritmética y lógica)
todo lo que la misma debe hacer. Para la demora,
el trabajo de la ALU es muy simple "no hacer
nada"; sólo que "no hacer nada"
se completa en 1uS lo mismo que por ejemplo sumar
dos números.
Una vez realizada la operación
de la línea 43, el PC pasa a 44 y se realiza
la siguiente demora de 1 uS, luego se pasa a la
45 y a la 46 completando el retardo de 4 uS.
¿Y si necesitamos
un retardo de 1 segundo o más, cómo
se debe hacer?
En realidad hay otro medio de realizar retardos
grandes que es un temporizador interno preseteable.
Pero se trata de un temporizador con baja exactitud.
Este modo de trabajo será visto más
adelante. Lo típico es realizar retardos
grandes por repetición automática
de una única sentencia NOP. Esto implica
realizar un LOOP cerrado en el programa y esto se
realiza con una sentencia llamada de salto condicional
que es lo que comentaremos en el próximo
punto. |