Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Intro 8051
Intro 8051
CURSO 04/05
Prctica 1: Introduccin al 8051
1.1
ARQUITECTURA
1.2
RAM
256 Bytes
MEMORIA
PASIVA
(OPCIONAL)
HASTA 4KBytes
8051
(8 bits)
T0
PUERTO 0
E/S
T1
PUERTO 1
E/S
PUERTO 2
E/S
PUERTO 3
E/S
PUERTO
SERIE
FF
SFR
80
7F
RAM
00
1.3
BANCO 3
BANCO 2
BANCO 1
BANCO 0
R7
R7
R7
R7
R6
R6
R6
R6
R5
R5
R5
R5
R4
R4
R4
R4
R3
R3
R3
R3
R2
R2
R2
R2
R1
R1
R1
R1
R0
R0
R0
R0
18H
10H
08H
00H
1.4
1.5
1.6
ACC: acumulador.
B: registro B, acumulador adicional.
DPTR: puntero de datos (16 bits: DPH+DPL).
IE : habilitacin de interrupciones.
IP: prioridad de interrupciones.
SFR
SP (Stack Pointer):
Tamao 8 bits. Despus de reset apunta a la direccin 07h.
Se incrementa antes de PUSH.
Se decrementa despus de POP.
Bit de acarreo
AC
F0
RS1 RSO
OV
Flag de desbordamiento
F1
1.7
1.8
Memoria
Programa
80C537
RD
WR
Memoria
Datos
1.9
1.10
RAM
256 Bytes
MEMORIA
PASIVA
(OPCIONAL)
HASTA 4KBytes
8051
(8 bits)
T0
PUERTO 0
T1
PUERTO 1
PUERTO PUERTO 2
SERIE
PUERTO 3
AB[7:0]/D[7:0]
AB[15:8]
MEMORIA
EXTERNA
1.11
Direccionamiento directo:
La direccin del operando se especificada en el cdigo de
instruccin.
Tamao del campo de direccin: 8 bits Espacio de memoria
direccionable: 256 bytes.
Ejemplo: ADD A,30h
Direccionamiento inmediato:
EL operando se indica mediante una constante
Ejemplo: ADD A,#10
1.12
Direccionamiento indirecto:
El cdigo de instruccin especifica un registro que contiene la
direccin del operando:
R0,R1 (del banco seleccionado): 8 bits
DPTR: 16 bits.
Direccionamiento indexado:
El cdigo de instruccin se obtiene de la suma de un registro base
(DPTR/PC) y un registro ndice (ACC).
Facilita el acceso a tablas de datos.
Ejemplo: MOVC A,@ A + DPTR
JUEGO DE INSTRUCCIONES
1.13
1.14
Modos direccionamiento
Mnemnico
Resultado de la instruccin
DIR
IND
REG
INM
MOV A, src
(A) = (src)
MOV des, A
(des) = (A)
(Rn) = (src)
MOV direc,src
(direc) = (src)
MOV @Ri,src
((Ri)) = (src)
PUSH src
POP des
XCH A,des
XCHD A, @Ri
() indica contenido
Ri=R0 o R1 del banco de registros seleccionado.
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
X
X
X
X
X
X
X
Ejemplos:
MOV A,R0
MOV @R1,A
MOV A,#3
MOV 25H,26
MOV DPTR,#2F7AH
MOV C,P3.1
1.15
Conjunto de instrucciones
dato
25H
R0
R1
2F7AH
2A
5F
A4
3
26(1AH)
DPTR
A
9AC8
1C
F5
DPTR
25H
R0
A 26(1AH)
5FH
A
2F7A
1C
2A
03
F5
1C
2A
F5
5FH
B3
C
0
P3.1
1
C
1
P3.1
1
1.16
Ejemplo:
PUSH ACC
POP ACC
RAM interna
SP
3A
39
51
50
A
06
45
BF
255
+1
3AH
51H
BF
06
Posicin
inicial
1.17
Mnemnico
Resultado
Espacio direcciones
MOVX A, @Ri
(A) = ((Ri))
8 bits
MOVX @Ri, A
((Ri)) = (A)
8 bits
MOVX A, @DPTR
(A) = ((DPTR))
16 bits
MOVX @DPTR, A
((DPTR)) = (A)
16 bits
1.18
Ejemplo:
DPTR
R0
MOVX A,@R0
MOVX @DPTR,A
A
39
84
6F
A5
03A5
65535
255
03A5H
A5H
BF
6F
39
0
Mnemnico:
Resultado instruccin:
MOVC A, @A + DPTR
MOVC A, @A + PC
1.19
1.20
Ejemplo:
MOVC A,@A+DPTR
MOVC A,@A+PC
RAM
Memoria
Externa
programa
Datos
DPTR
PC
65535
65535
E12A
B4B0
A
03
18
9C
C2
E12DH
B4C8H
9C
C2
00
Instrucciones lgicas
1.21
Mnemnico:
Resultado de la instruccin:
CLR A
CPL A
RL A
rota 1 bit a la izquierda el acumulador de forma circular (el bit 7 pasa a ser el bit 0)
RLC A
rota 1 bit a la izquierda el acumulador de forma circular a travs del bit acarreo (el bit 7
pasa a ser el acarreo y el acarreo pasa a ser el bit 0)
RR A
rota 1 bit a la derecha el acumulador de forma circular (el bit 0 pasa a ser el bit 7)
RRC A
rota 1 bit a la derecha el acumulador de forma circular a travs del bit acarreo (el bit 0 pasa
a ser el acarreo y el acarreo pasa a ser el bit 7).
SWAP A
intercambia los nibbles (4 bits) bajo y alto del acumulador. Es igual a una rotacin de 4
bits (RL o RR)
Modos de direccionamiento:
Mnemnico:
Resultado :
DIR
IND
REG
INM
ANL A, op
ORL A, op
(A)=(A) OR (op)
XRL A, op
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
Resultado de la instruccin:
Operando:
CLR bit
C o cualquier bit
SETB bit
C o cualquier bit
CPL bit
complementa el bit
C o cualquier bit
1.22
C: bit de acarreo
Mnemnico:
Resultado:
bit
ANL C, bit
cualquier bit
ORL C. bit
cualquier bit
MOV C, bit
(C) = (bit)
cualquier bit
MOV bit, C
(bit) = (C)
cualquier bit
Mnemnico:
Condicin:
Resultado
JB bit , rel
si bit = 1
si bit = 1
si bit = 0
JC rel
si C = 1
JNC rel
si C = 0
1.23
Instrucciones artimticas
1.24
DIR
IND
REG
INM
ADDC A,
byte
DA A
DEC byte
DIV AB
INC byte
INC DPTR
MUL AB
SUBB A,
byte
Mnemnico
Resultado
ADD A, byte
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
Mnemnico
Direccin de salto
SJMP rel
LJMP addr16
(PC) = addr16
AJMP addr11
(PC) = addr11
JMP @A + DPTR
LCALL addr16
(PC) = addr16
ACALL addr11
(PC) = addr11
RET
(PC) = ((SP))
Repone el PC de la pila
RETI
(PC) = ((SP))
Repone el PC de la pila
Operaciones adicionales
1.25
1.26
Mnemnico
Condicin
Direccin de salto
JZ rel
Salto si (A) = 0
JNZ rel
Salto si (A) 0
DJNZ byte,rel
CJNE A,byte,rel
CJNE byte,#dato,rel
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
-128 rel +127
DIR
IND
REG
INM
1.27
1.28
PUERTOS DE ENTRDA/SALIDA
1.34
1.35
ENTORNO UVI-51
FUENTE
(.src)
ENSAMBLADOR INTEL
INFORME
(.LST)
M. objeto
(.obj)
ENLAZADOR
CONVERSOR
Intel-hex
(.hex)
SIMULADOR UVI51
DEPURADOR UVI51
1.36
1.37
1.38
ESTRUCTURA DE PROGRAMA
tabla XDATA 0
valor EQU 55h
direccin DATA 40h
ORG 0
AJMP inicio
ORG 100h
Inicio:
CLR A
MOV DPTR,#tabla
MOVX A,@DPTR
sjmp inicio
END
1.39
; Definicin de etiquetas
; Fin de programa