Author
javipe47020
View
39
Download
1
Embed Size (px)
1.
Prctica 1: Introduccin al 8051
Prctica 1 : INTRODUCCIN 8051
ARQUITECTURA
1.
Organizacin microcontrolador 8051
Tema 1: Introduccin al 8051
RAM256 Bytes
T0
PUERTO 0 PUERTO 1 PUERTO 2 PUERTO 3
E/S E/S E/S E/S
MEMORIA PASIVA(OPCIONAL)
8051(8 bits)
T1 PUERTO SERIE
HASTA 4KBytes
MEMORIA RAM INTERNA: ORGANIZACIN
1.
IRAM (Internal RAM)
Tema 1: Introduccin al 8051
FF SFR 80 7F RAM 00
MEMORIA RAM INTERNA: ORGANIZACIN
1.
128 Bytes (parte baja de la memoria): 16 posiciones accesibles bit a bit 4 bancos de 8 registros R0-R7, seleccin desde PSW (Program Status Word). Tema 1: Introduccin al 8051
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
SFR (Special Function Registers)
1.
128 Bytes (parte alta de la memoria):
Tema 1: Introduccin al 8051
SFR DE PUERTOS DE ENTRADA/SALIDA SFR DE CONTROL OTROS SFRs
1.
Tema 1: Introduccin al 8051
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.
Tema 1: Introduccin al 8051
PSW (Program Status Word):C AC F0 RS1 RSO Bit de acarreo Bit de acarreo auxiliar para operaciones en BCD Flag de propsito general0 0 1 1 0 1 0 1Seleccin del banco de registros 0 Seleccin del banco de registros 1 Seleccin del banco de registros 2 Seleccin del banco de registros 3
OV F1 P
Flag de desbordamiento Flag de propsito general Flag de paridad, indica un nmero par/impar de unos en el acumulador
MEMORIA PASIVA INTERNA
1.
Tema 1: Introduccin al 8051
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.
MEMORIA EXTERNA: ARQUITECTURA HARVARD
1.
Arquitectura Harvard (distincin entre memoria externa de datos y de programa):Tema 1: Introduccin al 8051
PSEN 80C537 RD WR
Memoria Programa
Memoria Datos
PSEN (Program Store Enable)
1.1
Bus de datos y direcciones
Tema 1: Introduccin al 8051
RAM256 Bytes
T0
PUERTO 0 PUERTO 1
AB[7:0]/D[7:0]
MEMORIA PASIVA(OPCIONAL)
8051(8 bits)
T1
HASTA 4KBytes
PUERTO PUERTO 2 SERIE PUERTO 3
AB[15:8]
MEMORIA EXTERNA
MODOS DE DIRECCIONAMIENTO (I)
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
Tema 1: Introduccin al 8051
Direccionamiento inmediato: EL operando se indica mediante una constante Ejemplo: ADD A,#10
Direccionamiento por registro: El operando es el contenido de un registro que se especifica en el cdigo de instruccin. Ejemplo: ADD A,R0
MODOS DE DIRECCIONAMIENTO (II)
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.
Ejemplo: ADD A,@R0
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.
Transferencia datos sobre IRAMMnemnico Resultado de la instruccin (A) = (src) (des) = (A) (Rn) = (src) (direc) = (src) ((Ri)) = (src) (DPTR) = constante 16 bits. INC SP; MOV @SP, src MOV des,@SP; DEC SP intercambia contenido de A y des intercambia los 4 bits de menor peso del contenido de A y el apuntado por Ri X X X X X X DIR X X X X X X X IND X X REG X X
1.1Modos direccionamiento INM X
MOV A, src MOV des, A
Tema 1: Introduccin al 8051
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
Transferencia datos sobre IRAM (Ejemplos 1)
1.1
Ejemplos:MOV A,R0 MOV @R1,A MOV A,#3 MOV 25H,26 MOV DPTR,#2F7AH
Conjunto de instrucciones
onjunto de instrucciones Tema 1: Introduccin al 8051
2F7AH 2A 5F A4 3
dato 25H R0 R1
26(1AH) DPTR A9AC8 1C F5
DPTR 25H R0 A 26(1AH) 5FH A2F7A 1C 2A 03 F5 1C 2A F5
5FHB3
MOV C,P3.1
C0
P3.11
C1
P3.11
Transferencia datos sobre IRAM (Ejemplos 2)
1.1
Ejemplo:PUSH ACC POP ACC SP3A 39 51 50RAM interna
Tema 1: Introduccin al 8051
+13AH 51H
255
A06 45 BF
BF 06
Posici inicial
Transferencia datos sobre XRAM
1.1
Mnemnico
Resultado (A) = ((Ri)) ((Ri)) = (A) (A) = ((DPTR)) ((DPTR)) = (A)
Espacio direcciones 8 bits 8 bits 16 bits 16 bits
MOVX A, @Ri
Tema 1: Introduccin al 8051
MOVX @Ri, A MOVX A, @DPTR MOVX @DPTR, ARi=R0 o R1 del banco de registros seleccionado.
1.1
Ejemplo:DPTR R0 MOVX A,@R0 MOVX @DPTR,AA5 03A503A5H A5H
RAM Externa Datos65535 255
rogramacin de Tema un microprocesador 1: Introduccin al 8051
A39 84 6F
BF 6F 390
Transferencia datos desde memoria de programa
1.1
Tema 1: Introduccin al 8051
Mnemnico:
Resultado instruccin: (A) = ((A) + (DPTR)) (A) = ((A) + (PC))
MOVC A, @A + DPTR MOVC A, @A + PCPC: contador de programa
1.2
Ejemplo: MOVC A,@A+DPTR MOVC A,@A+PCDPTR PCE12A B4B0RAM Memoria Externa programa Datos65535 65535
Tema 1: Introduccin al 8051
A03 18 9C C2
+
E12DH B4C8H
9C C20 0
Instrucciones lgicasMnemnico: 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
Tema 1: Introduccin al 8051
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
ANL A, op ORL A, op XRL A, op
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
Instrucciones de manejo de bitsMnemnico: Resultado de la instruccin: pone a cero el bit Operando: C o cualquier bit
1.2
CLR bit SETB bit
pone a uno el bit complementa el bit
C o cualquier bit C o cualquier bit
Tema 1: Introduccin al 8051
CPL bitC: bit de acarreo
Mnemnico:
Resultado: (C) = (C) AND (bit) (C) = (C) OR (bit) (C) = (bit) (bit) = (C)
bit cualquier bit cualquier bit cualquier bit cualquier bit
ANL C, bit ORL C. bit MOV C, bit MOV bit, C
Instrucciones de salto condicional
1.2
Mnemnico:
Condicin: si bit = 1 si bit = 1 si bit = 0 si C = 1 si C = 0
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
JB bit , rel JBC bit , rel
Tema 1: Introduccin al 8051
JNB bit , rel JC rel JNC rel
"rel" es un entero de 8 bits con signo (-128 a 127)
Instrucciones artimticasMnemnico ADD A, byte Resultadosuma 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
x
x
x
X
ADDC A, byte
x
x
x
X
Tema 1: Introduccin al 8051
DA A DEC byte DIV AB
X
X
X
X
INC byte INC DPTR MUL AB SUBB A, byte
X
X
X
X
incrementa en 1 el puntero de datos (16 bits)
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
X
X
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato
Instrucciones de salto incondicional
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
Tema 1: Introduccin al 8051
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
Instrucciones de salto condicional
1.2
Mnemnico
Condicin
Direccin de salto
DIR
IND
REG
INM
JZ rel
Salto si (A) = 0
(PC) = (PC) + rel
Tema 1: Introduccin al 8051
JNZ rel
Salto si (A) 0
(PC) = (PC) + rel
DJNZ byte,rel
Decrementa (byte) y salta si (byte) 0 Salto si (A) (byte)
(PC) = (PC) + rel
X
X
CJNE A,byte,rel
(PC) = (PC) + rel
X
X
CJNE byte,#dato,rel
Salto si (byte) dato
(PC) = (PC) + rel
X
X
DIR: direc. Directo; IND: direc. Indirecto; REG: direc. Registro; INM: direc. Inmediato -128 rel +127
CPU: CICLO MQUINA
1.2
Tema 1: Introduccin al 8051
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.
Tema 1: Introduccin al 8051
1.2
CDIGO/CICLOS OPERACIONES ARITMTICAS
1.2
Tema 1: Introduccin al 8051
CDIGO/CICLOS OPERACIONES LGICAS
1.3
Tema 1: Introduccin al 8051
CDIGO/CICLOS OPERACIONES TRANSFERENCIA
1.3
Tema 1: Introduccin al 8051
CDIGO/CICLOS OPERACIONES BOOLEANAS
1.3
Tema 1: Introduccin al 8051
CDIGO/CICLOS OPERACIONES DE SALTO
1.3
Tema 1: Introduccin al 8051
PUERTOS DE ENTRDA/SALIDA
1.3
Son direccionables de dos formas: Completa (byte): cada puerto tiene asignada una direccin dentro del conjunto de registros especiales (SFRs). Se accede a ellos mediante una instruccin de transferencia de datos. Bit a bit: se puede trabajar con cada bit de los puertos por separado mediante las instrucciones de manejo de bits. Para direccionar un bit la sintaxis es Px.y donde "x" es el nmero del puerto e "y" el bit deseado (0 a 7).
Tema 1: Introduccin al 8051
INICIALIZACIN PUERTOS DE E/S
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.
Tema 1: Introduccin al 8051
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
DIRECTIVAS ASM51 de INTEL (I)
1.3
Tema 1: Introduccin al 8051
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.
DIRECTIVAS ASM51 de INTEL (II)
1.3
Tema 1: Introduccin al 8051
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
Tema 1: Introduccin al 8051
; Posicin inicial despus RESET ; Espacio para vectores interrup. ;Comienzo de instrucciones ; Programa cclico.
; Fin de programa