40
Introdução ao PIC Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 6 de novembro de 2013 Moritz, G.L. Introdução ao PIC

Introdução ao PIC - UTFPR

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução ao PIC - UTFPR

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

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

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

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

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

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

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

Memória de Programa do PIC

Moritz, G.L. Introdução ao PIC

Page 9: Introdução ao PIC - UTFPR

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

Registradores do PIC (Memória de dados)

Moritz, G.L. Introdução ao PIC

Page 11: Introdução ao PIC - UTFPR

SFRs)

Moritz, G.L. Introdução ao PIC

Page 12: Introdução ao PIC - UTFPR

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

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

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

TRISX

Moritz, G.L. Introdução ao PIC

Page 16: Introdução ao PIC - UTFPR

Entrada/Saída

Moritz, G.L. Introdução ao PIC

Page 17: Introdução ao PIC - UTFPR

Debouncing

Moritz, G.L. Introdução ao PIC

Page 18: Introdução ao PIC - UTFPR

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

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

Estrutura Básica de um Programa em Assembly

Moritz, G.L. Introdução ao PIC

Page 21: Introdução ao PIC - UTFPR

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

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

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

Subrotina

Moritz, G.L. Introdução ao PIC

Page 25: Introdução ao PIC - UTFPR

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Exemplo: Contador

b) Modificar o programa anterior de forma que a contagemseja regressiva de 9 até 0.

Moritz, G.L. Introdução ao PIC