48
UNIVERSIDAD MAYOR DE SAN ANDRES ETN-801 INTRODUCCION A LOS MICROCONTROLADORES Aux. Univ. David Marza Herrera

Etn 801

Embed Size (px)

Citation preview

Page 1: Etn 801

UNIVERSIDAD MAYOR DE SAN ANDRESETN-801

INTRODUCCION A LOS MICROCONTROLADORES

Aux. Univ. David Marza Herrera

Page 2: Etn 801

Microcontroladores Intelfamilia MCS-51

La familia básica de microcontroladores de 8 bits de Intel. Esta familia es adecuada para soportar aplicaciones sencillas y de mediana complejidad.

Otros fabricantes, como Siemems Components, Atmel, Philips Semiconductors, OKI Semiconductor, etc., proporcionan versiones especializadas de ésta.

Page 3: Etn 801

Microcontroladores Intelfamilia MCS-51

32 líneas de entrada/salida, distribuidas en 4 puertos de 8 bits cada uno.

Memoria RAM interna de hasta 256 bytes. 4 bancos de 8 registros de un byte cada uno. Área de registros de función especial (SFR). Espacio de memoria para programas de hasta 64k. Espacio de memoria para datos de hasta 64k. Hasta 3 temporizadores de 16 bits cada uno. Comunicación serie asíncrona (UART full-duplex). De 5 a 6 fuentes de interrupción con 2 niveles de prioridad. 2 modos especiales de bajo consumo (Power Down y Idle).

Page 4: Etn 801

Microcontroladores de Atmel Atmel Corporation tiene una familia de microcontroladores

de 8 bits basados en la arquitectura de la MCS-51.

- Memoria interna flash para programas.- Memoria RAM interna.- Patillas bidireccionales de I/O accesibles bit a bit.- Varios temporizadores/ contadores de 16 bits.- UART Full-Duplex.- Múltiples fuentes de interrupción.- La versión AT89S tiene 2K de memoria EEPROM interna, una interfaz SPI de bus serie y un temporizador de Watchdog.

Page 5: Etn 801

La familia MCS-51 tiene cuatro puertos: P0, P1, P2 y P3. Los puertos son de 8 bits, y cada bit puede ser configurado de forma individual como entrada o como salida (E/S).P0 puerto open colector, E/S bidireccional, Presenta byte bajo de bus de direcciones.P1 puerto bidireccional en 8052 sirven como P1.0 T2, P1.1 T2EXP2 puerto bidireccional, presenta byte alto de bus de direcciones.P3 puerto bidireccional, funciones de control adicionales: P3.0 RxD, P3.1TxD, P3.2 INT0, P3.3 INT1, P3.4 T0, P3.5 T1P3.6 WR , P3.7 RD

Microcontroladores Atmel 8051y 8052

Page 6: Etn 801

Imágenes en

Page 7: Etn 801

Microcontroladores Atmel 8051y 8052

ALE/PROG (Addres Latch Enable) permite deshacer la multiplexación.PSEN (Program Store Enable) se activa a 0 lógico cuando el microcontrolador accede a la memoria externa de programas.EA/VPP(External Acces) colocado a 1 lógico hace que el microcontrolador ejecute el código almacenado en la EPROM interna.RESET cuando se pone a 1 reinicializa el microcontrolador.XTAL1, XTAL2: estos terminales son la entrada de la señal de reloj del microcontrolador.

Page 8: Etn 801

Microcontroladores Atmel 8051y 8052

El 8051 esta disenado en base a la arquitectura Harvard.Memoria de programa interna viene en tamanos y tipos diferentes 4k, 8k, EPROM o FLASH. (hasta 64k incluyendo externa)Memoria de datos interna de hasta 256 bytes (00 a FFh) 8051 solo 128.Tambien es posible externa de 64k.La pila usa RAM solo 80 posiciones.

Existe un espacio asignado a los Registros de Funciones Especiales

Organización de memoria

Page 9: Etn 801

Organización de memoria

Page 10: Etn 801

Está estructurada en tres partes:a) área de registros, formado por cuatro bancos con

ocho registros cada uno.A los ocho registros de cada banco de registros se les

denomina R0, R1, R2, R3, R4, R5, R6 y R7.b) área accesible bit a bit.Existen 16 bytes, posiciones entre 20H y 2FH. c) área de memoria RAM general. Es una zona de 80 bytes comprendida entre 30H y 7FH. En las versiones 8052 esta zona se amplía en 128 bytes.

Area de memoria interna

Page 11: Etn 801

Area de memoria interna

Page 12: Etn 801

Esta entre 80H y FFH de la memoria interna y determinan el modo de funcionamiento y la configuración de los recursos internos.

Las versiones con 256 bytes de memoria interna tienen los 128 bytes altos situados entre las posiciones 80H y FFH. En consecuencia, comparten las direcciones que del SFR (80H-FFH).Se diferencia por el modo de direccionamiento.

Area de registros especiales SFR

Page 13: Etn 801

Registros especiales SFR

Page 14: Etn 801

Registros especiales SFR

Page 15: Etn 801

Tipos de SFR

Podemos dividirlos en tres grupos:1er grupo son los relacionados con la entrada y salida los 4 puertos P0, P1, P2, P3. 2do grupo son SFRs que controlan la operación o la configuracion. Por ejemplo TCON controla temporizadores, SCON controla el puerto serie.PCON, TCON, TMOD, SCON, IE, IP, PSW.3er grupo Los restantes que se pueden considerara auxiliares, no configuran el microcontrolador. Por ejemplo SBUF donde se leen los datos a enviar o recibir por el puerto serie. SP, DPL, DPH, TL0, TL1, TH0, TH1, SBUF, ACC, B.

Page 16: Etn 801

Descripcion de los SFRs

PCON Se usa para controlar los modos alimentacion.TCON Control de timers configura la manera en que operan los timers T0 y T1.Si cada timer esta parado o corriendo, contiene una bandera que indica el desborde, alberga tambien bits que indican la configuracion de las interrupciones externas.TMOD Modo de timer 8 o 16 bits, autorecargable, trabajar con interrupciones.SCON Comportamiento del puerto serie, velocidad en baudios, banderas que indican Tx o Rx exitosa.IE Se usa para permitir o inhibir las interrupciones.PSW Registro de banderas C, AC, OV, N, P, F0, R0, R1.TL0/TH0 , TL1/TH1 representan los timers 0 y 1 dependen de TCON.DPL/DPL puntero de datosSBUF bufer serie.

Page 17: Etn 801

Tipos de direccionamiento

En concreto, las familias de microcontroladores MCS-51 y MCS-251disponen de siete modos de direccionamiento distintos:

- Direccionamiento inmediato.- Direccionamiento directo.- Direccionamiento por registro.- Direccionamiento indirecto.- Direccionamiento indexado.- Direccionamiento relativo.- Direccionamiento de bit.

Page 18: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones Aritmeticas

Page 19: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones Logicas

Page 20: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones de rotacion

Page 21: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones de Transferencia

Page 22: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones de Transferencia

Page 23: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones de intercambio

Page 24: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones a nivel de bit

Page 25: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones de salto

Page 26: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones de llamada y retorno de subrutina

Page 27: Etn 801

Conjunto de instrucciones de la familia MCS-51

Intrucciones que modifican las banderas

Page 28: Etn 801

Formato de una instrucción

Etiqueta Mnemónico 1er Operando , 2º OperandoRetardo: MOV R0 , #70HSuma: ADD A , 70H

MOV 20H , @R0INC ADJNZ R2 , BucleSJMP SalirPUSH A

Page 29: Etn 801

Directivas de ensamblador

ORG <dirección>

<símbolo> EQU <expresión>

DB [[<espacio de datos>]]

END

Page 30: Etn 801

Ejemplo simple

Page 31: Etn 801

Tecnica de multiplexado para display’s

Page 32: Etn 801

Un programa ejemploORG 00HSTART:

MOV DPTR,#TABLEMOV

R2,#10000000BMOV R1,#0

NEXT:MOV A,R1MOVC A,@A+DPTRMOV P2,AMOV A,R2MOV P1,ACALL DELAYRR AMOV R2,AINC R1CJNE R1,#5,NEXTJMP START

;========================; DELAY 5mS;========================DELAY: MOV R6,#10DL1: MOV R7,#249

DJNZ R7,$DJNZ R6,DL1RET

;=========================TABLE: DB 3EH,48H,88H,48H,3EH

END

Page 33: Etn 801

Interrupciones

Una interrupción la realiza de forma asíncrona un periféricoo un dispositivo conectado físicamente al microcontrolador, cuando requiere a la CPU el desvío del flujo de ejecución del programapara gestionar y controlar los diversos sucesos que no se encuentran bajo su supervisión directa.

Mejora la eficiencia de la CPU, ya que no tiene que estar continuamente pendiente de si acontece o no un suceso en un instante de tiempo determinado.Atendiendo a los sucesos tan sólo cuando éstos se producen.

Page 34: Etn 801

Interrupciones

Page 35: Etn 801

Encuesta (polling)

Siempre se ejecutan las instrucciones Para verificar si ha habido cambios.

Siempre en el mismo momento.

La encuesta significa mayor tiempo de CPU ocupado.

La respuesta no puede ser inmediata.

Page 36: Etn 801

Interrupcion

Las instrucciones solo se ejecutansi han sucedido cambios.

Puede suceder en cualquier momento.

Evita ocupar la CPU cuando es innecesario.

La respuesta es inmediata.

Page 37: Etn 801

Interrupciones

Cuando se produce una interrupción el microcontrolador ejecuta un proceso de atención a la interrupción.

La CPU deja de ejecutar la secuencia de instrucciones normal y pasa a ejecutar la rutina de servicio a la interrupción (RSI).

Page 38: Etn 801

Proceso de atencion a la interrupcion

Page 39: Etn 801

Interrupciones

A la dirección de salto a partir de la cual se almacena la rutina de RSI se denomina vector de interrupción.

Según el tipo de microcontrolador o microprocesador, las direcciones pueden ser fijas, o bien pueden ser definidas por el programador.

Los vectores de interrupción de las familias MCS-51 yMCS-251 son fijos.

Page 40: Etn 801

Vectores de interrupcion del MSC-51

Tres de las seis fuentes de interrupción son externas al microcontrolador: INT0, INT1y el puerto serie.

Las fuentes de interrupción restantes son los trestemporizadores, Timer 0, Timer 1 y Timer 2, y al array de contadores programable PCA

Page 41: Etn 801

Interrupciones

Otro factor importante en el proceso de interrupciones es la habilitación de máscaras y el establecimiento de prioridades.

La interrupción no es atendida a menos que su bit de habilitación correspondiente esté activado.

Puede haber una interrupción sin este bit, lo que se denomina interrupción no mascarable. Se reservan para sucesos de suma importancia.

Page 42: Etn 801

Bits de habilitacion de interrupcion

Page 43: Etn 801

Bits de prioridad de interrupcion

Page 44: Etn 801

Bits de prioridad de interrupcion

Page 45: Etn 801

Ejemplo usando interrupcion

Page 46: Etn 801

Ejemplo usando interrupcion

ORG 00hAJMP CONDINIORG 03HAJMP ALAR0ORG 13HAJMP ALAR1 ORG 30H

CONDINI:MOV IE,#10000101BMOV

TCON,#00000101BMOV IP,#00000100BSETB P3.2SETB P3.3MOV DPTR,#TABLA

PRINCIPAL:MOV A,R0MOVC A,@A+DPTRMOV P1,AACALL RETARDOINC R0CJNE

R0,#10H,PRINCIPALMOV R0,#00HAJMP PRINCIPAL

ALAR0:CLR P2.0ACALL RETARDOSETB P2.0ACALL RETARDOINC R2CJNE R2,#06H,ALAR0MOV R2,#00HRETI

ALAR1:CLR P2.1ACALL RETARDOSETB P2.1ACALL RETARDOINC R3CJNE R3,#07H,ALAR1MOV R3,#00HRETI

Page 47: Etn 801

Ejemplo usando interrupcion

RETARDO:NOPDJNZ R4,RETARDODJNZ R5,RETARDORET

TABLA:DB

01H,4FH,12H,06H,4CH,24H,20H,0FHDB

00H,0CH,08H,60H,31H,42H,30H,38H

END

Page 48: Etn 801

ETN-801 Introduccion a los microcontroladoles

Gracias por su atencion

(Debe parecer circular)

16x9

4x3