Download - Introdução ao PIC - UTFPR
![Page 1: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/1.jpg)
Introdução ao PIC
Guilherme Luiz Moritz1
1 DAELT - Universidade Tecnológica Federal do Paraná
6 de novembro de 2013
Moritz, G.L. Introdução ao PIC
![Page 2: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/2.jpg)
Características do PIC
Arquitetura Harvard RISC, 35 instruções8 a 84 pinosMais de 180 modelosVários periféricos
Moritz, G.L. Introdução ao PIC
![Page 3: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/3.jpg)
Panorâmica do PIC 16F877A
Arquitetura RISC
Apenas 35 instruções para aprender
Todas as instruções são executadas em um ciclo, exceto ossaltos
Frequência de operação de até 20 MHz
33 pinos de I/O
Alta corrente para acionar LEDs diretamente
Interrupção quando há mudança no estado lógico dospinos de entrada
Conversor A/D
8 canais
10 bits de resolução
Moritz, G.L. Introdução ao PIC
![Page 4: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/4.jpg)
Panorâmica do PIC 16F877A
3 Temporizadores / Contadores independentes
Temporizador Watch-dog
Saída por PWM
Modo USART melhorado
Suporta RS-232 e RS-485
Detecção automática de baudrate
Porta série assíncrona
Suporta os modos I2C e SPI
Moritz, G.L. Introdução ao PIC
![Page 5: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/5.jpg)
CPU
Acumulador: registrador especial, sempre um dosoperandos da ULADecodificador de intruções: interpreta as instruçõesUnidade lógica aritmética (ULA): executa as operaçõesStatus Register (PSW): registrador de estado da ULA
Moritz, G.L. Introdução ao PIC
![Page 6: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/6.jpg)
Programação de microcontroladores
Um programa de microcontrolador é uma sequência decomandos da CPU (instruções) que realiza operações sobre amemória (registradores e memória de uso geral) ouperiféricos.
Moritz, G.L. Introdução ao PIC
![Page 7: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/7.jpg)
Memórias Internas
Esse microcontrolador tem três tipos de memórias:
Memória ROM (8 kbytes):Memória de programa Usada para armazenar oprograma ser executadoFeita com tecnologia FLASH seu conteúdo pode seralterado com o auxílio de um programador externoO chip pode ser reprogramado cerca de 100.000 vezes
Memória EEPROM (256 bytes):Memória de dados assim como ROM, seu conteúdo nãose apaga quando a alimentação é desligadaPode ser alterada durante a execução do programaPode ser escrita cerca de 1.000.000 vezes
Memória RAM (368 bytes):Registradores de função geral (GPR)Registradores de função especial (SFR)
Moritz, G.L. Introdução ao PIC
![Page 8: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/8.jpg)
Memória de Programa do PIC
Moritz, G.L. Introdução ao PIC
![Page 9: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/9.jpg)
Memória e Registradores
Registradores são memórias internas do microcontroladorque tem funções específicasRegistradores de memória: Armazenam dadosSFRs: Cumprem funções específicas dentro domicrocontrolador (Ex: Acionar uma porta)
Moritz, G.L. Introdução ao PIC
![Page 10: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/10.jpg)
Registradores do PIC (Memória de dados)
Moritz, G.L. Introdução ao PIC
![Page 11: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/11.jpg)
SFRs)
Moritz, G.L. Introdução ao PIC
![Page 12: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/12.jpg)
SFRs) - Exemplos
Como saber a função de cada bit dos registradores? -Datasheet
Moritz, G.L. Introdução ao PIC
![Page 13: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/13.jpg)
Periféricos do PIC - PORTS
O 16F628a possui duas portas que são comandadas pelosregistradores PORTA, PORTB, TRISA, TRISB
Moritz, G.L. Introdução ao PIC
![Page 14: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/14.jpg)
Periféricos do PIC - PORTS
Vamos estudar o funcionamento dos registradores!
Porque alguns pinos do processador têm mais de um nome?
Moritz, G.L. Introdução ao PIC
![Page 15: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/15.jpg)
TRISX
Moritz, G.L. Introdução ao PIC
![Page 16: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/16.jpg)
Entrada/Saída
Moritz, G.L. Introdução ao PIC
![Page 17: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/17.jpg)
Debouncing
Moritz, G.L. Introdução ao PIC
![Page 18: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/18.jpg)
Instruções
Instrução de máquina: Um comando codificado demaneira compreensível pelo decoder de instruçõesLinguagem de máquina: Conjunto de instruçõesreconhecidas pela CPUTipo de instruções:
Transferência: copia dados de uma localização para outraAritmética e lógica: Comanda a ULAControle: direciona a execução do programa
Moritz, G.L. Introdução ao PIC
![Page 19: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/19.jpg)
Conjunto de Instruções
O conjunto de instruções da arquitetura compreende todasas operações que a CPU é implementada para executar
1 Carrega y no registrador R12 Carrega z no registrador R23 Se R2 = 0, pule para instrução 64 Comande a ULA a dividir R1 por R2, armazenando o
resultado em R35 Armazena R3 em x6 Pare
Moritz, G.L. Introdução ao PIC
![Page 20: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/20.jpg)
Estrutura Básica de um Programa em Assembly
Moritz, G.L. Introdução ao PIC
![Page 21: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/21.jpg)
Diretivas
Diretivas: independente do processador característicada própria linguagem Assembly
Exemplos:
PROCESSOR: deve ser escrita no início de TODOS osprogramas. Define o tipo do microcontrolador
Processor 16f877
#INCLUDE: possibilita incluir um arquivo na compilação
#include <p16f877.inc>
Moritz, G.L. Introdução ao PIC
![Page 22: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/22.jpg)
Diretivas
Exemplos:
EQU: atribui um nome a uma posição específica damemória RAM. Cria uma VARIÁVEL
MAXIMUM EQU 0x25
CBLOCK e ENDC: cria uma série de variáveis
CBLOCK 0x20(tab) START ; endereço da memória 0x20(tab) RELE ; endereço da memória 0x21(tab) STOP ; endereço da memória 0x22(tab) LEFT ; endereço da memória 0x23(tab) RIGHT ; endereço da memória 0x24ENDC
Moritz, G.L. Introdução ao PIC
![Page 23: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/23.jpg)
Diretivas
Exemplos:ORG: especifica uma posição da memória para oPROGRAMA
ORG 0x100START ...
...ORG 0x1000
TABLE ......
END: todo programa deve obrigatoriamente ser terminadopor essa diretiva
...END ; Fim de programa
Moritz, G.L. Introdução ao PIC
![Page 24: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/24.jpg)
Subrotina
Moritz, G.L. Introdução ao PIC
![Page 25: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/25.jpg)
Conjunto de Instruções PIC
Grupos de Instruções
Transferência de dadosMOVWF
Lógica e AritméticaSoma, Subtração, Incremento, E, OU, XOR, ...
Operação com bits
Direcionadores de programaBTFSC, CALL
Moritz, G.L. Introdução ao PIC
![Page 26: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/26.jpg)
Conjunto de Instruções PIC16
Ações:
MOV (Move): Move um byte de origem para destino
ADD: Soma dois valores
SUB (Subtract): Subtrai
AND: Faz um “E” lógico
IOR (Inclusive OR): Faz um “OU” lógico
XOR (Exclusive OR): Faz um “XOR” lógico
CLR (Clear): Zera um byte
COM (Complement): Inverte os bits de um byte
DEC (Decrement): Subtrai 1
INC (Increment): Soma 1
SWAP: Inverte os nibbles de um byte
Moritz, G.L. Introdução ao PIC
![Page 27: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/27.jpg)
Conjunto de Instruções PIC16
Ações (continuação):
RR (Rotate Right): Rotaciona os bits de um byte umaposição à direita (o carry participa da rotação)
RL (Rotate Left): Rotaciona os bits de um byte umaposição à esquerda (o carry participa da rotação)
BC (Bit Clear): Zera um bit
BS (Bit Set): Seta um bit
BT (Bit Test): Testa o bit (se é 0 ou 1)
GOTO: Vai para um endereço determinado
CALL: Vai para um endereço determinado (mas memorizaposição atual para retornar)
RETURN: Retorna ao local onde havia o CALL
Moritz, G.L. Introdução ao PIC
![Page 28: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/28.jpg)
Conjunto de Instruções PIC16
Ações (continuação):
SLEEP: Entra em estado de dormência (poupa energia)
CLRWDT (Clear Watchdog): Restaura contagem dowatchdog
NOP (No Operation): Não faz nada, usado para pequenosajustes de tempo
Moritz, G.L. Introdução ao PIC
![Page 29: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/29.jpg)
Conjunto de Instruções PIC16
Especificadores:
L (Literal): número constante
F (File): endereço da RAM interna
W (Working register): acumulador
Referências:
f: refere-se ao endereço de um file
d: refere-se ao destino (W ou F apenas)
b: refere-se ao número do bit de um file
k: refere-se a um número constante
Moritz, G.L. Introdução ao PIC
![Page 30: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/30.jpg)
Conjunto de Instruções PIC16
Ação Condicional:
S (Skip): pula a próxima instrução
Condições:
S (if set): se o bit testado for 1
C (if cleared): se o bit testado for 0
Z (if zero): se o byte for zero
Moritz, G.L. Introdução ao PIC
![Page 31: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/31.jpg)
Conjunto de Instruções PIC16
EXEMPLOS:
“Move Literal to Work”Move (copia) o valor 0x1B para o acumulador
Moritz, G.L. Introdução ao PIC
![Page 32: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/32.jpg)
Conjunto de Instruções PIC16
EXEMPLOS:
“Move Work to File”Move (copia) o valor do acumulador para o file localizadono endereço 0x1B da RAM
Moritz, G.L. Introdução ao PIC
![Page 33: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/33.jpg)
Conjunto de Instruções PIC16
EXEMPLOS:
“Bit Set File”Seta o bit 3 do file 0x21
Moritz, G.L. Introdução ao PIC
![Page 34: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/34.jpg)
Conjunto de Instruções PIC16
EXEMPLOS:
“Bit Test File Skip if Cleared”Testa o bit 3 do file 0x21; se o bit for zero, pula a próximainstrução
Moritz, G.L. Introdução ao PIC
![Page 35: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/35.jpg)
Conjunto de Instruções PIC16
EXEMPLOS:
“Decrement File”Decrementa o valor do file 0x1C e coloca o resultado nopróprio file
Moritz, G.L. Introdução ao PIC
![Page 36: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/36.jpg)
Conjunto de Instruções PIC16
EXEMPLOS:
“Decrement File Skip if Zero”Decrementa o valor do file 0x1C e coloca o resultado nopróprio file; se o byte for zero, pula a próxima instrução
Moritz, G.L. Introdução ao PIC
![Page 37: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/37.jpg)
Fluxogramas
Elementos gráficos utilizados para estabelecer uma sequênciaa uma tarefa a ser realizada. Possuem três elementos básicos:
Moritz, G.L. Introdução ao PIC
![Page 38: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/38.jpg)
Exemplo: Contador
a) Faça o programa que realize a contagem de 0 a 9 navariável CONT, retornando novamente a 0 e reiniciando acontagem.
Moritz, G.L. Introdução ao PIC
![Page 39: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/39.jpg)
Exemplo: Contador
Programação Assembly
L2 MOVLW 0x00 ; W=0MOVWF CONT ; W -> CONT
L1 INCF CONT,F ; CONT+1 -> CONT
MOVF CONT,W ; CONT -> WSUBLW 0x09 ; 0x09-W -> WBTFSS STATUS,Z ; Deu zero?GOTO L1 ; nãoGOTO L2 ; sim
Moritz, G.L. Introdução ao PIC
![Page 40: Introdução ao PIC - UTFPR](https://reader031.vdocuments.site/reader031/viewer/2022012508/6185864e7c88fd0a111295a5/html5/thumbnails/40.jpg)
Exemplo: Contador
b) Modificar o programa anterior de forma que a contagemseja regressiva de 9 até 0.
Moritz, G.L. Introdução ao PIC