26.12.2014 Views

microcontrolador mc68hc11

microcontrolador mc68hc11

microcontrolador mc68hc11

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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.9.3. Ejemplos de manejo del acumulador de pulsos<br />

−EJEMPLO 1: Cuenta de 5 flancos de bajada.<br />

En este ejemplo cada 5 flancos de bajada recibidos por el pin PA7 se cambia el estado del led.<br />

; +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />

; ¦ ACUM.ASM (C) GRUPO J&J. Marzo 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 utilización de acumulador de pulsos. Cada 5 flancos de ¦<br />

; ¦ bajada en el pin PA7 se cambia el estado del led. ¦<br />

; +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />

PACNT EQU $27<br />

PACTL EQU $26<br />

TMSK2 EQU $24<br />

TFLG2 EQU $25<br />

PORTA EQU $00<br />

inf<br />

ORG $0000<br />

LDX #$1000<br />

CLR PACNT,X<br />

LDAA #$40<br />

STAA PACTL,X<br />

LDAA #$10<br />

STAA TMSK2,X<br />

CLI<br />

BRA inf<br />

; Poner a cero el acumulador de pulsos<br />

; Activar acumulador de pulsos<br />

; Modo cuenta de pulsos. Flanco de bajada<br />

; Permitir la interrupción del acumulador<br />

;+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />

;¦ Rutina de servicio de interrupción de acumulador de pulsos ¦<br />

;+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+<br />

ac<br />

BSET TFLG2,X $10 ; Poner a cero flag del acumulador<br />

actuar<br />

LDAA PACNT,X<br />

CMPA #$05<br />

BEQ actuar<br />

RTI<br />

LDAA PORTA,X<br />

EORA #$40<br />

STAA PORTA,X<br />

CLR PACNT,X<br />

RTI<br />

ORG $00CA<br />

JMP ac<br />

END<br />

; Leer el acumulador<br />

; ¿Se han producido 5 flancos de bajada<br />

; Si actuar<br />

; No −−> Terminar<br />

; Cambiar led de estado<br />

; Poner de nuevo a cero el acumulador de pulsos<br />

−EJEMPLO 2: Interrupción de overflow del acumulador de pulsos.<br />

En este ejemplo se cambia el estado del led cada vez que se produce un desbordamiento en el acumulador de<br />

pulsos. Los desbordamientos se producen cada 256 pulsos. Para hacer que ocurran sólo cada 5 pulsos se inicializa el<br />

acumulador de pulsos con el valor $FB.<br />

LXXIX

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!