microcontrolador mc68hc11
microcontrolador mc68hc11
microcontrolador mc68hc11
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MICROCONTROLADOR 68HC11: Fundamentos, recursos y programación.<br />
MICROBÓTICA.<br />
TFLG2<br />
DIRECCION $1025<br />
7<br />
TOF RTIF PAOVF PAIF<br />
0<br />
TOF = Flag de interrupción de overflow del temporizador<br />
RTIF = Flag de interrupción de tiempo real<br />
PAOVF= Flag de interrupción de overflow del acumulador de pulsos<br />
PAIF = Flag de interrupción del acumulador de pulsos<br />
4.6.3. Ejemplos de manejo de las interrupciones en tiempo real<br />
−EJEMPLO 1: Interrupciones en tiempo real mediante espera activa.<br />
Este programa hace cambiar de estado el led de la tarjeta CT6811 cada 32.7ms. Se realiza utilizando las<br />
interrupciones en tiempo real y espera activa. En realidad no se utilizan interrupciones, sino que se trabaja con el flag<br />
de interrupción. cuando se pone a 1 quiere decir que han pasado 32.7ms. Las interrupciones quedan deshabilitadas.<br />
; +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />
; ¦ RTI.ASM (C) GRUPO J&J. Febrero 1997 ¦<br />
; ¦−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−¦<br />
; ¦ Programa ejemplo para ser ejecutado en la tarjeta CT6811. ¦<br />
; ¦ Este programa se debe cargar en la RAM interna del 6811. ¦<br />
; ¦ ¦<br />
; ¦ Ejemplo de las interrupciones en tiempo real. Cambiar el estado ¦<br />
; ¦ del led cada 32.7ms. Se hace mediante espera activa. ¦<br />
; +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />
TMSK2 EQU $24<br />
TFLG2 EQU $25<br />
PACTL EQU $26<br />
PORTA EQU $00<br />
bucle<br />
main<br />
ORG $0000<br />
LDX #$1000<br />
BSET PACTL,X $03 ; Int. en tiempo real cada 32.7ms<br />
BRCLR TFLG2,X $40 main ; Esperar a que se active el flag<br />
BSET TFLG2,X $40<br />
LDAA PORTA,X<br />
EORA #$40<br />
STAA PORTA,X<br />
BRA bucle<br />
END<br />
; Poner a cero flag de interrupción<br />
LXVII