Você está na página 1de 18

Conteúdo

Introdução......................................................................................................................................................................... 1
Fabricantes de microcontroladores .............................................................................................................................. 2
Microprocessadores.......................................................................................................................................................... 3
Sistemas de microprocessador ................................................................................................................................. 3
Microcomputadores de um único chip ..................................................................................................................... 3
Microcontroladores ...................................................................................................................................................... 3
Microcontroladores PIC ............................................................................................................................................ 3
Dispositivos lógicos programados................................................................................................................................. 4
Controladores lógicos programáveis ............................................................................................................................ 4
Sistemas de microprocessador ..................................................................................................................................... 4
Representação dos dados ......................................................................................................................................... 5
Tipos de dados .......................................................................................................................................................... 6
Armazenamento de dados ............................................................................................................................................ 6
O microprocessador ...................................................................................................................................................... 7
Operação do microprocessador.................................................................................................................................. 11
Um programa de exemplo ...................................................................................................................................... 13
Um sistema de microcontrolador ............................................................................................................................... 15

a
Introdução
A diferença primordial entre um microprocessador e um microcontrolador é que este é capaz de
executar inúmeras tarefas sem depender de periféricos externos. Para que um microprocessador possa
funcionar, são necessários periféricos externos (chipsets, memórias, controladores, etc.), enquanto o
microcontrolador é capaz de ter todos estes periféricos dentro de um só chip. Desta forma, poderíamos
definir urn microcontrolador como um computador em um só chip. Obviamente, os microprocessadores
conseguem um desempenho muito maior que o dos microcontroladores, chegando hoje a processar na
casa dos GHz, enquanto os microcontroladores ainda processam em poucos MHz. A utilização dos
microcontroladores em nosso cotidiano, no entanto, é muito maior que a dos microprocessadores, pois
eles são utilizados em aparelhos eletrodomésticos como: TV; DVDs, máquinas de lavar, etc.
Atualmente, o microcontroladores são utilizados em diversos projetos eletrônicos. Apenas para
citar, os microcontroladores atuam nas seguintes aplicações hoje em dia:
• automação;
• robótica;
• mecatrônicr
• área médica
• aviação;
• entretenimento;
• etc.
Veja que microcontroladores com características parecidas podem ser utilizados em aplicações
bem distintas. O que diferencia uma aplicação da outra é a maneira como o microcontrolador está
ordenado, ou seja, programado. Um microcontrolador funciona de acordo com um programa que fica salvo
dentro de sua memória. Quando energizado, o microcontrolador é capaz de ler esta memória e saber o
que deve fazer de acordo com o que está salvo dentro dela. Existem diversos tipos de memórias e estas
são divididas em dois grupos: voláteis e não-voláteis. As memórias do tipo volátil são chamadas de RAM
(Randon Access Memory) e dividem-se em dois grupos principais:
• memórias estáticas;
• memórias dinâmicas.
As memórias estáticas são mais velozes que as dinâmicas, porém, também são mais caras. Nos
PCs, elas são usadas na memória cache do computador, enquanto as memórias dinâmicas são usadas
para armazenar grandes quantidades de dados.
A principal característica de uma memória do tipo RAM é a incapacidade de reter dados na
ausência de alimentação no PC ou no microcontroiador. Já as memórias do tipo não-volátil conseguem
armazenar dados na ausência de alimentação. Estas memórias estão divididas nas seguintes categorias:
• ROM (Read Only Memory);
• EPROM (Eraseble Programable Read Only Memory);
• EEPROM (Electrically Eraseble Programable Read Only Memory).
A memória do tipo ROM ou PROM consegue ser gravada uma única vez. Normalmente, esta
memória já sai gravada de fábrica, e, caso haja a necessidade de salvar um novo dado, será necessário
descartá-la e substitui-la por uma nova.
Já as memórias do tipo EPROM podem ser apagadas e regravadas, porém, um incoveniente
deste tipo de memória é o fato dela ser apagada através de luz ultravioleta. As memórias, têm uma janela
central, através da qual o apagador de memória consegue injetar o sinal ultravioleta para apagar o
conteúdo interno, permitindo que elas sejam regravadas.
Já as memórias EEPROM não têm este inconveniente, pois elas são apagadas eletricamente, o
que facilita a sua utilização.
Uma variação da memória EEPROM é a memória Flash, que funciona do mesmo modo.

1
Fabricantes de microcontroladores
Existem diversos fabricantes de microcontroladores, dentre eles podemos destacar:
• National;
• ATMEL;
• Microchip;
• Philips;
• Intel;
• Cypress;
• etc.
Cada um destes fabricantes tem as suas famílias de microcontroladores. A National, por exemplo,
conta com a família COP8, enquanto a Philips conta com a família ARM.
A Microchip tem diversas famílias de microcontroladores, dentre elas podemos citar:
• família PIC10;
• família PIC10;
• família P1C16;
• família PIC18;
• família PIC24;
• família dsPIC.

2
Microprocessadores
Muitos dos sistemas eletrônicos complexos atuais baseiam-se no uso de um microprocessador ou
microcontrolador. Tais sistemas constituem-se em hardware controlado por software. Se for necessário
modificar o modo com que o sistema se comporta, é o software (em vez do hardware) que sofre
alterações.

Sistemas de microprocessador
É comum que os sistemas de microprocessador sejam montados em um quadro de circuito
impresso que consiste em uma CPU de microprocessador com vários chips especializados de apoio.
Esses dispositivos integrados em escala muito grande (VLSI) proporcionam entrada e saída ao sistema,
controle e temporização, bem como armazenamento para programas e dados.
Aplicações comuns dos sistemas de microprocessador incluem o controle de processos
industriais complexos. Os exemplos típicos baseiam-se nas famílias de chips como Z80CPU, além de
Z80PIO, Z80CTC e Z80SIO.

Microcomputadores de um único chip


Um microcomputador de um único chip é um sistema de computador completo (consistindo em
CPU, RAM e ROM etc) em um invólucro VLSI único. Um computador de um único chip requer muito
poucos circuitos externos adicionais para fornecer todas as funções associadas com um sistema de
computador completo (porém, em geral, com capacidade de entrada e saída limitada).
Os microcomputadores de um único chip podem ser programados usando memórias
programáveis internas ou através de chips de memória externos. As aplicações típicas dos
microcomputadores de um único chip incluem as impressoras, os controladores de instrumento e os
monitores. Um exemplo típico é Z84C.

Microcontroladores
Um microcontrolador é um computador de um único chip projetado especificamente para as
aplicações de controle, em vez de aplicações gerais. Eles são usados muitas vezes para satisfazer um
determinado requisito de controle, tal como controlar o comando de um motor. Os microcomputadores de
um único chip, por outro lado, costumam executar várias funções diferentes e podem controlar diversos
processos ao mesmo tempo.
Aplicações frequentes incluem o controle de dispositivos periféricos, tais como motores,
acionadores, impressoras e componentes menos importantes do subsistema. Exemplos típicos são o
Z86E, 8051, 68705 e 89C51.

Microcontroladores PIC
O microcontrolador PIC é um dispositivo microcontrolador de propósito geral que costuma ser
usado em uma aplicação não-integrada para executar lógica simples, temporização e controle de
entrada/saída. Os dispositivos PIC proporcionam uma solução flexível de baixo custo que preenche com
eficácia a lacuna entres os microcomputadores de um único chip e o uso de chips lógicos e de
temporização separados.

3
Figura 1 Diagrama em blocos de um sistema de microprocessador.

Vários dispositivos PIC e microcontroladores foram produzidos incorporando um interpretador de


linguagem de alto nível. O interpretador residente permite aos desenvolvedores criar as linguagens de
programação, como a linguagem C, em vez de ter de recorrer à complexa linguagem de máquina. Essa
característica torna os microeontroladores PIC muito fáceis de usar. Os microcontroladores PIC são
usados em aplicações "autocontidas" que envolvem lógica, temporizacão e conversão simples de
analógico para digital e de digital para analógico. Exemplos comuns são o PIC12C508 e PIC16C620.

Dispositivos lógicos programados


Mesmo não sendo um exemplo de dispositivo microprocessado, um dispositivo lógico programado
(PLD) é um chip programável que pode lidar com operações lógicas complexas. Para sermos mais
completos, incluímos aqui uma referência a tais dispositivos. Os PLDs são capazes de substituir uma
grande quantidade de portas lógicas convencionais, minimizando, assim, o total de chips e reduzindo os
tamanhos das placas de circuito impresso. A programação é relativamente objetiva e requer apenas a
derivação das funções lógicas complexas usando a álgebra booleana ou as tabelas verdade.

Controladores lógicos programáveis


Os controladores lógicos programáveis (PLC) são sistemas baseados em microprocessador
utilizados para controlar uma grande variedade de processos automáticos, da operação de um sistema
aeroportuário de manipulação de bagagens até o controle da fermentação de sua cerveja favorita. Os
PLCs são resistentes e modulares, sendo projetados especilicamente para operar no ambiente de controle
de processos.
O programa de controle de um PLC, em geral, é armazenado em um ou mais dispositivos
semicondutores de memória. O programa pode ser inserido (ou modificado) por meio de um simples
programador manual, um controlador laptop ou copiado de uma rede local (LAN). Entre os fabricantes de
PLC estão Allen Bradley, Siemens e Mitsubishi.

Sistemas de microprocessador
Os componentes básicos de qualquer sistema de microprocessador são:
(a) uma unidade central de processamento (CPU)
(b) uma memória, consistindo em dispositivos tanto de “leitura/gravação” quanto de "apenas-
leitura" (em geral, chamados RAM e ROM, respectivamente)
(c) um meio de proporcionar entrada e saída (E/S). Por exemplo, um teclado para a entrada
e um monitor de vídeo para a saída.
Em um sistema de microprocessador as funções da CPU são proporcionadas por um único chip
microprocessador integrado em grande escala (VLSI). Esse chip equivale a muitos milhares de
transistores individuais. Os dispositivos semicondutores também são usados para viabilizar as memórias
de leitura/gravação e apenas-leitura. Ambos os tipos de memória permitem “acesso aleatório”, já que
qualquer item de dados pode ser recuperado com igual facilidade, independente de sua localização real
dentro da memória. Independente disso, esse termo “RAM tornou-se sinônimo de memória semicondutora
de leitura/gravação”.
4
Os componentes básicos do sistema (CPU, RAM, ROM e E/S) são interligados usando-se um
sistema de conexão de múltiplos lios conhecido como barramento. Estão presentes três barramentos
diferentes:
• o barramento de endereço usado para especificar as localizacões de memória;
• o barramento de dados, no qual os dados são transferidos entre os dispositivos; e
• o barramento de controle que provê os sinais de temporização e controle por todo o
sistema.
A quantidade de linhas individuais existentes em um barramento de endereço e em um
barramento de dados depende do microprocessador empregado. Os sinais em todas as linhas, não
importando se eles são utilizados para endereçamento, dados ou controle, podem existir em apenas dois
estados básicos: 0 lógico (baixo) ou 1 lógico (alto). Os dados e os endereços são representados por
números binários (uma sequência de 1s e 0s) que aparecem respectivamente nos barramentos de dados
e endereço.
Muitos microprocessadores projetados para aplicações de controle e instrumentação usam um
barramento de dados de 8 bits e um barramento de endereço de 16 bits. Outros possuem barramentos de
dados e endereço que podem operar com até 128 bits de uma vez.
O maior número binário que pode aparecer em um barramento de dados de 8 bits corresponde à
condição em que todas as oito linhas estão no 1 lógico. Portanto, o maior valor de dados que pode estar
presente no barramento a qualquer momento equivale ao número binário 11111111 (ou 255). Da mesma
forma, o endereço mais alto que pode aparecer em um barramento de dados de 16 bits é
1111111111111111 (ou 65.535). O intervalo completo de valores de dados e endereços de um
microprocessador simples desse tipo é:
Dados de 00000000 a 11111111
Endereços de 0000000000000000 a 111111111111111

Representação dos dados


Os números binários, em particular os grandes, não são muito convenientes. Para torná-los mais
fáceis de lidar convertemos com frequência os números binários em hexadecimal (base 16). Esse formato
é mais fácil para simples humanos compreenderem e apresenta vantagem sobre os decimais (base 10), já
que pode ser convertido de/para binário com facilidade. Os primeiros dezesseis números em binário,
decimal e hexadecimal são mostrados na tabela a seguir. Um único caractere hexadecimal (no intervalo de
0 a F) é usado para representar um grupo de quatro dígitos binários (bits). Esse grupo de quatro bits (ou
caractere hexadecimal único) é chamado às vezes de sequência.
Um byte de dados consiste em um grupo de oito bits. Assim, um byte pode ser representado por
apenas dois caracteres hexadecimais (hex). Um grupo de dezesseis bits (uma palavra) pode ser
representado por quatro caracteres hex, trinta e dois bits (uma palavra dupla por oito caracteres hex e
assim por diante).
O valor de um byte expresso em binário pode ser convertido facilmcnte para hex colocando os
bits em grupos de quatro e convertendo cada sequência em hexadecimal usando a tabela mostrada a
seguir:

5
Observe que, para evitar confusão sobre se o um número é hexadecimal ou decimal, colocamos
um símbolo $ antes de um número hexadecimal, ou adicionamos um H ao final do número. Por exemplo,
64 signitica o decimal "sessenta e quatro", enquanto $64 signitica "seis-quatro" hexadecimal, o qual é
equivalente ao decimal 100. Da mesma torma, 7FH significa "sete F" hexadecimal, o que equivale ao
decimal 127.
Exemplo 1
Converta o hexadecimal A3 em binário.

Exemplo 2
Converta o binário 11101000 para hexadecimal.

Tipos de dados
Um byte de dados pode ser armazenado em cada endereço dentro do espaço total de memória
de um sistema de microprocessador. Portanto, um byte pode ser armazenado em cada uma das 65536
localizações de memória dentro de um sistema de microprocessador com barramcnto de endereço de 16
bits.
Os bits individuais dentro de um byte são numerados de 0(bit menos significativo) a 7 (bit mais
significativo). No caso das palavras de 16 bits, esses bits são numerados de 0 (bit menos significativo) a
15 (bit mais significativo).
Os números negativos (ou com sinal) podem ser representados usando-se a notação
complemento de dois, na qual o bit da frente (mais significativo) indica o sinal do número (1 = negativo, 0 =
positivo). Por exemplo, o número de 8 bits com sinal 10000001 representa o número decimal -1 .
O intervalo de valores inteiros dos dados que podem ser representados como bytes, palavras
(word) e palavras longas (long word) são mostrados na Tabela Abaixo

Armazenamento de dados
A ROM do semicondutor dentro de um sistema de microprocessador proporciona armazenamento
para o código do programa, bem como a quaisquer dados permanentes que requeiram armazenamento.
Todos esses dados são classificados como não-voláteis porque permanecem intactos quando a fonte de
alimentação é desconectada.
A RAM do semicondutor dentro de um sistema de microprocessador proporciona armazenamento
para os dados e variáveis temporários usados pelos programas. Parte da RAM também é utilizada pelos
microprocessadores como depósito temporário de dados enquanto executa as suas tarefas normais de
processamento.
É importante observar que quaisquer programas ou dados armazenados na RAM serão perdidos
quando a fonte de alimentação for desligada ou desconectada. A única exceção a isso é a RAM CMOS,
que é mantida em atividade por uma pequena bateria. Essa memória suportada por bateria é usada para
reter os dados importantes, tais como hora e data.
Quando expressamos a quantidade de armazenamento proporcionada por um dispositivo de
memória, utilizamos, em geral, Quilobytes (Kbyte). É importante ressaltar que um Quilobyte de memória
tem, na verdade, 1.024 bytes (não 1.000 bytes). A razão da escolha do Kbyte no lugar do kbyte (1.000
bytes) é que 1.024 é a potência de 2 mais próxima (repare que 210= 1.024).
A capacidade de uma ROM de semicondutor costuma ser especificada em termos de um intervalo
de endereços e da quantidade de bits armazenados em cada endereço, por exemplo, 2K x 8 bits
(capacidade = 2 Kbytes), 4 K x 8 bits (capacidade = 4 Kbytes) e assim por diante. Observe que nem
sempre é necessário (ou desejável) que um espaço de memória inteiro de um microprocessador seja
povoado por dispositivos de memória.

6
O microprocessador
A unidade central de processamento (CPU) do microprocessador é o cerne de qualquer sistema
de microprocessador ou microcomputador e, portanto, sua operação é crucial para o sistema inteiro.
A função primária do microprocessador é buscar, decodificar e executar instruções residentes na
memória. Como tal, ele deve ser capaz de transferir dados da memória externa para seus próprios
registradores internos e vice-versa. Além disso, ele deve operar de forma previsível distinguindo, por
exemplo, entre uma operação contida dentro de uma instrução e quaisquer endereços que a acompanham
ou localizações de memória de leitura/gravação. Além do mais, várias tarefas de manutenção do sistema
precisam ser executadas, incluindo a capacidade de suspensão do processamento normal, de modo a
responder a um dispositivo externo que requeira atenção.
As partes principais da CPU de um microprocessador, são:
• registradores para o armazenamento temporário de endereços e dados;
• uma unidade lógica e aritmética (ALU) que executa operações aritméticas e lógicas;
• uma unidade que recebe e decodifica instruções; e
• um meio de controlar e temporizar as operações dentro do sistema.
A figura abaixo mostra os aspectos internos principais de um microprocessador típico de 8 bits.
Explicaremos cada um desses aspectos, de forma resumida:

Figura 2 Arquitetura interna do uma CPU do um microprocessador de 8 bits típico.

Acumulador
O acumulador funciona como um registrador origem e destino de muitas das operações básicas
do microprocessador. Como registrador origem, ele contém os dados que serão usados em uma
determinada operação, enquanto como registrador destino ele será usado para guardar o resultado de
uma determinada operação. O acumulador (ou registrador A) aparece em uma quantidade muito grande
de operações do microprocessador e, portanto, são feitas mais referências a esse registrador do que a
quaisquer outros.

Registrador de instruções
O registrador de instruções proporciona uma localização de armazenamento temporário na qual a
instrução atual do microprocessador é mantida enquanto é processada. As instruções de programação são
passadas para o microprocessador, uma de cada vez, através do barramento de dados.

7
Na primeira parte de cada ciclo de máquina, a instrução é buscada e decodificada. A instrução é
executada no segundo ciclo de máquina (e nos subsequentes). Cada ciclo de máquina gasta um tempo
finito (em geral menos de 1 microssegundo), dependendo da frequência do relógio do microprocessador.

Barramento de dados (D0 a D7)


O barramento de dados externo provê uma via para os dados que interliga todos os componentes
do sistema (como a memória de acesso aleatório, a memória de apenas-leitura e os dispositivos de
entrada/saída). Em um sistema de 8 bits, o barramento de dados possui oito linhas de dados, com nomes
que vão de D0 (o bit menos significativo) a D7 (o bit mais significativo), e os dados são movimentados em
grupos de oito bits, ou bytes. Em um barramento de dados de dezesseis bits, as linhas têm nomes que vão
de D0 a D15, e assim por diante.

Buffer do barramento de dado


O buffer do barramento de dados é um registrador temporário através do qual os bytes ou dados
passam em seu caminho para dentro ou para fora do microprocessador. O bufter é classificado,
portanto, como bidirecional, com os dados passando para fora do microprocessador em uma operação de
gravação e para dentro do processador durante uma operação de leitura. O sentido da transferência de
dados é determinado pela unidade de controle conforme ela responde a cada instrução individual do
programa.

Barramento de dados interno


O barramento de dados interno é uma via de dados de alta velocidade que interliga todos os
elementos internos do microprocessador. O fluxo de dados para trás e para frente ao longo das linhas do
barramento de dados interno é constante.

Registradores de propósito geral


Muitas operações de microprocessador (por exemplo, somar números de 8 bits) requerem o uso
de mais de um registrador. Há também uma necessidade de armaenar por um tempo o resultado parcial
de uma operação enquanto as demais operações acontecem. Ambas essas necessidades podem ser
satisfeitas fornecendo vários registradores de propósito geral. O uso atribuído a esses registradores é
deixado por conta do programador.

Apontador da pilha
Quando chega o momento de suspender uma determinada tarefa para atender por um breve
período a algum outro evento, a maioria dos microproeessadores usa uma região da memória de acesso
aleatório externa (RAM) conhecida como pilha. Quando o programa principal é interrompido, o
microprocessador coloca o conteúdo dos registradores internos temporariamente na pilha, junto com o
endereço da próxima instrução do programa principal. Quando a interrupção tiver sido atendida, o
microprocessador recupera os dados que foram armazenados por um tempo na pilha junto com o
endereço da próxima instrução no programa principal. Assim, ele está apto a retornar ao programa
principal exatamente onde parou de executá-lo e com todos os dados preservados em seus registradores.
O apontador da pilha nada mais é que um registrador que contém o endereço da última localizacão da
pilha utilizada.

Contador de programa
Os programas consistem em uma sequência de instruções executadas pelo microprocessador.
Essas instruções são armazenadas na memória de acesso aleatório externa (RAM) ou na memória de
apenas-leitura (ROM). As instruções devem ser buscadas e executadas pelo microprocessador em uma
sequência rigorosa. Ao armazenar o endereço da próxima instrução a ser executada, o contador de

8
programa permite que o processador sempre saiba em que ponto do programa ele se encontra. O
contador de programa é incrementado de forma automática quando cada instrução é executada.

Buffer do barramento de endereço


O buffer do barramento de endereço é um registrador temporário através do qual os endereços
(nesse caso, consistindo em 16 bits) seguem seu caminho para fora do microprocessador. Em um
microprocessador simples o buffer de endereço é unidirecional, com os endereços sendo colocados no
barramento de endereço durante as operações tanto de leitura quanto de gravação. As linhas do
barramento de endereço têm nomes de A0 a A15, onde A0 é a linha menos significativa do barramento de
endereço e A16 é a mais significativa. Repare que o barramento de endereço de 16 bits pode ser usado
para o acesso a 65.536 posições de memória diferentes. Um único byte de dados é armazenado em cada
posição.

Barramento de controle
O barramento de controle é um conjunto de linhas de sinal usadas tanto para o controle dos
dados em torno do sistema quanto para a interação com dispositivos externos. Os sinais de controle
usados pelos microprocessadores tendem a ter tipos diferentes, porém os mais encontrados são os
seguintes:
 READ um sinal de saída do microprocessador indicando que a operação atual é de leitura.
 WRITE um sinal de saída do microprocessador indicando que a operação atual é de gravação.
 RESET um sinal que restabelece os registradores internos e zera o contador de programa, de
modo que o programa possa ser reiniciado a partir do início.
 IRQ pedido de interrupção a partir de um dispositivo externo tentando ganhar a atenção do
microprocessador (o pedido pode ser atendido ou ignorado, de acordo com o estado do
microprocessador no momento em que o pedido de interrupção foi recebido).
 NMI interrupção não-mascanível (isto é, um sinal de interrupção que não pode ser ignorado pelo
microprocessador).

Barramento de enderaço (A0 a A15)


O barramento de endereço proporciona uma via para os endereços que liga todos os
componentes do sistema (como a memória de acesso aleatório, a memória de apenas-leitura e os
dispositivos de entrada/saída). Em um sistema com um barramento de endereço de 16 bits existem
dezesseis linhas de endereço com nomes que vão de A0 (bit menos sigmlicativo) a A15 (bit mais
significativo). Em um sistema com um barramento de endereço de 42 bits existem 32 linhas de endereço
com nomes de A0 a A31 e assim por diante.

Decodificador de instrução
O decodilicador de instrução nada mais é do que um arranjo de portas lógicas que age nos bits
armazenados no registrador de instrução e que determina qual instrução eslá sendo referenciada no
momento. O decodilicador de instrução fornece sinais de saída para a unidade de controle do
microprocessador.

Unidade de controle
A unidade de controle é responsável por organizar o fluxo ordenado de dados dentro do
microprocessador, bem como por gerar e responder aos sinais no barramento de controle. A unidade de
controle também é responsável por controlar o tempo de todas as transferências de dados. Esse processo
é sincronizado usando um sinal de relógio interno ou externo.

Unidade lógica e aritmética (ALU)

9
Como seu nome sugere, a ALU executa operações aritméticas e lógicas. A ALU tem duas
entradas (nesse caso, ambas são de 8 bits). Uma dessas entradas deriva do Acumulador, enquanto a
outra é tirada do barramento de dados interno através de um registrador temporário. As operações
proporcionadas pela ALU incluem a adição, subtração, AND lógico, OR lógico, OR-exclusivo lógico,
deslocamento para a esquerda, deslocamento para a direita etc. O resultado da maioria das operações da
ALU aparece no acumulador.

Registrador de flag (ou registrador de estado)


O resultado de uma operação da ALU às vezes é importante para determinar que ação
subsequente deve ocorrer. O registrador de flag contém vários bits individuais que são setados ou
resetados de acordo com o resultado da operação da ALU. Esses bits são chamados de flags. Os
seguintes flags estão disponíveis na maioria dos microprocessadores:
o ZERO – o flag zero é estabelecido quando o resultado de uma operação da ALU é zero (isto é, um
valor de byte igual a 00000000)
o CARRY - o flag carry é estabelecido sempre que o resultado de uma operação da ALU (como a
adição) gera um bit de transporte (em outras palavras, quando o resultado não cabe dentro de um
registrador de 8 bits)
o INTERRUPT - o flag interrupt indica se as interrupções externas estão habilitadas ou desabilitadas
no momento.

Relógios
O relógio utilizado em um sistema de microprocessador é um gerador de onda quadrada preciso e
estável. Na maioria dos casos, a frequência do gerador de onda quadrada é determinada por um cristal de
quartzo. Um oscilador simples de relógio de onda quadrada com 4MHz (junto com a forma de onda de
relógio que ele produz) é mostrado na Figura Abaixo. Observe que um ciclo de relógio completo é
designado quase sempre como estado T

Figura 3 (a) um circuito típico de relógio do microprocessador (b) em forma de onda produzida pelo circuito do relógio.

Os microprocessadores têm às vezes um circuito de relógio interno em que o cristal de quartzo


(ou outro dispositivo ressonante) é conectado diretamente aos pinos no chip do microprocessador.

10
Figura 4 (a) Um relógio de CPU externo e (b) um relógio de CPU interno.

Operação do microprocessador
A maioria das operações realizadas por um microprocessador envolve o movimento de dados. Na
realidade, o próprio código do programa (um conjunto de instruções armazenadas na ROM ou na RAM)
deve ser trazido da memória antes da execução. Assim, o microprocessador executa uma sequência
contínua de ciclos de busca e execução de instrução. A ação de trazer um código de instrução (ou
operando/valor de dados) da memória envolve uma operação de leitura, enquanto a ação de mover os
dados do microprocessador para a posição de memória envolve uma operação de gravação.
Cada ciclo de operação da CPU é conhecido como um ciclo de máquina. As instruções do
programa podem requerer diversos ciclos de máquina (em geral, entre dois e cinco). O primeiro ciclo de
máquina em qualquer ciclo consiste em uma busca de instrução (o código de instrução é lido da memoria)
e é conhecido como ciclo M1. Os ciclos subsequentes, M2, M3 e assim por diante, dependem do tipo da
instrução que está sendo executada. Essa sequência busca-execução é exibida na Figura Abaixo.

Figura 5 Operações de (a) leitura e (b) gravação.

Os microprocessadores determinam a origem dos dados (quando estão sendo lidos) e o destino
dos dados (quando estão sendo gravados) colocando um único endereço no barramento de endereço. O
endereço no qual os dados devem ser colocados (durante uma operação de gravação) ou onde os dados
devem ser buscados (durante uma operação de leitura) pode fazer parte da memória do sistema (situação
na qual podem estar na ROM ou na RAM) ou pode estar associado com a entrada/saída (E/S).
Uma vez que o barramento de dados está conectado a vários dispositivos VLSI, um requisito
essencial de tais chips (por exemplo, ROM e RAM) é que suas saídas de dados devem ter a capacidade
de ficar isoladas do barramento sempre que for necessário. Esses chips são ajustados com entradas de
seleção ou habilitação acionadas pela lógica de decodificação de endereço. Essa lógica assegura que a
ROM, a RAM e os dispositivos de E/S nunca tentem colocar dados no barramento ao mesmo tempo!

11
Figura 6 Um diagrama de tempo típico do ciclo de busca-execução de um microprocessador.

As entradas da lógica de decodificacão de endereço derivam de uma ou mais linhas do


barramento de endereço. O decodificador de endereço divide a memória disponível em blocos que
correspondem a uma determinada Função (ROM, RAM, E/S etc). Logo, esteja o processador lendo ou
gravando na RAM, por exemplo, a lógica de decodificação de endereço irá assegurar que apenas a RAM
seja selecionada, enquanto a ROM e a E/S permanecem isoladas do barramento de dados.
Dentro da CPU os dados são armazenados em vários registradores. Os registradores em si
podem ser vistos como um escaninho que pode armazenar tantos bits quanto possível nas vagas
disponíveis. Em geral, esses dispositivos podem armazenar grupos de dezesseis ou trinta e dois bits. Além
disso, alguns registradores podem ser configurados como um registrador de dezesseis bits ou como dois
registradores de trinta e dois bits.
Alguns registradores do microprocessador são acessíveis ao programador, enquanto outros são
usados pelo próprio microprocessador. Os registradores podem ser classificados como de propósito geral
ou dedicados. No último caso, uma determinada função é associada ao registrador, tal como preservar o
resultado de uma operação ou sinalizar o resultado de uma comparação. Um microprocessador comum e
seu modelo de registrador são exibidos na Figura Abaixo.

A unidade lógica e aritmética


A ALU pode realizar operações aritméticas (adição e subtração) e lógicas (cornplementação, AND
lógico, OR lógico etc). A ALU opera em duas entradas (com dezesseis ou trinta e dois bits de tamanho,
dependendo do tipo de CPU) e proporciona uma saída (novamente com dezesseis ou trinta e dois bits).
Além disso, o estado da ALU é preservado no registrador-flag de modo que, por exemplo, um resultado de
excesso (carry), zero ou negativo possa ser detectado.
A unidade de controle é responsável pelo movimento dos dados dentro da CPU e pelo
gerenciamento dos sinais de controle, tanto internos quanto externos. A unidade de controle reivindica que
os sinais necessários leiam ou gravem os dados de acordo com a instrução atual.

Entrada e saída
A transferência de dados dentro de um sistema de microprocessador envolve a movimentação de
grupo de 8, 16 ou 32 bits usando a arquitetura de barramento descrita aqui. Portanto,é relativamente
simples transferir dados para dentro e para fora do sistema na forma paralela. Esse processo é
simplificado pelo uso de um dispositivo de E/S Paralela Programável (um Z80PI0, 8255 ou chip VLSI
equivalente). Esse dispositivo fornece registradores para o armazenamento temporário dos dados que não
apenas os separa, mas também proporciona um grau de isolamento elétrico do barramento de dados do
sistema.

12
Figura 7 O microprocessador Z80 (exibindo alguns dos sinais de controle mais importantes) junto com seu modelo de registrador.

A transferência de dados em paralelo é adequada à operação de alta velocidade por distâncias


relativamente curtas, sendo um exemplo típico a ligação de um microcomputador a uma impressora
matricial adjacente.
Entretanto, há algumas aplicações nas quais a transferência de dados em paralelo é inapropriada,
sendo o exemplo mais comum a comunicação de dados por meio de linhas telefônicas. Em tais casos, os
dados devem ser enviados de forma serial (um bit após o outro) e não de forma paralela.
Para transmitir dados na forma serial, os dados em paralelo do microprocessador devem ser
reorganizados em um fluxo de bits. Essa tarefa é bastante simplificada pelo uso de um dispositivo de
interface LSI que contem um registrador de deslocamento que é carregado com os dados em paralelo do
barramento de dados. Esses dados são lidos então como um fluxo serial de bits através do deslocamento
sucessivo. O processo inverso, a conversão de serial para paralelo, também usa um registrador de
deslocamento. Aqui os dados são carregados na forma serial, cada bit deslocando-se adiante no
registrador até que ele fique cheio. Então, os dados são colocados simultaneamente nas linhas de saída
paralelas. Os princípios básicos da conversão de dados de paralelo para serial e de serial para paralelo
estão ilustrados na figura abaixo.

Um programa de exemplo
O programa de exemplo a seguir (tabela abaixo) está escrito em código de máquina. O programa
transfere dados de 8 bits de uma porta de entrada (Porta A), complementa (isto é, inverte) os dados
(mudando os 0s para 1s e os 1s para 0s em cada posição de bit) e depois envia o resulta do para uma
porta de saída (Porta B). O programa repete o processo indefinidamente.

Figura 8 Conversão (a) de serial para paralelo e (b) de paralelo para serial.

Um programa simples de exemplo

13
Figura 9 (a) Fluxograma do programa de exemplo e (b) os oito bytes de código de programa armazenados na memória.

Apenas três instruções do microprocessador são necessárias para executar essa tarefa junto com
uma quarta instrução (salto) que provoca a repelição das três instruções indefinidamente. É mais fácil
escrever um programa curto como esse em linguagem de máquina, a qual consiste em uma série de
mnemônicos fáceis de lembrar. O fluxograma do programa é mostrado na figura abaixo (a).
O programa ocupa um total de oito bytes de memória, começando em um endereço hexadecimal
2000, como mostrado na figura abaixo (b). Você também devia observar que as duas portas, A e B, têm
cada uma um endereço único; a Porta A está no endereço hexadecimal FF, enquanto a Poria B está no
endereço hexadecimal FE.
Interrupções
Um programa que executa um loop indefinidamente tem uma aplicação prática um tanto limitada.
Na maioria dos sistemas de microprocessador, desejamos ser capazes de interromper a sequência normal
de fluxo do programa para alertar o microprocessador quanto à necessidade de algo. Podemos fazê-lo
com um sinal conhecido como interrupção. Existem dois tipos de interrupção: mascarável e não-
mascarável.
Quando é reivindicada uma interrupção não-mascarável, o processador deve suspender a
execução da instrução atual e responder á interrupção de forma imediata. No caso da interrupção
mascarável, a resposta do processador dependerá se as interrupções estão habilitadas no momento ou se
estão desabililadas (quando habilitadas, a CPU suspenderá sua tarefa atual e executará a rotina de
serviço da interrupção requisitada).
A resposta ás interrupções pode ser habilitada ou desabilitada através de instruções de programa
apropriadas. Na prática, os sinais de interrupção podem ser gerados a partir de várias origens e, já que
vão necessitar de sua própria resposta personalizada, deve ser fornecido um mecanismo para identificar a
origem da interrupção e para chamar a rotina de serviço apropriada da interrupção. Para auxiliar nessa
tarefa, o microprocessador pode usar um chip controlador de interrupção programável dedicado.

14
Um sistema de microcontrolador
A figura abaixo mostra o arranjo de um sistema de microcontrolador típico. As quantidades
captadas (temperatura, posição ele) são convertidas em sinais elétricos correspondentes através de vários
sensores. As saídas dos sensores (na forma digital ou analógica) são transmitidas como sinais de entrada
para o microcontrolador. O microcontrolador também aceita entradas do usuário. Essas opções colocadas
pelo usuário costumam incluir os valores-alvo para as variáveis (tal como uma temperatura ambiente
desejada), os valores-limite (tal como a velocidade máxima de um eixo) ou restrições de tempo (tal como a
hora de “ligar” e a de “desligar”, o tempo de atraso etc).

Figura 10 Um sistema de microcontrolador com entradas e saídas típicas.

A operação do microcontrolador é controlada por uma sequência de instruções de software


conhecida como programa de controle. O programa de controle opera de forma contínua, examinando as
entradas dos sensores, os parâmetros do usuário e os dados de tempo antes de efetuar mudanças nos
sinais de saída enviados a um ou mais dispositivos controlados.
As quantidades controladas são produzidas pelos dispositivos controlados em resposta aos sinais
de saída do microcontrolador. Em geral, o dispositivo controlado converte energia de uma forma para
outra. Por exemplo, o dispositivo controlado poderia ser um aquecedor elétrico que converte energia
elétrica de uma alimentação CA em calor, produzindo assim uma determinada temperatura (a quantidade
controlada).
Na maioria dos sistemas reais há uma necessidade de que o sistema seja automático ou auto-
regulador. Uma vez configurados, esses sistemas continuarão a operar sem a intervenção permanente do
operador. A saída de um sistema auto-regulador e realimentada na sua entrada para produzir o que
chamamos de sistema de circuito fechado. Um bom exemplo de sistema de circuito fechado é um sistema
de controle de aquecimento projetado para manter constantes a temperatura ambiente e a umidade em
um recinto, independente das variações nas condições externas.
Simplificando, um microcontrolador deve produzir um estado específico em cada uma das linhas
conectadas a suas portas de saída em resposta a uma determinada combinação de estados presentes em
cada uma das linhas conectadas a suas portas de entrada (figura abaixo). Os microcontroladores também
devem ter uma unidade central de processamento (CPU) capaz de realizar operações aritméticas, lógicas
e de temporização simples.
Os sinais da porta de entrada podem ter várias origens:
 chaves (incluindo os botões de pressão de ação momentânea)
 sensores (produzindo saídas compatíveis ao nível lógico)
 teclados (tanto do tipo codificado quanto do tipo não-codificado).

15
Os sinais da porta de saída podem ser conectados a vários dispositivos:
 indicadores LED (de ambos os tipos, individual e múltiplo)
 displays com sete segmentos de LED (através de uma interface adequada)
 motores e atuadores (dos tipos linear e rotativo) através de um buffer/acionador adequado ou de
uma interface dedicada
 relês (tanto do tipo eletromagnêtico convencional quanto do tipo estado sólido com acoplamento
ótico)
 acionadores de transistor e outros dispositivos comutadores de estado sólido

Dispositivos de entrada
Os dispositivos de entrada fornecem informação ao sistema de computador a partir do mundo
exterior. Em um computador pessoal comum o dispositivo de entrada mais óbvio é o teclado. Outros
dispositivos de entrada disponíveis no PC são o mouse (dispositivo apontador), o scanner e o modem. Os
microcontroladores usam dispositivos de entrada muito mais simples. Eles não precisam ser mais do que
chaves individuais ou contatos que se fazem e desfazem, mas muitos outros tipos de dispositivo também
são utilizados, incluindo muitos tipos de sensor que proporcionam saídas de nível lógico (como os
comutadores de flutuação, os detectores de proximidade, os sensores de luz etc).
É importante observar que, para estar conectado diretamente com a porta de entrada e um
microcontrolador, um dispositivo de entrada deve fornecer um sinal lógico compatível. Isso se deve ao fato
de as entradas do microcontrolador poderem aceitar apenas sinais de entrada digitais com os mesmos
níveis de voltagem que a fonte de alimentação lógica. O nível básico de 0 V (que costuma ser classificado
como Vss no caso do controlador CMOS) e a alimentação positiva (VDD no caso de um microcontrolador
CMOS) é invariavelmente de 5V±5%. Um nível de cerca de 0V indica um sinal 0 lógico, e uma voltagem
aproximadamente igual à fonte de alimentação positiva indica um sinal 1 lógico.
Outros dispositivos de entrada podem sentir quantidades analógicas (como a velocidade), mas
usam código digital para representar seus valores como uma entrada para o sistema de microcontrolador.
Alguns microcontroladores proporcionam um conversor analógico digital interno (ADC) para simplificar
bastante a conexão dos sensores analógicos como dispositivos de entrada, mas onde não houver essa
facilida-de será necessário usar um ADC externo que costuma ter a forma de urn único circuito integrado.
A resolução do ADC dependerá do número de bits usados, sendo comuns nas aplicações de controle os
dispositivos de 8, 10 e 12 bits.

Dispositivos de saída
Os dispositivos de saída são usados para transmitir informações ou ações de um sistema de
computador para o mundo exterior. Em um sistema de computação pessoal, o dispositivo de saída mais
comum e o monitor CRT (tubo de raios catódicos). Outros dispositivos de saída incluem as impressoras e
os modems. Como ocorre nos dispositivos de entrada, os sistemas de microconlrolador usam com
frequência os dispositivos de saída mais simples. Eles podem ser nada mais do que LEDs, sonorizadores
piezelétricos, relês e motores. Para que possa ser conectado diretamente à porta de saída de um
microcontrolador, um dispositivo de saída deve mais uma vez, ser capaz de aceitar um sinal lógico
compatível.
Quando as quantidades analógicas (e não a operação digital liga/desliga simples) forem exigidas
na saída será necessário um conversor digital-analógico (DAC). Todas as funções associadas com um
DAC podem ser proporcionadas por um único circuito integrado. Como ocorre no ADC, a resolução de
saída de um DAC depende do número de bits, sendo comuns nas aplicações de controle 8, 10 e 12 bits.

Circuitos de interface
Por fim, quando os sinais de entrada e saída não forem logicamente compatíveis (isto é, quando
eles estão fora do intervalo de sinais que podem ser conectados diretamente ao microcontrolador) alguns
componentes de circuito de interface são necessários para deslocar os níveis de voltagem ou para
proporcionar o acionamenlo de corrente adicional. Os circuitos adicionais também podem ser necessários
quando uma carga (como um relê ou motor) requer mais corrente do que a disponívela partir de um
dispositivo lógico padrão ou de uma porta de saída. Por exemplo, está disponível um conjunto comum de
16
circuitos de interface (relês de estado sólido) que facilitará que um microcontrolador seja interfaceado com
uma carga CA conectada à alimentação. Então, torna-se possível para um pequeno microcontrolador
(operando a partir de uma alimentação de apenas 5V CC controlar um sistema de aquecimento central
operando a partir de uma alimentação de 240V CC.

Figura 11 Um sinal de entrada analógico pode ser conectado a uma porta de entrada do microcontrolador através de um conversor
analógico-digital. (ADC)

17

Você também pode gostar