You are on page 1of 8

PROGRAMACION DE MICROCONTROLADORES

V Ciclo

Laboratorio N 5

Direccionamiento Indirecto
INFORME
Integrantes: ROBLES GONZALES, Jos Luis VILLANERA SANCHEZ, El Viliams

Seccin: C15-5- B Profesor: Ramn Robalino


Fecha de Realizacin: 13 de Septiembre Fecha de Entrega: 27 de Septiembre

2011-2

Contenido
Pgina

1.2.2.1.2.2.3.4.-

Fundamento terico.......................................................................................................... 3 Resultados obtenidos en el laboratorio ............................................................................ 4 direccionamiento indirecto ........................................................................................... 4 Cmo es que ocurre este tipo de direccionamiento? ................................................. 4 Aplicacin de lo aprendido ................................................................................................ 5 Conclusiones...................................................................................................................... 8

1.- Fundamento terico

Los direccionamientos de la memoria de datos (RAM). La memoria interna se direcciona por medio de los 5 bits f contenidos en las instrucciones que operan sobre registros y de esta forma se puede direccionar cualquier posicin desde 00 al 1F. Las direcciones 10 a 1F corresponden a los bancos de registros, por lo tanto, en los Microcontroladores que tenga ms de un banco antes de acceder a alguna variable que se encuentre en esta zona, se debe asegurar los bits de seleccin de banco en el registro FSR . Los registros especiales y de uso general de la posicin 00 a la 0F estn presentes en todos los PIC. El registro FSR, adems de servir para seleccionar el banco activo, sirve como puntero para direccionamiento indirecto. La posicin 00 del mapa de RAM es la llamada direccin indirecta. Si en cualquier instruccin se opera con la direccin 00, en realidad se estar operando con la direccin a donde apunte el contenido del FRS. Por ejemplo si el FSR contiene el valor 14, una instruccin que opere sobre la direccin 0, operara en realidad sobre la direccin 14. Se puede decir en este caso que la posicin 14 de memoria fue direccionada en forma indirecta a travs del puntero FSR.

2.- Resultados obtenidos en el laboratorio


2.1.- direccionamiento indirecto

2.2.- Cmo es que ocurre este tipo de direccionamiento?

La inicializacin empieza con la instruccin MOVLW cargando los ocho bits en el registro W a 0x20 luego la instruccin MOVWF que pasa los datos de W a F en este caso al registro FSR hacia la memoria RAM luego para luego limpiarlo, el direccionamiento indirecto se logra con la aplicacin del registro INDF que realmente registra accesos que el registro apunt por el FSR (Archivo el Registro Selecto), Leyendo el INDF se registran indirectamente.

3.- Aplicacin de lo aprendido Diagrama de flujo del programa Contador de Vocales


INICIO

dddd

Inicializamos el Microcontrolador

Inicializamos el Direccionamiento Indirecto

Leer un carcter

NO

Final?

SI

A?
NO

SI

Incrementar contador de vocales

E?
NO

SI

I?
NO

SI

SI

O?
NO

U?

SI

NO

FIN

Programa Principal

Resulatado de compilacin

Resultados del emsamble

Cdigo fuente del contador de vocales, mediante direccionamiento indirecto

Registro de Archivo Simblico

Registro de Archivo Hexadecimal

CONTV (contador d vocales), nos muestra un valor de 3 en bianrio indicandonos que el nombre VILIAMS tiene 3 vocales esta cuenta lo muestra en el puerto D, comprovando la veracidad del funcionamiento del programa creado

Escribimos VILIAMS* en las direccin de registros de propsito general 0x300x37, el asterisco se coloca para dar por finalizado la lectura de vocales del nombre

4.- Conclusiones
1. Mediante la modificacin del bit IRP del registro STATUS podemos acceder al modo de direccionamiento indirecto, logrando con esto el acceso al registro de cualquiera de los 2 bancos (B0 - B1 o B2-B3) a la vez de manera indirecta y es esta una de sus ventajas respecto al direccionamiento directo.

2. Para acceder al direccionamiento indirecto configuramos el valor un registro 0x30 u otro de modo indirecto hay que cargar un valor a FSR y con cualquier instruccin que contenga INDF accederemos al valor del registro 0x30 u otro.