26.12.2014 Views

microcontrolador mc68hc11

microcontrolador mc68hc11

microcontrolador mc68hc11

SHOW MORE
SHOW LESS

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 />

−EJEMPLO 2: Modificación frecuencia del temporizador.<br />

Se trata del mismo programa anterior pero ahora el temporizador se configura para trabajar a una frecuencia<br />

mucho menor. La señal E de divide por 16 por lo que la nueva frecuencia del temporizador es de 125Khz<br />

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

; ¦ TIMER2.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 del temporizador principal. El programa hace lo mismo que ¦<br />

; ¦ TIMER.ASM pero se modifica la frecuencia de funcionamiento del tempo− ¦<br />

; ¦ rizador. El led cambiará de estado mucho más lentamente. ¦<br />

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

TMSK2 EQU $24<br />

TCNT EQU $0E<br />

PORTA EQU $00<br />

ORG $0000<br />

LDX #$1000<br />

BSET TMSK2,X $03 ; Dividir la señal E por 16<br />

bucle<br />

LDD TCNT,X<br />

ANDA #$80<br />

CMPA #$80<br />

BEQ apaga_luz<br />

LDAA #$40<br />

STAA PORTA,X<br />

BRA bucle<br />

; Leer el valor del temporizador principal<br />

; A=Parte alta; B=Parte baja<br />

; Comprobar bit de mayor peso del temporizador<br />

; Si está activo−−> Apagar led<br />

; No activo−−> Encender el led<br />

apaga_luz<br />

CLRA<br />

STAA PORTA,X<br />

BRA bucle<br />

END<br />

−EJEMPLO 3: Interrupción de overflow del temporizador.<br />

En este programa se utiliza la interrupción de overflow del temporizador para hacer parpadear el led de la<br />

tarjeta CT6811.<br />

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

; ¦ OVERFLOW.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 del temporizador principal. Se utiliza la interrupción de ¦<br />

; ¦ overflow del temporizador para hacer parpadear el LED de la CT6811. ¦<br />

; ¦ Cada vez que el temporizador alcanza el valor $FFFF se cambia de esta− ¦<br />

; ¦ do el led. Se configura el temporizador para que se produzca overflow ¦<br />

; ¦ cada 524.3ms ¦<br />

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

TMSK2 EQU $24<br />

TFLG2 EQU $25<br />

TCNT EQU $0E<br />

PORTA EQU $00<br />

ORG $0000<br />

LDX #$1000<br />

BSET TMSK2,X $03 ; Dividir la señal E por 16<br />

BSET TMSK2,X $80 ; Activar interrupción de overflow<br />

inf<br />

CLI<br />

BRA inf<br />

; Permitir las interrupciones<br />

;−−− Rutina de servicio de interrupción del overflow<br />

overflow<br />

BSET TFLG2,X $80 ; Quitar flag de int. de overflow<br />

LDAA $1000<br />

EORA #$40<br />

STAA $1000<br />

RTI<br />

; Cambiar de estado el led de la CT6811<br />

LXI

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

Saved successfully!

Ooh no, something went wrong!