2. Agora, vamos ao que interessa...
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 2
3. Descrição
A família de microcontroladores MCS-51TM,
desenvolvida, fabricada e comercializada pela
Intel é baseada em padrões industriais de
microcontroladores de 8 bits, sendo o 8051 o
componente inicial desta família. O 8051 possui
128 bytes de RAM, 4 Kbytes de memória de
programa, 2 contadores/temporizadores de 16
bits e 32 linhas de entrada/saída bidirecionais e
individualmente endereçáveis – 4 portas de E/S.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 3
4. Partes do microcontrolador
• CPU: tem a função de acionar e se comunicar
com todos os barramentos obedecendo as
diretivas gravadas na ROM. É responsável
pela execução de instruções programadas,
interpretar e executar comandos.
• Memória: utiliza uma memória ROM para ler
as instruções que deve executar e se utiliza
de uma memória RAM para armazenar
temporariamente dados de uso das
instruções ou variáveis do programa.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 4
5. Partes do microcontrolador
• Periféricos de E/S: são todos os dispositivos
externos ligados à CPU, como teclados,
displays, motores, timers, porta serial etc.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 5
6. CPU
• Unidade de Controle: processa o controle do
fluxo das informações a fim de executar a
instrução recebida pela ROM. Envia impulsos
elétricos para controlar em sequencia
apropriada e sincronizada as operações dos
componentes.
• Unidade de lógica e aritmética: realiza todas
as operações de lógica e aritmética da CPU.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 6
7. CPU
• Unidade de registradores: servem para o
armazenamento temporário de dados de
utilidade interna e externa à CPU.
Proporcionam um tempo rápido de
transferência de bits. Dentre eles podemos
destacar o contador de programa, o registro
de instruções e o acumulador.
• Contador de programa: armazena o
endereço da célula que contém o código da
próxima instrução a ser executada.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 7
8. CPU
• Acumulador: principal registrador da CPU,
pois várias instruções se referem a ele para
operar, como por exemplo ADD A,#40H. O
resultado das operações é guardado no
próprio acumulador.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 8
9. Arquitetura interna
Está dividida em unidade de processamento
central, oscilador interno, memória ROM
interna, memória RAM interna, dois
temporizadores, uma porta serial, quatro
portas paralelas de 8 bits, circuito de controle
de interrupção e circuito de controle de
barramento.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 9
11. Arquitetura externa
• VCC E GND: Entradas de tensão de
alimentação de +5V e Terra.
• Porta 0 (P0.7 a P0.0): Porta bidirecional de 8
bits, com saída de dreno aberto, ou entrada
de alta impedância. Multiplexa o barramento
de dados e o barramento de endereços.
Pode servir como saída de bytes de
instrução, sendo necessária a colocação de
resistores de pull-up’s externos. Seus pinos
podem ser individualmente endereçáveis.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 11
12. Arquitetura externa
• Porta 1 (P1.7 a P1.0): Nenhuma função
alternativa está associada a esta porta, ela é
usada apenas para conectar dispositivos
externos. Necessita de pull-up’s externos
para suprir ou drenar cargas. Seus pinos
podem ser individualmente endereçáveis.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 12
13. Arquitetura externa
• Porta 2 (P2.7 a P2.0): é bidirecional de 8 bits
com resistores de pull-up’s internos. Seus
pinos podem suprir ou drenar cargas TTL
sem resistores externos e podem ser
individualmente endereçáveis.
• Porta 3 (P3.7 a P3.0): Porta de 8 bits
bidirecional. Seus pinos podem ser
individualmente endereçáveis, servindo
também para as funções especiais descritas
a seguir.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 13
14. Arquitetura externa
BIT NOME FUNÇÃO ALTERNATIVA
P3.0 RXD Receptor da porta serial assíncrona.
P3.1
TXD/
clock
Saída de transmissão da porta serial ou saída de clock
para os registradores de deslocamento externos.
P3.2 INT0
Interrupção externa 0 ou bit de controle para o
timer/contador 0.
P3.3 INT1
Interrupção externa 1 ou bit de controle para o
timer/contador 1.
P3.4 T0 Entrada para o timer/contador 0.
P3.5 T1 Entrada para o timer/contador 1.
P3.6 WR Strobe de escrita na memória externa.
P3.7 RD Strobe de leitura na memória externa.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 14
16. Arquitetura externa
• RESET: Um nível alto nesse pino realiza uma
inicialização do circuito.
• EA: Deve ser ligado ao nível alto, para que o
processador tenha acesso a memória interna
de programa. Se estiver ligado ao nível
baixo, toda a área de programa será
considerada externa.
• XTAL1 e XTAL2: entradas para o clock
externo.
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 16
17. Memória
O 𝜇 C8051 contém 210 localizações de bits
endereçáveis, dos quais 128 são os bytes
endereçados de 20H até 2FH e os restantes
estão nos registros de funções especiais.
31 de julho de 2012 17Minicurso: Assembly para 8051 GDESTE
19. Memória
31 de julho de 2012 19Minicurso: Assembly para 8051 GDESTE
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW
B8 BF BE BD BC BB BA B9 B8 IP
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
A8 AF AE AD AC AB AA A9 A8 IE
A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
99 Bits não endereçáveis SBUF
98 9F 9E 9D 9C 9B 9A 99 98 SCON
90 97 96 95 94 93 92 91 90 P1
8B Bits não endereçáveis TH1
8C Bits não endereçáveis TH0
8B Bits não endereçáveis TL1
8A Bits não endereçáveis TL0
89 Bits não endereçáveis TMOD
88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 Bits não endereçáveis PCON
83 Bits não endereçáveis DPH
82 Bits não endereçáveis DPL
81 Bits não endereçáveis SP
80 87 86 85 84 83 82 81 80 P0
REGISTROS DE FUNÇÕES ESPECIAIS
Localizaçãodosbitsendereçáveis
20. Banco de registros
O conjunto de instruções do 8051 contem 8
registros, R0 até R7 e por default estão com
endereços de 00H-07H. O banco de registro
ativo pode ser alterado trocando os bits de
seleção dos bancos de registros. A ideia de
banco de registros permite uma rápida e
efetiva troca de dados.
31 de julho de 2012 20Minicurso: Assembly para 8051 GDESTE
22. Primeiro contato com o Assembly
• Diretiva ORG: altera a localização para iniciar
a nova contagem do programa.
• END: Finaliza o processo de montagem.
• EQU: iguala um rótulo com outro ou com um
valor numérico. Exemplos:
LED EQU P2.0
DEZ EQU 10
31 de julho de 2012 22Minicurso: Assembly para 8051 GDESTE
23. Conjunto de instruções
As operações possuem diferentes modos de
endereçamento.
ADD A , 7FH ; Endereçamento direto
ADD A , @R0 ; Endereçamento indireto
ADD A , R7 ; Endereçamento de registro
ADD , #10H ; Endereçamento imediato
31 de julho de 2012 23Minicurso: Assembly para 8051 GDESTE
24. Instruções Aritméticas
MNEMÔNICO OPERAÇÃO TEMPO DE EXECUÇÃO(𝜇s)
ADD A, <byte> A = A + <byte> 1
ADDC A, <byte> A = A + <byte> + C 1
SUBB A, <byte> A = A + <byte> - C 1
INC A A = A + 1 1
INC <byte> <byte> = <byte> + 1 1
INC DPTR DPTR = DPTR + 1 2
DEC A A = A – 1 1
DEC <byte> <byte> = <byte> -1 1
MUL AB B,A = B X A 4
DIV AB A = Int(A/B) e
B = Resto(A/B)
4
31 de julho de 2012 24Minicurso: Assembly para 8051 GDESTE
25. Instruções de transferência
31 de julho de 2012 25Minicurso: Assembly para 8051 GDESTE
MNEMÔNICO OPERAÇÃO TEMPO DE EXECUÇÃO(𝜇s)
MOV A, <fonte> A = <fonte> 1
MOV <destino> , A <destino> = A 1
MOV <destino> , <fonte> <destino> = <fonte> 2
XCH A,<byte> Troca dados 1
MOV DPTR,#<2bytes> DPTR = <2bytes> 2
Exemplos:
MOV R7,#10H
MOV A,R0
MOV SP,#5FH
26. Instruções booleanas
31 de julho de 2012 26Minicurso: Assembly para 8051 GDESTE
MNEMÔNICO OPERAÇÃO TEMPO DE EXECUÇÃO(𝜇s)
ANL C,<bit> C = C AND <bit> 2
ORL C,<bit> C = C OR <bit> 2
SETB <bit> <bit> = 1 1
CLR <bit> <bit> = 0 1
CPL <bit> <bit> = NOT <bit> 1
MOV C, <bit> C = <bit> 1
MOV C, /<bit> C = NOT <bit> 1
27. Exemplo:
LOOP: MOV C,P1.0
ANL C,P1.1
MOV P1.2,C
AJMP LOOP
31 de julho de 2012 27Minicurso: Assembly para 8051 GDESTE
Instruções booleanas
P1.0
P1.1
P1.2
8051
28. Prática 1: Criando uma porta NOR
ORG 00H
AJMP LOOP
ENT1 EQU P1.0
ENT2 EQU P1.1
SAIDA EQU P2.0
LOOP: MOV C,ENT1
ORL C,ENT2
CPL C
MOV SAIDA,C
AJMP LOOP
END
31 de julho de 2012 28Minicurso: Assembly para 8051 GDESTE
29. ORG 00H
AJMP INICIO
LED EQU P2.0
DELAY: MOV R2,#10
VOLTA2: MOV R1,#200
VOLTA: MOV R0,#250
DJNZ R0,$
DJNZ R1,VOLTA
DJNZ R2,VOLTA2
RET
INICIO: CLR LED ;LED inicia desligado
LOOP: CPL LED
ACALL DELAY
AJMP LOOP
END
31 de julho de 2012 29Minicurso: Assembly para 8051 GDESTE
Prática 2: Pisca LED