26
Microcontroladores PIC Tássio Borges Departamento de Engenharia Elétrica

Tássio Borges Departamento de Engenharia Elétrica

Embed Size (px)

Citation preview

Page 1: Tássio Borges Departamento de Engenharia Elétrica

MicrocontroladoresPIC

Tássio BorgesDepartamento de Engenharia Elétrica

Page 2: Tássio Borges Departamento de Engenharia Elétrica

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 projetado 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.

Introdução

Page 3: Tássio Borges Departamento de Engenharia Elétrica
Page 4: Tássio Borges Departamento de Engenharia Elétrica
Page 5: Tássio Borges Departamento de Engenharia Elétrica

Memórias◦ RAM◦ ROM◦ EEPROM◦ Flash

Unidade Central de Processamento (CPU) Interface de Entrada e Saída (I/O) Comunicação Serial / USB / SPI / ZigBee Temporizador Watchdog Modulador de Largura de Pulso (PWM) Conversor Analógico – Digital (ADC)

Periféricos do PIC

Page 6: Tássio Borges Departamento de Engenharia Elétrica

RAM◦ É a memória de dados do PIC. É apagada se o PIC for

desligado. FLASH

◦ É um tipo de memória de programa do PIC, pode ser reescrita quase que infinitamente.

ROM◦ Outro tipo de memória de programa do PIC que só pode

ser gravada uma vez EEPROM

Outro tipo de memória que pode ser de dados ou de programa do PIC, mas esse tipo de memória não se apaga com o desligamento do microcontrolador.

Memórias

Page 7: Tássio Borges Departamento de Engenharia Elétrica

CPU◦ Na Unidade de processamento Central são

processador todos os dados do microcontrolador, como operações lógicas e matemáticas.

Entrada e Saída◦ A interface de entrada e saída do

microcontrolador são os pinos.

CPU e I/O

Page 8: Tássio Borges Departamento de Engenharia Elétrica

Os microcontroladores da família PIC possuem protocolos de comunicação disponíveis para o programador. Alguns são:◦ Serial (RS232)◦ USB◦ SPI (Serial Peripheral Interface)◦ Ethernet◦ ZigBee (IEEE 802.15.4)

Comunicação

Page 9: Tássio Borges Departamento de Engenharia Elétrica

O temporizador é incrementado a cada intervalo predefinido de tempo.

O watchdog é um temporizador de uso específico, pois ele só pode ser usado para reiniciar o microcontrolador no caso em que o tempo de execução do programa seja maior que o tempo definido pelo watchdog.

EXEMPLO: Ao programar um microcontrolador o programador define o watchdog para 128ms, que é o tempo aproximado da execução do programa, porém o programa trava e quando o watchdog conta um valor superior a 128ms ele reinicia o microcontrolador.

Temporizador e Watchdog

Page 10: Tássio Borges Departamento de Engenharia Elétrica

Modulação por Largura de pulso

PWM

Page 11: Tássio Borges Departamento de Engenharia Elétrica

Conversor analógico – digital◦ Os dados presentes na natureza são analógicos,

porém o microcontrolador só consegue processar dados digitais.

◦ A solução é converter os dados de natureza analógica em dados digitais para que o microcontrolador possa entender.

◦ Isso vale para temperatura, tensão, velocidade.

ADC

Page 12: Tássio Borges Departamento de Engenharia Elétrica

Para que o PIC funcione é necessário um sistema de oscilação para criar o CLOCK do sistema.

O clock do sistema é gerado na maioria dos casos por um cristal oscilador.

O clock não é o inverso dafrequência de oscilação.

Oscilador

Page 13: Tássio Borges Departamento de Engenharia Elétrica

Compiladores principais:◦ PIC – C (CCS)◦ Hi-Tech C (Hi-Tech)◦ C18,C32 (Microchip)◦ MikroC (mikroElektronika)

Programação em C

Page 14: Tássio Borges Departamento de Engenharia Elétrica

PIC C

Page 15: Tássio Borges Departamento de Engenharia Elétrica

Para programar o PIC no PIC – C é necessário definir qual é o microcontrolador.◦ Exemplo: PIC16F877A

Então podemos partir para a programação.

Programação

Page 16: Tássio Borges Departamento de Engenharia Elétrica

Na linha 1, colocamos o arquivo que contém as definições do PIC.Na linha 2, é definido a utilização do ADC do PIC com 8 bits de resolução.Na linha 3 é colocado o clock do cristal utilizado, nesse caso é de 4MHzNa linha 4 são definidos os fuses do microcontrolador.

Page 17: Tássio Borges Departamento de Engenharia Elétrica

Fuses do PIC16F877A

Page 18: Tássio Borges Departamento de Engenharia Elétrica

Fuses de Cristal:◦ LP (Low Power - <200KHz )◦ XT (Cristal - <= 4MHz)◦ HS (High Speed - > 4MHz)

Fuses Alimentação: PUT (Power Up Time) BROWNOUT (Reset por Brown Out)

FUSES

Page 19: Tássio Borges Departamento de Engenharia Elétrica

Brown Out

O Brownout ocorre quando a tensão de alimentação cai para abaixo do nível mínimo.Caso 1: Queda gradual.Caso 2: Ruídos.

Page 20: Tássio Borges Departamento de Engenharia Elétrica

#include <16f877.h> // identifica microcontrolador alvo#device ADC=10 // define AD para 10 bits, variando de 0 a 1023#use delay (clock=4000000) // <- define cristal para 4Mhz. Para outros valores, mude e

recompile.

main() // função principal { output_a(0); // desliga toda PORTA output_b(0); // desliga toda PORTB output_c(0); // desliga toda PORTC output_d(0); // desliga toda PORTD while(1) // para repetir bloco. Laço infinito. { output_high(pin_B0); // ativa pino B0 delay_ms(500); // tempo de 500 ms output_low(pin_B0); // desativa pino B0 delay_ms(500); // tempo de 500 ms } }

Exemplo de programaçãoPiscar um LED

Page 21: Tássio Borges Departamento de Engenharia Elétrica

Circuito para montagem

Pinos do PIC16F877A

Page 22: Tássio Borges Departamento de Engenharia Elétrica
Page 23: Tássio Borges Departamento de Engenharia Elétrica
Page 24: Tássio Borges Departamento de Engenharia Elétrica

#include <16f877.h> // identifica microcontrolador alvo#device ADC=10 // define AD para 10 bits, variando de 0 a 1023#use delay (clock=4000000) // <- define cristal para 4Mhz. Para outros valores, mude e

recompile.

main() // função principal { output_a(0); // desliga toda PORTA output_b(0); // desliga toda PORTB output_c(0); // desliga toda PORTC output_d(0); // desliga toda PORTD while(1) // para repetir bloco. Laço infinito. {

if(input(pin_D2)) Se o pino D2 estiver em nível alto{

output_high(pin_B0); // ativa pino B0 delay_ms(500); // tempo de 500 ms output_low(pin_B0); // desativa pino B0 delay_ms(500); // tempo de 500 ms

}}

}

Programa para entradaBotão acionando LED

Page 25: Tássio Borges Departamento de Engenharia Elétrica
Page 26: Tássio Borges Departamento de Engenharia Elétrica

NUNCA esqueça o MCRL! NUNCA ligue o microcontrolador sem antes

verificar se a alimentação está correta! SEMPRE utilize resistores para limitar

corrente. SEMPRE utilize o manual do PIC para não

terminar por queimar o circuito. Verifique as correntes suportadas pelo seu

microcontrolador

Dicas importante