Você está na página 1de 14

AULA 1

LÓGICA E
MICROCONTROLADORES

Prof. Charles Way Hun Fung


TEMA 1 – CONCEITOS BÁSICOS DE COMPUTAÇÃO

Antes de introduzir os microprocessadores, é necessário conhecer alguns


conceitos básicos que serão muito úteis para o entendimento dos assuntos
abordados. Nesta área, pequenos conhecimentos se transformam em algo
complexo, portanto, a compreensão de cada termo facilita o aprendizado futuro.

1.1 Bit

A abreviação de dígito binário, que pode variar entre dois valores possíveis
0, ou nível baixo, e 1, ou nível alto. Normalmente o nível baixo corresponde a 0 V,
e o nível alto corresponde a 5 V ou 3,3 V, dependendo do circuito eletrônico
(Gimenez, 2010).

1.2 Byte

Consiste em uma representação numérica de 8 bits, de números de zero a


255. Para representá-los, são utilizadas bases numéricas como a binária (base 2)
ou a hexadecimal (base 16). Por exemplo, 0h = 010, em que o lado esquerdo
representa o número em hexadecimal, e do lado direito é o número em decimal.
000000002 = 010, do lado esquerdo, é o número em binário com 8 bits.

1.3 Instruções

São ações que podem ser executadas por um microprocessador, e só


ocorrem uma por vez. Podemos classificá-las em: leitura, escrita, aritmética ou
lógica. Por exemplo, uma instrução muito comum é a MOV, usada para copiar
dados de uma posição de memória para outra. O formato de uma instrução é
definido pelo fabricante, podendo variar a quantidade de bytes usados para defini-
la. Cada família de processadores possui um conjunto de instruções diferente. Por
isso, um código desenvolvido para um processador pode não funcionar em outro
conjunto de processadores.

1.4 Programa ou software

É um conjunto de instruções organizadas escritas em uma linguagem de


programação específica, que resolve um problema seguindo ordem lógica. Estes
programas podem ser classificados em: básicos ou sistemas operacionais,
2
utilitários e aplicativos. Os sistemas operacionais são os softwares que fazem toda
a interface entre o usuário e os recursos disponíveis, por exemplo: DOS, Windows,
Linux. Os utilitários disponibilizam recursos do sistema para o usuário, por
exemplo: PCShell ou bibliotecas de desenvolvimento. Por último, os aplicativos
são programas que o usuário utiliza: Excel, Word, navegadores. Estes softwares
devem estar armazenados em uma memória (Monteiro, 2010).

1.5 Firmware

É um programa desenvolvido em nível intermediário, entre linguagem de


máquina e nível de hardware (Monteiro, 2010). Na prática, é um programa
desenvolvido para ser embarcado em microprocessadores.

1.6 Hardware

Consiste no conjunto de circuitos eletrônicos que formam todo o sistema


computacional: processador, memórias, monitor, mouse, impressora etc.

1.7 Microcomputador

Consiste em um equipamento compacto com o objetivo de simular o


cérebro humano. Possui grande velocidade de processamento, alta capacidade
de armazenamento e alta confiabilidade nas atividades executadas. Pode ser
subdividido em algumas partes: Unidade Central de Processamento (UCP),
unidade de memória e unidade de entrada e saída (Gimenez, 2010).

1.8 Memória

Consiste no local onde são armazenados os dados, subdividido em


pequenas regiões chamadas células, compostas por uma quantidade de bits.
Normalmente os computadores utilizam células de 8 bits, mas existem
computadores de gerações passadas que usavam células de tamanho igual a 16,
32 ou até 60 bits (Machado, 2010). As memórias podem ser classificadas como
principais e secundárias. A memória principal armazena os programas que está
executando, ou memória RAM (Random Access Memory – memória de acesso
aleatório). As secundárias são memórias de grande porte que armazenam todos
os programas presentes no computador – pode-se considerar o disco rígido como
memória secundária.
3
TEMA 2 – PARTES DE UM MICROCOMPUTADOR

A eletrônica está presente na vida de todos na forma de dispositivos e


aparelhos usados em nosso dia a dia. Entretanto, os conceitos e ideias que
rondam esta área datam da década de 1940, com o surgimento do primeiro
transistor. Este dispositivo pode ser considerado uma chave digital, aberta ou
fechada dependendo da lógica adotada. O uso de diversos transistores nos
circuitos eletrônicos criou uma nova área, que constantemente evolui, chamada
microeletrônica.
O termo micro indica que a área lida com dispositivos de escalas
micrométricas (metros/106) de materiais semicondutores, como o silício e
germânio. Nesta tecnologia, os transistores são usados para montar arquiteturas
de circuitos mais complexos, como portas lógicas, flipflops, memórias etc.
Juntando todos estes circuitos e organizando-os, chega-se a um dispositivo muito
conhecido, o microprocessador.

2.1 Microprocessador

O microprocessador, ou Unidade de Processamento Central – UCP (em


inglês, CPU), é o cérebro dos aparelhos eletrônicos modernos, fazendo o controle
de todos os dispositivos no produto e recebendo comandos do usuário. Para isto,
o processador possui uma programação capaz de organizar todos os dados
recebidos e executar tarefas determinadas.
Os processadores possuem três funções principais (Gimenez, 2010):

1. Buscar o programa na memória: isto ocorre por meio de comandos de


leitura da memória, na qual o microprocessador busca o programa linha por
linha para ser executado.
2. Decodificação ou análise das instruções do programa: cada programa
consiste em um conjunto de instruções organizadas, de forma que
consigam atender um problema; a decodificação da instrução é entender
qual o seu significado e como foi utilizada no programa.
3. Execução da instrução: a execução da instrução que foi lida da memória;
pode ser de movimentação, lógica, aritmética ou salto. A execução de uma
instrução caracteriza o ciclo de execução, ou seja, para que o processador
execute uma instrução precisa realizar dois ciclos, o primeiro de
busca/decodificação e o segundo de execução.
4
Para compreender um pouco melhor o funcionamento de um
microprocessador, é interessante saber como ele é constituído:

Figura 1 – Partes de um microprocessador.

2.1.1 Unidade Lógica e Aritmética (ULA)

É responsável pela execução das instruções lógicas e aritméticas. Além


disso, é responsável pela condição do resultado: se é igual ou diferente de zero,
maior ou igual a um número ou menor ou igual a outro número, positivo ou
negativo etc. Os estados do resultado são registrados em alguns bits, que são
chamados de flags e podem ser consultados durante a execução do programa no
microcontrolador.

2.1.2 Registradores

Os registradores fazem parte do processador e possuem duas categorias


bem definidas: registradores de configuração e de propósito geral. Os primeiros
são usados para configurar o funcionamento do processador; dependendo do
valor que receberem, o processador poderá ou não executar de determinada
forma. Já os registradores de propósito geral são usados para armazenar dados
na execução do programa.
Uma característica dos registradores é que possuem uma quantidade de
bits, por exemplo, pode-se dizer que o registrador tem 8 bits, 16 bits ou 32 bits.
Esta característica dependerá da arquitetura do processador.

5
2.1.2 Unidade de controle (UC)

Responsável pelo controle de dados no microprocessador, nesta unidade


é realizada a execução do programa (firmware) que foi armazenado no dispositivo.
Gerencia os sinais enviados para dispositivos externos, como a memória
(operação de leitura), e dispositivos de entrada e saída (operação de escrita).

2.2 Unidade de memória

Para que o processador consiga executar as instruções, os dados precisam


ser armazenados. Esta unidade é composta por duas partes:

Figura 2 – Unidade de memória

2.2.1 Memória de armazenamento de programa

Esta parte da memória é denominada não volátil, ou seja, os dados são


mantidos na memória mesmo sem alimentação de corrente elétrica. Esta memória
faz todo o controle do computador em nível de hardware e operacionalmente. Para
isto é necessário que o programador que o criou tenha conhecimento do
funcionamento do hardware e o conjunto de instruções do processador utilizado.
É essencial que o computador possua este programa armazenado e em
pleno funcionamento. Ele se encontra em memórias chamadas ROM (Read Only
Memory, ou memória de apenas leitura), EEPROM (Electrical, Erasable and
Programable, Read Only Memory) ou Flash, sendo normalmente apenas de
leitura, o que implica em não realizar operações de escrita (Gimenez, 2010).
6
2.2.2 Memória de armazenamento de dados

Armazena os dados do programa que está sendo executado no


microcomputador, guardando-os para que possam ser usados no decorrer do
programa. Esta memória permite operações de leitura e escrita, porém,
diferentemente da memória vista anteriormente, é volátil. Isto significa que os
dados armazenados só estarão presentes enquanto o hardware estiver
energizado. A memória utilizada para este caso é chamada RAM (Random Access
Memory), de acesso rápido, mas com tamanho limitado.

2.3 Unidade de entrada e saída (E/S)

Esta unidade faz o controle dos dados que chegam ao microcomputador


(entrada) e que saem (saída). Em outras palavras, é a unidade responsável pela
interface com o mundo externo.

2.3.1 Unidade de entrada

Faz o controle dos dados provenientes de outros dispositivos para o


microcomputador, que podem vir de dispositivos de armazenamento depois de
uma requisição de dados, teclado ou sensores. Normalmente há algum programa
esperando estes dados para tratá-los e utilizá-los.

2.3.2 Unidade de saída

É responsável por produzir uma resposta que um dispositivo externo ou até


mesmo o ser humano possa compreender. Uma saída de dados pode ser
compreendida como um led acendendo e apagando, um som sendo produzido por
um buzzer ou uma resposta em um display LCD.

TEMA 3 – PERIFÉRICOS DO MICROCONTROLADOR

Segundo Gimenez (2010), quando realizamos a integração de todas as


partes do microcomputador em um único circuito integrado temos um
microcontrolador, porém, com limitação de quantidade de memória. Este
dispositivo é usado para aplicações específicas, fazendo uso de alguns
periféricos, que serão apresentados a seguir:

7
3.1 Conversor analógico/digital

Grande parte dos sensores apresenta os dados em forma analógica, a qual


pode possuir qualquer valor de tensão entre o mínimo, normalmente 0 V, e o
máximo, no caso que iremos estudar, 5 V. A figura a seguir apresenta um exemplo
de resposta analógica:

Figura 3 – Sinal analógico

Fonte: <https://www.embarcados.com.br/sinal-analogico-x-sinal-digital/>.

A conversão ocorre primeiramente fazendo a medição do valor de tensão.


Em seguida, para converter este valor para digital, deve-se dividir os valores
possíveis de tensão pela quantidade de bits que é a precisão do conversor, no
caso do Arduino é 10 bits, ou seja, deve-se dividir o intervalo entre 0 e 5 V por
1024 (210).

3.2 Timers/contadores

São dispositivos utilizados para fazer contagem. Na configuração é


selecionada a forma que será realizada; caso seja a contagem a partir do clock
do microcontrolador, este é considerado um timer ou temporizador. Por outro lado,
se for selecionado que a contagem será a partir de sinais de entrada, trata-se de
um contador. Neste último caso, podemos exemplificar como uma contagem a
partir de um sensor de barreira em uma porta, contando a quantidade de pessoas
que passa por ela.
Os timers são dispositivos muito usados nas mais diversas aplicações pelo
fato de criarem uma noção exata de tempo. Esta característica pode parecer
simples, mas sem ela seria impossível desenvolver qualquer sistema preciso ou
até mesmo criar os sistemas operacionais utilizados nos computadores.

8
3.3 Interface serial

Diferentemente do que pode parecer, a interface serial ainda existe e é


muito utilizada na comunicação de dados, principalmente entre o dispositivo que
está sendo desenvolvido e o microcomputador. A única diferença é que agora a
serial é criada com base na interface USB.
Para compreender a comunicação serial, vamos ver como é realizada a
comunicação de dados. A figura a seguir ilustra este funcionamento:

Figura 4 – Comunicação de dados

Fonte: <https://learn.sparkfun.com/tutorials/serial-communication>.

A figura 4 mostra que, para transmitir dados, temos dois elementos:


transmissor, representado por TX, que é a origem da transmissão e que faz o
envio dos dados para o receptor, representado por RX. Este segundo elemento
apenas recebe os dados da transmissão. Perceba que a transmissão e a recepção
dos dados podem ser realizadas pelos dois lados, os quais representam o
microcontrolador e o microcomputador. Ainda na figura há a representação do
terra, que é o GND, referência para todos os sinais transmitidos.

TEMA 4 – FAMÍLIAS DE MICROCONTROLADORES

Entre os microcontroladores, há diversos modelos concorrentes entre si no


mercado de sistemas embarcados. Cada um destes processadores é
desenvolvido por determinado fabricante, o qual cria linhas de produtos que
podem ser usados para a solução dos mais diversos problemas. A seguir serão
apresentadas as principais famílias de microprocessadores.

9
4.1 Família x86

Esta é uma família de microprocessadores desenvolvida pela Intel.


Iniciou-se com os processadores 8086 e em seguida 8088, que foram usados pela
IBM para criar o computador pessoal IBM PC (Monteiro, 2010). Depois disto,
grandes empresas desenvolvedoras de software e hardware surgiram, produzindo
grande crescimento no mercado tecnológico. Os processadores desta época eram
de 16 bits, sendo o barramento de saída de 8 bits, e possuíam quatro registradores
de 16 bits, que poderiam ser divididos em dois de 8 bits cada.
Com o passar dos anos houve a criação de novas gerações de
processadores: 80286, 80386, 80486, sendo a maior evolução com estes dois
últimos, nos quais houve a mudança de 16 para 32 bits e grande aumento de
desempenho em relação aos anteriores. Porém, com o surgimento do Pentium ou
P5, um conjunto de modificações aumentou em grande escala seu desempenho,
chegando a ser o dobro do desempenho do 486. Isto se deve à arquitetura
superescalar: duas unidades de processamento de inteiros distintas, que se
assemelhava a dois 486 em paralelo. Além disto, houve melhoras no barramento,
como uso de 64 bits para o tamanho e aumento da frequência de operação.
Esta arquitetura ainda está em plena evolução, com seu aumento de
capacidade e execução de instruções até os dias atuais.

4.2 Família AVR

Estes microcontroladores são fabricados pela ATMEL e são conhecidos


pelo bom desempenho em relação aos processadores de outras famílias. Eles
conseguem executar uma instrução por ciclo de clock, ou seja, se tivermos um
processador AVR com um clock de 20 MHz, teremos uma velocidade de 20 MIPS
(milhões de instruções por segundo).
Além disso, esta família possui 8 bits e foi desenvolvida usando a
tecnologia RISC (Reduced Instruction Set Computer – computador com conjunto
de instruções reduzido), o que indica que são poucas as instruções suportadas
pelo microcontrolador, porém muito eficientes para a criação do programa.
A arquitetura destes circuitos integrados é baseada na arquitetura Harvard,
como mostrado na figura a seguir:

10
Figura 5 – Arquitetura Harvard

Fonte: <http://www.arnerobotics.com.br/eletronica/Microcontroladores_AVR_basico.htm>.

A arquitetura Harvard separa a memória de dados da memória de


programa; assim, um processador AVR pode usar um barramento para dados e
outro para programa, o que concede maior velocidade a esses processadores.

4.3 Família ARM

Esta arquitetura de processadores se difundiu em uma velocidade incrível,


pelo fato de possuir inúmeras vantagens: design simples, alta velocidade, grande
diversidade de modelos, fabricantes e softwares disponíveis. Ela popularizou o
uso de microcontroladores em dispositivos portáteis como telefones celulares,
MP3 players, videogames etc.
Estes processadores possuem 32 bits, arquitetura RISC e, como o próprio
nome já diz, ARM (Advanced RISC Machine – máquina RISC avançada). Têm
pequena quantidade de instruções, mas estas são executas rapidamente.
Um fato interessante é que o processador ARM pode ser fabricado por
qualquer licenciado pela ARM Limited: NXP, Atmel, Texas Instrument, Nintendo.

TEMA 5 – O ARDUINO

Segundo McRoberts (2011), o Arduino consiste em um sistema que pode


interagir com seu ambiente por meio de hardware e software. É uma plataforma
computacional programável, inventada pelos pesquisadores Massimo Banzi,
David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis, em 2005, com o
objetivo de desenvolver um dispositivo barato, funcional, fácil de programar e
acessível para estudantes desenvolverem suas capacidades de criar. Para isso,
foi adotado o princípio do hardware livre, ou seja, é possível modificar, melhorar
ou personalizar o Arduino por meio do hardware básico proposto.

11
A placa básica do Arduino, chamada UNO, é apresentada na figura 6. É
composta de um microcontrolador Atmel e circuitos para entrada e saída de
dados.

Figura 6 – Arduino UNO

Créditos: goodcat/Shutterstock.

Para complementar o uso do Arduino, é disponibilizado gratuitamente um


IDE (Integrated Development Environment, ou ambiente de desenvolvimento
integrado), que consiste em um ambiente de desenvolvimento no qual pode-se
criar programas para o Arduino. Para facilitar a introdução ao uso da ferramenta,
existem diversos programas-exemplos com instruções para testar e modificar.
Dependendo do projeto são necessários mais recursos de hardware ou
simplesmente mais portas de entrada e saída de dados. Assim, foram criados
outros modelos de placas como mostrado na figura a seguir:

Figura 7 – Tipos de placas do Arduino

Créditos: Sergey Privalov/Shutterstock.

12
Outra inovação do Arduino foi a criação dos chamados shields (escudo, em
português). Estes são placas de funcionalidades específicas, por exemplo:
sensores de gás, potenciômetros, infravermelho, relés e diversos outros que
podem ser usados apenas anexando ao projeto. A figura a seguir ilustra alguns
shields utilizados em projetos.

Figura 8 – Shields Arduino

Créditos: Paolo de Gasperis/Shutterstock.

13
REFERÊNCIAS

GIMENEZ, S. P. Microcontroladores 8051: teoria e prática. 1. ed. São Paulo:


Érica, 2010.

McROBERTS, M. Arduino básico. 1. ed. São Paulo: Novatec, 2011.

MONTEIRO, M. A. Introdução à organização de computadores. 5. ed. Rio de


Janeiro: LTC, 2010.

14

Você também pode gostar