You are on page 1of 27

Microprocesadores y Microcontroladores.

MIS4201-007V







INTEGRANTES.
Cristian Concha.
Guillermo Gonzlez.

PROFESOR.
Luis Felipe Gonzlez.

Microprocesadores y Microcontroladores.
Laboratorio 3.
Estructura y programacin de PIC 16f84.


15/10/2013

Microprocesadores y Microcontroladores.
MIS4201-007V

1

Resumen.
En el siguiente laboratorio analizaremos los diferentes tipos de instrucciones para el PIC 16F84,
realizando programas, compilarlos y simularlos mediante PICSIMULATOR IDE.
ndice.

Resumen. ............................................................................................................................................. 1
ndice. .................................................................................................................................................. 1
Objetivos. ............................................................................................................................................ 3
Introduccion. ....................................................................................................................................... 3
Materiales. .......................................................................................................................................... 3
Cuestionario ........................................................................................................................................ 3
Para qu sirve el registro Status? .................................................................................................. 3
Qu se entiende por flag o bandera? ........................................................................................ 3
Cules son y que funcin cumplen los flags del registro status? .................................................. 4
Qu es y que funcin cumple la ALU? ........................................................................................... 4
Cmo se debe seleccionar un banco? ........................................................................................... 4
Para qu sirve el pin MLCR? ....................................................................................................... 4
Para qu sirven los registros TRISA y TRISB? ................................................................................. 5
Cmo se programa o configuran las puertas PA y PB? ................................................................. 5
Cul es la ventaja de usar las subrutinas? ..................................................................................... 5
Qu es un retardo? ........................................................................................................................ 5
ACTIVIDAD N1. ................................................................................................................................... 6
ACTIVIDAD 2. ....................................................................................................................................... 7
ACTIVIDAD N 3. .................................................................................................................................. 8
Actividad 4. ........................................................................................................................................ 10
Actividad N5. .................................................................................................................................... 12
ACTIVIDAD N6. ................................................................................................................................. 14
ACTIVIDAD N7. ................................................................................................................................. 17
Actividad 8 ..................................................................................................................................... 20
Conclusiones. .................................................................................................................................... 25
Conclusin Cristian Concha. .......................................................................................................... 25
Microprocesadores y Microcontroladores.
MIS4201-007V

2

Conclusin Guillermo Gonzlez..................................................................................................... 25
Bibliografa. ....................................................................................................................................... 26



Microprocesadores y Microcontroladores.
MIS4201-007V

3

Objetivos.
Familiarizar con las estructuras internas de los microcontroladores PIC, dando particular enfasis en
el modelo PIC 16f84 ademas de una introduccion al repertorio de instrucciones RISC que utiliza
este.
Describir la estructura interna del pic 16f84.
Explicar como funcionan y programar usando comandos para programa ensamblador.
Explicar como funcionan y programar con las instrucciones que mueven datos entre registros, las
instrucciones matematicas y logicas y las que manejan literales directos.
Introduccion.
Se desarrolla un programa sumador de dos nmeros y el resultado en una posicin de memoria. El programa
se desarrolla con un micro controlador PIC 16f84a mediante datos otorgados por el profesor Luis Gonzlez,
luego debemos desarrollar en texto plano (Word Pad, block de notas) el programa entregado, una vez
escrito el programa en texto plano se ensambla en (MPASM) para identificar sus errores, posterior a la
correccin de errores se enva el programa resuelto a un simulador (PIC SIMULATOR IDE) mediante este
simulador podemos verificar el funcionamiento real del programa.

Materiales.
El desarrollo del taller fue posible gracias a los materiales entregados en clase:
Notebook, programa PIC simulador (entregado por el profesor), programa MPASM el cual compila
y ensambla, programa para edicion de texto plano word pad, en nuestro trabajo utilizamos el
editor de texto notepad ++ el cual simplifica las lineas de comando y permite un conteo total de
las lineas de codigo o programa.

Cuestionario

Para qu sirve el registro Status?
Se trata de unos registros de memoria en los que se deja constancia de algunas condiciones que se
dieron en la ltima operacin realizada y que habrn de ser tenidas en cuenta en operaciones
posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia de si el
resultado fue cero, positivo o negativo.

Qu se entiende por flag o bandera?
Se refiere a uno o ms bits que se utilizan para almacenar un valor binario o cdigo que tiene
asignado un significado. Las banderas normalmente forman parte de una determinada estructura
Microprocesadores y Microcontroladores.
MIS4201-007V

4

de datos, como un registro de una base de datos, y el significado del valor que figura en una
bandera tpicamente se definir en relacin a la estructura de datos de la que forma parte. En
muchos casos el valor binario de la bandera se entender como la representacin de uno de los
posibles estados.

Cules son y que funcin cumplen los flags del registro status?
Controlar o indicar el estado intermedio o final o el resultado de diferentes operaciones.

Qu es y que funcin cumple la ALU?
Es un circuito digital que calcula operaciones aritmticas (como suma, resta, multiplicacin, etc.)
y operaciones lgicas (si, y, o, no), entre dos nmeros.

Explique el concepto de Bancos usados por la serie PIC
Toda la memoria de datos est organizada en 4 bancos numerados: 0, 1, 2 y 3. Para seleccionar un
banco, se debe hacer uso de los bits del registro STATUS<7:5> denominados IRP, RP1 y RP0.Cada
banco se extiende hasta la direccin de memoria 7Fh (128 bytes). Las posiciones inferiores de cada
banco estn reservadas para los registros de funciones especiales, a continuacin de estos, se
ubican los registros de propsito general, implementado como RAM esttica. Todos los bancos
implementados contienen registros de funciones especiales. Uno de los usos ms frecuentes de
estos registros con respecto a un banco, puede ser el reflejo en otro para la reduccin de cdigo y
la va de entrada ms rpida.

Cmo se debe seleccionar un banco?
Para seleccionar un banco, se debe hacer uso de los bits del registro STATUS<7:5> denominados
IRP, RP1 y RP0
Cul es la diferencia entre un registro de propsito general y uno de propsito especifico
El registro de propsito general, pueden guardar tanto datos como direcciones. Son
fundamentales en la arquitectura de von Neumann. La mayor parte de las computadoras
modernas usa GPR.
El registro de propsito especfico, guardan informacin especfica del estado del sistema, como el
puntero de pila o el registro de estado.
Qu funcin cumplen los registros de propsito especfico?
Guardan informacin especfica del estado del sistema, como el puntero de pila o el registro de
estado.
Para qu sirve el pin MLCR?
Entrada de Reset( pin 4) si est a nivel bajo y entrada de la tensin de programacin cuando se
est programando el dispositivo.
Donde se conecta el cristal que define la velocidad de trabajo del pic
OSC1/CLKIN y OSC2/CLKOUT: (pines15 y 16) son los pines de la entrada de cristal/ fuente externa
de reloj y salida de oscilador a cristal respectivamente
Microprocesadores y Microcontroladores.
MIS4201-007V

5

Para qu sirven los registros TRISA y TRISB?
Estos registros son idnticos para el puerto A y el puerto B, con la diferencia de que uno ser de 5
bits y otro de 8 bits, el mismo nmero de bits que tiene cada puerto.
Los registros TRIS, tambin son llamados as, sirven para configurar si los bits de cada puerto sern
de entrada o de salida:
1: La patilla del puerto correspondiente ser de entrada
0: En este caso la patilla actuar como una salida.
Cmo se programa o configuran las puertas PA y PB?
PA=0, entrada
PB=0, salida
Cul es la diferencia entre un salto y un brinco?
Los saltos son de dos ciclos en cambio el brinco es un ciclo.
Cul es la ventaja de usar las subrutinas?
Evitan la repeticin de cdigo, puesto que una subrutina puede ser invocada varias veces desde el
mismo programa.
Favorecen la reutilizacin de cdigo.
Facilitan la lectura y comprensin de cdigo fuente al ocultar los detalles menos importantes,
siempre y cuando los nombres de las subrutinas sean informativos de su funcin.
Ayudan a corregir errores, puesto que un error en una subrutina slo se corrige una vez aunque
esa subrutina sea llamada en diferentes puntos del programa principal.
Qu es un retardo?
Un retardo, es una forma de control de tiempo en la programacin del PIC, Las instrucciones
'normales' utilizan un ciclo de mquina para ejecutarse, un ciclo mquina es la unidad bsica de
tiempo de ejecucin de un programa en un PIC y depende de la velocidad del oscilador.
Hay instrucciones llamadas de salto como goto, return, call, btfss etc que necesitan 2 ciclos
mquina para ejecutarse. Si contamos los ciclos mquina de una determinada parte de
instrucciones de un programa, podremos controlar los tiempos de retardo.

Microprocesadores y Microcontroladores.
MIS4201-007V

6

ACTIVIDAD N1.
Editar un programa de texto plano que cargue un dato 0x77 en la direccin 0x0c. En seguida
agregue la instruccin orientada al bit bcf que significa b=bit, c=clear, f=registro, es decir borra
o pone a cero el bit b del registro f.
Qu pasa con el registro 0x0c?
Se crea el programa de texto plano, obteniendo como resultado lo siguiente:





Hay un decremento en el registro, empieza en 0 luego sigue la instruccin, y enva el nmero 77 al
registro y luego lo disminuye en 75.

Microprocesadores y Microcontroladores.
MIS4201-007V

7

ACTIVIDAD 2.
Repita la actividad 1, pero reemplazando el dato 0x77 por 0x71 y la instruccin bcf por bsf
Qu pasa con el contenido del registro 0x0c?
Se realiza el programa de texto plano, y se compila. Se obtiene el siguiente resultado:





En este caso, el registro guarda el nmero 71, y luego enva el dato de aumentar, el cual lo hace al
nmero 73.


Microprocesadores y Microcontroladores.
MIS4201-007V

8

ACTIVIDAD N 3.
Editar un programa de texto plano.
La instruccin clave en este programa es aquella destacada en negritas btfss, Qu hace este
programa?, obtenga el ejecutable y ejectelo en el simulador en la modalidad paso por paso, Qu
valor queda en 0x0N, cuando el programa llega a la lnea TERM?
Modifique el programa cambiando en la primera lnea el dato 0x01 por 0x02, obtenga el
ejecutable y ejectelo en el simulador, Qu valor queda ahora en 0x0b, cuando el programa
llega a la lnea TERM?
Se edita y ejecuta programa obteniendo lo siguiente:




Microprocesadores y Microcontroladores.
MIS4201-007V

9



Este programa hace que cuando el bit 2 de 0x03 es 1 vuelve a 0, como se muestra en las imgenes.
El valor que queda en el registro 0x0b es 0.


Microprocesadores y Microcontroladores.
MIS4201-007V

10

Actividad 4.

Repita la actividad 3 pero ahora reemplazando la instruccin btfss por btfsc, Qu ocurre
ahora?
Se repite el programa cambiando el comando y se obtiene lo siguiente:


Microprocesadores y Microcontroladores.
MIS4201-007V

11



Este programa hace que cuando el bit 2 de 0x03 es 0 vuelve a 0, como se muestra en las imgenes.
Las dos condiciones (activiad 3 y 4), salta el programa dependiendo del bit en el registro.

Microprocesadores y Microcontroladores.
MIS4201-007V

12

Actividad N5.
Escribir un programa en texto plano;
Obtenga el ejecutable y ejectelo en el simulador con modalidad paso a paso, Qu ocurre?,
Cunto tarda en llegar a Term?
Se edita el programa en texto plano y se obtiene lo siguiente:



Microprocesadores y Microcontroladores.
MIS4201-007V

13





Microprocesadores y Microcontroladores.
MIS4201-007V

14



El programa editado, es un tipo de programa de un cronometro, el cual se le ingresa un dato y de
ah empieza a disminuir en 1 el dato hasta llegar a 0, se demora 4 segundo o 4 pasos en llegar a
TERM.


ACTIVIDAD N6.
Edite un programa en texto plano;
Obtenga el ejecutable y ejectelos en el simulador en la modalidad paso por paso, Qu ocurre?,
Qu hace el programa? Qu hace la instruccin decfsz?
Se edita y ejecuta el programa obteniendo lo siguiente:


Microprocesadores y Microcontroladores.
MIS4201-007V

15





Microprocesadores y Microcontroladores.
MIS4201-007V

16



Este programa es un temporizado, el cual con la funcin decfsz resta 1 al destino y cuando el
resultado es 0 finaliza.















Microprocesadores y Microcontroladores.
MIS4201-007V

17

ACTIVIDAD N7.
Imagine que el bit 2 del registro 0x0c de memoria es un led y que quiere prenderlo y
apagarlo con una cierta frecuencia, es decir durante t1 segundos estar prendido, despus
durante t1 segundos estar apagado, despus durante t1 segundo estar prendido
nuevamente y as sucesivamente.
Se realiza el programa en texto plano, se ejecuta y se obtiene lo siguiente:







Microprocesadores y Microcontroladores.
MIS4201-007V

18


Microprocesadores y Microcontroladores.
MIS4201-007V

19



Microprocesadores y Microcontroladores.
MIS4201-007V

20



El programa, como antes dicho, prende un led, se apaga y vuelve a prenderlo, como se
muestra en las imgenes.


Actividad 8
Crear un programa que prenda y apague un diodo led, obtenga el ejecutable y ejectelo
en el simulador en la modalidad paso por paso, active previamente la visa de externa del
circuito integrado del PIC 16f84 para poder ver como se prende y apaga la lmpara
asociada al pin 8 del CI= PIN 2 de PB, seleccionado desde la barra de men, la opcin
tolos y luego eligiendo la opcin Microcontroller View.
Describa paso a paso el programa ejecutado en el simulador.
Se edita y ejecuta el programa obteniendo lo siguiente:
Microprocesadores y Microcontroladores.
MIS4201-007V

21




Microprocesadores y Microcontroladores.
MIS4201-007V

22




Microprocesadores y Microcontroladores.
MIS4201-007V

23



El programa anterior, al ejecutarlo y enviar comandos, enva un pulso para prender un led
y esperar un tiempo x hasta que se apague, luego con el comando return vuelve al inicio
y empieza el programa nuevamente.

Conclusiones

Los programas realizados en el laboratorio, especialmente en el N3 es el que nos ha
mostrado de manera ms a fondo de como programar el PIC 16f84.
Microprocesadores y Microcontroladores.
MIS4201-007V

24

Adems de poder aplicarlo en distintos tipos de labores, creemos que ha sido una
experiencia til para nuestros conocimientos en este curso.
Se realizan paso a paso cada uno de los objetivos pedidos por el profesor, y asi logramos
realizar una experiencia sin ningn tipo de problema.





















Microprocesadores y Microcontroladores.
MIS4201-007V

25

Conclusiones.
Conclusin Cristian Concha.
Las micro controladoras revolucionaron gran parte de lo que es la computacin hoy en da, sin
ir ms lejos, varios autores catalogan este invento como uno de los ms importantes del siglo
XX. Dada su importancia en los procesos que se realizan hoy por hoy, hacen imprescindible la
existencia de estos como soportes bsicos para diferentes aplicaciones en las numerosas
reas de la informtica.
Agradecemos en primera instancia al Profesor por ayudarnos en nuestro aprendizaje y
formarnos como futuros Analistas en Computacin,
y a nuestro instituto como institucin que nos brinda las herramientas para adquirir el
conocimiento necesario.

Conclusin Guillermo Gonzlez.
En conclucion puedo comentar que este laboratorio fue de gran utilidad puesto que continuamos
con el avance de experiencias y conociendo el comportamiento de PIC solo con el cambio de una
instruccin, debido a la falta de tiempo se debi realizar un avance rpido y no poder comprender
a fondo todo lo que podemos realizar con una instruccin si es sumar un contenido o agregarle un
dato adicional, mover datos desde los distintos registros, el uso de etiquetas el cual simplifica de
gran forma el estar llamando a una determinada direccin dentro del programa.
El PIC con el cual realizamos las instrucciones pese a ser un pic de gama baja tiene muchas
prestaciones las cuales lo hacen un pic perfectamente utilizable para proyectos en nuestro da a
da, el poder conocer y comprender a finalidad cada una de las instrucciones de este PIC sern un
piso para poder integrar en nuestras soluciones algn otro tipo de microcontrolador dependiendo
de los requisitos o lo que queramos controlar.

Microprocesadores y Microcontroladores.
MIS4201-007V

26

Bibliografa.
Programacin de 16f84 - http://fr.slideshare.net/guestf09168b/programacion-con-
microcontrolador-pic-16f84
Los registros del PIC - http://www.hispavila.com/3ds/chipspic/descripinstruc.html

You might also like