SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Programação Assembly
8051 – Aula 1
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 1
Agora, vamos ao que interessa...
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 2
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
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
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
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
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
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
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
Arquitetura externa
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 10
AT89S52
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
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
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
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
Arquitetura externa
0 0 0 0 0 0 0 0
31 de julho de 2012 15Minicurso: Assembly para 8051 GDESTE
SETB P1.2
P1
0 0 0 0 0 1 0 0P1
MOV P1,#075H
0 1 1 1 0 1 0 1P1
CLR P1.6
0 0 1 1 0 1 0 1P1
MOV P1,#00H
0 0 0 0 0 0 0 0P1
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
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
Memória
31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 18
7F
30
RAM de propósito geral
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40
27 3F 3E 3D 3C 3B 3A 39 38
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18
22 17 16 15 14 13 12 11 10
21 0F 0E 0D 0C 0B 0A 09 08
20 07 06 05 04 03 02 01 00
1F
18
Banco 3
17
10
Banco 2
0F
08
Banco 1
07
00
Banco 0
Localizaçãodosbitsendereçáveis
RAM
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
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
Outros registros
Acumulador;
Registrador B;
Registro dos temporizadores;
Registro de palavra de status de programa
(PSW);
DPTR;
SP;
SBUF;
PCON.
31 de julho de 2012 21Minicurso: Assembly para 8051 GDESTE
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCDRodrigo Almeida
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98Texas Instruments
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timerMayara Mônica
 
Material Auxiliar Para Curso BáSico Msp430 1 A 54
Material Auxiliar Para Curso BáSico Msp430   1 A 54Material Auxiliar Para Curso BáSico Msp430   1 A 54
Material Auxiliar Para Curso BáSico Msp430 1 A 54Texas Instruments
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PCFrequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PCPaulo Duarte
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estadosHamilton Sena
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Fabio Souza
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...Fabio Souza
 

Mais procurados (19)

Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCD
 
HC11
HC11HC11
HC11
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
8085 3
8085 38085 3
8085 3
 
8085 2
8085 28085 2
8085 2
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
 
Material Auxiliar Para Curso BáSico Msp430 1 A 54
Material Auxiliar Para Curso BáSico Msp430   1 A 54Material Auxiliar Para Curso BáSico Msp430   1 A 54
Material Auxiliar Para Curso BáSico Msp430 1 A 54
 
S10 edc16 c9 ecu
S10   edc16 c9 ecuS10   edc16 c9 ecu
S10 edc16 c9 ecu
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
Pro2 01p
Pro2 01pPro2 01p
Pro2 01p
 
Clp ab avancado
Clp ab avancadoClp ab avancado
Clp ab avancado
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PCFrequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PC
 
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
2ª SATEC - SENAI - Arduino + CLP + Maquina de estados
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - Conversor ...
 
Processador intel 4040
Processador intel 4040Processador intel 4040
Processador intel 4040
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados- GPIO (Gener...
 
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados -  TPM - TIM...
Microcontroladores ARM Cortex M0+ Aplicação em robôs autoguiados - TPM - TIM...
 

Semelhante a Aula1 30-07-120922184742-phpapp02

Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1Nivaldo Moura
 
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1Nivaldo Moura
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
Cartilha Micro-Controlador 80c51 - Assembly
Cartilha Micro-Controlador 80c51 - AssemblyCartilha Micro-Controlador 80c51 - Assembly
Cartilha Micro-Controlador 80c51 - AssemblyPedro Raphael
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelPablo Mariano
 
-Aula 4 - Programacao do 8085.ppt
-Aula 4 - Programacao do 8085.ppt-Aula 4 - Programacao do 8085.ppt
-Aula 4 - Programacao do 8085.pptJosReginaldo6
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Uma CPU simples para fins didáticos
Uma CPU simples para fins didáticosUma CPU simples para fins didáticos
Uma CPU simples para fins didáticosJulioLeme
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFengelrfs
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireJoao Alves
 

Semelhante a Aula1 30-07-120922184742-phpapp02 (20)

Aula3 120922184753-phpapp02
Aula3 120922184753-phpapp02Aula3 120922184753-phpapp02
Aula3 120922184753-phpapp02
 
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
 
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
Hbs ds 09012_2_gb_dimm_hb2du002gee8fmb08_rev01_elpida1
 
Roteiro exp2
Roteiro exp2Roteiro exp2
Roteiro exp2
 
Pro2 02p
Pro2 02pPro2 02p
Pro2 02p
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
Cartilha Micro-Controlador 80c51 - Assembly
Cartilha Micro-Controlador 80c51 - AssemblyCartilha Micro-Controlador 80c51 - Assembly
Cartilha Micro-Controlador 80c51 - Assembly
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgel
 
-Aula 4 - Programacao do 8085.ppt
-Aula 4 - Programacao do 8085.ppt-Aula 4 - Programacao do 8085.ppt
-Aula 4 - Programacao do 8085.ppt
 
Stoe01p
Stoe01p Stoe01p
Stoe01p
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Stoe 01 p
Stoe 01 pStoe 01 p
Stoe 01 p
 
Zilog
ZilogZilog
Zilog
 
Uma CPU simples para fins didáticos
Uma CPU simples para fins didáticosUma CPU simples para fins didáticos
Uma CPU simples para fins didáticos
 
Manual logo ago_13
Manual logo ago_13 Manual logo ago_13
Manual logo ago_13
 
2 manual - clp pic40-v3
2 manual - clp pic40-v32 manual - clp pic40-v3
2 manual - clp pic40-v3
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Aula4 120922184731-phpapp01 (1)
Aula4 120922184731-phpapp01 (1)Aula4 120922184731-phpapp01 (1)
Aula4 120922184731-phpapp01 (1)
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker Faire
 

Aula1 30-07-120922184742-phpapp02

  • 1. Programação Assembly 8051 – Aula 1 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 1
  • 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
  • 10. Arquitetura externa 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 10 AT89S52
  • 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
  • 15. Arquitetura externa 0 0 0 0 0 0 0 0 31 de julho de 2012 15Minicurso: Assembly para 8051 GDESTE SETB P1.2 P1 0 0 0 0 0 1 0 0P1 MOV P1,#075H 0 1 1 1 0 1 0 1P1 CLR P1.6 0 0 1 1 0 1 0 1P1 MOV P1,#00H 0 0 0 0 0 0 0 0P1
  • 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
  • 18. Memória 31 de julho de 2012 Minicurso: Assembly para 8051 GDESTE 18 7F 30 RAM de propósito geral 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 10 21 0F 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F 18 Banco 3 17 10 Banco 2 0F 08 Banco 1 07 00 Banco 0 Localizaçãodosbitsendereçáveis RAM
  • 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
  • 21. Outros registros Acumulador; Registrador B; Registro dos temporizadores; Registro de palavra de status de programa (PSW); DPTR; SP; SBUF; PCON. 31 de julho de 2012 21Minicurso: 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