22
Sistemas Microcontrolados Função dos Registradores no PIC Prof. Sergio F. Ribeiro Ciência da Computação Microcontroladores e Robótica - FACAPE Os Registradores Especiais que Controlam Tudo Vimos que configurações podem ser feitas para definir as portas como entradas ou saídas, ativar as interrupções, ativar a contagem do TMR0 por sinal externo, etc. Mas, afinal, onde ficam essas configurações? Como vimos anteriormente (em memória de dados), o PIC possui uma série de registradores especiais, denominados SFR (Special Function Registers), que servem exatamente para guardar a configuração e o estado atual da máquina. Veremos agora um apanhado geral sobre esses registradores. Mais detalhes serão comentados quando formos partir pra programação do PIC. 2

Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

  • Upload
    hathu

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Sistemas Microcontrolados

Função dos Registradores no PIC

Prof. Sergio F. Ribeiro

Ciência da Computação

Microcontroladores e Robótica - FACAPE

Os Registradores Especiais que Controlam Tudo

� Vimos que configurações podem ser feitas para definir as portas como entradas ou saídas, ativar as interrupções, ativar a contagem do TMR0 por sinal externo, etc.

� Mas, afinal, onde ficam essas configurações?� Como vimos anteriormente (em memória de dados), o PIC

possui uma série de registradores especiais, denominados SFR (Special Function Registers), que servem exatamente para guardar a configuração e o estado atual da máquina.

� Veremos agora um apanhado geral sobre esses registradores.

� Mais detalhes serão comentados quando formos partir pra programação do PIC.

2

Page 2: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

OPTION� Esse registrador serve para configurar uma série de

opções para a operação do microcontrolador: habilitação dos pull-ups do PortB, configurações do prescaler, configurações do TMR0 e seleção da borda para a interrupção externa.

3

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

INTCON, PIR1 e PIE1� Esses registradores servem para configurar e identificar

todas as interrupções existentes no PIC16F628A.� O registrador INTCON opera com as interrupções

principais: Timer 0, interrupção externa e interrupção por mudança de estado.

� Além disso, o INTCON possui a chave geral de todas as interrupções (GIE) e a chave geral para as interrupções de periféricos.

� Os registradores PIR1 e PIE1 são os responsáveis pelas interrupções de periféricos: EEPROM, Comparadores, USART, CCP, Timer 1 e Timer 2.

4

Page 3: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

INTCON, PIR1 e PIE1

5

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

TRIS� Esses registradores servem para configurar os pinos das

portas como entrada ou saída.� Quando é colocado “1” em um bit do TRIS, o pino

relacionado a ele é configurado como entrada.� Para configurar o pino como saída, deve-se escrever “0”

no bit relacionado.� Uma maneira prática para memorizar essa regra é

associar o “1” ao “I” de Input (Entrada), e o “0” ao “O” de Output (saída).

� Para configurar o PortA, deve ser utilizado o TrisA, e para configurar o PortB, deve ser utilizado o TrisB.

6

Page 4: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

PORTS� Como já foi visto, o PIC16F628A possui duas portas: PortA

e PortB.

� Quando um pino é configurado como entrada, ao lermos o seu bit relacionado, encontraremos diretamente o nível lógico aplicado a esse pino.

� Da mesma maneira, ao configurarmos um pino como saída, podemos alterar seu estado escrevendo diretamente no bit relacionado.

7

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

8

Page 5: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

TIMER 0� O TMR0 é um registrador de 8 bits que pode ser acessado

diretamente na memória, para a leitura e para a escrita.� A diferença entre ele e os demais registradores é que seu

incremento é automático e pode ser feito pelo clock da máquina ou por um sinal externo.

� Vale lembrar que o estouro desse contador pode gerar uma interrupção.

� O estouro ocorre quando o contador atinge seu valor máximo, e logo em seguida volta a zerar.

� Os registradores responsáveis pela configuração do Timer 0 são: INTCON e OPTION.

9

Microcontroladores e Robótica - FACAPE 10

Page 6: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE 11

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

TIMER 1� O TMR1 é um contador de 16 bits que também pode ser

acessado diretamente na memória, tanto para a leitura quanto para a escrita.

� No entanto, devido ao seu tamanho, esse registrador é armazenado em dois endereços: TMR1H (parte alta) e TMR1L (parte baixa).

� Além disso, o registrador T1CON é o responsável pelas configurações relacionadas ao Timer1: habilitação, prescaler, oscilador externo próprio, origem do incremento (interno ou externo) e sincronismo de incremento.

� O estouro desse contador pode gerar uma interrupção.12

Page 7: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE 13

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

TIMER 2� O Timer 2 é um temporizador de 8 bits com um prescaler

e um postscaler.� O Timer 2 pode ser usado como base de tempo PWM

para o modo PWM do módulo CCP.� O TMR2 é outro contador de 8 bits também acessado

diretamente na memória para leitura e escrita.� O registrador T2CON é o responsável pelas configurações

do Timer 2: habilitação, prescaler e postscaler.� Uma interrupção é gerada quando o valor do TMR2 se

iguala ao valor de um outro registrador chamado PR2.

14

Page 8: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE 15

Microcontroladores e Robótica - FACAPE

Registradores de Função Especial

CCP1CON, CCPR1H e CCPR1L� Através do módulo CCP é possível acessar três modos

diferentes de operação: Capture, Compare e PWM.� O registrador CCP1CON é o responsável pela configuração

desse modo.� O módulo CCP utiliza ainda o TMR1 como base de tempo

e os registradores complementares CCPR1H (parte alta) e CCPR1L (parte baixa).

16

Page 9: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE 17

Microcontroladores e Robótica - FACAPE

Módulo CCP

� O módulo CCP (Capture/Compare/PWM) é um periférico que permite, ao programador, controlar e medir diversos eventos.

� Este módulo pode atuar no modo:� captura� comparação� modulação por largura de pulso (Pulse Width Modulation – PWM)

� Cada um destes modos podem ser configurados via registradores especiais.

18

Page 10: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Módulo CCP

19

Microcontroladores e Robótica - FACAPE

Módulo CCP

20

Page 11: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Módulo CCP – Modo Capture� Permite medir a duração de tempo durante um evento.� Os registradores CCPR1H:CCPR1L capturam o valor de 16

bits do par de registradores do Timer 1 (TMR1H:TMR1L) quando um evento ocorre no pino RB3/CCP1 (pino 9).

� Esse evento pode ser:� cada borda de descida� cada borda de subida� cada 4ª borda de subida� cada 16ª borda de subida

Quando uma captura ocorre, a flagde interrupção CCP1IF é setada. Estaflag deve ser limpa por software.

Obs: para que a captura ocorra, o Timer 1 deve estar rodando.21

Microcontroladores e Robótica - FACAPE

Módulo CCP – Modo Compare� O valor do CCP (registradores CCPR1H:CCPR1L) é

constantemente comparado com o valor do Timer 1 (TMR1H:TMR1L).

� Quando os valores coincidem, a flag CCPIF é setada e a interrupção ocorre.

� Além disso, pode-sezerar o Timer 1 ouforçar um estado nopino RB3/CCP1(setar, resetar oupermanecer inalterado).

Este modo pode ser usado para gerar um pulso do tamanho que desejar.

22

Page 12: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Controle PWM

� O PWM (Pulse Width Modulation – Modulação por Largura de Pulso) pode ser usado para o controle de velocidade de motores e da intensidade luminosa de LEDs.

� A maneira mais simples de se controlar a potência aplicada em uma carga é através de um reostato em série.

Este é um tipo de controle de potência linear.Desvantagem: grande quantidade de calor gerada.

23

Microcontroladores e Robótica - FACAPE

Controle PWM

� Os controles de potência, entre outros circuitos, utilizam o conceito PWM (Pulse Width Modulation) como base de seu funcionamento.

� A idéia do PWM é o uso de um interruptor de ação muito rápida aplicado a uma carga que deve ser controlada.

Interruptor aberto ⇒ sem corrente na carga e potência nula.Interruptor fechado ⇒ a carga recebe a tensão total da fonte, e potência é máxima.

24

Page 13: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Controle PWM� Como fazer para obter uma potência intermediária,

digamos 50%, aplicada à carga?� deve-se abrir e fechar a chave rapidamente de modo a ficar

50% do tempo aberta e 50% fechada.� isto significa que, em média, teremos metade do tempo com

corrente e metade do tempo sem corrente.

t1 ⇒ chave fechadat2 ⇒ chave aberta

A relação entre o tempo de um pulso e a duração de um ciclo completo de operação do interruptor nos define o ciclo ativo (duty cycle).

25

Controle PWM� Fixando a frequência e variando-se a largura do pulso

tem-se ciclos ativos diferentes.� Assim, quando a largura de pulso varia de zero até o

máximo, a potência também varia na mesma proporção.

Este princípio é usado justamente no controle PWM.

Microcontroladores e Robótica - FACAPE 26

Page 14: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Módulo CCP – Modo PWM� O modo PWM permite utilizar sinais modulados em largura

de pulso.� Consiste em representar um valor pelo duty-cycle (tempo

em alto) de um trem de pulsos de frequência fixa.� Sua resolução máxima é de 10 bits.

� isto significa que 1023 corresponde a 100% de duty-cycle.� usando uma regra de três simples podemos determinar a quanto

corresponde 30%, 25%, 99%, etc.

� É chamada de modulação porque permite carregar uma informação (expressa no duty-cycle) em uma portadora (trem de pulsos).

� O PWM pode ser utilizado no acionamento de cargas DC, controle de motores, etc.

27

Microcontroladores e Robótica - FACAPE

Módulo CCP – Modo PWM

� O PWM precisa de uma base de tempo que dará a frequência do sinal.

� O módulo CCP utiliza o Timer2 para conseguir essa base de tempo para o PWM.

� Também é necessário que o pino RB3/CCP1 seja configurado como saída.

� Usaremos o modo PWM para o controle de velocidade do motor DC em um robô.

� Mais detalhes de configuração do modo PWM serão vistos durante a programação do módulo CCP na linguagem C.

28

Page 15: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

USART� A USART (Interface Serial Universal Síncrona/Assíncrona)

também chamada de SCI (Interface de Comunicação Serial), é um dispositivo interno para fazer comunicação serial com elementos externos como:� computadores� modens� terminais� memórias� conversores A/D e D/A

� A USART possui dois registradores de deslocamento:� TSR ⇒ responsável pela conversão paralelo/serial (transmissão).� RSR ⇒ responsável pela conversão serial/paralelo (recepção).

Esses dois registradores possibilitam a transmissão e recepção de dados simultânea (full-duplex no modo assíncrono). No modo síncrono, só é possível a comunicação half-duplex (transmissão e recepção alternada).

29

Microcontroladores e Robótica - FACAPE

USART� Os sinais transmitidos/recebidos pela USART fluem por dois

pinos externos do PIC16F628A: RB1 e RB2.� RB1 ⇒ atua como entrada (recepção de dados) no modo

assíncrono. E atua como entrada/saída de dados no modo síncrono.� RB2 ⇒ atua como saída (transmissão de dados) no modo

assíncrono e como saída de clock no modo síncrono.

� A USART faz uso do protocolo RS-232 para a comunicação serial de dados.

� Os níveis de tensão utilizados na comunicação RS-232 não são compatíveis com os níveis CMOS/TTL.

� Para conectar o microcontrolador a uma porta serial do computador é necessário utilizar conversores de nível.� Um dos mais conhecidos é o MAX232.

30

Page 16: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Conversor Analógico-Digital� O conversor A/D converte uma grandeza analógica

(temperatura, luminosidade, etc.) em um valor digital (representação binária) proporcional a ela.� Esse valor depende diretamente da resolução do conversor e da

tensão de referência (Vref) utilizada na conversão, podendo variar de 0 a (2resolução – 1) unidades.

Equação de conversão de uma tensão de entrada Vin para um valor digital:

�������� �� ∗ �2

� � 1�

���_��� � ���_���

31

Microcontroladores e Robótica - FACAPE

Conversor Analógico-Digital

� O PIC16F628A não possui um conversor A/D.� O conversor A/D do PIC18F4550 possui 13 canais

analógicos multiplexados (AN0 a AN12) e uma resolução de 10 bits.

� Os pinos configurados como entrada analógica devem ser definidos como entrada através do registrador TRIS.

� Os registradores ADCON0 e ADCON1 são responsáveis pela configuração do conversor A/D do PIC18F4550.

� Mais detalhes sobre o uso do conversor A/D serão vistos durante a programação do PIC na linguagem C.

32

Page 17: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Conversor Analógico-Digital

33

Microcontroladores e Robótica - FACAPE

Conversor Analógico-Digital

34

Page 18: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Conversor Analógico-Digital

35

Microcontroladores e Robótica - FACAPE

Gravação do Microcontrolador� A gravação do microcontrolador PIC pode ser realizada

sem que o componente seja retirado da placa ou protoboard (gravação in-circuit ou ICSP).

� Essa gravação é feita de forma serial utilizando somente dois pinos: RB6/PGC (pino 12) para o clock e RB7/PGD (pino 13) para envio de dados.

� Além dos pinos RB6 e RB7, é necessário que o pino MCLR/VPP receba uma tensão de 13VDC ± 0.5V durante o processo de gravação.

� Também é necessário que o microcontrolador esteja devidamente alimentado, portanto VDD e VSS devem estar também conectados.

36

Page 19: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Gravação do Microcontrolador

Gravador de PIC: K150 Software do gravador: microBrn

37

Gravação do Microcontrolador

Gravação in-circuit(ICSP)

Microcontroladores e Robótica - FACAPE 38

Page 20: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Simulação no Proteus� No ISIS Proteus é possível criar esquemas elétricos e

realizar simulações destes esquemas no próprio ambiente.

Microcontroladores e Robótica - FACAPE 39

Simulação no Proteus� Utilizaremos o Proteus pra realizar a simulação de qualquer

sistema microcontrolado antes de criá-lo na prática. Ex:

Microcontroladores e Robótica - FACAPE 40

Page 21: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

� Como ferramentas para o desenvolvimento de aplicações para o PIC16F628A são usados o simulador Proteus, o ambiente de desenvolvimento MPLAB e um compilador C.

� O Proteus é um ótimo software de simulação de circuitos.

� Usaremos o MPLAB como meio para gravar o PIC.

� no interior do kit educacional no laboratório de hardware há um gravador de microcontroladores PIC chamado PICKIT2.

� Há muitos compiladores C para microcontroladores PIC, como: PCW, C18, MikroC, entre outros.

Microcontroladores e Robótica - FACAPE

Ferramentas de Desenvolvimento

41

Microcontroladores e Robótica - FACAPE

Ferramentas de Desenvolvimento

� O compilador C a ser usado no laboratório é o MikroC da Mikroelektronika.

� O MikroC é um dos compiladores mais adotados para a programação de microcontroladores PIC.

� Isso se deve ao fato dele gerar um firmware menor, ocupando menos espaço de memória no PIC.

� E outra vantagem do MikroC é sua total compatibilidade com o C padrão ANSI e a facilidade de programar em sua linguagem C, com uma curva de aprendizado mais curta.

� Ao programar em C, recomenda-se consultar o datasheetdo PIC16F628A, assim como o help do compilador.

42

Page 22: Sistemas Microcontrolados - ccfacape.webnode.com · programação do PIC. 2. Microcontroladores e Robótica -FACAPE Registradores de Função Especial OPTION Esse registrador serve

Microcontroladores e Robótica - FACAPE

Bibliografia

� Desbravando o PIC – Ampliado e Atualizado para PIC16F628A – David José de Souza.

� Datasheet do PIC16F628A.

� Material online de Fábio B. de Souza –www.fbseletronica.wordpress.com

43