Está en la página 1de 32

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

SISTEMAS ELECTRNICOS DIGITALES


BLOQUE 3 MICROCONTROLADORES (PARTE 4)
DESARROLLO DE SISTEMAS ELECTRNICOS DIGITALES BASADOS EN EL MICROCONTROLADOR 8051 Interrupciones,Temporizadores/Contadores y Puerto serie Enrique Mandado Prez Mara Jos Moure Rodrguez

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 INTERRUPCIONES


Dos formas mediante las cuales el microcontrolador puede controlar la entrada/salida: Iniciada por el microprocesador (Hand shake) : PARO, ESPERA o DETENCIN CONSULTA Iniciada por el perifrico: INTERRUPCIONES

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 INTERRUPCIONES: FUENTES DE INTERRUPCIN


5 fuentes de interrupcin: 3 Generadas por los perifricos integrados: Paso por cero del temporizador T0. Paso por cero del temporizador T1. Recepcin/Transmisin del Puerto (Canal) Serie. 2 Generadas por terminales de E/S: Externa 0 (P3.2). Externa 1 (P3.3).

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 INTERRUPCIONES: CARACTERSTICAS BSICAS


IDENTIFICACIN DE LA INTERRUPCIN: Biestable (Flag) asociado a cada fuente de interrupcin. Vector de interrupcin asociado con cada fuente de interrupcin. PRIORIDAD: 2 niveles de prioridad programable. Secuencia fija de prioridad dentro de cada nivel. INHIBICION: Inhibicin global. Inhibicin individual. BORRADO: Automtico. Mediante instrucciones en la rutina de atencin a la interrupcin (Manual) .

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 INTERRUPCIONES EXTERNAS 0/1


INT0 (P3.2) Interrupcin por nivel lgico cero: IT0=0 (TCON.0). Interrupcin por flanco de bajada: IT0=1 (TCON.0). Biestable: IE0 (TCON.1). INT1 (P3.3) Interrupcin por nivel lgico cero: IT1=0 (TCON.2). Interrupcin por flanco de bajada: IT1=1 (TCON.2). Biestable: IE1 (TCON.3).

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

CONFIGURACIN INTERRUPCIN EXT0/1 Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: CONFIGURACIN INTERRUPCIN EXT0/1

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: INHIBICIN GLOBAL/EXT1/EXT2

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

B8H
---

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051

INTERRUPCIONES: REGISTRO DE CONFIGURACIN DE LA PRIORIDAD

4 3 2 1 0

PS PT1 PX1 PT0 PX0

Nivel de prioridad del puerto serie Nivel de prioridad de la int. temp. 1 Nivel de prioridad de la int. ext. 1 Nivel de prioridad de la int. temp. 0 Nivel de prioridad de la int. ext. 0

IP

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: PRIORIDAD DE INTERRUPCIONES
La subrutina de atencin a una interrupcin solo puede ser interrumpida por otra peticin de interrupcin de mayor prioridad. Si se producen de forma simultanea dos o ms peticiones de interrupcin de la misma prioridad, el microcontrolador acta de acuerdo con la siguiente secuencia de prioridad :

Prioridad Mxima

Externa 0 Temporizador 0 Externa 1 Temporizador 1 Canal Serie 0

Mnima

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: HARDWARE DE INTERRUPCIN

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: VECTORES DE INTERRUPCIN
Vector de interrupcin: direccin (Memoria de Programa) de la primera instruccin de la subrutina de atencin. La CPU ejecuta una instruccin LCALL con dicho vector. La instruccin RETI permite volver al punto en el que se produjo la interrupcin al mismo tiempo que desinhibe (habilita) las interrupciones de menor o igual prioridad.
Fuente de interrupcin Vector de Interrupcin

Externa 0 Tempo. T0 Externa 1 Tempo. T1 P. Serie

0003H 000BH 0013H 001BH 0023H

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: BORRADO DE LA PETICIN DE INTERRUPCIN

Fuente de Interrupcin

Automtica al ser atendida

Manual en la rutina de atencin

Paso por cero T0 Paso por cero T1 Canal Serie 0 Flanco bajada en INT0 o INT1 Nivel bajo en INT0 o INT1

Si Si Si Si No se puede borrar. La seal externa determina el borrado

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: ATENCIN DE LA INTERRUPCIN Una interrupcin se atiende a partir del ciclo mquina siguiente a su deteccin siempre y cuando no se d alguna de las tres circunstancias siguientes:
1. Se est atendiendo otra interrupcin de igual o mayor prioridad. 2. El ciclo mquina actual no es el ltimo de la instruccin que se est ejecutando. 3. La instruccin que se est ejecutando es RETI (retorno de interrupcin) o alguna instruccin de lectura o escritura en los registros IE o IP. En estos casos se ejecuta adems la instruccin siguiente.

Si se da alguna de estas tres circunstancias anteriores, la interrupcin no se atiende hasta que finaliza dicha accin siempre que:
La peticin de interrupcin contine activada. No se haya pedido otra interrupcin de mayor prioridad durante la espera.

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


INTERRUPCIONES: EJEMPLO DE UTILIZACIN DE LAS INTERRUPCIONES
ORG 0h AJMP inicio ORG 03h JMP Intext0 ORG 100h Inicio: SETB IT0 SETB EX0 SETB EA JMP $ Intext0: PUSH ACC POP ACC RETI END

; Direccin de la subrutina de atencin ; Configuracin por flanco ; Habilitacin de interrupcin externa ; Habilitacin global de interrupciones ; Subrutina de atencin a la interrupcin ; Es necesario guardar el contenido de los ; registros que utiliza la subrutina

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 TEMPORIZADOR/CONTADOR


CARACTERSTICAS BSICAS Est basado en dos contadores de 16 bits (T0, T1) que pueden funcionar como:
Temporizador: Su valor se incrementa en cada ciclo mquina. Frecuencia 1/12 del generador de impulsos (GI). Contador: Su valor se incrementa con los flancos negativos aplicados a los terminales T0, T1. La mxima frecuencia de contaje es 1/24 de la del generador de impulsos.

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 FUNCIONAMIENTO DEL TEMPORIZADOR/CONTADOR TEMPORIZADOR CONTADOR
CUENTA LOS FLANCOS DE BAJADA APLICADOS A UN TERMINAL EXTERNO

CTR G
MCTR M1 C2/1+ MCTR CLK

CTR
M1 C2/1+

12

CLK

1, 2D

1, 2D

T0: P3.4 T1: P3.5

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 REGISTROSNASOCIADOS CON LOS TEMPORIZADORES/CONTADORES
Registros Temporizadores/Contadores formados por dos registros de 8 bits: T0 -> TH0 , TL0 T1 -> TH1 , TL1 Control con dos registros de SFR: TCON habilita la funcin y memoriza la interrupcin. TMOD determina el tipo de funcin (Temp./Cont.) y el modo de trabajo: MODO 0: Temporizador/Contador de 8 bits con divisor 32. MODO 1: Temporizador/Contador de 16 bits. MODO 2: Temporizador/Contador de 8 bits con auto-recarga. MODO 3: T0 como temporizador de 8 bits y T1 parado.

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 REGISTROS DE CONTROL DE LOS TEMPORIZADORES/CONTADORES

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 TEMPORIZADOR/CONTADOR: MODO 0

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 TEMPORIZADOR/CONTADOR: MODO 1


PASO DE 11111111 11111111 000000000 00000000

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 TEMPORIZADOR/CONTADOR: MODO 2


PASO DE 11111111 00000000

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 TEMPORIZADOR/CONTADOR: MODO 3

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 HABILITACIN DE LAS INTERRUPCIONES DE TO Y T1

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 REGISTROS DE CONTROL DE TO Y T1

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 REGISTROS DE MODO DE FUNCIONAMIENTO DE TO Y T1

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 EJEMPLO DE PROGRAMACIN DEL TEMPORIZADOR T0
ORG 0h AJMP inicio ORG 0Bh JMP IntT0 ORG 100h Inicio: mov TMOD,#01h mov TL0,#LOW(-30000) mov TH0,#HIGH(-30000) SETB EA SETB TR0 JMP $ IntT0: -----RETI END

; Direccin de la subrutina de atencin ; Configuracin T0 modo 1, activado SW ; Valor inicial de la temporizacin ; Habilitacin global de interrupciones ; Arranque del temporizador SW ; Subrutina de atencin a la interrupcin

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 PUERTO SERIE: CARACTERSTICAS GENERALES
Transmisin/Recepcin
Sncrona (half-duplex): RxD0 (P3.0): entrada/salida de datos TxD0 (P3.1): reloj de desplazamiento Asncrona (full-duplex): Transmisin por TxD0 (P3.1). Recepcin por RxD0 (P3.0). Disponen de registro temporal (buffer) de recepcin y de transmisin (SBUF). Orden de los bits -> Primero el menos significativo. Interfaz S0: 4 modos de funcionamiento (1 sncrono, 3 asncronos).

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 PUERTO SERIE: TRANSMISIN/RECEPCIN


Transmisin
Se inicia escribiendo en el registro SBUF (99H). Se marca la finalizacin de la transmisin de la unidad de informacin en el bit TI (SC0N.1). Esta situacin puede provocar una peticin de atencin por interrupcin. Se puede atender por consulta.

Recepcin
Se permite la recepcin con el Bit REN (SCON.4). Se marca la recepcin de la unidad de informacin en el bit RI (SCON.0). Esta situacin puede provocar una peticin de atencin por interrupcin. Se puede atender por consulta.

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 PUERTO SERIE: MODOS DE FUNCIONAMIENTO 0 Y 1
MODO 0 (registro de desplazamiento):
Modo sncrono, semidoble (half-duplex). Unidad de informacin -> 8 bits. Frecuencia de Transmisin/Recepcin fija = fosc/12.

MODO 1 (UART 8 bits frecuencia variable):


Modo Asncrono, doble simultnea(full-duplex) . Trama -> Se transmiten 10 bits (1 de inicio (start), 1 byte, 1 de final (stop) En la recepcin el bit de final (stop) se guarda en RB8 (SCON.2) Frecuencia de Transmisin/Recepcin -> programable.

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 PUERTO SERIE: MODOS DE FUNCIONAMIENTO 2 Y 3
MODO 2 (UART de 9 bits y frecuencia fija): Modo Asncrono, (Full-duplex) Trama -> Se transmiten 11 bits ( 1start, 1 octeto, 1 bit programable, 1 stop) Frecuencia de transmisin: fosc/32 si SMOD(PCON.7) = 0. fosc/64 si SMOD=1. En transmisin, al noveno bit TB80 (S0CON.3) se le puede asignar el valor 0 o 1 (por ejemplo de acuerdo con el bit de paridad de PSW) o se puede utilizar como un segundo bit de stop. En recepcin el noveno bit se guarda en RB80 (S0CON.2) y el bit de stop se ignora. MODO 3 (UART de 9 bits y frecuencia variable ): Igual al modo 2 excepto en la frecuencia de transmisin que es variable.

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051 PUERTO SERIE: REGISTROS DE CONTROL SBUFF (99H):Registro de Transmisin/Recepcin
SBUF (99H): Registro de transmisin/recepcin.

SM2 REN TB8 RB8 TI RI

SCON

Escuela Tcnica de Ingenieros de Telecomunicacin Departamento de Tecnologa Electrnica Universidad de Vigo

Microcontroladores

DESARROLLO DE SISTEMAS ELECTRONICOS BASADOS EN EL MICROCONTROLADOR 8051


PUERTO SERIE: PROGRAMACIN DE LA FRECUENCIA DE TX/RX
Una de las formas de hacerlo es programar el temporizador 1 en modo de autorecarga (modo 2) y utilizar los siguientes valores para obtener las velocidades de transmisin ms utilizadas (oscilador 12MHz) :

Rgimen binario 62.5K 19.2K 9.6K 4.8K 2.4K 1.2K 110

SMOD 1 1 0 0 0 0 0

C/T 0 0 0 0 0 0 0

Modo 2 2 2 2 2 2 1

Valor recarga FF FD FD FA F4 E8 FEEB