Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CONF,
PB,PC,PD,INT,TMR1
PC <- 21
PD <- 12
RETARDO1
PC <- 11
PD <- 12
RETARDO2
PC <- 0C
PD <- 06
RETARDO1
PC <- 0A
PD <- 06
RETARDO2
SUB INT
RX <- PC
RY <- PD
PD <- 0C
PC <- 12
RETARDO3
PC <- 09
RETARDO3
PC <- 00
RETARDO3
PC <- 09
RETARDO3
PC <- 00
RETARDO3
PC <- 09
RETARDO3
PC <- 00
PC <-RX
PD <- RY
TMR1IF <- 0
RETURN
RETARDO1
RZ <- 00
RETARDO2
RZ <- RZ+1
NO
RZ=03
SI
RETURN
RETARDO2
TMR1L <- 00
TMR1H <- 00
NO
TMR1IF=1
SI
TMR1IF <- 0
RETURN
RETARDO3
TMR1L <- 5F
TMR1H <- 00
NO
TMR1IF=1
SI
TMR1IF <- 0
RETURN
Cálculos de Tiempo.
En este ejercicio se utilizó como dato inicial 0000 para el TMR1 utilizando el prescaler máximo
de 11=1:8 el cual su DF=8, f=5Mhz
DI=0000
Complemento a 2
Hexadecimal a Decimal
65536
TRTMR 1=¿ CM x DF
4
TRTMR 1=(65536) x x DF
f
4
TRTMR 1=(65536) x x8
5 x 106
TRTMR 1=0,4194 segundos
lo que quiero 1
¿ Lazos= = 2.38 ≅ 3
lo que tengo 0.4194
Para lograr el retardo de 1 segundo se debe repetir tres veces el lazo del retardo2
Para el retardo de 0.3 segundos podemos tomar el retardo2 ya que es 0.4 aproximadamente
RETARDO3 DE LA INTERRUCION
DI=0000
Complemento a 2
Hexadecimal a Decimal
41216
TRTMR 1=¿ CM x DF
4
TRTMR 1=(41216) x x DF
f
4
TRTMR 1=( 41216) x x8
5 x 106
TRTMR 1=0,26 segundos
-Explique los errores cometidos en el ejercicio realizado (si los tuvo) y la forma de
corregirlos.
Un error fue utilizar el mismo retardo para la subrutina de interrupción ya que al usar el mismo
se dañaba el retardo del programa principal por eso para mayor facilidad se creó un retardo
propio para la subrutina de interrupción de este ejercicio, otra opción también pudo haber sido
guardar las variables del retardo para poder utilizar el mismo en la subrutina de interrupción sin
que se dañe el retardo para el programa principal.
-En qué localidad de memoria debe estar el código de una subrutina de interrupción.
El código de la subrutina de interrupción debe estar desde la localidad 04, pero no se podrían
realizar ejercicios más grandes ya que no entrarían el programa principal en 3 líneas, es por
ello que usamos unos GOTO para engañar a la PC para que se vaya desde donde nosotros
queremos comenzar la subrutina de interrupción.
RECOMENDACIONES:
Guardar y luego cargar las variables del programa principal en la subrutina de
interrupción para su correcto funcionamiento caso contrario no regresara el programa
donde se quedo
Poner en cero siempre la bandera de interrupción luego de ser atendida caso
contrario el programa se quedara solo dentro de la subrutina de interrupción.
Colocar la Instrucción RETFIE al final de la subrutina ya que es la encargada del retorno
de la subrutina