87
MICROCONTROLADORES PIC TEORIA MSc. Gustavo Souto de Sá e Souza

Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Embed Size (px)

Citation preview

Page 1: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

MICROCONTROLADORES PIC

TEORIA

MSc. Gustavo Souto de Sá e Souza

Page 2: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

MICROCONTROLADORES PIC

• Por que PIC?

Programmable Inferface Controller – Controlador de Interface Programável

X

Peripheral Inferface Controller – Controlador de Interface Periféricas

• Fabricados pela Microchip Technology

Page 3: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

MICROCONTROLADORES PIC

• Por que PIC?

Programmable Inferface Controller – Controlador de Interface Programável

X

Peripheral Inferface Controller – Controlador de Interface Periféricas

• Fabricados pela Microchip Technology

PICmicro

Page 4: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

MICROCONTROLADORES PIC

• Instruções de um PIC podem variar de cerca de 35 instruções(PICs mais simples) para mais de 80 instruções para os PICshigh-end.

• Ciclo de instruções de 4 ciclos de clock.

• Diferentemente do 8051, possui uma arquitetura RISC,apresentando maiores velocidades

• Processam dados de 8 bits, 16 bits ou até mesmo 32 bits.

• Trabalham com frequência de até 200 MHz.

Page 5: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

NOP Nenhuma operação (MOVW 0,W)

OPTION Copia W para o registrador OPTION

SLEEP Entra em modo de economia de energia

CLRWDT Reinicia o watchdog timer

TRIS f Copia W para o registrador de triplo estado (f = 1, 2 or 3)

MOVWF f dest ← W

CLR f,d dest ← 0, normalmente escrito CLRW ou CLRF f

SUBWF f,d dest ← f−W (dest ← f+~W+1)

DECF f,d dest ← f−1

IORWF f,d dest ← f | W, OU inclusivo lógico

ANDWF f,d dest ← f & W, AND (E) lógico

XORWF f,d dest ← f ^ W, XOR lógico

ADDWF f,d dest ← f+W

MOVF f,d dest ← f

COMF f,d dest ← ~f, complemento bit a bit

INCF f,d dest ← f+1

DECFSZ f,d dest ← f−1, então pula se 0

RRF f,d dest ← CARRY<<7 &#124; f>>1, rotacionar para a direita através do carry

RLF f,d dest ← F<<1 | CARRY, rotacionar para a esquerda através do carry

SWAPF f,d dest ← f<<4 | f>>4, swap nibbles

INCFSZ f,d dest ← f+1, então pula se 0

BCF f,b Limpar bit b de f

BSF f,b Definir bit b de f

BTFSC f,b Pular se bit b de f está limpo

BTFSS f,b Pular se bit b de f está definido

RETLW k Define W ← k, então retorna de uma subrotina

CALL k Chama uma subrotina, endereço de 8 bits k

GOTO k Pula para o endereço de 9 bits k[8]

MOVLW k W ← k

IORLW k W ← k | W, OU lógico (OR) bit a bit

ANDLW k W ← k & W, E lógico (AND) bit a bit

XORLW k W ← k ^ W, OU exclusivo (XOR) bit a bit

Page 6: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

NOP Nenhuma operação (MOVW 0,W)

OPTION Copia W para o registrador OPTION

SLEEP Entra em modo de economia de energia

CLRWDT Reinicia o watchdog timer

TRIS f Copia W para o registrador de triplo estado (f = 1, 2 or 3)

MOVWF f dest ← W

CLR f,d dest ← 0, normalmente escrito CLRW ou CLRF f

SUBWF f,d dest ← f−W (dest ← f+~W+1)

DECF f,d dest ← f−1

IORWF f,d dest ← f | W, OU inclusivo lógico

ANDWF f,d dest ← f & W, AND (E) lógico

XORWF f,d dest ← f ^ W, XOR lógico

ADDWF f,d dest ← f+W

MOVF f,d dest ← f

COMF f,d dest ← ~f, complemento bit a bit

INCF f,d dest ← f+1

DECFSZ f,d dest ← f−1, então pula se 0

RRF f,d dest ← CARRY<<7 &#124; f>>1, rotacionar para a direita através do carry

RLF f,d dest ← F<<1 | CARRY, rotacionar para a esquerda através do carry

SWAPF f,d dest ← f<<4 | f>>4, swap nibbles

INCFSZ f,d dest ← f+1, então pula se 0

BCF f,b Limpar bit b de f

BSF f,b Definir bit b de f

BTFSC f,b Pular se bit b de f está limpo

BTFSS f,b Pular se bit b de f está definido

RETLW k Define W ← k, então retorna de uma subrotina

CALL k Chama uma subrotina, endereço de 8 bits k

GOTO k Pula para o endereço de 9 bits k[8]

MOVLW k W ← k

IORLW k W ← k | W, OU lógico (OR) bit a bit

ANDLW k W ← k & W, E lógico (AND) bit a bit

XORLW k W ← k ^ W, OU exclusivo (XOR) bit a bit

Page 7: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC

JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC

JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD

JNB ACALL RETI RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC

JC AJMP ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL

JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL

JZ AJMP XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL

JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

MOV ACALL MOV MOVC SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB

ORL AJMP MOV INC MUL ? MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

ANL ACALL CPL CPL CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE

PUSH AJMP CLR CLR SWAP XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH

POP ACALL SETB SETB DA DJNZ XCHD XCHD DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ

MOVX AJMP MOVX MOVX CLR MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

MOVX ACALL MOVX MOVX CPL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

Page 8: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC

JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC

JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD

JNB ACALL RETI RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC

JC AJMP ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL

JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL

JZ AJMP XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL

JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

MOV ACALL MOV MOVC SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB

ORL AJMP MOV INC MUL ? MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

ANL ACALL CPL CPL CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE

PUSH AJMP CLR CLR SWAP XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH

POP ACALL SETB SETB DA DJNZ XCHD XCHD DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ

MOVX AJMP MOVX MOVX CLR MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

MOVX ACALL MOVX MOVX CPL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

Page 9: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

ARDUINO X PIC

vs

Page 10: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

ARDUINO X PIC

vs

Page 11: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

ATMEL AVR VS PIC

• Se destacou por ser pioneiro no uso de memória flash em seus chips, em umaépoca onde se usava PROM, EPROM e EEPROM.

• A grande diferença: Atmel AVR usa Arquitetura de Harvard Modificada - capazde reescrever a memória do programa durante a própria execução.

• Velocidades e recursos são comparáveis. Ambos possuem famílias diferentescapazes de atender diversas necessidades.

Page 12: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

ARDUINO VS PICKIT

vs

Page 13: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Arduino PicKit

Plataforma completa de desenvolvimento Programador de chip

Arduino IDE possui uma única linguagem que engloba inúmeros modelos diferentes

MPLAB X IDE possui instruções e comandos diferentes para cada família, e até mesmo varia de chip pra chip.

Possibilidade de usar Shields com diversas funções A expansão das funções depende do desenvolvimento de uma placa

Custo varia entre R$40 para os mais simples até R$ 150 para o modelo Due.

Custa em torno de R$ 150

Mais simples Mais complexo

Menor liberdade para trabalhos específicos Liberdade absoluta para se trabalhar com todos os registradores do microcontrolador

Chip nem sempre é removível. Por se tratar somente do programador, o chip é obtido separadamente.

Page 14: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

FAMÍLIAS PIC

8 bits:

• PIC10 – 8 microcontroladores (6 pinos)

• PIC12 – 20 microcontroladores (8 pinos)

• PIC16 – 155 microcontroladores (8 a 64 pinos)

• PIC18 – 223 microcontroladores (18 a 100 pinos)

Variadas aplicações que exigem economia de energia, processamento simples, compatibilidade e robustez.

Page 15: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

FAMÍLIAS PIC

16 bits:

• PIC24, dsPIC30, dsPIC33

• Total de 432 microcontroladores (12 a 122 pinos)

Periféricos mais amplos:

• Conversores AD de maior resolução

• Conversores DA

Funções de processamento digital de sinais (FFT, filtros)

Bibliotecas e funções mais acessíveis para uso de vários recursos como PWM, USB e TCP/IP.

Page 16: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

FAMÍLIAS PIC

32 bits:

• PIC32: 184 microcontroladores (28 a 144 pinos)

Hardware dedicado para operações em pontos flutuantes.

Frequência de operação de até 200 MHz (contra 48 MHz das outras famílias)

Integração simplificada com interfaces gráficas, áudio, comunicações e controles multitarefa.

MPLAB Harmony Framework

Page 17: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Cada família difere em vários aspectos:• Bits de configuração• Tensão de funcionamento• Frequência de funcionamento• Periféricos• Instruções

Ou seja: um programa feito para um chip de uma família não funcionará emoutra família sem inúmeras adaptações. De fato, um programa feito para chipsdiferentes da mesma família também podem precisar de algumas adaptações.

FAMÍLIAS PIC

Page 18: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

A quantidade de bits do microcontrolador define o tamanho do barramento deleitura e escrita de dados. Ou seja: é a quantidades de bits que serão lidos eescritos por vez. Isso implica que um microcontrolador de 16 bits pode fazeroperações com números de 0 a 65535 de uma só vez, enquanto um de 8 bitsprecisa de sub-rotinas complexas usando vários registradores de 0 a 255 para sechegar ao mesmo resultado.Apesar de que durante a programação em alto nível, isso pode passardespercebido, ganha-se em eficiência de execução e em espaço de memória.

FAMÍLIAS PIC

Page 19: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Apesar de o chip ser gravado apenas em baixo nível, como todomicrocontrolador, geralmente a programação dele é feita pelos usuários emlinguagem de alto nível, por meio de compiladores.

Esse é um dos grandes motivos da popularização do PIC (e também do Arduino).

Existem vários compiladores e ambientes de programação diferentes para PICs.Cada um possui conjuntos de instruções diferentes.

COMPILADORES E AMBIENTES DE PROGRAMAÇÃO

Page 20: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

• O Compilador é o software responsável por traduzir as instruções de linguagem de alto nível para linguagem de baixo nível.

• O Ambiente de Programação é a interface que o usuário usa para programar o chip.

Os compiladores mais usados são os da própria Microchip: C18 compiler, os mais recentes XC8, XC16 e XC32. Apesar disso, também são bem usados outros como o mikroC e o CCS. Todos possuem variações gratuitas e pagas, cada uma com suas características.

COMPILADORES E AMBIENTES DE PROGRAMAÇÃO

Page 21: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Geralmente cada compilador tem um ambiente de programação próprio, como os da mikroC.

Porém há ambientes como o PIC C Wizard, que utiliza o compilador CCS para gerar os arquivos hex a serem gravados nos chips.

O ambiente de programação da Microchip é o MPLAB IDE ou o mais recente MPLAB X IDE.

AMBIENTES DE PROGRAMAÇÃO

Page 22: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Utilizaremos o MPLAB X IDE, que é o ambiente de programação mais recente daprópria fabricante do PIC.

Ele suporta os compiladores mais recentes XC8, XC16 e XC32. Estescompiladores possuem versões gratuitas, onde o código não é otimizado,versões Padrão, de “baixo” custo e otimiza o programa em até 25% comparadocom a versão gratuita, e a versão Pro, de alto custo e pode otimizar o programamais de 50%.

Um código menor é mais eficiente e ocupa menos memória.

MPLAB X IDE E COMPILADORES XC8/XC16/XC32

Page 23: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Utilizaremos o MPLAB X IDE, que é o ambiente de programação mais recente daprópria fabricante do PIC.

Ele suporta os compiladores mais recentes XC8, XC16 e XC32.

Estes compiladores possuem versões:• Gratuitas: onde o código não é otimizado,• Standard: de “baixo” custo (US$ 595 para o XC32) e otimiza o programa em

até 25% comparado com a versão gratuita• Pro: de alto custo (US$1295 para o XC32) e pode otimizar o programa mais de

50%.

MPLAB X IDE E COMPILADORES XC8/XC16/XC32

Page 24: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

• Os compiladores XC8, XC16 e XC32 possuem várias bibliotecas einstruções específicas para os microcontroladores PIC de 8, 16 e 32bits respectivamente.

• Utilizam uma linguagem C.

• Possuem várias bibliotecas prontas para acesso a periféricos efunções específicas, como funções de atraso, acesso a LCDs oucomunicação serial.

• Aceitam partes do código em assembly.

MPLAB X IDE E COMPILADORES XC8/XC16/XC32

Page 25: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

ALIMENTAÇÃO

• Normalmente PICs são alimentados com 5 V ou 3.3 V.

• Confirmar no datasheet do chip!

• Famílias de 8 ou 16 bits geralmente trabalham com 5 V ou 3.3 V.

• Família PIC32 focam em chips de 3.3 V.

Page 26: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 27: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 28: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 29: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 30: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 31: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Na eletrônica, inúmeros circuitos necessitam de um “clock”,geralmente obtido por meio de circuitos osciladores.

OSCILADOR

Oscilador RC Oscilador com cristal em um microcontrolador

Page 32: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

• Como todo microcontrolador, o PIC necessita de um clock.

• Ele vem com um oscilador RC interno, mas também podeser ligado a um oscilador externo.

• A frequência do oscilador, juntamente commultiplicadores e divisores internos, definem a frequênciade ciclo de máquina do PIC.

OSCILADOR

Page 33: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Os PICs possuem várias formas de se configurar suafrequência de operação, por meio de definição de Bits deConfiguração.

Definições:

• Frequência do oscilador.

• Frequência do sistema.

• Frequência de ciclo de máquina.

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 34: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

• Frequência do oscilador: frequência do oscilador internoou externo.

• Frequência do sistema: frequência do osciladormultiplicado ou dividido pelas PLLs (phase locked loop -Malha de Captura de Fase).

• Frequência de ciclo de máquina: frequência do sistemadividido por 4.

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 35: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PLL – Phase Locked Loop

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 36: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PLL

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 37: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

2xPLL

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 38: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

4xPLL

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 39: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

8xPLL

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 40: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

16xPLL

FREQUÊNCIA DE CICLO DE MÁQUINA

Page 41: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 42: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 43: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

• Registradores internos que configuram várias características deoperação do PIC: oscilador, modo de operação de temporizadorese conversores A/D, recursos de debug e segurança.

• Variam muito de chip pra chip.

• Dependendo do chip, é possível alternar entre osciladores durantea execução de um programa.

BITS DE CONFIGURAÇÃO

Page 44: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

dsPIC30F3014

Page 45: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

dsPIC30F3014

Page 46: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PIC18F4550

Page 47: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PIC18F4550

Page 48: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PIC18F4550

Page 49: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PIC18F4550

Page 50: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PIC18F4550

Page 51: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Os microcontroladoresPICs utilizam entradas esaídas digitais:

• Portas A, B, C, D e até E,com até 8 pinos emcada uma, dependendodo modelo do chip.

INPUTS E OUTPUTS

Page 52: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 53: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 54: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes
Page 55: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Como ler essas entradas ou escrever nessas saídas?

O pino ou porta pode ser definido como entrada ou saídausando o registrador TRIS.

Definindo um valor igual a “1” no registrador TRIS específico,define aquele pino como entrada e um valor “0” o define comosaída.

1 entrada

0 saída

INPUTS E OUTPUTS

Page 56: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Para definir todos os pinos da porta D como saída:

TRISD = 0b00000000;

Para definir todos os pinos da porta D como entrada:

TRISD = 0b11111111;

INPUTS E OUTPUTS

Page 57: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Para definir os pinos de 0 a 4 da porta B como saída e os de 5 a7 restante como entrada:

TRISB = 0b11100000;

Podemos também usar um valor decimal ou hexadecimal:

TRISB = 224;

TRISB = 0xE0;

INPUTS E OUTPUTS

Page 58: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

TRISD = 0;

Significa que todos os pinos da porta D estão sendo usadoscomo saída.

TRISB = 1;

Significa que o pino RB0 está sendo usado como entrada e ospinos RB1, RB2, RB3, RB4, RB5, RB6 e RB7 são de saída.

INPUTS E OUTPUTS

Page 59: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Quando for necessário definir apenas um pino de uma portainteira, pode-se usar a seguinte sintaxe:

TRISBbits.TRISB3 = 1;

Dessa forma se define apenas o pino RB3 como entrada e orestante continua como estava anteriormente.

INPUTS E OUTPUTS

Page 60: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Para se definir o estado de um pino digital de saída, usa-se oregistrador LAT.

Exemplo: para definir os pinos 0, 2, 4 e 6 da porta B em nívelbaixo e os outros pinos em nível alto:

LATB = 0b10101010;

INPUTS E OUTPUTS

Page 61: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Também pode se mudar o valor bit a bit com a seguinte sintaxe:

Exemplo: o pino 0 da porta B em nível baixo:

LATBbits.LATB0 = 0;

Ou em nível alto:

LATBbits.LATB0 = 1;

INPUTS E OUTPUTS

Page 62: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Para se ler o estado de uma porta, usa-se o registrador PORT.

Exemplo: para salvar na porta C o estado atual da porta D:

LATC = PORTD;

Também é possível ler apenas o valor de um pino:

LATCbits.LATC0 = PORTDbits.RD0;

INPUTS E OUTPUTS

Page 63: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

É possível usar operadores lógicos da linguagem C, como o sinalde exclamação (não).

Para inverter o sinal do pino RD0:

LATDbits.LATD0 = !PORTDbits.RD0;

INPUTS E OUTPUTS

Page 64: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Por que LAT e PORT?

INPUTS E OUTPUTS

Page 65: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Por que LAT e PORT?

• Escrita em LAT escreve no registrador LAT.

• Leitura em LAT lê registrador LAT.

• Escrita em PORT escreve no registrador LAT.

• Leitura em PORT lê nível de tensão no pino.

INPUTS E OUTPUTS

Page 66: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

O estado atual do pino (PORT) pode ser diferente do valor escrito noregistrador em algumas circunstâncias. Por exemplo,

• Quando o pino de saída está conectado a cargas indutivas oucapacitivas muito grandes.

• Quando o pino de saída está ligado a LEDs sem resistores limitadoresde corrente.

• Quando o pino de saída regula um transistor sem um resistor de base.

• Quando o pino de saída está aterrado.

INPUTS E OUTPUTS

Page 67: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

Por isso é uma boa prática ler de LAT e escrever emPORT. Mas na maioria dos casos, se você ler eescrever em PORT, irá funcionar conformeesperado.

INPUTS E OUTPUTS

Page 68: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONCLUSÃO

Page 69: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONCLUSÃO

Page 70: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

O programa mais básico de um microcontrolador é fazer umLED piscar num intervalo fixo de tempo.

Faremos a comparação entre o código entre o 8051, PIC eArduino.

HELLO, WORLD!

Page 71: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

ORG 00H

LJMP INICIO

ORG 30H

INICIO: CPL P1.0

LCALL ATRASO

SJMP INICIO

ATRASO: MOV R0,#10

V2: MOV R1,#100

V1: MOV R2,#200

DJNZ R2,$

DJNZ R1,V1

DJNZ R0,V2

RET

END

HELLO, WORLD! - 8051

Page 72: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

HELLO, WORLD! – PIC18F4550 @ XC8#include <pic18f4550>

#define _XTAL_FREQ 2000000

void main(void)

{

TRISD=0;

PORTD = 1;

while(1)

{

PORTDbits.RD0 = !LATDbits.LATD0;

__delay_ms(100);

}

}

Page 73: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

HELLO, WORLD! - ARDUINOint ledPin = 0;

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

digitalWrite(ledPin, !digitalRead(ledPin));

delay(100);

}

Page 74: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

TUTORIAL “HELLO WORLD!”

1) Instalar MPLAB X IDE

2) Instalar compiladores XC8/XC16 ou XC32

3) Definir chip

4) Configurar oscilador

5) Corpo do programa

6) Testar

Page 75: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO - DIGITAL

Resolução:

• Dada em bits

• Define a menor variação de tensãodetectável

• Geralmente os ADCs têm resoluçãode 8, 10 ou 12 bits nos PICs

Page 76: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO - DIGITAL

Resolução:

• Dada em bits

• Define a menor variação de tensãodetectável

• Geralmente os ADCs têm resoluçãode 8, 10 ou 12 bits nos PICs

Page 77: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Para 0-5V, as menoresvariações detectáveissão de:

• 8 bits: 20 mV

• 10 bits: 5 mV

• 12 bits: 1 mV

• 16 bits: 76 uV

• 24 bits: 298 nVRuído!

Page 78: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Para reduzir ruídos, recomenda-se tomar as seguintes precauções:

• Criar uma placa com um (ou vários) planos de terra;

• Separar o circuito analógico do circuito digital: evita ruído de chaveamento de altasfrequências;

• Casamento de impedâncias em trilhas;

• Desconectar dispositivo da rede elétrica (alimentação por baterias);

• Uso de capacitores de desacoplamento;

Page 79: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Plano de Terra:

Page 80: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Circuitos separados:

Page 81: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Capacitores de desacoplamento:

• Evita oscilações na tensão dealimentação durante oscilações naenergia requerida pelo circuito.

Page 82: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Taxa de amostragem:

Page 83: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Taxa de amostragem:

Page 84: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

CONVERSÃO ANALÓGICO – DIGITAL

Aliasing:

Teorema de Nyquist: taxa de amostragem deve ser 2 vezes maior que a maiorfrequência do sinal amostrado.

Page 85: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PULSE WIDTH MODULATION - PWM

Modulação por largura de pulso:

Tensão média:10 %

50 %

90 %

Page 86: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PULSE WIDTH MODULATION - PWM

Modulação por largura de pulso:

Na prática:

T – PR2 (timer2)

t (%) - CCPR2L(0 a 255)

Page 87: Microcontroladores PIC - EMCjwilson/pdf/4_Micro_Parte_4_(PIC)_Introducao.pdf · • O Compilador é o software responsável por traduzir as instruções de ... Porém há ambientes

PULSE WIDTH MODULATION - PWM

Modulação por largura de pulso:

Na prática:CCPR2L = 25

CCPR2L = 128

CCPR2L = 230