6 Modelos de Programacion
6 Modelos de Programacion
6 Modelos de Programacion
Modelos de Programación.
Se le da el nombre de Modelo de Programación a programas estándar que
se repiten en las diferentes aplicaciones de microprocesadores y que dan
solución a cada sección de la aplicación.
Modelos típicos:
Inicio
Secciones: Tarea
Inicio.
Control
Tarea.
Control. Ultima
ejecución?
Conclusiones.
Conclusiones
Fin.
SECCIONES.
Inicio:
Establece las condiciones iniciales tales como, valores de variables, numero
de veces de ejecución, restablecimiento de buffers, contadores, banderas
indicadoras de operación, etc.
Tarea:
Efectúa el objetivo o propósito del programa, retardo de tiempo, algoritmo
aritmético o lógico, manipulación de datos, conversión de código, secuencia,
etc.
Control:
Actualiza el contador de número de veces de ejecución, obliga al lazo a la
ejecución repetitiva de la tarea y finalmente a la interrupción de esta.
Conclusiones:
Resume los resultados del lazo y los prepara para generarlos como
conclusión inmediata o como resultado para otros programas.
Sección de Control y concepto de controlador usando un contador ascendente o
descendente.
Control
Ultima recicla
ejecución?
continúa
Contadores?
A+1 A Ix+1 Ix M+1 M
B+1 B Iy+1 Iy
Contador ascendente.
Contador descendente.
contador+1 contador
contador = 0
contador =
valor preestablecido
continúa
continúa
CONTADOR DE NUMERO DE VECES DE EJECUCION.
Cicla
contador = 0 contador = Cicla
valor preestablecido
si
Continúa con si
sección de Continúa con
conclusiones sección de
conclusiones
CONTADOR DE NUMERO DE VECES DE EJECUCION EN PIC.
Cicla
BTFSC
contador = 0 BTFSC Cicla
contador = 0
si
GOTO si
Continúa con
Continúa con sección de GOTO
sección de conclusiones
conclusiones
Problema:
Usando un programa de lazo, idear un programa que cuente la cantidad de
bits igual a 1 de un registro.
Establecer como contador del numero de veces de ejecución al registro
indice IX, y como contador de bits igual a 1 al acumulador B.
Retardos de tiempo.
IX FFFF
Ix - 1 Ix
BNE
Fin.
Retardo
A XX
IX FFFF
Ix - 1 Ix
BNE
A-1 A
BNE
Fin.
Retardos de tiempo en PIC.
Retardo con
un registro
de proposito
general
W FF
(W) 20
(20)-1 20
GO TO
BR o NOP
Retardos de tiempo en PIC dos registros anidados.
Retardo con
2 registros
de proposito
general
W FF
(W) 21
(W) 20
(20)-1 20
GO TO
(21)-1 21
GO TO
BR o NOP
SERIES DE NUMEROS.
TABLAS DE BUSQUEDA.
Variable Variable
independiente. dependiente.
Variables a operar. Resultado de la
operación.
°C °F
ángulo Función
trigonometrica.
Aplicaciones Típicas:
Ix 0800
TABLA
dato ESCRIBIR
A (Ix+00)
STAA Indexado
Uso de una Tabla para conversión de un numero en Hexadecimal a Decimal.
Ejemplo:
900 0 Convertir un 0D a Decimal.
901 1
902 2
903 3 Zona donde esta
Ix 0900 la Tabla.
904 4
905 5
906 6 # Hex D 0D ACCB
907 7
D + Ix Ix 0900 + 0D = 090D
908 8
909 9 A ( Ix + 00 )
90A 10
90B 11
90C 12
90D 13
90E 14
13 ACCA
90F 15
Sacar una Tabla por un Puerto.
Inicio de la Tabla.
Dirección de Ix 0900
inicio. 900 Dato 0
901 Dato 1 LEER
ACCA
902 Dato 2 A (Ix+00)
903 Dato 3 LDAA Indexado
904 Dato 4
905 Dato 5 ESCRIBIR
906 Dato 6 A (00)
907 Dato 7 STAA Directo.
Puerto
908 Dato 8
909 Dato 9
90A Dato 10
90B Dato 11
90C Dato 12
90D Dato 13 Habilitar el puerto como salida, para ir por el
Dirección
90E Dato 14 siguiente dato incrementar el Ix, controlar
final. 90F Dato 15 mediante la direccion final, considerar un retado
de tiempo para cada dato.
Transfiere una tabla.
Inicio de la Tabla.
Ix 0900
Dirección de
inicio. Primer dato LEER
ACCA
A (Ix+00)
LDAA Indexado
en X
Dirección
final. Ultimo dato
ESCRIBIR
Dirección de A (Iy+00)
destino. STAA Indexado en Y
Programa Subrutina
Principal
Instrucciones
de la
Subrutina
Instrucciones
del P.P.
Retornar al P.P.
Ir a la subrutina
Fin o
Recicla
Las instrucciones asociadas a las Subrutinas son BSR instrucción en modo
relativo Branch to Subroutine, JSR instrucción en modo extendido o indexado
Jump to Subroutine y RTS instrucción en modo inherente Return from
Subrutine.
Programa Subrutina
Principal
Instrucciones
de la
Subrutina
Instrucciones
del P.P.
RTS
JSR o BSR
Fin o
Recicla
Al ir a ejecutar una subrutina se presentan cambios en el contenido del PC
Contador del Programa.
Programa
Principal
Subrutina
JSR o BSR
PC
Dirección de la RTS
siguiente
instrucción del P.P. Fin o
Recicla
Al ir a ejecutar una subrutina se presentan cambios en el contenido del PC
Contador del Programa.
Guarda el contenido
del PC en el Stack
PCH Stack
Programa PCL
Principal
Subrutina
JSR o BSR
PC
Dirección de la RTS
siguiente
instrucción del P.P. Fin o
Recicla
Al ir a ejecutar una subrutina se presentan cambios en el contenido del PC
Contador del Programa.
Guarda el contenido
del PC en el Stack
PCH Stack
Programa PCL
Principal
?
Subrutina
JSR o BSR
PC
Dirección de la RTS
siguiente
instrucción del P.P. Fin o
Recicla
Al ir a ejecutar una subrutina se presentan cambios en el contenido del PC
Contador del Programa.
Guarda el contenido
del PC en el Stack
PCH Stack
Programa PCL
Principal
Subrutina
JSR o BSR PC
PC
Carga el PC con
la dirección de la
Dirección de la primer instrucción RTS
siguiente de la subrutina.
instrucción del P.P. Fin o
Recicla
Al ir a ejecutar una subrutina se presentan cambios en el contenido del PC
Contador del Programa.
Guarda el contenido
del PC en el Stack
PCH Stack
Programa PCL
Principal
Subrutina
JSR o BSR PC
PC
Dirección de la
primer instrucción
Dirección de la de la subrutina. RTS
siguiente
instrucción del P.P. Fin o
Recicla
?
Al ir a ejecutar una subrutina se presentan cambios en el contenido del PC
Contador del Programa.
Guarda el contenido
del PC en el Stack
PCH Stack
Programa PCL
Principal
Subrutina
JSR o BSR PC
PC
Dirección de la
primer instrucción
Dirección de la de la subrutina. RTS
siguiente
instrucción para Fin o
continuar Recicla
ejecutando el P.P.
PC
PCH Stack
Recobra el anterior
contenido del PC del
PCL
Stack
Dado que en la ejecución de ambos, Programa Principal y Subrutina, se utilizan
los registros del MPU como herramienta de manipulación, es necesario efectuar
un diseño de la subrutina considerando proteger la información que se mantiene
en los registros del MPU.
Programa
Principal
Subrutina
Instrucciones
previas del P.P. Guardar contenido
Establecimiento de registros
de paramentos Instrucciones
de la subrutina de la
JSR o BSR Subrutina
Recobrar contenido de
registros
Instrucciones
posteriores del Retornar al P.P.
P.P.
Fin o
Recicla
Problema:
a) Convertir en subrutina el programa de retardo de tiempo que usa el IX.
b) Convertir en subrutina el programa de retardo de tiempo que usa el IX y el
Acumulador A.
Sub
Retardo
Programa
IX Maux
Principal
SWI Ix - 1 Ix
BNE
IX Maux
RTS
SUB
Programa Retardo
Principal
IX Maux
A XX
IX FFFF
JSR o BSR
Ix - 1 Ix
SWI
BNE
A-1 A
BNE
IX Maux
RTS