Você está na página 1de 27

1

MICROCONTROLADORES
HARDWARE

Prof. Mauricio Aula 03: Periféricos

Objetivos
2

Arquitetura de
um
Microcontrolador

Unidade Central de
Processamento

Periféricos
• Portas de Entrada e Saída
• Porta Serial
• Temporizador / Contador
• Conversor A/D

Diagrama de Blocos

MICRO-I
Prof. Mauricio 1
Arquitetura de um Microcontrolador
3

Arquitetura de um
Microcontrolador

Arquitetura de um Microcontrolador
4

UNIDADE CENTRAL DE PROCESSAMENTO


A CPU de um microcontrolador caracteriza-se por ser
otimizada para a manipulação de bits. Assim, o
conjunto de instruções inclui:
Movimentação de bits.
Ativação (set) e desativação de bits (clear).
Complemento de bit.
Teste de bit.

MICRO-I
Prof. Mauricio 2
Arquitetura de um Microcontrolador
5

Além dessas instruções a CPU também possui


instruções de uso geral, tais como:
Movimentação de dados.
Controle de fluxo do programa.
Operações lógicas e aritméticas.
Controle da CPU.

Arquitetura de um Microcontrolador
6

MICRO-I
Prof. Mauricio 3
Arquitetura de um Microcontrolador
7

Periféricos

Arquitetura de um Microcontrolador
8
Periféricos
Os periféricos são circuitos digitais incorporados ao CI do
microcontrolador, dentre os quais destacam-se:

E
Temporizadores Conversores
Portas de I/O Porta Serial ... T
/ Contadores A/D
C

MICRO-I
Prof. Mauricio 4
Arquitetura de um Microcontrolador
9
Periféricos

O acesso aos periféricos é


feito através dos pinos do
microcontrolador via hardware
e suas configurações são feitas
através de software.

Arquitetura de um Microcontrolador
10
Periféricos
PORTAS DE ENTRADA E SAÍDA
As portas de entrada e saída de um microcontrolador são a
interface com os componentes externos do sistema de
controle.
Geralmente são configuráveis bit-a-bit como entrada ou
saída.
Isso permite o seu uso para receber informações de sensores
bem como enviar comandos aos atuadores do processo a
ser controlado.
As portas de I/O são multiplexadas pois a maioria das
portas possuem mais do que uma função.

MICRO-I
Prof. Mauricio 5
Arquitetura de um Microcontrolador
11
Periféricos
Registradores comuns utilizados na programação C de
microcontroladores PIC.
TRISx: Configura Pinos para Sinais de Entrada e/ou Saída.
1→ Entrada
0→ Saída

PORTx: Configura Nível Lógico nos pinos de I/O.


1→ Nível Lógico Alto
0→ Nível Lógico Baixo

Sinais de Entrada: x → É a letra do


Botões em Geral, Chaves, Teclados, Sensores, etc. Port (A, B, C, D e E).
Sinais de Saída:
LEDs, Transistores (para controlar Motores, Relés, Contatores, Lâmpadas,
etc).

Arquitetura de um Microcontrolador
12
Periféricos
PORTAS DE ENTRADA E SAÍDA

MICRO-I
Prof. Mauricio 6
Arquitetura de um Microcontrolador
13
Periféricos
PORTAS DE ENTRADA E SAÍDA

Arquitetura de um Microcontrolador
14
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Registrador TRISB

Manipulação Bit a Bit

TRISB.RB1 = 1;
TRISB.RB3 = 0;
TRISB.RB6 = 1;

MICRO-I
Prof. Mauricio 7
Arquitetura de um Microcontrolador
15
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação Bit a Bit

PORTB.RB1 = 1;

Registrador PORTB
On Off

Arquitetura de um Microcontrolador
16
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação Bit a Bit

PORTB.RB1 = 1;
PORTB.RB3 = 1;

On Off

MICRO-I
Prof. Mauricio 8
Arquitetura de um Microcontrolador
17
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 0;

On Off

Arquitetura de um Microcontrolador
18
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 255;

On Off

MICRO-I
Prof. Mauricio 9
Arquitetura de um Microcontrolador
19
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 0x0F;

On Off

Arquitetura de um Microcontrolador
20
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 0b01010101;

On Off

MICRO-I
Prof. Mauricio 10
Arquitetura de um Microcontrolador
21
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 0b00110000;

On Off

Arquitetura de um Microcontrolador
22
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 0x35;

On Off

MICRO-I
Prof. Mauricio 11
Arquitetura de um Microcontrolador
23
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação Bit a Bit

PORTB.RB2 = 1;
PORTB.RB5 = 1;

On Off

Arquitetura de um Microcontrolador
24
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 0;

On Off

MICRO-I
Prof. Mauricio 12
Arquitetura de um Microcontrolador
25
Periféricos
Manipulando os pinos de I/O do microcontrolador.

ERRO
Manipulação do Byte COMUM

PORTB = 1;

On Off

Arquitetura de um Microcontrolador
26
Periféricos
Manipulando os pinos de I/O do microcontrolador.

Manipulação do Byte

PORTB = 1;

CORRETO

On Off

MICRO-I
Prof. Mauricio 13
Arquitetura de um Microcontrolador
27
Periféricos
PORTAS DE ENTRADA E SAÍDA

Arquitetura de um Microcontrolador
28
Periféricos
Circuitos de Saída de Dados

Barra Resistiva
de 330Ω

Modo Catodo Comum Modo Anodo Comum

MICRO-I
Prof. Mauricio 14
Arquitetura de um Microcontrolador
29
Periféricos
Circuitos de Entrada de Dados

Barra Resistiva
de 10KΩ

Modo Resistor de Pull-Up Modo de Varredura


(linhas x colunas)

Arquitetura de um Microcontrolador
30
Periféricos
Circuitos de Entrada de Dados

Modo Resistor de Pull-Up

MICRO-I
Prof. Mauricio 15
Arquitetura de um Microcontrolador
31
Periféricos
PORTA SERIAL
A porta serial transmite e recebe a informação bit-a-bit, permitindo a
conexão do sistema de controle com:
Outros sistemas de controle.
Sistemas supervisórios.
Periféricos remotos.
Atuadores remotos.
Os tipos mais usuais de portas seriais encontradas nos microcontroladores
são:
Assíncronas.
Síncronas (SPI e I2C). Estas mais utilizadas para a interconexão de CI’s.

Arquitetura de um Microcontrolador
32
Periféricos
PORTA SERIAL

MICRO-I
Prof. Mauricio 16
Arquitetura de um Microcontrolador
33
Periféricos
TEMPORIZADOR / CONTADOR
Estes periféricos possibilitam a temporização e a contagem de
eventos que são elementos essenciais à grande maioria dos
sistemas de controle.
Os temporizadores nada mais são do que contadores que
utilizam o próprio clock da CPU. Além disso, esses dispositivos
possuem capacidade para interromper a CPU quando sua
contagem máxima é ultrapassada (transbordo).
Existem vários modos de operação dos temporizadores /
contadores permitindo aplicações tais como:
Registrador de captura.
Gerador de baudrate.
Gerador PWM.

Arquitetura de um Microcontrolador
34
Periféricos
TEMPORIZADOR / CONTADOR

MICRO-I
Prof. Mauricio 17
Arquitetura de um Microcontrolador
35
Periféricos
CONVERSOR A/D
Este periférico é encontrado num grande número de
microcontroladores.
O conversor A/D é um dispositivo capaz de converter sinais
analógicos em informação digital.
O ADC mais comumente encontrado nos microcontroladores
é do tipo SAR (Sucessive Approximation Register) com
resolução de 8 a 12 bits.
Alguns fabricantes possuem microcontroladores com alta
resolução (16 bits) e tecnologia Delta- Sigma.

Arquitetura de um Microcontrolador
36
Periféricos
CONVERSOR A/D

Sistemas Analógicos

Exemplos:

Sensores de
Temperatura,
Luminosidade, etc.
Microfone.
Sinal Alternado, etc.

MICRO-I
Prof. Mauricio 18
Arquitetura de um Microcontrolador
37
Periféricos
CONVERSOR A/D

Clock
SAR
Entrada Registrador de
Analógica
- Aproximação
Ve
Sucessiva
+ d7
Vd
d6
d5
Saída
...
.
. ... Digital
.
d0

Conversor D/A

Arquitetura de um Microcontrolador
38
Periféricos
CONVERSOR A/D

MICRO-I
Prof. Mauricio 19
Arquitetura de um Microcontrolador
39
Diagrama de Blocos

Diagrama PIC
de Blocos 16F877A

Diagrama
de Blocos:
PIC
16F877A

MICRO-I
Prof. Mauricio 20
Diagrama
de Blocos:
PIC
16F877A

33 Portas de I/O

Diagrama
de Blocos:
PIC
16F877A

MICRO-I
Prof. Mauricio 21
Arquitetura de um Microcontrolador
43
Diagrama de Blocos – 16F877A

Analisando Códigos Fonte em C


44

Analisando Códigos
Fonte em C

MICRO-I
Prof. Mauricio 22
Programação em C
45

Estrutura Básica de um código fonte em C:


void main(){

ADCON1 = 7; //Configura pinos analógicos para digitais.


TRISB = 0b11111111 //Configura pinos de I/O do PortB como Entrada.
PORTB = 255; //Coloca nível lógico alto no PortB (Ligações com PULL-UP). SETUP
TRISD = 0b00000000 //Configura pinos de I/O do PortD como Saída.
PORTD = 0; //Coloca nível lógico baixo no PortD.

while(1){ //Loop Infinito

if(portb.rb0 == 0) portd = 240; //Nibble High do portd em nível lógico alto.


if(portb.rb1 == 0) portd = 0; //Nível lógico baixo no portd.
portd.rd0 = 1; //Nível lógico alto no pino rd0.
LOOP
delay_ms(500); //Aguarda 500ms.
portd.rd0 = 0; //Nível lógico baixo no pino rd0. INFINITO
delay_ms(500); //Aguarda 500ms.

} //Fecha laço Loop Infinito

} //Fecha Bloco Principal – void main

Analisando Códigos Fonte em C


46
Código 01
Descrição Narrativa Fluxograma

Ao ligar o Microcontrolador o LED1 liga durante um INÍCIO


segundo e desliga durante um segundo, repetindo
este ciclo infinitamente.
Liga LED1

Circuito Elétrico
Aguarda 1
segundo

Desliga LED1

Aguarda 1
segundo

MICRO-I
Prof. Mauricio 23
Analisando Códigos Fonte em C
47
Código 01
Código Fonte em Linguagem C

//***** Pisca-Pisca *****


/* Este programa tem por objetivo acender e apagar o led1 conectado no pino RD0 do
PIC em intervalos de 1 segundo aproximadamente. */
void main()
{
TRISD = 0; //define PORTD como saída.
PORTD = 0; //coloca nível lógico 0 em todos os pinos do PORTD.

while(1)
{
PORTD.RD0 = 1; // Coloca pino RD0 em 1 – LED1 Ligado.
Delay_ms(1000); // Aguarda 1000 ms (milisegundos).
PORTD.RD0 = 0; // Coloca pino RD0 em 0 – LED1 Desligado.
Delay_ms(1000); // Aguarda 1000 ms (milissegundos).
}
}

Analisando Códigos Fonte em C


48
Código 02
Descrição Narrativa Circuito Elétrico

Enquanto o botão CH1 estiver acionado mantenha o


LED1 aceso. Se o botão CH1 não estiver acionado
mantenha o LED1 apagado.

Fluxograma
INÍCIO

Não O Botão Sim


CH1 está
acionado?
Apague o Acenda o
LED1. LED1.

MICRO-I
Prof. Mauricio 24
Analisando Códigos Fonte em C
49
Código 02
Código Fonte em Linguagem C

//Acionamento de Tecla
/* Ao acionar o botão CH1, o LED1 ACENDE. Ao desacionar o botão CH1, o LED1 APAGA.
O botão CH1 está ligado no pino 34 (RB1) e o LED1 está ligado no pino 19 (RD0)*/
void main()
{
adcon1 = 0x07; //Configura pinos analógicos para I/O digital.
trisd = 0; //Configura PORTD como saída.
portd = 0; //LEDS desligados.
trisb.rb1 = 1; //Configura a tecla CH1 (RB1) como entrada.
portb.rb1 = 1; //Mantenho o pino RB1 nível 1através do pull-up.

while(1)
{
if (portb.rb1 == 0) //Se a tecla CH1 for pressionada, então...
portd.rd0 = 1; //Acende LED1
else
portd.rd0 = 0; //Apaga LED1
}
}

Projetos Microcontrolados
50

Projetos Microcontrolados

MICRO-I
Prof. Mauricio 25
Projetos – Etapa: 1
51

• PIC 16F877A.
• Cristal de 8 MHz.
Projete o circuito
elétrico de um • 4 Botões ligados no Portb com
microcontrolador resistores de Pull-Up (B0, B1,
com as seguintes B2 e B3).
características: • 8 Leds ligados no Portd no
modo catodo comum (L0, L1,
L2, L3, L4, L5, L6 e L7).

Projetos – Etapa: 2
52
Utilizando o circuito elétrico desenvolvido na Etapa 1, para as
descrições narrativas abaixo, desenvolva o fluxograma e o código
fonte em linguagem C:

• Enquanto o botão B0 estiver acionado mantenha o L0 aceso. Se o botão


a) B0 não estiver acionado mantenha o L0 apagado.
• Enquanto o botão B1 estiver acionado mantenha o L1 aceso. Se o botão
B1 não estiver acionado mantenha o L1 apagado.

• Ao acionar o botão B2, os LEDs L4 e L6 acendem e apagam


b) alternadamente e indefinidamente por um tempo de 200ms cada LED.

• Ao pressionar o Botão B0 os Leds do “nibble low” do Portd deverão ligar.


Ao soltar o Botão B0 os Leds deverão apagar.
c)
• Ao pressionar o Botão B1, os Leds ímpares do Portd deverão ligar. Ao
soltar o Botão B1 os Leds deverão desligar.
• Ao pressionar o Botão B2, os Leds pares do Portd deverão ligar. Ao
soltar o Botão B2 os Leds deverão desligar.

MICRO-I
Prof. Mauricio 26
Referências
53

Microcontroladores PIC – • Família PIC18F – Microchip Baseado no Compilador mikroC PRO for PIC
Programação Embarcada em C
Linguagem C Embarcada para • Microgenios
Microcontroladores
Introdução à Programação de • www.pictronics.com.br
Microcontroladores

Desbravando o PIC • David José de Souza – Ed. Érica

Microcontroladores PIC – • Fábio Pereira – Ed. Érica


Programação em C
Arquitetura de um • Apostila Prof. Dimas (Etec GV)
Microcontrolador

Microchip™ PIC16F87XA • Data Sheet - 28/40/44-Pin Enhanced Flash Microcontrollers

Curso de Microcontroladores • Igo Rafael Alves Silva e Manoel Alexandre Vieira

Dúvidas
54

Terminamos!!!
Alguma Dúvida ???

MICRO-I
Prof. Mauricio 27

Você também pode gostar