Buscar

Apostila Microprocessadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 141 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 141 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 141 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
 
 
 
 
 
 
 
 
 
 www.mackenzie.com.br 
 
 
 
 
 
 
APOSTILA 
 
MICROPROCESSADORES – EEUPM 
 
ENGENHARIA ELÉTRICA 
 
 
 
 
PROF. IVAIR REIS N. ABREU 
 
http://www.mackenzie.com.br/
 2 
 
PLANEJAMENTO DIDÁTICO PEDAGÓGICO DA DISCIPLINA 
MICROPROCESSADORES 
 
DISPONÍVEL NO MOODLE - DISCIPLINA MICROPROCESSADORES 
 
Bibliografia Complementar (livros fora de catálogos ou digitais) 
 
Malvino, Albert. Microcomputadores e Microprocessadores. 
 
Zuffo, João A. Circuitos Integrados Em Média Escala E Em Larga Escala, 
Compêndio de Microeletrônica - Volumes, Sistemas Eletrônicos Digitais 
 
 
 
Livros www.u8051.com.br 
 
 
 
http://www.u8051.com.br/
 3 
 
 
Compilador Arduino e Placa Arduino UNO R3 
Arduino IDE -> http://arduino.cc/en/Main/Software 
Placa Arduino UNO R3 -> http://arduino.cc/en/Main/ArduinoBoardUno 
http://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=120 
https://www.sparkfun.com/ 
http://www.eletrogate.com/ 
http://www.u8051.com.br/ 
http://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=120
http://www.eletrogate.com/
 4 
1. Conceitos de Sistemas Programáveis 
 
Planejamento (P): 
 
Este capítulo capacitará o aluno nos seguintes pontos: 
 
- Conceituar Sistema Programável, Microprocessador e Microcontrolador. 
- Compreender a linguagem física, linguagem de máquina, Assembler e linguagem 
estruturadas e a relação do compilador nestas camadas de programação. 
- Conhecer os barramentos paralelos e seriais de um Sistema Programado 
- Descrever a arquitetura interna de uma Unidade Central de Processamento. 
- Entendimento de um Sistema Mínimo com microprocessador, memória e periférico. 
- Estudo dos periféricos básicos de um microcontrolador. 
 
 
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. 
 
 
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 o preço atual dos 
computadores pessoais se fosse customizado para cada aplicação. Um mesmo 
computador é capaz, sem alteração nenhuma na máquina, torna-se um poderoso 
 5 
processador de texto ou um grande parceiro em um jogo de xadrez apenas com a 
mudança do aplicativo. 
 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. 
 
 
 
 
Figura - Arquitetura Computador mais barramentos 
 
1.2.1 Unidade Central de Processamento (C.P.U.) : 
 
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. Desta forma 
a CPU controla todas as atividades do Sistema Programável através da LEITURA e 
EXECUÇÃO de instruções localizadas na memória. É o principal elemento de decisão do 
computador, podendo ser comparado ao cérebro do computador “ser humano”. 
 
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). 
 
 
 
 
 6 
Exemplo: 
 
- Microprocessador 64 bits Pentium Intel i7. 
 
 
Maiores informações dos Microprocessadores Pentium i3 / i5/ i7: 
 
https://www.pcworld.idg.com.au/article/386100/what_difference_between_an_intel_core_i
3_i5_i7_/ 
 
https://www.intel.com/content/www/us/en/products/processors/core/view-all.html 
 
 
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. 
 
Exemplos 
- Microcontrolador 8 bits 8051 da Intel (89S51 – Atmel; LPC935 – NXP) 
- Microcontrolador 8 bits AVR (ATMEGA328 – Atmel) 
- Microcontrolador 8 bits PIC12F628A Microchip 
- Microcontrolador 8 bits MC9RS08LC60 Freescale. 
- Microcontrolador 16 bits MSP430 Texas Instruments. 
- Microcontrolador 32 bits ARM - Cortex M0 -> KL25Z Freescale 
 
 
 Alguns microcontroladores possuem recursos de Processamento Digital de Sinais 
(PDS ou DSP). Possuem um poder de processamento intermediário entre produtos com 
https://www.pcworld.idg.com.au/article/386100/what_difference_between_an_intel_core_i3_i5_i7_/
https://www.pcworld.idg.com.au/article/386100/what_difference_between_an_intel_core_i3_i5_i7_/
https://www.intel.com/content/www/us/en/products/processors/core/view-all.html
 7 
microcontroladores (dedicados) e produtos com microprocessadores (multimídia) com 
capacidade de fazer processamento aritmético e memória suficiente para cálculos complexos. 
 
Aplicações típicas: telefonia celulares, aparelhos MP3, DVDs portáteis, GPS, aplicações 
médicas, etc. 
 
 Os microcontroladores DSC (Digital Signal Controller) tem a capacidade matemática 
do DSP mas, pelo fato de possuírem PORTs, tem aplicações mais voltadas a área de controle 
principalmente o controle de motores. 
 
1.2.2 Memória 
 
Bloco semicondutor com capacidade de armazenar informações. Memoriza 
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, 
ou da memória não volátil FLASH dos microcontroladores, 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 com capacidade de executar aplicativos Multimidia existe o 
conceito de BIOS (programa de inicialização de periféricos) + SISTEMA OPERACIONAL 
( interface gráfica amigável ao usuário) + APLICATIVO (programa final). 
 
Exemplo: 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 com a carga 
dos programas selecionados na memória volátil. 
 
Em sistemas dedicados (também conhecidos como EMBARCADOS) a programa tem 
o nome de Firmware (software dedicado) normalmente residente em uma memória não 
volátil (normalmente tipo FLASH). 
Exemplo: Firmware contido em um controle remoto ou um alarme residencial. 
 
Os seres humanos, de maneira análoga, têm 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 com funções específicas possuem FIRMWARE dedicado. 
 8 
1.2.3 Periféricos 
 
Interface de comunicação do conjunto CPU / memória com o meio exterior. Pode ser 
caracterizado como Entrada (teclado, mouse, etc.) ou Saída (monitor, impressora, plotter, 
etc.) ou ambas (periféricos de comunicação serial bidirecional). Trata-se da interface de 
comunicação com o usuário e portanto o conjunto onde o mesmo controla o Sistema 
Programável. 
Em microcontroladores estes periféricos são menos complexos, como PORTS, TIMERS, 
UARTS, CONVERSORES A/D e D/A, SPI / I2C, etc, estudados na sequência. 
 
1.2.4 Barramento Paralelo 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. 
 
 9 
 
 
Figura - 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 como o cálculo intermediário de uma 
fórmula por exemplo ou informação de um periférico de E/S tal como o dado digitado 
em um teclado. O tamanho da via de dados determina respectivamente o máximo 
número de instruções, 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 como os pontos ou pixels de uma foto. 
 
Exemplo: 
 
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 possui 32 bits no barramento -> variáveis numéricas entre - 
2147483648 e + 2147483648. 
 
O número de bits do barramento de dados está ligado a capacidade de processamento 
do sistema. Se o processamento é simples (como o controle booleano de um CLP) 8, 16 ou 
32 bits são suficientes. Por outro lado, se há a necessidade de um processamento complexo 
(como os sistemas de multimídia onde há a necessidade de processarmos milhões de pontos 
de imagem) processamento de 64 a 128 bits já estão disponíveis. 
 10 
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. 
 
Exemplo: para controle de uma lâmpada é necessário 1 bit (ligado / desligado), mas para 
controle de uma foto VGA, com pixels composto de 3 pontos RGB com variação de 
luminosidade, 640 linhas x 480 colunas, ou 307.200 pixels, sendo necessário no mínimo 32 
bits para controle. Por isso, para um controle de vídeo adequado foi necessário o advento de 
processadores de 32 bits e o sistema operacional Windows ocorrido no início dos anos 90. 
 
 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 dos 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 de acesso a memória / periféricos. 
- 8088 -> 20 bits na via de endereço -> 1 Mbyte de memória / periféricos. 
 
 Barramento de controle (Control Bus): leva todas os outros sinais que não são 
dados ou endereçamento. 
 
Exemplo: sinais de alimentação (Vcc e GND), sinais de temporização (“clock”), sinais de 
inicialização (reset) 
 
Exemplo de barramentos - CPU / Memórias e Periféricos 
 
 
Figura Barramentos de Endereço (16), Dados (8) e Controle da CPU Z80 
(fonte: http://www.msxarchive.nl/pub/msx/mirrors/msx2.com/zaks/z80prg02.htm) 
 
 
 
 
http://www.msxarchive.nl/pub/msx/mirrors/msx2.com/zaks/z80prg02.htm
 11 
Memória EPROM 27256 
 
RAM 62256 
 
 
 
 
Periféricos (8255 - Interface Paralela PPI ) 
 
 
 
 12 
Esquema Completo (CPU + Eprom + RAM + IO) 
 
 
 
 
1.2.5 Barramento Serial do Sistema Programável 
 
Proporciona a diminuição da pinagem do microcontrolador mas com uma velocidade 
menor. Os barramentos seriais mais utilizados são o barramento SPI (3 pinos) e I2C (2 pinos) 
 
 Barramento SPI: 
 
Barramento com 3 pinos de controle: “clock” (SCLK), saída de dados (MOSI) e entrada 
de dados (MISO). O controlador SPI (normalmente embarcado no microcontrolador) 
controla, através de PORTS, os blocos a serem selecionadas (SS1, SS2 ou SS3). 
 
 
Controlador SPI Master acessando 3 dispositivos escravos. 
http://en.wikipedia.org/wiki/File:SPI_three_slaves.svg
 13 
Sugestão de Links: 
 
http://en.wikipedia.org/wiki/SPI_bus 
http://ww1.microchip.com/downloads/en/AppNotes/00909B.pdf 
 
 Barramento I2C: 
 
Sistema desenvolvido e proprietário da Philips com 2 sinais de controle: SCL 
(“clock”) e DAS (dado bidirecional com sentido controlado por protocolo específico). O 
exemplo a seguir mostra um controlador Mestre acessando 3 dispositivos escravos. 
 
 
Exemplo controlador I2C com 1 Mestre e 3 escravos 
 
 
Sugestão de Links: 
 
http://en.wikipedia.org/wiki/I%C2%B2C 
http://ww1.microchip.com/downloads/en/AppNotes/00974A.pdf 
 
1.2.6 Instruções – Códigos de Operação – Linguagens de Programação 
 
Instruções são conjuntos binários com 8, 16, 32 ou 64 bits que uma vez executadas pela 
CPU executam uma função ligada a configuração da instrução. Um conjunto de instruções 
forma os programas e aplicativos. Toda “família” de microprocessadores tem seu próprio 
conjunto de instruções não sendo normalmente compatíveis entre si. 
 
A instrução binária forma o CÓDIGO DE OPERAÇÃO formando a Linguagem de 
Máquina. O código de operação normalmente é representado por uma expressão mnemônica 
(lembra a sua função) conhecido por mnemônico. 
 
Exemplo de Mnemônicos do Microcontrolador 8051: 
 
Instruções Significado Código 
 
MOV A,R0 A <- [R0] 0E8h 
 
MOV R7,A R7 <- [A] 0FFh 
 
ADD A,R0 A <- [A]+[R0] 028h 
 
Algumas instruções irão ocupar mais de uma posição de memória pois precisam de um 
complemento. 
http://ww1.microchip.com/downloads/en/AppNotes/00909B.pdf
http://en.wikipedia.org/wiki/I%C2%B2C
http://ww1.microchip.com/downloads/en/AppNotes/00974A.pdf
http://en.wikipedia.org/wiki/File:I2C.svg
 14 
 
Exemplo: 
 
MOV A, 0x30 (o dado do endereço de memória 30 hexadecimal é carregado no acumulador 
A) 
 
Códigos de Operação -> 0xE5 , 0x30 
 
O código 0xE5 refere-se ao mnemônico MOV A,xxx e 0x30 é o operando exigido 
pela instrução MOV A,xxx (endereço 030h da memória de dados). 
 
 No exemplo acima, o número 0x30 não pode ser compilado como a instrução JNB 
(cujo código de operação é 0x30). Portanto deve-se prestar atenção se o código de operação 
pede 1 ou 2 bytes de complemento e colocar o operando seguindo imediatamente a instrução. 
O resultado disso tudo, colocado sequencialmente na memória é: 
 . 
 . 
 . 
 
 
1 1 1 0 0 1 0 1 
0 0 1 1 0 0 0 0 
 
 
 . 
 . 
 
Todas linguagens de computação tais como Visual Basic, C++, Java e etc. nada mais 
são do que tradutores (compiladores) da linguagem de alto nível para instruções de máquina 
(representadas por mnemônicos ou instruções Assembler). Um detalhe importante é que uma 
instrução em linguagem de alto nível corresponde a muitas – às vezes milhares – de 
instruções de máquina. 
 
 O processo de compilação de um programa de alto nível pode ser representado 
como a seguinte sequência: 
 
LING. ALTO NÍVEL / INTERMEDIÁRIA (Java ou Linguagem C) => 
 
LINGUAGEMDE MÁQUINA (mnemônico representado o código de operação físico) 
 
=> MICROPROCESSADOR (hardware) 
 
Observe que a CPU e o CÓDIGO DE OPERAÇÃO são FÍSICOS enquanto o 
MNEMÔNICO e as ESTRUTURA DE PROGRAMAÇÃO DE NÍVEL INTERMEDIÁRIO 
E ALTO NÍVEL (como IF THEN ELSE) são representações que necessitam ser compiladas 
para gerar o código físico. 
 
 Uma instrução da linguagem de alto nível (C++ por exemplo) pode gerar centenas ou 
milhares de instruções de máquina que implementam a dada instrução. 
 
 A linguagem Assembler também é um tradutor muito simples das instruções do 
microprocessador para o respectivo código binário. Mas com uma característica importante: 
cada comando em Assembler gera uma ÚNICA instrução em linguagem de máquina. Um 
 15 
programa escrito em Assembler será sempre traduzido da mesma forma independente do 
compilador (ASM51 ou IAR Workbench). 
 
 Toda CPU possui sua própria Linguagem de Máquina ou Linguagem Assembler. Por 
exemplo, no caso do microcontrolador Intel 8051 a instrução que copia o conteúdo do 
registrador R0 para o Acumulador (A) é representada na Linguagem Assembler como: 
 
MOV A,R0 (mover para o Acumulador o conteúdo do registrador R0) e estará em uma 
posição da memória como: 
 . 
 . 
 . 
 
 
1 1 1 0 1 0 0 0 
 
 
 . 
 . 
 
 
Verificação (C) 
 
Exercícios – Arquitetura do Computador 
 
1. Definir Sistema Programável, Microprocessador e Microcontrolador. 
 
2. Quais são os 3 elementos de um computador. Explicar a função destes elementos. 
Comparar estas estruturas artificiais com o “computador humano”. 
 
3. Explicar os 3 barramentos e o tipo de informação que os mesmos transportam. 
 
4. Qual a capacidade de manipulação numérica (faixa numérica). do 8085 (8 bits), 8088 (16 
bits), 80386 (32 bits) e Pentium (64 bits). 
 
5. Qual o tamanho do barramento de endereços do 8085 (64 kbits), 8088 (1Mbits), 80386 (4 
Gbits) e Pentium (64 Gbits). 
 
6. Qual as características dos barramentos seriais I2C e SPI. Qual a vantagem e desvantagem 
em relação ao barramento serial? 
 
7. Bibliografia “The 8051 Family of Microcontrollers” – Ler páginas 1 a 4 
Responder as questões 1 a 8 (página 5). 
 
8. Explicar a relação entre Hardware, Código de Operação, Mnemônico, Linguagem C e 
Java. 
 
9. O que é compilador? 
 
10. Compilar as seguintes instruções com auxílio da tabela de instruções do microcontrolador 
8051: 
 
 MOV A,#05 
 MOV R0,A 
 ADD A,#06 
 16 
 INC A 
 MOV 030h,A 
 DEC 030h 
 DEC 031h 
 MOV 033h,030h 
 
 
 
11. Descompilar os seguintes códigos do microcontrolador 8051: 
 
 078h, 005h, 0E8h, 0FDh, 000h, 012h, 000h, 010h 
 
 
Exercícios – ENADE 
 
Questão 13 - Enade 2005 
 
O supercomputador T-Rex (Tiranossauro Rex) e o software Harpia são as mais novas 
armas da Receita Federal do Brasil para combater a sonegação fiscal. Esse hardware, que 
realiza 2.860 milhões de instruções por segundo, é capaz de cruzar informações, com 
rapidez e precisão, de um número de contribuintes equivalente ao de contribuintes do 
Brasil, dos EUA e da Alemanha juntos. O novo software vai permitir que, a partir de 
técnicas de inteligência artificial, sejam identificadas operações de risco para o fisco. A 
novidade do sistema é a capacidade que ele terá de aprender com o comportamento dos 
contribuintes e com isso detectar irregularidades. Folha de S.Paulo, p. B1, 16/10/2005 (com 
adaptações). 
 
Considerando o texto acima, assinale a opção correta, relativa a informática. 
A - A capacidade do T-Rex é equivalente à de 2.860 computadores pessoais de 1 GB de 
memória RAM, desde que suas capacidades possam ser adicionadas. 
B - Para “cruzar informações, com rapidez e precisão”, o T-Rex poderá usar a Internet, que 
constitui meio inviolável de transmissão de informação entre bancos 
de dados. 
C - É possível que a capacidade de “aprender com o comportamento dos 
contribuintes”, mencionada no texto, seja decorrente do uso de redes neurais como 
ferramenta de inteligência artificial. 
D - Embora os computadores sejam indispensáveis a diversos ramos da engenharia, o 
estágio atual do desenvolvimento de sistemas operacionais restringe o uso de redes de 
computadores a grandes empresas. 
E - O sistema de informação descrito no texto deve ter sido desenvolvido em Linux ou 
Unix, que constituem linguagens de programação avançadas usadas na implementação de 
sistemas de informação complexos. 
 
QUESTÃO SIMULADO ENADE MACKENZIE 2010 
"Em junho, um novo campeão conquistou importante marca no mundo dos bits. Surgiu o 
supercomputador mais veloz do planeta, o Roadrunner – nome do pássaro, incansavelmente 
perseguido por um coiote, que inspirou o desenho animado Papa-Léguas. Ele quebrou um 
recorde espetacular. Atingiu a velocidade de processamento de dados chamada de petaflops, 
 17 
que corresponde a 1 quatrilhão de operações por segundo. Ou seja, a máquina fez 1 000 000 
000 000 000 de contas no intervalo de tempo em que uma pessoa pisca os olhos. (...). O 
maior supercomputador do Brasil é o Netuno, inaugurado em maio pela Universidade Federal 
do Rio de Janeiro (UFRJ). Ocupa o 138º lugar na lista dos Top500. Alcança 16,24 teraflops. 
Tem menos de 2% da velocidade do Roadrunner. Mas isso não é pouco. Uma previsão de 
chuvas para dez dias é feita em uma hora na UFRJ. Se fosse usado um PC comum, levaria 
quarenta dias. Ou seja, a chuva já teria caído. Financiado pela Petrobras, o Netuno custou 5 
milhões de reais. Será empregado na exploração de petróleo. Nesse setor, a força do 
processamento de dados auxilia na descoberta de novas reservas, quer por meio de cálculos, 
quer pelo conhecimento adquirido sobre o comportamento do leito oceânico. "Com o Netuno 
podemos prever também como o solo vai se comportar após a retirada do petróleo e do gás, 
além de estimar quanto isso pode alterar o regime de correntes e as temperaturas do mar", 
disse a VEJA Sergio Guedes de Souza, coordenador do Centro de Computação de Alto 
Desempenho de Geofísica e Oceanografia da UFRJ. (...) A maior parte dos 
supercomputadores em atividade é formada por aglomerados de máquinas que usam peças 
de PCs comuns. São chamados de clusters. O Roadrunner, o mais rápido do mundo, é um 
exemplo. Foi construído com dois tipos de chip: 12 240 deles feitos pela IBM, semelhantes 
aos usados no PlayStation 3, e 6 562 processadores dual core da AMD. O uso de dispositivos 
existentes em qualquer loja ajuda a reduzir o preço das supermáquinas." (Veja - Setembro / 
2008 - Caderno Tecnologia) 
Qual das alternativas abaixo é correta baseada no texto acima? 
A. É necessário o desenvolvimento de um sistema operacional Linux para sincronizar as 
CPUs dos supercomputadores desenvolvidos. 
B. A memória de dados dos computadores devem ser a mesma velocidade de acesso do tempo 
de execução das instruções dos clusters. 
C. O conceito de utilizar milhares de microprocessadores em uma máquina é igual ao 
conceito de multiprocessamento presente no cérebro humano, onde cada "cluster" executa 
uma parte da tarefa proposta. 
D. A energia elétrica consumida pelo Roadrunner equivale a 12240 computadores IBM PC? 
E. O Netuno teve um custo de construção equivalente a 2 % do custo do Roadrunner? 
ENADE 2001 QUESTÃO 18 – COMPUTAÇÃO 
 
A figura abaixo representa a hierarquia de memória dos microcomputadores. 
 
 18 
 
 
a) Explique a razão da existência da memória cache. (valor: 2,0 pontos) 
b) Analise, comparativamente, as memórias cache e principal (RAM), com relação a: 
capacidade de armazenamento; velocidade de acesso; volatilidade; custo. 
 
1.4 Arquitetura de Microprocessadores 
 
1.4.1 Arquitetura Interna 
 
 Os blocos essenciais para implementar um microprocessador (CPU) são mostradas a 
seguir. 
 
 
Figura - 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 controleexternos 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. 
 19 
 
 
 
 
 
 
 
 
 
Exemplo: 
Execução da Instrução MOV A,R0 (código operação 0xE8) e MOV R1,A ( 0xF9) 
 
 
 
 
 
REPRESENTAÇÃO DA EXECUÇÃO DAS INTRUÇÕES MOV A,R0 (0xE8) E MOV R1,A (0xF9) 
 
 20 
 
TABELA COM OS SINAIS DE CONTROLE DAS INSTRUÇÕES MOV A,RO e MOV R1,A 
 
Considerando o Decodificador de Instruções uma TABELA DA VERDADE chega-
se ao projeto de Circuito Lógico Combinacional (Mapa de Karnaugh). 
 
Cada família de C.P.U.s possui um conjunto de instruções (códigos de operação) 
próprios tornando cada componente da família COMPATÍVEL em termos de código. 
 
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. 
 
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 sistemas 
multimídia). 
 
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. 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. 
 
 
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 
 21 
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. 
 
 
 
 
 
 
Exemplo 
 
 
 
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. 
C -> flag carry principal. Em 1 indica “estouro” (“overflow”) do acumulador. 
 
Exemplo: Fazer a soma dos números ( 0xBB + 0xFA) 
 MOV A,#0xBB 
 MOV B,#0xFA 
 22 
 ADD A,B 
 JC MAIOR 
Qual o resultado do acumulador e prever se este programa saltará 
 1 0 1 1 1 0 1 1 FLAG: S Z - AC - P - C 
 + 
 1 1 1 1 1 0 1 0 
 --------------- 
 
 
 
 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 sub-rotinas). 
 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. 
 
Exemplo 1: instrução CALL 4000 com a pilha definida pelo registrador SP carregado com 
o endereço 0xFFFF 
 
 MOV SP,#0xFFFF ; define a pilha no endereço 0xFFFF 
 
 
 
Exemplo 2: Diferença entre as instruções JMP 2000H e CALL 2000H 
 
 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 sub-rotina. O conteúdo do 
registrador SP é decrementado de dois para possibilitar o salvamento de outros 
parâmetros na pilha (ou a chamada de outras sub-rotinas dentro de sub-rotinas) 
 
 23 
 
 
 
 
 
 
 
 
 
 
Exemplo de vídeo -> Subrotinas 8085 
 
https://www.youtube.com/watch?v=_LZxAObNjJo&t=61s 
 
 
 
 
1.4.2 Conceitos Complementares Microprocessador 
1.4.2.1 Temporização das Instruções (Ciclo de Instrução e Ciclo de Máquina) 
 
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 relógio (“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 (mais estável) ou conjunto de resistor e 
capacitor em série (mais econômico, mas suscetível a variação de temperatura). 
A figura a seguir mostra um exemplo de “clock” gerado através de cristal no 
microcontrolador 8051 e ATMEGA328 com capacitores de desacoplamento e circuito 
interno oscilador e “prescaler”. 
 
 
 24 
 
 
Oscilador a cristal 
 
 
 
 
Fonte: Manual ATMEGA328 
 
 25 
 
Fonte: Manual ATMEGA328 
 
 
 
Segundo o Manual do microcontrolador ATMEGA328: 
 
ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-
ATmega328-328P_Datasheet.pdf 
 
A seleção da “fonte” do oscilador é configurada por registradores internos do 
microcontrolador AVR ATMEGA328. O bloco de “system clock prescaler” pode dividir ou 
mesmo multiplicar a frequência da fonte de entrada em alguns microcontrolador (comum na 
família PIC da Microchip). Para o processador ATMEGA 328 veja capítulo 13 “System 
Clock and Clock Options” para maiores detalhes. A fonte do clock no ATMEGA é 
selecionada através de “bits de gravação da memória Flash” CKSEL função normalmente 
controlada pelo “bootloader” do IDE do Arduino. 
 
 
 26 
 
 
 
Fonte: Manual ATMEGA328 
 
 
 Na placa ARDUINO UNO R3 o cristal oscilador EXTERNO é de 16 Mhz (ver 
esquema a seguir), mas é importante destacar o oscilador INTERNO do processador 
ATMEGA328 de 8 Mhz (ver item 8.4 do Manual do ATMEGA) não acessível pelo sistema 
Arduino. 
 
 
 
 
Fonte: www.arduino.cc 
 
http://www.arduino.cc/
 27 
 Com o cristal de 16 Mhz a temporização de cada pulso de clock da CPU do 
processador ATMEGA passa a ser de 1/16 Mhz ou 62,5 ns. 
 
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( temporização para 
busca da instrução) e M2 (temporização para a execução da instrução). 
No exemplo abaixo para o processador 8085 temos 4 clocks para o ciclo de busca e 3 
clocks para o ciclo de execução 
 
 
Fonte: Manual microcontrolador 8085 
 
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áriospara 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. 
 
 
 
 
 
Exemplo: 
 
Calcular os ciclos M1, M2 e o ciclo de instrução para a instrução MOV A,M (leitura da 
memória e escrita no registrador A) utilizando fc = 6 Mhz, n = 3, M1 = 4 “clock”s e M2 = 3 
“clock”s. 
 
 
 
 
 
 
- Temporização x Consumo de Potência: o consumo de energia é diretamente proporcional 
a frequência de operação da CPU. Para um projeto com baixo consumo de energia (utilização 
de baterias) será necessário avaliar a relação temporização x consumo para atender a 
demanda de baixo consumo e velocidade de processamento. A seguir é mostrada o gráfico 
a tabela de consumo do processador ATMEGA328 em função da frequência de operação e 
tensão de alimentação. 
 28 
 
Para um cristal de 16 Mhz com alimentação 5 V (placa Arduino) temos uma corrente 
aproximada de 9 mA. Já para a frequência de 8 Mhz a corrente na mesma tensão de 
alimentação cai para menos de 6 mA. 
 
 
 
Fonte: Manual ATMEGA328 
 
 
 
 
 
 
 
 
- Busca de Instrução “Pipeline”: algumas CPUs otimizam o ciclo de busca (M1) e 
execução (M2) integrando estes dois processos (enquanto uma instrução é executada a 
próxima é lida). Este processo acelera a execução do programa. 
 
Instrução 1 -> M1 M2 
Instrução 2 -> M1 M2 
Instrução 3 -> M1 M2 
 
 
Observe que o ciclo de instrução (M1 + M2) fica reduzida a um único ciclo de máquina. A 
seguir um exemplo do processo “Pipeline” em um microcontrolador PIC 16F84: 
 
 
 29 
 
 
1.4.2.2 Circuito de Inicialização (“RESET”) e Supervisório “Watch Dog” 
 
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 a seguir mostra o reset utilizado pelo 8051 (ativo em nível alto, reset manual e 
automático) e no LPC935 (NXP, ativo em nível baixo). 
 
 30 
 
 
 
Figura - Sistema de Reset Ativo Alto (8051) e Ativo Baixo (LPC935) 
 
 Alguns processadores como o ATMEGA328 tem um tempo de reconhecimento de 
nível de reset baixo muito rápido dispensando o uso do capacitor de carga. 
 
Fonte: www.sparkfun.com 
 
 A curva de sinal do RESET é dada pela fórmula da Carga do Capacitor (no caso de 
Reset negativo) ou Descarga de Capacitor (no caso de Reset positivo) 
 
 31 
 
 
 Considerando que o tempo de Reset típico é de 100 períodos de ““clock”” e que a 
CPU permanece em inicialização até 2/3 Vcc (no caso de reset negativo) ou 1/3 Vcc (no caso 
de reset positivo) pode-se calcular o valor de R ou C, fixando um deles. 
 
Exemplo: 
Determinar o mínimo valor de um capacitor para um circuito de reset automático ativo em 
nível baixo considerando: 
Vreset = 2/3 Vcc 
R = 100k 
Freqüência: 100 Mhz 
Número de “clock”s mínimo para reset: 100 
 
Supervisórios: circuitos eletrônicos com a função de monitorar o funcionamento do 
programa e nível da tensão de alimentação (não pode ser menor que um mínimo) gerando 
um reset no caso de aplicativo "se perder" ou a tensão de alimentação for menor que um 
patamar. Normalmente estes supervisórios são chamados de Watch Dog (reinicializam a 
CPU se o programa se perder), Brown-out (instabilidade da alimentação no início do 
programa) ou Power On Reset (P.O.R) (instabilidade da alimentação durante o 
processamento). 
 
Bibliografia: A.N. 31003 Microchip - Reset e B.O.R. 
 
http://ww1.microchip.com/downloads/en/devicedoc/31003a.pdf 
 
Bibliografia Watch Dog Timer -> A.N. Microchip 31026a 
 
http://ww1.microchip.com/downloads/en/devicedoc/31003a.pdf
 32 
http://ww1.microchip.com/downloads/en/DeviceDoc/31026a.pdf 
 
 
 
 Watch Dog (“cão de guarda”) : circuito supervisório que inicializa (gera um "reset") 
no 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 tempo menor que o tempo do W.D., gerar este sinal (normalmente através de uma 
instrução do microcontrolar com CLR WDT). Se o programa se perder e não gerar o referido 
sinal, o W.D. inicializará o microprocessador. 
 
 
 
Watch Dog Timer 
 
 Brown out Reset (B.O.R.): inicializa o microcontrolador se a tensão de alimentação 
cai abaixo de um mínimo (normalmente 90 % do Vcc nominal) DURANTE A OPERAÇÃO 
DO SISTEMA. 
http://ww1.microchip.com/downloads/en/DeviceDoc/31026a.pdf
 33 
 
 
 
 Power on Reset (P.O.R.): inicializa o microcontrolador se a tensão de alimentação 
cair abaixo de um mínimo quando a fonte é ligada. Portanto garante que o programa do 
microcontrolador estará estável quando o aplicativo começar a "rodar". 
 
 
Figura - P.O.R. Externo 
 
1.4.2.3 Sistema de 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 sub-rotina através de um sinal de hardware). 
 34 
 
Figura - Funcionamento do Sistema de Interrupção 
 
Exemplo -> Atendimento de 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). 
A função do programa chamado pela interrupção está ligado ao atendimento à requisição 
do periférico. Se um mouse gerou uma interrupção o programa está ligado ao aplicativo 
(“driver”) do mouse. 
 
 
 35 
Dentro dos microprocessadores estão disponíveis registradores de configuração que 
determinam interrupções pendentes e níveis de prioridade. 
A seguir são mostradas as interrupções do microcontrolador 8051 (5 interrupções com os 
vetores de salto) e do AVR ATMEGA328 ( 26 interrupções com 2 externas INT0 e INT1 e 
as demais ligadas a periféricos internos). 
 
Tabela de Interrupções 8051 (manual AT80S52) 
 
 
Tabela de Interrupções ATMEGA328 (manual AVR) 
 
 
 
 
 
 
 36 
Verificação (C) 
 
Exercício – Arquitetura Microprocessadores 
 
1. Explicar a função do Acumulador e Flag em uma CPU. Descrever os bits do Flag do 8085. 
 
2.Qual o conteúdo do Acumular e Flag da seguinte rotina considerando um flag da CPU do 
8085? 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 
 
3. 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 
 
4. Fazer uma tabela de controle considerando os sinais RD, WR e CS das instruções MOV 
A,R3 e MOV R3,A. Representar a movimentação dos códigos de operação entre a 
Memória e CPU. 
 
 
5. Explicar o significado de Ciclo de Máquina e Ciclo de Instrução. Qual o significado do 
fator de divisão do oscilador N no cálculo destes ciclos. 
 
6. Calcularo ciclo de máquina M1 e M2 e o ciclo de instrução de < ADD A,B > (soma A 
com B), fc = 10 Mhz, n=2, M1=4 “clock”s, M2=3 “clock”s. 
 
7. Calcular os ciclos de máquina M1, M2 (busca 2 códigos de instrução) e M3 (execução) e 
o ciclo de instrução (soma dos ciclos de máquina) para a instrução < OUT 10h > (carrega o 
o periférico de saída com o dado do acumulador), fc = 1 Mhz, n=4, M1 = 4 “clock”s, M2 = 
3 “clock”s e M3 = 3 “clock”s. 
 
8. Qual a relação entre Potência e Tempo / Frequência de Processamento. 
 
9. Explicar o conceito de “Pipeline” e seu efeito sobre o tempo de execução de uma instrução. 
 
10. Determinar o mínimo valor de um capacitor para um circuito de reset automático ativo 
em nível alto (fórmula de descarga do capacitor) considerando: 
 Vr = 1/3 Vcc 
R = 10 Kohms 
Freqüência: 500 Mhz 
Número de “clock”s mínimo para reset: 500 
 
11. Explicar o significado de Watch Dog, P.O.R e B.O.R. e seu princípio de funcionamento. 
Mostrar os circuitos típicos. 
 37 
 
12. Explicar o conceito de interrupção. Quem gera o sinal de interrupção? O que é vetor 
de interrupção? Qual a função do programa de interrupção? Quais são os vetores de 
interrupção de pinos externos dos microcontroladores 8051 e ATMEGA328? 
 
 
QUESTÃO ENADE 
 
Questão nº 6 (E.N.C. 1998) - Gabarito Anexo no final da apostila 
 
Nos sistemas microprocessados, o pulso de inicialização (“reset”) é usado para colocar a 
UCP (Unidade Central de Processamento) em um estado conhecido. Esse pulso precisa ser 
gerado automaticamente no ato da energização do sistema, e deve ser o mais curto possível, 
desde que não fique aquém da especificação da UCP. No presente caso, o “reset” deve ser 
ativado em nível alto (lógico 1) durante um intervalo não inferior a 40 períodos de relógio, 
gerado a partir do cristal. A figura apresenta um esquema típico para atender a essas 
necessidades. O inversor é do tipo “Schmitt-Trigger”, cujo comportamento está caracterizado 
nas informações técnicas e cuja impedância de entrada deve ser considerada infinita. 
 
 
Pede-se: 
a) a duração mínima do pulso de inicialização; (valor: 2,0 pontos) 
b) o esboço da tensão sobre o capacitor, logo após a energização do sistema; (valor: 2,0 
pontos) 
c) o valor mínimo da constante RC; (valor: 4,0 pontos) 
d) a escolha dos componentes, supondo a seguinte disponibilidade: (valor: 2,0 pontos) 
capacitores: 1 μF, μ10 F e 100 μF; 
resistores: 56 R, 62 R, 72 R, 82 R, 100 R e 120 R. 
 
Questão Simulado Enade Mackenzie 2010 
 
1. Nos sistemas com microprocessador, o pulso de inicialização (“reset”) é usado para colocar 
a UCP (Unidade Central de Processamento) em um estado conhecido. Esse pulso precisa ser 
gerado automaticamente no ato da energização do sistema, e deve ser o mais curto possível, 
desde que não fique aquém da especificação da UCP. No circuito mostrado abaixo o “reset” 
deve ser ativado em nível alto (lógico 1) durante um intervalo não inferior a 100 períodos de 
relógio, gerado a partir do cristal. A figura apresenta um esquema típico para atender a essas 
 38 
necessidades. A especificação da UCP indica nível mínimo de tensão de "reset" igual a 50 % 
da tensão de alimentação do sistema. 
 
 
Escolher a alternativa correta para as questões abaixo: 
 
O valor mínimo do resistor R considerando um capacitor de 1 µF . (Dado: ln 0,5 = -0,69) 
a) 77 ῼ 
b) 145 ῼ 
c) 190 ῼ 
d) 1450 ῼ 
e) 770 ῼ 
 
1.5 Estudo de Caso - Microprocessador 8085 (8 bits) 
 
Manuais: 
 
8085 -> https://www.sigc.edu/department/mca/studymet/Intel8085.pdf 
 
Z80 -> http://www.z80.info/zip/z80cpu_um.pdf 
 
6502 -> http://archive.6502.org/datasheets/rockwell_r650x_r651x.pdf 
 
 
Meados da década de 70 do século XX -> Microcontroladores de 8 bits -> primeiros 
computadores pessoais 
 
Microcontrolador 8085 -> TK85 
 
 
https://www.sigc.edu/department/mca/studymet/Intel8085.pdf
http://www.z80.info/zip/z80cpu_um.pdf
http://archive.6502.org/datasheets/rockwell_r650x_r651x.pdf
 39 
 
TK85 
 
6502 (Motorola) -> Apple II 
 
 
Apple 2 
 
Z80 (Zilog) - TRS80 
 
 
 
TRS80 (Radio Shack) 
 
Principais características do microprocessador 8085: 
 
- 8 bits na via de dados (possui 246 instruções) D0-D7. 
- 16 bits na via de endereço (acessa 64 k de memória e 256 periféricos) sendo o byte A0-
A7 multiplexado com D0-D7 
- 5 entradas para interrupções. 
- Interface serial. 
 40 
- Controle de D.M.A. (sistema de controle de barramento – “tri-state” para acesso a 
dispositivos externos) 
- Controle de sincronização para periféricos / memória lentos (sinal “ready”) 
- “clock” típico de 3 Mhz. 
 
 
 
 
 
Análise da arquitetura interna e pinagens: ver data-book 
 
 
 
 
Figura - 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). 
 41 
 
- Registradores de uso geral: 6 registradores de 8 bits (armazenando dados) podendo ser 
utilizados como pares de 16 bits (armazenando endereços): BC, DE, HL (ponteiro) 
 
- 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”. 
- “CLOCK”OUT: 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. 
- S0 e S1: sinais de saída indicando status. 
 0 0 -> 8085 parado (HALT) 
 0 1 -> processo de leitura 
 1 0 -> processode escrita 
 1 1 -> processo de busca de instrução (“fetch”) 
 
 42 
- 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. 
 
Sistema Mínimo com o 8085: 
 
 
SKD85 
 
 
 
Sistema Mínimo 8085 
 43 
Esquema Sistema Mínimo 8085 
Eprom 27256 
RAM 62256 
Periféricos Programáveis (8 periféricos -> 8255 - PPI - 8251 - USART - 8253 - Timer, etc) 
 
 
 
 
Análise de 1 ciclo de temporização da instrução 8085 OUT <END> (2 bytes) 
 
Temporização da Instrução 'OUT <end>' (2 bytes) (ver livro 
Microprocessadores e Microcomputadores - A.Malvino) mostrando sinais da 
pinagem do 8085. 
 
Exemplo: OUT 20H ;códigos de operação -> D3 20 
Sinais monitorados (com analisador lógico) 
CLK: sinal de “clock” (para o 8085 frequência do cristal dividido por 2. 
AD0-AD7: 8 sinais de Ao-A7 (endereço) e D0-D7 (dado) multiplexado na 
pinagem do 8085. 
A8-A15: 8 sinais do byte mais significativo totalizando 16 sinais de 
endereço. 
ALE: sinal de saída Address Latch Enable indicando natureza do sinal em 
AD0-AD7 (1 -> endereço AO-A7; 0-> dado D0-D7) 
RD: sinal de saída indicando leitura de Memória / IO. 
WR: sinal de entrada indicando escrita de Memória / IO. 
IO/M: sinal de saida indicando acesso a IO (1-> periférico) ou M (0 -> 
memória). 
 44 
Status: sinais S1-S0 (busca de código, leitura ou escrita) 
 
Mother Board Asus ( 2012 ) 
 
Mostra a evolução da tecnologia de 1975 (8085) para o Pentium IV (2012) mas mantendo os 
blocos de CPU, Memória Volátil (RAM) e não Volátil (Flash) e Periféricos (chipsets). 
 
 
 45 
 
 
1.6 Microprocessadores Intel 
 
Lista com os microprocessadores da Intel atualizada: 
http://www.intel.com/pressroom/kits/quickreffam.htm 
 
Processadores INTEL -> http://www.intel.com/index.htm?pt_BR_01 
http://en.wikipedia.org/wiki/List_of_Intel_microprocessors 
http://pt.wikipedia.org/wiki/Categoria:Microprocessadores_da_Intel 
 
Cronologia -> http://www.intel.com/pressroom/kits/quickrefyr.htm 
 
História -> http://download.intel.com/pressroom/kits/IntelProcessorHistory.pdf 
 
 
 
Novos Processadores Intel -> http://ark.intel.com/ 
 
 
 
http://www.intel.com/pressroom/kits/quickreffam.htm
http://www.intel.com/index.htm?pt_BR_01
http://en.wikipedia.org/wiki/List_of_Intel_microprocessors
http://www.intel.com/pressroom/kits/quickrefyr.htm
http://download.intel.com/pressroom/kits/IntelProcessorHistory.pdf
http://ark.intel.com/
 46 
Figura - Tabela comparativa entre microprocessadores Intel (4004-PentiumIII) 
 
Vídeo “História do Processadores Pentium – Olhar Digital” 
 
 
 
http://www.youtube.com/watch?v=ZrTWSJXDfR8 
 
 
 
1.7 Sistemas Complementares de Sistema Programáveis 
 
1.7.1 Periféricos Embarcados 
 
 Ports: típico periférico de microcontroladores de Entrada / Saida para leitura / saída 
binária de um dispositivo 
 
Exemplo: 
 
Entrada -> chaves, teclados, sensores binários. 
 
 
Entrada -> Chave (fechada -> 0 ou GND, aberta -> 1 ou Vcc) 
 
http://www.youtube.com/watch?v=ZrTWSJXDfR8
 47 
Saída -> rele, led, lâmpada, motor, solenóide, etc. 
 
 
 
Acionamento de um rele através de um PORT de um microcontrolador 
 
Nivel alto no Port (+Vcc) aciona Rele (instrução SETB <port> no 8051) 
Nível baixo no Port (GND) desliga Rele (instrução CLR <port> no 8051) 
 
 
Acionamento de um sonorizador ("beep"). 
 
Microcontroladores e DSP (Processador Digital de Sinais) / DSC (Controlador Digital 
de Sinais) possuem Ports internos para controle binários de entradas e saídas. 
 
 Timers - Temporizadores: contadores de tempo gerando interrupções / eventos 
temporizados no Microcontrolador. São configurados por software e sincronizados 
pelo oscilador do sistema ou pulso externo. 
 
Exemplo: Timer gerando interrupção a cada 50 msegundos para um alarme verificar os 
sensores de presença / janela. 
 
 UART - Comunicação Serial: interface, normalmente Full-Duplex (Tx e Rx 
simultâneamente), para comunicação serial. Garante a conectividade serial do 
equipamentos com redes externas (modem, rede Ethernet, Fibra-Otica, satélite, etc). 
 
 
 Conversor A/D: Conversor Analógico / Digital responsável por amostrar (taxa de 
amostragem) sinal externos analógicos (normalmente de baixa frequencia em 
microntroladores) gerando valores digitais correspondentes. A precisão da conversão 
depende do número de bits utilizados (amostras = 2n onde n é o número de bits), taxa 
de amostragem de valor máximo (fundo escala). 
 
 48 
Exemplo: Leitura do valor de temperatura de 1 ambiente. Se a faixa for de 100º C e for 
utilizado 8 bits teremos 100 / 28 = 0,4º C 
 
 Conversor D/A: Conversor Digital / Analógico converte dados digitais binários em 
valores analógicos correspondentes. Normalmente utilizados em sistemas 
reprodutores de som (MP3). Sua precisão depende o número de bits utilizado. 
 
 PWM: Bloco de Modulação por Fase, booleando, normalmente utilizado para gerar 
sinais com ciclo de trabalho programável. Tem como principal aplicação o controle 
de luminosidade de lâmpadas ou velocidade de motores. 
 
Figura - Sinal PWM. Quanto maior o ciclo de trabalho maior a potência disponibilizada para 
um dispositivo. 
 
 USB (Interface Serial Universal): típica interface serial no computador, podendo ser 
caracterizada por Host (caso do computador) / "on the go" ou Dispositivo (caso de 
um "pen-drive" ou mouse). Necessita de seguir um protocolo específico de 
endereçamento. No caso de microcontroladores, normalmente é configurado como 
dispositivo. 
 
 Ethernet: interface com uma pilha TCP / IP com a possibilidade de configurar um 
IP fixo. para o dispositivo. Normalmente utilizada para conectar o microcontrolador 
a uma rede de computadores para acesso via protocolo TCP / IP. 
 
 Display LCD: interface para controle de um display de Cristal Liquido. 
Normalmente necessita de um pino de controle (sinal de 100 Hz), sinais de varredura 
(no caso de LCD com vários segmentos) e um grande número de pinos para acesso a 
cada segmento do LCD. 
 
 Barramento SPI: Barramento Serial de 3 pinos, normalmente utilizado para acesso 
a perifericos seriais externo (A/D por exemplo) como memória Flash serial (ou 
interface SD de armazenamento de dados). 
 
 Barramento I2C: Barramento Serial de 2 pinos com funções similares ao 
barramento SPI. 
 
 49 
 Barramento CAN: interface serial de 2 fios, com protocolo específico, normalmente 
utilizado em ambientes ruidosos como os dispositivos em um veículo ou ambiente 
industrial. 
 
 Barrramento para Emulação / Gravação: utilizado para gravação / depuração / 
desenvolvimento do aplicativo. Interage com o hardware do controlador. 
Normalmente segue o padrão JTAG (6 fios) ou ISP (3 fios) 
 
1.7.2 Memória Virtual e MMU (Memory Management Unit) 
 
 Para a implementação de Sistemas Operacionais em Computadores, normalmente 
ocupando uma grande área de memória, é necessário o gerenciamento do espaço disponível 
de memória atraves de técnicas de gerenciamento e paginação da memória. Alguns destes 
conceitos são colocados, de forma introdutória, abaixo: 
 
- Memória Virtual: técnica para aumentar a capacidade da memória através do chaveamento 
da memória dando a percepção para o operador de mais memória do que a capacidade real. 
Isto é realizado através da divisão do programa em blocos, armazenados em área 
intermediárias (memória secundária - "overlays") e copiandoestes pedaços de programas 
para um mesmo bloco de memória. 
- Disco Rígido Físico: guarda todo o programa a ser rodado. 
- Memória Física Real: memória menor que a Memória Virtual. 
 
 Para o programador o mapeamento é contínuo. O sistema de MMU (Memory 
Management Unit) gerencia a cópia do programa armazenado no disco rígido para pedaços 
da memória real através de registradores de páginas ("page table") e registrador do endereço 
de offset (segmentação). 
 
 O endereço real (físico) é determinado pela MMU e o Sistema Operacional trabalha 
com o endereço total (virtual). 
 
Exemplo: 
 
 50 
1. 1 Mbytes de Memória Virtual (20 bits de endereço) com um aplicativo com 8 Kbytes de 
Memória Real (13 bits de endereço). 
 
A memória virtual será dividida em 128 paginas de 8 Kbytes (128 x 8K = 1Mbytes). 
 
Endereço de Offset -> 13 endereços. 
Endereço de Página -> 7 endereços. 
 
O programa controla 1M mas a MMU controla 8Kbytes de memória real dividindo a 
memória virtual em 128 partes. 
 
Links Adicionais -> 
http://www.embeddedarm.com/products/new-products.php 
http://en.wikipedia.org/wiki/Memory_management_unit 
 
 
Verificação (C) 
Exercícios 
 
1. Definir o conceito de PORT, TIMER e UART. Nos microcontroladores 8051 (AT80S52 
ou LCP935) e ATMEGA328 (AVR) identificar quais são os PORTS, TIMERS e UART 
destes microcontroladores. 
2. Identifique e descreve a CPU, blocos de memórias e periféricos de um microcontrolador 
LPC935 (CPU 8051 - 2 “clock”s de ciclo) 
3. Faça o esquema de uma típica entrada (chave) e de uma saída (rele ou opto-acoplador) 
no ATMEGA328 ou 80S52. 
4. Liste a linha de tempo da família de microprocessadores da Intel (4004 até Pentium IV - 
i7) 
 
Desafio: 
 
Utilizando uma bibliografia do microprocessador 8085 (Microprocessadores e 
Microcontroladores representar um sistema mínimo com a CPU 8085, uma Eprom 27128 e 
um RAM 62128. Represente 8 periféricos genéricos e o acesso através de um 
decodificador. 
http://www.embeddedarm.com/products/new-products.php
http://en.wikipedia.org/wiki/Memory_management_unit
 51 
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. 
- Arquitetura LPC935, 82S52, ATMEGA328 e aplicações / exercícios 
 
 
Execução (D): 
 
2.1 Introdução 
 
 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). Entretanto, com a evolução de microcontroladores 
atualmente encontra-se dispositivos de 16 e 32 bits com capacidade de rodar um Sistema 
Operacional e rodar aplicações Multimidia. Exemplo: Microcontroladores ARM 
 
 Existem diversos fabricantes de Microcontroladores dividindo o mercado competindo 
de forma agressiva. Os principais fabricantes (e famílias com componentes compatíveis em 
hardware e código de operação) presentes no mercado (2016 depois das fusões NXP / 
Freescale e Microchip / Atmel): 
 
 
Principais famílias de Microcontroladores de 8, 16 e 32 bits. 
 52 
 
 Família de Microcontroladores MSC-51 (8051) - 8 bits: ainda uma família bastante 
utilizada e presente em projetos de 8 bits. Principais fabricantes: NXP (família 
LPC9xx) e Atmel (família 89S5x) 
 Família de Microcontroladores Microchip (PIC) 8 bits: PIC 10FXX, PIC 12FXX, 
PIC16FXX, PIC18FXX. 
 Família de Microcontroladores Microchip (PIC) 16 bits: PIC 24FXX 
 Família de Microcontroladores Microchip (PIC) 32 bits: PIC 32FXX 
 Família ATMEL - AVR: ATMEGA328 (Arduino) 
 Família de Microcontroladores Texas Instruments 16 bits: MSP430xxx 
 Família de Microcontroladores Freescale 8 bits: MC9S08XXXX 
 Família de Microcontroladores ARM 32 bits: ARM 7, ARM 9 , ARM 11, CORTEX M-0 
(Exemplo KL25Z), CORTEX M2, CORTEX M3, CORTEX M4. Principais fabricantes: NXP, 
Texas Instruments e ST. Com custo competitivo tem a tendência de se transformar 
em padrão do mercado. 
2.2 ARQUITETURA MICROCONTROLADORES MSC-51 (ORIGINAL) 
 
No estudo de uma arquitetura de Microcontroladores é importante observar: 
 
 Conjunto de Instruções (mnemônicos) 
 Periféricos disponíveis. 
 Memória de Programa (FLASH) e Dados (RAM) - capacidade. 
 ESTRUTURA DA MEMÓRIA RAM. 
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 (8 bits) : 
 
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 - NXP, 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 (núcleo básico ou "core") 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 
 53 
 - 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'. 
 - 256 instruções otimizadas para controle. 
 
Os microcontroladores da família 8051 mantêm este núcleo básico incrementada por 
periféricos, memória, velocidade maior, oscilador RC, Watch Dog, P.O.R., etc 
 
2.2.1 Arquitetura do Microcontrolador 8051 
 
 
Arquitetura funcional 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura - Arquitetura Funcional (fonte: Apostila MCS-51 Ricardo Zelenovsky) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 54 
 
 
 
 
 
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: 
 
 
 
 55 
 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 bancoEx.: 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. 
 
 - 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 
 56 
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 otimizaçã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). 
 
Memória RAM 8051 (divididas em memória de trabalho - 0x00 a 0x7F e memória 
com registradores de função especial SFR - 0x80 a 0xFF) 
 
 
 
 
 A memória RAM interna é dividida 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). 
 
 - Á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 
 57 
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. 
Pinagem 8051 
 
 
 
 - 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. 
 58 
 
 - 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. 
 
 - Port P3 (P3.0-P3.7): novamente, seus 8 sinais tem dupla função: 
 
 - 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.7: RD (sinal de leitura da RAM externa)/port 
 
 
 59 
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 805. 
 
3) – Fazer um levantamento dos microcontroladores fabricados pela NXP e pela ATMEL 
compatíveis com o 8051 (LPC9xx e 89Sxx). 
 
Sistema Mínimo com o 8051: 
 
- 32 sinais de entrada/saída, cristal externo e reset ativo em nível alto. 
 
Verificação (C) 
 
Exercícios 
 
1. 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. 
 
 
 
 
 
 60 
2.2.2 Microcontrolador Atmel AT89S32 
 
Manual PDF -> http://ww1.microchip.com/downloads/en/DeviceDoc/doc1919.pdf 
 
Arquitetura Interna 
 
Fonte: Manual Microchip / Atmel 89S52 
 
 
Principais características: Compatível com família MCS 51 
 Memória FLASH 8kbytes 
 Tensão de operação: 4,5 a 5,0 V 
 RAM interna: 256 bytes x 8 bits 
 32 ports I/O 
 3 Timers (T0, T1 e T2) 
http://ww1.microchip.com/downloads/en/DeviceDoc/doc1919.pdf
 61 
 8 fontes de interrupção. 
 UART full duplex 
 Modos de economia de energia: IDLE e Power Down 
 Watchdog Timer 
 Programação Flash Serial ISP 
 
Sistema Mínimo: 
 
 
Fonte: www.u8051.com.br (livro Linguagem C para microcontroladores 8051) 
 
 
 
2.2.3 Microcontrolador LPC935 (família LPC9xx) 
 
http://www.u8051.com.br/
 62 
 
 
Arquitetura Interna LPC93x NXP 
 
 63 
 
 
 
Principais Características 
 
 Memória Flash de 4 / 8 / 16 Kbytes com fácil programação. 
 Memória RAM 256 bytes + 512 bytes de memória auxiliar nas versões LPC935 / 
936. 
 Memória EEPROM 512 bytes 
 4 entradas multiplexadas de conversor ADC de 8 bits e 1 DAC. 
 2 comparadores analógicos com entrada selecionável. 
 2 timers de 16 bits (temporizador com “overflow” ou PWM). Sistema adicional de 
timer de 23 bits podendo ser utilizado como RTC (relógio). 
 UART com gerador de baund rate, detecção de parada e erro de comunicação. 
 CCU (Capture Compare Unit) para geração de PWM e funções de comparação de 
sinais. 
 RC interno de alta precisão (erro < 1%) dispensando cristal externo. 
 Alimentação de 2,4V a 3,6 V com pinos de I/O tolerantes a 5 V (resistor de pull-
up). 
 64 
 CPU 8051 de alta velocidade (6 vezes a velocidade 8051 – dividindo a frequencia 
do cristal / oscilador por 2. Cristal até 18 Mhz (ciclo de instrução de 111 nseg). 
 Gravação Serial (ISP) da memória Flash, facilitando a programação “in circuit”. 
 Gravação In-Circuit Programming (ICP) permitindo processos produtivos ágeis e 
proteção do código da memória. 
 Watch Dog com oscilador independente (interno). Seleciona até 8 períodos de 
Watch Dog. 
 Detector de baixa tensão (Brown Out Detect) permitindo o desligamento suave do 
sistema com opção de gerar uma interrupção. 
 Modo Idle de economia de energia (ativa interrupção) e 2 modos de Power Down 
com correntes de repouso menores que 1 uA. 
 Reset externo ativo em nível alto (com detector de sinais espúrios). Sistema de 
Reset interno. 
 Oscilador interno com freqüência selecionada por programação. Frequência externa 
de 20 Khz e 18 Mhz. 
 Detector de falha de “clock” através do Watch Dog. 
 Programação dos ports de 4 modos: bi-direcional, coletor aberto, com resistor 
interno de “push pull” e somente entrada. 
 Capacidade de corrente dos ports de até 20 mA (aciona leds) dentro das restrições 
máximas de corrente de cada chip. 
 Controle de EMI (ruídos) nos ports, exigindo 10 nseg de tempo mínimo de subido 
de cada sinal. 
 Quando utilizado “clock” e reset interno exige apenas ligação dos pinos GND e 
Vcc. 
 Interrupções com 4 níveis de prioridade. 
 Interrupções de teclado de 8 entradas. 
 Entradas com Schimitt Trigger. 
 Suporte a emulação externa. 
 
Pinagem 
 
 
 65 
 
Diagrama Funcional dos PORTS do LPC93x 
 
 
Observe a múltipla função dos Ports: 
 
-> Port P0.0: entrada do ADC AD01, Entrada do Teclado KBI0, Saída do Comparador 
CMP2. 
 
Kit de Desenvolvimento IAR: 
 
http://www.iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/224 
 
 
 
 
Esquema Elétrico 
 
http://www.iar.com/website1/50.0.1.0/224/IAR_LPC935_revB.pdf 
 
http://www.iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/224
http://www.iar.com/website1/50.0.1.0/224/IAR_LPC935_revB.pdf
 66 
 
 
Configuração dos Ports: 
 
Os 3 ports são configurados individualmente de 4 formas (pag. 40, item 5.1 do 
Manual): 
 Bidirecional: configuração típica do 8051, pode ser configurado como 
entrada / saída (com resistor de pull-up). 
 Saída: sem resistor de pull-up (“open drain output”) 
 Saída com resistor de “pull-up” 
 Entrada com “scgnutt-trigger” 
 
Registradores de configuração: PxM1.y w Px.M2.y, onde X representa o Port e o Y o pino 
do Port 
 
0 0 Bidirecional 
0 1 Saida com resistor “pull up”. 
1 0 Entrada (alta inpedância). 
1 1 Saída coletor aberto 
 
Exemplo: Configurar os 3 ports como bidirecionais 
 
 mov P0M1,#0x00 
 mov P0M2,#0x00; 
 mov P1M1,#0x00 
 mov P1M2,#0x00; 
 mov P2M1,#0x00; 
 mov P2M2,#0x00; 
 
 
Verificação (C) 
 
Exercícios 
 
1. Sistema com o LPC935 com as seguintes características: 
 
 - “clock” de 12 Mhz 
 - Reset automático e manual. 
 - Controle de 12 motores . 
 - 12 entradas de chaves. 
 
2. Fazer um CPL para controlar os ventiladores e lâmpadas da sua sala de aula, com 
comunicação serial e sensores de presença, temperatura e chave liga / desliga para 
ventiladores e lâmpadas. 
 
3. Fazer um alarme com o LPC935 com as seguintes características: 
 
 Cristal externo 12 Mhz 
 Reset externo 
 Comunicação Serial 
 Chave liga/desliga 
 67 
 2 Buzinas 
 2 Lâmpadas. 
 1 Led 
 4 sensores para janelas 
 4 sensores 
 
4. Configurar os seguintes Ports do LPC935 
 
 Port 0.3 -> saída com resistor pull-up. 
 Port 1.2 -> entrada alta impedância 
 Port 1.7 -> saída sem resistor de pull-up 
 
2.2.4 Microcontrolador AVR (ATMEL) ATMEGA328 (Arduino) 
 
 O processador AVR (Atmel) ATMEGA328P é o microcontrolador utilizado na 
placa do sistema Arduino básica (UNO). 
 
Manual PDF -> http://www.atmel.com/Images/doc8161.pdf 
 
 As principais características deste componente de 8 bits é destacada a seguir: 
 
 Microcontrolador "low power" AVR de 8 bits. 
 Arquitetura RISC (conjunto reduzido de instruções): 
o 131 Instruções (maioria executada em um único ciclo de temporização). 
o 32 registradores de uso geral de 8 bits. 
o Velocidade de 20 MIPS (“clock” de 20 Mhz) 
 Memória: 
o 4/8/16/32 K de memória FLASH. Versão ATMEGA328P com 32 K. 
o 256 a 1 K de memória EEPROM. Versão ATMEGA328P com 1 K. 
o 512 a 2K de memória RAM. Versão ATMEGA328P com 2K. 
o Memória de programa com trava de leitura. 
 Periféricos: 
o 3 Ports: 23 entradas e saídas. Na configuração de Ports os pinos podem ser 
configurados como bi-direcionais, saída com "buffer" e entrada com resistor 
de "pull-down" para imunidade a ruido. Na condição de reset os ports estão 
em "tri-state" e precisam ser configurados. 
 
 Port B: 8 bits bidirecionais dividindo funções com funções do cristal 
e Timers. 
 Port C: 7 bits com 6 ports bidirecionais e o pino PC6 para entrada de 
Reset. 
 Port D: 8 bits bidirecionais 
o 2 Timers de 8 bits (contagem de 0 a 0xFF). 
o 1 Timer de 16 bits (contagem de 0 a 0xFFFF) 
o 6 canais de PWM. 
o 1 ADC de 10 bits com 8 canais de entrada. 
o 1 ADC de 10 bits com 6 canais de entrada. 
 68 
o 1 interface serial USART 
o Interface serial SPI 
o Interface serial I2C 
o WatchDog Timer com “clock” separado do oscilador principal. 
o 1 Comparador Analógico. 
o Interrupção e "wake-up" através de pino externo. 
 Recursos especiais: 
o Power On Reset e Brown-out Detection (monitoramento da alimentação). 
o Oscilador interno calibrado (dispensa cristal externo). 
o Entradas de Interrupções externas e internas. 
o 6 modos de economia de energia. 
o Alimentação entre 1,8 a 5,5 V. 
o Baixo consumo de energia (modo ativo: 0,2 mA - modo Power Down: 0,1 
uA - modo Save: 0,75 uA com oscilador de 32 Khz) 
 
 Diagrama Interno: 
 
 
DIAGRAMA EM BLOCO AVR ATMEGA328P 
 
Pinagem: 28 pinos: 
 69 
 
 Alimentação principal: VCC e GND (2 pinos) 
 Alimentação circuito analógico: AVCC e AREF 
 23 pinos de Ports multiplexados com os periféricos (ADCs, USART, SPI, 
I2C), pino de reset externo (PC6), Cristal Externo (PB6 e PB7) 
 
PINAGEM AVR ATMEGA328P 
Comparação entre o ATMEGA48, 88, 168 e 328P 
 
Arquitetura da CPU do AVR 
 
 
 70 
 
 
 
Registrador de Status (PSW) 
 
 
 
Registradores de uso geral (R0 a R31) 
 
 
 
 
 71 
Os registradores de R26 a R31 podem ser utilizados aos pares para "ponteiro de memória" nas instruções do 
AVR:

Outros materiais