curso de microcontrolador pic

Páginas: 8 (1810 palabras) Publicado: 12 de junio de 2014
Capítulo 3
3.1 Subrutinas y llamados
IMPORTANCIA DE LAS SUBRUTINAS
La mayoría de los microcontroladores incluyen en su repertorio de instrucciones algunas que
permiten saltar a una subrutina y, cuando se completa su ejecución, retornar al programa principal.
El empleo de subrutinas aporta muchas ventajas entre las que se destacan las siguientes:
1. Se pueden escribir como subrutinassecciones de código y ser empleadas en muchos
programas (por ejemplo, la subrutina de exploración de un teclado).
2. Dan a los programas un carácter modular, es decir, se pueden codificar diferentes módulos
para usarlos en cualquier programa.
3. Se reduce notablemente el tiempo de programación y la detección de errores usando
repetidamente una subrutina.
4. El código es más fácil de interpretar,dado que las instrucciones de las subrutinas no
aparecen en el programa principal. Solo figuran las llamadas CALLs.
LAS INSTRUCCIONES CALL Y RETURN
La instrucción CALL ( llamada a subrutina) consigue que la ejecución del programa continúe en
la dirección donde se encuentra la subrutina a la que hace referencia. Es similar a GOTO pero
coloca en la pila la dirección de la siguiente instrucciónque se debe ejecutar después de la CALL.
La subrutina finaliza con la instrucción RETURN (Retorno de la subrutina) que retoma la
dirección guardada en la pila y la coloca en el contador del programa PC continuando el flujo de
control con la instrucción que sigue a la CALL.
En la familia PIC de gama media la pila tiene ocho niveles de memoria del tipo LIFO (último en
entrar, primero en salir).Si se produce la llamada a una subrutina durante la ejecución de otra
subrutina, la dirección de retorno de esta segunda es colocada en la cima de la pila sobre la
dirección anterior. Esta segunda dirección es la primera en salir de la pila mediante la instrucción
RETURN.
Con la pila de ocho niveles, una subrutina puede llamar a otra y ésta, a su vez, llamar a otra
hasta un máximo de ocho. Lagama baja sólo puede realizar dos llamadas de este tipo al poseer
una pila de sólo dos niveles.
Las subrutinas deben colocarse al comienzo de las páginas debido a que el bit 8 del contador
del programa es puesto a 0 por la instrucción CALL (o por cualquier instrucción que modifica el PC).
Las subrutinas deben colocarse en la mitad inicial de las páginas (las 256 palabras).
3.2

Consulta atablas

En muchas ocasiones es necesario para un programador efectuar una coincidencia entre alguna
cantidad de valores conocidos y un número desconocido que se tiene como índice. Por ejemplo,
basados en el contenido de una posición de memoria RAM (índice) se puede obtener de una serie
consecutiva de datos almacenados en memoria de programa (a estos datos "conocidos"
almacenados se ledenomina tabla), el dato desplazado n posiciones adelante del comienzo de esta
tabla, este número n corresponde al contenido de la posición de memoria RAM ó índice.
Ejemplo:
offset equ
w
equ
f
equ
................
................
................

0Ch
0
1

;posición de memoria RAM
;destino W
;destino F

25

movf
call

................
................
................
tablaaddwf PCL,f
retlw 30h
retlw 31h
retlw 32h
retlw 33h
retlw 34h
retlw 35h
.
.
.

offset,w
;tomamos a W el número n utilizado como índice
tabla
;posición en donde se encuentra la serie de datos
;en este sitio luego del retorno de la subrutina se tiene en W el dato leído de la
;tabla

;se suma al PC el contenido de W obteniendo como resultado un salto indexado
;sI el contenido de Wsumado al PCL es 0 se retorna en esta posición, W=30h
;sI el contenido de W sumado al PCL es 1 se retorna en esta posición, W=31h
;sI el contenido de W sumado al PCL es 2 se retorna en esta posición, W=32h
;sI el contenido de W sumado al PCL es 3 se retorna en esta posición, W=33h
;sI el contenido de W sumado al PCL es 4 se retorna en esta posición, W=34h
;sI el contenido de W sumado al...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Curso basico de microcontroladores pic
  • Curso de programación de microcontroladores pic
  • Microcontroladores Pic
  • Pic microcontroler
  • microcontrolador pic
  • Microcontroladores pic
  • Microcontroladores Pic
  • Microcontroladores Pic

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS