Você está na página 1de 65

UNIVERSIDADE METODISTA DE ANGOLA

FACULDADE DE ENGENHARIA E ARQUITECTURA

MICROCONTROLADORES
5º Ano dos Cursos de Engenharia Mecatrónica / Industrial e Sistemas Eléctricos

Ano lectivo 2022/2023


CAP. 1 - INTRODUÇÃO
 1.1 Introdução aos microcontroladores
 1.2 Microcontroladores vs. microprocessadores
 1.3 Microcontroladores vs. microprocessadores
 1.4 Unidade de Memória
 1.5 Barramentos
 1.6 Unidade de Entrada/Saída
 1.7 Unidade Central de Processamento
 1.8 Comunicação Série
 1.9 Unidade de temporização
 1.10 Watchdog
 1.11 Conversor analógico /digital 2

 1.12 Arquitectura interna dos microcontroladores


1.1 INTRODUÇÃO AOS
MICROCONTROLADORES
Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Definir Computador
2. Citar os componentes básicos que constituem um computador
3. Identificar um Computador
4. Definir microprocessador
5. Definir microcontrolador
6. Citar pelo menos três aplicações dos microcontroladores
7. Citar pelo menos três marcas e dois fabricantes de microcontroladores
1.1.1 Conceito e constituição de computador
OBJECTIVOS
 Pode ser definido como um dispositivo electrónico programável, que se destina a receber e processar
dados para a realização de diversas operações.
 É basicamente constituído pelos seguintes componentes:

Portas de
C.P.U. Portas de Saída
entrada

Memórias
4
1.1.2 Tipos de computador
Os computadores Podem ser: OBJECTIVOS
 De propósito Geral: PC, Laptop, etc.
 De uso específico:
 Os computadores de uso específico controlam diversas funções em automóveis ou
electrodomésticos, no controlo de processo de fabricos industriais, em jogos electrónicos para
entretenimento, são usados em sistemas de navegação tais como os GPSs (Global Positioning
System – Sistema de Posicionamento Global).

5
1.1.3 Microprocessador (MPU)
OBJECTIVOS
 É um circuito integrado digital que pode ser programado com uma série de instruções para executar
diversas operações sobre os dados. Um microprocessador é a C.P.U. do computador. Ele pode realizar
operações lógicas e aritméticas, mover dados de um local para outro e tomar decisões baseadas em
certas instruções.
 Exemplo: 4004 (primeiro microprocessador) e 8085/8088

6
microprocessador 8085 microprocessador 4004
1.1.4 Microcontrolador (MCU)
OBJECTIVOS
 É um componente integrado que contém em único chip todos os circuitos necessários para realizar um sistema
digital completo e programável.
 Um microcontrolador é um sistema computacional completo, no qual estão incluídos internamente uma CPU,
memórias RAM, FLASH, EEPROM, pinos de I/O (Input/Output), além de outros periféricos internos, tais como,
osciladores, canal USB, interface serial assíncrona USART, módulos de temporização e conversores A/D, entre outros,
integrados em um mesmo componente (chip).

7
1.1.5 Aplicações dos microcontroladores
Os microcontroladores são usados em diversas aplicações, tomamos como exemplo: OBJECTIVOS
 Sistemas embarcados
 Automóveis
 Robótica
 Domótica
 Controlos de processos e máquinas

8
A imagem ao lado mostra N aplicações dos microcontroladores.
1.1.6 Marcas e Fabricantes de Microcontroladores  Propeller da Paralax
No mercado electrónico existe diversas marcas e fabricantes de
microcontroladores. Destacamos abaixo, as marcas mais famosas no mercado
Nacional:

 Cortex-M da ARM  PIC da Microchip

 8051 da Intel

 ESP32 da Espressif
 MSP430 da Texas  AVR da Microchip Systems
Instruments (criado pela Atmel)

9
1.2 MICROCONTROLADORES vs.
MICROPROCESSADOR

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Diferenciar microcontroladores de microprocessador
2. Comparar microcontroladores e microprocessador
1.2.1 Diferença entre Microcontroladores e Microprocessadores
APRESENTAÇÃO DA DISCIPLINA
 Um microcontrolador difere de um microprocessador em vários aspectos. Primeiro e o mais
importante, é a sua funcionalidade. Para que um microprocessador possa ser usado, outros
componentes devem-lhe ser adicionados, tais como memória e componentes para receber e enviar
dados.
 Em resumo, isso significa que o microprocessador é o verdadeiro coração do computador. Por outro
lado, o microcontrolador foi projectado para ter tudo num só. Nenhuns outros componentes externos
são necessários nas aplicações, uma vez que todos os periféricos necessários já estão contidos nele.
Assim, nós poupamos tempo e espaço na construção dos dispositivos.

11
1.2.2 Comparação entre Microcontroladores e Microprocessadores

Apresentamos abaixo, a comparação de algumas características dos microcontroladores e dos microprocessadores:

MICRONTROLADORES MICROPROCESSADOR
 Mais barato  Mais caros
 Menos velozes (operam na casa dos 2  Mais velozes (operam com frequências acima 2
KHz ou MHz) GHz)
 Consome menos energia  Consome mais energia
 Possuem muitos recursos internos  Dependem de outros circuitos periféricos
 Facilidade de programação  Programação mais complexa

12
1.3 MICROCONTROLADORES vs. PLACA DE
DESENVOLVIMENTO

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Conceituar placa de desenvolvimento
2. Identificar placa de desenvolvimento
3. Comparar microcontroladores e placa de desenvolvimento
1.3.1 Conceito de placa de desenvolvimento (plataforma de prototipagem)
 Placas de desenvolvimento são plataformas de hardware montadas com o intuito de facilitar a realização
de projectos e incentivar o aprendizado de uma determinada tecnologia. Amplamente presente na cultura
maker, placas de desenvolvimento têm aplicação nas áreas de Educação em Ciência e Tecnologia, em
projectos de Engenharia e Computação, em prototipagem electrónica e montagem de sistemas
personalizados.
1.3.2 Exemplos de placa de desenvolvimento
No mercado electrónico existe diversas marcas e fabricantes de placas de desenvolvimento. Destacamos abaixo, as
marcas mais famosas no mercado Nacional:
 Arduíno

14

Arduino Uno + Cabo USB Arduino Mega


 Microship PIC starter KIT

Microship PIC starter KIT + pickit 3 DM320004 (Microship PIC Ethernet starter KIT)
15
 NodeMCU
OBJECTIVOS

NodeMCU com ESP32 NodeMCU com ESP8266

16
 RASPBERRY PY
OBJECTIVOS

RASPBERRY PY sem capa RASPBERRY PY com capa

17
 MyRio
OBJECTIVOS

MyRio com capa MyRio sem capa


18
1.3.2 Comparação entre microcontrolador e placa de desenvolvimento

Apresentamos abaixo, a comparação de algumas características dos microcontroladores e das placas de


desenvolvimento:

MICRONTROLADORES PLACA DE DESENVOLVIMENTO

 Um único chip
 Placa com diversos componentes
 Precisa de gravador de programa
 Gravador normalmente incluído
 Requer domínio de electrónica analógica e
digital  Não requer um grande domínio de electrónica
analógica e digital
 Mais baratos
 Mais caros
 Programação mais complexa
 Facilidade de programação (em alguns tipos)

19
Tarefa
1. Define Computador.
2. Quais os componentes básicos que constituem um computador?
3. Define microprocessador.
4. Define microcontrolador.
5. Apresenta algumas aplicações dos microcontroladores.
6. Cita nome de algumas marcas de microcontroladores e seus fabricantes.
7. O PIC é um computador? Justifica a resposta.
8. O Arduíno é um computador? Justifica
9. Diferencia e compara microcontrolador de microprocessador.
10. Diferencia e compara microcontrolador de placa de desenvolvimento. 20
1.4 UNIDADE DE MEMÓRIA

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Definir memória
2. Reflectir sobre a necessidade do uso de memórias em microcontroladores
3. Classificar as memórias
4. Identificar os diversos tipos de memórias usada no microcontrolador PIC
1.4.1 Conceito de unidade de memória
OBJECTIVOS
 Memórias são dispositivos (circuito electrónico, parte do microcontrolador) que armazenam
informações. No caso de um sistema computacional, essa informação, assim como a memoria, pode ser
dividida em dois tipos: de PROGRAMA e de DADOS.

22
1.4.2 Tipos de memórias

A. Memórias de programa OBJECTIVOS


 Sua função é de armazenar o software (programa) a ser executado no sistema.
 Existem endereços de memória de programa com finalidade especifica, chamados de vectores, que são
endereços para onde o programa desvia quando ocorrem determinados eventos. Temos o vector de reset,
que e o endereço pelo qual o programa começa a ser executado e o vector de interrupções, que é para
onde o programa desvia quando ocorreu um pedido de interrupção.
Tipos de memórias de programa
 ROM – Read Only Memory (também chamado de ROM do tipo mascarado): Apenas de leitura, o seu
programa é gravado pelo fabricante, de forma permanente. Na família PIC eles são identificados pelo sufixo
“CR”.
 OTP ROM – One Time Programable ROM: ROM onde só se pode escrever o programa na memória uma
vez, eles vêm de fábrica “virgens”. Se houver necessidade de alterar o mesmo, terá de se fazer a gravação
em um novo chip. Na família PIC eles são identificados pelo sufixo “C”.
23
 UV EPROM – Ultra Violet Erasable Programable ROM: ROM que permite apagar o programa, usando luz ultravioleta.
O chip tem uma janela de vidro no topo do seu corpo, o que permite a passagem dos raios Ultra Violeta, que vão
apagar a memória. Na família PIC eles são identificados pelo sufixo “JW” ou “CL”. OBJECTIVOS

 FLASH: Este tipo de memória foi inventada pela INTEL nos anos 80. O seu conteúdo pode ser escrito/apagado
quase que infinitamente. Os microcontroladores com memória FLASH são muito úteis para aprendizagem,
investigação e desenvolvimento. Devido a sua popularidade, a maioria dos microcontroladores são fabricados com
este tipo de memória. Na família PIC eles são identificados pelo sufixo “F”.

24
B. Memórias de Dados
OBJECTIVOS
 É a memoria onde são armazenados os dados a serem processados pelo computador (as variáveis dos
programas e outras informações). Como esses dados são constantemente alterados, a memoria utilizada
para armazena-los é do tipo RAM. Como se trata de uma memoria volátil, quando a alimentação é cortada
esses dados são perdidos.
Tipos de Memórias de dados
 RAM – Random Access Memory: Este tipo de memória é volátil, o que significa que quando se desliga a
alimentação do chip, a sua informação desaparece. É usada para o armazenamento temporário de dados,
criados e usados durante a operação do microcontrolador.
 A memória RAM dos microcontroladores é utilizada essencialmente para abrigar os registradores internos
e é dividida em duas partes distintas: uma para abrigar os registradores de funções especiais (SFR) e
outra para abrigar os registradores de propósitos gerais (GPR).
Nota: Alguns microcontroladores disponibilizam também memorias EEPROM para armazenar dados que não
devem ser perdidos com a falta de energia.
 EEPROM – Electrical Erasable Programmable ROM: Rom programável, que se pode apagar
electricamente. O conteúdo desta memória pode ser mudado durante a operação, mas o seu conteúdo não
é perdido quando se desliga a alimentação do microcontrolador. Este tipo de memória é usado para guardar
25

valores, criados durante a operação, que devem ser permanentemente armazenados.


Tarefa
1. Define memória.
2. Qual a necessidade do uso de memórias em microcontroladores?
3. Classifica as memórias.
4. Apresenta dois exemplos de sistemas automáticos que necessitam do uso de memória EEPROM.
5. Dado as três imagens abaixo, identifica o tipo de memória de programa usado.

26
1.5 Barramento (BUS)

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Definir barramento
2. Reflectir sobre a necessidade do uso de barramentos
3. Classificar os barramentos
OBJECTIVOS
1.5.1 Conceitos e tipos de barramentos
As várias partes de um sistema computacional (CPU, memórias, dispositivos de entrada e saída) são ligadas
entre si através de barramentos, ou vias, que são ligações físicas de comunicação paralela entre os
componentes. São eles:
 Barramento de dados: pelo qual os dispositivos de I/O e memórias trocam dados com o processador.
 Barramento de endereços: permite ao processador “endereçar” qual dispositivo será acessado.
 Barramento de controle: indica se o acesso é de leitura ou escrita, se é feito a posição de memória
ou a I/O.
 Barramento de programa: por onde o processador recebe as instruções que compõe o programa.

28
OBJECTIVOS
 O tamanho do barramento de dados limita o tamanho dos dados que trafegam no sistema. Por isso é
comum classificar os sistema computacionais pelo tamanho do seu barramento, tendo então sistemas de
8 bits, 16 bits e 32 bits. Os microcontroladores são na sua maioria de 8 bits, apesar de existirem alguns
modelos de 16 e 32 bits.
 Já o tamanho do barramento de endereço nos informa qual a o quantidade máxima de endereços de
memória ou dispositivos de I/O que podem ser acessados. Por exemplo, um barramento de endereço de
10 bits permite acessar 210 = 1024 endereços.
 Todos os dispositivos de um sistema computacional fazem uso do barramento de dados para trafegar
informações. Para que o sistema funcione correctamente podemos apresentar o processo de forma
simplificada assim: o processador (que coordena o processo) escreve no barramento de endereços o
endereço do dispositivo a ser acessado. Através do barramento de controle ele informa ao dispositivo se
o acesso é de leitura ou escrita (a definição de leitura ou escrita de dispositivos sempre é feita pelo
ponto de vista do processador). No caso de um aceso de leitura o dispositivo escreve no barramento de
dados e a informação é lida pelo processador. No caso de um acesso de escrita, o processador envia
dados para o barramento de dados que são lidos pelo dispositivo acessado.
29
 Como os dispositivos de um sistema computacional usam o mesmo barramento de dados para trafegar
informações é preciso que, quando um dispositivo estiver escrevendo no barramento (portanto
OBJECTIVOS
aplicando níveis de tensão ao barramento) os demais dispositivos não causem conflito de dados. De
facto, todos os dispositivos presentes em um sistema computacional são capazes de ficar em estado de
“alta impedância” enquanto não forem acessados para leitura.

30
Tarefa
1. Define barramento.
2. Qual é a necessidade do uso de barramentos em microcontroladores?
3. Classifica os barramentos e fale sobre cada um deles.

31
1.6 UNIDADE DE ENTRADA/SAÍDA

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Definir unidade de entrada/saída
2. Reflectir sobre a necessidade da existência da unidade de entrada/saída
3. Identificar as limitações das portas de entrada e saída
4. Aplicar técnicas para reduzir as limitações das portas de I/O
1.6.1 Conceito de Unidade de Entrada/Saída

OBJECTIVOS
 São responsáveis por realizar a interface do processador com o “mundo externo”. É através deles que
um sistema computacional adquire dados externos e aciona processos. São comumente chamados de
dispositivos de I/O (Input/Output – Entrada/Saída), portas de I/O (no inglês, ports) ou simplesmente
portas.

33
 A função das portas de saída é transferir ao “mundo externo” um dado que esteja presente no
barramento de dados. Para isso são utilizados latches (laços), pois permitem “carregar” dados
OBJECTIVOS
somente quando são accionados, retendo esses dados independente de haverem alterações em suas
entradas.
 As portas de entrada devem permitir a transferência de dados do “mundo externo” para o
barramento de dados quando accionados e em alta impedância no restante do tempo. Para tanto, são
tradicionalmente utilizados buffers com saída tri-state para essa função.
 É importante ter muito cuidado com os valores e os tipos de tensão e/ou corrente que podem ser
introduzidos e recebidos das portas do microcontrolador, estes suportam em média 25mA de corrente a
uma tensão DC de 5V.

34
Tarefa
1. O que é uma unidade de entrada/saída?
2. É possível ligar directamente as portas de um microcontrolador um motor DC que tem uma tensão e
corrente estipulada de 5 V e 1,28 A? Justifica.
3. É possível ligar directamente as portas de um microcontrolador um motor AC que tem uma tensão e
corrente estipulada de 5 V e 25 mA? Justifica.
4. É possível ligar directamente as portas de um microcontrolador um termostato que tem uma tensão de
saída de 9 V? Justifica.

35
1.7 UNIDADE CENTRAL DE PROCESSAMENTO

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Definir unidade central de processamento
2. Indicar e explicar a função dos principais componentes que constituem a CPU
3. Explicar o funcionamento da CPU
1.7.1. Conceito e constituição da CPU OBJECTIVOS
 CPU (Central Processing Unit – Unidade
Central de Processamento) ou processador é
parte principal de um sistema computacional.
É comum se referir à CPU dos
microcontroladores como core (núcleo). Sua
função é executar as instruções do programa
e processar dados. Para tanto ela controla
todas as demais partes do sistema e envia ou
recebe dados dessas partes. Ela também é
capaz de interpretar e colocar em execução
as instruções que compõe o programa e
realizar operações lógicas e aritméticas.
 Genericamente um processador é organizado
conforme o diagrama em blocos da figura ao
lado.
37
1.7.2. Funcionamento da CPU
OBJECTIVOS
 Os nomes de cada bloco estão em inglês no diagrama para facilitar a identificação desses blocos nos
manuais de microcontroladores e microprocessadores, que comumente são escritos nessa língua. Os
blocos pontilhados podem ou não estar presentes. As vias em amarelo representam o barramento de
dados interno do processador, que é ligado ao barramento de dados do sistema. As vias em verde são
outras vias de dados e sinais de controle.
 O principal bloco de um processador é o decodificador de instruções (Instructiuon Decoder).
Usando a analogia entre um sistema computacional e um instrumento musical, o decodificador de
instruções pode ser comparado ao músico, que age sobre o instrumento (hardware) executando a
música (software).
 Esse bloco é composto por um decodificador e um contador. Tal decodificador pode ser visto como um
livro de receitas culinárias. No livro, cada página contém uma receita e dentro de cada receita há os
passos para sua execução. De modo análogo, cada instrução do processador é como o endereço de uma
“página” onde está a sequência de accionamento dos sinais de controles (internos e externos ao
processador) que permitem a execução da instrução. O contador existente é responsável por fazer com
que os passos para a execução de uma instrução sejam executados em sequência. Cada modelo 38de
processador possui um conjunto, ou set, de instruções que pode executar.
 O barramento de controle interno (Internal Control) permite ao decodificador de instruções
controlar os blocos internos do processador, enquanto o barramento de controle externo (External
OBJECTIVOS
Control) tem a função de indicar se o acesso é de leitura ou escrita, se é em memória ou dispositivos de
I/O.
 O programa armazenado na memória é uma sequência de instruções. Podemos então supor que para
endereçar correctamente essas instruções deveria haver um contador. Ele existe e é chamado Contador
de Programa ou PC (Program Counter). A cada instrução iniciada o PC é incrementado. Portanto ele
aponta a próxima instrução, isto é, contém o endereço da próxima instrução a ser executada. A saída
desse contador é ligada a um registro (Program Addressing) que é carregado ao final de cada instrução
com o endereço da próxima instrução. A saída do registro Program Addressing está ligada ao barramento
de endereços da memória de programa.
 Quando a CPU é resetada, o PC é automaticamente carregado com o valor do vector de reset. Durante
a execução do programa, um valor pode ser carregado no PC. Isso ocorre para desviar o fluxo do
programa. Existem instruções que realizam essa alteração de fluxo, que pode ser de dois tipos: desvio ou
chamada.
 Quando ocorre um desvio o conteúdo do PC é alterado para que ele passe a executar o programa a
partir de outro ponto. 39
OBJECTIVOS
 Na execução de uma chamada o fluxo do programa também é desviado para um determinado ponto
para executar um trecho do programa, mas nesse caso ele deve retornar ao ponto do programa onde
ocorreu o desvio (mais precisamente à primeira instrução após a instrução de chamada). Isso permite
executar uma sub-rotina, conceito que será discutido quando tratarmos do software.
 Em uma chamada o endereço de retorno deve ser armazenado em algum lugar, caso contrário não
seria possível retornar ao ponto onde a chamada ocorreu. Esse lugar é chamado de pilha (stack). O nome
pilha se deve a seu funcionamento, que é semelhante a uma pilha de pratos: como pode haver várias
chamadas consecutivas sem que haja retorno, os endereços de retorno são armazenados “uns sobre os
outros”. Quando ocorre uma instrução de retorno (que é o que faz o programa retornar da chamada),
o programa volta para o último endereço guardado, e assim sucessivamente até que a pilha esteja vazia. A
pilha é então uma porção de memória onde podem ser armazenados os endereços de retorno.
 Para indicar a próxima posição livre na pilha existe um registro (na verdade um contador) chamado
ponteiro da pilha (Stack Pointer) que aponta o topo. Esse registro é incrementado cada vez que um
novo endereço de retorno é armazenado na pilha e decrementado quando ocorre um retorno.
40
 Uma vez determinado o endereço, seu conteúdo é lido e armazenado em um registro chamado registro de
instrução (Instruction Register). Desse registro, parte da instrução vai para o decodificador de instruções e
OBJECTIVOS
parte pode ir para a ALU e/ou parte para o registro de endereçamento de dados (Data Addressing). Para
entender o porque disso, devemos ter em mente que uma instrução nada mais é que uma palavra binária. Parte
dela, que é efectivamente a instrução, indica ao decodificador de instruções qual a sequência de acções deve
ser executada (qual a “página” do decodificador de instruções). O restante constitui os operandos da instrução,
ou seja, os dados a serem processados. Esses dados podem ser constantes ou endereços de dados variáveis na
memória RAM. Conforme sua natureza e a instrução a ser executada eles tem um destino ou outro.
 A unidade lógico-aritmética ou ALU (Aritmetic and Lógic Unit) é o circuito responsável pelos cálculos em
um processador. Como próprio nome diz, ela é responsável pela realização de operações lógicas, (E, OU, OU-
exclusivo, deslocamentos, rotações, complemento), e aritméticas (incremento, decremento, adição, subtracção,
multiplicação, e divisão). Os processos de divisão e multiplicação são feitos com a ALU utilizando sequências
somas e subtracções, o que efectivamente o que a ALU é capaz de fazer.
 A ALU trabalha juntamente com dois registros especiais: o Acumulador (Accumulator) e o registro de
estado de operações aritméticas (Status). É comum se referir ao acumulador simplesmente como Acc ou, no
caso dos PICs, como W (Worker – Trabalhador ). O acumulador quase sempre está envolvido nas operações
realizadas pela ALU. Ele pode ser um dos operandos, pode ser onde se armazena o resultado ou pode ser as
duas coisas. Há também microcontroladores onde qualquer transferência de dados entre dois endereços da
RAM passa pelo acumulador.
41
OBJECTIVOS
 Quanto ao registro de status, sua função é indicar resultados notáveis das operações matemáticas. Esses resultados
são indicados por flags, que são bits desse registro. Através da análise dos flags é possível saber, dentre outras coisas,
se uma operação resultou em zero; se houve estouro da capacidade de armazenamento (overflow), que acontece
quando um resultado é maior que o máximo valor possível de ser representado pelo sistema; se o resultado de uma
operação aritmética é negativo ou positivo. Existe uma interacção do registro status com o decodificador de
instruções, pois através da análise de seus flags é possível realizar instruções de testes.
 Para acessar a memória de dados e os periféricos existe um registro, que em nosso sistema é chamado de
endereçamento de dados (Data Addressing) que pode receber valores de duas formas. A primeira é directamente
de parte da instrução. Nesse caso se está fazendo referência a endereços da RAM conhecidos e fixos, pois são
carregados valores constantes existentes no programa. Esse modo é chamado endereçamento directo.
 Em muitos casos é necessário fazer referências a endereços variáveis. Isso é feito carregando o registro de
endereçamento com dados provenientes de um outro registro, o registro de endereçamento indirecto (Indirect
Addressig). Como qualquer outro registro, ele pode ser carregado com um valor, constante ou proveniente de uma
variável, pode ser incrementado, decrementado ou participar que qualquer operação lógico-aritmética. Sua função é
semelhante a dos ponteiros em linguagens de alto nível.

42
 Em muitos casos é necessário fazer referências a endereços variáveis. Isso é feito carregando o registro
OBJECTIVOS
de endereçamento com dados provenientes de um outro registro, o registro de endereçamento
indirecto (Indirect Addressig). Como qualquer outro registro, ele pode ser carregado com um valor,
constante ou proveniente de uma variável, pode ser incrementado, decrementado ou participar que
qualquer operação lógico-aritmética. Sua função é semelhante a dos ponteiros em linguagens de alto nível.
 Todo o sistema computacional trabalha sincronizado com um mesmo sinal de clock. Devemos lembrar
que esse clock é o que faz o decodificador de instruções passar de uma instrução para a outra, e tudo o
mais deve estar sincronizado com ele, senão haveria o caos. Para gerar esse sinal de clock é necessário
um oscilador. Nos microcontroladores esse oscilador já faz parte do componente
 Independente da forma como o clock é gerado, esse sinal é aplicado a CPU e aos periféricos. É comum
que a frequência do clock dos periféricos seja menor que a da CPU. Para tanto são utilizados divisores de
frequência
 Outro ponto importante é o reset. Além do reset que ocorre quando o sistema é ligado, chamado de
Power-on reset, os microcontroladores apresentam várias outras fontes de reset. Esses resets são
protecções do sistema.
43
1.7.3. Síntese genérica de operação de uma CPU
1. Ao iniciar um programa, o contador de programa aponta para o primeiro endereço na memória de programa.
2. Neste endereço começa o programa. OBJECTIVOS
3. O registrador de instrução armazena o dado guardado neste endereço. Este dado é composto da instrução e do operando. O
operando pode ser proveniente da memória de programa ou da memória RAM.
4. O decodificador de instrução recebe a instrução do registrador de instrução.
5. A instrução corresponde a uma sequência de passos programados em uma ROM, o chamado microcódigo.
6. Um contador dentro do descodificador de instrução varre essa sequência de passos.
7. O decodificador de instrução começa então a accionar os dispositivos dentro ou fora da CPU através dos barramentos de
dados, controle e endereço.
8. A partir desse ponto os dispositivos podem ser accionados nas mais diversas sequências de operação dependendo da
necessidade de processamento imposta pelo código, por exemplo:
 O contador de programa aponta para o próximo endereço de memória de programa onde pode estar o valor de uma instrução com
operando.A memória de programa é habilitada e esse valor é passado do para a ALU através do registro de instrução.
 O contador de programa aponta para o próximo endereço na memória de dados. A memória de dados é habilitada e o valor armazenado
nesse endereço passa para o acumulador.
 A ALU opera aritmeticamente esses dois dados, sinaliza para o registrador de estados qual foi e estado da operação e disponibiliza o
resultado em sua saída.
 Uma memória ou um dispositivo de saída pode ser habilitado e o resultado será armazenado em um desses dispositivos.
44
Em resumo sempre ocorre um processo de BUSCA e EXECUÇÃO da instrução. A busca se refere a localização das instruções e dos operandos
na memória e a execução se refere ao accionamento de dispositivos em sequência para conseguir o resultado desejado.
Tarefa
1. Define unidade central de processamento.
2. Indica e explica a função dos principais componentes que constituem a CPU.
3. Explicar o funcionamento da CPU.

45
1.8 COMUNICAÇÃO SÉRIE

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Reflectir sobre a necessidade do uso da comunicação serial
2. Citar e caracterizar pelo menos três tipos de protocolos de comunicação serial
3. Citar os factores importantes para selecção dos protocolos ou sistemas de comunicação.
1.8.1. Conceito de comunicação série
OBJECTIVOS
 As ligações entre os componentes internos do microcontroladores são feitas de forma paralelas, no
entanto, em outros casos em que há necessidade de estabelecer comunicações entre dois dispositivos
distantes, não é viável utilizar comunicações paralelas. Nestas situações a comunicação série é a melhor
solução.
 Hoje em dia, a maior parte dos microcontroladores têm dentro, já de fabrica, variados sistemas para
comunicação série. Quais deste usar, depende de muitos factores, os quais mais importantes são:
 Com quantos dispositivos, o microcontrolador tem de trocar informação?
 Com que velocidade tem que ser feita a troca de dados?
 Qual é a distância entre dispositivos?
 É necessário enviar e receber dados simultaneamente?
 Um dos mais importantes pontos a considerar na comunicação série, é o protocolo.
 O protocolo é o conjunto de regras que devem ser obedecidos, de maneira a que os dispositivos possam
correctamente interpretar os dados que trocam entre si. 47
1.8.2.Tipos de sistemas de comunicação série
Os sistemas de comunicação série mais usados em microcontroladores são: OBJECTIVOS
 I2C (Inter Integrated Circuit) é um sistema usado quando a distância entre microcontroladores e
periféricos é curta (normalmente o emissor e o receptor estão na mesma placa de circuito impresso). A
ligação é feita com dois condutores: um para transferência de dados, e o outro para o sinal de relógio
(sincronização). Como se pode ver na figura, um dos dispositivos é sempre o mestre. Faz o endereçamento de
um chip escravo, antes da comunicação iniciar. Desta maneira, um microcontrolador pode comunicar com 112
dispositivos diferentes.
 Uma aplicação comum é na comunicação entre microcontrolador e o módulo I2C para LCD.
 O baud rate é normalmente de 100 kbit/s no modo normal e 10 kb/s no modo lento. A distância máxima, sem
ajuda, entre dispositivos que se comunicam por I2C, está limitada a poucos metros.

48
 SPI (Serial Peripheral Interface Bus) é um sistema de comunicação série, que usa até quatro
OBJECTIVOS
condutores: um para receber dados, outro para enviar dados, um para relógio, e em alternativa outro para
escolher com qual dispositivo o mestre vai comunicar. É uma ligação Full-Duplex, o que significa que o
envio e a recepção podem ser feitas simultaneamente. O baud rate máximo é superior a uma ligação I2C.
 É muito utilizado na comunicação entre microcontroladores e alguns sensores ou módulos (módulo RTC,
Leitor de RFID, etc.).

49
 UART (Universal Asynchronous Receiver/Transmiter) é uma ligação assíncrona, o que significa
OBJECTIVOS
que o sinal de relógio não é usado. Como há uma linha de comunicação, ambos o receptor e emissor
trabalham a um baud rate pré-determinado, de maneira a manter sua sincronização. Esta é uma maneira
muito simples de transferir informação, pois representa a conversão de dados 8 bits em formato paralelo,
para formato série. O baud rate faz-se abaixo de 1 Mbit/s.
 É muito utilizado na comunicação entre microcontroladores, microcontrolador e computador,
microcontrolador e sensores, etc.

50
Tarefa
1. Qual é a necessidade do uso da comunicação serial?
2. Cita e fale sobre três tipos de protocolos de comunicação serial usado em microcontroladores.
3. Quais os factores importantes a ter em conta na selecção dos protocolos ou sistemas de
comunicação?

51
1.9 UNIDADE DE TEMPORIZAÇÃO

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Definir oscilador
2. Reflectir sobre a necessidade do uso de unidade de temporização
1.9.1 Oscilador
 Um oscilador é um circuito electrónico que produz um sinal electrónico repetitivo, frequentemente uma onda senoidal
ou uma onda quadrada, sem a necessidade de aplicação de um sinal externo.
 Pulsos dados pelo oscilador, possibilitam a operação síncrona de todos os circuitos do microcontrolador. O módulo
oscilador é normalmente configurado para usar um cristal de quartzo, ou ressonador cerâmico, para ter a sua oscilação
estabilizada. Se não houver, por parte da aplicação, necessidade de estabilidade da oscilação, então pode usar-se um
oscilador RC.
 As instruções não são executadas ao ritmo imposto pelo oscilador, mas algumas vezes mais lento. Isso acontece porque
cada instrução é executada em vários passos. Em alguns microcontroladores, o mesmo número de ciclos é necessário
para qualquer instrução, enquanto em outros, o tempo de execução não é o mesmo para todas as instruções. Se o
sistema usa um cristal de 20 MHz, o tempo de execução de uma instrução não é de 50 ns (1/20 MHz), mas de 200 ns,
400 ou 800 ns, dependendo do tipo de microcontrolador utilizado.

53
1.9.2 Temporizadores e contadores
 O microcontrolador usa, normalmente, cristal de quartzo para funcionar. Mesmo que não
seja a solução mais simples, há muitas razões para o fazer. Normalmente, a frequência do
oscilador é precisamente definida e muito estável, os pulsos originados têm sempre a
mesma largura, o que os faz ideais para medições de tempo. Estes osciladores são usados
em relógio de quartzo.
 Se é necessário medir o tempo entre dois eventos, é suficiente contar os pulsos enviados
pelo oscilador. Isto é exactamente o que o temporizador faz.
 Muitos programas usam estes cronómetros miniatura, que são SFR de 8 ou 16 bits, e o seu
conteúdo é automaticamente incrementada a cada pulso recebido. Quando um registo
chegar ao fim da contagem (255 ou 65535) uma interrupção é gerada.
 Se os temporizadores usam oscilador interno de quartzo, então é possível medir o tempo
entre dois eventos (se o valor do registo T1 no momento inicial, e T2 no momento final,
então o tempo passado é igual ao resultado da subtracção T2–T1).
 Se os temporizadores usam pulsos externos, então o temporizador é transformado em
contador.
54
1.10 WATCHDOG

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Conceituar watchdog timer
2. Reflectir sobre a necessidade da utilização do watchdog
3. Explicar o principio de funcionamento do watchdog
1.10.1 Conceito e aplicação do Watchdog Timer
 Um watchdog timer (cão de guarda) é um temporizador ligado a um oscilador RC, e totalmente independente do
microcontrolador. O que faz com que não possa ser desligado durante o funcionamento.
 Se o watchdog estiver ligado, escolha que apenas pode ser feita durante a programação física, cada vez que chega ao fim da sua
contagem, ocorre um reset do microcontrolador, e a execução do programa volta à primeira instrução. O objectivo é fazer
com que isto não aconteça, pelo uso de um instrução específica. Assim, se algo se descontrolar na execução do programa, o
microcontrolador poderá reiniciar-se, não correndo o risco de ficar empatado num ciclo infinito.
 Se as instruções que fazem o reset do watchdog, forem colocadas em sítios específicos do programa, então, o funcionamento
do watchdog não vai interferir com o programa principal. Se, por acaso, normalmente por ruídos na linha eléctrica, o programa
ficar bloqueado em alguma posição da qual não consegue sair, não vai ser feito o reset do watchdog e, quando este chegar ao
fim da contagem, o reset do microcontrolador acontece, iniciando o programa desde o inicio.
 O watchdog timer é muito utilizado em sistemas embarcados, para fazerem o reset do mesmo sempre que haver uma falha,
sempre que um processo exceder o tempo máximo, etc. É comum em smart tv, em smartphones, etc.

56
Tarefa
1. O que entendes por watchdog timer?
2. Qual é a necessidade da utilização do watchdog?
3. Explica o principio de funcionamento do watchdog.

57
1.11 CONVERSOR ANALÓGICO DIGITAL

Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Definir conversor A/D
2. Reflectir sobre a necessidade de um conversor A/D em microcontrolador
 Como os sinais dos periféricos são substancialmente diferentes daqueles que o microcontrolador pode entender
OBJECTIVOS
(zero e um), eles devem ser convertidos num formato que possa ser compreendido pelo microcontrolador. Um
conversor analógico para digital é um circuito que converte sinais contínuos, para números digitais. Este circuito é,
então, usado para converter um valor analógico, para um número binário, e enviá-lo à CPU para o processamento.
Posto por outras palavras, este módulo é usado para medir tensões presentes no pino. O resultado da medida é um
número de valor digital, usado e processado pelo programa.

59
1.12 ARQUITECTURA INTERNA DOS
MICROCONTROLADORES
Objectivos específicos
No final deste subtema os estudantes serão capazes de:
1. Classificar as estruturas internas os microcontroladores
2. Identificar os tipos de estruturas
1.12.1. Introdução

OBJECTIVOS
 Todos os microcontroladores moderno usam uma de duas arquitecturas: Harvard e Von-Neumann. Em suma, são
duas formas distintas de trocar a informação entre o CPU e a memória.
1.12.2.Arquitectura Von-Neumann
Os microcontroladores que usam esta tecnologia, só têm disponível
uma zona de memória, e um barramento de 8 bits que servem tanto
para dados como para programa. Como todos os dados são trocados,
usando estas 8 linhas, este barramento é sobrecarregado e a
comunicação extremamente lenta e ineficiente. O CPU pode ler uma
instrução, ou ler/escrever dados de/para a memória. Ambas as
situações ao mesmo tempo são impossíveis, pois as instruções
partilham o barramento com os dados.

61
1.12.3.Arquitectura Von-Neumann

OBJECTIVOS
 Os microcontroladores que usam esta arquitectura, dispõem de dois barramentos distintos. Um é de 8 bits e liga o
CPU à RAM. O outro tem várias linhas (12, 14 ou 16) e liga o CPU à ROM. Assim, o CPU pode ler uma instrução, ao
mesmo tempo que faz um acesso à memória de dados. Como todos os registos RAM são de 8 bits, todos os dados
trocados dentro do microcontrolador estão no mesmo formato. Adicionalmente, durante a escrita do software,
apenas 8 bits de dados são considerados. Por outras palavras, só se pode trabalhar com 8 bits de dados, no máximo.
Um programa escrito para estes microcontroladores, depois de compilado, vai ser guardado na ROM interna.
 No entanto, estas posições de memória não têm apenas 8 bits, mas sim 12, 14 ou 16. Os restantes 4, 6 ou 8 bits
representam a própria instrução, especificando ao CPU o que fazer com os dados de 8 bits.

62
 As vantagens deste modelo, são as seguintes: OBJECTIVOS
 Todos os dados são de 8 bits. Como o barramento usado para a leitura do programa tem 12, 14 ou
16 linhas, ambos as instruções e dados pode ser lidos simultaneamente. Assim, todas as instruções são
executadas em apenas um ciclo. A única excepção são as instruções de salto, que são executadas em
dois ciclos.
 Como a ROM e RAM são separadas, o CPU pode executar duas instruções simultaneamente.
Enquanto a leitura/escrita da RAM está a ser feita, a próxima instrução está a ser lida pelo outro
barramento.
 Nesta arquitectura, o barramento de programa é maior que um byte, o que possibilita que cada linha
de programa seja feita de instrução + dados. Por outras palavras: uma linha de programa - uma
instrução.

63
Tarefa
1. Como estão classificadas as estruturas internas os microcontroladores?
2. Qual é a diferença entre uma arquitectura e a outra?

64
Bibliografia
 [1] Pic_Engenharia_Apostila_SenacC_Bom
 [2] Microcontroladores_PIC_Teorias avançadas
 [3] Desbravando o PIC 8ª edição
 [4] Apostila_Microcontroladores_PIC_16F84_Assembly
 [5] Sistemas digitais fundamentos e aplicação 9ª edição
 [6] Apostila-programacao-PIC16-Exsto

65

Você também pode gostar