Está en la página 1de 11

Prctica de Laboratorio Numero 1.

Microcontroladores y Microprocesadores
Jos Ricardo Riao B.
Cdigo: 93358987.
E-mail: jrianob@unadvirtual.edu.co
RESUMEN.
Como primera actividad practica y
para familiarizarnos con el software
utilizado para el trabajo con
microcontroladores, se realizo se
realizo la programacin en lenguaje
C de un PIC16F84A programados
en Assermbler guiados con un video
tutorial diseado para este fin por el
ingeniero a cargo del laboratorio,
luego de esto se procedi a
compilar el algoritmo para obtener el
archivo Hex, necesario para simular
el software PROTEUS el montaje y
puesta en marcha del proyecto,
gracias a esto se pudo observar
secuencias de luces de encendido y
apagado al oprimir determinado
pulsador
PALABRAS CLAVE.
Programacin de
Microprocesadores y
Microcontroladores.
Assermbler
Cdigo Fuente.
Lenguaje Ensamblador.
PROTEUS, SIMUPROC
.
INTRODUCCION.
El fin de dar respuesta al primer
problema relacionado con las cuatro
operaciones aritmticas bsicas,
suma, resta, multiplicacin y
divisin, se cre un algoritmo en el
que solo es suficiente conocer dos
datos numricos reales o mejor
conocidos como flotantes, para dar
solucin al primer requerimiento.
Seguido del algoritmo se da a
conocer el diagrama de flujo y la
respectiva simulacin del

funcionamiento de un Con
microprocesador hipottico por
medio de SimuProc.
La parte de esta primera prctica de
laboratorio, relacionada con la
programacin de
Microcontroladores, se compone de
tres ejercicios, definidos en la gua
de actividades de la prctica. El
primero de los ejercicios que
involucran microprocesadores
plantea la necesidad de encender y
apagar un diodo LED con una
intermitencia de tiempo. Para el
segundo ejercicio se requiere que
un LED sea encendido y apagado
por la accin de un pulsador
manual. El tercer ejercicio consiste
en la generacin de 5 secuencias
de luces, a partir de un arreglo de 8
diodos LED, que deben
seleccionarse mediante dos
pulsadores, uno de incremento y
otro de decremento. La solucin
para las necesidades descritas
anteriormente, que requieren de la
utilizacin de microcontroladores,
para los sistemas de LED, parte del
entendimiento del funcionamiento
del microcontrolador a usar, la gua
de actividades propone un
microcontrolador PIC16F84A, como
elemento principal para cada una de
las tres situaciones propuestas. Una
vez revisado el comportamiento
general del controlador, a travs de
la hoja de datos del fabricante, se
procede a implementar un diagrama
de flujo, que permita describir de
manera general el procedimiento
que debe realizar el sistema
completo de control, que incluye al

microcontrolador como elemento


principal.
OBJETIVOS.
Disear un programa que
permita recibir nmeros y
realizar las cuatro
operaciones aritmticas
bsicas, suma, resta,
multiplicacin y divisin.
Disear un programa que
represente la solucin
matemtica a un problema,
por ejemplo, hallar el rea, el
volumen, o encontrar la
solucin a un sistema de
ecuaciones lineales, puede
optar por sistemas bsicos
2x2, 3x3 o un programa que
halle la solucin a un sistema nxn.
Disear un algoritmo para
generar el cdigo fuente,
compilarlo, depurarlo,
guardarlo, cargarlo y
ejecutarlo utilizando para ello
el interprete DEBUGGER o el
simulador SIMUPROC.
.
METODOLOGIA.
Se inicia con la lectura de la gua de
actividades y prcticas, dentro de la
cual se consignan los parmetros
que deben seguirse para el buen
desarrollo de la actividad
El marco terico contiene una serie
de conceptos, instrucciones y
herramientas acadmicas que se
erigen en la base del desarrollo
prctico del curso de
Microprocesadores y
Microcontroladores, dentro de este
marco terico se muestra de
manera general los diferentes
recursos necesarios para la
implementacin de sistemas
electrnicos basados en micros,
dentro de los recursos se cuentan
recursos humanos de software y
hardware.

Para el desarrollo de programacin


en base a microprocesadores se
hace uso del software SIMUPROC
[1], cuyo entorno grafico se muestra
en la figura 1.

Figura 1. Entorno de usuario


SIMUPROC.
SimuProc es un Simulador de un
Procesador Hipottico con el cual
podrs aprender las nociones
bsicas para empezar a programar
en lenguaje ensamblador, en el cual
podemos observar todo el proceso
interno de ejecucin del programa a
travs de cada ciclo del procesador.
SimuProc con su gran variedad de
instrucciones (50+) es un simulador
con el cual tienes infinitas
posibilidades de pruebas.

Figura 2a. Se carga el programa a


que desea implementarse en el
microprocesador virtual.

Figura 2c. Cdigo fuente en el editor


de texto del SIMUPROC.
Para enviar el archivo a la memoria
del micro es suficiente con dar clic
en el recuadro enviar a memoria y
despus dar clic en la flecha de
color verde, que se encuentra al
lado derecho del recuadro enviar a
memoria.

En esta ocasin se desarrollaron los


ejercicios de control de encendido y
apagado de leds, mediante circuitos
electrnicos basados en la familia
de microcontroladores de Microchip
particularmente el microcontrolador
PIC16F84A . Para el desarrollo de
programacin con
microcontroladores es necesaria
primero la definicin general del
problema mediante un diagrama de
flujos, los correspondientes
diagramas de flujo se muestran en
el siguiente apartado de este
documento para cada uno de los
ejercicios propuestos.
El paso siguiente para programar un
microcontrolador es la definicin de
variables y constantes, que se
incluyen dentro del cdigo fuente
del programa que ser cargado al
microcontrolador PIC.
Para trabajar con
microcontroladores de la familia
Microchip es necesario contar con el
software especializado MPLAB,
dentro del PIC16F84A [4] existen 16
pines que pueden ser configurados
como entradas o salidas de manera
independiente, Estn divididos en
dos puertos de 8 patillas y otro de 5,
puerto B y puerto A,
respectivamente. La direccin de
cada bit est determinada por los
bits de los registros TRISA y TRISB
del banco de memoria 1. Un cero en
un bit significa que es una salida,
mientras que un uno significa que
queda configurado como una
entrada.
En la figura 3 se observa un ejemplo
de configuracin de puertos de
entrada y salida de manera
alternada.
Algunas patillas o pines de los
puertos estn relacionados con
otras funciones del
microcontrolador. Los 4 bits ms
altos del puerto B pueden ser

utilizados como interrupciones


cuando son programados como
entradas. El bit 0 del puerto B
tambin puede ser usado como
fuente de interrupcin externa. El bit
ms alto del puerto A puede
utilizarse tambin como entrada
externa de reloj para el contadortemporizador.
Puertos de entada y salida
PIC16F84A [4].
Puerto A
El puerto A dispone de 5 lneas de la
RA0 a la RA4, en la que hay que
distinguir la A4 o T0CKI Timer o
entrada de reloj que est
compartida con la entrada para el
Timer 0 (TMR0) a travs de un
trigger Schmitt y que cuando se
configura como salida es de
drenador abierto, por lo que debe
colocarse una resistencia de
polarizacin

Figura 4b. Diagrama de bloques del


puerto A para RA4.
El puerto B dispone de 8 lneas de
E/S que van desde la RB0 a la RB7
(la lnea RB0 o INT es compartida
con la entrada de interrupcin
externa). Adems, las lneas RB4 a
RB7 pueden programarse una
interrupcin por cambio de estado
de cualquiera de estas lneas.

Figura 4a. Diagrama de bloques del


puerto A desde RA0 hasta RA3.
Figura 5a. Diagrama de Bloques del
B, desde RB4 a RB7.

correspondiente se utilice como


entrada o como salida.

Figura 5b. Diagrama de Bloques


del B, desde RB0 a RB3.
El siguiente paso en programacin
de microcontroladores es definir los
puertos del controlador, bien sea
como entrada o salida, a travs del
set de instrucciones propio del
lenguaje ensamblador.
Configuracin de puertos de
entrada y salida.
Cualquier lnea puede funcionar
como entrada o como salida. Sin
embargo, si acta como entrada la
informacin que se introduce no se
memoriza, por lo que la informacin
debe ser mantenida hasta que sea
leda. Si la lnea acta como salida,
el bit que procede del bus de datos
se guarda en la bscula, con lo que
la informacin que ofrece esta patita
permanece invariable hasta que se
reescriba este bit.
Los bits de cada puerto se
configuran mediante los bits
correspondientes de dos registros
especiales de control:
Registro de Datos denominados
PORTA PORTB: Se pueden leer o
escribir segn que el puerto

R
egistro de Control denominado
TRISA TRISB: En los registros de
Control se programa el sentido de
funcionamiento de cada una de las
lneas de E/S. Colocando un "0" en
el correspondiente bit del registro
TRISA TRISB, la lnea queda
programada como salida mientras
que colocando un "1" la lnea queda
programada como entrada. Por
ejemplo, si ponemos un 0 en el bit 3
del registro TRISA la patilla RA3
ser una salida y si ponemos un 1
en el bit 4 del registro TRISB
entonces la patilla RB4 ser una
entrada.
Los Puertos A y B (PORTA y
PORTB) se corresponden con las
posiciones 5 y 6 del rea de datos.
Cuando se produce un reset, todos
los bits de los registros TRIS pasan
a tener el valor 1 y todas las lneas
de E/S actan como entrada por
evidentes motivos de seguridad
para evitar daos irreparables.
Todas las patillas de E/S que no se
empleen deben ser llevadas a +5v,
regla de las entradas CMOS,
preferiblemente a travs de una
resistencia para evitar que si por
error se configurasen como salidas
puedan darse problemas si
presentan un estado bajo.
Posteriormente a la definicin de
puertos de entrada y salida del
microcontrolador, se procede a
generar el cdigo fuente a travs del
software MPLAB [5], siendo este un
software desarrollado por la
compaa Microchip especialmente
para el proceso de programacin de
sus microcontroladores PIC.

Figura 6. Entorno Grafico del


Software MPLAB, con la edicin de
un cdigo Fuente.
Una vez implementado el cdigo
fuente, en MPLAB, se hace la
compilacin del mismo a travs de
la combinacin de teclas ALT+F10,
si no existe ningn error de sintaxis,
el programa MPLAB genera de
manera automtica un archivo de
extensin HEX, el cual es utilizado
en primer lugar para probar las
prestaciones del programa
generado en un software de
simulacin, por ejemplo PROTEUS.
Para la implementacin fsica del
proyecto es necesario el uso de una
herramienta de software y otra de
hardware, capaces de llevar el
cdigo fuente generado mediante
MPLAB al microcontrolador, en
lenguaje maquina. Una de las
herramientas de software ms
utilizadas para este propsito, es el
programa conocido como PICKIT2
A travs del PICKIT2 se importa el
programa de extensin .ASM,
generado tambin de manera
automtica por el software MPLAB,
al compilar el cdigo fuente
deseado, es decir que la
compilacin de un cdigo fuente en
MPLAB genera de manera
automtica un archivo .HEX, pero la
forma de los archivos de MPLAB, es
decir los archivos manipulables a
travs del software son archivos de
extensin .ASM.

Una vez llevado el programa en


forma fsica al microcontrolador se
procede al ensamblaje del circuito
en protoboard, el funcionamiento del
circuito ha sido probado a travs del
software de simulacin PROTEUS.
La implementacin fsica del circuito
secuenciador de luces, demando de
la utilizacin de un microcontrolador
PIC16F84A, adems de 8 diodos
LED, 8 resistencias de 220, un
cristal de cuarzo de 4 Hertzios, 3
pulsadores manuales, capacitores
de 4.7 picofaradios y una fuente de
voltaje de 9 voltios.
ALGORITMOS.
Practica 1.1.
La primera parte de la prctica de
laboratorio se basa en generar un
programa capaz de desarrollar
operaciones matemticas a travs
de la implementacin del mismo en
un microprocesador. Se propone
para este punto el clculo del rea
de un triangulo y el rea de una
circunferencia la herramienta de
software SIMUPROC.
Calculo del rea de un triangulo.
Al abrir el software SIMUPROC, y
cargar el programa realizado para el
clculo del rea del Triangulo se
abre el entorno usuario del
programa el cual pide ingresar la
altura y la base del triangulo, ambos

valores se solicitan en centmetros.

Figura 9. Proceso de carga del


programa de clculo del rea del
triangulo en SIMUPROC.
Despus de dar click en Ejecutar, se
da inicio a la interfaz usuario del
programa
Despus de dar click en Ejecutar, se
da inicio a la interfaz usuario del
programa.

Figura 10. El programa solicita el


valor de la base del triangulo en
centmetros.
Despus de ingresado el valor de la
base del triangulo, el programa
solicita que sea ingresado el valor
de la altura del triangulo.

Figura 11. El programa solicita el


valor de la altura del triangulo en
centmetros.
Despus de ingresar los valores de
base y altura del triangulo en
centmetros el programa procede a
realizar el clculo.

Figura 12. Calculo del rea de un


triangulo de base 5 cm y altura 4 cm

Figura 14. El programa solicita el


valor del dimetro de la
circunferencia en centmetros

Calculo del rea de una


circunferencia.
Al abrir el software SIMUPROC, y
cargar el programa realizado para el
clculo del rea de la circunferencia
se abre el entorno usuario del
programa el cual pide ingresar e
dimetro de la circunferencia en
centmetros.

Figura 15. Calculo del rea de una


circunferencia de dimetro 5 cm.

Figura 13. Proceso de carga del


programa de clculo del rea de la
circunferencia en SIMUPROC.
Despus de dar click en Ejecutar, se
da inicio a la interfaz usuario del
programa.

Practica 1.2
Microcontroladores.
La practica nmero 1.2 del
componente practico del curso
microcontroladores y
microprocesadores consiste en el
desarrollo de tres ejercicios que

implican la programacin de un
microcontrolador PIC16F84A, el
primero de ellos consiste en el
encendido y apagado de un diodo
led de forma automtica, el segundo
ejercicio consiste en el encendido y
apagado de un diodo led por accin
de un pulsador y el tercer ejercicio
de este apartado consiste en la
generacin de 5 secuencias de de
luces, que pueden ser escogidas a
partir de la accin de dos
pulsadores, un pulsador de
incremento y un pulsador de
decremento.

Circuito Propuesto.

Diodo LED intermitente


automtico.
Circuito Propuesto.

Figura 17. Circuito propuesto para


el control de un diodo LED de
apagado mediante accin de
pulsador externo.
Secuenciador de luces
PIC16F84A.
Circuito Propuesto.

Figura 16. Circuito propuesto para


el control de un diodo LED de
encendido y apagado intermitente.
Diodo LED apagado por accin
de pulsador externo.

Figura 18. Secuenciador de Luces


PIC16F84A.
ANALISIS DE RESULTADOS.
Las caractersticas ms importantes
de los microcontroladores y los
microprocesadores, ms potentes y
con mayor capacidad de memoria,
utilizables en funciones de propsito
general, presentan dificultades a la
hora de ser programados y la
implementacin fsica de un circuito
basado en microprocesadores es
bastante compleja. Por otro lado los
microcontroladores, con menos
capacidad de memoria y menos
potentes que los
microcontroladores, son dispositivos
de funcin especfica, que adems
presentan una mayor cantidad de
posibilidades en cuanto a su
programacin se refiere, pues es
posible programarlos en lenguajes
de alto nivel como el lenguaje C,
pero tambin su programacin
puede realizarse a travs de
lenguaje maquina o lenguaje
ensamblador. La implementacin de
circuitos de control basados en
microcontroladores es ms sencilla
y practica que la implementacin de
circuitos similares basados en
microprocesadores.
En el caso de los ejercicios que
involucraban microprocesadores se
trabajo con el simulador
SIMUPROC, con la finalidad de
entender de manera ms detallada
el funcionamiento interno del
dispositivo, pues este simulador
evoca el proceso de trabajo interno
del dispositivo, mostrando las
diferentes etapas del procesamiento
de datos e instrucciones en el
programa que se ha cargado en el.
En la parte relacionada con
procesos o sistemas basados en
microcontroladores se hizo uso de

diferentes herramientas de software,


por un lado se uso la herramienta
MPLAB de Microchip, para
programar los microcontroladores
desarrollados por dicha compaa,
los cdigos resultantes de la
compilacin de los algoritmos de
programa generados por MPLAB
fueron llevados a circuitos
electrnicos montados de formo
simulada en el software PROTEUS.
La implementacin fsica del
circuito, secuenciador de luces
requiri de la utilizacin del software
PICKIT2 adems de un quemador
de microcontroladores comercial.
Para el desarrollo de los programas
de microcontroladores se hizo uso
de algoritmos y diagramas de flujo
que permitieran comprender mejor
las necesidades propias de cada
ejercicio relacionado con
microcontroladores. La
programacin de los
microcontroladores se llevo a cabo
ntegramente en lenguaje
ensamblador, el cual es un tipo de
lenguaje de programacin de bajo
nivel, cercano al lenguaje maquina.
Dentro del proceso de programacin
de microcontroladores surgieron
algunos inconvenientes a la hora de
implementar instrucciones de
comparacin, estos inconvenientes
fueron resueltos mediante la
implementacin de contadores
auxiliares, que permiten la seleccin
de la secuencia de luces deseada a
travs de la accin de pulsadores
externos. Aunque el lenguaje
ensamblador es considerado
obsoleto dentro del mundo de
programacin de
microcontroladores, su
implementacin como ejercicio de
aprendizaje es bastante til, pues
permite el entendimiento ms

generalizado de los diferentes


procesos que debe realizar el
microcontrolador a la hora de
cumplir con una accin especfica.
CONCLUSIONES.
Es indudable que al realizar la
prctica de unas actividades
cualquiera que esta sea, se logra
afianzar el conocimiento que se ha
adquirido en forma terica.
En esta prctica hemos aprendido a
disear el seudo cdigo y luego el
algoritmo de un pequeo programa
el cual posteriormente hemos
escrito en lenguaje ensamblador,
compilado y ejecutado usando el
SimuProc.
REFERENCIAS
BIBLIOGRAFICAS.
[1] Simulador de Microprocesadores
SIMUPROC
https://sites.google.com/site/simupro
c/

http://www.slideshare.net/Tony2506/
simuproc
[2] MICROCHIP
http://www.microchip.com/
[3] Hoja de datos Microcontrolador
PIC16F84A
http://pdf1.alldatasheet.es/datasheet
[4] PIC16F84A Set de Instrucciones
http://pdf1.alldatasheet.es/datasheet
[5] Software de Programacin
MPLAB
http://www.microchip.com/stellent/id
cplg?IdcService=SS_GET_PAGE&n
7 Villamil, Hctor U. (2012).Modulo
del curso acadmico
Microcontroladores y
Microprocesadores, Escuela de
Ciencias Bsicas, Ingeniera y
Tecnologa, Universidad Nacional
Abierta y a Distancia. Chiquinquira,
Colombia.