familia mcs 51

29
Familia MCS-51 • Familia de microcontroladores basados en el 8051. Creado por INTEL en 1981 8031: no tiene memoria interna (la ejecución se hace desde una memoria externa) 8051: tiene 4Kbytes de memoria ROM incluida en el chip 8751: tiene 4Kbytes de memoria EPROM 8951: tiene 4Kbytes de memoria EEPROM

Upload: victor-cespedes

Post on 01-Dec-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

Familia MCS-51

• Familia de microcontroladores basados en el 8051. Creado por INTEL en 1981

8031: no tiene memoria interna (la ejecución se hace desde una memoria externa)

8051: tiene 4Kbytes de memoria ROM incluida en el chip

8751: tiene 4Kbytes de memoria EPROM

8951: tiene 4Kbytes de memoria EEPROM

Quienes forman la Familia 8x51Son los uc diseñados alrededor del núcleo hardware

y software.

Fabricantes:

INTEL, SIEMENS, PHILIPS, MHS Electronics

Núcleo del uC – 8051El Uc 8051 es el núcleo a partir del cual han sido

diseñados los otros miembros de la familia MCS-51

Núcleo del uC – 8051

Interrupciones internas

Interrupciones externas

4KROM4K

ROM128 bytes

RAM128 bytes

RAM Timer0Timer0Timer1Timer1

Control del bus

Control del bus 4 Puertos E/S

(32 líneas)4 Puertos E/S

(32 líneas)Puerto seriePuerto serie

8051CPU8051CPU

OSCOSC

Controlador de

interrupciones

Controlador de

interrupciones

Entradas a contadores

Bus de datos/direcciones

P0 P1P2 P3

RD WR RxDTxD

SFR

CARACTERISTICAS:- CPU de 8 bit - Procesador Booleano, se puede realizar operaciones bit a bit - 128 bytes de RAM interna y 256 bytes incluyendo los S.F.R. - 4 Kbytes de memoria ROM - Espacio de memoria de 64Kbytes para programa externo - Espacio de memoria de 64Kbytes para datos externos - 2 Contadores/Temporizadores 0 y 1 (timers 0 y 1)

CARACTERISTICAS:- Comunicación Asíncrona Full dúplex - 5 fuentes de interrupción con 2 niveles de

prioridad cada una:- 2 interrupciones externas - 2 interrupciones de los

contadores/temporizadores 0 y 1(timers)- 1 interrupción del puerto serie- Oscilador interno- C.P.U de 12 MHz

ORGANIZACIÓN DE LOS ESPACIOS DE MEMORIA

MEMORIA DE PROGRAMAFFFF

4K BYTESINTERNA

1000

60K BYTESEXTERNA

0000

0FFF

EA = 1

O

64K BYTESEXTERNA

FFFF

0000

EA = 0

PSEN

4096

65535

0

4095

0

65535

ORGANIZACIÓN DE LOS ESPACIOS DE MEMORIA

MEMORIA DE DATOS

64 K BYTES EXTERNA

FFFF

000000

7F80

FF

Y

RAM INTERNA

RD WR

65535

00

255

128127

SFR

Pines del 89C51/52

Descripción de los pinesVcc: (E) Alimentación de voltaje +5V. Tolera 10%Vss: (E) Tierra 0 V referenciaP0.0-P0.7: (E/S) Puerto 0. Puerto bidireccional con

salidas en colector abiertoP1.0-P1.7: (E/S) Puerto 1. Puerto bidireccionalP2.0-P2.7: (E/S) Puerto 2. Puerto bidireccionalP3.0-P3.7: (E/S) Puerto 3. Puerto bidireccionalRST: (E) Reset. Inicialización, con 1 lógico, con

duración de 2 ciclos de máquina inicializa el UcEA: (E) External Access. Con EA = 0, los puertos P0

y P2 desempeñan las funciones de bus de direcciones y datos. Con EA = 1, el código de programa se busca en memoria interna

AE

Descripción de los pinesPSEN: (S) Program Store Enable. 64 K Bytes de

memoria de programa y 64K Bytes de memoria de datos, implica un bus de direcciones de 17 bits, entonces PSEN es el décimo séptimo bit. Cuando EA=0, PSEN pasa a 0

ALE: (E/S) Adress Latch Enable. Gobierna el multiplexado del P0: parte baja del bus de direcciones y datos. Si ALE=1 P0 presenta A0/A7, cuando ALE=0 P0 funciona como bus de datos.

XTAL1: (E) Crystal 1. Entrada del amplificador inversor para el oscilador de reloj

XTAL 2: (S) Crystal 2. Salida del amplificador inversor

Descripción complementaria de los pines

P0: Sirve para multiplexar la parte baja de direcciones y al bus de datos durante el acceso a código y memoria de datos externos

P1: Tiene funciones alternativas solo en el 8052. Los bits 0 y 1 sirven como T2 y T2EX respectivamente.

P2: Emite el byte de la parte alta de direcciones durante el acceso a memoria, de programa o datos externa que utiliza direcciones de 16 bits

Descripción complementaria de los pines

P3: Tiene las funciones siguientes: • P3.0 RXD (Entrada del interfaz serie) • P3.1 TXD (Salida del interfaz serie) • P3.2 INT0 (Entrada para interrupción externa 0) • P3.3 INT1(Entrada para interrupción externa 1) • P3.4 T0 (Entrada de conteo para el timer 0) • P3.5 T1 (Entrada de conteo para el timer 1) • P3.6 WR (Salida de escritura de la memoria

externa) • P3.7 RD (Salida de lectura de la memoria

externa) Estas dos últimas señales son activas bajas

128 BYTES DE LA PARTE MAS BAJA DE LA RAM

BANCO DE REGISTROS 3R0 – R7

BANCO DE REGISTROS 2R0 – R7

BANCO DE REGISTROS 1R0 – R7

BANCO DE REGISTROS 0R0 – R7

30H

7FH

2FH

20H

1FH

18H

17H

10H

0FH

08H

07H

00H

ESPACIO LIBRE DE DATOS

ESPACIO DE DIRECCIONAMIENTO POR BITS

4 BANCOS DE 8 REGISTROS CADA UNO

R0 a R7

SFR Localidades de los registros de funciones especiales

Están en la parte alta de la RAM (128 Bytes)

SIMBOLO NOMBRE DIRECCION

ACC

B

PSW

SP

P0

P1

P2

P3

Acumulador

Registro B

Program Status Word

Stack Pointer

Puerto 0

Puerto 1

Puerto 2

Puerto 3

0E0H

0F0H

0D0H

81H

80H

90H

0A0H

0B0H

SFR Localidades de los registros de funciones especiales

SIMBOLO NOMBRE DIRECCION

IP

IE

TMOD

TCON

TH0

TL0

SCON

SBUF

PCON

Control de Prioridad de Interrup.

Control de Validación de Interrup.

Modo de control Timer/Contador

Control Timer/Contador

Byte alto del T/C 0

Byte bajo del T/C 0

Control serie

Buffer de datos serie

Control de Potencia

0B8H

0A8H

89H

88H

8CH

8AH

98H

99H

87H

PSW: PROGRAM STATUS WORDRegistro de palabra de estado del programa

CY AC F0 RS1 RS0 OV -- P

CY PSW.7 Bandera de Carry

AC PSW.6 Bandera de Carry auxiliarF0 PSW.5 Bandera 0 para usos generalesRS1 PSW.4 Bit 1 selector del banco de registrosRS0 PSW.3 Bit 0 selector del banco de registrosOV PSW.2 Bandera de overflow-- PSW.1 Bandera sin definirP PSW.0 Bandera de paridad

P=1, si el Acumulador contiene un número impar de 1’sP=0, si el Acumulador contiene un número par de 1’s

PCON: REGISTRO DE CONTROL DE POTENCIA (CONSUMO DE

ENERGIA)

PCON.7 (SMOD) divide la frecuencia de TX o de RX por el puerto serie, proporcionada ya sea, por la fase 2 de los estados, (1/2 de la frecuencia del oscilador en la transmisión serie en modo 2), o bien, por el timer 1 en los modos 1 y 3.

REGISTROS DE INTERRUPCIONES

Las interrupciones son controladas mediante la

escritura en los registros IE (Interruption Enable) e IP

(Interruption Priority) los cuales son físicamente

representados en la siguiente figura

REGISTROS DE INTERRUPCIONES

IE: REGISTRO HABILITADOR DE INTERRUPCIONES

La desactivación general de las interrupciones esefectuada mediante EA = 0, en la bandera EA (IE.7).Con la bandera EA = 1, el 8051 está en condicionesde aceptar interrupciones, aunque la verdaderaaceptación es realizada cuando se escribe 1 lógico en la bandera de la interrupción correspondiente del registro de interrupciones IE

IE: REGISTRO HABILITADOR DE INTERRUPCIONES

REGISTRO DE PRIORIDAD

El 8051 tiene dos planos de prioridad para trabajarlas interrupciones, llamadas alto y bajo,respectivamente. En la inicialización, todas las interrupcionestrabajan en el plano de baja prioridad. Para pasardel plano de baja prioridad al de alta, es necesarioescribir un 1 lógico en las Banderascorrespondientes a las interrupciones que se desean aumentar de prioridad, ubicadas dentrodel registro IP

2.4.2 REGISTRO DE PRIORIDAD

PROGRAMA EJEMPLO

ORG 0HLJMP 100HORG 100HMOV A,#01H

IZDA: RLC AMOV P0,AJNC IZDA

DCHA: RRC AMOV P0,AJNC DCHASJMP IZDA

END

Programa laboratorio: GENERADOR DE LETRAS

ORG 0000HAJMP 0100HORG 0100HAJMP START

INICIAR:MOV TCON,#00H

MOV TMOD,#00HMOV PSW,#00HMOV IE,#00HRET

DELAYMS:MOV R7,#00H

LOOPA:INC R7MOV A,R7CJNE A,#0FFH,LOOPARET

DELAYHS:MOV R6,#00HMOV R5,#002H

LOOPB:INC R6ACALL DELAYMSMOV A,R6JNZ LOOPBDEC R5MOV A,R5JNZ LOOPBRET

LETRA_0:MOV P1,#01111110BRET

LETRA_1:MOV P1,#00110000BRET

LETRA_2:MOV P1,#01101101BRET

START:ACALL INICIAR

LOOP:ACALL LETRA_0ACALL DELAYHSACALL LETRA_1ACALL DELAYHSACALL LETRA_2ACALL DELAYHSAJMP LOOP

END