You are on page 1of 10

Instituto tecnolgico de Celaya

Ingeniera electrnica
Reporte Prctica de Laboratorio Microcontroladores

Practica_8
Generacin de tablas mediante direccionamiento
indirecto
Christian Ayala Garca
Carlos Giovanni Martnez Rocha

28-10-2014

Objetivo: Comprender el funcionamiento del direccionamiento indirecto en el


microcontrolador PIC16F84A y su en aplicaciones que requieran generar tablas de datos.
Material y equipo utilizado: El equipo utilizado son las siguientes herramientas software:
MPLAB IDE versin 8.4.
Procedimiento:
- Crear un proyecto en MPLAB IDE con el siguiente archivo fuente (practica8a):
INCLUDE "P16C84.INC"
ORG 0000
MOVLW 0x20
MOVWF FRS
MOVLW 0xFF
NEX1 MOVWF INDF
INCF FSR
BTFSS FSR,4
GOTO NEXI
AQUI GOTO AQUI
-Analizar el programa y determinar la funcin que realiza. Identificar el uso del modo de
direccionamiento en el programa.
Llena una tabla de con 16 datos a partir de la direccin 20h, el modo de direccionamiento
es indirecto y se realiza mediante el registro INDF que tiene como
-Realizar la simulacin en MPLAB y confirmar el funcionamiento predicho.

Se puede observar que el llenado de la tabla se detiene cuando el bit cuatro del FSR se
encuentran en 1
-Modificar el programa de manera que el llenado se realice hasta la direccin
0x047.

Se aadi una constante que equivale al nmero de datos que se desea llenar
-Simular el programa mediante un proyecto en MPLAB IDE (practica8b).

Se puede observar que el llenado de la tabla se realiza hasta la direccin 0x047 esto se
realiza con la ayuda de un contador. Observando cuantos datos se queran llenar.
-Suponer la aplicacin de un data logger, el cual consiste en un sistema para capturar y
almacenar datos en una tabla. Se tienen las siguientes especificaciones de dicho sistema:
a) la tabla tiene una longitud de 60 datos,
b) el periodo de muestreo es fijo,
c) se cuenta con un botn de inicio de captura de datos,
d) se tienen dos modos de captura:
Sencillo: se realiza captura de solo una tabla de datos.
Continuo: se realiza la captura de manera continua. Al terminar el llenado de una tabla
completa el sistema se deber de tener un periodo de muestreo antes de continuar con la
actualizacin de los datos.
-La implementacin del sistema mediante el PIC16F84 se realizar de acuerdo a:
-Se contar con un LED color amarillo para indicar que el llenado de la tabla est en
proceso.
-Se contar con un LED color rojo para indicar que el llenado de la tabla ha
terminado.
-Se contar con un LED color verde para indicar que la tabla se encuentra vaca.
-Se tendr un botn del tipo push button para dar inicio al proceso de captura
(activo en bajo).
-Se tendr un interruptor para indicar el modo de captura (nivel lgico bajo
indicando modo continuo).
-De acuerdo a las caractersticas del sistema analizar el siguiente programa:
include "P16C84.INC"
cuantos equ 0x048
temp0 equ 0x049
temp1 equ 0x04A

temp2 equ 0x04B


temp3 equ 0x04C
ORG 0000
start bsf STATUS,RP0
movlw b'11000'
movwf TRISA
movlw b'1111111'
movwf TRISB
bcf STATUS,RP0
bsf PORTA,2
bcf PORTA,1
bcf PORTA,0
no
btfsc PORTA,3
continuo bcf PORTA,2
bcf PORTA,1
bsf PORTA,0
movlw .60
movwf cuantos
movlw 0x0C
movwf FSR
loop movfw PORTB
movwf INDF
incf FSR
call delay_base
decfsz cuantos
goto loop
bcf PORTA,2
bsf PORTA,1
bcf PORTA,0
btfsc PORTA,4
goto single
call delay_base
goto continuo
single goto single
delay_base movlw 19
movwf temp0
dly0 movlw 0FFh
movwf temp1
dly1 movlw 0FFh
movwf temp2
dly2 movlw 0FFh
movwf temp3
dly3 decfsz temp3
goto dly3
decfsz temp2
goto dly2
decfsz temp1

goto dly1
decfsz temp0
goto dly0
return
-Indicar el funcionamiento del programa.
El programa recibe 60 datos del puerto B y los ordena a partir de la direccin 8C tiene un
tiempo de muestreo de 20 min, es decir cada 20 minutos se tomara la muestra del dato del
puerto B.
-Localizar la ubicacin de los tres LEDs, as como el push button e interruptor deinicio y
modo, respectivamente.
El bit 1 del puerto A corresponde al LED rojo que indica que el llenado de la tabla se ha
terminado.
El bit 0 del puerto A corresponde al LED amarillo que indica que el llenado de la tabla est
en proceso.
El bit 2 del puerto A corresponde al LED verde que indica que la tabla esta vacia.
El bit 4 del puerto A corresponde al modo de captura.
El bit 3 es el bit de inicio
-Ensamblar y simular el programa en una proyecto de MPLAB (practica8c).
Confirmar el funcionamiento predicho.

Para la simulacin se modific el programa para que el tiempo de muestreo fuera menor
as como tambin se modific el tamao de la tabla a solo 3 datos.

En las imgenes anteriores se puede observar que a partir de la direccin 8C se guarda el


primer dato que se encuentra en el puerto B

En las imgenes anteriores se puede observar que el dato que se encuentra en el puerto B se
guarda en la sguete direccin.

En las imgenes anteriores se puede observar que el dato que se encuentra en el puerto B se
guarda en la sguete direccin.
-Crear un proyecto en PROTEUS y confirmar el funcionamiento del sistema.
En la imagen se muestra que la tabla esta vaca y que adems est en proceso de llenado,
esto est determinado por los leds que se encuentran encendidos.

En la imagen se muestra que el llenado de la tabla se ha completado, por el estado del sw1
se puede observar que el llenado se encuentra en modo no continuo.

Se puede observar que los tres datos guardados don los mismos ya que no se altero el
estado del puerto B durante el muestreo.
-Estimar mediante simulacin en MPLAB el periodo de muestreo, as como lapso de
tiempo total que abarca una tabla completa.
Como el tiempo fue modificado el periodo de muestreo es de 11 segundos si la tabla fuera
de 60 datos el tiempo aproximado seria de 660 segundos

-Cul ser el periodo de muestro mximo posible con este programa? Cul ser el
mnimo? Para cada caso indicar la frecuencia mxima de la seal que puede ser muestreada
sin prdidas de informacin (Tip: utilizar el teorema de muestreo!).
El periodo mximo estar determinado por el valor de los temp0 temp1 y temp3 si se
encuentran en FF ser el mximo y el mnimo seria que se encuentren en 01 todos.

Por ejemplo en el programa simulado el periodo era de 11 segundos por lo que la seal
muestreada seria de 90m Hz.
Conclusiones
Se conoci el funcionamiento del PIC16F84 con una mayor profundidad ya que en esta
prctica se enfatiz en lo que es el direccionamiento indirecto y las ventajas prcticas que
se tienen al utilizar este tipo de direccionamiento. Se cumplieron los objetivos propuestos
en el manual de prcticas.
Adems se analizaron los programas que se encuentran en el manual de practica a detalle, y
se analiz cada aspecto del mismo, diferentes casos, esto sin mencionar que se adquiri mas
dominio sobre el uso del software para la simulacin de este programa (MPLAB IDE y
ISIS 7 Professional).
Resumen semanal
Esta semana se explic sobre el direccionamiento indirecto con los cdigos del PIC16F84,
la teora ya se haba comentado anteriormente con el funcionamiento del microcontrolador
Z80, por lo que en esta ocasin se compararon un poco ambos microcontroladores, se
platico acerca del cdigo del PIC, los registros que se utilizan y como es que funciona este
tipo de direccionamiento.
Se coment tambin sobre el periodo de muestreo, diferentes modos de captura como lo
son el modo continuo y modo nico adems de analizar un circuito acerca de cmo se
puede conectar el puerto A para comprender mejor estos tipos de captura.
Bibliografa:
1.-Hoja de datos PIC16F84
2.-introduccion a los sistemas de comunicacin Ferrel G. Stremler

You might also like