Documente Academic
Documente Profesional
Documente Cultură
LARISSA PIMENTA
LARISSAJPIMENTA@GMAIL.COM
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
• 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
• Conceitos básicos
• Organização da memória
• Watchdog Timer
• Ciclo de Instrução/Pipeline (PIC18)
ORGANIZAÇÃO DE MEMÓRIA
Fonte: http://www.mikroe.com
ORGANIZAÇÃO DE MEMÓRIA
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)
• 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
• 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;
};
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
• 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
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
• While do
{
• Do //código que
• for //será repetido
//aqui
} while (condição);
PRINCÍPIOS BÁSICOS DA LINGUAGEM C
• While
for(inicio_do_laço ; condição ; termino_de_cada_iteração)
• Do {
• for //código a ser
//executado aqui
}