Upload
victor-cespedes
View
8
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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