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

LDAA $1000 ; Cambiar de estado el LED<br />

EORA #$40<br />

STAA $1000<br />

fin ; Retorno rutina de servicio<br />

RTI<br />

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

;¦ Vector de interrupción del SCI. En cuanto se produce ¦<br />

;¦ alguna interrupción del SCI se salta a la rutina sci ¦<br />

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

ORG $00C4<br />

JMP sci<br />

END<br />

Obsérvese que en el bucle principal simplemente se envían los caracteres ’A’ y ’B’, no se tratan los<br />

caracteres recibidos. Esto se realiza ’automáticamente’ mediante interrupciones. Al ejecutar este programa se puede<br />

hacer una idea de la potencia de las interrupciones.<br />

4.3.5.− Mecanismo de interrupciones del SCI.<br />

Existen 4 causas de interrupción en el SCI, al aparecer alguna de estas 4 se activa su bit correspondiente en<br />

el registro de estado. El SCI sólo tiene asociado un vector de interrupción por lo que sólo existe una rutina de<br />

servicio . Esta rutina de servicio tiene que leer el registro de estado (SCSR) y detectar cuál de las 4 causas de<br />

interrupción ha ocurrido. Según la cual bifurcará a una rutina o a otra. Finalmente se retornará con RTI. Ver ejemplo<br />

número 4 del apartado anterior.<br />

Es importante hacer notar que siempre que haya un bit a 1 en el registro de estado, la CPU lo interpretará<br />

como una petición de interrupción y llamará a la rutina de servicio del SCI. Por tanto es MUY IMPORTANTE<br />

poner el bit correspondiente a cero para que al terminar la rutina de servicio la CPU no se vuelva a "interrumpir".<br />

Esto último es un punto muy importante. Supongaose que se produce una interrupción en el SCI porque se ha<br />

recibido un carácter. El bit 5 del registro de estado se pondrá a 1 indicando el evento. La CPU detecta que este bit<br />

está activado y pasa a ejecutar la rutina de servicio del SCI. Si esta rutina no pone a cero este bit, al terminar con RTI<br />

el bit seguirá activado y la CPU lo tomará como una nueva interrupción que se ha producido, con lo que se volverá a<br />

ejecutar la rutina de servicio. Así permanecerá la CPU en un bucle infinito ejecutando constantemente la rutina de<br />

servicio del SCI hasta que se produzca un reset externo.<br />

Los bits del registro de estado no se pueden poner a cero directamente. Para ponerlos a cero es preciso<br />

realizar algún tipo de acción como es leer otros registros. Estos bits se ponen a cero cuando se lee el SCSR y a<br />

continuación se lee el registro de datos SCDR.<br />

La siguiente tabla muestra las causas de interrupción , el bit del registro de estado asociado a cada una y el<br />

bit del registro de control 2 que las enmascara.<br />

Motivo de interrupción Bit de estado Máscara<br />

interrupción<br />

Registro de transmisión vacío TDRE TIE<br />

Registro de transmisión vacío y línea transmisión<br />

TC<br />

TCIE<br />

vacía<br />

Dato recibido RDRF RIE<br />

Dato recibido y línea recepción vacía ( IDLE) IDLE ILIE<br />

LIV

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

Saved successfully!

Ooh no, something went wrong!