Escolar Documentos
Profissional Documentos
Cultura Documentos
MICROCONTROLADORES
FAMLIA 8031/8051
CURITIBA, PR
ABRIL 2004
Sumrio
CAPTULO 1 INTRODUO ............................................................................................................................................. 3
CAPTULO 2 VISO GERAL ............................................................................................................................................. 4
1.1) Caractersticas de Hardware .......................................................................................................................................... 6
1.1) Pinagem do 8051 ........................................................................................................................................................... 7
1.2) Organizao da Memria .............................................................................................................................................. 9
Memria de Programa............................................................................................................................................... 9
Endereamento Imediato......................................................................................................................................... 40
______________________________________________________________________________________________
CAPTULO 1 INTRODUO
Neste manual detalhamos a famlia de microcontroladores 8031/8051 tanto no aspecto da
microarquitetura quanto de programao em assembly, desta famlia que amplamente utilizada no
mercado e tambm de fcil desenvolvimento, tendo inclusive compiladores C para ela.
Os microcontroladores so microprocessadores direcionados para aplicaes de controle, que j
possuem em seu interior recursos como memria de programa e dados, portas de comunicao,
controladores de interrupo, timers, e em alguns casos conversores A/D. A grande vantagem que por
j possurem estes recursos incorporados as aplicaes desenvolvidas com eles so mais compactas e
por conseqncia apresentam um custo menor, quando comparado com o desenvolvimento usando
microprocessadores, pois estes recursos devem ser agregados no sistema.
As informaes presentes neste manual foram obtidas de diversos documentos e compiladas de
uma maneira a proporcionar uma melhor viso sobre estes microcontroladores, seus recursos e
instrues necessrios para a programao assembly e para a compreenso do funcionamento deste,
verstil e prtico, microcontrolador.
Alm de ser utilizado para o desenvolvimento de projetos digitais compactos, direcionados para
aplicaes de controle e gerenciamento, ele pode ser utilizado como elemento didtico para a
demonstrar o funcionamento dos processadores, pois o desenvolvimento de programas usando
assembly para 8051 de fcil compreenso.
______________________________________________________________________________________________
8031,
um
primo,
8052.
Todas
as
verses
contm
mesma
CPU,
RAM,
contadores/temporizadores, portas paralelas, e E/S serial. O 8051 contm 4Kbytes de ROM, a qual
definida/mascarada quando o chip produzido. No 8751, a ROM trocada por EPROM que se pode
programar.
O 8031 destinado para aplicaes expandidas e usa memria externa. O 8031 usa trs das
quatro portas paralelas do chip para fazer o endereamento convencional e um barramento de dados
com linhas apropriadas de controle.
Desde que o 8031 ainda contenha RAM, uma porta paralela, e uma porta serial - at mesmo
quando funciona como uma CPU principal de um circuito expandido - o nmero de chips eventuais
necessrios para expandir o E/S ou memria ainda consideravelmente pequeno.
A Intel e outras companhias comercializam variaes da famlia MCS-51 com mais memria
interna, mais E/S, baixa potncia, e assim por diante. Um 80C31 uma verso CMOS de baixa
potncia do 8031, por exemplo. O 8052, o mesmo que o 8051, exceto que tem outro
contador/temporizador e RAM e ROM adicionais.
Como pode-se esperar, tanto a fabricao da mscara quanto a construo do chip demanda
tempo e dinheiro. A programao por mscara faz sentido para uma aplicao que usa milhares de
8051 idnticos, mas isto no prtico para baixo volume de sistemas e de prottipos.
O 8751 possui todas as caractersticas do 8051, exceto que uma nica EPROM substitui o
programa armazenado na ROM. Fazer uma mudana no programa to simples como apagar a
EPROM com luz ultravioleta e gravar outro programa. Muitos projetistas usam 8751 sobre o trabalho
de codificao, ento confiam para uma grande classe de 8051 com o programa em ROM. Se o volume
do produto suficientemente pequeno, freqentemente proveitoso o uso do 8751 mesmo no produto
final.
______________________________________________________________________________________________
O 8031 no tem o programa armazenado no prprio chip. O sistema incluir uma EPROM
externa e um latch de endereo, como visto na figura 1. Considerando a queda de preo das
EPROMs e o pesado custo do uso de ambos os 8051s ou 8751s em pouca quantidade, o 8031 uma
alternativa vivel apesar dos chips adicionais. Para muitos sistemas pequenos, a combinao
8031/EPROM muito melhor em custo/benefcio do que um 8051.
Todos os membros da famlia MCS-51 tem o mesmo ncleo do hardware e, portanto, usam o
mesmo ncleo do conjunto de instrues.
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
Memria de Programa
O espao de endereamento para a memria de programa de 64Kbytes. No 8051, os 4Kbytes
mais baixos esto na prpria CPU (memria interna de programa). Aps o reset, a CPU inicia a
execuo no endereo 0000H, onde deve residir uma instruo de salto para o endereo de inicio do
programa. As posies 0003H a 0023H (002BH) esto reservadas para as rotinas de atendimento a
interrupes.
FFFF H
EXTERNA
EA = 0
EA = 1
EXTERNA
INTERNA
0000 H
PSEN
Os 4Kbytes mais baixos da memria de programa podem residir tanto internamente no chip
como na memria externa. A seleo feita pelo pino EA (External Access). Quando EA=1, a CPU
busca as instrues de endereos 0000H a 0FFFH na ROM interna e as instrues de endereos 1000H
a FFFFH na memria externa. Se EA=0, ento todas as buscas sero feitas na memria externa. No
8031, como no existe ROM interna, o pino EA deve estar sempre em 0.
______________________________________________________________________________________________
No 8052 (8032) que tem 8Kbytes de memria ROM, quando EA=1, a CPU busca as instrues
de endereos 0000H a 1FFFH na ROM interna, e as instrues de endereo 2000H a FFFFH na
memria externa.
Memria de Dados
O 8051 pode acessar dados tanto na Memria Interna como na Memria Externa de dados. A
Memria Externa de Dados pode ter at 64Kbytes e acessada atravs da instruo MOVX. A
Memria Interna de Dados do 8051 composta por 2 blocos de 128 bytes. O bloco inferior (00H a
7FH) usado como RAM e pode ser endereado direto ou indiretamente. O bloco superior (80H a
FFH) um espao reservado para mapear os registradores internos da CPU (SFRs - Special Function
Registers). Este bloco s pode ser acessado diretamente.
FFFF H
EXTERNA
FF H
SFR
RAM
00 H
0000 H
Memria Interna
Memria Externa
O bloco inferior da Memria Interna de Dados (00H a 7FH) dividido em trs partes:
Banco de Registradores (00H a 1FH): 32 bytes
rea enderevel bit-a-bit (20H a 2FH): 16 bytes
rea de rascunho (scratch-pad) (30H a 7FH): 80 bytes
______________________________________________________________________________________________
10
7FH
20H
1FH
R0 a R7 ( Banco 3 )
R0 a R7 ( Banco 2 )
R0 a R7 ( Banco 1 )
R0 a R7 ( Banco 0 )
00H
O bloco superior (rea dos SFRs 80H a FFH) est mostrado na figura abaixo.
F8
F0
FF
B
F7
E8
E0
EF
ACC
E7
D8
D0
DF
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
90
P1
88
TCON
TMOD
TL0
TL1
80
P0
SP
DPL
DPH
SBUF
9F
97
TH0
TH1
8F
PCON
87
11
______________________________________________________________________________________________
12
CY
(LSB)
AC
F0
RS1
RS0
OV
-------
______________________________________________________________________________________________
13
Smbolo
Bit
Descrio
CY
PSW.7
Flag de Carry
AC
PSW.6
F0
PSW.5
Disponvel ao Usurio
RS1
PSW.4
RS0
PSW.3
OV
PSW.2
Flag de Overflow
--------
PSW.1
Reservado
PSW.0
Flag de Paridade
Registradores de Temporizao - Os pares de registradores (TH0, TL0), (TH1, TL1), e (TH2, TL2)
so os contadores/temporizadores do 8051 e do 8052. Cada par corresponde a um registrador de 16
bits do temporizador/contador correspondente (0, 1, e 2) respectivamente.
Registradores de Captura * (apenas no 8052) - O par de registradores (RCAP2H, RCAP2L) so
registradores de captura para o Timer 2 Modo de Captura. Neste modo, em resposta a uma
transio do pino T2EX do 8052, TH2 e TL2 so copiados para o RCAP2H e RCAP2L. Timer 2
tambm tem o modo de 16 bits auto-reload, e RCAP2H e RCAP2L armazena o valor de reload para
este modo.
Registradores de Controle - Os registradores IP, IE, TMOD, TCON, SCON e PCON so os
registradores de controle e estado do sistema de interrupo, da seo de temporizao/contagem e
da porta serial.
A figura 8 (abaixo), mostra o diagrama em blocos a arquitetura interna da famlia MCS-51,
constando todos os componentes internos da CPU.
______________________________________________________________________________________________
14
______________________________________________________________________________________________
15
Porta P0
A porta P0 usada como barramento multiplexado (ADD/DATA) no acesso Memria
Externa de Programa e Dados. Em um acesso Memria de Programa ou Dados, a porta P0 contm os
8 LSBs do endereo (no incio do acesso) e contm os 8 bits de dados lidos ou escritos na memria.
Para sistemas que no utilizam memria externa, a porta P0 pode ser usada como porta de E/S
para propsitos gerais, mostrada na figura 10a.
Porta P1
A porta P1 usada exclusivamente como porta de E/S. Sua estrutura est mostrada na figura
10b. Para o 8052, os pinos P1.0 e P1.1, tem outra funo especial, como segue:
P1.0
P1.1
Porta P2
A porta P2 usada para acomodar o byte mais significativo do endereo externo (a porta P0
acomoda o byte menos significativo deste endereo). As linhas de E/S de P2 podem ser usadas para
propsitos gerais se no forem afetados pela CPU durante o acesso Memria Externa. Sua estrutura
est mostrada na figura 10c.
Porta P3
______________________________________________________________________________________________
16
A porta P3 pode ser usada para E/S de uso genrico ou para acomodar as linhas externas da
CPU (interrupo, temporizadores, porta serial e sinais de RD/WR). A estrutura mostra na figura
10d. e a configurao de pinos da porta P3 esto mostradas na figura abaixo.
P3.0
RXD
(Entrada Serial)
P3.1
TXD
(Sada Serial)
P3.2
INT0
(Interrupo Externa 0)
P3.3
INT1
(Interrupo Externa 1)
P3.4
T0
(Entrada temp/cont 0)
P3.5
T1
(Entrada temp/cont 1)
P3.6
WR
P3.7
RD
______________________________________________________________________________________________
17
______________________________________________________________________________________________
18
______________________________________________________________________________________________
19
______________________________________________________________________________________________
20
No caso de uma instruo de 1 byte, o 8051 efetua o segundo fetch, mas o byte lido
ignorado e o contador de programa (PC) no incrementado. De qualquer forma, para uma instruo
de 1 ciclo, a execuo termina em S6P2, isto , no ltimo perodo do ciclo de mquina.
No 8051, a maior parte das instrues executada em 1 Ciclo de Mquina (CM). As instrues
MUL (multiplicao) e DIV (diviso) so as nicas que necessitam de mais de 2 ciclos (elas so
executadas em 4 ciclos de mquina).
A instruo MOVX (acesso Memria Externa) uma instruo de 1 byte e 2 ciclos. A sua
execuo envolve o endereamento e acesso Memria Externa entre S5 do primeiro CM e S3 do
segundo CM, intervalo no qual, o 8051 no efetua nenhum fetch.
Modo 0
______________________________________________________________________________________________
21
Este modo configura o Timer 0/1 como um contador de 8 bits (THx) com um prescaler de 5
bits. Quando houver overflow, isto , quando a contagem passar de todos 1s para todos 0s, o flag
de interrupo TF1 setado.
A entrada de contagem habilitada pelos bits TR1 (Timer 1 Run 1) e GATE e pela entrada
INT1. Quando o bit GATE = 0, o contador ser habilitado somente pelo bit TR1. Quando GATE = 1, o
contador ser habilitado por TR1 durante o tempo em que INT1 = 1. Isto possibilita a medio da
largura do pulso em INT1 diretamente.
Os bits GATE e TR1 pertencem aos registradores TCON e TMOD respectivamente. A figura
abaixo mostra o formato destes registradores.
(MSB)
TMOD
GATE
(LSB)
C/T
M1
M0
GATE
C/T
M1
M0
GATE:
TF1
(LSB)
TR1
TF0
TR0
IE1
IT1
IE0
IT0
22
IT1: Bit de tipo de interrupo 1. Setado/resetado por software para especificar ativao
por borda de descida/nvel baixo em INT1.
IE0: Flag de borda da interrupo 0.
IT0: Bit de tipo de interrupo 0.
Se IT0 = 1 -> borda de descida
Se IT0 = 0 -> nvel baixo
Modo 1
O modo 1 semelhante ao Modo 0, com a diferena de que o contador, neste modo, opera com
todos os 16 bits.
Modo 2
O modo 2 configura o Timer 0/1 como um contador de 8 bits (TL1) com recarga automtica
(auto-reload). O modo 2 o mesmo para o Timer 0 e 1.
O registrador TH1 (8 bits) contm o valor de recarga, que transferido ao TL1 a cada overflow.
O bit TF1 (interrupo interna) setado a cada overflow. O valor de recarga inicializado em TH1 por
software.
Modo 3
Este modo s tem efeito sobre o Timer 0. O Timer 1, quando configurado neste modo,
simplesmente mantm seu valor (como se TR1=0). O Timer 0, quando configurado no modo 3, opera
como dois contadores de 8 bits separados (TL0 e TH0). O registrador TL0 utiliza os bits de controle de
Timer 0 (GATE, C/T, TR0), a entrada INT0 e ativa o flag de interrupo TF0. O TH0, por outro lado,
opera somente como temporizador (contador de Ciclos de Mquina) e utiliza o bit TR1 (do Timer 1)
para seu controle. Alm disso, o TH0 ativa o flag TF1 em seu overflow. Quando o Timer 0 estiver
programado no modo 3, o Timer 1 poder ser programado nos modos 0, 1 e 2, com a restrio de no
setar o flag TF1 e, portanto, no gerar interrupes de contagem. O Timer 1, neste caso, poder gerar
interrupes para a porta serial, definindo a taxa de transmisso (baud-rate).
______________________________________________________________________________________________
23
24
Em todos os modos, a transmisso serial inicia por uma instruo que utiliza o SBUF como
registrador de destino. A recepo inicia, no modo 0, quando RI = 0 e REN = 1 e nos outros modos
quando for detectado um start bit e REN = 1. O registrador SCON contm os bits de controle da porta
serial.
(MSB)
SCON
(LSB)
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0
SM1
MODO
DESCRIO
TAXA TRANSMISSO
Shift Register
Osc./12
UART 8 bits
Varivel
UART 9 bits
Osc./64 ou osc./32
UART 9 bits
Varivel
25
______________________________________________________________________________________________
26
MOV C , P
; CY:= Paridade
MOV TB8 , C
; TB8:= Paridade
MOV SBUF , A
Taxas de Transmisso
No modo 0, a taxa de transmisso fixa e igual a OSC/12.
No modo 2, a taxa de transmisso depende do bit SMOD (PCON.7). Se SMOD=0 (que o
valor de reset), a taxa de OSC/64. Se SMOD=1, a taxa OSC/32.
Supondo que o Timer 1 seja configurado para operar no modo auto-reload, a taxa de
transmisso pode ser calculada por:
27
simultaneamente diferentes. O modo de gerao da taxa de baud similar para o modo auto-reload, na
que um rollover no TH2 torna os registros do Timer 2 para ser recarregado com o valor de 16 bits
nos registradores RCAP2H e RCAP2L, os quais so pr-setados por software.
Agora, a taxa de baud nos Modos 1 e 3 so determinadas pela taxa de overflow do Timer 2
como segue:
Taxa TX = [ Taxa Overflow Timer 2] / 16
O Timer pode ser configurado para qualquer dos dois modos de operao timer ou
contador. Em aplicaes tpicas, configurado para operao timer (C/T2 = 0). A operao
Timer uma pequena diferena para Timer 2 quando iniciamos usando como um gerador de taxa de
baud. Normalmente, como um timer ser incrementado a cada ciclo de mquina (desta forma 1/12 a
freqncia de oscilao). Como a gerao da taxa de baud, entretanto, incrementamos cada um dos
tempos de estado (state time) (assim a freqncia de oscilao). Nestes casos a taxa de baud dada
pela frmula:
onde (RCAP2H, RCAP2L) o contedo de RCAP2H e RCAP2L tendo como um inteiro sem sinal de
16 bits.
O seguinte trecho de programa, faz parte do programa do BASIC residente do 8052, que ajusta
automaticamente a taxa de transmisso via porta serial com outro sistema com o qual est interagindo.
MOV
R3,#00H
MOV
R1,#00H
MOV
R0,#04H
JB
RXD,$
R0,$
;
;
RESET5:
DJNZ
; 1 CLOCK (1)
MOV
A,R1
; 1 CLOCK (2)
SUBB
A,#1
; 1 CLOCK (3)
MOV
R1,A
; 1 CLOCK (4)
MOV
A,R3
; 1 CLOCK (5)
______________________________________________________________________________________________
28
A,#00H
MOV
R3,A
; 1 CLOCK (7)
MOV
R0,#3
; 1 CLOCK (8)
JNB
RXD,RESET5
JB
RXD,$
JNB
RXD,$
MOV
RCAP2K,R3
MOV
RCAP2L,R1
;
;
______________________________________________________________________________________________
29
______________________________________________________________________________________________
30
______________________________________________________________________________________________
31
Quando uma das fontes solicita interrupo, o 8051 (8052) executa um salto para o endereo
de atendimento da fonte requisitante. Os endereos so:
FONTE
ENDEREO
INT 0
3 (0003 H)
TIMER 0
11 (000B H)
INT 1
19 (0012 H)
TIMER 1
27 (001B H)
PORTA SERIAL
35 (0023 H )
TIMER 2
43 (002B H) *
FONTE
FLAG
LOCALIZAO
INT0
IE0
TCON.1
TIMER0
TF0
TCON.5
INT1
IE1
TCON.3
SERIAL (TX)
TI
SCON.1
SERIAL (RX)
RI
SCON.0
32
(MSB)
IE
EA
(LSB)
-----
ET2
ES
ET1
EX1
ET0
EX0
Interrupes de Temporizao/Contagem
As interrupes dos Timers 0 e 1 so geradas pelos flags TF0 e TF1 respectivamente, quando o
timer correspondente sofrer overflow. Quando for gerada uma interrupo de temporizao/contagem,
o flag que gerou esta interrupo resetado por hardware quando a rotina de atendimento for iniciada.
Os flags TF0 e TF1 pertencem ao registrador TCON e esto localizados nas posies TCON.5 e
TCON.7 respectivamente.
Interrupes Externas
As interrupes INT0 e INT1 podem ser ativadas por nvel (baixo) ou borda (de descida)
dependendo dos bits IT0 e IT1 no registrador TCON. Os flags que geram as interrupes externas so
IE0 (TCON.1) e IE1 (TCON.3). Quando a CPU executa o atendimento a interrupes externas, os
flags IE0 e IE1 so resetados somente se a interrupo em questo estiver programada para ativao
por borda. No caso de ativao por nvel, o flag de interrupo ser controlado pela fonte externa.
______________________________________________________________________________________________
33
Prioridade de Atendimento
Cada fonte de interrupes pode ser programada, individualmente, para operar em um dos dois
nveis de prioridade atravs do registrador IP (Interrupt Priority Register).
(MSB)
IP
-----
(LSB)
-----
PT2*
PS
PT1
PX1
PT0
PX0
TF0
IE1
TF1
RI + TI
TF2 + EXF2*
(Mais Baixa)
OBS: A prioridade mostrada acima s vlida para o caso de pedidos simultneos de fonte com
mesma prioridade.
______________________________________________________________________________________________
34
Atendimento a Interrupes
Os flags de interrupo so armazenados em S5P2 de cada Ciclo de Mquina. Os flags so
examinados pelo circuito de polling no Ciclo de Mquina seguinte. Se um dos flags estava setado em
S5P2 do ciclo anterior, o circuito de polling detectar e o Sistema de Interrupo gerar uma
instruo LCALL (long CALL) para as rotina de atendimento em questo. Esta instruo gerada por
hardware ser inibida se:
1. Uma interrupo com igual ou maior nvel de prioridade estiver em execuo; ou
2. O ciclo de mquina no qual o polling foi executado no o ltimo CM da instruo atual;
ou
3. A instruo atual o RETI (retorno da interrupo) ou qualquer acesso aos registradores IE
ou IP.
A condio 2 assegura que a instruo atual ser completada antes do atendimento
interrupo. A condio 3 assegura que ao menos uma instruo ser executada depois de um RETI
antes do atendimento a uma outra interrupo e permite que as instrues que alteram a prioridade e
habilitao das interrupes sejam processadas.
A instruo forada (LCALL) empilha o PC (contador de programa) mas no empilha o PSW
(Program Status Word). Depois, PC carregado com o endereo da rotina de atendimento.
FONTE
VETOR DE
INTERRUPO
IE0
0003 H
TF0
000B H
IE1
0013 H
TF1
001B H
RI + TI
0023 H
TF2 +EXF2*
002B H
______________________________________________________________________________________________
35
o valor do PC recebe os dois bytes do topo da pilha para retornar ao programa no ponto onde foi
interrompido.
______________________________________________________________________________________________
36
CONTEDO
REGISTRADOR
CONTEDO
PC
0000 H
TCON
00 H
ACC
00 H
TH0
00 H
00 H
TL0
00 H
PSW
00 H
TH1
00 H
SP
07 H
TL1
00 H
DPTR
0000 H
SBUF
INDETERMINADO
P0 - P3
0FF H
PCON (CMOS)
0XXX0000 B
IP(8051)
XXX00000 B
PCON (NMOS)
0XXXXXXX B
IP(8052)
XX000000 B
TH2(8052)
00 H
IE(8051)
0XX00000 B
TL2(8052)
00 H
IE(8052)
0X000000 B
RCAP2H(8052)
00 H
TMOD
00 H
RCAP2L(8052)
00 H
SCON
00 H
Tabela 7. Valores de reset para os registradores da CPU
Power - On Reset
O reset automtico obtido quando a tenso Vcc de alimentao conectada ao pino RST
atravs de um capacitor de 10 F e o mesmo ponto ligado ao terra atravs de um resistor de 8,2K.
______________________________________________________________________________________________
37
Reduo de Consumo
Para aplicaes onde o consumo de potncia critico, as verses NMOS e CMOS possuem um
modo de operao para reduo de consumo.
SMOD
(LSB)
-----
-----
-----
GF1
GF0
PD
IDL
______________________________________________________________________________________________
38
Endereamento Direto
No endereamento direto, o operando especificado por um endereo de 8 bits contido no
opcode da instruo. Este modo s pode ser usado no acesso RAM interna a aos SFRs.
______________________________________________________________________________________________
39
Endereamento Imediato
No endereamento imediato, o operando faz parte do opcode. Por exemplo, a instruo MOV
A,#100, a qual carrega o acumulador com o nmero decimal 100, que est contido no 2 byte.
Endereamento Indexado
O endereamento indexado s permitido para acessar a Memria de Programa. Este modo de
endereamento utilizado para acessar tabelas de constantes residentes em ROM. Os registradores
utilizados como base so o DPTR ou o PC, o Acumulador usado como valor de offset. O endereo
efetivo do operando, neste modo, calculado pela soma do registrador de base (PC ou DPTR) com o
contedo do Acc.
Endereamento Implcito
Neste modo, o operando nico, ou seja, no h necessidade de especific-lo no opcode da
instruo. No 8051, algumas instrues sempre utilizam o Acumular ou o DPTR, de forma que a
codificao da instruo resume-se a um nico byte. Por exemplo, a instruo DIV AB.
______________________________________________________________________________________________
40
OPERAO
ADD
ADDC
SUBB
INC
A=A+1
INC
INC
DPTR
DPTR = DPTR + 1
DEC
A=A-1
DEC
MUL
AB
B: A = B x A
DIV
AB
DA
Ajuste Decimal
Tabela 8. Instrues Aritmticas
______________________________________________________________________________________________
41
OPERAO
ANL
ANL
ANL
ORL
ORL
ORL
XRL
XRL
XRL
CLR
A = 00H
CPL
A = .NOT. A
RL
RLC
RR
RRC
SWAP
______________________________________________________________________________________________
42
OPERAO
ANL
C,bit
C = C AND bit
ANL
C,/bit
ORL
C,bit
C = C OR bit
ORL
C,/bit
C = C OR NOT bit
MOV
C,bit
C = bit
MOV
bit,C
bit = C
CLR
C=0
CLR
bit
bit = 0
SETB
C=1
SETB
bit
bit = 1
CPL
C = NOT C
CPL
bit
JC
rel
Jump se C = 1
JNC
rel
Jump se C = 0
JB
bit,rel
Jump se bit = 1
JNB
bit,rel
Jump se bit = 0
JBC
bit,rel
Todos os acessos a bit so feitos com endereamento direto. Os bits com endereos de 00H at
7FH esto na parte baixa (128 primeiros bytes da RAM interna) e os bits com endereos de 80H at
FFH esto no espao dos SFRs.
______________________________________________________________________________________________
43
OPERAO
MOV
MOV
MOV
MOV
DPTR,#DATA16
PUSH
POP
XCH
XCHD
A,@Ri
______________________________________________________________________________________________
44
Tamanho
Mnemnico
Operao
do Endereo
8 bits
MOVX
A,@Ri
8 bits
MOVX
@Ri,A
16 bits
MOVX
A,@DPTR
16 bits
MOVX
@DPTR,A
O acesso Memria de Programa, feito pela instruo MOVC (Move Code), usado para
acessar tabelas de constantes em ROM. Estas instrues so conhecidas como instrues de Lookup
Table e esto mostradas na tabela abaixo.
Mnemnico
Operao
MOVC
A,@A+DPTR
MOVC
A,@A+PC
______________________________________________________________________________________________
45
Operao
JZ
rel
Jump se Acc = 0
JNZ
rel
Jump se Acc 0
DJNZ
CJNE
A,<byte>,rel
CJNE
<byte>,#data,rel
SALTO INCONDICIONAL
Mnemnico
Operao
JMP
addr
JMP
@A+DPTR
CALL
addr
RET
Retorna da subrotina
RETI
Retorna da interrupo
NOP
Nenhuma operao
LJMP
addr
SJMP
rel
AJMP
addr
LCALL
addr
ACALL
addr
______________________________________________________________________________________________
46
inicio:
dezena:
unidade:
org 00h
;Posio de Reset
sjmp inicio
org 30h
mov
mov
mov
mov
mov
mov
subb
mov
jc
div
mov
mov
mov
mov
subb
mov
jc
div
mov
mov
mov
sjmp
r1,#00
r2,#00
r3,#00
a,p1
b,#100d
r4,a
a,b
a,r4
dezena
ab
r1,a
a,b
b,#10d
r4,a
a,b
a,r4
unidade
ab
r2,a
a,b
r3,a
$
;inicio do programa
;Zera os registradores
;Leitura do valor
;Armazenamento do valor 100d
______________________________________________________________________________________________
47
loop:
fim:
org
mov
mov
mov
mov
mov
mov
jz
mov
mov
jz
mov
dec
mov
mul
mov
sjmp
sjmp
30h
a,p0
r0,a
a,p1
r1,a
20h,#00
a,r0
fim
20h,#01h
a,r1
fim
a,20h
r1
b,r0
ab
20h,a
loop
$
______________________________________________________________________________________________
48
loop2:
zero:
alter:
uns:
erro:
mov
mov
nop
djnz
P1,#00
a,#10d
; P1 <----- 00h
a,loop1
; delay
mov
P1,#ffh
; P1 <----- ffh
mov
nop
djnz
a,#10d
a,loop2
; delay
mov
P1,#10101010b
; P1 <----- 10101010b
mov
mov
mov
movx
movx
cjne
inc
mov
cjne
mov
cjne
mov
mov
mov
movx
movx
cjne
inc
mov
cjne
mov
cjne
mov
mov
mov
movx
movx
cjne
inc
mov
cjne
mov
cjne
sjmp
mov
sjmp
DPTR,#0000h
a,#00
b,#00
@dptr,a
a,@dptr
a,b,erro
dptr
a,dph
a,#ffh,zero
a,dpl
a,#ffh,zero
DPTR,#0000h
a,#0101010b
b,#0101010b
@dptr,a
a,@dptr
a,b,erro
dptr
a,dph
a,#ffh,alter
a,dpl
a,#ffh,alter
DPTR,#0000h
a,#ffh
b,#ffh
@dptr,a
a,@dptr
a,b,erro
dptr
a,dph
a,#ffh,uns
a,dpl
a,#ffh,uns
$
p1,#00h
$
______________________________________________________________________________________________
49
______________________________________________________________________________________________
50
______________________________________________________________________________________________
51
52
53
54
______________________________________________________________________________________________
55
______________________________________________________________________________________________
56
SAB 80C535/80C535-16:
um microprocessador CMOS para ROM externa. Os
integrados
ACMOS
SAB
57
Caractersticas Tcnicas
______________________________________________________________________________________________
58
______________________________________________________________________________________________
59
BIBLIOGRAFIA
______________________________________________________________________________________________
60