• Nenhum resultado encontrado

Apostila de Microprocessadores

N/A
N/A
Protected

Academic year: 2021

Share "Apostila de Microprocessadores"

Copied!
93
0
0

Texto

(1)

www.mackenzie.com.br

APOSTILA

MICROPROCESSADORES

SEGUNDO SEMESTRE 2005

PROF. IVAIR REIS N. ABREU

www.ivair.com.br

(2)

Revisão: 03/08/2005

PLANEJAMENTO DIDÁTICO PEDAGÓGICO DA DISCIPLINA MICROPROCESSADORES APLICAÇÃO - SEGUNDO SEMESTRE 2005

CURSO SUPERIOR DE TECNOLOGIA ELÉTRICA - FCBEE UNIDADE: FCBEE

DISCIPLINA: Microprocessadores PROFESSOR: Ivair Reis Neves Abreu Departamento: Eletrônica

ETAPA: 4 CARGA HORÁRIA: 6 aulas teóricas SEMESTRE LETIVO: primeiro

Introdução: a proposta deste planejamento pedagógico baseia-se no processo de Qualidade Total (TQM) tendo como base o principio PDCA ou seja, PLAN, DO, CHECK e ACT. O planejamento é o próprio documento proposto, com objetivos, pré-requisitos, plano de aulas, avaliação e bibliografia deixando bem claro a proposta do curso de forma a ajustar as expectativas necessárias. A ênfase no ciclo e não apenas no processo de avaliação (comum em cursos pedagógicos) leva a entender que o objetivo é o processo de capacitação do aluno dentro do objetivo proposta através de um plano de aulas gradual, acompanhada de verificações contínuas e principalmente processo de ação corretiva.

Internet -> no site www.ivair.com.br, ler texto de Sistema PDCA (download) e acessar links de Sistemas da Qualidade.

08/08/2005 22/09/2005

x---x Pré-Requisito -> 14 semanas -> Objetivo Final

PRÉ-REQUISITOS: Eletrônica Digital (Combinacional e Sequencial) e Programação Estruturada (Linguagem C).

OBJETIVO: ampliar a capacidade de projeto (HD) de sistemas programáveis (ênfase na utilização de periféricos) e programação estruturada (SW) Assembly e C. Estudo de periféricos LCD, teclado matricial, comunicação serial e conversor A/D. Estudo de sistemas para processamento digital de sinais

EMENTA:

- Revisão de Conceitos de Microprocessadores - Arquitetura do Microcontrolador 8051:

(3)

- Projetos de Sistemas Práticos com Microcontroladores: - Interfaces de controle: display LCD e conversor A/D METODOLOGIA

Aula expositiva com auxílio de recursos audiovisuais (principalmente retroprojetor). O aluno deverá constantemente participar através de aplicação de exercícios e projetos. Uma apostila envolvendo todos os pontos abordados servirá de apoio didático durante as exposições. Trabalhos levarão o aluno a refletir sobre pontos avançados não abordados diretamente na sala de aula.

CRITÉRIO DE AVALIAÇÃO:

Média = (0,2 x Lab + 0,7 x P1 + 0,1 T) x 0,5 + P2 x 0,5

onde P1 = primeira prova semestral - 30/09/2005

P2 = segunda prova semestral. - Secretaria (depois do dia 24/11) T = trabalho individual de projeto de um sistema de controle.

Lab = laboratório Média > 7 -> aluno aprovado

5,5 <= média <= 6.9 -> aluno aprovado se presença no curso > 80% Calendário de Provas

CONTEÚDO PROGRAMÁTICO:

Conceituação de Sistemas Programáveis, Arquitetura Microprocessadores e Microcontroladores. Sistemas auxiliares (inicialização, temporização, interrupção, DMA, sincronização e multiplexação de pinos. Sistema mínimo 8085.

Arquitetura do Microcontrolador 8051:

- Definir Arquitetura típica de microcontrolador

- Estudo da Arquitetura da família de microcontrolador 8051 da Intel. - Sistema Mínimo com o 8051.

Linguagem Assembler com as instruções do 8051: - Conceitos de Linguagem Estruturada.

- Definir código de operação de instruções e mneumônicos do 8051. Instruções de transferência de informação, aritmética, lógica, transferência de controle e booleana.

- Estudo de rotinas típicas de controle: rotina de tempo, escrita e leitura de periféricos.

Projetos de Sistemas Práticos com Microcontroladores: - Alarme Residencial.

- Controle de Iluminação.

(4)

Interface LCD

- Sistema Mínimo - Rotinas de acesso Conversos A/D

- Princípios do conversor A/D e D/A - Sistema Mínimo

- Rotinas de Acesso

Projetos integrados de CLP com LCD e A/D. BIBLIOGRAFIA

- APLICAÇÕES PRÁTICAS DO MICRONTROLADOR 8051. Vidal Pereira da Silva Jr. - Érica

- MICROCONTROLADORES 8051. Salvador P. Gimenez. Prentice Hall - THE 8051 FAMILY OF MICROCONTROLLERS. Richard H. Barnett.

Prentice Hall.

- THE 8051 MICROCONTROLLER. I. Schott Mackenzie. Prentice Hall. - APOSTILA MICROPROCESSADORES . Ivair Reis Neves Abreu Internet: www.microcontroller.com www.8052.com www.vidal.com.br www.questlink.com www.microchip.com www.ti.com www.zilog.com www.asm51.eng.br

Plano de Aula: Segundo Semestre de 2005 Início: 08/08

Término: 21/11

Prazo entrega final das notas: 14/12 Falta Prevista: ----

Reposição: ---- Feriado: 14/11/2005

(5)

1) - Conceitos de Sistemas Programáveis

Planejamento (P):

Este capítulo capacitará o aluno nos seguintes pontos: - Conceituar Sistema Programável

- Estrutura de um computador: unidade central de processamento, memória semicondutora e periféricos de entrada / saída.

- Definição de microprocessadores e microcontroladores. - Barramentos de dados, endereço e controle.

- Revisar conceitos de eletrônica digital combinacional e seqüencial. - Revisar sistema numérico digital e hexadecimal.

- Arquitetura de memória semicondutora volátil (RAM) e não volátil (ROM). Projetos com bancos de memória.

- Arquitetura de um microprocessador: unidade lógica aritmética, decodificador de instruções e registradores.

- Registradores acumulador, flag, contador de programa (PC) e apontador de pilha (SP). Conceito de pilha e sub-rotina.

- Sistema de inicialização, “reset” e “watch dog”.

- Sistema de temporização, ciclo de instrução e ciclo de máquina. - Sistema de interrupção.

- Multiplexação de barramentos (A / D) em microprocessadores. - Acesso Direto a Memória (DMA).

- Sincronização de memória / periféricos.

- Estudo da arquitetura do microprocessador 8085. - Sistema Mínimo 8085.

- Interpretação de diagramas de tempo em microprocessadores.

Execução (D):

1.1) - Sistema Programável:

A grande utilização dos microprocessadores nos sistemas eletrônicos atuais vem do fato de serem programáveis, ou seja, estes sistemas são compostos por um conjunto físico (Hardware) constante, com repetibilidade, dentro de um processo industrial e portanto com uma ótima relação custo / benefício que realizará determinada tarefa, orientado por uma seqüência de instruções conhecidas por programa (Software), proporcionando grande versatilidade e poder de processamento. Observem a determinação da tarefa do sistema a partir a mudança do programa, mantendo o sistema físico inalterado.

(6)

Figura 1.1 - Estrutura de um sistema programável Exemplos:

¾ O computador pessoal (PC) é padronizado e pode realizar infinitas funções com a simples troca de aplicativo. Este sistema jamais custaria uma base de US$ 1.000,00 se fosse customizado para cada aplicação. Um mesmo computador é capaz, sem alteração nenhuma ao nível de máquina, de torna-se um poderoso processador de texto, ou apenas trocando-se o programa ser um grande parceiro em um jogo de xadrez.

¾ O próprio ser humano é um sistema físico relativamente padronizado (a genética já prova a grande semelhança entre nós) mas com grandes diferenças de capacidade de acordo com a experiência de vida individual e oportunidade de aprendizado.

O sistema físico programável recebe normalmente a denominação de computador. 1.2) - Estrutura de um computador:

Essencialmente os sistemas programáveis podem ter as suas estruturas resumidas a 3 blocos: Unidade Central de Processamento (C.P.U), Memória e Periféricos.

(7)

Figura 1.2 - Arquitetura Computador mais barramentos 1.2.1) - Unidade Central de Processamento:

Bloco com capacidade de realizar tarefas (controlar sinais de controle e temporização do sistema, bem como barramentos de dados e endereço) orientadas por instruções. É o principal elemento de decisão do computador, podendo ser comparado ao cérebro do computador “ser humano”.

Quando a C.P.U. está encapsulada em um único chip, temos um MICROPROCESSADOR. As aplicações típicas de microprocessadores são voltadas a multimídia, onde temos processamento de som, imagem e comunicação simultaneamente.

1.2.2) - Memória:

Bloco semicondutor com capacidade de armazenar informações. Armazena basicamente as instruções a serem processadas (através de seus códigos de operação), variáveis (como resultados de operações da C.P.U.) ou dados de entrada e saída dos periféricos. O programa a ser processado deve necessariamente estar presente na memória (por isso o tamanho cada vez maior das memórias voláteis - RAMs - dos computadores atuais, pois os programas têm tamanhos cada vez maiores).

A memória dos computadores pode ser dividida em volátil (RAM estática / dinâmica) e não voláteis (ROM / PROM / EPROM / E2PROM - FLASH).

Em computadores pessoais temos o conceito de BIOS (programa de inicialização de periféricos) + SISTEMA OPERACIONAL ( interface gráfica amigável ao usuário) + APLICATIVO (programa final).

(8)

Ex: BIOS inicializa placa de vídeo, interfaces seriais e paralelas, comunicação. Após este processo, existe a busca do sistema operacional (Windows) e aplicativos.

Em sistemas dedicados, temos o conceito de Firmware (software dedicado) normalmente residente em uma memória não volátil.

Ex: Firmware contido em uma impressora a laser ou um alarme residencial.

Os seres humanos, de maneira análoga, tem a memória para armazenamento de funções permanentes (aprendizado, controle dos órgãos internos) e armazenamento de funções temporárias (lembranças armazenadas apenas durante uma tarefa como dirigir entre a residência e o local de trabalho). Resumindo:

O computador pessoal (PC) possui o sistema BIOS + SISTEMA OPERACIONAL (WINDOWS / LINUX) + APLICATIVO (WORD, EXCEL, GAMES, ETC).

Equipamentos Dedicados possuem FIRMWARE dedicado. 1.2.3) - Periféricos:

Bloco de comunicação do conjunto micro / memória com o meio exterior. Pode ser caracterizado como entrada (teclado, mouse, etc.) ou saída (monitor, impressora, plotter, etc.). É a interface de comunicação com o usuário e a parte do sistema que normalmente tem acesso.

1.3 - Definição de Microprocessador, Processador Digital de Sinais (DSP) e Microcontrolador:

Microprocessador -> CPU encapsulada em um único circuito integrado. Pelo fato de concentrar apenas a função de controle no “chip”, as aplicações de microprocessadores são complexas voltadas para multimídia (controle de som + imagem + comunicação).

Ex:

- Microprocessador Pentium IV da Intel. A aplicação do Pentium é em computadores multimídia.

- Microprocessador 8085. Será estudado neste capítulo.

Microcontrolador -> CPU + MEMORIA + PERIFËRICOS encapsulados em um único circuito integrado. Dedicado a funções menos complexas de controle. Normalmente está “embarcado” em equipamentos dedicados. Utiliza o conceito de “firmware” para o programa dedicado.

(9)

Ex:

- Microcontrolador 8051 da Intel

- Microcontrolador PIC12F629 da Microchip Aplicações finais típicas:

- Controladores Lógicos Programáveis (CLPs) em plantas industriais - Injeção eletrônica de automóveis.

DSP -> também utiliza o conceito de CPU dedicada, podendo ser microcontrolador ou apenas CPU dependendo da capacidade de processamento. Possui um poder de processamento intermediário entre produtos com microcontroladores (dedicados) e produtos com microprocessadores (multimídia). Ex:

- DSP TMS320C5XXX da Texas Instruments ( www.ti.com ) - DSPIC da Microchip ( www.microchip.com )

Aplicações finais típicas:

- Telecomunicações como telefone celular. - Controle de motores.

- Processamento de imagem médica (tomografia computadorizada).

O curso de Microprocessadores abordará projetos de CLPs utilizando microcontroladores. Isto ocorre devido:

- O conceito dos 3 sistemas é o mesmo.

- A prática em laboratório com microcontroladores é mais útil utilizando as ferramentas de desenvolvimento com esta tecnologia.

- As empresas nacionais com capacidade de dominar o ciclo de projetos de sistemas programáveis concentram-se em aplicações dedicadas com microcontroladores (empresas de segurança, controle de rastreabilidade de gado, coletores de dados de cartão de ponto, calibradores automáticos de pneus, CLPs, etc).

- A grande maioria dos cursos introdutórios das mais conceituadas universidades mundiais estudam sistemas com microcontroladores.

- O número de publicações acadêmicas com microcontroladores é muito maior que as dedicadas a DSP e microprocessadores.

(10)

Rastreamento de veículos

www.autotrac.com.br Telefone Público www.icatel.com.br

Figura 1.3 - Sistemas utilizando microcontroladores 1.4) - Revisão dos conceitos de Eletrônica Digital

Por que os computadores modernos são digitais e não analógicos

como os seres humanos???

Analisando sob a ótica da tecnologia disponível (integração de circuitos eletrônicos), é muito mais fácil integrar chaves eletrônicas (transistores de 2 estados) do que sistemas analógicos (amplificadores operacionais). Desta forma, mesmo considerando uma representação binária de um maior número de símbolos, é mais facilmente implementável um byte com 8 chaves eletrônicas do que um amplificador operacional representando 256 níveis diferentes.

Atualmente consegue-me integrar milhões de transistores em uma pastilha, chaves que são a base da representação numérica digital. Um processador Pentium IV hoje é implementado com cerca de 40 milhões de chaves eletrônicas (os primeiros processadores tinham um pouco mais de 10 mil transistores).

O transistor normalmente utilizado para implementar um sistema lógico integrado é o Transistor de Efeito de Campo (FET) pelo fato do mesmo ter um processo construtivo mais simples (semelhante ao capacitor) e ser possível uma maior integração desta tecnologia quando comparado ao Transistor Bipolar.

1.5) - Revisão sistema numérico binário (B) e hexadecimal (H).

Devido a facilidade de implementação do sinal binário (através de chaves transistorizadas - saturada ou cortada), toda a informação dentro do computador (com exceção de interfaces analógica / digitais) possui a forma binária. Por isso, é fundamental o perfeito conhecimento dos diversos sistemas de numeração, bem como a conversão entre cada base.

(11)

- Binário -> base 2 -> mais fácil de chavear (através de transistores, chaves, etc.)

- Hexadecimal binário -> converte cada 4 números binários (nibble) em números de 0 (0000B) a F (1111B)

- Decimal binário (B.C.D.) -> converte cada 4 números binários em números de 0 (0000B) a 9 (1001B)

- Octal -> converte cada 3 números binários em números de 0 (000B) a 7 (111B).

Conversões importantes: Binário -> Decimal <- Binário -> Hexadecimal <- Lembre-se: 1 bit -> 0 e 1 1 byte = 8 bits 1 word = 2 bytes 1 double-word = 4 bytes Ex:1) - 1010 0110 -> binário -> hexadecimal 2) - 255 -> decimal -> binário 3) - 2A0FH -> hexadecimal -> decimal

1.6 - Revisão de Sistema Digital (Pré-requisito)

Eletrônica Digital Combinacional: sem realimentação entre saída e entrada, a lógica dos circuitos combinacionais pode ser representado através de uma tabela da verdade.

Portas Lógicas: AND, OR, OR-EXCLUSIVE, NOT Decodificadores 3x8 -> procurar na Internet 74HC138

(12)

Figura 1.3 - Pinagem e tabela da verdade 74LS138

Eletrônica Digital Seqüencial: baseado em elementos de memória flip-flops Flip-Flop tipo RS, D (procurar Latch Octal 74HC373) e JK

Figura 1.4 - Pinagem e tabela da verdade 74LS373

1.7 - Barramento do Sistema Programável

Conforme pode ser observado na figura representativa da arquitetura do computador, os barramentos são meios físicos (normalmente trilhas de circuito impresso) interligando a CPU, memória e os periféricos de entrada / saída. Em um circuito impresso, são as trilhas interligando os diversos pinos dos “chips” do sistema.

(13)

Figura 1.4: Representação de um barramento em um lay-out de circuito impresso Considerando o tipo de INFORMAÇÃO presente no barramento, o mesmo pode ser classificado em:

- Barramento de Dados (Data Bus): carrega a informação da instrução (através do código de operação), variável do processamento (cálculo intermediário de uma fórmula por exemplo) ou informação de um periférico de E/S (dado digitado em um teclado). O tamanho da via de dados determina respectivamente o máximo número de instruções (e portanto o potencial de processamento) e a precisão do processamento aritmético (através do cálculo de ponto flutuante) ou o número de símbolos possíveis a ser representado (por exemplo, pontos de uma foto).

Ex:

1) - O processador 8085 possui 8 bits no barramento -> máximo de 256 instruções e variáveis numéricas entre -127 a +127 (ou 0 a 255).

2) - O processador Pentium IV possui 32 bits no barramento -> variáveis numéricas entre - 2147483648 e + 2147483648.

O tamanho do barramento de dados está ligado a capacidade de processamento do sistema. Se o processamento é simples (como o controle booleano de um CLP) 8 bits são suficientes. Por outro lado, se há a necessidade de um processamento complexo (como os sistema de multimídia onde há a necessidade de processarmos milhões de pontos de imagem) processamento de até 128 bits já estão disponíveis. Obviamente existe a necessidade de aumentar igualmente a velocidade do sistema pois a “paciência” do usuário é a mesma ao ligar uma lâmpada ou processar uma imagem fotográfica.

(14)

- Barramento de Endereço (Address Bus) : carrega a informação binária da localização de um dado de memória ou E/S. A capacidade de acesso é determinada pela expressão 2n. O tamanho do barramento de endereço acompanhou a evolução do poder de processamento do microprocessadores já que foi necessário cada vez mais memória para armazenar uma quantidade cada vez maior de dados.

Exemplo:

- 8085 -> 16 bits na via de endereço -> 216 = 65512 kbytes - 8088 -> 20 bits na via de endereço -> 1 Mbyte

- Barramento de controle (Control Bus): leva todas os outros sinais que não são dado ou endereçamento.

Exemplo: sinais de alimentação (Vcc e GND), sinais de temporização (clock), sinais de inicialização (reset)

1.7 - Arquitetura de memória semicondutora Memória Semicondutora:

- Não Volátil -> ROM (Read Only Memory) -> ROM (o fabricante grava uma única vez), PROM (o usuário grava uma única vez), EPROM (o usuário grava milhares de vezes após um processo de apagamento por luz ultravioleta), EEPROM (o usuário grava milhões de vezes eletricamente) e FLASH (EEPROM rápida com número menor de gravações).

(15)

Exercício

1) - Procurar na Internet as características das memórias 27C128, 27C256, 27C512, 27C1000, 27C4000

- Volátil -> RAM (Random Acess Memory) -> dinâmica (memória de massa utilizada em computadores) e estática (memória utilizando flip-flops).

Figura 1.6 - Arquitetura Memória RAM 6264 Projetos de Bancos de Memória

1) - Banco de 8 K de Eprom (BIOS) com 27C64 + 8 K de Dados com 6264. Fazer mapa de memória

2) - Banco com 32 K de Eprom com 27C64 e 32 K de RAM com 6264. Fazer mapa de memória.

(16)

Verificação: Exercícios

1) - Procurar na Internet as características dos CIs: 27C64, 6264, 74HC138, 74HC373

2)– Verificar os seguintes dados do seu computador pessoal (painel de controle ou programa Sandra) :

- Tipo de Processador

- Velocidade de Processamento - Periféricos disponíveis.

- Levantar o mapa de endereço da memória interna do computador (Ram, Bios, memória de vídeo, etc). Quantos bits de endereço estão disponíveis? Qual a capacidade máxima de memória para este número de bits.

3) - Projetar bancos de memória com a seguinte característica: - 32 K memória Eprom (27C256) e 32 K memória RAM (62256).

- 2 Mbytes memória Eprom (27C4000) e 2 Mbytes memória RAM (624000)

(17)

- Para dúvidas em Eletrônica Digital Combinacional e Sequencial estudar a bibliografia da disciplina Eletrônica Digital (Sugestão: Eletrônica Digital - Vol 1 e 2 - Malvino ou Microcomputadores e Microprocessadores - Malvino)

- Rever o conceito de memória e projeto de banco de memórias. - Procurar o professor ou monitor para tirar dúvidas

1.8) - Arquitetura de Microprocessador:

Figura 1.5 - Arquitetura típica de um Microprocessador - Decodificador de Instruções:

Bloco lógico combinacional responsável por receber o código de operação das diversas instruções e a partir deste gerar sinais de controle externos e/ou internos, bem como sinais de temporização, com o objetivo de executar a instrução. É implementado através de lógica combinacional (tabela da verdade), onde as variáveis de entrada são o código de operação do microprocessador e as variáveis de saída os diversos sinais de controle e temporização internos/externos.

- Unidade Lógica Aritmética (ULA):

Unidade responsável pela realização de operações lógico/aritméticas no microprocessador. As operações aritméticas são todas baseadas na soma (implementada através de lógica 'OU EXCLUSIVO').

Toda lógica de decisão dos programas é baseada em operações lógica/aritméticas.

Por exemplo: a comparação entre duas variáveis é implementada através da operação de subtração que por sua vez é viabilizada pela operação de complemento de 2 ('A - B = A + /B + 1').

A complexidade da ULA do microprocessador determina a capacidade do mesmo em realizar processamentos complexos (como tratamento de imagem ou som em

(18)

sistemas multimídia). Exemplos clássicos são os microprocessadores tipo D.S.P. (Processador Digital de Sinais) ou os coprocessadores aritméticos presentes na família de computadores PC até os microprocessadores 486-SX.

Registradores:

Posições de memória internas (latchs tipo D) responsáveis pelo armazenamento temporário de informações gerais (registradores genéricos) ou específicas.

Registradores para armazenamento de dados ou endereços dentro do microprocessador. São implementados através de "latchs" internos (podendo ser comparados a posições de memória dentro do microprocessador). Quanto maior o número de registradores internos maior é a velocidade de processamento, pois não é necessário o acesso à memória externa para armazenamento de variáveis. É comum os microcontroladores e os D.S.P.s possuírem algumas centenas de 'posições de memória internas', diminuindo em muito o tempo de acesso à memória. Outro exemplo bastante apropriado é a memória "caches" internas aos microprocessadores 486 e PENTIUM.

Registradores Específicos:

- Acumulador: principal registrador de auxílio da U.L.A. Bastante acessado pelas instruções, é o registrador armazenador dos resultados da U.L.A. O número de bits do acumulador pode ser do tamanho da via de dados ou o dobro (para aumentar a precisão do resultado presente no acumulador).

- Flag: registrador sinalizador de algumas condições do acumulador (portanto do resultado) depois de realizadas operações lógico / aritméticas. As condições encontradas normalmente são: zero, sinal, "vai-um", "overflow", paridade, etc.

Ex: Flag do 8085:

| S | Z | - | AC | - | P | - | C |

- S -> flag de sinal. Indica a condição do oitavo bit do acumulador. S = 0 -> positivo S=1 -> negativo

- Z -> flag indicar de zero.

Z = 1 -> zero no acumulador , Z = 0 -> número diferente

de zero.

- P -> flag de paridade. Indica o número de '1' no acumulador. P = 1 -> número par , P = 0 -> número impar

- AC -> flag auxiliar carry. Em 1 indica "vai um" entre primeiro e segundo

nibble do resultado.

(19)

Ex: BBH + FAH 1 0 1 1 1 0 1 1 FLAG: S Z - AC - P - C + 1 1 1 1 1 0 1 0 --- Verificação Exercícios

1) – Qual o conteúdo do Acumular e Flag da seguinte rotina? Haverá salto no programa?

MOV A,CAH ;CARREGA ACUMULADOR COM O NÚMERO CA ADD A,9DH ;SOMA A + 9D

JZ SALTO ;SALTA SE Z = 1

2) – Pesquisar as principais características dos barramentos ISA e PCI do computador PC.

3) – Pesquisar as principais características do barramento serial I2C (site da Philips ou Microchip).

4) – Pesquisar as principais características do co-processador aritmético do processador Pentium II.

5) - Qual o conteúdo do Acumular e Flag da seguinte rotina? Haverá salto no programa?

MOV A,7AH MOV B,53H

ADD A,B

JNC SALTO

- Contador de Programa (PC): registrador armazenador do endereço da próxima instrução. Determina o fluxo do programa. Quando o programador altera o valor do PC, necessariamente desvia o programa (através de saltos sem retorno ou chamada de subrotinas).

Exemplo:

- Instrução: JMP 2000H -> carrega o PC com o endereço 2000H. O conteúdo anterior do PC é destruído (por isso o programa não consegue voltar).

- Instrução: CALL 2000H -> carrega o PC com o endereço 2000H. Neste caso, o conteúdo anterior do PC (PCH->SP-1 e PCL->SP-2) é salva em uma região de memória (interna ou externa ao microprocessador) conhecida por PILHA. Ao ser executada a instrução RET, o programa retorna ao ponto em que foi chamado. A rotina acessada pela instrução CALL é conhecida por subrotina. O conteúdo do

(20)

registrador SP é decrementado de dois para possibilitar o salvamento de outros parâmetros na pilha (ou a chamada de outras subrotinas dentro de subrotinas)

- Apontador de Pilha (SP): registrador armazenador do endereço na área de pilha do sistema. Será nesta área que serão armazenados endereços de retorno das sub-rotinas, bem como parâmetros dos diversos registradores.

1.9) - Conceitos Complementares de um Microprocessador: 1.9.1) - Temporização das Instruções - Ciclo de Instrução:

As atividades de um processador central são cíclicas. O processador busca a instrução na memória, executa a tarefa ligada ao código lido, busca a próxima instrução e assim por diante. A temporização de um computador depende basicamente do sinal de clock que sincroniza todas as operações do sistema. O clock é gerado a partir de um oscilador com freqüência determinada normalmente por um cristal. Este cristal pode estar interno ao microprocessador ou ser implementado através de um C.I. dedicado a isto.

A figura abaixo mostra um exemplo de clock gerado através de cristal, LC e RC :

(21)

Figura 1.6 - Oscilador do 8085

Ciclo de instrução: número de períodos de clock necessários para executar uma instrução. O ciclo de instrução é composto basicamente dos ciclos de máquina M1 e M2.

Ciclo de Máquina: composto dos ciclos M1 ou busca da instrução (onde o código de operação é lido na memória) e ciclo M2 ou ciclo de execução. O ciclo de busca da instrução vai depender do número de bytes necessários para a leitura da instrução (por exemplo: o 8085 possui instruções de até 3 bytes que obviamente necessitam de 3 ciclos de busca de códigos na memória). O tempo total necessário para o ciclo de instrução é determinado pelo número de estados T (ou número de pulsos do clock) fornecidos pelo conjunto de instruções do microprocessador.

Exercícios:

1) - Calcular os ciclos M1, M2 e o ciclo de instrução para a instrução MOV A,B utilizando fc = 6 Mhz, n = 3, M1 = 4 clocks e M2 = 3 clocks.

(22)

2) - Idem para a instrução OUT 10h, fc = 1 Mhz, n=4, M1 = 4 clocks, M2 = 3 clocks e M3 = 3 clocks.

1.9.2) - Circuito de Inicialização:

Também conhecido por "reset", a entrada de inicialização nos microprocessadores carrega o registrador de endereço PC com o endereço inicial da área de programa (normalmente 0). Pode ser acionado com sinal positivo (0 -> 1) ou negativo (1 -> 0). O manual do microprocessador normalmente informa o tempo mínimo necessário para que o sinal de reset fique ativo de tal forma a se determinar a constante RC do circuito. É fundamental que o sinal de reset seja gerado cada vez que o microprocessador seja ligado (reset automático) e em pequenas quedas de rede (pois o microprocessador quando tem a tensão de alimentação abaixo do nível mínimo recomendado, passa a executar tarefas fora do controle). O circuito abaixo mostra o reset utilizado pelo 8085 (lógica positiva, reset manual e automático). Nota-se a função do diodo em descarregar rapidamente o capacitor em caso de queda de energia.

Figura 1.7 - Sistema de Reset

- Watch Dog: circuito supervisório que inicializa o microprocessador a cada período de tempo configurável (1 ou 2 segundos normalmente) se não receber um sinal do microprocessador. Desta forma o programa do sistema deve, em um

(23)

tempo menor que o tempo do W.D., gerar este sinal. Se o programa se perder e não gerar o referido sinal, o W.D. inicializará o microprocessador.

Figura 1.8 - Supervisório MAX690 e circuito de aplicação típica Verificação

Exercício:

1) - Determinar o mínimo valor de um capacitor para um circuito de reset automático considerando:

Vcc = 5V, Vreset = 2/3 Vcc R = 100k

Freqüência: 100 Mhz

Número de clocks mínimo para reset: 100

2) – Calcular o período dos ciclos M1 (4 clocks), M2 (3 clocks) e o ciclo de instrução para a instrução MOV A,B, freqüência do cristal de 6 Mhz.

3) – Idem para a instrução OUT 10h, fc = 1 Mhz e M1=4clocks, M1'= 3 clocks e M2 = 3 clocks.

1.9.3) - Interrupções:

Sinal de entrada no microprocessador gerado normalmente por periféricos, fazendo o microprocessador parar seu processamento, salvar o endereço atual, saltar para uma sub-rotina específica do periférico (endereçado pelo vetor de interrupção, que pode ser fixo ou variável) e posteriormente retornar ao ponto de parada (poderíamos comparar o processo a uma chamada de subrotina através de um sinal de hardware).

Ex: -Atendimento ao teclado: quando uma tecla é acionada, o teclado gera um sinal positivo que ao entrar na interrupção do microprocessador faz o mesmo parar o processamento, salvar o endereço atual do PC na pilha e saltar para o endereço indicado no "vetor de interrupção" (variável ou fixo).

(24)

-Interrupções disponíveis no 8085: 5 entradas de interrupções ativadas em nível alto por um dispositivo externo. Neste caso, o 8085 interrompe a seqüência de execução do programa e salta para um endereço pré-determinado (vetor de interrupção). As interrupções possuem os seguintes vetores e prioridades:

Interrupções Endereço + prioritário ^ TRAP 0024H | | RST6,5 003CH | | RST6,5 0034H | | RST5,5 002CH |

| INTR endereço fornecido por

um controlador de interrupção

Observa-se que a interrupção INTR necessita de um controlador de interrupção (como o 8259 do IBM-PC) para gerar este endereço. Neste caso, o microprocessador mostra o reconhecimento do endereço através do sinal de saída INTRA.

Figura 1.9 - Interrupção não vetoriada

Dentro dos microprocessadores estão disponíveis registradores de configuração que determinam interrupções pendentes e níveis de prioridade.

No caso do IBM-PC, os vetores das 16 interrupções disponíveis para periféricos (e programadas no 8259) são determinadas pelo sistema operacional.

Verificação

(25)

1) - Levantar com o auxílio do Painel de Controle / Sistemas / Gerenciador de Sistemas / Propriedades os vetores e periféricos do seu computador PC.

2) – Qual será o efeito para o computador se um modem for instalado na mesma interrupção / vetor do mouse?

3) – Explicar a diferença entre as instruções JMP 2000H e CALL 2000H. 4) – Quais as vantagens de utilizar sub-rotinas em programação.

1.9.4) - Acesso direto à memória (D.M.A):

Sistema onde o barramento do computador é retirado do microprocessador (colocando o mesmo em tri-state) e controlado através de um outro microprocessador (multiprocessamento) ou através de um controlador de D.M.A. (como o 8257) para transferência de dados entre periféricos e memória.

Ex: 1) - Carga de programas de um "winchester" ou "floppy" para memória RAM de um computador.

2) - Co-processador aritmético nos computadores IBM-PC.

Figura 1.10 - DMA

1.9.5) - Multiplexação de sinais em microprocessadores:

Consiste em um recurso de misturar 2 ou mais sinais em um terminal do microprocessador com o objetivo básico de economizar pinagem do chip. Um exemplo típico é a multiplexação da via de dados/endereço do 8085: os 8 bits de dados (D0-D7) são multiplexados no tempo com o byte menos significativo de endereço (A0-A7). O sinal de controle "ALE" (sigla de "Address Latch Enable") indica a natureza da informação presente naquele instante.

ALE = 0 -> AD0-AD7 -> dados (D0-D7) ALE = 1 -> AD0-AD7 -> endereços (A0-A7)

(26)

Ex:

Figura 1.11 - Sinal ALE

A separação da via de dados (D0-D7) da via de endereços (A0-A7) é necessária pelo fato de termos diversos dispositivos de memória e periférico com estes barramentos separados. A implementação desta separação pode ser realizada com os latchs octais 74373 (unidirecional) e 74245 (bidirecional). A figura abaixo mostra um circuito típico utilizado na demultiplexação dos sinais de dados/endereço do 8085.

Figura 1.12 - Separação do barramento A/D do 8085 1.9.6) – Sincronização de Dispositivos Lentos:

(27)

O pino de entrada READY (em nível alto permite o funcionamento do microprocessador e em nível alto o mesmo permanece em estado de espera – “wait”). O dispositivo de sincronização de memória / periférico lento controla o sinal READY do processador de tal forma a fazer o mesmo aguardar uma diferença de velocidade de acesso.

Figura 1.13 - Circuito típico de Wait State

Ex: Qual o período de um pulso de espera (Wait State) para o acesso a uma escrita no disco rígido considerando:

Ciclo de instrução de escrita: 10 clocks Clock: 133 Mhz

Tempo de Acesso ao disco rígido: 100 microsegundos.

Verificação

Exercícios / Pesquisa Complementares

1) - Determinar o mínimo valor de um capacitor para um circuito de reset automático considerando:

VCC = 3,3 V R = 10k

Freqüência: 500 Mhz

(28)

2) – Qual o período de um pulso de espera (Wait State) para o acesso a uma memória RAM rápida considerando:

Ciclo de instrução de escrita: 5 clocks Clock: 500 Mhz

Tempo de Acesso a RAM: 15 nseg.

3) – Fazer um circuito de separação de dados / endereço de um processador com um barramento AD0-AD15, com sinal de ALE. Colocar um Buffer para a via de dados.

1.10) - Comparativo e Arquitetura de Microprocessadores Intel

Figura 1.14 - Tabela comparativa entre microprocessadores Intel

As especificações de alguns destes processadores, bem como do Pentium IV, estão disponíveis no site www.ivair.com.br

1.11) - Estudo da Arquitetura do 8085

As informações deste tópico estão baseadas no Data-Book do 8085 / Z80 disponíveis na Internet.

1.11.1) - Principais características do 8085:

- 8 bits na via de dados (possui 246 instruções).

- 16 bits na via de endereço (acessa 64 k de memória e 256 periféricos). - 5 entradas para interrupções.

(29)

- Interface serial. - Controle de D.M.A.

- Controle de sincronização para periféricos lentos. - Clock típico de 3 Mhz.

1.11.2) - Análise da arquitetura interna e pinagens: ver data-book

Figura 1.15 - Arquitetura interna 8085 Descrição das principais funções internas:

- U.L.A: realiza operações aritméticas (soma, subtração, incrementação e decrementação) e operações lógicas (AND, OR, OR EXCLUSIVO, Inversão, deslocamentos bit a bit e comparação).

- FLAG: registrador que sinaliza o resultado de operações da U.L.A.

- Acumulador: registrador de 8 bits com multiplas funções (armazena resultados e operandos da U.L.A., dados de dispositivos de E/S, máscara de interrupções, etc).

- Registradores de uso geral: 6 registradores de 8 bits (armazenando dados) podendo ser utilizados como pares de 16 bits (armazenando endereços).

B C /

(30)

Fixos \

H L -> par de registrador mais utilizado como ponteiro de memória.

- Registrador contador de programa (PC): registrador de 16 bits com a função específica de armazenar o endereço de busca da próxima instrução. Quando carregado através de instrução altera o fluxo seqüencial do programa ( realizando uma salto simples - instrução 'jump' - ou chamando uma subrotina - instrução 'call').

- Registrador apontador de pilha (SP): registrador de 16 bits com a função específica de armazenar o endereço final da área de memória denominada "pilha" (onde são armazenados parâmetros de retorno das subrotinas)

- Decodificador de instruções: bloco lógico interno com a função de receber as instruções (códigos de operação que entram pela via de dados), decodificando-as e gerando sinais de controle e temporização.

- Buffer de endereços alto (A8-A15): via de endereços mais significativa formando junto com A0-A7 os 16 bits totais da via de endereço.

- Controle Serial: o 8085 possui uma saída serial de dados (SOD) controlada pela instrução SIM (coloca o oitavo bit do acumulador no pino SOD) e uma entrada serial de dados (SID), controlada pela instrução RIM (coloca o bit da entrada serial no oitavo bit do acumulador).

Análise da pinagem do microprocessador 8085:

- Alimentações +5V e GND: alimentação única. Recomenda-se a colocação de um capacitor cerâmico de desacoplamento com valor variando entre 10-100 nF para eliminar ruídos.

- X1 e X2: pinos de entrada do cristal. Possui um oscilador interno com a função de gerar um sinal de clock de 2 fases. Dispensa o circuito dedicado gerador de clock.

- CLOCKOUT: saída de clock para periféricos. Tem a metade da freqüência do cristal ligado ao X1 e X2.

- RESETIN: entrada de reset do 8085. Inicializa o 8085 (colocando o PC = 0000h e portanto buscando a primeira instrução) quando temos um nível baixo por mais de 10 mseg.

- RESETOUT: saída ativa em nível alto com a função de inicializar os periféricos ligados ao 8085. Sincronizado com o sinal RESETIN.

- RD: saída ativa em nível baixo indicando processo de leitura de memória ou periférico. Coloca o barramento de dados como entrada.

- WR: saída ativa em nível baixo indicando processo de leitura na memória ou periférico. Coloca o barramento de dados como saída.

_

- IO/M: sinal de saída. Em nível alto indica acesso a periféricos. Em nível baixo indica acesso a memórias.

(31)

0 0 -> 8085 parado (HALT) 0 1 -> processo de leitura 1 0 -> processo de escrita

1 1 -> processo de busca de instrução ("fetch")

- READY -> sinal de entrada com a função de sincronizar periférico ou memória mais lenta que o 8085. Em nível alto habilita a operação do 8085. Em nível baixo para o 8085, fazendo-o permanecer em estado de 'WAIT'.

- HOLD: sinal de entrada. Em nível alto coloca barramentos de dado, endereço e controle em "tri-state". Desta forma, um sistema externo (controlador de D.M.A. ou um outro microprocessador mais prioritário) assume um controle do barramento:

- HOLDA: saída ativa em nível alto indicando barramento em tri-state para o controlador de D.M.A. ou para o microprocessador paralelo.

1.11.3) - Sistema Mínimo com o 8085:

Figura 1.16 - Sistema Mínimo 8085 Exemplo:

1) – Projetar um sistema mínimo com o 8085 com as seguintes características: Clock – 4 Mhz

Reset automático / manual

5 periféricos ligados a 5 interrupções Sistema DMA (representar em blocos) Desabilitar sinal READY.

32 Kbytes de memória EPROM (2764) 32 Kbytes de memória RAM (6264)

(32)

Verificação

Exercícios / Pesquisa Complementares 1) – Comparar o microprocessador Z80 com o 8085.

2) – Projetar um sistema mínimo com o 8085 com as seguintes características: Clock – 1 Mhz

Reset automático / manual

Desabilitar as interrupcões através de resistores de pull-down Sistema DMA (representar em blocos)

Desabilitar sinal READY.

32 Kbytes de memória EPROM (27256) 32 Kbytes de memória RAM (62256)

8 Periféricos (endereço 00 – ff). Representar cada periférico por um bloco. 3) – Projetar um sistema mínimo com o 8085 com as seguintes características:

Clock – 2 Mhz

Reset automático / manual

Desabilitar as interrupcões através de resistores de pull-down Sistema DMA (representar em blocos)

Desabilitar sinal READY.

16 Kbytes de memória EPROM (2764) – endereço 0-3fffh 32 Kbytes de memória RAM (62256) – endereço 8000h-bfffh

8 Periféricos (endereço 00 – ff). Representar cada periférico por um bloco. 4) – Pesquisar no Painel de Controle do PC os endereços de memória e periféricos do computador. Qual é a faixa de memória de vídeo?

5) – Projetar um banco de memória de um computador com 1 Mbytes tendo 512 K de eprom (27C1000) e 512 K de ram (621000).

1.11.4) – Análise de 1 ciclo de temporização:

(33)

Verificação EXERCÍCIO

(34)

Verificação Final do Capítulo I - Conceituação de Sistemas Programáveis

1) - Sistemas de Numeração:

1.1) - Converter os seguintes números para decimal: 1011 1011B

1111 0001 1001 1111B 8ABF H

3459FE5A H

O endereço inicial da memória de vídeo do seu PC

1.2) - Converter os seguintes números para hexadecimal: 1011 1111 1011 0010 1111 1110 1010 1001 B

1253 D 543 D

2) - Por que o computador utiliza no seu processamento símbolos digitais? Por que não é analógico se nós o somos e o computador procura nos copiar. Comente como o transistor bipolar / cmos colabora para este processamento.

3) - Pesquise o número de transistores dos processadores: 8088-80286-80386-80486-Pentium I até o Pentium IV. Qual a relação entre o número de transistores e a capacidade de processamento.

4) - Explicar por que um SISTEMA PROGRAMÁVEL favorece a escala de produção industrial. Comenta o fato das placas centrais (mother board) possuirem poucos fabricantes e custarem cerca de US$ 200,00 (placa + processador + memória RAM), um preço baixo comparado ao seu poder de processamento.

5) - PESQUISA: investigar as técnicas de fabricação de Circuitos Integrados e Microprocessadores na Biblioteca e na Internet.

6) - Mostrar a estrutura de um sistema programável (computador), explicando seus 3 blocos e os tipos de barramentos.

7) - Qual a diferenças entre um microprocessador e um microcomputador.

8) - PESQUISA: identificar as 3 estruturas de um sistema programável nos microcontroladores 12F629 (www.microchip.com) e MSP430F135 (www.ti.com). 9) - Comparar funcionalmente a estrutura de um computador com o ser humano. 10) - Quais são os tipos de memória semicondutoras. Qual o tipo de memória utilizado na BIOS do PC e da memória de dados. Qual o tamanho da memória

(35)

BIOS e da RAM do seu computador (pesquise no painel de controle do seu computador os endereços iniciais / finais do seu PC).

11) - Pesquise: quais são as principais características da EPROM 27512 e da RAM 62512.

12) - Qual a função da BIOS, Sistema Operacional e Aplicativos no computador. Cite qual é o fabricante da BIOS e do Sistema Operacional e o aplicativo mais utilizado no seu computador.

13) - Qual a diferença entre as expressões Firmware e Software. Cite 3 exemplos de Firmware que você conhece.

14) - PESQUISA: qual a diferença entre memória EEPROM e FLASH. Qual o tamanho da memória Flash do chip 12F629.

15) - PESQUISA: citar as diferenças entre os barramentos ISA, PCI e AGP do computador.

16) - PESQUISA: procurar as diferenças entre os barramentos seriais I2C e SPI. 17) - Explicar a estrutura básica da arquitetura de um microprocessador. Qual a função de cada componente básico?

18) - PESQUISA: levantar no livro do A. Malvino (Microcomputadores e Microprocessadores) a arquitetura da ULA, Decodificador de Instruções e Registradores implementada através de lógica discreta.

19) - Qual a única operação aritmética implementada físicamente na ULA dos microprocessadores? Qual a estrutura lógica utilizada para implementar um somador binário completo. Pesquise um circuito integrado TTL (família 74XXX) discreto utilizado para implementar uma ULA.

20) - Quais são as 4 operações lógicas booleanas implementáveis?

21) - Qual a função do acumulador e do registrador FLAG em uma estrutura de microprocessador.

22) - Qual o conteúdo do Acumulador, do FLAG do 8085 e registrador D nos 2 programas

(36)

MOV A,85H ADI A,FEH JZ SALTO MOV D,87H JMP CONT

SALTO MOV D,9AH CONT ... MOV A,85H MOV B,A7H ADD A,B JNP SALTO MOV D,00H JMP CONT SALTO MOV D,FFH CONT ...

23) - Explicar o conceito de pilha e de sub-rotina em programação. Quais as vantagens de utilizar uma sub-rotina em programação?

24) - Qual a diferença das instruções JMP <END> e CALL <END>? O que acontece com o registrador PC nos 2 exemplos.

25) - Mostrar os osciladores a cristal e RC. Quais dos 2 é mais estável com relação a temperatura?

26) - Definir ciclo de instrução e ciclo de máquina.

27) - Considerando um oscilador a cristal (fc = 32 Khz, divisão de freqüência por 2), qual o período do ciclo de instrução e ciclo M1 (busca) e M2 (execução) das instruções abaixo:

ADD A,B (1 BYTE) LXI B,2000H (3 BYTES) M1 -> 4 CLOCKS M1 -> 4, 3, 3 CLOCKS M2 -> 3 CLOCKS M2 -> 3 CLOCKS

28) - Representar o sistema de inicialização (reset) ativo em nível alto e nível baixo.

29) - Definir e explicar o funcionamento de um supervisório WATCH DOG. Como o WD evita o travamento do microprocessador?

30) - Explicar o funcionamento de um sistema BROWN-OUT.

31) - Por que consideramos um sistema com reset externo não confiável? 32) - Calcular o capacitor mínimo para um sistema de reset ativo em 0: R = 100 K

Vcc = 3,3 V

50 pulsos de clock (100 kHz) para inicialização Vreset = ½ Vcc

(37)

33) - Explicar como funciona um sistema de interrupção em um microprocessador. Dar 3 exemplos aplicáveis ao computador PC. O que é um vetor de interrupção? 34) - Levantar as 16 interrupções do PC e qual o vetor de cada um deles.

35) - Se você instalar uma placa de rede em um computador e surgir uma mensagem de conflito com o mouse. Qual a razão do programa e qual uma possível solução.

36) - Sob o ponto de vista de interrupção, como um sistema PLUG AND PLAY instala uma nova placa de rede?

37) - Qual a diferença entre uma interrupção com o vetor fixo e com vetor variável. Cite uma interrupção de cada tipo no 8085.

39) - Explicar o funcionamento de um sistema de DMA.

40) - Explicar como o sistema de DMA atua em uma placa de vídeo no PC.

41) - Como o sinal de ALE ajuda a separar os dados AD0-AD7 no 8085. Mostre o circuito utilizando um buffer para dado e endereço.

42) - Mostrar um circuito de separação de AD0-AD7 utilizando apenas um latch. 43) - Mostrar um circuito de separação de um barramento AD0-AD15.

44) - Mostrar a função dos sinais RD, WR e IO/M. Qual a condição destes sinais nas instruções MOV M,A, OUT 20h e MOV A,M.

45) - Calcular os tempos de Wait-State do sinal READY no acesso de uma memória RAM de 100 nseg e um disco rígido de 1 mseg.

46) - Qual a vantagem de termos uma memória cache de grande capacidade dentro de um microprocessador.

47) - Por que é importante ter-se uma grande quantidade de memória RAM de dados no seu computador no aspecto do tempo de Wait State.

48) - Descrever os 40 pinos do 8085. 49) - Comparar o 8085 e o Z80.

50) - Fazer o diagrama de tempo da instrução IN 80H.

51) - Pesquisar a temporização da instrução MOV A,B do 8085.

52) - PESQUISA: Fazendo paginação de memória, colocar 1 Mbyte de memória 62512 em um sistema com o 8085. Quais os endereços iniciais e finais de cada chip de memória.

(38)

53) - Projetar um sistema de 8 periféricos com o 74LS373: 8 solenóides, 8 motores, 8 ventiladores, 8 lâmpadas, 8 sensores fotoelétricos, 24 chaves liga/desliga.

54) - Para o circuito acima, fazer um programa para o primeiro sensor fotoelétrico ligar / desligar a quinta lâmpada.

55) - Comparar a arquitetura entre os microprocessadores 8088-80286-80386-80486-Pentium I até o Pentium IV.

56) - Obter as características dos circuitos integrados 74LS373, 74LS245, 74LS138.

(39)

2) - Arquitetura de Microcontroladores

Planejamento (P):

Este capítulo capacitará o aluno nos seguintes pontos: - Conceituar Microntrolador

- Conhecer a arquitetura interna da família MCS-51

- Sistema Mínimo da família MCS-51 com e sem memória externa - Projetar CLPs utilizando ports de comunicação paralelo.

Execução (D):

2.1 - Introdução

Considerando as aplicações típicas e a tecnologia envolvida:

Aplicação

Multimídia - PC Sistema Aberto (BIOS + SO + Aplicativo)

X

Análise de Sinais - Sistema Dedicado (Firmware)

X

Controle Booleano / Sinal Analógico de baixa freqüência

X

Microcontrolador 8 / 16 bits DSP 16 / 32 bits Microprocessador 32 / 64 bits

Tecnologia

Sistemas com microcontroladores são utilizados para controle e sistemas dedicados. São típicos de equipamentos como CLPs e bastante presentes em equipamentos nacionais pelo fato dos mesmos atuarem em nichos de mercado (baixo volume, baixo custo de desenvolvimento, longevidade).

(40)

2.2 - ARQUITETURA MICROCONTROLADORES

Quadro comparativo entre Microprocessadores / Microcontroladores

Características Microcontrolador Microprocessador

Velocidade Lenta ( típico < 1Mhz) Rápida (típico > 1 Ghz) Consumo Baixo (uA) Alto ( ventilador, fonte chav.) Memória de Programa Pequena capacidade (kbytes) Grande capacidade (mbytes) Memória de Dados Mínima (bytes) Grande capacidade (mbytes) Arquitetura de Memória Hardware (típica) Von- Newmann

Barramento 8 bits (dados) > 64 bits (dados) Aplicação fechada, firmware aberta, multimidia

2.2.1) - Família de Microcontroladores INTEL MCS-51:

Ao contrário da linha de microprocessadores (segue Lei de Moore no desenvolvimento), microcontroladores tem um “tempo de vida” de décadas. A Intel lançou “apenas” 2 famílias de microcontroladores:

MCS-48 (meados da década de 70)

MCS-51: presente até hoje de forma bastante atuante no mercado.

Apesar de existirem diversas “famílias” importantes de microcontroladores no mercado (Microchip, Texas, Zilog, Motorola, Cypress, National), a linha da Intel continua bastante atuante no mercado (principalmente pelo grande número de fabricantes que utilizam esta arquitetura - Philips, Atmel, Nec, Dallas, Temic) e principalmente muito estudada pela sua arquitetura conceitual (contem conceitos de microcontroladores com acesso a memória externa).

Os principais recursos dos microcontroladores MCS-51:

- Memória de Programa de 4 kbytes: ROM (8051), OTP (8751), FLASH / EEPROM (89Sxx), ROMLESS (8031) com expansão até 64K.

- 256 bytes de RAM (registradores) com expansão até 512 bytes

- 4 ports (latchs bidirecionais programáveis) com 8 bits. Existem versões de 2 ports até 6 ports.

- 2 temporizadores ("timers") de 16 bits. Expansão até 3 timers - 1 unidade serial assíncrona (UART) "full-duplex".

- 5 interrupções (2 externas, 2 "timers" e 1 "UART"). - Oscilador interno para geração de temporização.

- Acesso a até 64 Kbytes de RAM externa (dados) e 64 Kbytes de EPROM (programa) externa através do controle de 2 sinais de leitura (PSEN -> área de programa - RD -> área de dados). Esta estrutura é conhecida como 'arquitetura

HARVARD'.

(41)

Arquitetura do Microcontrolador 8051:

Figura - Arquitetura MCS-51 (fonte: Intel) Arquitetura funcional

(42)

Pinagem:

- Vcc,Gnd: alimentação única de 5 Vcc.

- X1-X2: conectada ao cristal externo (12 Mhz típico). O sistema de temporização interno divide a freqüência do cristal por 12, proporcionando um ciclo típico de máquina de 1 mseg.

- RST: entrada de inicialização ativa em nível alto __

- EA ("external acess"): em nível baixo, desabita os 4 kbytes de memória de programa interna. Toda a busca de instrução é realizada externamente (através de uma EPROM). Em nível alto habilita a memória interna.

- ALE ("Address Latch Enable"): na utilização de memória de programa externa, este pino tem a função de indicar a presença de endereço (em nível alto) ou dado (em nível baixo) no barramento de endereço/dado multiplexado (AD0-AD7).

____

- PSEN ("Program Strobe Enable"): em nível baixo indica leitura de uma instrução da área de programa. Normalmente ligado ao pino RD da memória de programa.

- Port P0 (P0.0-P0.7): seus 8 pinos podem ter dupla função. Se não houver memória externa, são utilizados como sinais de entrada/saída do "latch" bidirecional P0. Se houver memória externa, atua como 8 sinais multiplexados de dados/endereço (AD0-AD7). O sinal de ALE indica a condição deste barramento. - Port P1 (P1.0-P1.7): 8 pinos de entrada/saída do "latch" bidirecional P1. - Port P2 (P2.0-P2.7): seus 8 pinos também podem ter dupla função. Se não houver memória externa com mais de 256 endereços, são utilizados como sinais de entrada/saída do "latch" bidirecional P2. Se houver necessidade de endereçamento maior que 8 bits, atua como 8 sinais de endereço A8-A15.

(43)

- P3.0: RxD (recepção serial) / port P3.0 - P3.1: TxD (transmissão serial) / port P3.1 - P3.2: INT0 (interrupção 0) / port P3.2 - P3.3: INT1 (interrupção 1) / port P3.3 - P3.4: T0 (entrada Timer 0) / port P3.4 - P3.5: T1 (entrada Timer 1) / port P3.5

- P3.6: WR (sinal de escrita da RAM externa)/port P3.6

- P3.7: RD (sinal de leitura da RAM externa)/port Descrição das funções internas:

- U.L.A.: unidade lógia aritmética de 8 bits, responsável pela execução das 4 operações aritméticas básicas e das operações lógicas tradicionais (AND, OR, OR EXCLUSIVE, INVERSÃO e SHIFT).

- Acumulador: registrador de 8 bits mais utilizado pelo microcontrolador. Normalmente utilizado para colocar resultados da U.L.A. ou fatores utilizados nas operações lógico / aritméticas. No caso das operações de multiplicação, o

registrador B também é utilizado para colocação dos resultados, pois o resultado é apresentado em 16 bits.

- Flag PSW: registrador sinalizador das operações aritméticas da U.L.A., configurador dos registradores R0-R7 e para uso geral. Abaixo é mostrado a posição e nome de seus 8 bits:

CY AC F0 RS1 RS0 OV - P

CY (PSW.7): indica presença de bit CARRY (vai um) nas operações aritméticas da U.L.A.

AC (PSW.6): indica presença do bit Auxiliar Carry quando ocorre vai um entre os 3 e 4 bits nas operações aritméticas da U.L.A..

F0 (PSW.5): bit para uso livre do programador.

RS1 e RS0 (PSW.4 E PSW.3): configura qual banco de registradores R0-R7 será acessado.

0 - 0 -> primeiro banco 0 - 1 -> segundo banco 1 - 0 -> terceiro banco 1 - 1 -> quarto banco

Ex.: MOV PSW,#00001000B ;RS0=1 E RS1=1 -> SEGUNDO BANCO

OV (PSW.2): indica presença de bit CARRY (bit 8 ativado) nas operações de multiplicação da U.L.A. Auxilia também as operações de subtração.

P (PSW.0): indica paridade do acumulador. Se setado, indica número par de '1' no acumulador. Caso contrário indica número ímpar.

(44)

- Contador de Programa (PC): registrador de 16 bits que guarda o endereço da próxima instrução. Quando o 8051 é resetado, este registrador é zerado, fazendo o 8051 buscar a primeira instrução da memória.

- Apontador de Pilha (SP): registrador de 8 bits indicador do endereço inicial da pilha do 8051. A pilha necessariamente tem que estar localizada entre os endereços 30H e 7FH da área RAM interna do microcontrolador. O tamanho da pilha deve ser suficiente para permitir os diversos acessos de sub-rotinas do programa (considerando os armazenamento dos endereços do PC e dos

parâmetros da instrução PUSH).

- Ponteiro de Memória Externo (DPTR): registrador de 16 bits utilizado para armazenar endereços de memória externa.

- Registrador B: registrador auxiliar nas operações de multiplicação e divisão.

- Decodificador e Registrador de Instruções / Controle e Temporização: sistema responsável pelo armazenamento, decodificação e execução dos códigos de operação (bytes) das 256 instruções do 8051. Controla os sinais externos de controle (reset, ALE, configuração da memória interna de programa e sinal de leitura da memória externa).

- Timers: o 8051 possui 2 sistemas de temporização de 16 bits. Maiores detalhes serão fornecidos nos capítulos subsequentes.

- Unidade Serial: sistema para comunicação serial assíncrona full-duplex. Maiores detalhes serão fornecidos nos capítulos seguintes.

- Memória de Dados (SFR) e de Programa: o 8051 possui um estrutura de acesso ao sistema de memória conhecida como HARVARD, onde o acesso a memória de programa é diferenciado do acesso a memória de dados (através de sinais de leitura distintos). Desta forma, o microcontrolador não permite que um determinado programa fique localizado na área de dados ou vice-versa. A grande vantagem deste sistema é a otimizacão do sistema no acesso as instruções do programa e aos dados. O programa dos sistemas com microcontroladores

normalmente são dedicados (FIRMWARE). Observe que este modo de acesso a memória é diferente dos microcomputadores padrão IBM-PC, onde normalmente os programas localizam-se na área de dados (daí o fato de cada vez mais ser importante uma grande área de memória RAM dentro dos computadores).

- Memória de Dados (SRF): o 8051 possuir 256 bytes de memória de dados interna e permite o acesso de mais 64 Kbytes de memória de dados externa (unicamente através das instruções MOVX). Na maioria das vezes a memória interna de dados é suficiente, pois as aplicações de controle

normalmente não exigem muita quantidade de memória volátil (já que os programas não são armazenados na área de RAM).

A memória RAM interna é divida em 4 áreas:

- Área de Registradores R0-R7 (00-1FH): o 8051 possui 4 bancos de registradores selecionados através dos bits RS1 e RS0 do registrador PSW. Normalmente estes registradores armazenam endereços da área de rascunho (modo de endereçamento indireto).

(45)

- Área Booleana (binária) (20H-2FH): 16 bytes endereçados bit a bit (totalizando 128 bits). Pode-se acessar cada bit individualmente indicando uma determinada condição binária (por exemplo: a tecla A de um teclado foi acionada). Estes bits são acessados pelas instruções booleanas do 8051.

- Área de Rascunho (30H-7FH): memória de uso geral onde se localiza a pilha do sistema.

- Área de Registradores Especiais (SFR) (80H-FFH): área onde se localiza todos os registradores com função especial. O número destes registradores varia de acordo com as funções disponíveis dentro do processador. Os registradores especiais mais comuns são:

- PO (80H): port P0. - P1 (90H).

- P2 (A0H). - P3 (B0H).

- ACC (E0H): acumulador. - B (F0H)

- PSW (D0H): registrador de status - SP (81H): apontador de pilha

- DPL (82H): byte menos significativo do registrador DPTR. - DPH (83H): byte mais significativo do registrador DPTR. - PCON (87H): registrador de controle de consumo do 8051. - IE (A8H): registrador de habilitação do sistema de interrupções. - IP (B8H): registrador indicador de prioridade do sistema de interrupção.

- TMOD (89H): registrador de modo dos timers. - TCON (88H): registrador de controle do timer 1 - T2CON (C8H): registrador de controle do timer 2. - TL0 (8AH): byte inferior do timer 1.

- TH0 (8CH): byte superior do timer 1. - TL1 (8DH): byte inferior do timer 2. - TH1 (8BH): byte superior do timer 2.

A seguir o mapa de endereço dos registradores especiais (Databook Atmel 89S51 - www.atmel.com.br).

(46)

Verificação (C)

Exercícios / Pesquisa Complementares

1) – Fazer um download de um arquivo .PDF com a arquitetura do 89S51.

2) – Fazer um levantamento dos fabricantes que possuem microcontroladores com a arquitetura do 8051 (www.8052.com).

3) – Fazer um levantamento dos microcontroladores fabricados pela Philips e pela ATMEL.

4) – Obter um compilador para Assembler diferente do ASM51 utilizado no laboratório.

2.2.1) - Sistema Mínimo com o 8051:

(47)

- Interface serial (RxD e TxD), interrupções externas (INT0 e INT1), "timer" duplo externo (T0 e T1).

Verificação (C) Exercícios

1) – Sistema com o 8031 com as seguintes características: - Eprom Externa 27128.

- RAM 6264 (end. 0 – 1fffh). - Clock de 11.059Mhz - Reset automático e manual

- Alarme com uma chave liga/desliga, 4 sensores ultrasônicos, 1 lâmpada e 1 buzina.

2) – Sistema com o 89S51 com as seguintes características: - Clock de 12 Mhz

- Reset automático e manual. - Controle de 12 motores . - 12 entradas de chaves.

3) – Obter na internet um projeto com o 8051.

4) – Projetar um coletor de dados com o 8031 com as seguintes características: - Eprom Externa 27256.

- RAM 62512

- Clock de 11.059Mhz - Reset automático e manual - 8 ports para um teclado. - Comunicacao serial

(48)

3) - Linguagem Assembler

Planejamento (P):

Este capítulo capacitará o aluno nos seguintes pontos: - Conceituar Programação estruturada.

- Conhecer os mnemônicos do MCS-51

- Editar, compilar, simular e emular programas em Linguagem Assembler para o MCS-51

- Projetar CLPs utilizando ports de comunicação paralelo e programá-los em Linguagem Assembler.

Execução (D):

3.1) - Introdução:

A linguagem Assembler é uma linguagem de nível intermediária, composta basicamente de mnemônicos (palavra representando o código de operação da instrução), diretivas (pseudo-instruções), labels e comentários. Pelo fato de estar bem próxima a linguagem de microprocessador (linguagem de máquina composta de bits compreensível pelo processador), exige um compilador (programa que converte o programa fonte em linguagem de máquina) bastante simples e portanto rápido. É ideal para utilização na área de projeto e testes de microprocessadores, pois exige conhecimento da estrutura do microprocessador utilizado (ao contrário das linguagens superiores transparentes a estrutura do processador). Tem a desvantagem de não possuir a estrutura de linguagens como PASCAL e C.

Aplicativo

(camada de programação interativa com o usuário)

Linguagem Superior

(camada de programação composta de estrutura de programação (IF THEN < > ELSE < >))

Linguagem Assembler

(camada de programação composta de mnemônicos dos códigos de operação).

Linguagem de Máquina

(camada de programação composta por códigos de operação presentes na memória e lida pela CPU para executar uma tarefa)

Hardware (camada física)

(49)

A medida que a linguagem fica mais interativa ao programador, o compilador (converte os códigos da camada de linguagem em códigos de operação processados pelas CPU) necessita de ser mais complexo e portanto mais lento (ou exigindo mais velocidade do processo envolvido)

Antes da edição de um programa, deve-se elaborar o algoritmo e se necessário o fluxograma (representando este algoritmo).

3.2) - Estruturas de programação

O formato do programa estruturado blocos padronizado e simples. Todo o

programa possui uma seqüência de instruções formando um sistema cíclico (loop). Toda linha de programação validade deve ser finalizada por ponto e vírgula.

declarações; /* declarações de variáveis */

main () /* rotina principal obrigatória */ {

declarações; /* declarações do programa principal */ }

rotina1 /* sub-rotinas */ { declarações; } ...

rotina N { declarações; }

Condicional IF:

Testa uma condição, realizando-a se verdadeira. Caso contrário, ou sai da estrutura ou executa a declaração contida na estrutura 'else'

if (estrutura de teste) {

declarações /* para uma declaração simples não é necessário { } }

else /* não obrigatório */ {

declarações }

(50)

Ex: if (teste = = a+b) { c = 1; d = ++; } else c = 2;

Podemos ter estrutura de if dentro de outras estruturas condicionais (if aninhados) Ex: if (a = = 5) teste = 1; else if (a = = 7) teste = 2; else if (a = = 9) { teste = + +; a = - - ; }

Condicional FOR

Realiza uma determinada operação enquanto uma determinada condição não for atendida.

for (inicial;condição;incremento) /*se estiver sem condição infinito */ {

declaração ; }

Ex:

for (a=2; a < 101; a++) { teste = teste + a; resultado = ++; } for ( ; ; ) {

(51)

motor = desligado; }

Condicional WHILE

Realiza uma operação enquanto uma determinada condição estiver sendo atendida.

while (condição) /* se a condição for 1, o condicional é infinito */ {

declaração; /* se houver apenas uma declaração não é necessário {} */ } Ex: soma = 0; a = 0; while (a < 101) { soma = soma + a; a++; }

Condicional DO / WHILE

Estrutura que realiza uma declaração enquanto houver alguma condi;cão seja atendida. do { (declaração); } while (condição) Ex: do { b=++; motor = ligado; }

(52)

Condicional SWITCH

Testa uma variável e executa um grupo de declarações testando uma condição particular. switch (variável) { case constante1: { (declarações) break; } case constante2: { (declarações) break; } case constante3: { (declarações) break; } }

3.3) Estrutura básica da Linguagem Assembler:

A linguagem Assembler relaciona estruturas mnemônicas e

pseudo-instruções (diretivas) com códigos de operação (linguagem de máquina). Por ser uma representação direta dos códigos de operação do microprocessador, permite um total controle dos elementos físicos de um sistema microprocessado (acesso a registradores, posições absolutas de memória, controle de periféricos, etc.).

Campos básicos de uma linha de Linguagem Assembler:

LABEL CÓDIGO DE OPERAÇÃO OPERANDO COMENTÁRIOS

Exemplo: MOV A,B ;carrega A com B Campo Label: rotula um endereço do programa com o objetivo de facilitar as instruções de salta do sistema (o compilador associa o nome do rótulo com o endereço absoluto). O label também é utilizado para nomear variáveis do sistema através da diretiva EQU (equate). O campo Label é separado do código de

operação através de um caracter de espaço ou TAB.

Código de Operação: estruturas mnemônicas relacionada com o código de operação real.

Referências

Documentos relacionados

2. Identifica as personagens do texto.. Indica o tempo da história. Indica o espaço da história. Classifica as palavras quanto ao número de sílabas. Copia do texto três

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

A taxa do INR ideal para os paci- entes com disfunção ventricular e insuficiência cardíaca também não foi estimada por meio de estudos prospectivos e randomizados, e a taxa

No entanto, para aperfeiçoar uma equipe de trabalho comprometida com a qualidade e produtividade é necessário motivação, e, satisfação, através de incentivos e política de

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

O empregador deverá realizar a avaliação ambiental de poeira de asbesto nos locais de trabalho em intervalos não superiores a seis meses.. Os registros das avaliações deverão