Escolar Documentos
Profissional Documentos
Cultura Documentos
Din 3
Din 2
Din 1
Din 0 WrEn
A0 A1 A2 A3
Buffer Dout 3
Buffer Dout 2
Buffer Dout 1
Buffer Dout 0
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).
ULA
UC
Barramento de Dados
RAM
ROM
Portas de I/O
Timer
Interface Serial
Vantagem: flexibilidade, sistema expansvel ; Desvantagem: custo, roteamento de placa e dimenses do circuito.
Microcontrolador
UCP + Perifricos
UCP
RAM
ROM
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 - ...
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
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
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
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.
P1
P0
date
74HC373
INSTR EPROM
Latch G ADDR
EA
OE
P1
P0
date
74HC373
INSTR EPROM
80C51BH ALE P3 P2
Latch G ADDR
EA
PSEN
OE
P1
P0
date
74HC373
INSTR EPROM
Latch G ADDR
OE
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
Latch G ADDR
OE CE
RD
WR DATA RAM
ADDR DECODER
ADDR CE WR RD
1110 1010 0010 0101 0011 0010 1000 0101 1110 0000 0011 0010 1000 0000
EA 25 32 85 E0 32 80 ....
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
RL A
Rn
- registrador de R0 a R7.
MOV A,Rn
3 bits Operando
Instruo
endereo
REGISTRADOR R0 R1 R2 R3 R4 R5 R6 R7
ADD A,Rn
3 bits Operando
Instruo
ADD A,direct
8 bits
endereo
Cdigo Hexadecimal EA 25 , 32
ADD
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
; via registrador -- ADD A,R7 ; direto -- ADD A,7FH ; indireto -- ADD A,@R0 ; registrador especfico ; imediato -- ADD A,#127 ; indexado
Modos de Endereamento
- 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
Exerccio
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
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
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
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
MOVX @DPTR, A
PSEN
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
OBS: Flag de paridade reflete qualquer alterao de contedo do acumulador; se o acumulador contm nro mpar de 1s, P=1.