Listado 4. Estructura del Programa Bucle Regulador (pág 5 de 5)
*******************************************************
* BLINK – Actualiza LED
* Si TOC es par, enciende el LED
* el resto apaga el LED
*******************************************************
BLINK
EQU
LDA
LSRA
BCS
BSET
BRA
LEDOFF
BCLR
XBLINK
RTS
*******************************************************
* Rutina de servicio de interrupción RTIF
*******************************************************
RTICNT
DEC
BNE
LDA
STA
BSET
ENDTOF
BSET
AnRTI
RTI
UNUSED
EQU
*******************************************************
* Vector de Interrupción y Reset
*******************************************************
ORG
TIMVEC
FDB
IRQVEC
FDB
SWIVEC
FDB
RESETV
FDB
*
TOC
LEDOFF
LED,PORTA
XBLINK
LED,PORTA
RTIFs
ENDTOF
#3
RTIFs
7,TIC
RTIFR,TSCR
AnRTI
$07F8
RTICNT
UNUSED
UNUSED
START
;Actualiza el LED
;Si es par, LSB será cero
;Desplaza LSB para acarreo
;Si no, apaga el LED
;Enciende el LED
;Entonces salir
;Apaga el LED
;Volver desde BLINK
;Cada 'On' RTIF decrementa RTIFs
;Realizado si RTIFs no es = 0
;RTIFs cuenta 3->0
;Reset del contador TOFS
;Pone MSB como un flag a MAIN
;Borra el flag RTIF
;Vuelve de la interrupción RTIF
;Usa RTI en AnRTI si no usa
;interrupciones justo volver
;Area de Inicio del vector
;Cuenta RTIFs 3/TIC
;Cambia si el vector es usado
;Cambia si el vector es usado
;Empieza el program con un reset
90