You are on page 1of 7

UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA

INGENIERA ELECTRNICA
MICROCONTROLADORES

COMPILACION, SIMULACION Y CREACION DE


APLICACIONES BSICAS CON MIROCONTROLADORES
(Compilation, simulation and building of basic aplications whit microcontrollers)

Julieth Katherine Garca Gamba Jorge Eduardo Rodrguez Buitrago


Facultad de ingeniera Electrnica Facultad de ingeniera Electrnica
Universidad pedaggica Tecnolgica de Universidad pedaggica Tecnolgica de
Colombia, UPTC Tunja, Colombia Colombia, UPTC Tunja, Colombia
Julieth.Garica@uptc.edu.co Jorge.Rodriguezbuitrago@uptc.edu.co
Jos Alfredo Cruz Jimnez
Facultad de ingeniera Electrnica
Universidad pedaggica Tecnolgica de Colombia, UPTC Tunja, Colombia
Jose.CruzJimenez@uptc.edu.co

Resumen Para el presente informe de laboratorio se


tom en cuenta el desarrollo de la prctica para
aprender el manejo bsico del microcontrolador y su
funcionamiento. El objetivo de la mismas es hacer un Controlado por un computador para realizar
sistema selector de tareas, que permita cambiar entre una tarea especfica [1].
las mismas en cualquier momento de la ejecucin, y
con esto aplicar los conceptos vistos en clase acerca del
manejo bsico de las instrucciones del En las labores cotidianas, se suelen usar
microcontrolador y la aplicacin de tablas. sistemas de cmputo enfocados en manejar el
Palabras clave Microcontrolador, Lenguaje de
funcionamiento de ciertas aplicaciones
ensamblador, Creacin de subrutinas, Uso de libreras, sencillas y de uso cotidiano, tales como el
Uso de tablas, Compilacin, Depuracin, control de temperatura de un refrigerador, el
Implementacin. mecanismo de control para una puerta de un
carro, o de aprendizaje como el vehculo
autnomo guiado Derbot[1].
I. INTRODUCCION
En este laboratorio se implement un sistema
En este momento de la historia, los desarrollos selector de tareas utilizando el lenguaje
de la tecnologa han avanzado enfocados en ensamblador para realizar la programacin del
garantizar el bienestar y la comodidad de las microcontrolador ya que es el lenguaje de
personas que la utilizan; Por tanto en la vida programacin ms cercano al lenguaje
cotidiana, cada aparato que se utiliza suele numrico usado por la maquina [2].
tener un sistema de cmputo embebido que le
Para desarrollar esta aplicacin se debi tener
permite llevar a cabo una tarea para la cual fue
en cuenta el proceso bsico para la generacin
desarrollado, as se puede llegar a la definicin
de proyectos, iniciando por una etapa de
de un sistema embebido: un sistema que no
diseo, en la cual se desarrollaron los
tiene una labor de fin computacional, sino que
diagramas de flujo que dan los lineamientos
es
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
INGENIERA ELECTRNICA
MICROCONTROLADORES

del proceso que debe seguir el de 12 diodos emisores de luz conectados a


microcontrolador para ejecutar las los pines ubicados en dos puertos de
instrucciones, luego procedimos a convertir salida.
ese diseo en lenguaje ensamblador para poder
programarlo en el microcontrolador, Para hacer el control del sistema se
posteriormente se realiza el proceso de seleccion por recomendacin del
simulacin y depuracin para observar los ingeniero el microcontrolador pic 16f887
errores y as corregirlos en el programa de del fabricante microchip, perteneciente a
ensamblador; finalmente procedimos a la familia de 8 bits y con 40 pines de salida
programar el microcontrolador en fsico para o entrada digital o anloga en algunos de
observar la respuesta del mismo y observar ellos.
posibles errores no detectados previamente. En la Figura 1, se observa el diagrama de
Para dar respuesta a la aplicacin propuesta bloques del sistema micro controlado
por el ingeniero, se utilizan conceptos bsicos utilizado en la aplicacin, en la cual se
del lenguaje ensamblador, como son la puede observar las etapas mencionadas
creacin y llamado de libreras y subrutinas, anteriormente junto con el sistema de
direccionamiento directo e indirecto y el cmputo embebido en l y cada una de las
llamado a tablas. conexiones y relaciones que hay entre los
distintos bloques del sistema embebido.
II. DISEO E IMPLEMENTACION DEL
SISTEMA DE TAREAS

A. Requerimientos del sistema

Para dar respuesta al problema propuesto


por el ingeniero, se dise un sistema que
cuenta con 4 etapas bsicas, en las Figura 1. Diagrama de bloques del sistema a desarrollar

entradas tenemos en primer lugar un dip


switch de 2 canales que se utilizara para
seleccionar dentro de las 4 diferentes B. Diseo de las tareas individuales
tareas la que se va a ejecutar; La siguiente
PRIMERA TAREA:
etapa de entrada consta de un dip switch
de 8 canales que se utiliza como entrada de Lea las tres lneas ms bajas del puerto de 8
las tareas que requieran valores de bits X, las cuales fijan el nmero de leds que
referencia; la otra entrada es un pulsador se iluminarn a la salida en el puerto de 8 bits
ubicado en uno de los pines del puerto de Y. El estado del bit 4 del puerto X (RX3)
entrada de 8 bits, este se utilizara para determina el sentido en el cual se encienden
los leds.
cambiar entre las secuencias de encendido
de leds para la tarea 4; la ltima etapa es la Con el objetivo de mostrar los valores entre 0
de visualizacin de las salidas, que consta y 7 en un caso desplazados desde la derecha y
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
INGENIERA ELECTRNICA
MICROCONTROLADORES

en el otro desde la izquierda, se utiliz el unidad, las unidades aumentan de la misma


puerto B del pic, y la instruccin de rotacin a forma, as, cada vez que unidades llega a 10,
derecha rrf. o a la izquierda rlf. Adems, se decenas se va a incrementar y lo mismo pasa
usaron dos variables bsicas como son con centenas al llegar decenas a 10, de esta
contador y rotador, siendo la primera la que forma se pueden obtener tres valores en BCD
determina los leds que se prenden y el segundo basados en un solo valor binario.
el registro por el cual se va a rotar un nivel
lgico alto para visualizarlo por el puerto B del Debido al uso de estas tres variables y que solo
microcontrolador. se contaba con 2 puertos para visualizacin fue
necesario hacer que dos variables se mostraran
por un solo puerto mediante el uso de la
instruccin para cambiar los nibles altos y
bajos de uno de los registros, luego se
enmascaro y se uni en uno solo registro.

Figura 2. Diagrama de flujo primera tarea

SEGUNDA TAREA:

Lea el dato de entrada del puerto X, y realice


una conversin binaria a BCD. El resultado se
guarda en tres posiciones de memoria
llamadas centenas, decenas, unidades. Las
centenas y decenas sern visualizadas en los
diodos leds del puerto Y, siendo el nibble alto
las centenas y el nibble bajo las decenas, en la Figura 3. Diagrama de flujo segunda tarea
parte alta del puerto Z se deben visualizar las
unidades.
TERCERA TAREA.
En la figura 3. Se observa el diseo del Desarrollar la secuencia de Fibonacci a partir
diagrama de flujo que se sigui para escribir el de cero, hasta el trmino menor de 256,
cdigo en lenguaje ensamblador que rige el mostrando en los puertos Y y Z los valores
comportamiento en la tarea 2, la cual obtenidos. Cada valor debe mostrarse con al
corresponde al conversor de binario a BCD, menos un tiempo de 1 segundo. El dato debe
para el cual se utilizaron 4 registros a los que visualizarse en BCD. Recuerde que los
se nombr como contador, unid, dec y cent , el trminos de la secuencia de Fibonacci son: 0,
programa se ejecuta de tal forma que el 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,
contador cada vez que se decrementa en una
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
INGENIERA ELECTRNICA
MICROCONTROLADORES

Para esta tarea definimos los registros con los CUARTA TAREA
nombres (ulti, penu, suma) perteneciendo a
los nombres de ultima, penltima y suma, las Ejecutar cinco secuencias como se muestra en
variables se inicializan penltima con un 0 y las tablas. Para visualizar cada una de las
ultima con un 1 dado que son las semillas del secuencia utilice 8 Diodos LED conectados al
programa, asi, se empieza a sumar el valor puerto Y del microcontrolador.
actual de las semillas y guardndolo en un
registro que se llama suma; Posteriormente se Esta tarea se explica en las figuras 5 y 6, en las
procede a actualizar los valores de ultimo y cuales se puede observar el procedimiento que
penltimo para poder sumarlos en el siguiente debe seguir el programa para mostrar las
paso, luego, se utiliza la conversin descrita en secuencias, pero solo dos de los saltos entre la
la tarea 2 para convertir el valor a BCD. Al
tabla, para hacer visibles estos valores en el
terminar esta conversin muestra el valor de la
variable suma por el puerto seleccionado, y puerto utilizamos una tabla nica, y
activa de nuevo otra subrutina de retardos, dependiendo de la secuencia que se est
para este caso de 0.9943 segundos, por ultimo ejecutando, se realiza una precarga en el valor
esta serie tiene un tope de 233 donde se iguala del registro w, ubicndolo dentro de una
suma a este valor, si suma es igual a 233 posicin en la tabla, as, en vez de controlar
entonces la serie se reinicia y salta a la casilla
varias tablas, se utiliza una y un contador que
de semillas, donde se reinician las variables y
empieza de nuevo, si suma es diferente a 233 va cambiando entre ciclos.
el programa proceder a realizar la siguiente
suma de ultimo ms penltimo.

Figura 5. Diagrama de flujo cuarta tarea

Figura 4. Diagrama de flujo tercera tarea


UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
INGENIERA ELECTRNICA
MICROCONTROLADORES

Figura 6. Diagrama de flujo cuarta tarea

En la figura 7 se muestra el diagrama de flujo Figura 7. Diagrama de flujo selector de tareas


del sistema para seleccionar cada una de las 4
tareas dependientes del selector ubicado en el
puerto D, el cual funciona de la siguiente Ya dentro de cada una de las rutinas, si el valor
forma: de uno de los pines llega a cambiar, le contador
de programa va a una subrutina de finalizacin
EL micro funciona con 8MHz y los siguientes de la misma en la cual retorna al programa
puertos: principal para determinar cul ser la tarea a la
Puerto A Entrada que debe pasar.
Puerto B Salida
Puerto C Salida SIMULACION DEL LABORATORIO
Puerto D Entrada
En la figura 8 est el diseo de la simulacin
Se toman dos bits del puerto D para saber en en la que se prueba el funcionamiento de las
qu tarea e va a trabajar. Segn el valor de los
tareas antes de implementarlas en fsico, se
bits se distribuyeron las tareas de la siguiente
manera: observan los mismos sistemas de entrada con
dip switch y la visualizacin en diodos
Selector = 00 Tarea 1 emisores de luz, cada uno con su resistencia
Selector = 01 Tarea 2 limitadora de corriente.
Selector = 10 Tarea 3
Selector = 11 Tarea 4

En esta seccin de cdigo se pregunta por cada


uno de los valores del selector, si es igual al
mismo se hace el llamado a una tarea.
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
INGENIERA ELECTRNICA
MICROCONTROLADORES

En el desarrollo de esta aplicacin se puede


evidenciar el uso de algunos de los conceptos
ms aplicables en el uso de los
microcontroladores mediante el lenguaje de
programacin de ensamblador, como lo son el
uso de ciclos, tablas y subrutinas.

En el desarrollo de la prctica, ms
especficamente en la tarea dos, la conversin
de binario a BCD se debi utilizar un contador
decremental y uno incremental al mismo
tiempo, puesto que es la forma ms til de
hacer una conversin, de una variable de 8 bits
Figura 8. Simulacin con la herramienta Proteus. a tres variables de 4 bits.

APLICACIN FSICA En la rutina de generacin de retardos resulta


muy til el uso de un oscilador interno de
En la figura 9 se muestra el resultado final de
8Mhz, puesto que presenta un rendimiento
la implementacin de este laboratorio, donde
bueno en cuanto a velocidad de ejecucin de
por comodidad solo se utilizaron 10 leds ya se
instrucciones y el uso de la energa es
encontr que nunca se va a llegar el caso de
moderado.
usar los 12, tambin se observan dos
pulsadores, donde corresponden a el master Al escribir un cdigo que conste de un gran
clear y a al cambio de secuencia de la tarea 4. nmero de lneas, se puede presentar el
problema de que el cdigo se salga de la
primera pgina de la memoria de programa del
microcontrolador, por lo tanto, cuando se hace
una llamada a una rutina se debe tener presente
el valor del registro que controla la parte alta
del registro de contador de programa, para
configurarlo de tal forma que no valla a otra
direccin en la misma pgina.

Se utiliz la depuracin en simulacin


mediante el programa Isis proteus, y se pudo
observar claramente y lnea por lnea como se
llevaba a cabo la ejecucin del programa, para
as detectar errores y comportamientos no
necesarios en el mismo; Por lo tanto es mejor
utilizar el lenguaje ensamblador ya que
permite una depuracin ms acertada.
Figura 9. Implementacin fsica del diseo.

III. ANALISIS DE RESULTADOS


UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
INGENIERA ELECTRNICA
MICROCONTROLADORES

IV. CONCLUCIONES

Dentro de los microcontroladores de


gama baja, el pic 16f887 ofrece
grandes opciones a aprovechar como
el uso de su oscilador interno, para
nuestro caso de 8MHz.
Cuando el cdigo crece de forma que
algunas lneas de cdigo salgan de la
primera pgina de memoria de
programa del pic se hace necesario
direccionar directamente sobre el
registro PCLATH para hacer el
cambio de pgina.
Al usar lenguaje ensamblador se
puede observar de una mejor manera
el funcionamiento del integrado y la
ejecucin de la aplicacin.

V. REFERENCIAS

[1]. Designing Embedded Systems with PIC


Microcontrollers Principles and applications.
Tim Wilmshurst. 2007. Elsevier

[2]. Microcontrolador PIC16F887. Desarrollo


de proyectos. PALACIOS, E.- REMIRO, F. y
LPEZ, L.J. Febrero 2004. Rstica y CD-
ROM, 648 Pgs.

[3] Douglas, J. (2005). Geometria El


Encanto de la Forma. El Nacional. Breijo, E.
G. (2012). Compilador C CCS y simulador
PROTEUS para microcontroladores PIC. Las
Interrupciones y Temporizadores.

[4]Da Silva Zanco, W. (2008).


Micontroladores PIC: tcnicas de software y
hardware para projetos de circuitos
eletrnicos: com base no PIC16F877A.

You might also like