Sunteți pe pagina 1din 51

MICROCONTROLADORES

LARISSA PIMENTA
LARISSAJPIMENTA@GMAIL.COM
O QUE SÃO MICROCONTROLADORES

• São componentes eletrônicos dotados de inteligência programável. Esta inteligência


controla a ação de periféricos de saída do microcontrolador executando uma ação
lógica a partir do estado de seus periféricos de entrada.
• Periféricos
• Entrada Saída
• Sensores LEDs
• Botões Telas
• Teclados Mostradores
O QUE SÃO MICROCONTROLADORES

• Características principais
• Capacidade de executar instruções armazenadas em uma memoria e executar tarefas
definidas.
• Capacidade de acessar memoria externa e fazer leitura e escrita de dados.
MICROCONTROLADOR X MICROPROCESSADOR

• O Microprocessador precisa de periféricos para que funcione. Ele funciona


como se fosse apenas o “coração”, a CPU, da operação
• Já o microcontrolador foi projetado para ter tudo num só. Não é necessário
acoplar nenhum componente para que ele execute funções.
MICROCONTROLADOR X MICROPROCESSADOR
TIPOS DE MEMÓRIA

• ROM
• É o tipo de memoria essencialmente utilizadas para armazenamento das instruções
executadas pelo processador no sistema embarcado.

• RAM
• Nesse tipo de memoria são armazenados os dados utilizados pelo microprocessador,
durante operações lógicas, matemáticas, contagens e etc. Normalmente são dados
voláteis, ou seja, não existe o interesse em recuperar estes dados quando o sistema é
desligado ou reinicializado.
MICROCONTROLADOR PIC

• O que?
• O PIC é um circuito integrado produzido pela Microchip Technology Inc. que pertence
a categoria dos microcontroladores, ou seja, um componente integrado que em um único
dispositivo contém todos os circuitos necessários para realizar um completo sistema
digital programável.
MICROCONTROLADOR PIC

• O que o compõe:
• CPU - sua finalidade é interpretar as instruções de programa.
• Memória PROM - irá memorizar de maneira permanente as instruções do programa.
• Memória RAM - memoriza as variáveis utilizadas pelo programa.
• Uma serie de LINHAS de I/O - controla dispositivos externos ou recebe pulsos de
sensores, chaves, etc.
MICROCONTROLADOR PIC

O PIC está disponível em uma ampla gama de modelos para melhor adaptar-
se às exigências de projetos específicos, diferenciando-se pelo numero de linha
de I/O e pelo conteúdo do dispositivo.
Inicia-se com modelo pequeno identificado pela sigla PIC12Cxx dotado de 8
pinos, até chegar a modelos maiores com sigla PIC18Cxx dotados de 40 pinos.
MICROCONTROLADOR PIC 18F4550

• Principais características PIC18F4550


• Linha de Alta performance das • ADC com resolução de 10Bits
plataformas 8bits • 2 Canais PWM
• 32KBytes de Flash • SPI, I2C e USART
• 2KBytes de RAM • 4 Timer’s
• 256Bytes de EEPROM • Encapsulamento DIP 40
• Frequência de operação de até 48MHz
• Até 35 GPIO’S
MICROCONTROLADOR PIC 18F4550
MICROCONTROLADOR

• Conceitos básicos
• Organização da memória
• Watchdog Timer
• Ciclo de Instrução/Pipeline (PIC18)
ORGANIZAÇÃO DE MEMÓRIA

Arquitetura Harvard Arquitetura Von-Neumann

Fonte: http://www.mikroe.com Fonte: http://www.mikroe.com


ORGANIZAÇÃO DE MEMÓRIA

É uma arquitetura de computador que se caracteriza pela


possibilidade de uma máquina digital armazenar seus Arquitetura Von-Neumann
programas no mesmo espaço de memória que os dados,
podendo assim manipular tais programas.

Fonte: http://www.mikroe.com
ORGANIZAÇÃO DE MEMÓRIA

Baseia-se em um conceito mais recente que a de Von-Neumann,


Arquitetura Harvard tendo vindo da necessidade de por o microcontrolador para
trabalhar mais rápido. É uma arquitetura de computador que se
distingue das outras por possuir duas memórias diferentes e
independentes em termos de barramento e ligação ao
processador.

Desta forma, permite que o processador possa acessar as duas


memórias simultaneamente, obtendo um desempenho melhor do
que a da Arquitetura de von Neumann, pois pode buscar uma
nova instrução enquanto executa outra.
Fonte: http://www.mikroe.com
WATCHDOG TIMER

Circuito temporizador interno ao chip e separado da CPU, capaz acionar o


circuito de reset da CPU caso seu contador não seja zerado devido a alguma
condição de erro.
Em resumo, trata-se de um sistema emergencial muito utilizado para prevenir os
sistema de possíveis falhas. Existem vários tipos de Watchdogs, aqueles que
"restartam" um serviço, ou o sistema operacional por completo.
CICLO DE INSTRUÇÃO/PIPELINE (PIC18)

Pipeline é uma técnica de hardware que permite que a CPU realize a busca de uma ou
mais instruções além da próxima a ser executada. Estas instruções são colocadas em
uma fila de memória dentro do processador (CPU) onde aguardam o momento de
serem executadas: assim que uma instrução termina o primeiro estágio e parte para o
segundo, a próxima instrução já ocupa o primeiro estágio.
Em resumo, é o processo pelo qual uma instrução de processamento é subdividido em
etapas, uma vez que cada uma destas etapas é executada por uma porção
especializada da CPU, podendo colocar mais de uma instrução em execução
simultânea.
CICLO DE INSTRUÇÃO/PIPELINE (PIC18)

•Ciclo de Instrução/Pipeline (PIC18)


•Dividido em quatro etapas
•Q1: Incremento do PC (Program Counter) e Captura da Instrução
•Q2, Q3 e Q4: Decodificação e Execução da Instrução

Fonte: DS39632E página 63


CICLO DE INSTRUÇÃO/PIPELINE (PIC18)

Fonte: DS39632E página 63


MICROCONTROLADOR PIC16F1619

• Alimentação do Microcontrolador
• Para o PIC16F1619
• Tensão entre os pinos VDD e VSS:
• -0,3V a 6,5V
• Tensão entre os pinos MCLR e VSS:
• -0,3V a 9,0V
• Tensão entre os pinos de GPIO e VSS:
• -0,3V a VDD
• Corrente nos pinos de GPIO
• Sink para um GPIO normal: 50mA
• Source para um GPIO normal : 50mA
• Sink para um GPIO de alta corrente: 100mA
• Source para um GPIO de alta corrente: 100mA
GPIO = (General Purpose IO)
MICROCONTROLADOR PIC18F4550

• Reset do Microcontrolador
• “Ação de determinar um estado conhecido no microcontrolador ou reinicialização do sistema.”
• Ações que provocam o RESET:
• Power-on reset (POR)
• MCLR reset
• Watchdog timer (WDT) reset
• Brown-out reset (BOR)
• Reset instruction
• Stack Overflow
• Stack Underflow
MICROCONTROLADOR

• Registradores de configuração "Configuration Fuses"


• Configuração de oscilador
• Proteção de memória
• Watchdog Timer
• Configuração de GPIO's
• Outros...

• Exemplo:
• #pragma config FOSC = HS // Seleciona o Oscilador HS
#pragma config WDT = OFF // Watchdog Timer desligado e controlado pelo registrador SWDTEN
#pragma config PBADEN = OFF // Configura os pinos PORTB<4:0>
#pragma config LVP = OFF // ICSP desabilitado
PIC 16F877A
PROGRAMAÇÃO DE MICROCONTROLADOR
PROGRAMAÇÃO DE MICROCONTROLADOR

• Edição
• possui diversas ferramentas de auxílio como localizar, substituir, recortar, copiar e colar.
• Compilação
• Compilar significa traduzir um programa escrito em assembly ou C para linguagem de
máquina (números). A compilação gera um arquivo com extensão .hex (hexadecimal) a
partir dos arquivos de código fonte (.asm ou .c) e de projeto (.pjt). É o conteúdo do
arquivo hexadecimal que é gravado na memória de programa do PIC.
PROGRAMAÇÃO DE MICROCONTROLADOR

• Simulação
• Alguns softwares possuem ferramentas para simulação do programa no próprio
computador, possibilitando a execução passo a passo, visualização e edição do conteúdo
dos registradores, edição de estímulos (entradas), contagem de tempo de execução, etc.

• Gravação
• Para que o programa seja executado no microcontrolador, o arquivo hexadecimal deve
ser gravado no PIC.
PROGRAMAÇÃO DE MICROCONTROLADOR

• Emulação
• A Emulação é um recurso de desenvolvimento que possibilita testes em tempo real. Esta é
feita conectando-se (através de hardware) o computador ao sistema projetado, no lugar
do PIC
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Componentes de um programa em C /*
Programa desenvolvido para piscar um
• Comentários LED a 1Hz
• // Comentário de Linha */
• /* Comentário de bloco */ void main(){ // Programa principal
• Inicio / Fim do programa
TRISB = 0; // configuração do PORTB
• Caractere de fim de linha “;”
while(1) { // Loop infinito
PORTB.0 = 0; // RB0 = 0
Delay_Ms(500); // delay de 500mS
PORTB.0 = 1; // RB1 = 1
Delay_Ms(500); // delay de 500mS
}
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Variáveis
• Palavras reservadas
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Variáveis
• Tipos
• Ranges
• Constantes
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Vetores
• “São utilizados quando se deseja armazenar itens de mesmo tipo em um único bloco de
memória”
• Exemplos:
• unsigned int Cores_Pecas[5];
• unsigned char Numeros_Pares[] = {2, 4, 6, 8, 10, 12, 14};
• unsigned char Nome[] = {‘P’, ‘L’, ‘I’, ‘N’, ‘I’, ‘O’};
• unsigned char Sobrenome[] = {“BARBOSA”};
• unsigned int Cores_Pecas_Armario[2][2];
• unsigned int Cores_Pecas_Armario[2][2] = {{0, 1}, {2,3}}; // Estes são chamados arrays
multidimensionais!
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Ponteiros
• “São variáveis especializadas no armazenamento do endereços de outras variáveis.”
• Exemplos:
• unsigned int *ptr;
• unsigned char *Nome;
• Utilização:
• ptr = &Cores_Pecas; // Atribui a ptr o endereço da variável Cores_Pecas
• *ptr = 125; // Atribui a Cores_Pecas o valor 125 [O mesmo que Cores_Pecas = 125;]
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Estruturas
• “São tipos de variáveis que possuem a capacidade de agrupamento de outras variáveis de
tipos diferentes.”
• Exemplos:
• Struct Comodo{
float Temperatura_Interna;
float Temperatura_Externa;
float Historico_Temperatura[1000];
int Umidade;
Bool Flag_Ocupada;
Bool Flag_Emegencia;
} Sala_Jantar, Cozinha, Quarto1, Quarto2 Garagem;
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

#include <stdio.h>
int main(void)
{
struct Alunos
{
char nome[30];
float matematica, fisica, media;
};

struct Alunos alunos[5];


int count;
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

for(count = 0 ; count < 5 ; count++)


{
fflush(stdin); fflush(stdin) é usado para limpar o buffer do teclado
printf("\nNome do aluno %d: ", count+1);
gets(alunos[count].nome); O gets(); é o comando usado em C para ler
entradas String, ou seja: palavras, frases ou
printf("Nota de matematica: "); conjuntos de numeros com os quais não se
scanf("%f", &alunos[count].matematica); realizará NENHUMA OPERAÇÃO
MATEMATICA.
printf("Nota de fisica: ");
scanf("%f", &alunos[count].fisica);

alunos[count].media = (alunos[count].matematica + alunos[count].fisica)/2;


}
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

printf("\nExibindo nomes e medias:\n");

for(count = 0 ; count < 5 ; count++)


{
printf("\nAluno %d\n", count+1);
printf("Nome: %s\n",alunos[count].nome);
printf("Media: %.2f\n", alunos[count].media);
}

return 0;
}
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Operadores
• “Executam operações aritméticas, lógicas ou condicionais com o conteúdo de variáveis, SFR’s e
etc...”
• Tipos de operadores:
• Aritméticos
• Relacionais
• Condicionais
• Lógicos sobre bits
• Deslocamento de bits
• Preprocessamento
• Outros
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Operadores Aritméticos
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Operadores Relacionais
• “São operadores utilizados na comparação entre elementos. Caso a expressão testada seja
verdadeira o valor retornado é 1, caso seja falsa o valor retornado será 0”
• A = 10;
• A > 10; // Retorna 1
• A == 10; // Retorna 1
• A == 0; // Retorna 0
• A != 2; // Retorna 1
• A >= 15; // Retorna 0
• A <= 2; // Retorna 0
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Operadores Condicionais
• Resultado = Expressão1 ? Expressão2 : Expressão3
• “Efetua o teste de “Expressão1” e caso seu resultado seja verdadeiro atribui a
“Resultado” o valor de “Expressão2” e no caso de “Expressão1” ser falsa atribui o valor
de “Expressão3” a variável “Resultado”.”
• Exemplo:
• X= 2;
• Y = 4;
Maior = (X > Y) ? X : Y; // Para este caso a variável “Maior” receberá o valor de Y

Maior = (X > Y) ? (X + 127): (Y – 85); // A variável “Maior” receberá o valor de Y - 85


PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Operadores Lógicos
• “São operadores utilizados na comparação entre elementos. Caso a expressão testada
seja verdadeira o valor retornado é 1, caso seja falsa o valor retornado será 0”
• C = 5;
• C <= 10 && C >= 1; // Retorna 1
• C > 2 || C < 3; // Retorna 1
• C != 5; // Retorna 0
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Operadores de Preprocessamento
• Exemplos: #include <stdio.h>
• #ifdef #define SETPOINT 25
• #ifndef
#define ADD(a, b) (a + b)
• #elif #define Raiz_Quadrada(a) (a * a)
• #define
• #error #define MAXIMO
#ifdef MAXIMO
• #endif #define MAXIMO 100
• #if #endif
• #include
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Estruturas de controle de fluxo


• “São estruturas utilizadas para modificar a execução normal do programa
de acordo com uma condição especificada pelo programador.”
• If
• Else
• Switch
PRINCÍPIOS BÁSICOS DA LINGUAGEM C
• Estruturas de controle de fluxo
switch( opção )
{
case opção1:
comandos caso a opção 1 tenha sido escolhida
break;

case opção2:
comandos caso a opção 2 tenha sido escolhida
break;

case opção3:
comandos caso a opção 3 tenha sido escolhida
break;

default:
comandos caso nenhuma das opções anteriores tenha sido escolhida
}
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Estruturas de Iteração de programa


• “São estruturas utilizadas para gerar repetições de certos trechos de
programa de acordo com uma condição especificada pelo programador.”

• While while( condição )


• Do {
//código que
• for //será repetido
}
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Estruturas de Iteração de programa


• “São estruturas utilizadas para gerar repetições de certos trechos de
programa de acordo com uma condição especificada pelo programador.”

• While do
{
• Do //código que
• for //será repetido
//aqui

} while (condição);
PRINCÍPIOS BÁSICOS DA LINGUAGEM C

• Estruturas de Iteração de programa


• “São estruturas utilizadas para gerar repetições de certos trechos de
programa de acordo com uma condição especificada pelo programador.”

• While
for(inicio_do_laço ; condição ; termino_de_cada_iteração)
• Do {
• for //código a ser
//executado aqui
}

S-ar putea să vă placă și