Buscar

Microcontroladores

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 28 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 28 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 28 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

26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 1/28
MICROCONTROLADORESMICROCONTROLADORES
E IOT E IOT 
UNIDADE 1 – CONCEITOSUNIDADE 1 – CONCEITOS
FUNDAMENTAIS DOFUNDAMENTAIS DO
SISTEMA DE COMPUTAÇÃO SISTEMA DE COMPUTAÇÃO 
Autora: Eliny dos Santos Gomes Autora: Eliny dos Santos Gomes 
Revisor: Lucas Gonçalves Correia Revisor: Lucas Gonçalves Correia 
IN ICIAR
Introdução
Caro(a) estudante, 
Nesta unidade, trabalharemos os conceitos fundamentais de microcomputadores para
que, na sequência, possamos entender seu funcionamento e o conjunto de instruções.
Também iremos conceituar fluxograma e aprender como pode auxiliar na elaboração de
projetos. Além disso, será possível conhecer a linguagem com a qual o computador
interage com o meio, verificando que essa máquina maravilhosa consegue atender aos
anseios do ser humano e que, na verdade, ela faz somente o que ele determina. Assim,
poderemos compreender como essa simples máquina eletrônica conseguiu entrar em
nosso cotidiano, transformando o dia a dia de uma sociedade inteira. Além disso,
explicaremos o que é metodologia de projeto, com intuito de demonstrar os passos e
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 2/28
1.1 Conceitos fundamentais dos sistemas de computação
Desde os primórdios da civilização, o homem criou “tecnologias” para facilitar sua vida,
diminuindo seu esforço e facilitando o seu trabalho. Desse modo, o computador chegou,
inicialmente, por meio do desenvolvimento de equipamentos mecânicos, foi se
aprimorando, convertendo-se para eletromecânicos e valvulados, até, por fim, evoluir
para eletrônicos compostos por equipamentos muito grandes e com poucas funções.
Resumidamente, desde seu início até o que temos hoje, podemos dizer que sua
qualidade e velocidade foram aumentadas de modo inversamente proporcional ao seu
tamanho, como podemos notar no Infográfico 1. O sistema de computação é o conjunto
de equipamentos eletrônicos, chamados de hardwares, capazes de fazer o
processamento de informações de acordo com um determinado programa, denominado
software. Cada vez menores e com mais funções, o computador é uma ferramenta
utilizada em todas as áreas de atuação profissional. 
Infográfico 1 – A evolução dos computadores
Fonte: Adobe Stock, 2020. Acesso em: 15/05/2020.
Tudo começou durante a Antiguidade, no Oriente Médio, com o ábaco, que era usado
para cálculos matemáticos. Por muito anos, não houve grandes evoluções nesse modo
de determinar valores exatos. 
Durante o século XVII, John Napier criou tabelas de cálculos matemáticos, chamada
ossos de Napier. Depois, entre 1621 e 1638, o matemático William Oughtred, com
tentar provar que quando se usa uma técnica processual e metodológica, tende-se a ter
êxito na conclusão de qualquer atividade. 
Bons estudos!
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 3/28
inspiração nas tabelas de Napier, criou a régua de cálculo, amplamente utilizada por
muitos anos. 
Entre 1642 e 1647, Pascal desenvolveu uma máquina de calcular mecânica chamada
pascaline , que fazia contas adição e subtração. Em 1671, o matemático Von Leibniz
adicionou à pascaline a operação de multiplicação e divisão. Em 1801, o matemático
francês Josef M. Jacquard introduziu o conceito de armazenamento às máquinas de
calcular. 
Depois, em 1820, Charles Thomas de Colmar produziu a primeira calculadora com
sucesso comercial. Alguns anos depois, entre 1834 e 1871, Charles Babbage criou a
primeira máquina semelhante a um computador, a difference engine , mas o projeto era
muito caro e, por isso, não teve sucesso. 
Em 1874, George Boole iniciou os estudos de um grande paradigma matemático, a
álgebra booleana, que dá ênfase à notação binária no lugar da notação decimal, sendo
usada até hoje. 
Em 1880, Herman Hollerith desenvolveu uma nova máquina com leitura de cartões
perfurados. Com o sucesso dessa máquina, foi criada uma empresa e, com o tempo e a
união entre outras empresas, surgiu a IBM. Depois de 1946, a evolução dos
computadores pode ser dividida entre as seguintes gerações: 
» Clique nas abas para saber mais sobre o assunto
 Primeira geração 
(1946 – 1956)
Segunda geração 
(1957-1964)
Terceira geração 
(1964-1984)
Quarta geração 
(1985-1991)
Quinta geração 
(1991)
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 4/28
VOCÊ QUER VER?
A história dos computadores e da internet e o acesso à informação pode ser vista
na sequência de vídeos publicados pela Khan Academy Brasil, disponível em:
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 5/28
1.1.1 Microcomputador, arquitetura básica e linguagens de programação 
A arquitetura de computadores continua com a mesma concepção funcional dos primeiros
computadores eletrônicos. Conhecida como arquitetura Von Neumann e definida com uma
unidade central e processamento, recebe informações por meio de uma unidade de
entrada, as processa e coloca em um programa armazenado em sua unidade de memória,
retornando um resultado em sua unidade de saída. 
Diagrama 1 – Sistema de computador
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 6/28
Fonte: Elaborado pela autora, 2020.
A unidade central de processamento (CPU) é responsável por administrar todas as
operações de leitura e escrita da entrada e saída de dados, além de executar as
operações lógicas e aritméticas e fazer o processamento das informações recebidas,
interpretando as instruções. O microprocessador faz a maioria das atividades da unidade
central de processamento em um único chip. 
As unidades de entrada e saída, por sua vez, têm a função de transferir dados entre o
processamento e os periféricos, que são elementos geradores ou receptores de
informação em um sistema de computadores, como teclado, impressora, scanners etc. 
Além disso, para executar suas atividades de modo correto e eficiente, o computador
necessita da combinação de hardware e software. O hardware é a parte física do
computador, compondo seus componentes eletrônicos e periféricos. Nos computadores,
as placas, cabos, fontes de alimentação, memórias, impressoras, terminais de vídeo e
teclados são exemplos de hardware. Os softwares são programas que rodam dentro do
processador, com instruções detalhadas de como executar as determinadas atividades
recebidas escritas em linguagem de programação. Um software pode ter várias funções,
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 7/28
como editar textos, criar planilhas, jogos, editar vídeos ou imagens etc. 
No microcomputador, os programas são armazenados em sua memória de programa. É
preciso ter cuidado para que esse programa não seja perdido durante uma queda de
energia. Caso isso aconteça, há perda da funcionalidade do equipamento.Por isso, as
memórias não voláteis são utilizadas e podem ser classificadas em:
ROM ( Read Only Memory ) : é uma memória em que as informações são gravadas
pelo fabricante. São conhecidas como memórias de leitura e as informações
gravadas são conhecidas como firmware;
PROM/OTP ( Programmable Read Only Memory/One Time Programing ) : é uma
ROM programável, normalmente utilizada para equipamentos de produção empequena escala ou em testes de equipamentos;
EPROM ( Erasable and Programmable Read Only Memory ) : é, também, uma
ROM na qual, além de ser possível a gravação, pode ser apagada e reprogramada.
O chip possui um orifício que pode ser reprogramado por meio da luz ultravioleta;
EEPROM ( Electrically Erasable and Programmable Read Only Memory ) : essa
memória é similar à EPROM. No entanto, é apagada eletricamente e, depois, pode
ser reprogramada;
Flash : são programadas em um dispositivo denominado programador de memória e
são a evolução das memórias EEPROM.
Figura 1 – Memórias de armazenamento EPROM. 
Fonte: Adobe Stock. Acesso em: 15/05/2020.
O microprocessador é um dispositivo lógico programável encapsulado em um chip de
silício, feito em tecnologia VLSI ( Very Large Scale Integration ) e possui as funções
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 8/28
básicas de um computador, integrando as funções de uma unidade de controle, uma
unidade lógico-aritmética e uma de memória interna.
VOCÊ SABIA?
Antes de mais nada, para fabricar um processador é necessário executar um
projeto avançado do circuito. Em seguida, é hora de “colocar a mão na massa” e
começar sua fabricação. Para isso, é necessário areia, matéria-prima do
processador. Ao derretê-la, é possível extrair o silício, que é transformado em um
enorme bloco e cortado em discos. Depois disso, recebe uma camada de líquido
fotorresistente e, em seguida, passa pela fotolitografia. As partes bombeadas pela
luz UV são removidas, formando pequenos sulcos. Isso faz com que seja possível
adicionar uma camada de átomos dopantes aos discos, alterando a condutividade
do silício. Por fim, para evitar curtos-circuitos, uma camada selante é aplicada e
os sulcos são preenchidos com cobre.
Ele é composto por duas unidades principais: a ULA (unidade lógica e aritmética), que
tem a função de realizar as operações lógicas e matemáticas, e a UC, unidade de
controle, responsável pela codificação e execução das instruções, pelos sinais de
temporização para as outras partes do processador e do computador em geral e de
registradores que armazenam os dados, endereços e as próprias instruções.
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 9/28
Figura 2 – Estrutura de um chip. 
Fonte: Shutterstock. Acesso em: 15/05/2020.
O software deve ser codificado em uma linguagem de programação para especificar as
ações que devem ser tomadas a partir das entradas. É uma linguagem formal na qual o
programador descreve o conjunto de ações, ordens e algoritmos que serão controlados a
partir de variáveis de entrada. 
As linguagens de programação são classificadas entre alto e baixo nível. As de baixo
nível são totalmente orientadas à máquina, ou seja, são mais complexas. As de alto nível
são orientadas ao programador, pois utilizam uma linguagem de instruções que facilitam
seu entendimento, embora necessitem de tradutores e compiladores.
1.2 Microcontroladores 8051, ATMEGA328, ARM: arquitetura
interna e organização de memória
O microcontrolador é um dispositivo programável que contém unidade central de
processamento, memórias (ROM e RAM), entradas e saídas. São mais baratos, mais
lentos (KHz; MHz), consomem menos energia, recursos internos e possuem placas
menores quando comparados aos microprocessadores. 
O primeiro microcontrolador produzido e comercializado foi o da Intel. No entanto, existem
muitos modelos e fabricantes usados no mercado de automóvel, brinquedos,
equipamentos domésticos, na automação residencial, na mecatrônica, na robótica, na IoT
e em dispositivos vestíveis. 
O sistema ARM, altamente utilizado em sistemas embarcados, foi concebido nos anos
1980, época em que a empresa britânica Acorn Digital Computers (ADC) desenvolveu um
projeto para British Broadcast Corporation (BBC). Esse projeto foi os primeiros passos
para o nascimento do processador comercial com arquitetura RISC, que estava se
consolidando no mercado. Assim, nasceu o processador Acorn RISC Machine (ARM).
Desde então, a arquitetura ARM foi se modificando e atendendo aos objetivos e às
demandas de mercado. No entanto, não foi somente a arquitetura que evoluiu: extensões
foram adicionadas para segmentos específicos, como Security (TrustZone® technology);
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 10/28
Advanced SIMD (NEON™ technology); Virtualization, presente a partir da arquitetura
ARMv7-A, e Cryptographic, presente a partir da arquitetura ARMv8-A.
Diagrama 2 - Evolução da arquitetura ARM 
Fonte: GARCIA, [s.d.]. (Adaptado).
O ARM teve suas características fixadas em modelos com alta velocidade, die pequeno e
baixo consumo. O die, ou pastilha, é um bloco de material semicondutor de circuito
fabricado. Outra característica muito interessante dele é o equilíbrio entre esses
requisitos e a sua grande capacidade de criar códigos simples e compactos. Os
processadores ARM são escritos com instruções iguais. Assim, as famílias têm
compatibilidade e todos os processadores têm o seu desenvolvimento no modelo de
arquitetura, conforme sua área de aplicação:
» Clique nas abas para saber mais sobre o assunto
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 11/28
Os processadores ARM fazem parte da nossa vida diária, estando presentes em
smartphones, tablets, automóveis, televisores e muito mais. No entanto, não podemos
esquecer que as raízes RISC desses processadores os tornam modernos e com reduzida
necessidade de compatibilidade para aplicações mais antigas. 
A arquitetura básica do microcontrolador da família MCS-51, cujo original é o 8051, são
suas variações com novas características. Se compararmos com a arquitetura do
microcomputador, podemos avaliar que ele tem todas as características do
microprocessador, incluindo outras de controle. Como podemos verificar no Diagrama 3,
nessa arquitetura são implementados memória interna, interrupções, timers/contadores,
portas de entrada e saída.
Diagrama 3 – Arquitetura interna de um microcontrolador 8051 (Intel)
Fonte: GIMENEZ, 2015, p. 48. (Adaptado).
A família de microcontroladores 8051, da Intel, é bem extensa, sendo que cada
microcontrolador tem características específicas, versões com e sem ROM, capacidades
diferentes de memórias, fontes de interrupção etc. 
A memória é um recurso primário que deve ser gerenciado com muito critério. Nota-se
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 12/28
que, embora a capacidade de memória disponível nos sistemas computacionais aumente
cada vez mais, os softwares demandam muito mais para ser armazenados e para sua
execução. Não podemos esquecer que a memória é finita, ou seja, possui um limite e, por
isso, gerenciá-la é muito importante para o funcionamento dos processos pelo sistema
operacional. Gerenciamento de memória é a tarefa desempenhada pela MMU (memory
management unit). 
A MMU é um hardware que traduz endereços virtuais em endereços físicos.
Normalmente, fica alocada à CPU, mas também pode ser um circuito integrado separado.
A memória principal é dividida em dois tipos: a memória física e a lógica. A memória lógica
é aquela visível para os programas, desse modo, sempre que um programa estiver
rodando em um sistema, essa memória está sendo utilizada. A memória física é aquela
implementada em circuitos digitais. Nela, a memória lógica é fisicamente armazenada. 
Um conceito importante diz respeito ao ambientede memória virtual, que não faz
referência a endereços físicos de memória (endereços reais), mas sim a endereços
virtuais. Desse modo, quando há uma execução de instrução, o endereço virtual é
traduzido para um endereço físico e, assim, o processador acessa as posições da
memória principal. 
O mecanismo de tradução do endereço virtual para endereço físico é chamado
mapeamento, sendo seu processo muito semelhante ao da paginação. A grande
diferença entre paginação e segmentação é que a primeira divide o programa em partes
de tamanho fixo e sem qualquer ligação com a estrutura do programa, já a segunda
permite a relação entre a lógica do programa e sua divisão na memória.
1.2.1 Pinagem e funcionamento
O microcontrolador 8051 é um circuito integrado (CI) de 40 pinos identificados:
Os pinos 1 a 8 são identificados como “porta 1”, possuindo capacidade de
configuração para entrada ou saída.
O pino 9 é responsável por reiniciar o microcontrolador ( RESET ou RST ).
Os pinos 10 a 17 são identificados como “porta 3”, tendo a capacidade de
configuração para entrada ou saída. O pino 10, por exemplo, é responsável pela
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 13/28
entrada de comunicação assíncrona ou saída de comunicação síncrona ( RXD ), o
pino 11 ( TXD ) faz a saída da comunicação assíncrona ou saída de comunicação
serial relógio síncrona, o pino 12 é responsável pela interrupção 0 ( INT0 ), o pino 13
é responsável pela interrupção 1 ( INT1 ), o pino 14 é T0 , contador 0’clock de
entrada, o pino 15 é T1 , contador 1 entrada de clock, o pino 16 é WR escrita da
RAM externa (adicional) e o pino 17 é leitura da RAM externa ( RD ).
Os pinos 18 e 19 representam a entrada e saída do oscilador interno e o pino 20 é
GND.
Os pinos 21 ao 28 são identificados como “porta 2” e podem ser usados para
memória externa. No entanto, quando não estiverem sendo usados como memória
externa, voltam a ser porta de entrada ou saída.
O pino 29 representa SPEN , ou seja, o controle do byte de memória para leitura
quando uma ROM externa é usada para armazenar programas.
O pino 30 é ALE , ou seja, antes da leitura da memória externa, o microcontrolador
ativa a saída ALE .
O pino 31 é EA e faz o controle dos P2 e P3, que são utilizados para transmissão de
dados e endereço.
Os pinos 32 ao 39 são identificados como “porta 3” e são idênticos à porta 2.
O pino 40, por fim, é alimentação VCC, sendo alimentado com +5 V.
Observe na Figura 3: 
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 14/28
Figura 3 – Pinagem do microcontrolador 8051. 
Fonte: INTEL CORP, [s.d]. Acesso em: 15/05/2020.
O microcontrolador ATMEGA328 é um circuito integrado (CI) de 28 pinos identificados
conforme mostra a Figura 4. Detalhando as portas do microcontrolador ATMEGA168/328,
temos:
» Clique nas abas para saber mais sobre o assunto
 
 
Pino 1 Pino 2 a 6 Pino 7 Pino 8
Pino 9 Pino 10
 
 
Pino 
11 a 14
Pino 
15 a 19
Pino 
20
Pino 
21
Pino 
22
Pino 
23 a 28
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 15/28
Figura 4 – Pinagem do ATMEGA168/328P. 
Fonte: ARDUINO, [s.d.]. Acesso em: 15/05/2020.
A grande maioria dos pinos do ATMEGA328 pode ser usada como entrada e saída digital
ou analógica. Nesta unidade, estamos identificando os pinos e na próxima unidade
estudaremos detalhadamente as portas do Arduino. 
Na Figura 5, podemos ver que as placas do Arduino são interligadas com os pinos do
chip do microcontrolador ATMEGA328.
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 16/28
Figura 5 – Componentes de uma placa Arduino Uno, chip ATMEGA328. 
Fonte: SIMON, 2014, p. 21.
1.3 Conjunto de instruções
O conjunto de instruções do microcontrolador com núcleo (core) do 8051 tem uma relação
direta com um registrador chamado Program Status Word (PSW). O registrador PSW tem
como finalidade fornecer as condições de processamento da última instrução realizada,
além de ser usado pelas instruções de tomada de decisão na implementação de
programas de controle e gerenciamento de máquinas, processos e tarefas. 
Ele é composto por 4 bits, chamados de flags (bandeiras). Eles são responsáveis por
refletir a condição atual do processamento de um programa. Esses bits são: carry-bit (C),
auxiliary carry-bit (AC), overflow-bit (OV) e paridade-bit (P). Além desses quatro bits,
há também um bit de uso geral (F0) que pode ser setado (= 1) ou ressetado (= 0) por
instruções ( SETB bit, CLR bit ) e outros dois bits (RS0 e RS1) que são responsáveis por
selecionar um dos quatro bancos de registradores.
Tabela 1 – Registrador PSW
C
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PSW AC F0 RS0RS1 -OV P
Fonte: Elaborada pela autora, 2020.
1.3.1 Endereçamento
A família de microcontroladores com núcleo do 8051 pode ser endereçada de cinco
modos diferentes: por registrador direto, indireto ou indexado por registrador imediato e
por registrador-base mais indireto ou indexado por registrador. 
O endereçamento por registrador é o modo de endereçamento que trabalha com os
registradores existentes no banco de registradores selecionados. Essas instruções
transportam, por meio de seu código de máquina ou código-objeto, pelo menos três bits,
que correspondem a um dos registradores selecionados (R0 a R7). 
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 17/28
O endereçamento direto especifica diretamente, na instrução, um endereço de memória
da RAM interna do microcontrolador 8051. Todavia, podem ser acessados apenas por
esse tipo de endereçamento os registradores de funções especiais (SFRs) e os 128 bytes
inferiores da RAM interna. 
O endereçamento indireto ou indexado por registrador usa somente os conteúdos dos
registradores R0 e R do banco de registradores selecionado, como um endereço
(ponteiro) de uma posição de memória dentro de um bloco de 256 bytes. Os registradores
de funções especiais não são acessados por esse tipo de endereçamento. 
O endereçamento imediato permite o uso de valores constantes nas instruções,
normalmente para inicializar um registrador ou uma posição de memória RAM. 
O endereçamento indireto por registrador-base ou registrador indexado permite que um
byte seja acessado da memória de programa, que é endereçada pela adição de um
registrador-base (DPTR ou PC) e um registrador indexado (A). 
O endereçamento combinado ou misto usa dois tipos de endereçamento diferentes.
1.3.2 Instruções do 8051, ATMEGA328, ARM
As instruções que o microcontrolador pode executar são operações aritméticas e lógicas,
de transferência de dados, de rotação, de salto incondicional e condicional, de chamadas
a sub-rotinas e de retorno a sub-rotinas, dentre outras por meio do microprocessador. 
As operações com transferência de dados podem ser da RAM interna ou externa, sendo
que, quando é feito pela RAM interna e usando um cristal de 12 MHz, as instruções são
executadas de maneira muito mais rápida do que pela externa. 
Somente durante a execução da instrução MOVX é que os sinais de controle de leitura e
escrita da memória RAM externa são ativados. 
Nas instruções de manipulação de tabelas de procura, o conteúdo do acumulador (A) é
copiado com o conteúdo da posição de memória de programa, que é endereçado pela
soma dos conteúdos dos registradores A com DPTR ou PC, respectivamente. A tabela
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK…18/28
deve ter no máximo um tamanho de 255 bytes. 
As instruções com operações aritméticas e lógicas usam o acumulador e, para algumas
outras operações, outros registradores. Há uma lista de operações que podem ser
executadas. 
Nas operações de salto/desvio ( jumper ) incondicional, o endereço de destino é
especificado na linguagem de programação assembly por um rótulo ( label ) ou por um
endereço da memória de programa, porém o endereço de destino age como se fosse um
endereço de valor relativo (byte sinalizado tipo em complemento de dois). 
Nas operações de salto/desvio ( jumper ) e chamada à sub-rotinas condicional, temos
alguns mnemônicos que exercem funções de salto condicionado, comparação de
conteúdos e decremento de função. 
Além disso, a arquitetura interna do ATMEGA328 segue o modelo de Harvard, tendo as
memórias independentes. Assim, é possível usar a técnica pipeline , que analisa a
próxima instrução enquanto a que está sendo executada finaliza. Desse modo, duas
instruções são analisadas em um ciclo de clock. 
Nos modelos de Arduino, verificamos que são usados processadores do tipo RISC e,
especificamente, Advanced RISC, que pode executar milhares de instruções por segundo,
sendo uma especificação para a família MIPS. 
A arquitetura RISC possui diferentes tipos de instruções:
Instruções lógicas e aritméticas em registros;
Instruções de transferência de dados entre a memória e os registros;
Instruções para controle.
Alguns exemplos de instruções podem ser vistos em:
piMode() : determina a programação de um determinado pino, como entrada ou
saída;
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 19/28
digitalWrite() : configura o pino já definido como saída, a trabalhar com nível 0 ou
nível 1;
digitalRead() : configura o pino já definida como entrada, a trabalhar com nível 0 ou
nível 1;
analogRead() : lê o valor analógico quando a entrada é habilitada como conversor
analógico-digital.
1.4 Fluxograma, programação assembly
Fluxograma é um diagrama gráfico utilizado para descrever, de forma simples, processos
e algoritmos para a implementação de programas. Normalmente, o fluxograma é utilizado
em projetos para desenvolver, desenhar e arquitetar a estratégia que deve ser
empregada para solucionar uma exigência de projeto, facilitando a forma de visualizar o
processo e o fluxo das atividades que serão realizados pelo microprocessador.
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 20/28
Figura 6 – Diferentes tipos de algoritmos. 
Fonte: Shutterstock, 2020. Acesso em: 15/05/2020.
Além disso, essa ferramenta gráfica serve como auxílio para desenvolver os processos e
algoritmos. Sendo assim, de forma básica, podemos usar os principais símbolos usados
no seu desenvolvimento: linha de conexão, elipse, retângulo e losango. 
A linha de conexão tem a função de conectar os outros símbolos e também dá a direção
do fluxo de processamento. Desse modo, ela é representada por setas apontando para
cima, para baixo, para a esquerda e para a direita. 
A elipse é usada somente para identificar o início e o fim do programa. Na parte inicial,
deve-se colocar, dentro dela, o nome do programa e, se possível, explicar sua utilização.
Na parte final, escreve-se simplesmente FIM, significando o final da rotina. 
O retângulo representa o processamento, podendo ser as operações aritméticas ou
lógicas, a movimentação de dados e endereços ou qualquer processamento que o
microprocessador terá que executar. 
O losango sempre representa uma tomada de decisão, na qual é avaliada, por meio de
um teste, uma variável de qualquer tipo. O resultado desse teste leva a dois caminhos: se
for positivo ou verdadeiro, indica um caminho para o fluxo de processamento, se for
negativo ou falso, indica outro caminho para o fluxo de processamento. 
Além disso, é possível dizer que o fluxograma de um programa sequencial é simples, pois
não requer a representação de decisões, somente dos processamentos, conforme
apresentado no Fluxograma 1.
Fluxograma 1 – Exemplo de rotina simples
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 21/28
Fonte: Elaborado pela autora, 2020.
É importante ressaltar que, quanto mais complexos os processos representados no
fluxograma, mais símbolos gráficos serão necessários. Por exemplo: um programa que
possui condições que precisam ser cumpridas precisa apresentar, em seu fluxograma,
representações gráficas do que fazer quando os requisitos forem cumpridos e demonstrar
o que deve ser feito em caso negativo, como retornar a outro ponto da etapa do processo
de produção do programa e, caso contrário, se essas condições não forem cumpridas e
tivermos que retornar a outro ponto do programa, caso elas e em caso negativo tem que
retornar a um outro ponto do programa, são necessários mais passos e símbolos gráficos
para representá-lo. 
No teste de condição, expressado pelo Fluxograma 2, o processamento passa
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 22/28
diretamente para o teste de controle de loop se a condição não for verdadeira. Por outro
lado, se a condição for negativa, é necessário fazer um processamento. Geralmente, os
testes condicionais dão o salto se a condição for positiva.
Fluxograma 2 – Rotina loop
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 23/28
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 24/28
Fonte: Elaborado pela autora, 2020.
» Linguagem de programação
A linguagem de programação é um conjunto de regras em que um método padronizado
para execução de um código pode ser compilado e transformado em um programa de
computador. Essas linguagens podem ser classificadas em três níveis: alto, médio e
baixo. 
A linguagem de baixo nível tem a característica de operar, acessar e manipular
diretamente os registradores internos do microprocessador, os endereços e os conteúdos
das posições de memória e dos dispositivos de entrada e saída existentes no hardware
(GIMENEZ, 2015). Trata-se de uma linguagem com foco na máquina. A linguagem
assembly é uma linguagem de baixo nível e é compilada para linguagem de máquina. 
A linguagem de alto nível é de mais fácil utilização por parte dos usuários
(programadores), não possuindo acesso aos registradores internos e memórias. Seus
comandos são muito simples e fáceis de serem entendidos. As linguagens de
programação BASIC, C#, Java, Ruby, Python, Swift, JavaScript, PHP e PASCAL possuem
essas características. 
A linguagem de nível médio é muito semelhante às de nível baixo e de nível alto,
flexibilizando suas utilizações, além de estarem mais próximas do hardware. A linguagem
C é desse tipo.
» Programação assembly
Para programação de sistemas utilizando microprocessadores ou microcontroladores,
podemos usar várias linguagens de programação, como a linguagem assembly (baixo
nível) e linguagens de programação estruturadas C (médio nível) e PL/M (alto nível). A
escolha de uma linguagem de programação na elaboração de um projeto de software
deve levar em conta o conhecimento técnico e suas especificidades. 
Conforme dito anteriormente, a característica da linguagem de programação assembly é
apresentar o conjunto de instruções definido pelo fabricante da família de
microprocessadores ou microcontroladores. Isso permiteum total controle dos
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 25/28
registradores internos, posições de memória do CI (circuito integrado) e uma
programação mais enxuta se comparada a outras linguagens de programação. Existem
muitas linguagens que podem ser utilizadas.
1.4.1 Elaboração de projetos
Ao iniciar uma determinada programação, para que se tenha sucesso, são necessários
alguns detalhes. O principal deles é seguir uma determinada metodologia. Além disso, é
muito importante ter o devido conhecimento técnico, uma vez que, para desenvolver um
projeto de software, é preciso conhecer a arquitetura interna (hardware) do circuito
integrado, bem como o conjunto de instruções do dispositivo. 
Um dos primeiros itens a ser avaliado é a viabilidade do projeto, que é determinada pelo
entendimento das especificações do cliente. Para a viabilidade, devem ser avaliados itens
como componentes, tecnologias, custos gerais, quantidade etc. 
Na fase da viabilidade, é importante e necessário que se tenha várias áreas da empresa
envolvidas, pois todas, de certa forma, participarão de alguma etapa do projeto. O
resultado da análise gera o valor final do produto, expectativas de vendas e pode até
chegar à conclusão da inviabilidade do projeto. 
Após a aprovação do projeto, pode-se partir para elaboração de diagramas de blocos
geral e detalhado, bem como definir detalhadamente os objetivos, o hardware e o
software do produto. 
A próxima etapa é fazer um fluxograma geral do projeto. Trata-se de uma etapa que,
quando bem executada, coloca a programação automaticamente em um bom caminho,
uma vez que viabiliza o processo de geração do código. Além disso, um fluxograma bem
estruturado diminui consideravelmente os erros na programação. 
Em seguida, é necessário fazer a compilação do código ou programa-fonte para
linguagem de máquina que o microcontrolador entende. A linkagem é a fase final da
compilação, em que é feita a união de todos os blocos de programa. Após a linkagem, o
programa está pronto para passar para a fase de testes e simulação. 
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 26/28
Após o processo de compilação do programa, são feitos os testes e simulação,
verificando se o software está funcionando conforme determinado. 
Por fim, após esses testes, finalmente é feita a gravação do programa. No entanto, serão
executados novos testes do produto final para avaliar se os objetivos foram atingidos.
Síntese
Nesta unidade, conhecemos os conceitos fundamentais dos sistemas de computação, a
história dos computadores e arquitetura, adentrando no mundo dos microcontroladores e
conhecendo suas arquiteturas e pinagens. 
Ainda, aprendemos sobre programações, instruções e organização dos endereçamentos.
Também verificamos a importância de se ter contato com determinados conceitos. Desse
modo, nossa mente fica fervilhando de novas ideias e, consequentemente, podemos
colocar inovações em prática. Aprendemos também a elaborar projetos de programas,
conhecendo bem as etapas de produção envolvidas. Sendo assim, estamos preparados
para conhecer as aplicações desse componente que se mostra um grande aliado das
novas tendências de mercado, que é a internet das coisas.
Referências bibliográficas 
A história dos computadores e da internet e o acesso à informação | Parte I .
Postado por Khan Academy Brasil. (11min42s.). son. color. port. Disponível em: <
https://www.youtube.com/watch?v=o1FiPSv60aY&feature=youtu.be >. Acesso em: 15
mai. 2020. 
A história dos computadores e da internet e o acesso à informação | Parte II .
Postado por Khan Academy Brasil. (9min50s.). son. color. port. Disponível em: <
https://www.youtube.com/watch?v=cjtNiHR2jFI >. Acesso em: 15 mai. 2020. 
A história dos computadores e da internet e o acesso à informação | Parte III .
P t d Kh A d B il (6 i 36 ) l t Di í l <
https://www.youtube.com/watch?v=o1FiPSv60aY&feature=youtu.be
https://www.youtube.com/watch?v=cjtNiHR2jFI
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 27/28
Postado por Khan Academy Brasil. (6min36s.). son. color. port. Disponível em: <
https://www.youtube.com/watch?v=nyFhZPoL9W4 >. Acesso em: 15 mai. 2020. 
ARDUINO. ATMEGA168/328P – Arduino Pin Mapping. Disponível em: <
https://www.arduino.cc/en/Hacking/PinMapping168 >. Acesso em: 15 mai. 2020. 
GARCIA, F. D. Breve histórico da ARM. Embarcados , [s.l.], 22 mar. 2017. Disponível em:
< https://www.embarcados.com.br/breve-historico-da-arm/ >. Acesso em: 17 jul. 2020. 
GIMENEZ, S. P. Microcontroladores 8051 : conceitos, operações, fluxogramas e
programação. 1. ed. São Paulo: Érica, 2015. 
GIMENEZ, S. P. Microcontroladores 8051 : teoria do hardware e do software. São
Paulo: Pearson, 2005. 
GIMENEZ, S. P. Microcontroladores 8051 : teoria do hardware e do software. São
Paulo: Pearson, 2005.GIMENEZ, S. P. Microcontroladores 8051: teoria e prática. 1. ed.
São Paulo: Érica, 2010. 
INTEL CORP. 8051 : 8 bit control oriented microcomputers. Disponível em: <
https://pdf1.alldatasheet.com/datasheet-pdf/download/107780/INTEL/8051.html >. Acesso
em: 15 mai. 2020. 
MONK, S. 30 Projetos com Arduino . 2. ed. Porto Alegre: Bookman, 2014. 
NICOLOSI, D. E. C. Microcontrolador 8051 detalhado . 9. ed. São Paulo: Érica, 2013.
https://www.youtube.com/watch?v=nyFhZPoL9W4
https://www.arduino.cc/en/Hacking/PinMapping168
https://www.embarcados.com.br/breve-historico-da-arm/
https://pdf1.alldatasheet.com/datasheet-pdf/download/107780/INTEL/8051.html
26/09/2022 13:15 Unidade 1 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=nOe8odeBkX68NSEc3rCqfg%3d%3d&l=sBmTKCh3nzn90F0ZvYvvSg%3d%3d&cd=WDuKhv9f0FaK… 28/28

Outros materiais