Escolar Documentos
Profissional Documentos
Cultura Documentos
O Microcontrolador Intel 8051
O Microcontrolador Intel 8051
citados so idnticos, e o texto utilizar o termo 8051 de forma genrica, citando as outras verses
apenas onde for necessrio. Informaes complementares podem ser obtidas em [Inte89], [Siem90] e
[Silv94].
LOW POWER
LOW VOLTAGE
EPROM
& OTP
ENCAPSULAMENTO
MINIMIZADO
I/O
ESTENDIDAS
80C51
NCLEO
FUNES
ESPECIAIS
MEMRIA
1k - 32k
EEPROM
DERIVATIVES
CLOCK
de at 40 MHz
IC & CAN
SERIAL BUS
Pinos
40
84
84
84
84
68
68
68
68
68
68
68
68
68
80
68
Fabr.
Intel
Siemens
Siemens
Siemens
Siemens
Siemens
Siemens
Siemens
Siemens
Siemens
Intel
Intel
Philips
Philips
Philips
Philips
RAM
1K
256
256
256
256
256
256
256
256
256
256
256
256
256
256
256
CODE
16K
64Kx
32K
64Kx
8K
64Kx
32K
64Kx
8K
64Kx
64Kx
8K
64Kx
16K
32K
64Kx
87C552
80C562
68
68
Philips
Philips
256
256
8K
64Kx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8
0
5
1
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
P0.0
P0.1
P0.2
P0.3
AD0
AD1
AD2
AD3
P0.4 AD4
P0.5 AD5
P0.6 AD6
P0.7 AD7
EA
ALE
PSEN
P2.7 A15
P2.6 A14
P2.5 A13
P2.4 A12
P2.3 A11
P2.2 A10
P2.1 A9
P2.0 A8
PC
15
SP
7
DH
DL
R0
R4
DPTR
0
B
0
R1
R5
R2
R6
R3
R7
CY
AC
F0
RS1
RS0
OV
F1
PSW
Bloco superior
de 128 bytes
FFH
MOV com
endereamento
indireto
80H
Bloco inferior de
128 bytes
MOV com
endereamento
direto ou
indireto
7FH
Registradores de
funes
especiais
MOV com
endereamento
direto
FFH
80H
00H
armazena na posio 20H da memria RAM interna o contedo do acumulador. Por outro lado,
para armazenar o mesmo contedo na posio 20H da memria de dados externa, o procedimento
seria:
MOV R0,#20H
MOVX @R0,A
; coloca o endereo em R0
; copia A para a posio em R0
7F
7E
7D
7C
7B
7A
79
78
0C 0B
04 03
R0 - R7
Banco 3
R0 - R7
Banco 2
R0 - R7
Banco 1
R0 - R7
Banco 0
0A
02
09
01
08
00
...
0F
07
0E
06
0D
05
2FH
...
21H
20H
1FH
18H
17H
10H
0FH
08H
07H
00H
RS0
0
1
0
1
Banco
0
1
2
3
1.9 As interrupes
O 8051 tem cinco fontes de interrupo: duas entradas externas (INT0 e INT1), dois
temporizadores/contadores (Timer 0 e Timer 1) e o canal de comunicao serial. Conforme descrito
na seo 1.6, as entradas das interrupes externas e o canal serial ocupam pinos da porta P3.
Os endereos de desvio das interrupes so fixos e dados pela tabela 1.6.
O 8051 permite habilitar ou desabilitar cada interrupo individualmente atravs dos bits EX0, ET0,
EX1, ET1 e ES do registrador IE (Interrupt Enable), que aparece na figura 1.12. Esses bits controlam
as interrupes externa 0, do timer 0, externa 1, do timer 1 e do canal serial, respectivamente. O bit EA
(Enable All) permite habilitar (1) ou desabilitar (0) todas as interrupes de uma s vez. Para que uma
interrupo esteja habilitada, tanto o bit correspondente quanto EA precisam estar setados.
Interrupo
Interrupo externa 0
Timer 0
Interrupo externa 1
Timer 1
Canal serial
Endereo
0003H
000BH
0013H
001BH
0023H
EA
...
...
ES
ET1
EX1
ET0
EX0
A cada interrupo est associado um de dois nveis de prioridade (alto ou baixo), de acordo com o
registrador IP (Interrupt Priority), que aparece na figura 1.14. Estes nveis so tais que um tratador de
interrupo s pode ser interrompido por um pedido de interrupo de nvel superior. Os bits PX0,
PT0, PX1, PT1 e PS permitem setar a prioridade das interrupes associadas aos elementos INT0,
Timer 0, INT1, Timer 1 e canal serial, respectivamente.
7
...
...
...
PS
PT1
PX1
PT0
PX0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Gate1
C/T1
M1.1
M0.1
Gate0
C/T0
M1.0
M0.0
1.10.2 Aplicaes
A possibilidade de se habilitar um timer externamente atravs do pino INT.x permite medir a largura
de pulsos externos. Para tanto, conecta-se o sinal cuja largura se deseja medir ao pino INT.x, com o
timer correspondente configurado como temporizador (C/T.x = 0) e com o bit GATE.x = 1. Desta
forma, a contagem avanar enquanto o sinal externo estiver em nvel alto, obtendo-se uma contagem
proporcional durao do pulso. A largura do pulso pode ento ser calculada a partir do perodo do
sinal de clock.
possvel tambm contar pulsos externos. Para tanto, conecta-se o sinal a medir ao pino T.x, com o
contador configurado como contador (C/T.x = 1) e com o bit GATE.x = 0. Desta forma, a contagem
avanar a cada pulso do sinal externo.
Os dois mecanismos acima podem ainda ser combinados para contar pulsos de um sinal externo
somente durante um intervalo de tempo determinado por outro sinal externo. Para tanto, configura-se
o timer como contador (bit C/T.x = 1) com o bit GATE.x = 1. Desta forma, a contagem avanar de
acordo com os pulsos recebidos no pino T.x, mas somente enquanto o nvel no pino INT.x estiver em
1.
OSC
/12
C/T=0
overflow
Tx PIN
TLx
(5 bits)
(8 bits)
C/T=1
THx
(8 bits)
TFx
INTERRUPT
CONTROL
TRx
GATE
INTx PIN
/12
C/T=0
Tx PIN
TLx
(8 bits)
C/T=1
TRx
overflow
TFx
INTERRUPT
CONTROL
GATE
THx
INTx PIN
(8 bits)
INT1 PIN
GATE
0 se modo 3 para
timer 1
CONTROL
TH1
C/T=1
TL1
T1 PIN
C/T=0
CONTROL
TR1
TH0
overflow
TF1
OSC
(8 bits)
/12
INTERRUPT
C/T=0
T0 PIN
TL0
(8 bits)
C/T=1
overflow
TF0
INTERRUPT
CONTROL
TR0
GATE
INT0 PIN
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SMOD
...
...
...
GF1
GF0
PD
IDL
SM1
0
1
0
1
Modo
0
1
2
3
Tipo
Sncrona, HD
Assncrona, FD
Assncrona, FD
Assncrona, FD
Bits
8
10
Taxa de TX
Fclock/12
Varivel
Fclock/32 ou /64
Varivel
sincronismo enviado pelo pino TxD. A taxa de transmisso fixa e igual a 1/12 da freqncia do
clock do sistema.
Nos demais modos, os dados so enviados atravs do pino TxD e recebidos atravs do pino RxD.
Assim, esses modos permitem comunicao full-duplex (FD, transmisso simultnea nos dois sentidos).
f clock
2 SMOD
,
32
12(256 TH1)
(1.2)
onde SMOD o bit 7 do registrador PCON (figura 1.28b) e TH1 o registrador mais significativo da
contagem do timer 1.
X.C
Y.ASM
AVC
AVMAC51
SIMULADOR
X.OBJ
Y.OBJ
AVLINK
AVLIB
XY.LIB
XYZ.HEX
CARREGADOR
GRAVADOR
DE EPROM
HARDWARE
1.12.2.2 Montagem
A sintaxe para chamar o assembler , no caso do exemplo acima:
AVMAC51 <nome>
1.12.2.3 Linkagem
A sintaxe para chamar o linker , no caso do exemplo acima:
AVLINK51 <nome>=<novo nome>
1.12.2.4 Simulao
Um simulador um programa que roda em um determinado computador e simula a operao de uma
outra CPU. O simulador da Avocet chamado atravs do comando
AVSIM51
Movimentao do cursor
F1
RUN
Esc
F10
F7
F9
Ctrl Pg Up
Scroll lock
F2
Move Breakpoint UP
Ctrl A / B
Registradores A / B
F3
Set breakpoint
Ctrl D
Data Pointer
F4
F5
Velocidade de simulao
Ctrl I
Interrupes
Alt F5
Ctrl P
PC
F6
Ctrl R
Banco de Registradores
Alt F6
Ctrl S
SP
F8
Ctrl T
Timers / counters
Alt 0-7
R0 - R7
Alt A, B
Janelas de dados
Alt P,Q
Porta 0, porta 2
Alt SC
Serial BUF/COM
Alt Y
Contador de ciclos
Notao
Decimal
Hexadecimal
Binrio
255
$FF ou 0FFH
%111 ou 111B
1.13 Exerccios
1. Estude as instrues que aparecem no programa abaixo e procure determinar o valor do
acumulador ao final da execuo. Em seguida, crie um arquivo-fonte com o programa, gere o
arquivo .hex e simule-o no AVSIM51 para verificar suas previses. So necessrias as diretivas
ORG e END, que constam dos anexos, juntamente com a tabela de instrues.
MENS
MOV R1,#3
MOV R3,#4
INC @R1
MOV A,@R1
MOV DPTR,#MENS
MOVC A,@A+DPTR
SJMP $
DB "1234567890ABCDE",0
END
Microcontrolador 8051 - 16/30
2. Use o simulador para ver a troca dos bancos de registradores no programa abaixo.
ORG 2000H;
MOV A,#0
INICIO:
CLR RS1
MOV R0,A
MOV R1,A
MOV R2,#00H
MOV R3,#00H
INC A
SETB RS0
MOV R0,A
MOV R1,A
MOV R2,#11H
MOV R3,#11H
INC A
CLR RS0
SETB RS1
MOV R0,A
MOV R1,A
MOV R2,#22H
MOV R3,#22H
INC A
SETB RS0
MOV R0,A
MOV R1,A
MOV R2,#33H
MOV R3,#33H
INC A
JMP INICIO
END
CLR RS0
; DADOS NO BANCO0
RS1=RS0=00
; DADOS NO BANCO1
RS1 RS0 = 01
; DADOS NO BANCO2
RS1 RS0 = 10
; DADOS NO BANCO3
RS1
RS0 = 11
3. O programa abaixo l a porta P1. Se o valor lido for par, incrementa R2; em caso contrrio,
incrementa R1. Os dados pares so colocados na porta P2 e os dados mpares na porta P3; todos os
dados so armazenados seqencialmente a partir da posio de memria 20H
ORG 2000H
MOV R0,#20H
MOV R1,#0H
MOV R2,#0H
INICIO:MOV A,P1
MOV @R0,A
ANL A,#01
JNZ IMPAR
PAR: INC R2
MOV A,@R0
MOV P2,A
INC R0
JMP INICIO
IMPAR:INC R1
MOV A,@R0
INC R0
MOV P3,A
JMP INICIO
END
; INICIO DO ARMAZENAMENTO
; CONTADOR DOS IMPARES
; CONTADOR DOS PARES
; GRAVA DADO
; VER SE PAR OU IMPAR
; MOSTRA DADO
Este programa utiliza a porta P1 como porta de entrada, dentro do simulador. Isto se faz atravs de
um arquivo, que associado a essa porta. Cada vez que o programa acessa a porta, um novo
caracter do arquivo lido. O valor lido o valor hexadecimal do caracter, incluindo espaos em
branco e caracteres de fim de linha (0DH, 0AH). Opcionalmente, pode-se fazer com que a leitura
do arquivo recomece do incio sempre que o programa chegar ao fim do arquivo, o que garante
uma fonte ininterrupta de dados para simulao.
Para o programa acima, crie com um editor de texto um arquivo chamado P1.DAT, contendo a
linha:
Microcontrolador 8051 - 17/30
0123456789
e um ENTER no final.
Monte o programa e carregue-o no AVSIM51. Para associar o arquivo de entrada porta P1, siga os
passos abaixo:
2 O kit de desenvolvimento WF
2.1 Apresentao
O sistema mnimo 8031 v. 2.0 tem uma CPU 8031. Pode comunicar-se com um PC atravs do canal
serial, atravs do qual possvel transferir programas desenvolvidos no PC para o kit. Este conta ainda
com outros componentes, listados na tabela 2.2 juntamente com os endereos que ocupam.
Componente
Endereos
0000H - 1FFFH
2000H - 3FFFH
LCD
4000H - 4002H
Tab. 2.2 - Componentes perifricos do kit WF
O display de cristal lquido (LCD) possui uma linha, dividida em duas reas de oito colunas, conforme
mostra a figura 2.2.
REA 1
0
REA 2
5
2.2 Restries
As portas P0 e P2, bem como os pinos P3.6 e P3.7, so usados para acessar a memria externa. Os bits
P3.0 e P3.1 e o bit 7 do registrador PCON so utilizados na transmisso de dados pelo canal serial e
portanto s podem ser utilizados por programas que, depois de carregados no kit, no faam mais uso
da comunicao com o PC. Alm disso, o timer 1 utilizado para determinar a taxa de transmisso do
canal serial e portanto tambm s pode ser usado em outras aplicaes se no houver necessidade de
comunicao atravs do canal serial.
preciso tomar muito cuidado com instrues que manipulem os registradores SCON, PCON,
TMOD e TCON para evitar que as configuraes do timer 1 e do canal serial no sejam alteradas
involuntariamente. Se isto acontecer, a comunicao com o PC pode apresentar problemas.
APAGA
APAGAT
LEBYTE
NUMTER
NUMLCD
CARLCD
AREA1
AREA2
MENLCD
APACUR
ACECUR
HOMCUR
OUTLCD
CARTER
MENTER
LENUM
LEMENS
TECPRES
CODTECL
Endereo
0089H
0196H
00D0H
0164H
013EH
0071H
00A4H
00ADH
00B6H
009BH
01BDH
0092H
0059H
01AAH
0118H
00DDH
00F3H
01C6H
01DAH
Descrio
tempo
Apaga display
Apaga terminal de vdeo
L numero digitado no teclado (byte fica em a )
Imprime numero no terminal, (valor de a)
Imprime numero no display (valor de a)
Imprime caracter no display (valor de a)
Posiciona cursor do display na rea 1, (coluna em A)
Posiciona cursor do display na rea 2, (coluna em A)
Imprime mensagem no display (inicio=DPTR, 0 =fim)
Apaga cursor do LCD
Acende cursor do LCD
Home cursor do LCD
Comando para LCD
Imprime caracter no terminal de vdeo (dado de A)
Imprime mensagem n terminal de vdeo, inicio=DPTR
L numero digitado no terminal,(numero em A)
L mensagem digitada no terminal, (DPTR=endereo)
Faz CY = 1 se alguma tecla foi pressionada
L o cdigo da tecla pressionada, (valor em A)
Tab. 2.4 - Sub-rotinas de servio do kit WF
Descrio
Endereo
Incio da RAM
2000H
2003H
200BH
2013H
201BH
; INT 0
; INT 0 redirecionada
; T0
; T0 redirecionada
; INT 1
; INT 1 redirecionada
; T1
; T1 redirecionada
Note que estas linhas no tm efeito sobre programas transferidos para o kit, pois este tem EPROM
nos endereos modificados. A utilidade deste redirecionamento est em permitir a execuo de
programas no simulador. Por isso, programas que utilizem tratadores de interrupo devem seguir a
estrutura dada abaixo:
ORG RAM
SJMP INICIO
ORG 2003H
...
ORG 200BH
...
INICIO: ...
END
Um outro problema que aparece no desenvolvimento de programas para o kit WF que o simulador
AVSIM51 no possui as sub-rotinas de servio e portanto no pode simul-las. Ento, se um programa
escrito para chamar sub-rotinas da tabela 2.4 for executado no simulador, preciso tomar cuidado para
que o programa no se perca quando saltar para uma dessas sub-rotinas. A soluo adotada aqui
consiste em incluir, no incio do programa, o arquivo RET.ASM, que coloca instrues RET em todos
os endereos listados na tabela 2.4. Desta forma, as chamadas das sub-rotinas so ignoradas durante a
simulao e no atrapalham. Mais uma vez, este arquivo s tem efeito no simulador, pois o kit tem
EPROM nesses endereos.
um linkador, AVLINK51;
um conversor de arquivo HEX (texto) para BIN (binrio), HEXBIN;
um programa para transferir o arquivo do PC para o kit, LINK8031.
Para agilizar a compilao, pode-se criar um arquivo batch com o contedo listado abaixo.
avmac51 %1
@pause
avlink51 %1=%1
hexbin %1.hex %1.bin I
Porta selecionada
03F0H (COM 1)
02F0H (COM 2)
03E0H (COM 3)
02E0H (COM 4)
2.6 Exerccios
2.10.2 Utilizao da interrupo do timer 0
O programa abaixo utiliza o timer 0 para controlar a escrita das palavras BOM e DIA no LCD,
que alternam a cada segundo.
%INCLUDE ENDERECO.ASM
TIMER0H EQU 10H
TIMER0L EQU 01H
ORG RAM
LJMP INICIO
;INTERRUPCAO DO TIMER 0
ORG 200BH
INC R0
CJNE R0,#15,RECARGA
MOV R0,#00
MOV A,#0
LCALL AREA1
CJNE R1,#0,DIA
BOM:
MOV DPTR,#MSGBOM
LCALL MENLCD
MOV R1,#1
SJMP RECARGA
DIA:
MOV DPTR,#MSGDIA
LCALL MENLCD
MOV R1,#0
RECARGA: MOV TH0,#TIMER0H
MOV TL0,#TIMER0L
RETI
; alterna a mensagem
; alterna a mensagem
DB "!!!!!BOM",0
DB "DIA!!!!!",0
END
PAR:
FIM:
MENS1
MENPAR
MENIMP
SJMP FIM
MOV A,#0
; POSICIONAR AREA2
CALL AREA2
POP ACC
; RECUPERAR VALOR
CALL NUMLCD
; IMPRIMIR PARES NA AREA2
DJNZ R4,LACO
MOV DPTR,#MENPAR
; ATINGIU N PARES
CALL APAGA
CALL MENLCD
; MOSTRA MENSAGEM DE FINAL ATINGIDO
CALL MENTER
SJMP $
; PERMANECE PRESO NESTE LACO
DB ' ENTRE COM UM NUMERO < 255 ',CR,LF
DB ' O PROGRAMA IRA DETECTAR SE SAO PARES OU IMPARES ',CR,LF
DB ' O PROGRAMA TERMINA COM A ENTRADA DE 4 DO MESMO TIPO',CR,LF,0
DB '4 PARES ',0
DB '4IMPARES',0
END
18.Fazer um programa que possa medir a freqncia de um sinal colocado na sada P1.7. Quais so os
limites e erros nestas medies.
19.Medir o intervalo em que a onda retangular gerada no exerccio 7 permanece em nvel alto.
20.Idem, em nvel baixo.
Referncias bibliogrficas
Conceitos bsicos de Sistemas Digitais
[Mors88]
Interpretao
registrador R0 a R7 do banco selecionado por RS1 e RS0
endereamento indireto do byte endereado por Ri; i 1
endereamento imediato; dado8 uma constante de 8 bits
endereamento imediato; dado16 uma constante de 16 bits
endereamento direto; direto um endereo da RAM interna
endereamento direto de um bit da memria RAM interna ou SFR
endereo de 16 bits (LJMP e LCALL)
endereo de 11 bits (SJMP e SCALL)
endereamento relativo (SJMP e todos os JMPs condicionais)
Significado
Origin
Equate
Funo
Definir ende. montagem
Criar sinnimos
DB <valor>
DB <valor>,..
DB <string>
%INCLUDE
END
Define byte
Define byte
Define byte
Include
End
Criar variveis
Criar vetores
Criar strings ASCII
Incluir arquivos-fonte
Indica final de programa
Exemplo
ORG 2000H
CR EQU 0DH;
LF EQU 0AH
CONTAGEM DB 00H
TABELA DB 15H, 22H, 35H
MSG DB Mensagem 1
%INCLUDE RET.ASM
END
3.3 As instrues
As tabelas a seguir apresentam o conjunto de instrues do microcontrolador 8051.
As colunas B e C indicam, respectivamente, o nmero de bytes e o nmero de ciclos de clock de
cada instruo. As colunas CY, AC e OV de cada tabela indica como cada instruo afeta,
respectivamente, os flags de carry, auxiliary carry e overflow, de acordo com a seguinte notao:
Operando
A,Rn
A,direto
A,@Ri
A,#dado8
A,Rn
A,direto
A,@Ri
A,#dado8
A,Rn
Descrio
Soma registrador ao acumulador
Soma byte ao acumulador
Soma byte no endereo Ri a A
Soma dados imediatos a A
Soma o registrador e o carry a A
Soma byte e o carry a A
Soma byte no endereo Ri e carry a A
Soma dados imediatos e o carry a A
Subtrai Rn e borrow de A: A = A-CY-Rn
B
1
2
1
2
1
2
1
2
1
C
1
1
1
1
1
1
1
1
1
CY
*
*
*
*
*
*
*
*
*
AC
*
*
*
*
*
*
*
*
*
OV
*
*
*
*
*
*
*
*
*
SUBB
SUBB
SUBB
INC
INC
INC
INC
DEC
DEC
DEC
DEC
INC
MUL
DIV
DA
A,direto
A,@Ri
A,#dado8
A
Rn
Direto
@Ri
A
Rn
Direto
@Ri
DPTR
AB
AB
A
2
1
2
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
4
1
*
*
*
0
0
*
*
*
*
*
*
*
*
*
*
0
-
B
1
2
1
2
2
3
1
2
1
2
2
3
1
2
1
2
2
3
1
1
1
1
1
1
1
C
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
CY
*
*
-
AC
-
OV
-
C
1
1
1
1
1
1
2
2
2
2
1
2
CY
0
1
*
*
*
*
*
*
-
Operando
A,Rn
A,direto
A,@Ri
A,#dado8
direto,A
dir,#dado8
A,Rn
A,direto
A,@Ri
A,#dado8
direto,A
dir,#dado
A,Rn
A,direto
A,@Ri
A,#dado8
direto,A
dir,#dado
A
A
A
A
A
A
A
Descrio
AND entre registrador e acumulador
AND entre byte e acumulador
AND entre o contedo do endereo Ri e A
AND entre dado imediato e o acumulador
AND entre acumulador e byte
AND entre dado imediato e byte
OR entre registrador e acumulador
OR entre byte e acumulador
OR entre o contedo do endereo Ri e A
OR entre dado imediato e o acumulador
OR entre acumulador e byte
OR entre byte e dado imediato
XOR entre o acumulador e Registrador
XOR entre acumulador e byte
XOR entre A e o contedo do endereo Ri
XOR p/ dado imediato e o acumulador
XOR entre acumulador e byte
XOR entre byte e dado imediato
Zera o acumulador
Complementa o acumulador
Rotaciona o acumulador para a esquerda
Rotaciona A para a esquerda pelo carry
Rotaciona A direita
Rotaciona A direita pelo carry
Permuta os bits (3-0) e (7-4) de A
Operando
C
bit
C
bit
C
bit
C,bit
C,/bit
C,bit
C,/bit
C,bit
bit,C
Descrio
Reseta CY
Reseta o bit endereado
Seta o CY
Seta o bit endereado
Complementa CY
Complementa o bit endereado
AND entre o bit endereado e CY
AND entre CY e complemento do bit
OR entre CY e o bit endereado
OR entre CY e complemento do bit
Copia bit endereado para CY
Copia CY para bit endereado
B
1
2
1
2
1
2
2
2
2
2
2
2
AC
-
OV
-
MOV
A,Rn
Descrio
Move registrador para acumulador
B C CY AC OV
1 1 - - Microcontrolador 8051 - 26/30
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOVC
MOVC
MOVX
MOVX
MOVX
MOVX
PUSH
POP
XCH
XCH
XCH
XCHD
A,direto
A,@Ri
A,#dado8
Rn,A
Rn,direto
Rn,#dado8
direto,A
direto,Rn
direto,direto
direto,@Ri
dieto,#dado8
@Ri,A
@Ri,direto
@Ri,#dado8
DPTR,#dad16
A,@A+DPTR
A,@A+PC
A,@Ri
A,@DPTR
@Ri,A
@DPTR,A
Direto
Direto
A,Rn
A,direto
A,@Ri
A,@Ri
2
1
2
1
2
2
2
2
3
2
3
1
2
2
3
1
1
1
1
1
1
2
2
1
2
1
1
1
1
1
1
2
1
1
2
2
2
2
1
2
1
2
2
2
2
2
2
2
2
2
1
1
1
1
Operando
end11(2k)
end16 (64k)
end11 (2k)
end16 (64k)
end. rel.
@A+DPTR
end. rel.
end rel.
end rel.
end rel.
bit,end. rel.
bit,end. rel.
bit,end. rel.
A,direto,end. rel.
A,#dado8,end. rel.
Rn,#dado8,end. rel.
@Ri,#dado8,end. rel.
Rn,end.rel
direto,end. rel.
Descrio
Chamada de sub-rotina
Chamada de sub-rotina
Retorno de sub-rotina
Retorno de interrupo
Desvio incondicional
Desvio incondicional
Desvio incondicional
Desvio indireto relativo a DPTR
Desvio se A = 0
Desvio se A 0
Desvio se CY = 1
Desvio se CY =0
Desvio se bit = 1
Desvio se bit = 0
Desvio se bit =1; zera bit
Desvio se A byte
Desvio se A dado imediato
Desvio se Rn dado imediato
Desvio se byte endereado dado
Decrementa Rn; desvio se Rn 0
Decrementa byte e desvia se 0
Instruo sem efeito
B
2
3
1
1
2
3
2
1
2
2
2
2
3
3
3
3
3
3
3
2
3
1
C
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
CY
*
*
*
*
-
AC
-
OV
-