La Familia MCS51 Modulo I.
La Familia MCS51 Modulo I.
La Familia MCS51 Modulo I.
256 Bytes en el
8052
Timer 0
Control de 128 Bytes Entradas
ROM Timer 0
Interrupciones RAM del Contador
Timer 0
CPU
0V
0V 0V P0 P1 P2 P3 TxD RxD
Direcciones / Datos
Sus características más importantes son:
FFFFh
FFFFh
EXTERNA
EXTERNA
1FFFh
FFh
EA = 1
SFR
EA = 0
8052 0FFFh
EXTERNA 8052 7Fh
8051 INTERNA
8051
0000
00 00
PSEN RD WR
La Memoria de Programa solamente puede ser leída, no escrita, se pueden
acceder hasta 64 Bytes en las versiones ROM y EPROM los más bajos 4 KBytes u
8 KBytes están dentro del chip, dependiendo del tipo de dispositivo. En la versión
sin ROM, toda la memoria de programa es externa. La sincronización de la lectura
para la memoria de programa externa es la señal PSEN (Program Store Enable).
Una interrupción se describe como una señal que genera un dispositivo, para
indicarle a la CPU que se requiere su atención. Las interrupciones nacen de la
necesidad de ejecutar un proceso en un instante preciso y ante la existencia de
varias, pueden crearse prioridades entre ellas, de tal forma que una interrupción
de baja prioridad puede ser interrumpida por una de más alta, pero no se presenta
el proceso inverso
(2) VECTOR DE
INTERRUPCION
(1) INTERRUPCION
(4) RETORNO DE PROGRAMA PRINCIPAL
INTERRUPCION
DE INTERRUPCIÓN
RTI
0000h
Timer 0 000Bh
Timer 1 001Bh
Timer 2 002Bh
0FFFh
P0 INSTR
P1
EA
0V LATCH
P3 ALE
ADDR
P2
PSEN OE
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
CICLO DE MAQUINA
P0 DATOS
P1
+5V
EA
LATCH
ALE
ADDR
RD P3 P2
WR
I/O Bits de Página WE OE
FFh
ACCESIBLE SOLAMENTE
ACCESIBLE MEDIANTE
MEDIANTE
DIRECCIONAMIENTO
DIRECCIONAMIENTO
DIRECTO
INDIRECTO
80h
7Fh
ACCESIBLE MEDIANTE
Registros de Propósito
DIRECCIONAMIENTO
Especia:l
DIRECTO E INDIRECTO
Puertos
Bits de Estado
00h y de Control
Timers
Registros
Puntero de Pila
Acumulador
Los 128 bytes bajos están presentes en todos los dispositivos MCS-51 y su
mapa se encuentra en la figura Fig.1.7.I. Como se puede observar, se ha dividido
en tres segmentos principales:
F8 FF
F0 B F7
E8 EF
E0 ACC E7
D8 DF
D0 PSW D7
C8 (T2CON) (RCAP2L) (RCAP2H) (TL2) (TH2) CF
C0 C7
B8 IP BF
B0 P3 B7
A8 IE AF
A0 P2 A7
98 SCON SBUF 9F
90 P1 97
88 TCON TMOD TL0 TL1 TH0 TH1 8F
80 P0 SP DPL DPH PCON 87
La función de cada uno de los registros de propósito especial se describe a
continuación
P0, P1, P2, y P3. Puertos 0 a 3 son los cerrojos de los puertos 0,1,2 y 3
respectivamente.
SCON. Serial Port Control o Control del Puerto Serial. Establece los
parámetros para la transmisión o recepción de datos a través
del puertos serial (ancho del dato, bits de inicio y parada,
velocidad, etcétera.)
SBUF. Serial Buffer o Buffer Serial de datos. Son dos registros que se
utilizan para la transmisión y recepción de datos a través del
puerto serial.
TMOD. Timer/Counter Mode Control o Control de Modo de
Temporizador/Contador. Selecciona los modos de operación de
los timers, si actúan como temporizadores o como contadores,
etcétera.
DPTR. Data Pointer o Puntero de Datos. Está constituido por una arte
alta (DPH) y una parte baja (DPL) y contiene una dirección de
16 bits. Se puede manejar como un registro de 16 bits o como
dos registros independientes de 8 bits.
Direcciones/Datos
Direcciones/Datos
En puerto serie trabaja el modo full duplex, lo que significa que puede
transmitir y recibir datos simultáneamente. La familiaMCS-51 posee cuatro modos
de comunicación, dentro de los cuales se encuentran sincrónicos y asíncronicos,
con velocidades variables por usuario.
Ejemplo:
MOV SP,#34H ;carga al puntero de pila con el número hexadecimal 34)
ANL A,#101B ;realiza operación AND entre el acumulador y el binario 101
Ejemplo:
MOV SP,34H ;carga al puntero de pila con lo existente en la posición
;hexadecimal 34 de la RAM interna
1.7.10.1.3 Direccionamiento indirecto
Ejemplo:
MOV A,@R0 ;carga al acumulador con lo existente en la posición de
;memoria descrita por el contenido del registro R0 activo.
Ejemplo:
MOV R1,#34 ;el registro R1 activo se carga con el número decimal 34
Ejemplo:
CLR A ;todos los bits de registro acumulador se colocan en 0
INC R7 ;se incrementa el contenido de registro R7
1.7.10.1.6 Direccionamiento indexado
Instrucciones aritméticas
Instrucciones lógicas
Instrucciones para la transferencia de datos en memoria interna
Instrucciones para la transferencia de datos en memoria externa
Instrucciones para el tratamiento de tablas
Instrucciones Booleanas
Instrucciones de salto
MOV A,#Entrada
CALL Tabla
DB 5
DB 7
DB 8
Todas las líneas de los puertos son direccionables bit a bit, de manera que
cada una puede ser tratada como puerto de un bit. Las instrucciones se muestran
en la tabla Tab.1.7.F y se observa que éstas no solamente acceden a los bits
para saltos condicionales; también hay un conjunto de cargas, activaciónes,
limpiezas, complementos y operaciones AND y OR.
Como cada valor debe tener un tratamiento diferente, las instrucciones que
permite esto tienen, más o menos la siguiente estructura:
MOV DPTR,#Tabla
MOV A, Indice
RL A
JMP @A+DPTR
Las subrutinas deben finalizar con una instrucción RET, la cual obliga a que
el programa retorne a la instrucción siguiente a la que hizo la llamada con la
instrucción CALL. La instrucción RETI se utiliza para regresar de la rutina de
servicio a una interrupción.
MOV Contador,#10
;Instrucciones
2 Timer/Counter de 16 bits
6 Fuentes de interrupción
20
5 1
XTAL1 VCC RST
4
XTAL2
AT89C2051
2 12
(RXD) P3.0 (AIN0) P1.0
3 13
(TXD) P3.1 (AIN1) P1.1
6 14
( INT0 ) P3.2 P1.2
7 15
( INT1 ) P3.3 P1.3
8 16
(T0) P3.4 P1.4
9 17
(T1) P3.5 P1.5
11 18
P3.7 P1.6
19
P1.7
GND
10
40
19
XTAL1 VCC
18 9
XTAL2 RST
31
EA /VPP
30
ALE/ PROG
29
PSEN
1 39
(T2) P1.0 (AD0) P0.0
2 38
(T2 EX) P1.1 (AD1) P0.1
3 37
P1.2 (AD2) P0.2
4 36
P1.3 (AD3) P0.3
5 35
P1.4 (AD4) P0.4
6 34
P1.5 (AD5) P0.5
7 33
P1.6 (AD6) P0.6
8 32
P1.7 (AD7) P0.7
AT89C52
10 21
(RXD) P3.0 (A8) P2.0
11 22
(TXD) P3.1 (A9) P2.1
12 23
( INT0 ) P3.2 (A10) P2.2
13 24
( INT1 ) P3.3 (A11) P2.3
14 25
(T0) P3.4 (A12) P2.4
15 26
(T1) P3.5 (A13) P2.5
16 27
( WR ) P3.6 (A14) P2.6
17 28
( RD ) P3.7 (A15) P2.7
GND
20