Você está na página 1de 50

EEL7030 - Microprocessadores

Prof. Raimes Moraes GpqCom EEL UFSC

Arquitetura Von Neuman de Computadores

Exemplo de RAM 16x4 74189

Din 3

Din 2

Din 1

Din 0 WrEn

Word 0 E Ck Q D E Q Ck D E Q Ck D E Q Ck D Word 1 E Ck Q D : E Ck Q D : E Q : Ck D E Q : Word 15 E Q Ck D E Q Ck D E Q Ck D E Q Ck D Ck D

A0 A1 A2 A3

Buffer Dout 3

Buffer Dout 2

Buffer Dout 1

Buffer Dout 0

Exemplo de Acesso a RAM 16x4


(Memrias geralmente armazenam palavras de oito bits)

Funes Bsicas da UCP (Unidade Central de Processamento)

Incio

Busca

Decodifica

Executa

Busca, decodifica e executa instrues; Supre sinais perifricos; de controle para memria e outros

Transfere dados da e para memria e perifricos; Atende demanda dos perifricos (interrupes).

Arquitetura simplificada de uma UCP

ULA

UC

Microprocessador de Propsito Geral


Sem RAM, ROM ou dispositivos de I/O

UCP Micropro cessador de propsito geral

Barramento de Dados

RAM

ROM

Portas de I/O

Timer

Interface Serial

Barramento de Endereo e Controle

Vantagem: flexibilidade, sistema expansvel ; Desvantagem: custo, roteamento de placa e dimenses do circuito.

Microcontrolador
UCP + Perifricos

UCP

RAM

ROM

I/O Port Timers

Porta Serial

Vantagem: menor custo, menor dimenso, rpido desenvolvimento; Desvantagem: baixa flexibilidade, no expansvel;

Microcontrolador
Mdulos: - Portas de entrada e sada - Interface Serial (CAN, SPI, USB, RF e etc) - Memrias (ROM, RAM, Flash, XRAM, etc) - Conversores Analgico/Digital e Digital/Analgico - Timers - ...

Famlia de Microcontrolador: UCP + diferentes mdulos

Escolhendo um Microcontrolador
1. Considerar: consumo, desempenho, capacidade de memria, nmero de portas de entrada e sada, encapsulamento, tamanho, interfaces de comunicao, faixa de temperatura de operao, e demais mdulos necessrios ao projeto; Custo e disponibilidade no mercado. Facilidade para upgrade (grande famlia)

2.

3. Disponibilidade de ferramentas de desenvolvimento: assemblers, debuggers, compiladores, emuladores, simuladores, suporte tcnico

8051
1980 UCP de 8 bits Clock at 12 MHz Vcc=+5V; 40 pinos; Enderea at 64 KiB (kibibyte = 1024 bytes): 1. de dados; 2. de programa; Possui pinos: Endereamento; Dados; Controle e status; Energizao e clock; e outros;

8051
Tipo de encapsulamento do 8051

8051
Caractersticas Bsicas: UCP de 8 bits; enderea 64 KiB de memria de programa externa; enderea 64 KiB de memria de dados externa; 4 KiB de memria ROM interna para programas; 128 bytes de memria RAM interna para dados; 4 portas de entrada e sada (8 pinos cada); 5 vetores de interrupo com 2 nveis de prioridade: 2 interrupes externas 2 temporizadores / contadores 1 interface serial

Alguns uC da famlia 8051 da Atmel


Device Flash (KiB) 16 16 32 32 64 32 64 32 16 64 64 32 64 16 32 32 USB EEPROM (kiB) RAM (Bytes) 512 1280 1280 1280 2304 1280 2304 1280 512 2304 2048 1280 2048 1280 512 1280 F.max (MHz) I/O Pins 20 18/34 18/34 18/34 44 34 32 34 20 34/37 32 34 32 32 32 32 UART Timers ADC AT89C5115 AT89C5130A-M AT89C5131A-L AT89C5131A-M AT89C5132 AT89C51AC2 AT89C51AC3 AT89C51CC01 AT89C51CC02 AT89C51CC03 AT89C51ED2 AT89C51IC2 AT89C51ID2 AT89C51RB2 AT89C51RC AT89C51RC2 -Yes Yes Yes Yes -----------2 1 1 1 -2 2 2 2 2 2 -2 ---40 48 48 48 20 40 60 40 40 40 60 60 60 60 33 60 1 Yes Yes Yes Yes 1 1 1 1 1 1 1 1 1 1 1 2 Yes Yes Yes Yes 3 3 2 1 2 3 3 3 3 3 3 Yes ---Yes Yes Yes Yes Yes Yes -------

8051
Interrupes Externas Controle de Interrupes ROM para memria de programa 4 KiB Entradas do contador RAM 128 bytes Timer 1 Timer 0

UCP

OSC

Controle de Barramento

4 Portas de I/O

Porta Serial

P0 P2 P1 P3 Endereo/Dados

TxD RxD

Arquitetura simplificada da UCP do 8051


INTERNAL BUS ADDRESS B ACC PROGRAM ADDRESS REGISTER TEMP 1 BUFFER PC INC ALU PC DPTR INSTRUCTION REGISTER MICROCODE Control Unit MACHINE INTERNAL CONTROL SIGNALS

CPU
AND

TEMP 2

MEMORY CONTROL

PSW

CONTROL SIGNALS

Registradores do 8051

Registrador de Flags
PSW - Program Status Word - Bit Addressable
7 CY 6 AC 5 F0 4 RS1 3 RS0 2 OV 1 F1 0 P D0H

Nome CY AC F0 RS1 RS0 OV F1 P

Localizao PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0

Descrio Carry flag Auxiliary carry flag Definido pelo usurio Bit 1 do seletor de Register Bank Bit 0 do seletor de Register Bank Overflow flag Definido pelo usurio Flag de paridade. 1 = mpar.

Conexo do 8051 com Memria de Programa Externa

P1

P0

date
74HC373

INSTR EPROM

80C51BH ALE P3 P2 PSEN

Latch G ADDR

EA

OE

P1

P0

date
74HC373

INSTR EPROM

80C51BH ALE P3 P2

Latch G ADDR

Interface do 8051 Com Memria de Programa Externa

EA

PSEN

OE

P1

P0

date
74HC373

INSTR EPROM

80C51BH ALE P3 EA P2 PSEN

Latch G ADDR

Exemplo de Leitura da Memria de Programa Externa

OE

Passos para execuo de instruo


1) No reset, endereo inicial (0000H) contido no registrador PC colocado no barramento de endereos (AD0-AD7/P0) & (A8A15/P2). PC incrementado. 2) Unidade de Controle (UC) coloca ALE (Address Latch Enable) em 1 durante 2 ciclos de clock. Colocado em 0 no restante do ciclo de leitura. Utilizado para salvar endereo em AD0AD7 no latch. 3) Unidade de Controle coloca pino PSEN em 0 .

4) Memria coloca dado no barramento de dados (AD0-AD7) 5) Valor em (AD0-AD7) transportado para decodificador de instruo (Instruction Register). Controlado por PSEN. 6) Aps decodificar a instruo, UC emite sinais de controle para executar tarefa demandada.

P1

P0

date
74HC373

INSTR EPROM

EA 80C51BH ALE P3 P2 PSEN

Latch G ADDR

OE CE

RD

WR DATA RAM

Conexo do 8051 com Memria de Programa e de Dados Externas

ADDR DECODER

ADDR CE WR RD

Leitura da Memria de Dados Externa

MEMRIA DE PROGRAMA Contm cdigos de operao (Opcodes)


ENDEREOS (HEXADECIMAL) DADOS (BINRIO) ENDEREOS (HEXADECIMAL) DADOS (HEXADECIMAL)

0000 0001 0002 0003 0004 0005 0006 ....

1110 1010 0010 0101 0011 0010 1000 0101 1110 0000 0011 0010 1000 0000

0000 0001 0002 0003 0004 0005 0006 ....

EA 25 32 85 E0 32 80 ....

Exemplo de Alocao de MEM

Mnemnicos

Descrio

Operao / Exemplo

Flags

MOV A,Rn

A =Rn

MOV A,R3

P C, OV, AC, P.

ADD A,Rn

A=A+Rn

ADD A, R7

DA A

O contedo de A convertido para nro decimal de 2 dgitos

Se [A3-0 > 9 ou AC = 1] ento (A3-0+6 ) C, Se [A7-4 > 9 ou C = 1] ento (A7-4+6 ) P

RL A

rotaciona o contedo do acumulador para a esquerda. O bit 7 carregado com bit 0.

(An+1) <= (An) (A0) <= (A7)

Rn

- registrador de R0 a R7.

Instruo 5 bits Cdigo Instruo

MOV A,Rn
3 bits Operando

Instruo

MOV A,direct (endereo)


8 bits

8 bits Cdigo Instruo

endereo

REGISTRADOR R0 R1 R2 R3 R4 R5 R6 R7

RRR 000 001 010 011 100 101 110 111

Instruo 5 bits Cdigo Instruo

ADD A,Rn
3 bits Operando

Instruo

ADD A,direct
8 bits

8 bits Cdigo Instruo

endereo

Exerccio: Obter o cdigo das instrues abaixo

MOV A,R2 ADD A,32H

Mnemnico MOV A,R2 ADD A,32H;

Cdigo Binrio 1110 1010 0010 0101 0011 0010

Cdigo Hexadecimal EA 25 , 32

Flags alterados pela instruo

ADD

P (Parity) = 1 => Se o acumulador contm nro mpar de 1s.

AC (Auxiliary Carry) = 1 => ocorreu vai um do bit 3;

CY (Carry) = 1 => ocorreu vai um do bit 7; Indica overflow na soma de inteiros sem sinal

OV (Overflow) = 1 => ocorreu vai um do bit 6, mas no do bit 7 ; ou ocorreu vai um do bit 7, mas no do bit 6. Ao somar inteiros com sinal, OV indica nro negativo resultante da soma de nros positivos ou nro. positivo resultante da soma de nros negativos.

Auxiliary Flag & BCD (Binary Coded Decimal) Instruo ADD A,Rn CY AC OV * Soma BCD Supondo flags atuais como [A]=98H; [B]=08H ADD A,B [A]=A0H; [B]=08H DA A [A]=06H; [B]=08H * * P * P 1 0 0

CY AC OV 0 0 1 0 1 1 0 0 0

Decimal-adjust Accumulator

Overflow Flag
OV (Overflow) = 1 => ocorreu vai um do bit 6, mas no do bit 7 ou ocorreu vai um do bit 7, mas no do bit 6.

CY AC OV 0 0 0 1 0 1 0 0 0 1 0 1

P 1 1 1 0

1) Supondo flags atuais como [A]=7FH; [B]=01H [A]=80H; [B]=01H ADD A,B

2) Supondo flags atuais como [A]=80H; [B]=80H (-128D) [A]=00H; [B]=80H ADD A,B

3) Supondo flags atuais como [A]=C0H; [B]=C0H (-64D) [A]=80H; [B]=C0H ADD A,B

0 1

0 0

0 0

0 1

MOV A,Rn MOV A,direct MOV A,@Ri DA A

; via registrador -- ADD A,R7 ; direto -- ADD A,7FH ; indireto -- ADD A,@R0 ; registrador especfico ; imediato -- ADD A,#127 ; indexado

Modos de Endereamento

MOV A,#data MOVC A,@A+DPTR


Rn direct

- registrador R0 a R7 do banco selecionado (PSW). - endereamento direto. Direct o endereo de uma posio da memria RAM interna ou SFR. - endereamento indireto a uma posio de memria RAM interna (Ri=R0 ou R1) ou externa (MOVX; P2 deve conter byte mais significativo do endereo da posio de memria; P0=Ri) - data um valor de 8 bits includo no corpo da instruo.

@Ri

#data

#data16 - data16 um valor de 16 bits includo no corpo da instruo.

Exerccio

1: B = N, soma = 0 2: soma = soma + B, B = B - 1 3: IF B 0 ento V_PARA 2 (?) 4: total = soma

Mnemnicos para Desvio Incondicional (2 cycles)


LJMP: Especifica endereo de 16 bits. A instruo possui 3 bytes (opcode + 16 bits de endereo).

0 0

a15 - a0

AJMP: Especifica endereo de 11 bits. A instruo possui 2 bytes (opcode + 11 bits de endereo).

a10 a9 a8 0

a7 - a0

SJMP: Especifica offset (-128 to +127) a ser somado ao PC para acessar a prxima instruo. A instruo possui 2 bytes (opcode + offset).

offset

Mnemnicos para Desvio Condicional

Descrio JZ <rel addr> Salta se A = 0 JNZ <rel addr> Salta se A != 0 JC <rel addr> Salta se C = 1 JNC <rel addr> Salta se C != 1 JB <bit>, <rel addr> Salta se bit = 1 JNB <bit>,<rel addr> Salta se bit != 1 JBC <bit>, <rel addr> Salta se bit =1, limpa bit

Mnemnico

Mnemnicos para Desvio Condicional


Mnemnico
CJNE A, direct, <rel addr> CJNE A, #data, <rel addr> CJNE Rn, #data, <rel addr> CJNE @Ri, #data, <rel addr> DJNZ Rn, <rel addr>

Descrio
Compara A e memria. Salta se no igual Compara A e dado. Salta se no igual Compara Rn e dado. Salta se no igual Compara Ri e memria. Salta se no igual Decrementa Rn e salta se no zero Decrementa memria e salta se no zero

DJNZ direct, <rel addr>

Exerccio Total EQU 20h MOV A,#0 MOV DPTR,#N MOVC A,@A+DPTR MOV B, A ; B=N ; soma = A A = 0 XRL A,Acc Loop: MOV R0,B ADD A,R0 ; soma = soma + B DJNZ B,LOOP ;B = B 1; Se B 0 ento V_PARA Loop MOV Total,A ;Total = soma FIM: JMP FIM ; Equivalente a jmp $ N: DB 5 END

Organizao da Memria
M E M RIA DE PROGRAMA FFFFh: M E M RIA DE D A DOS FFFFh:

EXTERNAL

EXTERNAL XXXXh: RAM INTERNAL RAM FFh: ADD REGISTERS REGISTERS 00h: 0000h: SFR

EA=0 EXTERNAL

EA=1 INTERNAL

0000h RESET XXXXh: = 1000h (8051) 2000h (8052) 4000h 8000h

MOVX @DPTR, A

ADD REGISTERS just in devices with 256 bytes of RAM

PSEN

RAM INTERNA FFh: 8052 MEMRIA REGISTERS 00h: SFR

Special Function Registers (SFR)

Organizao da RAM Interna

Organizao da RAM Interna

Low 128 bytes of Internal RAM 7Fh

Organizao da RAM Interna


Bit-Addressable Space

30h 2Fh

20h 11 10 01 00 1Fh 18h 17h 10h 0Fh 08h 07h 00h Reset Value of Stack Pointer 4 Banks of 8 registers R0 - R7

Acessible by Direct and Indirect Adressing

Instrues para Manipulao de Bits


Mnemnico CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,C Descrio Reseta flag CY Reseta o bit endereado Seta o flag CY Seta o bit endereado Complementa o flag CY Complementa o bit endereado AND entre o bit endereado e o flag CY AND entre o complemento do bit endereado e o flag CY OR entre o bit endereado e o flag CY OR entre o complemento do bit endereado e o flag CY Copia bit endereado para CY Copia CY para bit endereado

Instrues que afetam os flags C, OV e AC


C ADD ADDC SUBB MUL DIV DA RRC RLC CJNE X X X 0 0 X X X X OV X X X X X AC X X X

OBS: Flag de paridade reflete qualquer alterao de contedo do acumulador; se o acumulador contm nro mpar de 1s, P=1.

Você também pode gostar