martes, 16 de noviembre de 2010

Trabajos prácticos 13, 14 y 15: Programación

En los siguientes trabajos prácticos debimos programar el microcontrolador PIC16F84 para lograr distintos resultados. Tienen como objetivo la investigación y el aprendizaje del funcionamiento de dos lenguajes de programación, estos son: Assembler, y C.

Un lenguaje de programación es una forma de darle instrucciones y directivas a un microcontrolador, sin la necesidad de hablar el lenguaje de la máquina misma.
La traducción de un lenguaje al otro, la hace un software a través de una acción que llamamos "compilar". En nuestro caso, utilizamos MPLAB para compilar el lenguaje Assembler, y CCS para compilar C.
Luego de compilar el código fuente, el programa nos crea un nuevo archivo; este es el que debemos cargar en el microcontrolador mediante la plaqueta programadora correspondiente.

El Assembler, es el lenguaje más cercano al idioma de la máquina, es muy útil para entender cómo trabaja el microcontrolador y también ocupa poco espacio en memoria.
La ventaja del C sobre este es su simplicidad, la cual ahorra mucho tiempo. Pero tiene como consecuencia la utilización de más memoria ROM.

El procesador del PIC16F84 cuenta con arquitectura RISC. Esto quiere decir que el repertorio de instrucciones que pueden reconocer y procesar es reducido (son 35 instrucciones en total).


En el trabajo práctico 13 se busca que al presionar un pulsador, un LED comience a titilar y, al pulsarlo nuevamente, este se apague.

Así es como lo hicimos en Assembler:



Comparemoslo con el mismo trabajo, pero escrito en C:



Se ve claramente la diferencia. El objetivo deseado es sumamente fácil de lograr utilizando C como lenguaje de programación, y no tenemos que preocuparnos por el espacio ocupado debido a que es una rutina muy breve.

Simulación:



Cargado en placa starter:



El trabajo número 14, sirve para mostrar la diferencia, con respecto a comprensión, de ambos idiomas. Assembler requiere más conocimiento del dispositivo, y su análisis es mas tedioso. En cambio en C, es más fácil ordenar el programa a simple vista.

Aquí debíamos realizar varias secuencias comandadas mediante pulsadores. Nosotros armamos cuatro secuencias, cada una comandada por un único pulsador.

Assembler:



C:



Por otro lado, en este trabajo se nota mucho más la diferencia de espacio ocupado en memoria por cada lenguaje.

Simulación:



Cargado en placa starter:



Por último, el trabajo práctico 15; donde tuvimos que armar una cuenta descendente en un display de 7 segmentos, la cual se activa con un pulsador. Además, al llegar a cero, el display debe parpadear.

Assembler:



C:



Simulación:



Cargado en placa starter:



Por alguna razón no se ve como en la simulación. Creemos que el display no es el mismo que el seleccionado en el Proteus.

No hay comentarios:

Publicar un comentario