MICROPROCESSADORES E MICROCONTROLADORES Microprocessador8085 José Wilson Lima Nerys jwilson@eee.ufg.br Goiânia, 2009 1 1 Microprocessador 8085
Evolução de Conhecimentos até Microprocessadores 2 2 Microprocessador 8085
Materiais Elétricos Estudo de materiais isolantes, condutores e semicondutores características. P N Junção PN Diodo P P N P N Transistores de Junção PNP e NPN N P N 3 3 Microprocessador 8085
Eletrônica Aplicações de Diodos e Transistores retificadores, amplificadores, ceifadores, filtros, multivibradores biestáveis. 4 4 Microprocessador 8085
Sistemas Digitais Sistemas de numeração e códigos binários. Portas Lógicas. Álgebra Booleana. Circuitos lógicos combinacionais. Codificadores, decodificadores, multiplexadores e demultiplexadores. Aritmética binária. Circuitos lógicos seqüenciais (contadores e registradores). Flip-flop Porta NAND 5 5 Microprocessador 8085
Contadores Registradores Flip-flops Microprocessador Somadores Codificadores Decodificadores 6 6 Microprocessador 8085
Estrutura Básica de Um Computador 7 7 Microprocessador 8085
CPU 8 8 Microprocessador 8085
Microprocessador É a CPU de um computador construído num único Circuito Integrado. Contém essencialmente a unidade de controle, a unidade lógica e aritmética e registradores. Precisa de periféricos tais como memória e unidade de entrada e saída, para a formação de um sistema mínimo. CPU Registradores Memória Unidade Controle ULA Unidade de Entrada e Saída 9 9 Microprocessador 8085
Microcontrolador Computador completo construído num único Circuito Integrado. Os microcontroladores são normalmente utilizados para aplicações específicas. Eles contêm normalmente portas seriais, portas de entrada e saída paralelas, timers, contadores, controles de interrupção, memórias RAM e ROM. CPU Registradores Unidade Controle ULA Memória Unidade de Entrada e Saída 10 10 Microprocessador 8085
Funções Básicas do Computador: Processamento de dados (ex.: execução de uma adição ou de uma função lógica); Armazenamento de dados (ex.: armazenamento temporário na memória RAM, Disco, DAT, etc.); Movimentação de dados (comunicação com mundo exterior: teclado, monitor, impressora); Controle (controle das funções anteriores). 11 11 Microprocessador 8085
CPU - Central Processing Unit - Unidade Central de Processamento (UCP). É responsável por buscar e executar instruções na memória e também pelo controle do computador. Memória - Local para armazenamento de dados e programas. I/O - Unidade Entrada (Input) e Saída (Output): Promove a movimentação de dados entre o computador e o ambiente externo. 12 12 Microprocessador 8085
Unidade Central de Processamento (CPU) Control Unit - Unidade de Controle (UC) - tem por função básica o controle das demais unidades da CPU. ALU (Aritmetic and Logic Unit) - Unidade Lógica e Aritmética (ULA) - realiza funções básicas de processamento de dados (adição, subtração, funções lógicas, etc.). Registers - Registradores - São usados para o armazenamento interno da CPU. Existem diversos registradores na CPU e o principal deles é chamado de Acumulador. 13 13 Microprocessador 8085
Memória De um modo geral a memória do computador contém: N palavras de tamanho fixo: cada palavra está vinculada a um endereço único) Linhas de controles, sendo as principais: read leitura write escrita 14 14 Microprocessador 8085
Memória RAM Permite a leitura e a gravação de dados. Memória Dinâmica (DRAM) Baixa densidade, mas lenta. Capacitores com circuitos com atualização de dados - refresh. Memória estática (SRAM) Alta densidade. Rápida. Baseada em Flip-flops. Memória CACHE - Pequena quantidade de memória RAM estática (SRAM) usada para acelerar o acesso à memória principal (RAM dinâmica). Quando há necessidade de transferir dados da (para) memória dinâmica, estes são antes transferidos para a memória cache 15 15 Microprocessador 8085
Memória ROM (Read-Only Memory) Memória que permite apenas a leitura, ou seja, as suas informações são gravadas pelo fabricante uma única vez (no caso do tipo PROM) e após isso não podem ser alteradas ou apagadas, somente acessadas. Alguns tipos de memória ROM: PROM (Programmable Read-Only Memory) Podem ser escritas com dispositivos especiais mas não podem mais ser apagadas. EPROM (Erasable Programmable Read-Only Memory) Podem ser apagadas pelo uso de radiação ultravioleta permitindo sua reutilização. EEPROM (Electrically Erasable Programmable Read-Only Memory) O seu contéudo pode ser modificado eletricamente. Memória FLASH São semelhantes às EEPROMs, porém mais rápidas e de menor custo. 16 16 Microprocessador 8085
Unidade de Entrada e Saída (I/O) Há divisão de meio interno (barramento do computador) e meio externo (linhas de acesso a periféricos); Constituído de M Portas (cada uma das interfaces aos periféricos: impressoras, mouse, scanner, vídeo, etc.). Cada uma das portas está vinculada a um endereço ou a uma faixa única de endereços; Envia sinais de interrupção para a CPU. 17 17 Microprocessador 8085
Barramento Meio físico usado para o transporte de um conjunto de sinais digitais usados para comunicação entre o processador, a memória e o meio externo. Barramento de sistema - barramento específico para a comunicação entre o processador e a memória Para a comunicação com os periféricos os três tipos mais comuns de barramento são: barramento ISA, barramento PCI e barramento AGP 18 18 Microprocessador 8085
Barramento ISA (Industry Standard Architecture) originado no IBM PC na versão de 8 bits aperfeiçoado no IBM PC AT / slots de 8 e 16 bits transferência de dados grupos de 8 ou 16 bits / clock de 8 MHz fax/modem, placas de som e placas de rede 19 19 Microprocessador 8085
Barramento PCI (Peripheral Component Interconnect) Desenvolvido pela Intel em 1992 Processador Pentium Taxa de transferência de até 132 MB/s com 32 bits Opera com 32 ou 64 bits Suporte para o padrão PnP (Plug and Play) Clock é geralmente de 33 MHz Placa de vídeo, placa de som, placa de rede, modem, adaptadores USB 20 20 Microprocessador 8085
Barramento PCI - X (PCI Express) O barramento PCI-X é uma extensão do barramento PCI voltado para o mercado de servidores de rede. Opera com 64 bits Clock de até 133 MHz Taxa de Transferência de 533 MB/s a 4.266 MB/s 21 21 Microprocessador 8085
Barramento AGP (Accelerated Graphics Port) Desenvolvido pela Intel - aumentar a taxa de transferência entre a CPU e a placa de vídeo melhorando o desempenho de operação com gráficos Incorporado à CPU de processadores Pentium II mais modernos. Principal vantagem: Uso de maior quantidade de memória para armazenamento de texturas para objetos tridimensionais Alta velocidade no acesso a essas texturas para aplicação na tela 22 22 Microprocessador 8085
Placa Mãe 23 23 Microprocessador 8085
Definições Básicas de Microprocessadores 24 24 Microprocessador 8085
Índice de Desempenho de Processadores O aumento de desempenho (velocidade de processamento) de processadores gira em torno: Aumento de clock Aumento do número interno de bits Aumento do número externo de bits Redução do número de ciclos para executar cada instrução Aumento da capacidade e velocidade da memória cache Execução de instruções em paralelo 25 25 Microprocessador 8085
MIPS - Millions of Instructions Per Seconds (Milhões de Instruções Por Segundo): É uma unidade de desempenho do microprocessador. FLOPS - FLOating point instructions Per Seconds (Instruções com Ponto Flutuante Por Segundo). É também uma unidade de desempenho do microprocessador. Indica a capacidade de trabalhar com números decimais. Representação em Ponto Fixo - Sistema numérico no qual o ponto está implicitamente fixo (à direita do digito mais a direita). Representação em Ponto Flutuante - Sistema numérico no qual um número real é representado por um par distinto de numerais: uma mantissa (ou significante) e um expoente. Possibilita representação de números fracionários. 26 26 Microprocessador 8085
Bit Abreviatura para Binary Digit, ou, Dígito Binário. Pode assumir valor 0, que corresponde a tensão O V, ou 1, que representa normalmente uma tensão de 5 V ou 3,3 V. Byte Conjunto de 8 bits. É a unidade básica de dados nos computadores, que também utilizam alguns múltiplos de 8, tais como 16 bits (Word) e 32 bits (Dword). 27 27 Microprocessador 8085
Set de Instruções Conjunto de Instruções - Conjunto de Mnemônicos (siglas que fazem lembrar uma ação) que representam todas as instruções do processador. Cada processador possui o seu set de instruções particular. O microprocessador 8085 possui 74 instruções. BIOS Basic Input/Output System É o conjunto mínimo de instruções necessárias para a inicialização do computador. Também gerencia o fluxo de dados entre o sistema operacional do computador e os dispositivos periféricos conectados. 28 28 Microprocessador 8085
Alguns Exemplos de Aplicação de Microprocessadores e Microcontroladores Microcomputadores, Calculadoras, Relógios Digitais, Controle de Fornos Micro-ondas, Lavadora de Roupas, Video Games e outros brinquedos, Controle de Motores, Controle de Tráfego, Alarmes e Sistemas de Segurança, Telefone Celular. 29 29 Microprocessador 8085
Alguns Exemplos de Projetos Finais Implementados Usando Microcontroladores na EEEC Controle Escalar de Motor de Indução, Controle de Motor de Corrente Contínua, Sistema de Controle de Portão Eletrônico, Sistema de Controle de Acesso ao Laboratório, Sistema de Controle de Presença em Sala de Aula (Diário Eletrônico), Sistema de Controle de Umidade e Temperatura de uma Sala, Sistema de Monitoramento de Batimentos Cardíacos, Sistema de Monitoramento de Temperatura e Umidade de Estufas, Sistema de Controle de Acesso a Estacionamentos, Sistema de Monitoramento de Tarifação de Telefone, Sistema de Controle para Centrífugas de Apiários, Sistema de Suporte para Deficientes Visuais. 30 30 Microprocessador 8085
Sistemas de Numeração 31 31 Microprocessador 8085
Sistema Posicional Sistema não Posicional 32 32 Microprocessador 8085
Sistema Posicional Sistema não Posicional 33 33 Microprocessador 8085
Sistema Binário - O sistema binário é o sistema de numeração que o computador entende. Utiliza 2 dígitos: 0 e 1 ou (OFF e ON) ou (0V e 5V) ou (0V e 3,3V). Exemplo: 1 1 0 0 1 0 1 1 2 1 o dígito: Armazena o equivalente a 2 0 (1). No ex.: 1 2 0 2 o dígito: Armazena o equivalente a 2 1 (2). No ex.: 1 2 1 3 o dígito: Armazena o equivalente a 2 2 (4). No ex.: 0 2 2 8 o dígito: Armazena o equivalente a 2 7 (128): No ex.: 1 2 7 A soma destas parcelas resulta no seguinte equivalente decimal: 1 + 2 + 0 + 8 + 0 + 0 + 64 + 128 = 203 10 34 34 Microprocessador 8085
No sistema binário a ponderação é dada pelo número 2 elevado à potência representada pela coluna, sendo que a 1 a coluna é 0, a segunda coluna é 1 e assim sucessivamente. 1 kbyte = 2 10 = 1.024 bytes 1 Mbyte = 2 10 x 2 10 = 1.048.576 bytes = 1.024 kbytes; 1 Gbyte = 2 10 x 2 10 x 2 10 = 1.073.741.824 bytes = 1.024 Mbytes 35 35 Microprocessador 8085
Sistema BCD (Binary-Coded Decimal) O Sistema BCD é o sistema em que se combina o sistema binário e o sistema decimal. É utilizado como formato de saída de instrumentos. Utiliza 2 dígitos: 0 e 1 que são dispostos em grupos de 4 dígitos, utilizados para representar um dígito decimal (número 0 até 9). A representação de um número maior que 9 deve ser feita por outro grupo de 4 bits, com a ponderação dada pelo sistema decimal. Exemplo: 973 10 = 1001 0111 0011. Note a diferença entre este valor e o valor do número binário 1001 0111 0011 2 = 2419 10 36 36 Microprocessador 8085
Sistema Octal - O Sistema Octal é baseado nos mesmos princípios do decimal e do binário, apenas utilizando base 8. Utiliza 8 dígitos: 0 a 7. Exemplo: 3207 8 1 o dígito: Armazena o equivalente a 8 0 (1). No ex.: 7 8 0 2 o dígito: Armazena o equivalente a 8 1 (8). No ex.: 0 8 1 3 o dígito: Armazena o equivalente a 8 2 (64). No ex.: 2 8 2 4 o dígito: Armazena o equivalente a 8 3 (512). No ex.: 3 8 3 O equivalente decimal é: 7 + 0 + 128 + 1536 = 1671 10 37 37 Microprocessador 8085
Sistema Hexadecimal - O Sistema Hexadecimal é baseado nos mesmos princípios do decimal e do binário, apenas utilizando base 16. Utiliza 16 dígitos: 0 a 9, A, B, C, D, E, F. Exemplo: 20DH ou 20Dh ou 20D 16 1 o dígito: Armazena o equivalente a 16 0 (1). No ex.:13 16 0 2 o dígito: Armazena o equivalente a 16 1 (16). No ex.: 0 16 1 3 o dígito: Armazena o equivalente a 16 2 (256). No ex.: 2 16 2 O equivalente decimal é: 13 + 0 + 512 = 525 10 38 38 Microprocessador 8085
Conversão de Base O sistema hexadecimal é mais fácil de trabalhar que o sistema binário e é geralmente utilizado para escrever endereços. Na conversão de hexadecimal para binário, cada dígito hexadecimal é convertido em 4 dígitos binários equivalentes. Exemplo: 7 D 3 F 16 = 0111 1101 0011 1111 2 Na conversão de binário para hexadecimal, cada grupo de 4 dígitos binários é convertido em 1 dígito hexadecimal equivalente. Ex.: 1010000110111000 2 = 1010 0001 1011 1000 2 = A 1 B 8 16 39 39 Microprocessador 8085
Conversão de Base Representação: r 2 r 1 r 0 Valor hexadecimal correspondente a 1234: 4D2h 40 40 Microprocessador 8085
Conversão de Base (algoritmo genérico) A divisão termina quando o quociente é zero Se q 0 = 0 Valor = q 0 B+ r 0 = 0.B + r 0 = r 0 Se q1 = 0 Valor = q 0 B+ r 0 q 0 = q 1.B + r 1 = 0.B + r 1 = r 1 ou, Valor = r 1.B+ r 0 Representação: r 1 r 0 Se q2 = 0 Valor = q 0 B+ r 0, q 0 = q 1.B + r 1 q 1 = q 2.B + r 2 = 0.B + r 2 = r 2 Valor = r 2 B 2 + r 1 B + r 0 Representação: r 2 r 1 r 0 41 41 Microprocessador 8085
Representação de números positivos e negativos 42 42 Microprocessador 8085
Valor Simétrico de um Número Número binário: a = (complemento de 1 de a) + 1 = = complemento de 2 de a = 2 n a Número decimal: a = (complemento de 9 de a) + 1 = = complemento de 10 de a = 10 n a 43 43 Microprocessador 8085
Subtração Usando Adição Número binário: a b = a + (complemento de 2 de b) a b = a + (2 n b) Exemplo para um número binário de 4 dígitos: a 1 = a + (2 4 1) = a + (10000 0001) = a + 1111 a 3 = a + (2 4 3) = a + (10000 0011) = a + 1101 Se a = 1001 (9 10 ) a 1 = 1001 0001 = 1000 a 3 = 1001 0011 = 0110 ou a 1 = 1001 + 1111 = 1 1000 (despreza-se o quinto dígito) a 3 = 1001 + 1010 = 1 0110 (número é de 4 dígitos) 44 44 Microprocessador 8085
Subtração Usando Adição Número decimal: a b= a + (complemento de 10 de a) a b = a + (10 n b) Exemplo para um número decimal de 2 dígitos: a 1 = a + (10 2 1) = a + (100 1) = a + 99 a 3 = a + (10 2 3) = a + (100 3) = a + 97 Se a = 94 a 1 = 94 1 = 93 a 3 = 94 3 = 91 ou a 1 = 94 + 99 = 1 93 (despreza-se o terceiro dígito) a 3 = 94 + 97 = 1 91 (o número é de 2 dígitos) 45 45 Microprocessador 8085
Operações Aritméticas no Microprocessador Adição Adição direta Subtração Adição com o complemento de 2 Multiplicação Várias adições Divisão Várias adições com complemento de 2 46 46 Microprocessador 8085
Arquitetura, Características e Princípio de Funcionamento 47 47 Microprocessador 8085
Características Barramento de endereços: 16 bits Barramento de dados: 8 bits Capacidade de endereçamento de memória: 64 kb (65.536) Registradores internos: 8 bits e 16 bits Número de transistores: 6500 Velocidade de clock: 5 MHz Capacidade de processamento: 0,37 MIPS 48 48 Microprocessador 8085
Microprocessador 8085 Entrada do gerador de clock interno Saída e Entrada serial Entradas para pedidos de interrupção Sinal de reconhecimento de pedido de interrupção enviado por INTR Linhas utilizadas para dados e para endereços 49 49 Microprocessador 8085
Microprocessador 8085 Alimentação (5V) e Terra (Address Latch Enable) Permite ao hardware externo distinguir os dados dos endereços e é concebido para ser usado como sinal de clock para um latch que captura os endereços. Indicam o estado em que se encontra o 8085: Retenção (0 0) Escrita (0 1) Leitura (1 0) Interrupção (1 1) Linhas exclusivas para endereços. Parte mais significativa do endereço 50 50 Microprocessador 8085
Microprocessador 8085 Permite reinicializar o 8085. O contador de programa vai para 0000h Entrada para geração de estados de espera (wait states) Sinais do Barramento de Controle Saída que indica aos periféricos a reinicialização do 8085 Entrada de pedido de utilização de barramento para acesso direto à memória Saída que indica ao periférico que o barramento está disponível 51 51 Microprocessador 8085
Microprocessador 8085 IO/M, RD\ e WR\ Sinais do Barramento de Controle IO-M\ WR\ RD\ Significado Exemplo 0 0 - Escrita em memória STA 2100H 0-0 Leitura de memória LDA 2100H 1 0 - Escrita em E/S OUT 80H 1-0 Leitura de E/S IN 80H - - - Operação interna INR A 52 52 Microprocessador 8085
Arquitetura do 8085 53 53 Microprocessador 8085
Arquitetura do 8085 54 54 Microprocessador 8085
Princípio de Funcionamento LOAD CLOCK ENABLE A B LOAD CLOCK LOAD CLOCK ENABLE C D ENABLE LOAD CLOCK ENABLE 55 55 Microprocessador 8085
Princípio de Funcionamento CARREGA (LOAD) D Q HABILITA SAÍDA (OE) Chave 3 estados Entrada X CLK Flipflop Saída Y Linha do barramento CARREGA (LOAD) HABILITA SAÍDA (OUTPUT ENABLE) (OE) COMENTÁRIO 0 0 Registradores isolados do barramento. Barramento flutuando 0 1 Transfere dados do registrador para o barramento 1 0 Carrega o registrador com os dados do barramento 56 56 Microprocessador 8085
Princípio de Funcionamento 57 57 Microprocessador 8085
Princípio de Funcionamento MOV D,A LOAD CLOCK ENABLE A = 10H B LOAD CLOCK LOAD CLOCK ENABLE C D D = 10 H ENABLE LOAD CLOCK 58 ENABLE 58 Microprocessador 8085
Sistema Mínimo CPU 8085 59 59 Microprocessador 8085
Frequência de Clock CLK Ciclo de Clock f = clock f cristal 2 8085A: f cristal = 500 khz a 3,125 MHz 8085A-2: f cristal = 500 khz a 5 MHz Exemplo: Se f cristal = 2 MHz f clock = 1 MHz T clock = 1 µs 60 60 Microprocessador 8085
Ciclos de Clock, de Máquina e de Instrução Ciclo de Instrução Ciclo de Instrução Ciclo de Máquina 1: M1 Ciclo de Máquina 2 : M2 CLK Estados T1 T2 T3 T4 T1 T2 T3 Ciclo de Busca Ciclo de Execução Ciclo de Execução 61 61 Microprocessador 8085
Diagrama de Temporização M1 M2 CLK Estados T1 T2 T3 T4 T1 T2 T3 ALE PC FORA PC+1 PC INST IR PC FORA PC+1 PC INST IR A15-A8 PC H PC H AD7-AD0 PC L INST PC L INST 62 62 Microprocessador 8085
Diagrama de Temporização M1 M2 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\ 63 63 Microprocessador 8085
Diagrama de Temporização ADD B e MOV B,A M1 M2 T1 T2 T3 T4 T1 T2 T3 ADD B PC FORA PC+1 PC INST IR B TMP SBE A+TMP A MOV B,A PC FORA PC+1 PC INST IR A TMP A15-A8 PC H PC H AD7-AD0 PC L INST PC L INST ALE RD\ WR\ IO-M\ 64 64 Microprocessador 8085
Ciclo de Busca de ADD B: Princípio de Funcionamento T1: Contador de Programa (PC) é ativado. Endereço atual é colocado no barramento de 16 bits. O sinal ALE é o trigger para a transferência dos endereços de PC para o barramento. PC Endereço Barramento Endereço ROM ALE RD\ M\ CLK T1 65 65 Microprocessador 8085
Ciclo de Busca de ADD B: Princípio de Funcionamento T2: Na descida do sinal de clock o PC é incrementado em 1. Barramento disponível para outras operações. PC = PC + 1 CLK T1 T2 66 66 Microprocessador 8085
Ciclo de Busca de ADD B: Princípio de Funcionamento T3: Leitura do código da instrução (ROM). O código é transferido para o barramento. Bloco IR (Registrador de Instrução) carrega a instrução vinda da ROM. Instrução é decodificada no Decodificador ROM Código Barramento Código IR RD\ ENABLE LOAD M\ CLK T1 T2 T3 67 67 Microprocessador 8085
Ciclo de Execução de ADD B: T4: Conteúdo de B é transferido para o barramento Princípio de Funcionamento Conteúdo do barramento é transferido para um registrador temporário e, depois para a unidade lógica e aritmética B Dados Barramento Dados TEMP ENABLE LOAD CLK T1 T2 T3 T4 68 68 Microprocessador 8085
Princípio de Funcionamento Ciclo de Busca de MOV B,A e Execução de ADD B: T1: Contador de Programa (PC) é ativado. Endereço atual é colocado no barramento de 16 bits. O sinal ALE é o trigger para a transferência dos endereços de PC para o barramento. PC Endereço Barramento Endereço ROM ALE ALE RD\ M\ CLK T1 T2 T3 T4 T1 M2 69 69 Microprocessador 8085
Princípio de Funcionamento Ciclo de Busca de MOV B,A e Execução de ADD B: T2: Na descida do sinal de clock o PC é incrementado em 1. Barramento disponível finalizar a instrução ADD B. TEMP PC = PC + 1 ENABLE ULA TEMP+A Barramento A TEMP+A ENABLE LOAD CLK T1 T2 T3 T4 T1 M2 70 T2 M2 70 Microprocessador 8085
Ciclo de Busca de MOV B,A: Princípio de Funcionamento T3: Leitura do código da instrução (ROM). O código é transferido para o barramento. Bloco IR (Registrador de Instrução) carrega a instrução vinda da ROM. Instrução é decodificada no Decodificador ROM Código Barramento Código IR RD\ ENABLE LOAD M\ CLK T1 T2 T3 T4 T1 M2 T2 M2 71 T3-M2 71 Microprocessador 8085
Princípio de Funcionamento Ciclo de Execução de MOV B,A: T4: Conteúdo de A é transferido para o barramento Conteúdo do barramento é transferido para um registrador temporário e, depois para o registrador B, no estado T2 da próxima instrução. A Dados Barramento Dados TEMP ENABLE LOAD CLK T1 T2 T3 T4 T1 T2 T3 T4 72 Microprocessador 8085 72
Formato das Instruções 73 73 Microprocessador 8085
Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 ADD B PC FORA PC+1 PC INST IR B TMP SBE A+TMP A ADD B Adiciona o conteúdo de B ao conteúdo do Acumulador A Instrução de 1 byte End Instrução/ Dado Código xxxx H 1o byte OPCODE End ADD B Instrução/ Dado Código xxxx H ADD B 80 H 74 74 Microprocessador 8085
Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 MOV B,A PC FORA PC+1 PC INST IR A TMP SBE TMP B MOV B,A Copia o conteúdo do Acumulador A no registrador B Instrução de 1 byte End Instrução/ Dado Código xxxx H 1o byte OPCODE MOV B,A End Instrução/ Dado Código xxxx H MOV B,A 47 H 75 75 Microprocessador 8085
Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 MVI reg, byte PC FOR A PC+1 PC INST IR X PC FOR A PC+1 PC byte reg MVI reg,byte Carrega o registrador reg com valor byte Instrução de 2 bytes End Instrução/Dado Código xxxx H 1o byte OPCODE MVI reg, byte End Instrução/Dado Código xxxx H MVI A, 5DH 3E H xxxx + 1 2o byte Dado xxxx + 1 5D H 76 76 Microprocessador 8085
Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 ADI byte PC FORA PC+1 PC INST IR X PC FORA PC+1 PC byte TMP ADI byte Adiciona o byte ao conteúdo do Acumulador A Instrução de 2 bytes End Instrução/Dado Código xxxx H 1o byte OPCODE M3 T1 T2 T3 SBE A+TMP A ADI byte End Instrução/Dado Código xxxx H ADI 5DH C6 H xxxx + 1 2o byte Dado xxxx + 1 5D H 77 77 Microprocessador 8085
Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 LOAD adr PC FORA PC+1 PC INST IR X PC FORA PC+1 PC Byte L Z M3 T1 T2 T3 PC FORA PC+1 PC Byte H W M4 T1 T2 T3 WZ FORA M WZ A LOAD adr Carrega no Acumulador o conteúdo do endereço adr Instrução de 3 bytes LOAD adr End Instrução/Dado Código xxxx H 1o byte OPCODE End Instrução/Dado Código xxxx H LOAD 2030H 3A H xxxx + 1 2o byte Dados L xxxx + 2 3o byte Dados H xxxx + 1 xxxx + 2 30 H 20 H 78 78 Microprocessador 8085
Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 STA adr PC FORA PC+1 PC INST IR X PC FORA PC+1 PC Byte L Z M3 T1 T2 T3 PC FORA PC+1 PC Byte H W M4 T1 T2 T3 WZ FORA A M WZ STA adr Transfere conteúdo do Acumulador para o endereço adr Instrução de 3 bytes STA adr End Instrução/Dado Código End Instrução/Dado Código xxxx H 1o byte OPCODE xxxx H STA 2030H 32 H xxxx + 1 2o byte Dados L xxxx + 2 3o byte Dados H xxxx + 1 xxxx + 2 30 H 20 H 79 79 Microprocessador 8085
Outras Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 INR reg PC FOR A PC+1 PC INST IR Reg TMP SBE ULA reg INR reg Incrementa em 1 o conteúdo do registrador reg INR C Opcode: 0C H M1 M2 T1 T2 T3 T4 T1 T2 T3 DCR reg PC FOR A PC+1 PC INST IR Reg TMP TMP +1 ULA SBE ULA reg DCR reg Decrementa em 1 o conteúdo do registrador reg DCR B Opcode: 05 H 80 80 Microprocessador 8085
Outras Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 INR M PC FORA PC+1 PC INST IR HL FORA M HL TMP + 1 TMP ULA M3 T1 T2 T3 HL FORA ULA M HL INR M Incrementa em 1 o conteúdo da posição de memória apontada pelo par HL 81 81 Microprocessador 8085
Modos de Endereçamento e Grupos de Instruções 82 82 Microprocessador 8085
Modos de Endereçamento Imediato MVI A,03H ADI 15 H Direto LDA 2010 H JMP 2005 H Por Registrador MOV A,B ADD B Indireto por Registrador MOV M,A 83 83 Microprocessador 8085
Grupos de Instruções Grupo de Transferência de Dados Grupo Aritmético MOV A,B MVI A,03H ADI 15 H, SUB C, INR A Grupo Lógico ANA B (A and B) ORA C (A or C) Grupo de Desvio JMP 2005 H, JNZ 2000H Grupo de Controle, Pilha, Entrada/Saída 84 PUSH PSW IN Porta 84 Microprocessador 8085
Exemplos Imediato + Transferência de Dados MVI A,03H M1 M2 T1 T2 T3 T4 T1 T2 T3 MVI reg, byte PC FOR A PC+1 PC INST IR X PC FOR A PC+1 PC byte reg MVI reg,byte Carrega o registrador reg com valor byte 85 85 Microprocessador 8085
Exemplos Registrador + Grupo Aritmético INR reg M1 M2 T1 T2 T3 T4 T1 T2 T3 INR reg PC FOR A PC+1 PC INST IR Reg TMP SBE ULA reg INR reg Incrementa em 1 o conteúdo do registrador reg 86 86 Microprocessador 8085
Exemplos Indireto por Registrador + Grupo de Controle, Pilha, Entrada/Saída INR M M1 M2 T1 T2 T3 T4 T1 T2 T3 INR M PC FORA PC+1 PC INST IR HL FORA M HL TMP + 1 TMP ULA M3 INR M Incrementa em 1 o conteúdo da posição de memória apontada pelo par HL T1 T2 T3 HL FORA ULA M HL 87 87 Microprocessador 8085
Registrador de Flags 88 88 Microprocessador 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 89 89 Microprocessador 8085
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 90 90 Microprocessador 8085
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 1no 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) 91 91 Microprocessador 8085
Exemplo de Operação e os Flags resultantes Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 1 1 1 + 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 1 0 CY = 1 Houve transporte do bit 7 para o bit 8 P = 1 Há quantidade par (2) de dígitos 1 no acumulador (O 1 do bit 8 está fora do acumulador AC = 1 Houve transporte do bit 3 para o bit 4 Z = 0 O resultado da adição é diferente de zero S = 0 O bit 7 do acumulador é zero (número positivo) S Z AC P CY 0 0 1 1 1 F = 15 H ou F = 3F H ou F = 1F H ou 92 92 Microprocessador 8085
Exemplo de Operação e os Flags resultantes Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 + 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 CY = 1 Houve transporte do bit 7 para o bit 8 P = 1 Há quantidade par (0) de dígitos 1 no acumulador (O 1 do bit 8 está fora do acumulador AC = 0 Não houve transporte do bit 3 para o bit 4 Z = 1 O resultado da adição é igual a zero S = 0 O bit 7 do acumulador é zero (número positivo) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 1 0 1 1 93 F = 45 H ou F = 6F H ou F = 4F H ou 93 Microprocessador 8085
Exemplo de Subtração Direta Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0-0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 CY = 0 Não houve empréstimo do bit 8 para o bit 7 P = 0 Há quantidade par (0) de dígitos 1 no acumulador (O 1 do bit 8 está fora do acumulador AC = 0 Não houve empréstimo do bit 4 para o bit 3 Z = 0 O resultado da adição é diferente de zero S = 0 O bit 7 do acumulador é zero (número positivo) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 0 F = 00 H ou F = 2A H ou F = 02F H ou 94 94 Microprocessador 8085
Exemplo de Subtração com Complemento de 2 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 1 1 1 1 + 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 Carry = 1 CY = 0 Houve transporte do bit 7 para o bit 8, mas com complemento de 2 P = 0 Há quantidade ímpar (3) de dígitos 1 no acumulador Auxiliar = 1 AC = 0 Houve transporte do bit 3 para o bit 4, mas no complemento de 2 Z = 0 O resultado da adição é diferente de zero S = 0 O bit 7 do acumulador é zero (número positivo) 95 95 Microprocessador 8085
Exemplos de Operações Condicionadas às Flags JC endereço Jump if Carry Pula para o endereço indicado se CY = 1 JNC endereço Jump if Not Carry Pula para o endereço indicado se CY = 0 JZ endereço Jump if Zero Pula para o endereço indicado se Z = 1 (resultado da última operação é igual a zero) JNZ endereço Jump if Not Zero Pula para o endereço indicado se Z = 0 (resultado da última operação é diferente de zero) 96 96 Microprocessador 8085
Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JC 200F H DA 0F 20 2007 H JMP 2002 H C3 02 20 Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JC 2000 H DA 00 20 2007 H JMP 2002 H C3 02 20 200F H HLT 76 97 97 Microprocessador 8085
Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JNC 2002 H D2 02 20 2007 H JMP 2000 H C3 00 20 98 98 Microprocessador 8085
Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JZ 2000 H CA 00 20 2007 H JMP 2002 H C3 02 20 99 99 Microprocessador 8085
Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JNZ 2002 H C2 02 20 2007 H JMP 2000 H C3 00 20 100 100 Microprocessador 8085
Pilha 101 101 Microprocessador 8085
Região de memória usada para guardar endereço de retorno e valores temporários Instruções que usam a pilha: CALL RET PUSH POP Interrupções 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 102 102 Microprocessador 8085
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 + Flags B B + C D D + E H H + L 103 103 Microprocessador 8085
PUSH reg16 guarda conteúdo do registrador de 16 bits na pilha 1. O valor de SP é decrementado em 1 2. O byte mais significativo é armazenado na posição SP 1 3. O valor de SP é decrementado em 1 4. O byte menos significativo é armazenado na posição SP 2 POP reg16 carrega registrador de 16 bits com conteúdo da pilha 1. O conteúdo apontado por SP é copiado para o byte menos significativo 2. O valor de SP é incrementado em 1 3. O conteúdo apontado por SP + 1 é copiado para o byte mais significativo 4. O valor de SP é incrementado em 1 104 104 Microprocessador 8085
Exemplo: A = 01 H, F = 23 H, B = 45 H, C = 67 H F A PUSH PSW Endereço da RAM 2089 208A 208B 208C 208D Conteúdo 208E 23 208F 01 2090 SP após a instrução: 208Eh Flags SP inicial: 2090h 105 PUSH B Endereço da RAM 2089 208A 208B Conteúdo 208C 67 208D 45 208E 23 208F 01 2090 SP após a instrução: 208Ch C B F A 105 Microprocessador 8085
Exemplo: A = 01 H, F = 23 H, B = 45 H, C = 67 H F A Endereço da RAM 2089 208A 208B POP B Conteúdo 208C 67 208D 45 208E 23 208F 01 2090 SP após a instrução: 208Eh 106 Endereço da RAM 2089 208A 208B POP PSW Conteúdo 208C 67 208D 45 208E 23 208F 01 2090 SP após a instrução: 2090h C B F A 106 Microprocessador 8085
Pilha Exemplo de aplicação Endereço Mnemônico Código 2000 H LXI SP,203FH 31 22 20 2003 H MVI A,20H 3E 20 2005 H PUSH PSW F5 2006 H CALL MOSTRAA CD 6E 03 2009 H POP PSW F1 200A H ADI 01H C6 01 200C H JNZ 2005 H DA 05 20 200F H JMP 2003 C3 03 20 2022 H 107 107 Microprocessador 8085
Conjunto de Instruções 108 108 Microprocessador 8085
TRANSFERÊNCIA DE DADOS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento MVI r, dado8 (r) (byte 2) 2 7 Imediato MOV r1, r2 (r1) (r2) 1 4 Registrador MOV r, M (r) ((H)(L)) 2 7 Indireto por registrador MOV M, r ((H)(L)) (r) 2 7 Indireto por registrador MVI M, dado8 ((H)(L)) (byte 2) 3 10 Indireto por registrador e imediato LXI rp, dado16 (rh) (byte 3) (rl) (byte 2) 3 10 Imediato 109 109 Microprocessador 8085
TRANSFERÊNCIA DE DADOS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento LDA addr (A) ((byte 3)(byte 2)) 4 13 direto STA addr ((byte 3)(byte 2)) (A) 4 13 direto LHLD addr SHLD addr (L) ((byte 3)(byte 2)) (H) ((byte 3)(byte 2) + 1) ((byte 3)(byte 2)) (L) ((byte 3)(byte 2)+1) (H) 5 16 direto 5 16 direto LDAX rp (A) ((rp)) 2 7 Indireto por registrador STAX rp ((rp)) (A) 2 7 Indireto por registrador XCHG (H) (D) (L) (E) 1 4 registrador 110 110 Microprocessador 8085
ARITMÉTICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas ADD r (A) (A) + ( r ) 1 4 registrador todas ADD M (A) (A) + ( (H) + (L)) 2 7 registrador todas ADI dado8 (A) (A) + (byte 2) 2 7 imediato todas ADC r (A) (A) + ( r ) + (CY) 1 4 registrador todas ADC M (A) (A) + ( (H)(L)) + (CY) 2 7 imediato por registrador todas ACI dado8 (A) (A) + (byte 2) + (CY) 2 7 imediato todas 111 111 Microprocessador 8085
ARITMÉTICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas SUB r (A) (A) ( r ) 1 4 registrador todas SUB M (A) (A) ( (H)(L)) 2 7 indireto por registrador todas SUI dado8 (A) (A) (byte 2) 2 7 imediato todas SBB r (A) (A) ( r ) (CY) 1 4 registrador todas SBB M (A) (A) ((H)(L)) (CY) 2 7 indireto por registrador todas SBI dado8 (A) (A) (byte 2) (CY) 2 7 imediato todas 112 112 Microprocessador 8085
ARITMÉTICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento INR r (r) (r) + 1 1 4 registrador INR M ((H)(L)) ((H)(L)) + 1 3 10 indireto por registrador DCR r (r) (r) 1 1 4 registrador DCR M ((H)(L)) ((H)(L)) 1 3 10 indireto por registrador Flags Afetadas Z, S, P e AC Z, S, P e AC Z, S, P e AC Z, S, P e AC INX rp (rh)(rl) (rh)(rl) + 1 1 6 registrador nenhuma DCX rp (rh)(rl) (rh)(rl) 1 1 6 registrador nenhuma DAD rp ((H)(L)) ((H)(L)) + (rh)(rl) 3 10 registrador CY DAA 1 4 registrador todas 113 113 Microprocessador 8085
Exemplo de Programa: Adição de Números de 16 bits 452 decimal (01 C4 H) + 926 decimal (03 9E H) Decimal Hexa 1 1 1 4 5 2 0 1 C 4 9 2 6 0 3 9 E 1 3 7 8 0 5 6 2 Abacus: Add 16 bits reg simples.hex Adição usando registradores simples 114 Endereço Mnemônico Código 2000 H LXI SP,203F 31 3F 20 2003 H MVI A,C4h 3E C4 2005 H MVI B,01h 06 01 2007 H MVI C,9Eh 0E 9E 2009 H MVI D,03h 16 03 200B H ADD C 81 200C H MOV L,A 6F 200D H MOV A,B 78 200E H ADC D 8A 200F H MOV H,A 67 2010 H XCHG EB 2011 H CALL MOSTRAD CD 63 03 2014 H HLT 76 114 Microprocessador 8085
Exemplo de Programa: Adição de Números de 16 bits 452 decimal (01 C4 H) Adição usando registradores duplos + 926 decimal (03 9E H) Endereço Mnemônico Código Decimal Hexa 1 1 1 4 5 2 0 1 C 4 9 2 6 0 3 9 E 1 3 7 8 0 5 6 2 2000 H LXI SP,203F 31 3F 20 2003 H LXI B, 01C4 H 01 C4 01 2006 H LXI H, 039E H 21 9E 03 2009 H DAD B 09 200A H XCHG EB 200B H CALL MOSTRAD CD 63 03 200E H HLT 76 Abacus: Add 16 bits reg duplo.hex 115 115 Microprocessador 8085
INSTRUÇÕES LÓGICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas ANA r (A) (A) (r) 1 4 registrador todas ANA M (A) (A) ((H)(L)) 2 7 indireto por registrador todas ANI dado8 (A) (A) (byte 2) 2 7 imediato todas XRA r (A) (A) (r) 1 4 registrador todas XRA M (A) (A) ((H)(L)) 2 7 indireto por registrador todas XRI dado8 (A) (A) (byte 2) 2 7 imediato todas ORA r (A) (A) (r) 1 4 registrador todas ORA M (A) (A) ((H)(L)) 2 7 indireto por registrador todas ORI dado8 (A) (A) (byte 2) 2 7 imediato todas 116 116 Microprocessador 8085
INSTRUÇÕES LÓGICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Flags Afetadas RLC RRC RAL RAR (A n+1 ) (A n ) (A 0 ) (A 7 ) (CY) (A 7 ) (A n ) (A n+1 ) (A 7 ) (A 0 ) (CY) (A 0 ) (A n+1 ) (A n ) (CY) (A 7 ) (A 0 ) (CY) (A n ) (A n+1 ) (CY) (A 0 ) (A 7 ) (CY) 1 4 CY 1 4 CY 1 4 CY 1 4 CY 117 117 Microprocessador 8085
INSTRUÇÕES LÓGICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetada s CMP r (A) (r) 1 4 registrador todas CMP M (A) ((H)(L)) 2 7 indireto por registrador todas CPI dado8 (A) (byte 2) 2 7 imediato todas CMA (A) (A\) 1 4 nenhum a CMC (CY) (CY\) 1 4 CY STC (CY) 1 1 4 CY 118 118 Microprocessador 8085
INSTRUÇÕES AND E OR AND A 0 0 0 0 1 1 1 1 B 1 0 0 1 1 0 1 0 ANA B 0 0 0 0 1 0 1 0 OR A 0 0 0 0 1 1 1 1 B 1 0 0 1 1 1 0 1 ORA B 1 0 0 1 1 1 1 1 119 119 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO CMP r CPI dado8 Condição Z CY (A) = (r) 1 0 (A) > (r) 0 0 (A) < (r) 0 1 120 120 Microprocessador 8085
Exemplo: Programa que identifica o 1 O bit de um número hexadecimal de 1 dígito Endereço Mnemônico Código Hexa 2000 H LXI SP,203FH 31 3F 20 2003 H CALL LETECLA CD E7 02 2006 H ANI 01H E6 01 2008 H CALL MOSTRAA CD 6E 03 200B H JMP 2003 C3 03 20 Abacus: Identifica bit 0.hex 121 121 Microprocessador 8085
Exemplo: Programa para entrar com número de 2 dígitos pelo teclado Endereço Mnemônico Código Hexa 2000 H LXI SP,203FH 31 3F 20 2003 H CALL LETECLA CD E7 02 2006 H RLC 07 2007 H RLC 07 2008 H RLC 07 2009 H RLC 07 200A H MOV B,A 47 200B H CALL LETECLA CD E7 02 200E H ORA B B0 200F H CALL MOSTRAA CD 6E 03 2012 H JMP 2003 C3 03 20 122 Abacus: Le 2 digitos.hex 122 Microprocessador 8085
INSTRUÇÕES DE DESVIO Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas JMP addr (PC) (byte 3)(byte 2) 3 10 imediato nenhuma J condição addr Se (CCC), então, (PC) (byte 3)(byte 2) 2/3 7/10 imediato nenhuma JNZ addr JZ addr JNC addr JC addr Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 123 123 Microprocessador 8085
INSTRUÇÕES DE DESVIO Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas JPO addr JPE addr JP addr JM addr Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 124 124 Microprocessador 8085
INSTRUÇÕES DESVIO Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas CALL addr ((SP) - 1) (PCH) ((SP) - 2) (PCL) (SP) (SP) - 2 (PC) (byte 3)(byte 2) 5 18 imediato e indireto por registrador nenhuma C condition addr ((SP) - 1) (PCH) ((SP) - 2) (PCL) (SP) (SP) - 2 (PC) (byte 3)(byte 2) 2/5 9/18 imediato e direto por registrador nenhuma RET (PCL) (SP) (PCH) (SP + 1) (SP) (SP) + 2 3 10 indireto por registrador nenhuma R condição (PCL) (SP) (PCH) (SP + 1) (SP) (SP) + 2 1/3 6/12 indireto por registrador nenhuma 125 125 Microprocessador 8085
DESVIO Mnemônico Genérico RST n PCHL Simbologia ((SP) - 1) (PCH) ((SP) - 2) (PCL) (SP) (SP) - 2 (PC) 8 * (NNN) (PCH) (H) (PCL) (L) N O de Ciclos N o de Estados 3 12 Modo de Endereçamento indireto por registrador Flags Afetadas nenhuma 1 6 registrador nenhuma 126 126 Microprocessador 8085
Exemplo: Contagem com parada programada via teclado Universidade Federal de Goiás 127 Endereço Mnemônico Código Hexa 2000 H LXI SP,203FH 31 3F 20 2003 H CALL LETECLA CD E7 02 2006 H RLC / RLC / RLC / RLC 07 07 07 07 200A H MOV B,A 47 200B H CALL LETECLA CD E7 02 200E H ORA B B0 200F H MOV B,A 47 2010 H MVI A,00H 3E 00 2012 H PUSH PSW F5 2013 H PUSH B C5 2014 H CALL MOSTRAA CD 6E 03 2017 H POP B C1 2018 H POP PSW F1 2019 H CMP B B8 201A H JZ 2003 CA 03 20 201D H INR A 3C 201E H JMP 2012 H C3 12 20 Abacus: Parada programada.hex 127 Microprocessador 8085
CONTROLE, PILHA E I/O Mnemônico Genérico PUSH rp Simbologia ((SP) - 1 (rh) ((SP) - 2 (rl) (SP) (SP) - 2 N O de Ciclos N o de Estados Modo de Endereçamento 3 12 indireto por registrador Flags Afetadas nenhuma PUSH PSW ((SP) - 1 (A) 3 12 indireto por nenhuma ((SP) - 2 (F) registrador (SP) (SP) - 2 POP rp POP PSW (rl) ((SP)) (rh) ((SP) + 1) (SP) (SP) + 2 (F) ((SP)) (A) ((SP) + 1) (SP) (SP) + 2 3 10 indireto por registrador 3 10 indireto por registrador nenhuma todas 128 128 Microprocessador 8085
CONTROLE, PILHA E I/O Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas XTHL (L) ((SP)) 5 16 indireto por nenhuma (H) ((SP) + 1) registrador SPHL (SP) (H) (L) 1 6 registrador nenhuma IN porta (A) (dado 8 bits) 3 10 direto nenhuma OUT porta (dado 8 bits) (A) 3 10 direto nenhuma 129 129 Microprocessador 8085
CONTROLE, PILHA E I/O Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Flags Afetadas EI 1 4 nenhuma DI 1 4 nenhuma HLT 1+ 5 nenhuma NOP 1 4 nenhuma RIM 1 4 nenhuma SIM 1 4 nenhuma 130 130 Microprocessador 8085
Simulador Digital e Programação Assembly 131 131 Microprocessador 8085
CONTAGEM CRESCENTE ININTERRUPTA N INICIO SP 203F H A 20 H PUSH PSW CALL MOSTRAA POP PSW A A + 1 A = 0? S Endereço Mnemônico 2000 H LXI SP,203FH 2003 H MVI A,20H 2005 H PUSH PSW 2006 H CALL MOSTRAA 2009 H POP PSW 200A H ADI 01H 200C H JNZ 2005 H 200F H JMP 2003 Abacus: Contagem.hex 132 132 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS (3 x 4) N INICIO A 00 H C 03 H A A + 04 H C C 1 C = 0? S DISPLAY A Label Volta: Mnemônico LXI SP,203FH MVI A,00H MVI C,03H ADI 04 H DCR C JNZ Volta CALL MOSTRAA HLT FIM Abacus: 3 x 4 direto.hex 133 133 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS (3 x 4) Uso de Registrador N INICIO A 00 H B 04 H C 03 H A A + B C C 1 C = 0? S DISPLAY A FIM Label Mnemônico LXI SP,203FH MVI A,00H MVI B,04H MVI C,03H Volta: ADD B DCR C JNZ Volta CALL MOSTRAA HLT Abacus: 3 x 4 registrador.hex 134 134 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS (3 x 4) Subrotina INICIO A 00 H B 04 H C 03 H CALL multi DISPLAY A HLT multi A A + B C C 1 Abacus: 3 x 4 subrotina.hex N C = 0? RET 135 S Label multi: Mnemônico LXI SP,203FH MVI A,00H MVI B,04H MVI C,03H CALL multi CALL MOSTRAA HLT ADD B DCR C JNZ multi RET 135 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 1 DÍGITO INICIO CALL LETECLA B A CALL LETECLA C A A 0 CALL multi DISPLAY A N multi A A + B C C 1 C = 0? RET Abacus: Multi 1 dígito.hex 136 S Label repete: multi: Mnemônico LXI SP,203FH CALL LETECLA MOV B,A CALL LETECLA MOV C,A MVI A,00H CALL multi CALL MOSTRAA JMP repete ADD B DCR C JNZ multi RET 136 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 8 BITS INICIO CALL LETECLA 4 x RLC C A CALL LETECLA ORA C C A 1 1 CALL LETECLA 4 x RLC E A CALL LETECLA ORA E E A D 0 CALL multi CALL MOSTRAD Abacus: Multi 2 dígitos.hex 137 Label Mnemônico LXI SP,203FH CALL LETECLA RLC RLC RLC RLC MOV C,A CALL LETECLA ORA C MOV C,A... 137 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 2 DÍGITOS Subrotina de Multiplicação multi N HL 0 HL HL + DE C C 1 C = 0? DE HL S Label multi: repete: Mnemônico LXI H,0000H DAD D DCR C JNZ repete XCHG RET RET 138 138 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 2 DÍGITOS PROGRAMA PRINCIPAL Início SP 203F H CALL Leitura CALL multi CALL MOSTRAD Label repete: Mnemônico LXI SP,2080 H CALL Leitura CALL multi CALL MOSTRAD JMP repete Multi 2 dígitos sub.hex 139 139 Microprocessador 8085
MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 2 DÍGITOS SUBROTINA DE LEITURA DOS 2 DÍGITOS LEITURA CALL LETECLA 4 x RLC C A CALL LETECLA ORA C C A 1 1 CALL LETECLA 4 x RLC E A CALL LETECLA ORA E E A D 0 RET 140 Label Leitura: Mnemônico CALL LETECLA RLC/RLC/RLC/RLC MOV C,A CALL LETECLA ORA C MOV C,A CALL LETECLA RLC/RLC/RLC/RLC MOV E,A CALL LETECLA ORA E MOV E,A MVI D,00H RET 140 Microprocessador 8085
CASOS PARTICULARES DE MULTIPLICAÇÃO MULTIPLICAÇÃO POR 16 16 = 2 4 Mnemônico Comentário RLC A = 2 RLC A = 4 RLC A = 8 RLC A = 16 141 141 Microprocessador 8085
CASOS PARTICULARES DE MULTIPLICAÇÃO MULTIPLICAÇÃO POR 10 Mnemônico Comentário RLC A = 2 MOV B,A B = 2 RLC A = 4 RLC A = 8 ADD B A = 8 + 2 = 10 142 142 Microprocessador 8085
CASOS PARTICULARES DE MULTIPLICAÇÃO MULTIPLICAÇÃO POR 7 Solução 1 Solução 2 (para 8 < 100H) Mnemônico MOV B,A Comentário B = RLC A = 2 ADD B A = 3 RLC A = 6 ADD B A = 7 Mnemônico MOV B,A Comentário B = RLC A = 2 RLC A = 4 RLC A = 8 SUB B A = 7 143 143 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y: Label Mnemônico Comentário CMP reg JNZ continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A reg... Bloco de instruções executadas, caso A = reg continua: Continuação do programa 144 144 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X Y: Label Mnemônico Comentário CMP reg JZ continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A = reg... Bloco de instruções executadas,... caso A reg continua: Continuação do programa 145 145 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Exemplo: Mostrar números de 20 H até 50H INICIO SP 2080 H A 20 H CALL MOSTRAA A = 50H? A A + 1 N S Endereço Mnemônico 2000 H LXI SP,2080H 2003 H MVI A,20H 2005 H PUSH PSW 2006 H CALL MOSTRAA 2009 H POP PSW 200A H CPI 50 H 200C H JZ 2003 H 200A H ADI 01H 200F H JMP 2005 Abacus: Aula6 6.hex 146 146 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X Y: Label Mnemônico Comentário CMP reg JC continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A < reg... Bloco de instruções executadas,... caso A reg continua: Continuação do programa 147 147 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X > Y: Label Mnemônico Comentário CMP reg JC continua JZ continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A < reg Pula para continua, se A = reg... Bloco de instruções executadas, caso A > reg continua: Continuação do programa 148 148 Microprocessador 8085
Exemplo: Mostrar números (da memória) maiores ou iguais a 30 H Início SP 2080 H HL 2050 H C 0A H A M H H + 1 1 N 1 A <30H? N CALL MOSTRAA C C 1 C = 0? Abacus: Maiores ou Iguais.hex 149 S Fim S Mnem. repete: pula: Mnemônico LXI SP,2080H LXI H, 2050H MVI C,0AH MOV A,M INX H CPI 30 JC pula PUSH B PUSH H CALL MOSTRAA POP H POP B DCR C JNZ repete HLT 149 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X Y: Label Mnemônico Comentário CMP reg JZ igual JNC maior Seta flags Z e CY de acordo com resultado de A reg Pula para igual, se A = reg Pula para maior, se A > reg igual:... Bloco de instruções executadas, caso A reg maior: Continuação do programa 150 150 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X < Y: Label Mnemônico Comentário CMP reg JNC maiorig Seta flags Z e CY de acordo com resultado de A reg Pula para maiorig, se A reg... Bloco de instruções executadas, caso A < reg maiorig: Continuação do programa 151 151 Microprocessador 8085
Exemplo: Mostrar números (da memória) menores ou iguais a 30 H Mnem. Mnemônico Início 1 LXI SP,2080H LXI H, 2050 H SP 2080 H HL 2050 H C 0A H A > 30H? N S repete: MVI C,0A H MOV A,M INX H CPI 30 A M MOSTRA A JZ mostra JNC pula HL HL + 1 1 C C 1 mostra: PUSH B PUSH H CALL MOSTRAA POP H Abacus: Menores-ou-iguais.hex C = 0? Fim S pula: POP B DCR C JNZ repete HLT 152 152 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y e outro se X Y: Label Mnemônico Comentário CMP reg Seta flags Z e CY de acordo com resultado de A reg JNZ diferente Pula para diferente, se A reg... Bloco de instruções executadas, caso A = reg JMP continua Pula bloco onde A reg diferente: Bloco de instruções executadas, caso A reg continua: Continuação do programa Abacus: Intervalo.hex Abacus: Menores.hex 153 153 Microprocessador 8085
INICIO Subrotina de atraso de tempo B 10 H Endereço Mnemônico N C 20 H C C 1 C = 0? S B B 1 2020 H MVI B,10 H 2022 H MVI C,20 H 2024 H DCR C 2025 H JNZ 2024 H 2028 H DCR B 2029 H JNZ 2022 H N B = 0? RET S 202C H RET Abacus: Atraso.hex 154 154 Microprocessador 8085
Tempo de atraso (supondo 1µs para cada estado) Mnemônico MVI B,10 H MVI C,20 H DCR C JNZ 2024 H DCR B JNZ 2022 H RET Instrução N o de Vezes a instrução é executada N o de Estados de cada Instrução Tempo de cada Estado (µs) Tempo Parcial (µs) MVI B 1 7 1 7 MVI C 16 7 1 112 DCR C 512 = 16x32 4 1 2048 JNZ 2024 496 = 16x31 10 1 4960 (verdadeiro) JNZ 2024 (falso) 16 = 16 x 1 7 1 112 DCR B 16 4 1 64 JNZ repete1 (verdadeiro) JNZ repete1 (falso) 15 10 1 150 1 7 1 7 RET 1 10 1 10 Tempo Total 7490 µs 7,5 ms 155 155 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y ou W = Z: Supondo uso de A = X, B = Y, C = W e D = Z Label Mnemônico Comentário continua: CMP B JZ OK MOV A, C CMP D JNZ continua Seta flags Z e CY de acordo com resultado de X Y Pula para OK, se X = Y Carrega em A valor de W. Destrói valor original Seta flags Z e CY conforme resultado de W - Z Pula para continua, se W Z OK:... Bloco de instruções executadas, caso X = Y ou W = Z Continuação do programa 156 156 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y e W = Z: Supondo uso de A = X, B = Y, C = W e D = Z Label Mnemônico Comentário continua: CMP B JNZ continua MOV A, C CMP D JNZ continua Seta flags Z e CY de acordo com resultado de X Y Pula para continua, se X Y Carrega em A valor de W. Destrói valor original Seta flags Z e CY conforme resultado de W - Z Pula para continua, se W Z... Bloco de instruções executadas, caso X = Y e W = Z Continuação do programa 157 157 Microprocessador 8085
INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Abacus: Senha.hex Programa que lê pelo teclado uma senha de 4 dígitos (dois bytes) e mostra no display uma contagem decimal crescente de 0 a 60, se a senha digitada for igual à senha previamente guardada em memória 158 158 Microprocessador 8085
Interrupções 159 159 Microprocessador 8085
INTERRUPÇÕES Definição Pedido Interno ou Externo em que o microprocessador suspende as tarefas em execução, atende o pedido de interrupção e volta para encerrar as tarefas anteriores ao pedido. ULA CPU Registradores Unidade Controle Controle de Interrupção 160 160 Microprocessador 8085
INTERRUPÇÕES Como funciona? Pedido de Inter rrupção Programa Principal Instrução 1 Instrução 2 Instrução 3 Instrução 4... HLT Endereço fixo da ROM JMP subrotina Subrotina da Interrupção Instr. 1 Instr. 2... RET 161 161 Microprocessador 8085
INTERRUPÇÕES Características Principais Endereço de desvio pré-definido Interrupção vetorada A instrução em execução é encerrada, antes do desvio para atendimento da interrupção Após o atendimento da interrupção, ao executar a instrução RET, o processamento volta para a instrução seguinte àquela que estava sendo executada antes do pedido de interrupção 162 162 Microprocessador 8085
Interrupções Internas Interrupção por Software Instrução Efeito Código Endereço RST 0 CALL 0000h C7 0000 h RST 1 CALL 0008h CF 0008 h RST 2 CALL 0010h D7 0010 h RST 3 CALL 0018h DF 0018 h RST 4 CALL 0020h E7 0020 h RST 5 CALL 0028h EF 0028 h RST 6 CALL 0030h F7 0030 h RST 7 CALL 0038h FF 0038 h 163 163 Microprocessador 8085
Interrupções Externas Interrupção por Hardware Interrupção Efeito Código Posição do Vetor TRAP CALL 0024h Não tem 0024 h RST 5.5 CALL 002Ch Não tem 002C h RST 6.5 CALL 0034h Não tem 0034 h RST 7.5 CALL 003Ch Não tem 003C h INTR CALL ender. Não tem Nenhuma Pino 6 9 8 7 10 Prioridade 1 4 3 2 5 164 164 Microprocessador 8085
Interrupções Externas Endereços no ABACUS e no KIT Interrupção Endereço na ROM Endereço no ABACUS Endereço no KIT TRAP 0024h 20D1 H 4BE0 H RST 5.5 002Ch 20C8 H 4BDD H RST 6.5 0034h 20CB H 4BDA H RST 7.5 003Ch 20CE H 4BD7 H INTR Escolhida pelo programador Escolhida pelo programador Escolhida pelo programador 165 165 Microprocessador 8085
Interrupções Externas Ativando a Interrupção Ativada por Nível e Borda TRAP Ativada apenas por Borda RST 7.5 Ativada apenas por Nível RST 6.5 8085 Ativada apenas por Nível RST 5.5 Ativada apenas por Nível INTR 166 166 Microprocessador 8085
Interrupções Externas Habilitando a Interrupção EI Enable Interrupt Instrução usada para Habilitar todas as interrupções (exceto a TRAP) DI Disable Interrupt Instrução usada para Desabilitar todas as interrupções (exceto a TRAP) 167 167 Microprocessador 8085
Interrupções Externas Contagem crescente acionada pela RST 5.5 RST5.5 Início SP 2090 H A 00 H Mostra A Habilita Interrupções (EI) A A + 1 Mostra A N A = 00? S Habilita Interrupções (EI) RET Exemplo ABACUS: Contagem com RST 5-5 168 168 Microprocessador 8085
Interrupções Externas - Programa Rótulo Mnemônico Comentário LXI SP, 2090H Topo da pilha na posição 2090 h MVI A, 00H Acumulador começa com valor 00 h PUSH PSW Guarda A e Flags na pilha CALL MOSTRAA Mostra conteúdo de A no display de dados POP PSW Recupera conteúdo de A e Flags da pilha EI Habilita interrupções (Enable Interrupt) espera: JMP espera Laço de espera de pedido de interrupção cresce: INR A Incrementa acumulador PUSH PSW Guarda conteúdo de A e F na pilha CALL MOSTRAA Mostra conteúdo de A no display MVI D, 01H Faz D = 01 h, para usar na subrotina de tempo CALL DELAY Chama subrotina de atraso de tempo POP PSW Recupera conteúdo de A e F da pilha CPI 00 H Compara A com 00 h. JNZ cresce Se A 00 h, volta para INR A. Se A = 00 h, sai da subrotina EI Habilita novamente as interrupções RET Retorna da subrotina de interrupção 20C8: JMP cresce Vai para o início da subrotina "cresce" 169 Microprocessador 8085 169
Interrupções Externas Circuito da TRAP 1 D Q TRAP CALL 0024 h Pino 6 TRAP CLK Flip-flop CLR RESET IN RECONHECIMENTO DE TRAP 170 170 Microprocessador 8085
Circuito de RST7.5, RST 6.5 e RST5.5 Pino 7 RST 7.5 Pino 8 RST 6.5 Pino 9 RST 5.5 R 7.5 RECONHECIMENTO DE RST 7.5 1 D Flip-flop CLR M 7.5' S Q M 7.5 M 6.5' M 5.5' RESET IN MSE R Flip-flop QUALQUER RECONHECIMENTO DE INTERRUPÇÃO 171 DI EI S R S R S R Q Q Flip-flop Q Flip-flop Q Flip-flop I 7.5 I 6.5 M 6.5 I 5.5 M 5.5 IE CALL 003C h CALL 0034 h CALL 002C h 171 Microprocessador 8085
SÍMBOLO I7.5, I6.5, I5.5 IE M7.5, M6.5 e M5.5 RST 7.5, RST 6.5 e RST 5.5 TRAP EI DI MSE Símbolo Usados - Interrupção SIGNIFICADO/COMENTÁRIO Interrupções Pendentes - assumem valor 1 quando há interrupção pendente Flag que indica (com valor 1) quando as interrupções estão habilitadas Máscaras de Interrupção (Sinal baixo habilita as portas AND) - podem desabilitar uma interrupção pendente. Sinal alto interrupção bloqueada interrupções mascaráveis podem ser bloqueadas via software não é mascarável nem passível de habilitação/desabilitação por EI/DI Enable Interrupt - Instrução usada para habilitar todas as interrupções, exceto a TRAP. Ativo alto. Disable Interrupt - Instrução que Desabilita as Interrupções, exceto a TRAP (baixo) Mask Set Enable - Habilita a setagem de máscara. Quando alto as máscaras M7.5', M6.5' e M5.5' podem ser reconhecidas 172 172 Microprocessador 8085
Símbolo Usados - Interrupção SÍMBOLO RESET IN \ QUALQUER RECONHECIME NTO DE INTERRUPÇÃO SIM RIM SIGNIFICADO/COMENTÁRIO A inicialização do sistema desabilita as interrupções pendentes e zera o flip-flop da TRAP Quando qualquer das interrupções é atendida, um sinal alto desabilita as interrupções pendentes, menos a TRAP, evitando que a interrupção em execução seja interrompida. Set Interrupt Mask - Instrução que seta as máscaras de interrupção, fazendo com que determinada interrupção não seja ativada. Read Interrupt Mask - Intrução que lê o estado das máscaras das interrupções. 173 173 Microprocessador 8085
Máscaras de Interrupção Sinais que bloqueiam as interrupções M7.5 Máscara da Interrupção RST 7.5 Quando está em nível lógico alto a interrupção RST 7.5 não opera M6.5 Máscara da Interrupção RST 6.5 Quando está em nível lógico alto a interrupção RST 6.5 não opera M5.5 Máscara da Interrupção RST 5.5 Quando está em nível lógico alto a interrupção RST 5.5 não opera 174 174 Microprocessador 8085
Máscaras de Interrupção Como Ativar as Máscaras de Interrupção? Acumulador SOD SOE R7.5 MSE M7.5' M6.5' M5.5' SOD Serial Output Data SOE Serial Output Enable R7.5 Resseta (zera) Flip-Flop da RST 7.5 MSE Mask Set Enable Habilita Setagem de Máscara M7.5, M6.5, M5.5 : 1 Seta as máscaras de RST 7.5, RST 6.5 e RST5.5 0 Não habilita as máscaras 175 175 Microprocessador 8085
Máscaras de Interrupção Como Ativar as Máscaras de Interrupção? Acumulador SOD SOE R7.5 MSE M7.5' M6.5' M5.5' Após escolher os valores para as máscaras... SIM Set Interrupt Mask Os valores de R7.5, MSE, M7.5, M6.5 e M5.5 São transferidos do acumulador para o circuito de interrupção 176 176 Microprocessador 8085
Máscaras de Interrupção Como Ativar as Máscaras de Interrupção? Acumulador SOD SOE R7.5 MSE M7.5' M6.5' M5.5' Exemplo 1: 0 0 0 0 1 1 1 0 MVI A,0Eh SIM As interrupções RST 7.5 e RST 6.5 são mascaradas, ou seja, são impedidas de operar. A interrupção RST 5.5 está habilitada para operar ABACUS: Mascara RST7-5 e RST6-5.hex 177 177 Microprocessador 8085
Contagem acionada por RST 5.5 com máscara em RST 7.5 e RST 6.5 Início RST5.5 SP 2090 H A 0E H Seta Máscara (SIM) A 00 H A A + 1 Mostra A Mostra A N A = 00? Habilita Interrupções (EI) Habilita Interrupções (EI) S 178 RET Abacus: Mascara RST7-5 e RST6-5.hex 178 Microprocessador 8085
Contagem crescente com RST 7.5 e decrescente com RST 6.5 Início RST7.5 RST6.5 SP 2090 H A 09 H Seta Máscara (SIM) A 00 H A A + 1 Mostra A A A - 1 Mostra A Mostra A N A = 00? N A = 00? Habilita Interrupções (EI) Habilita Interrupções (EI) S Habilita Interrupções (EI) S RET RET Abacus: Cresce e Decre com RST.hex 179 179 Microprocessador 8085
Leitura da Máscara de Interrupção SID I7.5 I6.5 I5.5 IE M7.5 M6.5 M5.5 Após a instrução RIM o conteúdo do acumulador passa a conter o estado das máscaras RIM Read Interrupt Mask SID Serial Input Data I7.5, I6.5 e I5.5 1 máscara pendente 0 sem máscara pendente IE Todas as Interrupções Habilitadas M7.5, M6.5, M5.5: 1 Máscara setada 0 Máscara não setada 180 180 Microprocessador 8085
Leitura da Máscara de Interrupção Acumulador SID I7.5 I6.5 I5.5 IE M7.5 M6.5 M5.5 Conteúdo do Acumulador após a instrução RIM: 0 1 0 0 1 1 0 0 Há uma interrupção RST 7.5 pendente ( I7.5 = 1 ) As interrupções estão habilitadas ( IE = 1 ) A máscara da interrupção RST 7.5 está setada, significando que ela não será atendida 181 181 Microprocessador 8085
Interrupções e Sistema Mínimo 182 182 Microprocessador 8085
Expandindo a Capacidade de Interrupção INTR Microprocessador 8085 INTA Controlador de Interrupção 8 pedidos de interrupção Dados 8259 183 183 Microprocessador 8085
Expandindo a Capacidade de Interrupção 8259 184 184 Microprocessador 8085
Expandindo a Capacidade de Interrupção O procedimento para uso de interrupções através do 8259 é: 1. O nível lógico de um ou mais dos pinos IR (IR0 a IR7) é levado a 1, setando o correspondente registrador de pedido de interrupção IRR; 2. O 8259 envia um pulso alto para o 8085 através do pino INTR (pino 10) 3. O 8085 envia de volta um sinal baixo INTA (Interrupt Acknowledge) de reconhecimento de pedido de interrupção; 4. Após receber o sinal de OK, o 8259 o bit ISR (In Service Register) do pedido de maior prioridade, limpa o registro de interrupção IRR correspondente e envia para o 8085 o código de chamada de subrotina; 185 185 Microprocessador 8085
Expandindo a Capacidade de Interrupção O procedimento para uso de interrupções através do 8259 é: 5. O 8085 responde com outro sinal INTA baixo solicitando o byte inferior do endereço da subrotina; 6. O 8259 envia o byte inferior de endereço correspondente ao pedido de interrupção; 7. Um outro sinal INTA baixo é enviado pelo 8085 solicitando o byte superior do endereço da subrotina; 8. O 8259 envia o byte superior do endereço da subrotina para o 8085 e, em seguida, limpa o bit ISR correspondente; 9. A seguir, o conteúdo do contador de programa (PC) é enviado para a pilha e o processamento é desviado para o endereço indicado 186 186 Microprocessador 8085
Sistema Mínimo 187 187 Microprocessador 8085
Sistema Mínimo Pino A 13 Pino usado para habilitar/desabilitar a RAM e a ROM. A 13 CE CE1\ Pastilha Habilitada 0 0 0 CI 8355 1 1 1 CI 8156 ROM 8355 tem 2048 bytes (800 h) de memória = 2 Kbytes Posições ocupadas 0 a 2047 (000 h a 7FF h) Número de linhas de endereço necessárias: 11 (AD 0 a A 10 ), porque 2 11 = 2048 RAM 8156 tem 256 bytes (100 h) de memória Posições ocupadas 0 a 255 (00 h a FF h). Número de linhas de endereço necessárias: 8 (AD 0 a AD 7 ), porque 2 8 = 256. Endereço inicial escolhido para a memória RAM: 2000 h Endereço final: 20FF h. 188 188 Microprocessador 8085
Sistema Mínimo A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 Endereço Inicial da ROM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Endereço Final da ROM 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 7 F F Endereço Inicial da RAM 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 Endereço Final da RAM 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 2 0 F F 189 189 Microprocessador 8085
Sistema Mínimo Kit Didático Memória RAM do Kit didático: RAM 2114 1 K de memória / 4 bits (São utilizadas duas-a-duas para formar 1 byte por endereço) São necessárias 10 linhas de endereço: 2 10 = 1024 (400h) De AD 0 a A 9 Posições de memória de cada pastilha: 0 a 1023 (000 h a 3FF h) Endereço inicial da RAM: 4000 h Endereço Final da RAM: 43FF h A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 Endereço Inicial da primeira RAM 2114 do Kit Didático 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 Endereço Final da primeira RAM 2114 do Kit Didático 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 4 3 F F 190 190 Microprocessador 8085
Sistema Mínimo Kit Didático A Segunda RAM 2114 do Kit didático deve ser acessada a partir do primeiro endereço após a primeira RAM, ou seja, endereço 4400 h. A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD AD 6 AD 5 AD AD 3 AD 2 AD AD 0 Endereço Inicial da SEGUNDA RAM 2114 do Kit Didático 7 4 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 4 4 0 0 Endereço Final da SEGUNDA RAM 2114 do Kit Didático 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 4 7 F F 191 191 Microprocessador 8085
Sistema Mínimo Kit Didático A Terceira RAM 2114 do Kit didático deve ser acessada a partir do primeiro endereço após a primeira RAM, ou seja, endereço 4800 h. A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD AD 6 AD 5 AD AD 3 AD 2 AD AD 0 Endereço Inicial da TERCEIRA RAM 2114 do Kit Didático 7 4 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 4 8 0 0 Endereço Final da TERCEIRA RAM 2114 do Kit Didático 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 4 B F F 192 192 Microprocessador 8085
Sistema Mínimo Kit Didático A Quarta RAM 2114 do Kit didático deve ser acessada a partir do primeiro endereço após a primeira RAM, ou seja, endereço 4C00 h. A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD AD 6 AD 5 AD AD 3 AD 2 AD AD 0 Endereço Inicial da QUARTA RAM 2114 do Kit Didático 7 4 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 4 C 0 0 Endereço Final da QUARTA RAM 2114 do Kit Didático 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 4 F F F 193 193 Microprocessador 8085
Sistema Mínimo Kit Didático 194 194 Microprocessador 8085
Sistema Mínimo Kit Didático Decodificador 74138 C B A Saída Selecionada 0 0 0 Y o 0 0 1 Y 1 0 1 0 Y 2 0 1 1 Y 3 1 0 0 Y 4 1 0 1 Y 5 1 1 0 Y 6 1 1 1 Y 7 195 195 Microprocessador 8085
A 12 Sistema Mínimo Kit Didático Decodificador 74138 A 11 A 10 CS\ 2 RAM 2114 4000h 43FFh RAM 1 A 14 CS\ 2 RAM 2114 4400h 47FFh RAM 2 CS\ 2 RAM 2114 4800h 4BFFh RAM 3 CS\ 2 RAM 2114 4C00h 4FFFh RAM 4 196 196 Microprocessador 8085
Características do CI 8156: 197 197 Microprocessador 8085
Características do CI 8156: Endereços de E/S Número das Portas As instruções IN e OUT no CI 8156 usam apenas os três bits menos significativos do endereço: AD 2, AD 1 e AD 0. No entanto, durante o acesso às portas, o número da porta é duplicado, sendo colocado tanto no barramento inferior quanto no superior. Assim, A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 = AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 Endereçamento da porta 21h: 0 0 1 0 0 0 0 1 = CE 0 0 1 0 0 0 0 1 Barramento de Dados/Endereços 198 198 Microprocessador 8085
Características do CI 8156: Endereços de E/S Número das Portas AD 2 AD 1 AD 0 Seleção Número da Porta 0 0 0 Registradores de comando e de status 20 h 0 0 1 Porta A 21 h 0 1 0 Porta B 22 h 0 1 1 Porta C 23 h 1 0 0 8 bits menos significativos do temporizador 24 h 1 0 1 2 bits de modo do temporizador e 6 bits superiores do temporizador 25 h 199 199 Microprocessador 8085
Porta 20h - Registro de comando Características do CI 8156 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 Temp Temp Int. B Int. A Porta Porta Porta Porta C C B A Dígito das Portas A ou B = 0 Porta setada como entrada = 1 Porta setada como saída A 0 0 0 0 0 0 1 0 MVI A, 02 h OUT 20 h Porta A (Porta 21 h) setada como entrada Porta B (Porta 22 h) setada como saída 200 200 Microprocessador 8085
Métodos de Controle de Entrada e Saída Há basicamente duas formas de comunicação entre o computador e um periférico: Comunicação Serial: Um bit por vez Exemplos: comunicação via linha telefônica (através de um modem), mouse, câmara fotográfica digital, impressora serial, instrumentos eletrônicos, agendas eletrônicas. A taxa de transmissão é medida em bits por segundo (bps ou bits/s). Comunicação Paralela: Grupo de bits enviados simultaneamente Exemplo: comunicação entre computador e impressora paralela. A taxa de transmissão é, em geral, medida em bytes por segundo; Taxa de transmissão maior que na serial Distância pequena entre transmissor e receptor 201 201 Microprocessador 8085
Métodos de Controle de Entrada e Saída Técnicas de hardware e software utilizadas para controlar o fluxo de dados entre o computador e seus periféricos. Varredura (ou E/S por consulta ou Pooling}: Técnica de comunicação na qual o processador interroga periodicamente o periférico para determinar seu estado; Pode ser síncrona ou assíncrona Desvantagem: perda de tempo: o processador abandona o programa principal para fazer a varredura mesmo se nenhum periférico deseja serviço. 202 202 Microprocessador 8085
Métodos de Controle de Entrada e Saída 8 bits Varredura Porta 10 h bit 6 Periférico Início Microprocessador 8085 8 bits Porta 11 h bit 7 Status Dados Porta 12 h Dados 203 203 Microprocessador 8085
Métodos de Controle de Entrada e Saída Varredura (ou E/S por consulta ou Pooling): Outro exemplo: Homogeneizador microprocessado AA saída conversor AD é lida periodicamente, a cada ciclo de execução do programa, independentemente se há ou não um novo valor na saída do AD velocidade ADC 0808 8085 End of Conversion (EOC) Start of Conversion (START) 204 204 Microprocessador 8085
Métodos de Controle de Entrada e Saída Técnicas de hardware e software utilizadas para controlar o fluxo de dados entre o computador e seus periféricos. Interrupção: Técnica de comunicação na qual o processador somente é ocupado se há pedido de serviço de algum periférico; Mecanismo assíncrono; Transferência de dados é feita por software (mais lento que DMA) 205 205 Microprocessador 8085
Métodos de Controle de Entrada e Saída Interrupção: RST 5.5 Interrupção Microprocessador 8085 Reconhecimento Dados Periférico 206 206 Microprocessador 8085
Métodos de Controle de Entrada e Saída Transferência por DMA: HOLD Microprocessador 8085 HLDA Barramentos Controlador de DMA MEMÓRIA 207 207 Microprocessador 8085
DECODIFICAÇÃO COMPLETA DAS PASTILHAS 8355 E 8156 E EXTENSÃO DE MEMÓRIA E PORTAS 208 208 Microprocessador 8085
Sistema Mínimo 209 209 Microprocessador 8085
2 pinos de habilitação: CE2 e CE1\ Pastilha 8355 210 210 Microprocessador 8085
Pastilha 8355 Uma opção para eliminar todas as sombras de memória e das portas de Entrada e Saída: Memória: A 15 e A 14 = 0 Habilita CE2 A 13, A 12 e A 11 = 0 e IO/M\ = 0 A 10 é irrelevante 211 Entrada e Saída: A 15 e A 14 = 0 Habilita CE2 A 13, A 12 e A 11 = 0 e IO/M\ = 1 A 10 = 0 211 Microprocessador 8085
Pastilha 8355 Endereçamento de Memória A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 Endereço Inicial da ROM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Endereço Final da ROM 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 7 F F 212 212 Microprocessador 8085
Pastilha 8355 Endereçamento das Portas Duplicação dos bytes inferior e superior A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 Endereçamento das Portas do 8355 (Portas 00H, 01H, 02H, 03H) 0 0 0 0 0 0 X X X X X X X X X X Endereçamento da Porta A (Porta 00H) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Endereçamento da Porta B (Porta 01 H) 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 Endereçamento da Porta DDR A (Porta 02 H) 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 Endereçamento da Porta DDR B (Porta 03 H) 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 213 213 Microprocessador 8085
Pastilha 8156 1 pino de habilitação: CE 214 214 Microprocessador 8085
Pastilha 8156 Uma opção para eliminar todas as sombras de memória e das portas de Entrada e Saída: Memória: A 15, A 14, A 12, A 11 = 0 e A 13 = 1 + A 10, A 9 e A 8 = 0 e IO/M\ =0 Habilita CE 215 Entrada e Saída: A15, A14, A12, A11 = 0 e A13 = 1 + IO/M\ = 1 e A10, A9 e A8 irrelevante 215 Microprocessador 8085
Pastilha 8156 Endereçamento de Memória A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 Endereço Inicial da RAM 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 Endereço Final da RAM 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 2 0 F F 216 216 Microprocessador 8085
Pastilha 8156 Endereçamento das Portas Duplicação dos bytes inferior e superior A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 AD 7 AD 6 AD 5 AD 4 AD 3 AD 2 AD 1 AD 0 Endereçamento das Portas do 8156 (Portas 20H, 21H, 22H, 23H, 24H e 25H) 0 0 1 0 0 X X X X X X X X X X X Endereçamento da Porta de Comando (Porta 20H) 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 Endereçamento da Porta A (Porta 21 H) 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 Endereçamento da Porta B (Porta 22 H) 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 Endereçamento da Porta C (Porta 23 H) 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 217 217 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Porta de Entrada Habilitação Linhas de Endereço superiores D 7 AD 7 Periférico (Chaves, AD, sensores...) Chaves de 3 estados 8085 D 0 AD 0 Exemplos: 74LS125 e 74LS126 218 218 Microprocessador 8085
Ampliando a quantidade de Portas de E/S 74LS125 e 74LS126 Habilitação: nível lógico baixo Habilitação: nível lógico alto 219 219 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Criando a Porta de Entrada FFH 220 220 Microprocessador 8085
Diagrama de Temporização da Instrução IN Porta T1 T2 T3 T4 T1 T2 T3 T1 T2 T3 PC FORA PC+1 PC INST IR PC FORA PC+1 PC Byte Z, W WZ FORA Porta A A15-A8 PC H PC H Porta AD7-AD0 PC L INST PC L Byte Porta Dados ALE RD\ WR\ IO-M\ 221 221 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Criando a Porta de Entrada FEH 222 222 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Portas de Entrada de FCH a FFH 74LS125 74LS125 223 223 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Criando Portas de Saída Linhas de Endereço superiores Habilitação AD 7 D 7 Periférico 8085 Latch (LEDs, DA, atuadores...) AD 0 D 0 Exemplos: 74LS75 e 74LS173 224 224 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Criando Portas de Saída 74LS173 IE Input Enable: ativo baixo OE Output Enable: ativo baixo MR Master Reset: ativo alto CP Pulso de Clock 225 225 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Criando Portas de Saída 226 226 Microprocessador 8085
Ampliando a quantidade de Portas de E/S 74LS173 227 227 Microprocessador 8085
Ampliando a quantidade de Portas de E/S Portas de Saída FC H a FF H 228 228 Microprocessador 8085
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. 229 229 Microprocessador 8085