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