Post on 18-Apr-2015
Microprocessador 8051Microprocessador 8051Aula 01Aula 01
Prof Afonso Ferreira MiguelProf Afonso Ferreira Miguel
Sistemas ProcessadosSistemas Processados
Fundamentos de computação: (cont.)Fundamentos de computação: (cont.)
ProgramaPrograma (Software): conjunto de instruções arranjadas (Software): conjunto de instruções arranjadas de forma organizada que apresenta função específica de forma organizada que apresenta função específica (Ex: Programas Básicos, Aplicativos, Utilitários, etc.);(Ex: Programas Básicos, Aplicativos, Utilitários, etc.);
FirmwareFirmware: Programa que está armazenado em memória : Programa que está armazenado em memória não volátil (ROM);não volátil (ROM);
HardwareHardware: partes eletrônicas de um microcomputador;: partes eletrônicas de um microcomputador; MicrocontroladorMicrocontrolador: microcomputador integrado num único : microcomputador integrado num único
chip (microprocessador + periféricos);chip (microprocessador + periféricos);
Sistemas ProcessadosSistemas Processados
PeriféricosPeriféricos Circuitos acessórios ao computador que Circuitos acessórios ao computador que
realizam tarefas específicas;realizam tarefas específicas; Exemplos:Exemplos:
• Timers;Timers;• CCP (Comparação, Captura e PWM);CCP (Comparação, Captura e PWM);• Conversores Analógico-Digital e Digital-Analógico;Conversores Analógico-Digital e Digital-Analógico;• Portas de comunicação (USART, I2C, SPI, USB, Portas de comunicação (USART, I2C, SPI, USB,
CAN,...).CAN,...).
ArquiteturasArquiteturas
von Neumannvon Neumann
““Instruções e dados compartilham a mesma Instruções e dados compartilham a mesma unidade física de memória”unidade física de memória”
Hamacher – Computer OrganizationHamacher – Computer Organization
Arquiteturas - von NeumannArquiteturas - von Neumann
A
AX
BX
CX
DXtempA tempB
IR=MOVAX,0
MA = 0
MD=MOVAX,0
BU
S
Entrada B
Saída Z
Entrada A Entrada B
Saída Z
Entrada A MOV AX,0
MOV BX,1
ADD AX,BX
JMP 2
0
1
2
3
MOV AX,0
MOV BX,1
ADD AX,BX
JMP 2
0
1
2
3
...4 .4
Memória
IP = 0
uP
tempA= 0tempA
...4 O5
...4 L6
...4 A7
Inst.
Dados
ArquiteturasArquiteturas
HarvardHarvard
““Instruções e dados são armazenados em Instruções e dados são armazenados em memórias diferentes”memórias diferentes”
Heuring – Computer Systems Disignd and ArchitectureHeuring – Computer Systems Disignd and Architecture
Vantagem: Instruções e dados podem ser acessados simultaneamente, aumentando o desempenho!
ArquiteturasArquiteturas HarvardHarvard
AX
BX
CX
DX
tempA tempB
IR=MOVAX,0
MA = 0
MD=MOVAX,0
BU
S
Entrada B
Saída Z
Entrada A Entrada B
Saída Z
Entrada A
MOV AX,0
MOV BX,1
ADD AX,BX
JMP 2
0
1
2
3
MOV AX,0
MOV BX,1
ADD AX,BX
JMP 2
0
1
2
3
...4 .0
Memória de
Programa
IP = 0
uP
tempA= 0tempA
...4 O1
...4 L2
...4 A3
Inst.
Dados
Memória de Dados
IP CTRL
InstructionInstruction Set Set
DefiniçãoDefinição: Conjunto de instruções que um : Conjunto de instruções que um processador compreende;processador compreende;
Cada processador possui seu próprio Cada processador possui seu próprio conjunto de instruções, inviabilizando, na conjunto de instruções, inviabilizando, na maioria dos casos, a portabilidade.maioria dos casos, a portabilidade.
InstructionInstruction Set Set
Ciclo de execução de uma instrução em Ciclo de execução de uma instrução em processadores seqüenciaisprocessadores seqüenciais
Fetch 0
Decod 0
Exec 0
Fetch 1
Decod 1
Exec 1
...
Primeira instrução
Tempo perdido entre uma
instrução e outra
InstructionInstruction Set Set
PipelinePipeline de Instrução de Instrução Ciclo de execução de uma instrução em Ciclo de execução de uma instrução em
processadores seqüenciais com Pipeline.processadores seqüenciais com Pipeline.
...Fetch 0
Dec 0
Exec 0
Fetch 1
Dec 1
Exec 1
Fetch 2
Dec 2
Exec 2
Fetch 3
Dec 3
Exec 3
Na maioria das vezes, uma instrução é executada imediatamente após a outra.
InstructionInstruction Set Set
CISC – CISC – Complex Instruction Set ComputingComplex Instruction Set Computing
Computação onde o número de instruções é Computação onde o número de instruções é muito grande;muito grande;
RISCRISC Computação onde um número reduzido de Computação onde um número reduzido de
instruções estão disponíveis.instruções estão disponíveis.
InstructionInstruction Set Set
Considerações sobre RISC e CISCConsiderações sobre RISC e CISC Uma única instrução CISC pode equivaler a Uma única instrução CISC pode equivaler a
várias instruções RISC;várias instruções RISC; Uma instrução CISC precisa realizar passos Uma instrução CISC precisa realizar passos
semelhantes aos realizados pelas RISC semelhantes aos realizados pelas RISC equivalentes (não há ganho de desempenho);equivalentes (não há ganho de desempenho);
CISC minimiza o número de acessos a CISC minimiza o número de acessos a memória de programa;memória de programa;
RISC simplifica a decodificação de instruções, RISC simplifica a decodificação de instruções, deixando esta etapa mais rápida.deixando esta etapa mais rápida.
InstructionInstruction Set Set
Vantagens CISC:Vantagens CISC: Apesar do conjunto de instruções ser muito Apesar do conjunto de instruções ser muito
grande, oferece um número maior de grande, oferece um número maior de instruções (“ferramentas”) ao programador instruções (“ferramentas”) ao programador AssemblyAssembly;;
Menor quantidade de instruções são Menor quantidade de instruções são necessárias para desenvolver um programa necessárias para desenvolver um programa (programas ocupam menos memória).(programas ocupam menos memória).
InstructionInstruction Set Set
Vantagens RISC:Vantagens RISC: Etapa de decodificação tão simples que pode, Etapa de decodificação tão simples que pode,
em alguns casos, ser eliminada;em alguns casos, ser eliminada; Com um número menor de instruções, os Com um número menor de instruções, os
parâmetros destas podem ser agregados no parâmetros destas podem ser agregados no opcodeopcode (código de máquina de uma (código de máquina de uma instrução), simplificando inclusive o FETCH.instrução), simplificando inclusive o FETCH.
Simplificação dos circuitos eletrônicos.Simplificação dos circuitos eletrônicos.
Quem é melhor?Quem é melhor?
RISC x CISCRISC x CISC
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Família INTEL MSC-51 – CISC/von NeumannFamília INTEL MSC-51 – CISC/von Neumann Membro original é o 8051;Membro original é o 8051; CPU de 8 bits otimizada para aplicações de controle;CPU de 8 bits otimizada para aplicações de controle; Poderosa capacidade de processamento booleano, Poderosa capacidade de processamento booleano,
incluindo lógica individual de bits;incluindo lógica individual de bits; 64 Kbytes de endereçamento de memória de 64 Kbytes de endereçamento de memória de
programa;programa; 64 Kbytes de endereçamento de memória de dados;64 Kbytes de endereçamento de memória de dados; 4 Kbytes de memória de programa interna.4 Kbytes de memória de programa interna.
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Família INTEL MSC-51Família INTEL MSC-51 128 bytes de memória RAM de dados interna;128 bytes de memória RAM de dados interna; 32 linhas de I/O bidirecionais endereçáveis 32 linhas de I/O bidirecionais endereçáveis
individualmente;individualmente; 2 Timers/Contadores de 16 bits;2 Timers/Contadores de 16 bits; 5 entradas de interrupções (3 internas e 2 5 entradas de interrupções (3 internas e 2
externas) com 2 níveis de prioridade;externas) com 2 níveis de prioridade; 1 oscilador interno de clock.1 oscilador interno de clock.
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)Philips/Signetics 8051 Family
Product Name Process ROM RAM Pins 8-bit Ports Serial I/O Timers Special
8031/51 NMOS 4K 128 40 4 UART 2 Industry Standard
8032/52 NMOS 8K 256 40 4 UART 3 Industry Standard
8XC751 CEPROM 2K 64 24 2+3/8 I2C 1 24 Pin Skinny DIP
8XC752 CEPROM 2K 64 28 2+5/8 I2C 1 8-bit A/D,PWM
8XC31/51 CEPROM 4K 128 40 4 UART 2 20,24, 30MHz
8XCL410 SACMOS 4K 128 40 4 I2C 2 LowVolt/Power (1.8 volts)
80/3C851 EEPROM 4K 128 40 4 UART 2 256 EEPROM
8XC550 CEPROM 4K 128 40 4 UART 2 8-bit A/D, WD
8XC451 CEPROM 4K 128 68 7 UART 2 7 I/O Ports
8XC652 CEPROM 8K 256 40 4 UART,I2C 2 8K ROM, I2C Serial Bus
8XC52 CEPROM 8K 256 40 4 UART 3 Industry Standard
8XC053/054 CEPROM 8K/16k 192 42 4 -- 2 TV Display (OSD), D/A
8XC562 CEPROM 8K 256 68 6 UART 4 8-bit A/D, PWM, WD, T2
8XC552 CEPROM 8K 256 68 6 UART,I2C 4 10-bit A/D, PWM, WD, T2
8XC654 CEPROM 16K 256 40 4 UART,I2C 2 16K ROM, I2C Serial Bus
8XC524 CEPROM 16K 512 40 4 UART, I2C 3 16K, 512 bytes, WD
8XC528 CEPROM 32K 512 40 4 UART,I2C 3 32K ROM, 512 RAM, WD
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
PinagensPinagens
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Organização Organização de Memóriade Memória
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Memória de programa ExternaMemória de programa Externa
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Memória de dados InternaMemória de dados Interna
FFh
Acessível somentepor endereçamento indireto (128 bytes
superiores)80h
FFh
Acessível por endereçamento direto (SFRs: Portes, Bits de
controles dosTimers, Acumulador,etc)
80h7Fh
Acessível por endereçamento direto e indireto (128 bytes
inferiores)00h
FFh
Acessível somentepor endereçamento indireto (128 bytes
superiores)80h
FFh
Acessível por endereçamento direto (SFRs: Portes, Bits de
controles dosTimers, Acumulador,etc)
80h
7Fh
Acessível por endereçamento direto e indireto (128 bytes
inferiores)00h
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
128 bytes 128 bytes inferiores inferiores da RAMda RAM
7Fh Endereçamento por byte30h
07h R7Banco 0
00Hh R0
0Fh R7Banco 1
08h R0
17h R7Banco 2
10h R0
1Fh R7Banco 3
18h R0
2Fh Endereçável por bit e/ou byte
20h
Valor inicial do SP (Stack Pointer: ponteiro de pilha) após um sinal de Reset.
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Program Status WordProgram Status Word
bits 7 6 5 4 3 2 1 0
(PSW) = C AC F0 RS1 RS0 OV - P
RS1 RS0 Banco Selecionado Registradores Selecionados Endereços de Memória Selecionados0 0 0 R0 a R7 00h a 07h0 1 1 R0 a R7 08h a 0Fh1 0 2 R0 a R7 10h a 17h1 1 3 R0 a R7 18h a 1Fh
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Registradores Registradores de Funções de Funções Especiais Especiais ((SFRsSFRs))
Registradores Endereço Nome dos RegistradoresA ou ACC E0h AcumuladorB* F0h Registrador BDPL 82h Byte menos significativo do Ponteiro de DadosDPH 83h Byte mais significativo do Ponteiro de DadosIE* A8h Habilitador de InterrupçõesIP B8h Priorizador de InterrupçõesSCON* 98h Controlador da Comunicação SerialSBUF 99h Buffer de Dados SerialPSW* D0h Palavra de Status de ProgramaPCON 87h Controle de PotênciaTCON* 88h Controle do Timer/ContadorTMOD 89h Modo de operação de Timer/ContadorTH0 8Ch Byte mais significativo do Timer/Contador 0TL0 8Ah Byte menos significativo do Timer/Contador 0TH1 8Dh Byte mais significativo do Timer/Contador 1TL1 8Bh Byte menos significativo do Timer/Contador 1P0* 80h Porte 0P1* 90h Porte 1P2* A0h Porte 2P3* B0h Porte 3
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Regs de Regs de Funções Funções Especiais Especiais ((SFRsSFRs))
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Modos de endereçamentoModos de endereçamento Particular On-chip ResourcesParticular On-chip Resources: This includes the : This includes the
Accumulator (A), the Stack Pointer (SP), the Data Accumulator (A), the Stack Pointer (SP), the Data Pointer (DP), the Program Counter (PC), and the Pointer (DP), the Program Counter (PC), and the Carry (C). Other On-chip Registers are Memory-Carry (C). Other On-chip Registers are Memory-mapped while these have special Op-codes.mapped while these have special Op-codes.
Immediate operandsImmediate operands: The # sign is the designator. : The # sign is the designator. These are 8-bits except for DPTR contents (16-bits).These are 8-bits except for DPTR contents (16-bits).
Register operandsRegister operands: Designated as Rn, where n is : Designated as Rn, where n is 0..7. One of the four Register Banks is used (PSW 0..7. One of the four Register Banks is used (PSW selected).selected).
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Modos de endereçamentoModos de endereçamento Direct OperandsDirect Operands: From 00 to FF Hex, : From 00 to FF Hex,
specifies one of the internal data addresses.specifies one of the internal data addresses.
Indirect AddressIndirect Address: Designated as @Ri, where : Designated as @Ri, where i is 0 or 1, uses the contents of R0 or R1 in i is 0 or 1, uses the contents of R0 or R1 in the selected Register Bank to specify the the selected Register Bank to specify the address. Other form is @A, using address. Other form is @A, using Accumulator contents.Accumulator contents.
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Instruction Set : Arithmetic
Mnemonics Operands Bytes/Cycles
ADD A, Rn 1/1
ADDC A, direct 2/1
SUBB A, @Ri 1/1
A, #data 2/1
INC A 1/1
DEC Rn 1/1
direct 2/1
@Ri 1/1
INC DPTR 1/2
MUL AB 1/4
DIV AB 1/4
DA A 1/1
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)Instruction Set : Logic
Mnemonic Operands Bytes/Cycles
ANL A, Rn 1/1
ORL A, direct 2/1
XRL A, @Ri 1/1
A, #data 2/1
direct, A 2/1
direct, #data 3/2
C, bit 2/2
C, /bit 2/2
CLR A 1/1
CPL C 1/1
bit 2/1
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Instruction Set : Logic (cont'd)
Mnemonic Operands Bytes/Cycles
RL A 1/1
RLC A 1/1
RR A 1/1
RRC A 1/1
SWAP A 1/1
SETB C 1/1
CLR bit
CPL
2/1
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Instruction Set : Data Transfer
Mnemonic Operands Bytes/Cycles
MOV A, Rn 1/1
A, direct 2/1
A, @Ri 1/1
A, #data 2/1
Rn, A 1/1
Rn , direct 2/2
Rn, #data 2/1
direct, A 2/1
direct, Rn 2/2
direct, direct 3/2
direct, @Ri 2/2
direct, #data 3/2
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Instruction Set : Data Transfer (cont'd)
Mnemonic Operands Bytes/Cycles
MOV @Ri, A 1/1
@Ri, direct 2/2
@Ri, #data 2/1
DPTR, #data16 3/2
C, bit 2/1
bit, C 2/2
MOVX A,@DPTR 1/2
@DPTR,A 1/2
A,@Ri 1/2
@Ri,A 1/2
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Instruction Set: Data Transfer (cont'd)
Mnemonic Operands Bytes/Cycles
MOVC A, @A+DPTR 1/2
A, @A+PC 1/2
PUSH direct 2/2
POP direct 2/2
XCH A, Rn 1/1
A, direct 2/1
A, @Ri 1/1
XCHD A, @Ri 1/1
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Instruction Set : Branching
Mnemonic Operands Bytes/Cycles
LCALL addr16 3/2
ACALL addr11 2/2
RET - 1/2
RETI - 1/2
LJMP addr16 3/2
AJMP addr11 2/2
SJMP rel 2/2
JMP @A+DPTR 1/2
JZ rel 2/2
JNZ rel 2/2
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Instruction Set : Branching (cont'd)
Mnemonic Operands Bytes/Cycles
CJNE A, direct, rel 3/2
A, #data, rel 3/2
Rn, #data, rel 3/2
@Ri,#data,rel 3/2
DJNZ Rn, rel 2/2
direct, rel 3/2
NOP - 1/1
JC rel 2/2
JNC rel 2/2
JB bit, rel 3/2
JNB bit, rel 3/2
JBC bit, rel 3/2
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Ferramentas de desenvolvimento IARFerramentas de desenvolvimento IAR
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Portas de IOPortas de IO Four 8-bit I/O ports;Four 8-bit I/O ports; Most have alternate functions;Most have alternate functions; Quasi-bidirectional:Quasi-bidirectional:
• Soft pull-up when port latch contains a Soft pull-up when port latch contains a 1. Can be used as inputs (30kohm 1. Can be used as inputs (30kohm average pull-up).average pull-up).
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Porta P0Porta P0 As an I/O port:As an I/O port:
• No strong pull-up, outputs act as open drain.No strong pull-up, outputs act as open drain.
As a multiplexed data bus:As a multiplexed data bus:• Tristate bus with strong pull-ups.Tristate bus with strong pull-ups.• 8-bit instruction bus, strobed by PSEN.8-bit instruction bus, strobed by PSEN.• Low byte of address bus, strobed by ALE.Low byte of address bus, strobed by ALE.• 8-bit data bus, strobed by WR and RD.8-bit data bus, strobed by WR and RD.
3.2 mA outputs (about 8 LS-TTL loads).3.2 mA outputs (about 8 LS-TTL loads).
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Porta P1Porta P1 As an I/O port:As an I/O port:
• Standard quasi-bidirectional.Standard quasi-bidirectional.
Alternate functions:Alternate functions:• Only on some derivatives.Only on some derivatives.
1.6 mA outputs (about 4 LS-TTL loads).1.6 mA outputs (about 4 LS-TTL loads).
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Porta P2Porta P2 As an I/O port:As an I/O port:
• Standard quasi-bidirectional.Standard quasi-bidirectional.
Alternate functions:Alternate functions:• High byte of address bus for external program and High byte of address bus for external program and
data memory accesses.data memory accesses.
1.6 mA outputs (about 4 LS-TTL loads).1.6 mA outputs (about 4 LS-TTL loads).
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Porta P3Porta P3 As an I/O port:As an I/O port:
• Standard quasi-bidirectional.Standard quasi-bidirectional.
Alternate functions:Alternate functions:• Serial I/OSerial I/O - TXD, RXD- TXD, RXD• Timer clocksTimer clocks - T0, T1- T0, T1• InterruptsInterrupts - INT0, INT1- INT0, INT1• Data memoryData memory - RD, WR- RD, WR
1.6 mA outputs (about 4 LSTTL loads).1.6 mA outputs (about 4 LSTTL loads).
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Valores após Valores após o RESETo RESET
REGISTRO
VALOR REGISTRO VALOR
PC 0000 H TMOD 00 H
ACC 00 H TCON 00 H
B 00 H TH0 00 H
PSW 00H TL0 00 H
SP 07 H TH1 00 H
DPTR 0000 H TL1 00 H
P0 a P3 FF H ou 11111111 B
SCON 00 H
IP 0XX00000 B
SBUF indeterminado
IE 00 H PCON (CMOS)
0XXX0000 B
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Ligando o 8051 – Circuito de RESET típicoLigando o 8051 – Circuito de RESET típico
Microcontrolador 8051 (MCS-51)Microcontrolador 8051 (MCS-51)
Ligando o 8051 – ClockLigando o 8051 – Clock