Escolar Documentos
Profissional Documentos
Cultura Documentos
ARQUITECTURA
1.
RAM
256 Bytes
T0
MEMORIA PASIVA
(OPCIONAL)
8051
(8 bits)
T1 PUERTO SERIE
HASTA 4KBytes
1.
FF SFR 80 7F RAM 00
1.
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
1.
1.
ACC: acumulador. B: registro B, acumulador adicional. DPTR: puntero de datos (16 bits: DPH+DPL). IE : habilitacin de interrupciones. IP: prioridad de interrupciones.
SFR
1.
SP (Stack Pointer):
Tamao 8 bits. Despus de reset apunta a la direccin 07h. Se incrementa antes de PUSH. Se decrementa despus de POP.
OV F1 P
Flag de desbordamiento Flag de propsito general Flag de paridad, indica un nmero par/impar de unos en el acumulador
1.
La memoria pasiva (los datos permanecen al quitar la alimentacin) puede ser de tipo ROM, EPROM o FLASH y contiene el programa a ejecutar por el 8051. Puede tener hasta 4 Kbytes de memoria de cdigo interna. Es posible utilizar combinaciones de memoria interna y externa. Un ejemplo tpico es el que utiliza los 4Kbytes de ROM en el chip y el resto hasta completar como mximo los 64Kbytes en chips de memoria EPROM.
1.
PSEN 80C537 RD WR
Memoria Programa
Memoria Datos
1.1
RAM
256 Bytes
T0
PUERTO 0 PUERTO 1
AB[7:0]/D[7:0]
MEMORIA PASIVA
(OPCIONAL)
8051
(8 bits)
T1
HASTA 4KBytes
AB[15:8]
MEMORIA EXTERNA
1.1
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.1
Direccionamiento indirecto:
El cdigo de instruccin especifica un registro que contiene la direccin del operando:
Tema 1: Introduccin al 8051 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.1
Instrucciones y modos de direccionamiento orientadas al bit que permiten realizar controladores lgicos.
Tema 1: Introduccin al 8051
Instrucciones aritmticas en BCD. Acceso a memoria externa a travs de punteros para facilitar manejo de tablas y reducir el tamao de programa.
1.1
Modos direccionamiento INM X
MOV Rn, scr MOV direc,src MOV @Ri,src MOV DPTR, #dato16 PUSH src POP des XCH A,des XCHD A, @Ri
X X X X
() indica contenido Ri=R0 o R1 del banco de registros seleccionado. DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
1.1
Ejemplos:
MOV A,R0 MOV @R1,A MOV A,#3 MOV 25H,26 MOV DPTR,#2F7AH
Conjunto de instrucciones
2F7AH 2A 5F A4 3
dato 25H R1 R0
26(1AH) DPTR A
9AC8 1C F5
5FH
B3
MOV C,P3.1
C
0
P3.1
1
C
1
P3.1
1
1.1
Ejemplo:
PUSH ACC POP ACC SP
3A 39 51 50
RAM interna
+
1
3AH 51H
255
A
06 45 BF
BF 06
Posici inicial
1.1
Mnemnico
MOVX A, @Ri
1.1
Ejemplo:
DPTR R0 MOVX A,@R0 MOVX @DPTR,A
A5 03A5
03A5H A5H
A
39 84 6F
BF 6F 39
0
1.1
Mnemnico:
1.2
A
03 18 9C C2
E12DH B4C8H
9C C2
0 0
Instrucciones lgicas
Mnemnico: CLR A CPL A RL A RLC A Resultado de la instruccin: pone a cero el acumulador complementa el acumulador (cambia 0 por 1 y viceversa) rota 1 bit a la izquierda el acumulador de forma circular (el bit 7 pasa a ser el bit 0) 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) rota 1 bit a la derecha el acumulador de forma circular (el bit 0 pasa a ser el bit 7)
1.2
RR A RRC A SWAP 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). 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 : (A)=(A) AND (op) (A)=(A) OR (op) (A)= (A) (op) DIR x x x IND x x x REG x x x INM x x x
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
1.2
CPL bit
C: bit de acarreo
Mnemnico:
Resultado: (C) = (C) AND (bit) (C) = (C) OR (bit) (C) = (bit) (bit) = (C)
1.2
Mnemnico:
Resultado salta a la direccin(PC) + rel salta a la direccin(PC) + rel y desactiva el bit salta a la direccin(PC) + rel salta a la direccin(PC) + rel salta a la direccin(PC) + rel
Instrucciones artimticas
Mnemnico ADD A, byte Resultado
suma aritmtica de byte con el acumulador guardando el resultado en este ltimo. Los bits C y OV se ven afectados. Si se suman enteros sin signo el desbordamiento se indica con C=1 mientras que si se suman enteros con signo se indica mediante OV=1 realiza la suma aritmtica del operando2 con el acumulador y con el acarreo (C) guardando el resultado en el acumulador. C y OV se ven afectadas de igual forma que en ADD corrige el resultado de una suma almacenado en el acumulador para ponerlo en BCD, aadiendo 0110 si el resultado del dgito BCD es mayor que 9 decrementa en 1 el byte indicado. Si decrementamos 00H obtendremos FFH divide el acumulador (A) entre el registro B (ambos enteros sin signo). La parte entera del cociente se guarda en A y el resto entero se guarda en B. Una divisin por cero pone OV=1 incrementa en 1 el byte indicado. Si incrementamos FFH obtendremos 00H A DIR IND REG
1.2
IN
ADDC A, byte
multiplica el acumulador y el registro B (ambos enteros sin signo). El byte bajo del resultado se guarda en A y el byte alto en B resta el byte y el acarreo (C) del acumulador y guarda el resultado en este ltimo. El acarreo de la resta (C) se pone a 1 cuando el resultado es negativo. Esto permite hacer restas de mayor precisin (16 bits, etc.). El desbordamiento se indica mediante OV=1
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
1.2
Mnemnico
Direccin de salto (PC) = (PC) + rel (PC) = addr16 (PC) = addr11 (PC)= (A) + (DPTR) (PC) = addr16 (PC) = addr11 (PC) = ((SP)) (PC) = ((SP))
Operaciones adicionales
SJMP rel
LJMP addr16 AJMP addr11 JMP @A + DPTR LCALL addr16 ACALL addr11 RET RETI
Guarda PC en la pila (*) Guarda PC en la pila (*) Repone el PC de la pila Repone el PC de la pila
(*) -128 rel +127 (**) Primero se almacena el byte de menor peso y despus el de mayor peso
1.2
Mnemnico
Condicin
Direccin de salto
DIR
IND
REG
INM
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
1.2
Ciclo mquina: 12 ciclos del oscilador (12MHz 1s) Las instrucciones se ejecutan generalmente en 1 o 2 ciclos mquina en funcin del nmero de bytes del cdigo de la instruccin (1/2/3) y del tiempo de ejecucin.
1.2
1.2
1.3
1.3
1.3
1.3
PUERTOS DE ENTRDA/SALIDA
1.3
1.3
Durante la inicializacin del microcontrolador, el contenido de los puertos de E/S es FFh. Esta situacin ha de tenerse en cuenta siempre y cuando se utilice uno de los puertos como salida ya que la salida estar en estado alto al menos todo el tiempo de la fase "RESET" del microcontrolador y no pasar al estado deseado por el usuario hasta que se ejecute una instruccin de escritura en el registro correspondiente al puerto del que forma parte esa salida. Por el contrario, cuando la lnea deba ser utilizada como entrada, este estado inicial es indispensable para una buena recepcin de informacin exterior. Si por el contrario se encuentra en estado bajo, impedir los cambios de estado de la seal externa. Por tanto, para utilizar una lnea de un puerto de entrada, es imprescindible asegurarse de que el bit que le corresponde en el registro del puerto est en estado 1, tal como habr sido puesto por la inicializacin de controlador.
ENTORNO UVI-51 FUENTE (.src) ENSAMBLADOR INTEL Tema 1: Introduccin al 8051 M. objeto (.obj) ENLAZADOR CONVERSOR Intel-hex (.hex) SIMULADOR UVI51 DEPURADOR UVI51 INFORME (.LST)
1.3
1.3
ORG valor : actualiza contador de programa. Smbolo EQU valor: Asocia smbolo con un valor numrico u otro smbolo ya definido. Smbolo BIT valor : Direccin de bit. Smbolo DATA valor: Direccin dato en RAM interna con direccionamiento directo. Smbolo XDATA valor: Direccin dato en RAM externa. Smbolo CODE valor: Direccin de cdigo.
1.3
DB valor : genera el cdigo del valor indicado. DB c: genera el ASCII del carcter entre comillas. DB cadena: genera los cdigos correspondientes a la cadena indicada. DB c, valor, cadena: genera los cdigos correspondientes a los parmetros separados mediante comas. END : final del archivo.
ESTRUCTURA DE PROGRAMA
1.3
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
; Definicin de etiquetas
; Posicin inicial despus RESET ; Espacio para vectores interrup. ;Comienzo de instrucciones ; Programa cclico.
; Fin de programa