Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

- -1
DISPOSITIVOS MICROCONTROLADOS
UNIDADE 1 - FUNDAMENTOS DA 
ELETROELETRÔNICA E DE ARQUITETURA 
DE COMPUTADORES
Autoria: Luiz Ricardo Mantovani da Silva – Revisão técnica: Giovane 
Boaviagem Ribeiro
- -2
Introdução
O século XXI apresentou à humanidade uma série de inovações tecnológicas, que trouxeram inúmeros benefícios
e conforto para as pessoas, como veículos autônomos, computação em nuvem, computação de alto desempenho,
avanço da inteligência artificial, entre outros. Um dos motivos do avanço tecnológico certamente foi o aumento
da eficiência e redução do tamanho dos componentes que constituem os grandes computadores da atualidade.
Os processadores tornaram-se mais eficientes, e os microcontroladores ganharam espaço na indústria de
equipamentos eletrônicos, pois passaram a integrar a maioria dos aparelhos comercializados. Os
microcontroladores são computadores concentrados em um único chip, ou seja, apresentam processador,
memória e portas de entrada e saída, sendo muito úteis na indústria de eletroeletrônicos e em sistemas
embarcados.
Atualmente, as pessoas vêm tomando consciência de que estão se tornando dependentes da tecnologia, seja por
meio do acesso às informações pelos dispositivos móveis ou pelo conforto em poder estar em um veículo
autônomo. A realidade está se transformando no que outrora era apenas ficção científica, com dispositivos desde
os primeiros microprocessadores 4004 da Intel, até os modernos processadores e microcontroladores, utilizados
em equipamentos como sondas e estações espaciais, satélites de comunicação, robôs, naves para exploração
interplanetária etc.
Enfim, todos esses avanços estão intimamente ligados ao aprimoramento da eletroeletrônica e,
consequentemente, ao aumento do poder computacional, que torna a vida mais gratificante e o futuro,
emocionante.
Bons estudos!
1.1 Eletroeletrônica e arquitetura de computadores
A eletroeletrônica e a arquitetura de computadores sempre caminharam muito próximas, uma influenciando a
outra. Serviram, pois, como base tecnológica para o desenvolvimento e criação de muitos equipamentos que
revolucionam o modelo de vida das pessoas (TANENBAUM, 2013).
Quando falamos em arquitetura de computadores, nos referimos à estrutura física e lógica das máquinas,
portanto, é importante que conheçamos seus fundamentos, para que, assim, possamos entender o
funcionamento, as possibilidades de aplicações, a estrutura física do equipamento e como as partes se
- -3
funcionamento, as possibilidades de aplicações, a estrutura física do equipamento e como as partes se
comunicam. Da mesma forma, o conhecimento dos conceitos básicos de eletroeletrônica é necessário, para que
possamos entender o fluxo de trabalho e o deslocamento de dados digitais.
1.1.1 Grandezas elétricas e conceitos de eletrônica analógica e digital
Na Grécia Antiga, os gregos atribuíam a palavra à resina que atualmente chamamos de âmbar. Isso,eléktron 
porque observaram que após atritar o âmbar contra a pele de animais ele adquiria propriedades de atração.
A partir de então, os gregos começaram a estudar todos os fenômenos que possuíam ligação com o que haviam
observado, iniciando-se o estudo da eletricidade.
Atualmente a humanidade vive com o conforto oferecido por uma infinidade de equipamentos que funcionam
com a eletricidade. É fácil concluir o quão importante a eletricidade é para a humanidade.
A eletricidade é o resultado de um fluxo de cargas elétricas. Podemos também dizer que a eletricidade é o ramo
da física que estuda os fenômenos resultantes da movimentação das cargas elétricas O estudo da eletricidade
está dividido em eletrostática e eletrodinâmica.
A eletrostática estuda as cargas elétricas em repouso.
A eletrodinâmica estuda as cargas elétricas em movimento.
Agora que estudamos um pouco da história da eletricidade e sua importância, podemos passar para as grandezas
elétricas: potência, tensão, corrente e resistência.
Potência elétrica é a velocidade que o equipamento converte energia elétrica em trabalho. A potência elétrica é
representada pela unidade watt (W), conforme o sistema internacional de medidas.
Corrente elétrica é o fluxo ordenado de cargas elétricas que pode ocorrer em um meio iônico ou sólido.
Resistência elétrica é a dificuldade que um determinado corpo pode oferecer para a passagem da corrente
elétrica. O nível de resistência pode variar em decorrência do comprimento, largura, tipo de material e condições
ambientais. A resistência pode ser presentada pela unidade Ohm (Ω).
A tensão elétrica é outra grandeza importante, que significa a força necessária para fazer movimentar os elétrons
e criar a corrente elétrica. A tensão elétrica pode ser representada pela unidade Volt (V).
O estudo da eletricidade é importante para que se possa compreender os fenômenos e conceitos dela derivados,
mas se faz necessário também o estudo da forma como ela é controlada para que se possa obter benefícios.
Nesse sentido, a eletrônica é um ramo da eletricidade e estuda a forma como as informações são representadas,
 
Você sabia?
Os relâmpagos são fenômenos naturais temidos por uns e admirados por outros. O fato
é que até o momento não existe uma forma de se captar a grande quantidade de
energia criada por esses eventos em tão curto espaço de tempo. Esses fenômenos são
capazes de produzir energia equivalente a 500 quilowatts.
- -4
Nesse sentido, a eletrônica é um ramo da eletricidade e estuda a forma como as informações são representadas,
transmitidas, processadas, armazenadas por meio de componentes elétricos e eletrônicos que compõem os
circuitos.
Os trabalhos dessa área estudam o comportamento dos elétrons e são classificados conforme a apresentação dos
sinais elétricos, quais sejam, analógicos e digitais. A eletrônica é, portanto, subdividida em eletrônica analógica e
digital.
A eletrônica analógica cuida do controle das energias físicas, variáveis ou não, que possam ser representadas de
forma contínua. Os equipamentos capazes de trabalhar com esse tipo de energia são transistores, resistores,
bobinas, capacitores, potenciômetros, cristais e circuitos integrados (YOUNG, 2005).
Os transistores são componentes semicondutores, capazes de amplificar, atenuar ou isolar a corrente elétrica,
geralmente feitos de silício ou germânio.
Os resistores são componentes capazes de transformar energia elétrica em térmica, o chamado efeito Joule, ou
alterar a diferença de potencial, também conhecida como tensão elétrica.
As bobinas ou indutores ou solenoides são componentes capazes de armazenar energia elétrica. Essa energia
elétrica é gerada a partir do campo magnético criado ao redor do fio durante a passagem da corrente elétrica,
sendo que a energia é aumentada quando esse mesmo fio é espiralado.
Os capacitores, capazes de armazenar cargas elétricas quando ocorre diferença de potencial em seus terminais.
São utilizados em circuitos que operam com corrente alternada, e empregados pela indústria em
eletroeletrônicos como geladeiras, máquinas de lavar etc.
O potenciómetro é um componente capaz de oferecer, de forma ajustável, resistência à passagem da corrente
elétrica.
Os cristais, geralmente quartzo, são utilizados para fazer o componente eletrônico chamado de oscilador de
cristal, capaz de geral um sinal elétrico em uma frequência específica, sendo que isso é possível devido às
propriedades piezoelétricas do cristal. A propriedade piezoelétrica é a capacidade que certos materiais possuem
de gerar carga elétrica quando expostos à pressão mecânica, sendo que certos cristais, como o quartzo possuem
essa característica.
O circuito integrado (C.I.), como sendo um circuito eletrônico composto pelas miniaturas de diversos
componentes, como diodos, resistores, capacitores, entre outros, gravados em um único chip de silício.
A eletrônica analógica é muito importante, e está presente em grande parte dos equipamentos que são utilizados
em nosso dia a dia, mas temos também a eletrônica digital. Diferentemente da eletrônica analógica, que atua
sobre os sinais elétricosrepresentados de forma contínua, a eletrônica digital aborda os sinais elétricos que
podem assumir dois valores, ou valores finitos, discretos.
- -5
Figura 1 - Representação de sinal digital e analógico
Fonte: VectorMine, Shutterstock, 2020.
#PraCegoVer: a figura mostra a representação de um sinal analógico e de um sinal digital.
A figura anterior representa um sinal analógico e um digital. Podemos notar que o sinal digital pode assumir
apenas dois valores em determinado intervalo de tempo, enquanto no sinal analógico, existem infinitas
possibilidades dentro de um intervalo de tempo.
Você quer ver?
Você tem dúvidas sobre o que é eletricidade? No vídeo A história da eletricidade do site Tecmundo, você poderá
aprender um pouco sobre a história da eletricidade, os grandes cientistas que pesquisaram o tema, e constatar
que a eletricidade está em praticamente tudo ao nosso redor.
Acesse
Conforme observamos, a eletricidade é uma energia descoberta há séculos, sendo estudada e servindo como
peça-chave para o desenvolvimento da eletrônica, ciência que se ramificou em eletrônica analógica e eletrônica
digital (MORDKA,2014).
https://www.youtube.com/watch?app=desktop&v=6w7Z-pyiDFo
- -6
Agora é com você!
Esta atividade não é pontuada.
Outra questão é a forma como os sinais elétricos se comportam nos circuitos eletrônicos, ou seja, como os sinais
darão entrada no circuito e a condição de saída.
Existem diferentes tipos de arranjos de circuitos, chamados portas lógicas, sendo que cada porta lógica recebe o
sinal de uma forma e libera de outra, por exemplo, uma porta lógica recebe o sinal zero (0) e (1) e libera (0). Os
circuitos combinacionais são aqueles cujas saídas dependem da combinação dos sinais de entrada, ou seja, como
as portas lógicas estão organizando o circuito.
Outro ponto importante são os sistemas numéricos, assunto que o profissional da tecnologia não pode deixar de
conhecer. Sistemas numéricos são diferentes formas de se representar valores, podendo ser utilizados para
resolver problemas específicos. Podemos citar os sistemas decimal, binário, hexadecimal e octal.
O sistema decimal, ou sistema de base 10, é composto pelos símbolos 0 a 9, sendo muito utilizado no dia a dia,
muitas vezes, sem que percebamos. Para entender as operações decimais devemos inicialmente considerar a
tabela a seguir.
Tabela 1 - Símbolos decimais
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: a tabela exibe os símbolos decimais de 0 a 9.
A adição é o deslocamento a direita na série apresentada, dessa forma, a adição 2 + 4 = 6 corresponde ao
deslocamento de 4 unidades à direita do algarismo 2, resultando em 6.
O sistema binário, composto pelos símbolos 0 e 1, é muito utilizado em linguagem de máquina, em que é possível
representar informações, imagens e outras, por meio de uma sequência de 0s e 1s.
No sistema binário, as operações são realizadas de uma forma um pouco diferente, vamos tomar como exemplo a
operação de adição.
Tabela 2 - Adição no sistema binário
Fonte: Elaborada pelo autor, 2020.
- -7
Tabela 2 - Adição no sistema binário
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: na imagem, temos uma tabela de seis linhas e quatro colunas, nas quais são demonstradas as
possíveis combinações para a realização da soma no sistema binário.
A tabela anterior demonstra as combinações possíveis para a realização da operação aritmética soma no sistema
binário.
Observem a seguir a demonstração de uma soma e o vai um (carry).
Figura 2 - Soma binária
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: trata-se de uma figura representando uma soma binária, ou seja, 01+10=11
Conforme pudemos observar na figura anterior, o mecanismo da soma binária obedece à tabela correspondente.
O sistema hexadecimal, alfanumérico, composto pelos símbolos numéricos de 0 a 9 e A, B, C, D, E, F, é muito
utilizado em equipamentos computacionais para identificação de endereços de memória.
Por fim, o sistema octal, composto pelos símbolos de 0 a 7, foi muito utilizado em componentes computacionais,
mas, substituído pela linguagem hexadecimal, que apresentou maior eficiência e praticidade.
Os sistemas octal e hexadecimal possuem regras aritméticas parecidas com o sistema decimal.
1.1.2 Arquiteturas de computadores, RISC, CISC e ARM
Os grandes filósofos da antiguidade, Platão, Sócrates e Aristóteles, desenvolveram técnicas de raciocínio lógico
buscando a obtenção da verdade, ou seja, do conhecimento (LOURENÇO , 2014).et al.
Em 1642, o cientista francês Blaise Pascal, criou uma máquina de calcular inteiramente mecânica, que utilizava
engrenagens para funcionar. A máquina de calcular de Blaise Pascal foi considerada o primeiro computador
mecânico.
No século XIX, o matemático George Boole conseguiu sistematizar as teorias de Platão, Sócrates e Aristóteles,
criando a álgebra booleana. Nesse momento, George Boole transformou os métodos de raciocínio teóricos em
regras matemáticas.
No século XX, durante a Segunda Guerra Mundial, foram desenvolvidos os primeiros computadores eletrônicos
que funcionavam com válvulas, conforme a lógica de Boole, merecendo destaque o COLOSSUS, projeto que teve a
participação do matemático britânico Alan Turing (TANENBAUM, 2013).
Os primeiros computadores possuíam apenas dois níveis de linguagens, ou seja, o nível ISA (Instruction Set
Architecture), no qual ocorria a programação, e o nível lógico digital, em que os códigos eram executados.
No nível ISA, os programadores da época eram obrigados a programar em linguagem de máquina, ou seja, com
- -8
No nível ISA, os programadores da época eram obrigados a programar em linguagem de máquina, ou seja, com
uma sequência de 0s e 1s. Essa tarefa era trabalhosa e complicada, dificultando a vida dos profissionais que
perdiam horas para programar e outras tantas para resolver eventuais problemas que surgissem.
Posteriormente, os equipamentos foram aprimorados e passaram por diversas modificações, chamando a
atenção a substituição da válvula pelo transistor, que viabilizou o aumento expressivo na capacidade
computacional.
As arquiteturas de computadores são divididas em arquitetura de Von Neumann e arquitetura de Harvard.
O modelo de Von Neumann é composto por unidade central de processamento (CPU), unidade de controle (UC),
unidade lógica e aritmética (ULA), unidade de memória e unidade de entrada.
A característica principal no modelo de Von Neumann é que os dados e programas compartilham o mesmo
espaço de armazenamento, podendo ser facilmente acessados.
Figura 3 - Modelo de Von Neumann
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: a figura representa o modelo de arquitetura de computadores de Von Neumann, apresentando a
CPU e um local de memória utilizado para programas e dados.
A figura anterior representa o modelo de arquitetura de Von Neumann, demonstrando esquematicamente como
os dados e programas ocupam o mesmo espaço de memória.
Esse foi o modelo de arquitetura dos primeiros computadores, ainda usado até nossos dias com algumas
modificações. Outro modelo de arquitetura de computadores, mais moderno, é o modelo de Harvard.
A arquitetura de Harvard é um conceito mais moderno, foi desenvolvido para atender a demanda de
equipamentos mais eficientes. Esse modelo é parecido com o modelo de Neumann, diferenciando apenas com
relação à forma de armazenamento das informações.
No modelo de arquitetura de Harvard, os dados e programas localizam-se em diferentes locais de
armazenamento. Observem a imagem a seguir.
- -9
Figura 4 - Modelo de Harvard
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: afigura representa o modelo de arquitetura de computadores de Harvard, apresentando a CPU e
locais de memórias individuais, utilizados para programas e dados separadamente.
A vantagem de armazenar os dados e programas em locais diferentes é que o processador pode acessar dados
simultaneamente em locais diferentes, melhorando a eficiência do processamento.
Conforme pudemos observar, os modelos de Von Neumann e Harvard nos remetem para formas de
armazenamento de dados eprogramas. Outra forma de classificação é com relação às instruções.
- -10
Você o conhece?
Nikola Tesla, nascido em 10 de julho de 1956, na aldeia de Smiljan, Vojna Krajina, no território da atual Croácia,
austríaco por nascimento, tornando-se posteriormente cidadão americano foi taxado durante anos de “cientista
louco”, desenvolvendo trabalhos extraordinários que serviram como base para o desenvolvimento dos atuais
sistemas de corrente alternada e potência elétrica. Para saber mais, leia o livro As fantásticas invenções de
 de Childress e Tesla, de 2017.Nikola Tesla
No início dos anos 1980, existia uma tendência em se desenvolver processadores contendo instruções cada vez
- -11
No início dos anos 1980, existia uma tendência em se desenvolver processadores contendo instruções cada vez
mais complexas, as chamadas arquiteturas CISC (do inglês: Complex Instruction Set Computing), ou seja,
Computador com um Conjunto Complexo de Instruções. Essa arquitetura suportava quantidade maior de
instruções, porém era mais lenta, tendo sido utilizada em processadores da Intel e AMD (PATTERSIN e
HENNESSY, 2014).
Nessa mesma época, mais exatamente em 1980, Berkeley iniciou o projeto RISC (em inglês: Reduced Instruction
Set Computing, Computador com um Conjunto Reduzido de Instruções), tendo em 1981 iniciada a produção do
chip com 44500 transístores, 31 instruções e 78 registradores.
A MIPS aproveitando a tecnologia RISC lançou o primeiro processador em 1985, que obteve muito sucesso. O
processador MIPS foi muito utilizado na automação industrial, sistemas embarcados e em consoles de jogos,
como Nintendo 64, Playstation e Playstation 2. Os processadores RISC suportavam instruções mais simples, uma
quantidade reduzida de instruções, ganhando em eficiência.
O fato é que ambas as arquiteturas possuem vantagens e desvantagens, sendo igualmente importante.
Em 1985 foi criado o processador ARM (Acorn RISC Machine), desenvolvido pela Acorn Computers britânica,
assim, o ARM era um processador com arquitetura RISC em um padrão mais sofisticado.
Os processadores ARMs evoluíram e diversas atualizações foram lançadas, sendo que atualmente as famílias de
processadores ARMs possuem alta compatibilidade entre si, pois utilizam a mesma família de instruções.
Podemos classificar os processadores ARMs quanto à área de aplicação. Observem o quadro a seguir.
Quadro 1 - Aplicações ARMs
Fonte: Elaborado pelo autor, baseado em STALLING, 2017.
#PraCegoVer: trata-se de um quadro com descrições dos tipos de aplicações ARMs. Alto desempenho para
plataformas e aplicações móbile; tempo real para sistemas embarcados automotivos e industriais; e
microcontroladores para o mercado diversificado.
O quadro anterior demonstra o grande potencial da família de processadores ARMs, principalmente nas
arquiteturas projetadas para microcontroladores, devido a sua grande diversidade de aplicações, abarcando
desde sistemas críticos até sistemas de tempo real de alto desempenho (STALLING, 2017).
1.2 Microcontrolador 8051
No início da década de 1980, a Intel lançou a família de microcontroladores MCS-51 operando com 8 bits e um
conjunto complexo de instrução, no modelo CISC, tornando-se muito popular na indústria até os dias de hoje.
Em todos esses anos, a família de microcontroladores MCS-51 sofreu muitas alterações, adquirindo novas
funções. A compatibilidade entre os dispositivos foi mantida, apesar de todas as modificações, pois foi
conservada a arquitetura original e o mesmo conjunto de instruções.
- -12
1.2.1 Arquitetura interna do 8051, pinagem e funcionamento
Conforme já foi dito, o microcontrolador é considerado um computador em um único chip, sendo muito utilizado
em diversos segmentos da indústria da tecnologia.
Você quer ler?
O primeiro microcontrolador brasileiro reconhecido oficialmente pelo Ministério da Ciência, Tecnologia,
Inovação e Comunicações (MCTIC) foi o ZR16S08. No artigo ZR16S08: O primeiro microcontrolador brasileiro
reconhecido oficialmente, você encontrará mais informação sobre esse marco para a ciência brasileira.
Acesse
Dessa forma, torna-se importante e não menos interessante, estudar a arquitetura interna desse componente
eletrônico, presente desde processos de automação industrial até em equipamentos de tempo real. Vejamos a
figura a seguir.
Figura 5 - Microcontrolador 8051
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura mostra a arquitetura interna de um microcontrolador 8051, apresentando CPU, OSC,
controle de interrupções, ROM, RAM, timer 0, timer 1, barramento de controle, 4 portas de E/S e porta serial.
Na figura anterior podemos ver a arquitetura interna de um microcontrolador 8051 contendo diversos
https://www.embarcados.com.br/zr16s08-microcontrolador-brasileiro/
- -13
Na figura anterior podemos ver a arquitetura interna de um microcontrolador 8051 contendo diversos
componentes, como portas de entrada e saída, portas seriais, memórias, central e barramento de controle,
entradas de contadores, oscilador e CPU.
Temos também na estrutura desse dispositivo o controle de interrupções para eventos inesperados. Interrupção
significa alteração no fluxo normal do programa, podendo ser provocada por situações externas ao
microcontrolador. Por exemplo, os periféricos podem provocar interrupções no fluxo de processamento do
microcontrolador.
Quando ocorre a interrupção, o programa deve seguir uma rotina específica e posteriormente retornar para a
execução normal do programa.
Observem a figura a seguir.
Figura 6 - Controle de interrupção
Fonte: STALLING, 2017.
#PraCegoVer: a figura mostra a forma como ocorre o controle de interrupção no microcontrolador 8051. À
esquerda um bloco representando a execução do programa e, em dado momento, uma interrupção indica o
desvio de execução à direita em outro bloco. Após o tratamento da interrupção ser executado, a execução é
desviada novamente para o bloco à esquerda.
O microcontrolador 8051 pode sofrer interrupções originadas de várias fontes. Observem o quadro a seguir
onde estão representadas as fontes de interrupção e o fato gerador.
- -14
Quadro 2 - Interrupções e fato gerador
Fonte: Elaborado pelo autor, 2020.
#PraCegoVer: trata-se de um quadro com duas colunas. A primeira coluna trata da interrupção das instruções e
a segunda coluna trata do fato gerador.
Quando ocorre uma interrupção, a execução da instrução para e o endereço do contador é salvo na pilha.
Posteriormente, é necessário que as instruções menos prioritárias sejam desabilitadas. A execução do programa
continua no endereço apontado pelo endereço salvo na pilha. Quando o programa apontado no desvio é
executado totalmente, então a instrução RETI é executada e o endereço do desvio é restaurado.
O microcontrolador 8051 é baseado no modelo de arquitetura de Von Neumann, ou seja, os dados e os
programas são armazenados em um único local, apresentando um conjunto complexo de instrução CISC, contudo
não são todos os microcontroladores que são estruturados nesse modelo.
É o que acontece com os microcontroladores PIC da fabricante Microchip, onde os dados e programas são
armazenados em locais separados. Essa arquitetura apresenta uma quantidade reduzida de instruções RISC.
Observem a figura.
- -15
Figura 7 - Arquitetura interna do microcontrolador PIC16F84
Fonte: ALCIATORE e HISTANDE, 2014.
#PraCegoVer: a figura mostra a arquitetura interna de um microcontrolador PIC.
Os microcontroladores PIC foram projetados para operar com uma quantidade reduzida de instruções, porém
com dois locais de armazenamento, viabilizando maior rendimento de processamento.
Agora é com você!
Esta atividade não é pontuada.
Outra questão importante dos microcontroladores são os pontos de acesso à arquitetura interna, ou seja, a
chamada pinagem. O microcontrolador 8051/31 possui 40 pinos. Observem a figura a seguir.
- -16
Figura 8 - Pinagem MC 8051
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura mostra o modelo de pinagem do microcontrolador 8051.
Nafigura anterior pode-se observar a pinagem do microcontrolador 8051. Pode-se ver claramente a pinagem
- -17
Na figura anterior pode-se observar a pinagem do microcontrolador 8051. Pode-se ver claramente a pinagem
das 4 portas de E/S, bem como a pinagem dos demais componentes.
Faremos a seguir uma breve descrição da pinagem do microcontrolador. Observem o quadro.
Quadro 3 - Descrição da pinagem – continuação
Fonte: Elaborado pelo autor, baseado em GIMENEZ, 2010.
#PraCegoVer: trata-se de um quadro com a descrição da pinagem do microcontrolador 8051.
A figura e o quadro anterior descrevem em detalhes as funções dos pinos do microcontrolador 8051,
esclarecendo a forma de funcionamento.
1.2.2 Conjunto de instruções e organização da memória
Com relação à memória dos microcontroladores da família MCS-51, observamos que possui uma divisão lógica,
sendo dividida em memória de programa e memória de dados. Vejamos a figura a seguir.
- -18
sendo dividida em memória de programa e memória de dados. Vejamos a figura a seguir.
Figura 9 - Divisão lógica da memória do MCS-51 Intel
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura mostra a divisão lógica da memória do MCS-51 Intel.
A parte da memória de programa tem como função armazenar o firmware dos equipamentos, e a memória de
dados tem a função de armazenar as informações que serão utilizadas no gerenciamento de controle.
Os programas armazenados nada mais são do que um conjunto de instruções. Esses programas são
implementados em linguagem assembly e, posteriormente, convertidos em linguagem de máquina pelo
montador assembler.
O microcontrolador 8051 possui um conjunto de instruções com funções específicas, que são utilizadas pelos
programadores para a criação de programas em assembly.
O quadro a seguir apresenta algumas instruções utilizadas para movimentação de dados.
- -19
Quadro 4 - Instruções de movimento de dados
Fonte: Elaborado pelo autor, baseado em (CORRÊA, 2017).
#PraCegoVer: o quadro exibe instruções de transferência de dados.
A família de MCS-51 conta também com um conjunto de instruções aritméticas. Vejamos no quadro a seguir
algumas instruções aritméticas.
Quadro 5 - Instruções aritméticas
Fonte: Elaborado pelo autor, baseado em CORRÊA, 2017.
#PraCegoVer: a figura exibe instruções aritméticas.
No quadro anterior podemos ver um conjunto de instruções aritméticas, utilizadas para efetuar operações de
adição, subtração, multiplicação, divisão, incremento etc.
O microcontrolador 8051 também conta com um conjunto de instruções lógicas utilizadas para mudar o padrão
de sequências binárias, ou seja, resetar (reset), setar (set), examinar bits ou aplicar máscaras.
Quadro 6 - Instruções lógicas
Fonte: Elaborado pelo autor, baseado em CORRÊA, 2017.
#PraCegoVer: a figura exibe instruções lógicas.
- -20
#PraCegoVer: a figura exibe instruções lógicas.
No quadro anterior, pudemos observar uma série de instruções lógicas que fazem parte do conjunto de
instruções do microcontrolador 8051.
1.2.3 Endereçamento e instruções do 8051
As instruções do microcontrolador 8051 são divididas em opcode e operando. De uma forma bem simplificada, o
opcode indica “o que fazer” e o operando representa “dados, endereços etc.”.
Figura 10 - Estrutura das instruções
Fonte: Elaborada pelo autor, 2020.
#PraCegoVer: a figura exibe diferentes estruturas de instruções.
Na figura anterior podemos observar esquematicamente alguns modelos de instruções. Reparem que as
instruções sempre deverão ter um opcode e não necessariamente o operando. A quantidade de operandos pode
variar conforme o tipo de instrução e a arquitetura em questão. Vejamos a seguir alguns tipos de endereçamento.
• Endereçamento Imediato
Ocorre quando o valor operando estiver presente na instrução. É a forma mais simples de
endereçamento (STALLING, 2017).
• Endereçamento Direto
Ocorre quando o endereço é determinado na própria instrução, servindo para endereçamento de
registradores especiais e da RAM interna.
• Endereçamento Indireto
Ocorre quando o endereço do operando é determinado por um registrador. Os registradores
R0~R1podem determinar endereços de 8 bits, enquanto o registrador DPTR, endereços de 16 bits.
• Endereçamento por Registrador
Ocorre quando o campo de endereço se refere a um registrador.
• Endereçamento do tipo Registrador Específico
Ocorre quando o operando de uma instrução é determinado em um registrador específico. Nesse caso
não há necessidade de indicar o endereço.
• Endereçamento do tipo Indexado ou deslocamento
•
•
•
•
•
•
- -21
• Endereçamento do tipo Indexado ou deslocamento
Nesse tipo de endereçamento o conteúdo da instrução utiliza o conteúdo do registrador R0 ou R1,
somente a memória de programa pode ser acessada, sendo utilizado em instruções de salto e look-up
table. Esse tipo de endereçamento é possível apenas em operações de leitura.
Dessa forma, uma instrução deve conter as informações de origem dos dados que serão utilizados e o endereço
de destino da próxima instrução. Em outras palavras, é uma sequência binária que necessariamente deve
representar o local onde estão os dados que serão executados e o local da próxima instrução que também será
executada, então o que poderá variar é a forma como ocorrerá esse endereçamento.
Figura 11 - Tipos de endereçamento
Fonte: Elaborada pelo autor, baseada em STALLING, 2017.
#PraCegoVer: a figura exibe vários tipos de endereçamento.
Conforme pudemos observar, existem diversas formas de endereçamento de instruções, que poderão ser usadas.
•
- -22
Conforme pudemos observar, existem diversas formas de endereçamento de instruções, que poderão ser usadas.
Observem o quadro a seguir.
Quadro 7 - Modelos de endereçamento
Fonte: Elaborada pelo autor, baseada em STALLING, 2017.
#PraCegoVer: o quadro apresenta modelos de endereçamento. Endereçamento imediato, direto, indireto, por
registrador, indireto por registrador e por deslocamento.
No quadro anterior foram utilizadas as seguintes notações:
A = conteúdo do campo de endereço na instrução.
R= Conteúdo de campo de endereço na instrução fazendo referência a registrador.
EA= Endereço real do local.
(X) = Conteúdo do local da memória X ou registrador X.
O quadro anterior demonstra os tipos de endereçamento, suas vantagens e desvantagens, para que o leitor possa
compreender a necessidade de utilização de cada modelo (STALLING, 2017).
1.3 Fluxograma e programação em Assembly
O estudo de linguagens de programação é necessário para quem deseja trabalhar com microcontroladores.
Existem diversas linguagens de programação, entre elas podemos citar o assembly (baixo nível) ou linguagens
em níveis mais elevados, como linguagem C (nível intermediário) ou linguagens BASIC e PL/M (nível alto).
A vantagem de estudar programação de baixo nível é que iremos trabalhar com instruções similares aquelas
desenvolvidas pelo fabricante do hardware, assim teremos maior acesso a suas funções.
Caso
A computação percorreu um longo caminho até nossos dias e, nesse percurso, foi criada uma infinidade de
linguagens de programação. Existem linguagens de baixo, médio e alto nível, que são utilizadas pelos
programadores para que sistemas e serviços possam funcionar normalmente. A grande indagação é: qual a
melhor linguagem? As linguagens de programação possuem características diversas, sendo, portanto, indicadas
para problemas específicos, como por exemplo a linguagem assembly, utilizada em microcontroladores,
podendo servir de base para sistemas de tempo real e computação de alto desempenho.
Para aprender programação, devemos atentar para alguns requisitos: conhecimento do hardware e suas
instruções, viabilidade do projeto e critérios de implementação.
Podemos representar os critérios de implementação como a elaboração de um fluxograma de forma a retratar
- -23
Podemos representar os critérios de implementação como a elaboração de um fluxograma de forma a retratar
adequadamente as instruções que deverão ser implementadas em código assembly.No dizer de Gimenez (2010, p. 80): “O fluxograma representa como o fluxo de informações será processado pelo
microprocessador.”.
A seguir iremos estudar apenas quatro símbolos básicos para a elaboração de um fluxograma:
a) Linha de conexão: as setas para direita, para esquerda, para cima, para baixo. Esse símbolo pode ser utilizado
para representar fluxo de informações que serão processadas, ou simplesmente para conectar os blocos lógicos
do fluxograma.
b) Elipse: esse símbolo é utilizado para identificar o início e o fim do programa. Quando for utilizado no início do
programa deverá conter em seu interior o nome da rotina. Observem a figura.
Figura 12 - Início do programa “ler teclado”
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura exibe o símbolo de fluxograma “Ler teclado”.
No final do programa deve-se usar o mesmo símbolo contendo em seu interior a indicação de término da rotina.
Observem a figura a seguir com o símbolo de encerramento.
Figura 13 - Final do programa “Fim da rotina ler teclado”
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura exibe o símbolo de fluxograma “Fim da rotina ler teclado”.
c) Retângulo: esse símbolo opera de forma genérica, ou seja, representa todo o processamento de informações,
como operações lógicas, aritméticas, movimento de dados etc. Observem o exemplo a seguir.
Figura 14 - Processamento de informações
Fonte: Elaborada pelo autor, 2020.
- -24
d) Losango: utilizado para a tomada de decisões. O fluxo de execução do programa seguirá um caminho caso a
condição seja satisfeita, ou seguirá outro caminho caso a condição não seja satisfeita.
Figura 15 - Estrutura condicional
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura exibe o símbolo de fluxograma “Estrutura condicional”.
Acabamos de ver as principais estruturas de um fluxograma para a criação de um programa simples. Agora
vejamos como criar a estrutura de um programa simples. Observe a figura a seguir.
- -25
Figura 16 - Estrutura de um programa simples
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura exibe o fluxograma de um programa simples.
Na figura anterior podemos ver os blocos de um programa simples com execução sequencial, isto é, sem
interrupção. Muitas outras questões podem envolver estruturas condicionais e loops. Observe a figura a seguir.
- -26
Figura 17 - Estrutura com blocos condicionais e loops
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura exibe o fluxograma de um programa com condicional e loop.
A figura anterior representa o fluxograma de um programa em que existem duas estruturas condicionais e loop.
Pode-se observar que a primeira estrutura condicional representa o teste de uma variável e a segunda estrutura
condicional efetua o controle do loop.
Agora vamos criar um programa que efetue uma soma de dois valores. Observe a figura a seguir.
- -27
Figura 18 - Fluxograma e código fonte em assembly
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura exibe fluxograma e código de um programa para somar.
No programa anterior o conteúdo do endereço 45h é movido para o acumulador A. Em seguida o conteúdo do
endereço de memória 5Ah é somado com o acumulador A e o resultado atribuído ao próprio acumulador.
Posteriormente, o valor do acumulador A é movido para a posição de memória 6Dh.
1.4 Elaboração de projetos básicos
Os programas em baixo nível são uma ferramenta poderosa, pois proporcionam acesso privilegiado às funções
do hardware.
- -28
Figura 19 - Registradores internos a CPU
Fonte: Elaborada pelo autor, baseada em GIMENEZ, 2010.
#PraCegoVer: a figura exibe a lista de registradores internos da CPU.
É simples criar um pequeno programa em assembly que efetue uma operação aritmética de subtração.
Programar em assembly torna o código mais poderoso, o que permite aproveitar ao máximo as funcionalidades
 
Vamos Praticar!
Elabore o fluxograma e um programa em assembly que efetue uma subtração. O código
deve ser criado compatível com a arquitetura de microcontroladores Intel 8051. O
quadro a seguir demonstra as posições de memórias dos registradores, informações
que poderão ser utilizadas na resolução do exercício.
- -29
Programar em assembly torna o código mais poderoso, o que permite aproveitar ao máximo as funcionalidades
do hardware, ocorrendo otimização em tamanho de código e em tempo de execução.
Conclusão
O ser humano aprendeu a manipular a energia elétrica, criando máquinas e desenvolvendo circuitos eletrônicos,
peças essenciais para a criação dos computadores e, mais tarde, dos microcontroladores, sistemas embarcados.
Entre tantas inovações, foi viabilizado um grande avanço tecnológico que caminha conforme a necessidade das
pessoas e não vê limites.
Nesta unidade, você teve a oportunidade de:
• aprender as grandezas elétricas e conceitos de eletrônica;
• aprender sobre arquiteturas de computadores;
• estudar sobre os microcontroladores 8051;
• aprender e criar projetos em assembly.
Referências
ALCIATORE, D. G.; HISTANDE, M. B. . 4. ed. PortoIntrodução à Mecatrônica e aos Sistemas de Medições
Alegre: AMGH, 2014.
CAMILLO, R. ZR16S08: O primeiro microcontrolador brasileiro reconhecido oficialmente. , [ .],Embarcados s. l
•
•
•
•
- -30
CAMILLO, R. ZR16S08: O primeiro microcontrolador brasileiro reconhecido oficialmente. , [ .],Embarcados s. l
2018. Disponível em: . Acesso em: 1https://www.embarcados.com.br/zr16s08-microcontrolador-brasileiro/
dez. 2020.
CHILDRESS, D. H.; TESLA, N. . 1. ed. São Paulo: Madras, 2017.As fantásticas invenções de Nikola Tesla
CORRÊA, A. G. D. . 1. ed. São Paulo: Pearson, 2017.Organização e arquitetura de computadores
GIMENEZ, S. P. . 1. ed. São Paulo: Érica, 2010.Microcontroladores 8051
LOURENÇO, A. C. D. . . 9. ed. São Paulo: Érica, 2014.et al Circuitos digitais
MORDKA, S. teoria, componentes e aplicações. São Paulo: Gen, 2014.Eletrônica digital: 
PATTERSON, D. A.; HENNESSY, J. L. : the hardware/software interface. 5.Computer organization and design
ed. Waltham: Elsevier, 2014.
STALLING, W. . 10. ed. São Paulo: Pearson, 2017.Arquitetura e organização de computadores
TANENBAUM, A. . 6. ed. São Paulo: Pearson, 2013.Organização estruturada de computadores
YOUNG, P. H. . 5. ed. São Paulo: Pearson, 2005.Técnicas de comunicação eletrônica
https://www.embarcados.com.br/zr16s08-microcontrolador-brasileiro/
	Introdução
	1.1 Eletroeletrônica e arquitetura de computadores
	1.1.1 Grandezas elétricas e conceitos de eletrônica analógica e digital
	Você sabia?
	Você quer ver?
	Agora é com você!
	1.1.2 Arquiteturas de computadores, RISC, CISC e ARM
	Você o conhece?
	1.2 Microcontrolador 8051
	1.2.1 Arquitetura interna do 8051, pinagem e funcionamento
	Você quer ler?
	Agora é com você!
	1.2.2 Conjunto de instruções e organização da memória
	1.2.3 Endereçamento e instruções do 8051
	Endereçamento Imediato
	Endereçamento Direto
	Endereçamento Indireto
	Endereçamento por Registrador
	Endereçamento do tipo Registrador Específico
	Endereçamento do tipo Indexado ou deslocamento
	1.3 Fluxograma e programação em Assembly
	Caso
	1.4 Elaboração de projetos básicos
	Vamos Praticar!
	Conclusão
	Referências

Mais conteúdos dessa disciplina