62
1 Prof. José Wilson Lima Nerys 1 Microprocessadores MICROPROCESSADORES E MICROCONTROLADORES José Wilson Lima Nerys www.emc.ufg.br/~jwilson [email protected] [email protected] Parte 1

1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

1Prof. José Wilson Lima Nerys1 Microprocessadores

MICROPROCESSADORES E

MICROCONTROLADORES

José Wilson Lima Nerys

www.emc.ufg.br/~jwilson

[email protected]

[email protected]

Parte 1

Page 2: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

2Prof. José Wilson Lima Nerys2 Microprocessadores

Charge publicada no Jornal "The Electrical World 1893 na ocasião do Congresso Internacional de Engenharia Elétrica,

realizado em Chicago, em 21 de agosto de 1893.

Já se passaram pouco mais de 120 anos

Page 3: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

3Prof. José Wilson Lima Nerys3 Microprocessadores

Quais são as possibilidades para daqui 50 anos?(comunicação, transporte, medicina...)

Page 4: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

4Prof. José Wilson Lima Nerys4 Microprocessadores

Quais são as possibilidades para daqui 50 anos?(comunicação, transporte, medicina...)

Page 5: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

5Prof. José Wilson Lima Nerys5 Microprocessadores

O que eles têm em

comum?

Page 6: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

6Prof. José Wilson Lima Nerys6 Microprocessadores

Micro

proc

essa

dore

s

Micro

cont

rolado

res

Page 7: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

7Prof. José Wilson Lima Nerys7 Microprocessadores

Linha do Tempo

Ábaco(4000 ac)

Octograma chinês

(4000 ac)

LogaritmoJohn NapierTabela de Logaritmo

(1614)

Calculadora de 4 funções

de Leibniz(1671)

Computadores Z1, Z2 e Z3

(1936)

Máquina de diferenças e

Analítica(Babbage)

(1822)

PascalineCalculadora de Blaise Pascal

(1642)

Tear automático com cartão perfurado

(1801)

Computador ColossoVálvulas

(Alan Turing)(1943)

Máquina de Von Newman

Programa armazenado

(1946)

IBM 7090Transistores

FortranCobolPascal(1960)

Page 8: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

8Prof. José Wilson Lima Nerys8 Microprocessadores

Linha do Tempo

40044 bits(1971)

80088 bits(1972)

80808 bits(1974)

808616 bits(1978)

80518 bits(1980)

Atmel AVR8 bits(1996)

Pentium 200MMX64 bits(1997)

Raspberry pi(ARM)32 bits(2011)

80858 bits(1976)

808816 bits(1979)

PIC8 bits(1985)

Arduíno(Atmel AVR)

8 bits(2005)

ARM32 bits(1983)

ESP 32(Espressif)

32 bits(2016)

Page 9: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

9Prof. José Wilson Lima Nerys9 Microprocessadores

Evolução dos Processadores

Page 10: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

10Prof. José Wilson Lima Nerys10 Microprocessadores

Evolução dos Processadores

Page 11: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)
Page 12: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

12Prof. José Wilson Lima Nerys12 Microprocessadores

Quantidade de Transistores

8085 (1976) 3.600 transistores (5 MHz)370.000 instruções/segundo8 bits.

Dual Core (2007): 820 milhões de transistores53.000 milhões de instruções/segundo64 bits. Tecnologia: 45 nm. 3,33 GHz

Page 13: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

13Prof. José Wilson Lima Nerys13 Microprocessadores

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Quantidade de Transistores

2 transistores por bit

Quanto maior o número de transistores, maior a quantidade possível de registradores

Aumento no desempenho

Page 14: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

14Prof. José Wilson Lima Nerys14 Microprocessadores

Registradores

Os microprocessadores possuem diversos

registradores.

Eles são usados para o armazenamento interno

da CPU.

Existem diversos registradores na CPU e o

principal deles é chamado de Acumulador.

Os registradores são construídos com flip-flops,

que podem reter (armazenar) dados.

Page 15: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

15Prof. José Wilson Lima Nerys15 Microprocessadores

Unidade Lógica e Aritmética (ULA ou ALU) - realiza funções básicas

de processamento de dados (adição, subtração, funções lógicas, etc.).

Page 16: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

16Prof. José Wilson Lima Nerys16 Microprocessadores

Page 17: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

17Prof. José Wilson Lima Nerys17 Microprocessadores

Bit 3 Bit 2 Bit 1 Bit 01 nibble

Menor valor posi�vo 0 0 0 0 0

0 0 0 1 1

0 0 1 0 2

0 0 1 1 3

… … … …

Maior valor posi�vo 1 1 1 1 15

Capacidade: 24 = 16 nibbles

Decimal

0

1

2

3

F

Hexa

Número de bits dos Registradores

Quanto maior o número de bits dos registradores, maior a capacidade de processar informações, então maior o desempenho.

Page 18: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

18Prof. José Wilson Lima Nerys18 Microprocessadores

Bit 3 Bit 2 Bit 1 Bit 0Bit 7 Bit 6 Bit 5 Bit 41 byte

Menor valor posi�vo 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 0

0 0 0 0 0 0 1 1

… … … … … … … …

Maior valor posi�vo 1 1 1 1 1 1 1 1

0

1

2

3

255

Decimal

Capacidade: 28 = 256 bytes

00

01

02

03

FF

Hexa1 byte = 8 bits

Intervalo dos valores positivos e negativos (notação com sinal): 0 a 127 = 00h a 7Fh e -1 a -128 = FFh a 80h

Número de bits dos Registradores

Page 19: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

19Prof. José Wilson Lima Nerys19 Microprocessadores

Frequência de ClockAno Processador Frequência de Clock

Tecnologia(tamanho transistor)

1971 4004 108 kHz 10 µm

1972 8008 200 kHz

1976 8085 5 MHz

1978 8086 5 a 10 MHz

1979 8088 5 a 10 MHz

1989 80486 25 a 50 MHz

1997 Pen�um II 450 MHz 0,25 µm

1999 Pen�um III 500 MHz até 1,2 GHz 0,25 µm

2004Pen�um 4 (Presco*)

4 GHz 90 nm

2007 Core 2 3,33 GHz 45 nm

2010 Core i5 3,33 GHz 32 nm

Aum

ento

do d

ese

mpenho

Page 20: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

20Prof. José Wilson Lima Nerys20 Microprocessadores

Arquitetura RISC

Arquitetura CISCComplex Instruc�on Set Compu�ng (Computador com Conjunto Complexo de Instruções)

Reduced Instruc�on Set Compu�ng (Computador com Conjunto Reduzido de Instruções)

Page 21: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

21Prof. José Wilson Lima Nerys21 Microprocessadores

RISC CISC

Instruções básicas executadas em apenas 1ciclo – uso intenso de superposição na execução de instruções (através de pipeline)

No mínimo 4 ciclos de clock (8085) para executar uma instrução. Tem pouca ou nenhuma superposição na execução de instruções

Uso reduzido da memória – basicamente 2 instruções de acesso à memória (load/store).

Muitas instruções com acesso à memória. Uso intenso da memória (load, store, mov... )

Instruções de tamanho fixo. Exemplo: as instruções do PIC 16F628 têm tamanho fixo de 14 bits.

Instruções de tamanho variável. Exemplo: 8085 tem instruções de 1, 2 e 3 bytes.

Muitos registradores.Exemplo: PIC Fpico possui de 32 a 128 registradores.

Poucos registradores.Exemplo: 8085 possui 7 registradores de propósito geral (A, B, C, D, E, H e L)

Não há necessidade de decodificação das instruções antes de executá-las.As instruções são semelhantes às micro-instruções da arquitetura CISC. As instruções são executadas diretamente no hardware

Ciclo de busca inclui busca na memória e iden�ficação em decodificadores.Uso de micro-instruções gravadas no processador. Necessidade de interpretação das instruções

Instruções simples – 1 ciclo para execução Instruções complexas – múl�plos ciclos para execução.

Número pequeno (ou médio de instruções).Exemplo: PIC 12 e PIC 16 possuem 32 instruções.

Número elevado de instruções.Exemplo: 8085 possui cerca de 74 instruções, que resultam em cerca 255 códigos de operação (opcodes)

Algumas Características RISC X CISC:

Page 22: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

22Prof. José Wilson Lima Nerys22 Microprocessadores

Índice de Desempenho de um Microprocessador(velocidade de processamento)

1. Aumento da frequência de clock

2. Aumento do número interno de bits

3. Aumento do número externo de bits

4. Aumento da capacidade e velocidade da memória cache

5. Redução do número de ciclos para execução de cada instrução

6. Execução de instruções em paralelo

Page 23: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

23Prof. José Wilson Lima Nerys23 Microprocessadores

Desempenho RISC X CISC:

Page 24: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

24Prof. José Wilson Lima Nerys24 Microprocessadores

Ferramentas do Curso:

1. Simulador do Microprocessador 8085: ABACUS

2. Programas aplicados ao microcontrolador 8051:

Edição e Compilação: MCU 8051 IDE

Simulação: MCU 8051 IDE e Proteus

3. Simulador do PIC – MPLAB X IDE

Page 25: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

25Prof. José Wilson Lima Nerys25 Microprocessadores

CONJUNTO DE INSTRUÇÕES:

Grupos de instruções mais comuns em processadores de qualquer arquitetura:

Instruções de desvio (No CISC o valor de retorno é guardado na pilha; no RISC é guardado em um registrador.

Instruções de transferência entre registradores e memória

(No RISC: load/store; no CISC: load, store, mov etc)

Instruções de transferência entre registradores

Instruções de transferência entre posições de memória

Operações aritméticas (soma, subtração ...)

Operações lógicas (and, or, not, rotação ...)

Page 26: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

26Prof. José Wilson Lima Nerys26 Microprocessadores

PIPELINE:

Técnica usada para acelerar a execução de instruções. A cada ciclo de clock,

enquanto uma instrução está na etapa de execução, a instrução seguinte está

sendo buscada.

O resultado global é que, a cada ciclo, uma nova instrução é iniciada e uma

instrução é encerrada.

No caso mostrado a instrução B faz referência à memória.

Ciclos 1 2 3 4 5

Busca da instrução A B C D E

Execução da instrução A B C D

Referência à memória B

Page 27: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

27Prof. José Wilson Lima Nerys27 Microprocessadores

PIPELINE:

Enquanto a instrução A precisa de apenas um ciclo para busca e um para

execução, a instrução B precisa de dois ciclos para execução.

Caso a instrução B interfira na etapa de execução da instrução C (por

exemplo, usando o mesmo registrador ou quando a instrução C precisa do

resultado da instrução B) é necessário aguardar o término da instrução B

antes de executar a instrução C.

Ciclos 1 2 3 4 5 6

Busca da instrução A B C NOP D E

Execução da instrução A B NOP C D

Referência à memória B

Page 28: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

28Prof. José Wilson Lima Nerys28 Microprocessadores

Page 29: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

29Prof. José Wilson Lima Nerys29 Microprocessadores

Arquitetura do 8085 (detalhe)

Page 30: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)
Page 31: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

31Prof. José Wilson Lima Nerys31 Microprocessadores

Arquitetura do PIC16F

Page 32: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

32Prof. José Wilson Lima Nerys32 Microprocessadores

Princípio de Funcionamento 8085

B

A

C

D

LOAD

LOAD

LOAD

LOAD

ENABLE

ENABLE

ENABLE

ENABLE

CLOCK

CLOCK

CLOCK

CLOCK

Chave de 3 estados

Page 33: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

33Prof. José Wilson Lima Nerys33 Microprocessadores

A = 15 H

Princípio de Funcionamento 8085

B

C

D

LOAD

LOAD

LOAD

LOAD

ENABLE

ENABLE

ENABLE

ENABLE

CLOCK

CLOCK

CLOCK

CLOCK

MOV D,A

D = 15 H

15 H

Page 34: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

34Prof. José Wilson Lima Nerys34 Microprocessadores

Frequência de Clock

CLK

Ciclo de Clock

2

cristalclock

ff =

8085A: fcristal

= 500 kHz a 3,125 MHz

8085A-2: fcristal

= 500 kHz a 5 MHz

Exemplo: Se fcristal

= 2 MHz � fclock

= 1 MHz

Tclock

= 1 µs

Page 35: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

35Prof. José Wilson Lima Nerys35 Microprocessadores

Ciclos de Clock, de Máquina e de Instrução

CLK

Estados T1 T2 T3 T4 T1 T2 T3

Ciclo de Máquina 1: M1 Ciclo de Máquina 2 : M2

Ciclo de Instrução

Ciclo de Instrução

Ciclo de Busca

Ciclo de Execução

Ciclo de Execução

Page 36: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

36Prof. José Wilson Lima Nerys36 Microprocessadores

Diagrama de Temporização

Estados T1 T2 T3 T4 T1 T2 T3

PC FORA PC+1→PC INST →IR PC FORA PC+1→PC INST →IR

ALE

A15-A8 PC H PC H

AD7-AD0 PC L INST PC L INST

M1 M2

CLK

Page 37: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

37Prof. José Wilson Lima Nerys37 Microprocessadores

T1 T2 T3 T4 T1 T2 T3

PC FORA PC+1→PC INST →IR SBE

PC FORA PC+1→PC INST →IR

A15-A8 PC H PC H

AD7-AD0 PC L INST PC L INST

ALE

RD\

WR\

IO-M\

M1 M2

Page 38: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

38Prof. José Wilson Lima Nerys38 Microprocessadores

Princípio de Funcionamento 8051

Se f = 12 MHz �

Se f = 11.0592 MHz �

clock

clockf

T1

=clock

clockmáquinaf

TT12

12 =×=

sMHz

Tmáquina µ112

12==

sMHz

Tmáquina µ085,10592,11

12==

Page 39: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

39Prof. José Wilson Lima Nerys39 Microprocessadores

Princípio de Funcionamento 8051

Estado S1: a próxima instrução é buscada na ROM, colocada no barramento principal e encaminhada para o registrador IR.

Estado S2: a instrução é decodificada e o PC é incrementado.

Estado S3: os operandos da instrução são preparados

Page 40: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

40Prof. José Wilson Lima Nerys40 Microprocessadores

Princípio de Funcionamento 8051

Estado S4: os operandos são enviados para os registradores temporários TMP1 e TMP2, na entrada da ULA

Estado S5: a ULA executa a instrução

Estado S6: o resultado da ULA é colocado no barramento principal e encaminhado para o registrador final.

Page 41: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

41Prof. José Wilson Lima Nerys41 Microprocessadores

Formato das Instruções do 8085

Tipo de instrução

Caracterís0cas Exemplos

1 byteO byte da instrução é o próprio Opcode (código de operação)

MOV A,CADD BRLCDCR C

2 bytesO primeiro byte é o Opcode e o segundo byte é o Dado de 8 bits necessário para a instrução

MVI A,35H ADI 05H ORI 01H

3 bytesO primeiro byte é o Opcode; o segundo e o terceiro bytes correspondem a um dado de 16 bits.

LDA 2030HSTA 2040HLXI H,2080H

Page 42: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

42Prof. José Wilson Lima Nerys42 Microprocessadores

Formato das Instruções do 8051

OPCODE

OPCODE REG

OPCODE OPERANDO

OPCODE ENDEREÇO DE 11 BITS

OPCODE ENDEREÇO DE 16 BITS

OPCODE OPERANDO 1 OPERANDO 2

1 Byte

2 Bytes

3 Bytes

Page 43: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

43Prof. José Wilson Lima Nerys43 Microprocessadores

Formato das Instruções do PIC 16F628

13 8 7 6 5 4 3 2 1 0

OPCODE d f (Endereço do registrador)

Todas as instruções tem 14 bits

Tipo 1: Operações com registradores orientadas por byte

OPCODE � Código da operação

d = 0 � o destino do resultado é o registrador W

d = 1 � o destino do resultado é o registrador f

f � Registrador de endereços de 7 bits (operando)

Page 44: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

44Prof. José Wilson Lima Nerys44 Microprocessadores

Formato das Instruções do PIC 16F628

13 10 8 7 6 5 4 3 2 1 0

OPCODE b f (Endereço do registrador)

Tipo 2: Operações com registradores orientadas por bit

OPCODE � Código da operação

b � Endereço de 3 bits

f � Registrador de endereços de 7 bits (operando)

Page 45: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

45Prof. José Wilson Lima Nerys45 Microprocessadores

Formato das Instruções do PIC 16F628

13 12 11 10 9 8 7 6 5 4 3 2 1 0

OPCODE k (literal)

Tipo 3: Operações de controle e literal

OPCODE � Código da operação

k � Indicam um valor constante ou literal

Page 46: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

46Prof. José Wilson Lima Nerys46 Microprocessadores

Formato das Instruções do PIC 16F628

13 12 11 10 9 8 7 6 5 4 3 2 1 0

OPCODE k (literal)

Tipo 4: Operações de desvio

OPCODE � Código da operação

k � Indicam um valor constante ou literal de 11 bits

Page 47: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

47Prof. José Wilson Lima Nerys47 Microprocessadores

Flags no 8085

Registrador F: Registra o estado da última operação realizada na ULA

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

S Z × AC × P × CY

Page 48: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

48Prof. José Wilson Lima Nerys48 Microprocessadores

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

S Z × AC × P × CY

Flag de Sinal: Assume valor 0 para número positivo (bit 7 = 0) e 1 para negativo (bit 7 = 1)

Flag de Zero: Assume valor 0 para número diferente de zero e 1 para número igual a zero.

Flag Auxiliar de Carry: Assume valor 1 quando há transporte

do Bit 3 para o Bit 4

Page 49: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

49Prof. José Wilson Lima Nerys49 Microprocessadores

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

S Z × AC × P × CY

Flag de Paridade: Assume valor 1 quando há uma quantidade par de dígitos 1 no acumulador. Assume valor 0 quando há uma quantidade ímpar.

Flag de Carry: Assume valor 1 quando há transporte do Bit 7 para o bit 8 (O Bit 8 é fora do acumulador)

Page 50: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

50Prof. José Wilson Lima Nerys50 Microprocessadores

Exemplo de Operação com Flag do 8085

50

Vai 1 1 1 1 1

A = 85H 1 0 0 0 0 1 0 1

B = 9CH 1 0 0 1 1 1 0 0

A � A + B 0 0 1 0 0 0 0 1

S = 0 � O último bit (bit 7) do resultado, no acumulador, é zero

Z = 0 � O resultado da operação é diferente de zero

AC = 1 � Houve um “vai 1” do bit 3 para o bit 4

P = 1 � Há uma quantidade “par” de dígitos “1” no resultado

CY = 1 � Houve um “vai 1” do bit 7 para “fora” do acumulador (bit 8)

Bit 7 Bit 6 Bit5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Page 51: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

51Prof. José Wilson Lima Nerys51 Microprocessadores

Registrador de Flags – 8051

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

CY AC F0 RS1 RS0 OV × P

ParidadeOverflowUso Geral

Auxiliar de Carry

Carry

RS1 RS0 Banco Selecionado

0 0 0

0 1 1

1 0 2

1 1 3

Page 52: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

52Prof. José Wilson Lima Nerys52 Microprocessadores

Registrador de Flags – 8051

OV � overflow � A flag de overflow é setada quando há um carry do bit 7, mas não do bit 6 ou um carry do bit 6, mas não bit 7.

A flag de overflow é útil em operações com número sinalizado representados na forma de complemento de 2. Há duas situações que resultam em OV setado:

• Se a soma de dois números positivos for maior que 7F H e menor que FFH a flag de overflow indica que o número não deve ser interpretado como número negativo.

• Se a soma de dois números negativos (bit 7 = 1) resultar em um número no intervalo de 00 H a 7F H (ou 100 H a 17F H, considerando a flag de carry, que sempre estará presente nessa situação), a flag de overflow indicará que o número não é pra ser interpretado como número positivo.

Page 53: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

53Prof. José Wilson Lima Nerys53 Microprocessadores

Registrador de Flags – 8051

Exemplos para a flag de overflow:

1. MOV A,#100 � 64H = 0 1 1 0:0 1 0 0 ADD A,#44 � 2CH = 0 0 1 0:1 1 0 0

Resultado: 144 = 90 H = 1 0 0 1:0 0 0 0 (OV = 1)

Decimal Hexadecimal 1 1 1 1

100 64H 0 1 1 0 0 1 0 0

44 2CH 0 0 1 0 1 1 0 0

144 90H 1 0 0 1 0 0 0 0

Há transporte do bit 6 para o 7, mas não há do bit 7 para o bit 8.Os dois números (64H e 2CH) são positivos na operação com sinal. Assim, o resultado deve ser interpretado como número positivo, mesmo tendo bit 7 igual a 1.

Page 54: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

54Prof. José Wilson Lima Nerys54 Microprocessadores

Registrador de Flags – 8051

Exemplos para a flag de overflow:

2. ADD,#01H (Ao resultado da operação anterior: 90H)

Resultado: 145 = 91 H = 1 0 0 1:0 0 0 1 (OV = 0)

144 90H 1 0 0 1 0 0 0 0

01 01H 0 0 0 0 0 0 0 1

145 91H 1 0 0 1 0 0 0 1

Não há transporte do bit 6 para o 7, nem do bit 7 para o bit 8.O número 90H é negativo nas operações com sinal e o número 01H é positivo. Nesse caso não há flag de overflow.

Page 55: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

55Prof. José Wilson Lima Nerys55 Microprocessadores

Pilha no 8051

Page 56: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

56Prof. José Wilson Lima Nerys56 Microprocessadores

Região de memória usada para guardar endereço de retorno e valores temporários

SP �

Endereço Mnemônico Código

2000 H LXI SP,20FFH 31 FF 20

2003 H

2004 H

xxxxx xxxxx

xxxxx xxxxx

20FF H

Instruções que usam a pilha:

CALL

RET

PUSH

POP

Interrupções

Page 57: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

57Prof. José Wilson Lima Nerys57 Microprocessadores

Transferência de dados envolve sempre um par de bytes � 16 bits

O byte mais significativo é sempre guardado primeiro na pilha

O byte menos significativo é retirado primeiro da pilha

O Ponteiro de Pilha SP aponta sempre para o topo da pilha (último valor armazenado)

Registradores utilizados � PSW � A + FlagsB � B + CD � D + EH � H + L

Page 58: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

58Prof. José Wilson Lima Nerys58 Microprocessadores

Page 59: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

59Prof. José Wilson Lima Nerys59 Microprocessadores

Pilha no 8051

Transferência de dados envolve dados de 8 bits e 16 bits.

Registradores de 16 bits, como DPTR, são guardados em duas operações PUSH e retiradas em duas operações POP

Exemplos:PUSH ACC � Guarda conteúdo do acumuladorPUSH DPH � Guarda 8 bits mais significativos do DPTRPUSH DPL � Guarda 8 bits menos significativos do DPTRPOP ACC � Recupera conteúdo do acumulador

Page 60: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

60Prof. José Wilson Lima Nerys60 Microprocessadores

Page 61: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

61Prof. José Wilson Lima Nerys61 Microprocessadores

Diferenças básicas entre o uso da Pilha no 8051 e no 8085

Caracterís0ca 8085 8051

Variação do apontador de pilha SP

SP é decrementado nas operações para guardar valores na pilha (PUSH, CALL, chamada de interrupção)

SP é incrementado nas operações para guardar valores na pilha (PUSH, CALL, chamada de interrupção)

Região da memória A região da pilha é a mesma do programa do usuário, podendo haver sobreposição

A pilha é reservada na memória RAM e o programa na memória ROM, não havendo risco de sobreposição

Tamanho do dado guardado

São movimentados 16 bits em cada operação de pilha

São movimentados 8 bits nas operações PUSH e POP e 16 bits nas operações LCALL, RET e chamadas de interrupção.

Page 62: 1 Micro Parte 1 (Conceitos Gerais) 2020 - EMC › ~jwilson › pdf › 1_Micro_Parte... · Raspberry pi (ARM) 32 bits (2011) 8085 8 bits (1976) 8088 16 bits (1979) PIC 8 bits (1985)

62Prof. José Wilson Lima Nerys62 Microprocessadores

Bibliografia

[1] ZILLER, Roberto M., “Microprocessadores – Conceitos Importantes,” Edição

do autor, Florianópolis, 2000. ISBN 85-901037-2-2

[2] MALVINO, Albert Paul, “Microcomputadores e microprocessadores;

tradução Anatólio Laschuk, revisão técnica Rodrigo Araês Farias. São

Paulo: McGraw-Hill do Brasil, 1985.

[3] NERYS, José Wilson Lima, “Notas de Aula de Microprocessadores e

Microcontroladores. Página: http://www.emc.ufg.br/~jwilson/teoria.htm