Microprocessador 8051 Aula 01 Prof Afonso Ferreira Miguel
Sistemas Processados Fundamentos de computação: (cont.) Programa (Software): conjunto de instruções arranjadas de forma organizada que apresenta função específica (Ex: Programas Básicos, Aplicativos, Utilitários, etc.); Firmware: Programa que está armazenado em memória não volátil (ROM); Hardware: partes eletrônicas de um microcomputador; Microcontrolador: microcomputador integrado num único chip (microprocessador + periféricos);
Sistemas Processados Periféricos Circuitos acessórios ao computador que realizam tarefas específicas; Exemplos: Timers; CCP (Comparação, Captura e PWM); Conversores Analógico-Digital e Digital-Analógico; Portas de comunicação (USART, I2C, SPI, USB, CAN,...).
“Instruções e dados compartilham a mesma unidade física de memória” Arquiteturas von Neumann “Instruções e dados compartilham a mesma unidade física de memória” Hamacher – Computer Organization
Arquiteturas - von Neumann uP BUS AX BX CX DX tempA tempA tempA = tempB Memória A Entrada A Entrada A Entrada B Entrada B IR= MOV AX,0 MOV AX,0 MOV AX,0 IP = 1 1 MOV BX,1 MOV BX,1 Inst. Saída Z Saída Z 2 2 ADD AX,BX ADD AX,BX MA = 3 3 JMP 2 JMP 2 MD=MOV AX,0 4 4 ... . 5 4 O ... Dados 6 4 ... L 4 7 A ...
“Instruções e dados são armazenados em memórias diferentes” Arquiteturas Harvard “Instruções e dados são armazenados em memórias diferentes” Heuring – Computer Systems Disignd and Architecture Vantagem: Instruções e dados podem ser acessados simultaneamente, aumentando o desempenho!
Arquiteturas Harvard uP Memória de Programa Memória de Dados Inst. MOV AX,0 MOV AX,0 BUS IR= MOV AX,0 1 1 MOV BX,1 MOV BX,1 Inst. IP = 2 2 ADD AX,BX ADD AX,BX 3 3 JMP 2 JMP 2 IP CTRL tempA tempA tempA = tempB AX BX Memória de Dados Entrada A Entrada A Entrada B Entrada B CX DX Saída Z Saída Z 4 ... . MA = 1 4 ... O Dados 2 4 ... L MD=MOV AX,0 4 3 ... A
Instruction Set Definição: Conjunto de instruções que um processador compreende; Cada processador possui seu próprio conjunto de instruções, inviabilizando, na maioria dos casos, a portabilidade.
Tempo perdido entre uma instrução e outra Instruction Set Ciclo de execução de uma instrução em processadores seqüenciais ... Fetch 0 Fetch 1 Decod 0 Decod 1 Exec 0 Exec 1 Primeira instrução Tempo perdido entre uma instrução e outra
... Instruction Set Pipeline de Instrução Ciclo de execução de uma instrução em 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.
Instruction Set CISC – Complex Instruction Set Computing RISC Computação onde o número de instruções é muito grande; RISC Computação onde um número reduzido de instruções estão disponíveis.
Instruction Set Considerações sobre RISC e CISC Uma única instrução CISC pode equivaler a várias instruções RISC; Uma instrução CISC precisa realizar passos semelhantes aos realizados pelas RISC equivalentes (não há ganho de desempenho); CISC minimiza o número de acessos a memória de programa; RISC simplifica a decodificação de instruções, deixando esta etapa mais rápida.
Instruction Set Vantagens CISC: Apesar do conjunto de instruções ser muito grande, oferece um número maior de instruções (“ferramentas”) ao programador Assembly; Menor quantidade de instruções são necessárias para desenvolver um programa (programas ocupam menos memória).
Instruction Set Vantagens RISC: Etapa de decodificação tão simples que pode, em alguns casos, ser eliminada; Com um número menor de instruções, os parâmetros destas podem ser agregados no opcode (código de máquina de uma instrução), simplificando inclusive o FETCH. Simplificação dos circuitos eletrônicos.
Quem é melhor? RISC x CISC
Microcontrolador 8051 (MCS-51) Família INTEL MSC-51 – CISC/von Neumann Membro original é o 8051; CPU de 8 bits otimizada para aplicações de controle; Poderosa capacidade de processamento booleano, incluindo lógica individual de bits; 64 Kbytes de endereçamento de memória de programa; 64 Kbytes de endereçamento de memória de dados; 4 Kbytes de memória de programa interna.
Microcontrolador 8051 (MCS-51) Família INTEL MSC-51 128 bytes de memória RAM de dados interna; 32 linhas de I/O bidirecionais endereçáveis individualmente; 2 Timers/Contadores de 16 bits; 5 entradas de interrupções (3 internas e 2 externas) com 2 níveis de prioridade; 1 oscilador interno de clock.
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51) Pinagens
Microcontrolador 8051 (MCS-51) Organização de Memória
Microcontrolador 8051 (MCS-51) Memória de programa Externa
Microcontrolador 8051 (MCS-51) Memória de dados Interna FFh FFh FFh FFh Acessível por endereçamento Acessível por endereçamento Acessível Acessível somente somente por por direto direto ( ( SFRs SFRs : Portes, : Portes, Bits Bits de de endereçamento endereçamento indireto indireto (128 (128 bytes bytes controles dos controles dos Timers Timers , , superiores) superiores) Acumulador, Acumulador, etc etc ) ) 80h 80h 80h 80h 7Fh 7Fh Acessível por endereçamento Acessível por endereçamento direto e indireto (128 direto e indireto (128 bytes bytes inferiores) inferiores) 00h 00h
Microcontrolador 8051 (MCS-51) 128 bytes inferiores da RAM
Microcontrolador 8051 (MCS-51) 128 bytes inferiores da RAM
Microcontrolador 8051 (MCS-51) 128 bytes inferiores da RAM
Microcontrolador 8051 (MCS-51) 128 bytes inferiores da RAM
Microcontrolador 8051 (MCS-51) Program Status Word
Microcontrolador 8051 (MCS-51) Registradores de Funções Especiais (SFRs)
Microcontrolador 8051 (MCS-51) Regs de Funções Especiais (SFRs)
Microcontrolador 8051 (MCS-51) Modos de endereçamento Particular On-chip Resources: This includes the Accumulator (A), the Stack Pointer (SP), the Data Pointer (DP), the Program Counter (PC), and the Carry (C). Other On-chip Registers are Memory-mapped while these have special Op-codes. Immediate operands: The # sign is the designator. These are 8-bits except for DPTR contents (16-bits). Register operands: Designated as Rn, where n is 0..7. One of the four Register Banks is used (PSW selected).
Microcontrolador 8051 (MCS-51) Modos de endereçamento Direct Operands: From 00 to FF Hex, specifies one of the internal data addresses. Indirect Address: Designated as @Ri, where i is 0 or 1, uses the contents of R0 or R1 in the selected Register Bank to specify the address. Other form is @A, using Accumulator contents.
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51)
Microcontrolador 8051 (MCS-51) Ferramentas de desenvolvimento IAR
Microcontrolador 8051 (MCS-51) Portas de IO Four 8-bit I/O ports; Most have alternate functions; Quasi-bidirectional: Soft pull-up when port latch contains a 1. Can be used as inputs (30kohm average pull-up).
Microcontrolador 8051 (MCS-51) Porta P0 As an I/O port: No strong pull-up, outputs act as open drain. As a multiplexed data bus: Tristate bus with strong pull-ups. 8-bit instruction bus, strobed by PSEN. Low byte of address bus, strobed by ALE. 8-bit data bus, strobed by WR and RD. 3.2 mA outputs (about 8 LS-TTL loads).
Microcontrolador 8051 (MCS-51) Porta P1 As an I/O port: Standard quasi-bidirectional. Alternate functions: Only on some derivatives. 1.6 mA outputs (about 4 LS-TTL loads).
Microcontrolador 8051 (MCS-51) Porta P2 As an I/O port: Standard quasi-bidirectional. Alternate functions: High byte of address bus for external program and data memory accesses. 1.6 mA outputs (about 4 LS-TTL loads).
Microcontrolador 8051 (MCS-51) Porta P3 As an I/O port: Standard quasi-bidirectional. Alternate functions: Serial I/O - TXD, RXD Timer clocks - T0, T1 Interrupts - INT0, INT1 Data memory - RD, WR 1.6 mA outputs (about 4 LSTTL loads).
Microcontrolador 8051 (MCS-51) Valores após o RESET REGISTRO VALOR PC 0000 H TMOD 00 H ACC TCON B TH0 PSW 00H TL0 SP 07 H TH1 DPTR TL1 P0 a P3 FF H ou 11111111 B SCON IP 0XX00000 B SBUF indeterminado IE PCON (CMOS) 0XXX0000 B
Microcontrolador 8051 (MCS-51) Ligando o 8051 – Circuito de RESET típico
Microcontrolador 8051 (MCS-51) Ligando o 8051 – Clock