Página de inicio Mi Correo






   » Foro
   » Nuevo Foro
   » Mi Correo
   » Mis Actividades...


--- Novedades ---



    
  » Microcontroladores » Display y Tablas (3 de 9)  

.: El Registro PCL

Antes de continuar, veamos como trabaja el micro cuando se encuentra ante una serie de instrucciones.

Please...!!!, abstenerse todos los entendidos en el tema, que esto es para duros como yo...!!! (ya lo advertí...)

Existe un registro, llamado PCL, ubicado en la posición 0x02 en el banco de memoria, tiene mucho que ver con el flujo del programa, puesto que le asigna un número a cada línea de código.

Todo empieza con la primera instrucción, esta tiene una posición indicada con un número en el registro PCL, ok. cuando accede a esa posición, se lee la instrucción, se decodifica, y luego se ejecuta, una vez echo esto, el reloj del micro incrementa al contador de programa (PCL) en un unidad, esto hace que el PCL apunte a la segunda instrucción, ahora se lee esta segunda instrucción, se decodifica y también se ejecuta. Nuevamente, el reloj del sistema incrementa el PCL para que apunte a la tercera instrucción, la decodifique y la ejecute. Este proceso se repite hasta que termina el programa (es decir, cuando encuentra un END).

Se habrá entendido...?

Ahora te lo mostraré con una pequeña animación, aquí el PCL está representado por una flecha (repito, es un número que indica la posición de cada línea de código), observa, (bueno, actualiza la página)...

Bien, de eso se trata, imagínate que te encuentras en un...

GOTO   allá

GOTO, es saltar
allá, es la etiqueta de un procedimiento.

Es decir, saltar o ir a la dirección donde se encuentra la etiqueta allá, y continuar desde allí..., es decir que al utilizar esta instrucción estas direccionando la secuencia del programa a otra posición.

Piensa, que si Assembler no nos permitiría utilizar etiquetas, deberíamos decirle la dirección del PCL donde se encuentra ese procedimiento, y vaya Dios a saber que número le corresponde a esa dirección, claro que... en realidad no tienes que preocuparte por ello, para eso están las etiquetas.

Te preguntarás que demonios tiene que ver todo esto con lo que estamos viendo, pues bueno, no desesperes, sólo nos falta una cosa más...

.: Las Tablas:

Me imagino que sabes lo que es una tabla, bueno, una tabla es algo como esto...

Cont. de Programa ISNT. DATO
 PCL=11 » RETLW 11000000
 PCL=12 » RETLW 11100001
 PCL=13 » RETLW 00001111
 PCL=14 » RETLW 00111001

Te preguntarás por el contenido de esta tabla, bueno, hablemos de ello...

En esta tabla, cada línea horizontal, es una línea de código, y la dirección de cada línea, está dada por el valor del PCL (el contador de programa), suponte ahora el siguiente código...

RETLW     00001111

RETLW, es retornar cargando W con el Literal 00001111, el problema es que para llegar a esta instrucción deberías pasar por encima de las dos líneas anteriores. La pregunta es, ¿Como se hace eso...?

Para entenderlo mejor, grafiqué la misma tabla, pero sin las líneas de separación, también incluí el PCL y le puse un número de orden en decimal (cualquiera...), esto es sólo a modo explicativo ok...?, observa...

La primera instrucción ADDWF PCL,F indica que se le debe sumar al registro PCL, lo que hay en W. Con F, le indicamos que guarde el resultado en el mismo registro PCL, es decir...

PCL = PCL + W

El acceso a la tabla lo haremos a través de W, le cargamos un valor y llamamos a la tabla, justo donde al PCL se le suma el valor de W, préstale mucha atención a la siguiente animación, creo que es más fácil de entender...

Fíjate que en este ejemplo, los accesos a las líneas 11, 12, 13, 14 y 15, se hacen desde la posición 10, la suma con W indica a que línea debe saltar.

Bien, ahora empiezan las advertencias...

  • El registro W es de 8 bits, por lo que el máximo valor será 255, ese será el salto más largo que puedas dar.
  • W no debe superar la cantidad de elementos de la tabla, la del ejemplo anterior tiene 4 elementos por lo tanto el valor máximo de W será 3.
  • El acceso a la tabla, se hace sólo para tomar el valor que se busca y regresar al programa principal.
  • Los comentarios en una tabla, no son tenidos en cuenta por el PCL, estos son ignorados ...
Bien mis queridos amigos, si lograron comprender bien lo de las tablas, los invito a continuar, que ahora viene lo mejor, aplicaremos todo lo visto en esta sección...



R-Luis...


<--Anterior   Introducción   Siguiente -->
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Tabla de Referencias


    
--| |--