15
Microcontrolador PIC16F887 Microcontrolador PIC16F887 - Conceitos Básicos Microcontrolador PIC: Conceitos Básicos Curta Eletrônica * José W. R. Pereira 16A19 Resumo Com o objetivo de desbravar o funcionamento de um microcontrolador, este material busca de uma forma simples, mas não simplória, mostrar alguns conceitos iniciais bem como as ferramentas que serão utilizadas, pré-requisitos para o desenvolvimento das demais atividades e uma base de programação mínima, servindo de material de apoio para aulas desse tema, apesar de não ser um material de referência. O proposto aqui é ser um material de uso prático e de compreensão dos mecanismos de funcionamento do microcontrolador em estudo. Palavras-chave: microcontrolador. lógica. tecnologia. ensino. PIC16F887. 1 Introdução Sistemas digitais microcontrolados são amplamente difundidos nos mais diversos equipamentos, sejam eletrodomésticos, brinquedos ou mesmo equipamentos industriais. Além disso há em curso uma grande difusão produzida pela plataforma Arduíno, que possibilitou a todos uma prototipagem rápida das suas ideias e projetos, mesmo com um certo grau de complexidade, sem a necessidade de um especialista em eletrônica embarcada. Mas, ter um conhecimento mais aprofundado pode proporcionar um uso mais eficiente dos recursos do microcontrolador, conhecer suas limitações e possibilidades, além é claro do fato de ser muito mais interessante desbravar o seu funcionamento. Sendo assim o objetivo desse material e subsequentes é: * [email protected] Curta Eletrônica , José W. R. Pereira 1

Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Microcontrolador PIC: Conceitos Básicos

Curta Eletrônica ∗ José W. R. Pereira

16A19

Resumo

Com o objetivo de desbravar o funcionamento de um microcontrolador, este materialbusca de uma forma simples, mas não simplória, mostrar alguns conceitos iniciaisbem como as ferramentas que serão utilizadas, pré-requisitos para o desenvolvimentodas demais atividades e uma base de programação mínima, servindo de materialde apoio para aulas desse tema, apesar de não ser um material de referência. Oproposto aqui é ser um material de uso prático e de compreensão dos mecanismosde funcionamento do microcontrolador em estudo.

Palavras-chave: microcontrolador. lógica. tecnologia. ensino. PIC16F887.

1 IntroduçãoSistemas digitais microcontrolados são amplamente difundidos nos mais diversos

equipamentos, sejam eletrodomésticos, brinquedos ou mesmo equipamentos industriais.Além disso há em curso uma grande difusão produzida pela plataforma Arduíno, quepossibilitou a todos uma prototipagem rápida das suas ideias e projetos, mesmo com umcerto grau de complexidade, sem a necessidade de um especialista em eletrônica embarcada.Mas, ter um conhecimento mais aprofundado pode proporcionar um uso mais eficiente dosrecursos do microcontrolador, conhecer suas limitações e possibilidades, além é claro dofato de ser muito mais interessante desbravar o seu funcionamento.

Sendo assim o objetivo desse material e subsequentes é:∗[email protected]

Curta Eletrônica , José W. R. Pereira 1

Page 2: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

• Desenvolver competências para programar um microcontrolador (uC), 8 bits, emlinguagem C de modo a atender um projeto de média complexidade;

• Conhecer os periféricos do microcontrolador apresentado;

• Apresentar e utilizar técnicas de programação em linguagem C.

Todo o conteúdo aqui apresentado se baseia nas seguintes especificações:

• Microcontrolador: PIC;

• Modelo: PIC16F887;

• Fabricante: Microchip;

• Editor: MPLabX;

• Compilador: XC8;

• Gravador: PICkit2;

• Linguagem: C.

2 DesenvolvimentoApesar da grande quantidade de conceitos envolvidos no estudo dos microcontrolado-

res, podem alguns ser simplificados e outros suprimidos a depender do nível de profundidadeque se quaira usar. Neste sentido, são feitas abordagens simplificadas pois este é o pontoinicial de nosso estudo.

Então é feita a apresentação do microcontrolador utilizado, com algumas das princi-pais características, aspectos físicos de encapsulamento e pinagem, do ponto de vista dagravação e da alimentação. São apresentadas as ferramentas de desenvolvimento, programa-ção e compilação, assim como a capacidade de memória para gravar o programa(firmware).Uma configuração contendo o mínimo necessário para fazer o microcontrolador funcio-nar é apresentada, mesmo que ainda sem função, serve como ponto de partida para odesenvolvimento das demais aplicações.

Mesmo sendo uma versão básica, simplificada, há diversos conceitos não tão simplesde serem compreendidos, mas que ao longo do tempo ficarão mais esclarecidos, por horanão é de interesse suprimir tais conceitos.

Curta Eletrônica , José W. R. Pereira 2

Page 3: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

2.1 Estrutura Básica Simplificada

Os microcontroladores modernos, possuem uma razoável complexidade em suaestrutura, mas no momento trataremos de forma simplificada sua operação.

Em um microcontrolador simplificadamente temos: Memórias, Processamento ePeriféricos, como mostrado na Figura 1.

Figura 1 – Visão geral e simplificada do sistema

Fonte: Próprio autor

As memórias são divididas em função do tipo de dado armazenado, sendo elas de:programa, variáveis de uso geral e registradores de uso específico, estes servindo de interfacecom os periféricos.

O processamento, de forma cíclica, busca e executa as instruções da memória deprograma através de circuitos digitais sequenciais e combinacionais. A parte sequencial fazo incremento do endereço da memória que será lido(busca), enquanto a parte combinacionalreconhece a instrução do programa e a executa. Essa instrução pode ser de movimentaçãode dados, manipulação lógica ou aritmética.

Os periféricos são acessados através de registradores especiais, onde é possível ler,escrever ou configurá-los a depender de sua função, que é executada de forma paralela aoprocessador.

Então, para executar uma tarefa específica, instruções (códigos) são armazenadasna memória de programa, de forma sequencial e lógica, para serem reconhecidas peloprocessador que executa-as através de manipulação de dados nas memórias de uso geral

Curta Eletrônica , José W. R. Pereira 3

Page 4: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

e específicas. Os periféricos apenas reagem aos dados inseridos em seus respectivosregistradores.

A sequência de busca e execução é cíclica, acontecendo do início ao fim do programa,e é finalizada com o fim das instruções na memória, mas geralmente (quase sempre) umconjunto de instruções fica sendo executado sem que haja o fim do programa.

Existem diversos modelos e fabricantes de microcontroladores, tais como o clássicoMCS-51 (8051) com seu núcleo de 8 bits desenvolvido pela Intel e amplamente utilizado efabricado desde meados da década de 80 até hoje, AVR (8bits) da Atmel, MSP430 (16bits)da Texas Instruments, ou ainda os mais recentes de núcleo ARM (32bits) de diversosfabricantes e muitos outros. Um dos mais populares ainda é o PIC da Microchip, que noBrasil ganhou muito destaque e ainda é utilizado em cursos de nível técnico e graduações.

2.2 PIC e Microchip

A Microchip Technology Inc. é uma empresa norte americana de semicondutoresfundada em 1989 e tem sua sede na cidade de Chandler, Arizona, EUA. É a fabricante demicrocontroladores PIC, circuitos integrados, memórias, circuitos integrados analógicos,de controle e interface, etc.

A Figira 2 mostra as palavras que formam o acrônimo do PIC.

Figura 2 – Acrônimo para PIC

Fonte: Wikipedia

As principais características dos Microcontroladores PIC, de acordo com wikipedia(2018) são:

Curta Eletrônica , José W. R. Pereira 4

Page 5: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

• Arquitetura Harvard;

• Derivado do PIC1650 da General Instrument;

• Conjunto de Instruções Reduzido (Reduced Instruction Set Computer - RISC);

• 35 e 76 instruções;

• Memória flash, EEPROM e OTP;

• Núcleo de 12, 14 e 16 bits;

• Velocidade máxima de 48MHz;

• Velocidade chegando a 16 MIPS para alguns modelos;

• Atende interrupções internas e externas;

• Encapsulamento de 6 a 100 pinos;

• Encapsulamento em diversos formatos: DIP, SOT23, SOIC, TQFP;

• Tensões de alimentação variando de 1,8 a 6V;

2.3 Encapsulamento

O encapsulamento é o invólucro que tem a função de proteção mecânica do circuitointegrado, bem como dar acesso aos pontos de ligação através dos pinos. Existem diversosmodelos, tais como:

• Plastic Quad Flat, No Lead Package(QFN);

• Plastic Thin Quad Flatpack (TQFP);

• Plastic Shrink Small Outline (SSOP);

• Plastic Small Outline(SOIC);

• Plastic Dual In-line Package (PDIP).

presentes na Figura 3:

Este último de 40 pinos, é utilizado neste material, por ser o mais prático paraprotótipos por permitir seu uso em matriz de contatos(protoboard) sem a necessidade deadaptadores.

Curta Eletrônica , José W. R. Pereira 5

Page 6: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Figura 3 – Encapsulamentos

Fonte: Datasheet PIC16F887

2.4 Pinagem

Cada um dos 40 pinos possui ao menos uma função, seja um sinal vital comoalimentação, ou ainda, função de gravação e acesso aos periféricos.

2.4.1 Alimentação

A Figura 4 apresenta uma alimentação padrão TTL (0 e +5V) e um capacitor coma função de desacoplamento.

A tensão de alimentação deve ser aplicada ao VDD em relação a VSS, ou seja, VSS éa referência (GND), e VDD pode variar de -0,3V a +6.5V. Estes são valores máximos deoperação, que na prática correspondem ao uso do padrão TTL (GND = 0V e VCC = 5V)com alguma tolerância.

Curta Eletrônica , José W. R. Pereira 6

Page 7: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Figura 4 – Alimentação e Capacitor de Desacoplamento

Fonte: Próprio autor

O desacoplamento é feito pela inserção de um capacitor junto aos pinos de alimentaçãodo microcontrolador, , que podem variar de 0,01µF a 0,1µF, de acordo com o manual dofabricante.

Durante os processos de busca e execução das instruções, o microcontrolador habilitae desabilita circuitos, aumentando ou reduzindo o consumo de energia, produzindo assimoscilação de alta frequência na alimentação, ruídos, que por sua vez se propagam paraoutros sinais de operação, como os de comunicação, temporização, contagem, comparação,etc. O resultado é um sinal de nível alto apresentando um serrilhado que pode causar ummau funcionamento do periférico ou ainda do próprio microcontrolador. Para evitar essesruídos é utilizado um capacitor como filtro, que balanceia o sinal e se bem utilizado reduzdrasticamente tais ruídos na alimentação.

2.4.2 Periféricos

A maior parte dos pinos, Figura 5, podem ser configurados como interface digital(entrada ou saída) ou alguma função secundária, como entrada analógica, comunicaçãoserial, temporizador/contador, comparador, etc, com função e sentido de dados a dependerda configuração do periférico associado ou ainda na condição de gravação.

Curta Eletrônica , José W. R. Pereira 7

Page 8: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Figura 5 – Pinagem do PIC16F887-PDIP

Fonte: Datasheet PIC16F887

2.4.3 Gravação

Para o processo de gravação utilizando o gravador PICkit2, ou superior, são utilizadasas seguintes funções com seus respectivos pinos:

• Pino 1: Vpp

• Pinos 11 e 32: VDD (+5V)

• Pinos 12 e 31: VSS (0V)

• Pino 40: ICSPDAT (Dados)

• Pino 39: ICSPCLK (Clock)

A Figura 6 mostra as conexões entre o gravador PICkit2 e o PIC.

Curta Eletrônica , José W. R. Pereira 8

Page 9: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Figura 6 – Conexão do Gravador PICkit2

Fonte: Datasheet PIC16F887

O gravador PICkit2 é conectado ao computador através de um cabo USB, por ondeé descarregado o programa, produzido por algum conjunto de ferramentas de desenvolvi-mento.

2.5 Ferramentas de Desenvolvimento

A microchip fornece diversas ferramentas de desenvolvimento, de forma gratuita emultiplataforma, entre as principais podem ser citadas:

• MPLAB X: Interface de Desenvolvimento Integrada. Facilita a codificação, inte-grando ferramentas de edição, compilação e depuração do código fonte. Microchip(2018b)

• XC8: Compilador. Programa que traduz um código em linguagem C para o respectivocódigo binário a ser gravado no microcontrolador. Esse processo ainda busca possíveiserros de sintaxe. Microchip (2018c)

• PICkit2: Plataforma de software e hardware para a gravação do firmware na memóriade programa do PIC. O firmware é o programa desenvolvido para um microcontrola-dor. Microchip (2018a)

Curta Eletrônica , José W. R. Pereira 9

Page 10: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Figura 7 – Fearramentas de Desenvolvimento Microchip

Figure: Próprio autor

2.6 Memória de Programa e Barramento de instruções

O PIC16F887 possuio uma memória do tipo Flash para armazenamento do programacom capacidade de 8k words de 14 bits, ou seja, 8192 instruções sendo cada uma delascom 14 bits, que representa uma instrução completa para este modelo.

O circuito responsável por selecionar a instrução que será executada, de formasequencial é o contador de programa (Program Counter) que possui um limite físico de13 bits (vias), para este modelo, produzindo uma contagem máxima equivalente a 8k(8 ∗ 1k = 8 ∗ 1024 = 8 ∗ 210), sendo este, assim, o limite de acesso à memória.

Cada um dos 8192 (8k) endereços possui 14 bits, o que caracteriza o tamanho daword (palavra), ou seja, o tamanho da instrução no núcleo do PIC16F887, conforme Figura8.

Curta Eletrônica , José W. R. Pereira 10

Page 11: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Figura 8 – Capacidade da Memória e tamanho da instrução

Figure: Próprio autor

Cada um dos periféricos mostrados na tabela da Figura 8 será apresentado no devidomomento.

Além da memória de programa, com 8k (words), o PIC ainda possui a mamória dedados, que por sua vez é dividida em dois tipos e finalidades:

• EEPROM ( Electrically Erasable Programmable Read Only Memory ): Com a funçãode armazenar dados de variáveis de forma não volátil, ou seja, os dados armazenadosnão são perdidos ao desligar a energia do circuito.

• SRAM (Static Random Access Memory): Espaço de memória que comporta osregistradores de configuração dos periféricos e armazenamento de variáveis locais.Possui ação de leitura e escrita muito veloz.

Todos os endereços da memória de dados possuem dimensão de 8 bits, ou seja, 1byte.

2.7 Configuração mínima

Conjunto de instruções que permitem uma operação mínima do microcontroladorPIC16F887, com oscilador interno, desabilitando o Watchdog Timer, Master Clear eProgramação em Baixa Tensão.

Curta Eletrônica , José W. R. Pereira 11

Page 12: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

• #include <xc.h>

Inclui biblioteca padrão do compilador XC8 que permite a referência aos endereçosatravés de seus nomes/apelidos.

• #pragma config FOSC = INTRC_NOCLKOUT

FOSC: Oscillator Selection

Diretiva de compilação, ou seja, comando que é escrito no registrador de modo aconfigurar uma função diretamente e exclusivamente na gravação, não podendo seralterado durante a execução do programa. Neste caso habilita a fonte da frequênciade clock para o oscilador interno, que é calibrado e por padrão vem configurado em4MHz.

• #pragma config WDTE = OFF

WDTE: Watchdog Timer Enable

Desabilita a função de Watchdog Timer. O Watchdog Timer é um temporizadorque ao final da sua contagem reinicia o microcontrolador (reset). Essa contagemde tempo pode ser configurada. Dentro do ciclo de execução do programa, deveser executada a instrução que reinicia a contagem do Watchdog Timer, CLRWDT,impedindo o reset do microcontrolador. O Watchdog timer tem a função de reiniciaro microcontrolador caso haja um bloqueio extenso do processamento.

• #pragma config MCLRE = OFF

MCLRE: Master Clear Enable

Desabilita a função que limpa os registradores e reinicia o processamento através dopino 1, permitindo sua utilização como Entrada ou Saída Digital (RE3).

• #pragma config LVP = OFF

LVP: Low Voltage Programming

Desabilita programação em baixa tensão e permite a utilização do pino 1 como RB3(Entrada ou Saída Digital) e permite aplicação de uma "alta tensão", VP P (12V), quecoloca o microcontrolador em modo de gravação.

• #define _XTAL_FREQ 4000000

_XTAL_FREQ: Crystal Frequency

_XTAL_FREQ é utilizada dentro da biblioteca padrão < xc.h > e define a frequência dooscilador, que é configurada pelo usuário, e necessária para funções de temporização.

A diretiva #define cria uma equivalência entre os termos associados. Assim_XTAL_FREQ é equivalente a 4000000, assim é definida a frequência do cristal utili-zado em 4MHz. A grande vantagem em utilizar a diretiva #define é que todas as

Curta Eletrônica , José W. R. Pereira 12

Page 13: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

vezes que for preciso utilizar o valor numérico, ele pode/deve ser escrito como seuequivalente, assim havendo a necessidade de mudar de 4000000 para 8000000, porexemplo, só é necessário fazê-lo uma única vez na diretiva de definição e não emtodos os lugares em que o valor literalmente aparecer.

• Programa mínimovoid main( void ){

while( 1 ){

}}

Estrutura básica de um programa em linguagem C para microcontrolador.

Como não há sistema operacional para gerenciar a execução de programa, a funçãonão tem retorno e nem parâmetros, por isso o void antes do main e dentro dosparênteses.

Os parênteses definem um bloco de execução, delimitando o seu início e fim.

Em todas as linguagens de programação existem laços de repetição, que é formadopela condicional e pelo bloco de repetição.

Um dos laços de repetição mais comuns é o while que significa enquanto. Enquantoo parâmetro, conteúdo entre parênteses, for verdadeiro, o bloco é executado.

Em linguagem C, qualquer número pode ser classificado de forma booleana/bináriacomo Verdadeiro ou Falso, sendo o 0 (zero) definido como Falso e qualquer valordiferente como Verdadeiro.

Assim, quando o parâmetro do while é 1, while( 1 ), o bloco subsequente éexecutado repetidamente enquanto o microcontrolador estiver ligado, pois 1 nunca éfalso.

A Figura 9 apresenta a configuração mínima de operação completa que deve serincluída em um arquivo de texto simples, sendo muito recomendado, apesar de não serobrigatório, utilizar o nome de main.c.

Curta Eletrônica , José W. R. Pereira 13

Page 14: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Figura 9 – Configuração Mínima de Operação

Figure: Próprio autor

A única função de existência obrigatória em linguagem C é a main, e é recomendadoque o arquivo em que ela está declarada contenha o mesmo nome.

Curta Eletrônica , José W. R. Pereira 14

Page 15: Microcontrolador PIC: Conceitos Básicos...F887 s Básico onceitos F887 - C r PIC16 ntrolado Microco Microcontrolador PIC: Conceitos Básicos CurtaEletrônica∗ JoséW.R.Pereira 16A19

Microcontrolador PIC16F887

Microcontrolador PIC16F887 - Conceitos Básicos

Referências

MICROCHIP. Gravador PICkit2. [S.l.], 2018. Disponível em: <https://www.microchip.com/developmenttools/ProductDetails/pg164120>. Citado na página 9.

MICROCHIP. MPLAB X Integrated Development Environment(IDE). [S.l.], 2018.Disponível em: <https://www.microchip.com/mplab/mplab-x-ide>. Citado na página 9.

MICROCHIP. XC8 Compiler. [S.l.], 2018. Disponível em: <https://www.microchip.com/mplab/compilers>. Citado na página 9.

WIKIPEDIA. Microcontrolador PIC. [S.l.], 2018. Disponível em: <https://pt.wikipedia.org/wiki/Microcontrolador_PIC>. Citado na página 4.

Curta Eletrônica , José W. R. Pereira 15