Buscar

COMO UTILIZAR PWM E COMPARADOR NO PIC16F877A

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ 
DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA 
CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA – TECNOLOGIA EM 
AUTOMAÇÃO INDUSTRIAL 
 
 
Sistemas Digitais e Microcontrolados 
Módulos Capture/Compare/PWM - PIC16F877A 
 
Prof. Amauri Assef 
amauriassef@utfpr.edu.br 
 
Módulos Capture/Compare/PWM 
2 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Características dos módulos CCP 
 2 módulos Capture/Compare/PWM 
 CCP1 
 CCP2 
 Capture 
 Registro de 16 bits 
 Resolução máxima de 12,5 ns 
 Compare 
 Registro de 16 bits 
 Resolução máxima de 200 ns 
 PWM (Pulse Width Modulation) 
 Modulação por largura de pulso 
 Resolução máxima de 10 bits 
Módulos Capture/Compare/PWM 
3 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Recurso dos Timers 
 Timer 1 – 16 bits 
 Timer 2 – 8 bits 
 
Capture 
 No modo de Captura, os registros CCPR1H:CCPR1L capturam o valor de 16 bits do 
par de registradores TMR1 (Timer 1) quando um evento ocorre no pino RC2/CCP1 
 Um evento é definido como: 
 Cada borda de descida 
 Cada borda de subida 
 Cada 4ª borda de subida 
 Cada 16ª borda de descida 
 
Módulos Capture/Compare/PWM 
4 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Compare 
 No modo de Comparação, os registros CCPR1H:CCPR1L são constantemente 
comparados com o par de registradores TMR1 (Timer 1). Quando os valores 
coincidem o pino RC2/CCP1 pode ser: 
 Setado 
 Resetado 
 Permanecer inalterado 
 
Módulos Capture/Compare/PWM 
5 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
PWM (Pulse Width Modulation) 
 No modo PWM – modulação por largura de pulso – o pino CCPx gera uma saída 
PWM com resolução de 10 bits 
 Como o CCP1 é multiplexado como o latch de dado do PORTC, o registro TRISC, bit 
2, deve ser zerado para configurar o pino RC2/CCP1 como saída 
 
Módulos Capture/Compare/PWM 
6 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Registrador de configuração do módulo CCPx 
 
 
 
 
 CCPxX:CPxY: Bits LSB do PWM 
 Utilizado somente no modo PWM 
 CCPxM3:CCPxM0: Modo de seleção dos CCPx 
 0000 – CCP desabilitado 
 0100 – Capture a cada borda de descida 
 0101 - Capture a cada borda de subida 
 0110 - Capture a cada 4ª borda de subida 
 0111 - Capture a cada 16ª borda de subida 
 1000 – Compare, seta saída 
 1001 – Compare – reseta saída 
 1010 – Compare – gera interrupção sem afetar o pino 
 1011 – Compare – trigger de evento especial (A/D) 
 11xx - PWM 
 
 
 
Módulos Capture/Compare/PWM 
7 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Diagrama em blocos simplificado do PWM 
Módulos Capture/Compare/PWM 
8 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Cálculo do período PWM 
 O período do PWM é especificado escrevendo no registro PR2 
 O período pode ser calculado através da seguinte equação: 
 
 
 Tosc é o período do oscilador (clock) 
 
 
Período PWM = [(PR2) + 1)] . 4 . Tosc . TMR2 Prescaler 
Módulos Capture/Compare/PWM 
9 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Exemplo de cálculo do período PWM 
 Parâmetros 
 Período de 50 μs (f = 20 kHz) 
 Frequência do cristal de 8 MHz (Tosc = 125 ns) 
 Prescaler do Timer 2 igual a 1:1 
 Calcular o valor de carga do registro PR2 (banco 1) 
 
 
Período PWM = [(PR2) + 1)] . 4 . Tosc . TMR2 Prescaler 
50 μs = [(PR2 + 1)] . 4 . 125ns . 1 
PR2 = 99 
Módulos Capture/Compare/PWM 
10 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Cálculo do duty cycle 
 O duty cycle do PWM é especificado através da escrita nos registradores CCPR1L 
concatenado com o CCP1CON, bits 5 e 4, com resolução de 10 bits 
 O duty cycle pode ser calculado através da seguinte equação: 
 
 
 Tosc é o período do oscilador (clock) 
 
 
Duty Cycle PWM = (CCPR1L: CCP1CON <5:4>) . Tosc . TMR2 Prescaler 
Calcular o valor de carga para 
razão de trabalho igual a 50%: 
 
Obs: O valor deve ser <= 1023 
Módulos Capture/Compare/PWM 
11 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Configuração do Timer 2 
 
 
 
 
 TOUTPS3:TOUTPS0: Seleção do postscale do Timer 2 
 0000 – 1:1 
 .... 
 1111 – 1:16 
 TMRON2: Bit para ligar o Timer 2 
 0 – Timer 2 desligado 
 1 – Timer 2 ligado 
 T2CKPS1:T2CKPS0: Seleção do prescaler do Timer 2 
 00 – 1:1 
 01 – 1:4 
 1x – 1: 16 
 
 
 
Módulos Capture/Compare/PWM 
12 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Exemplo de hardware 
 
 
Módulos Capture/Compare/PWM 
13 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Exemplo: 
 
1) Escrever o firmware para gerar um sinal PWM no pino RC2/CCP1 com frequência 
de 20 kHz (período = 50 μs) e duty cycle inicial de 20% (50 μs . 0,2 = 10 μs): 
 
2) Escrever o firmware para ler o trimpot do canal 1, normalizar o resultado em 8 bits 
e enviar para a função de controle da razão de trabalho do módulo PWM1. Utilizar 
frequência de 20kHz: 
 
3) Escrever o firmware para controlar o brilho de um LED conectado no pino RC2 
através de um trimpot conectado no pino RA0: 
 
 
 
Módulos Capture/Compare/PWM 
14 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
1) Programa principal (Assembly): 
 
INICIO BANK1 
 MOVLW 0X00 
 MOVWF TRISC ; CONFIGURA PORTC COMO SAÍDA 
 MOVLW B'00000000' ; TIMER 0 -> PRESCALER DE 1:2 
 MOVWF OPTION_REG 
 BANK0 
 
 BANK1 
 MOVLW D'99' ; VALOR PARA PERÍODO DE 50us (20kHz) 
 MOVWF PR2 
 BANK0 
 MOVLW D'20' ; 80/4 = 20%, PARA NÃO UTILIZAR 2 BITS 
 MOVWF CCPR1L ; DA PARTE BAIXA 
 
Configura o 
PIC16F877A 
Módulos Capture/Compare/PWM 
15 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Continuação: 
 
 CLRF TMR2 
 MOVLW B'00000100' 
; ||||||||-> T2CKPS0 - PRESCALE - 00 = 1:1 
; |||||||--> T2CKPS1 
; ||||||---> TMR2ON 
; |||||----> TOUTPS0 - POSTSCALE - 0000 = 1:1 
; ||||-----> TOUTPS1 
; |||------> TOUTPS2 
; ||-------> TOUTPS3 
; |--------> NÃO IMPLEMENT. 
 MOVWF T2CON 
 MOVLW B'00001100' ; CONTROLE DO PWM 
; ||||||||-> CCP1M0 - SELEÇÃO DE MODO DO CCP1 - 11XX PARA PWM 
; |||||||--> CCP1M1 
; ||||||---> CCP1M2 
; |||||----> CCP1M3 
; ||||-----> CCP1Y - PINOS LSB DO DUTY CYCLE DO PWM 
; |||------> CCP1X 
; ||-------> NÃO IMPLEMENT. 
; |--------> NÃO IMPLEMENT. 
 MOVWF CCP1CON 
 GOTO $ 
 END 
Módulos Capture/Compare/PWM 
16 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
1) Programa principal (C): 
 
unsigned short i; 
 
void main() { 
 TRISC = 0x00; // PORTC COMO SAÍDA 
 PORTC = 0x00; // VALOR INICIAL = 00 
 
 Pwm_Init(20000); // INICIALIZA O MODULO PWM COM 20kHz 
 Pwm_Start(); // INICIA PWM 
 
 while(1) { 
 for (i = 1; i <= 255; i++) 
 { 
 Pwm_Change_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10ms 
 Delay_ms(5); 
 } 
 } 
} 
 
 
Módulos Capture/Compare/PWM 
17 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
1) Programa principal (C) para o Micro C Pro: 
 
unsigned short i; 
 
void main() { 
 TRISC = 0x00; // PORTC COMO SAÍDA 
 PORTC = 0x00; // VALOR INICIAL = 00 
 
 PWM1_Init(20000); // INICIALIZA O MODULO PWM COM 20kHz 
 PWM1_Start(); // INICIA PWM 
 
 while(1) { 
 for (i = 1; i < 255; i++) 
 { 
 PWM1_Set_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10msDelay_ms(5); 
 } 
 } 
} 
 
 
Módulos Capture/Compare/PWM 
18 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
Exemplo com motor DC: 
 
1) Escrever o firmware para fazer o controle de dois motores DC de 5V. Considerando 
o CI L293D (ponte H dupla), utilizar os pinos RB0 e RB1 para controle do sentido 
dos motores e dois sinais PWM do PIC para controle da velocidade (RC1 e RC2), 
que será ajustada conforme o valor de um trimpot conectado no pino RA1 (canal 
1). Se chave 1 (CH_1) pressionada, o motor deve girar no sentido horário, caso 
contrário, anti-horário. Obs: Ler o valor do trimpot a cada 10 ms. 
 
2) A partir do exercício anteiror, incluir um trimpot para controle de outro motor com 
os pinos RD4 e RD5. Utilizar a chave (CH_2) para selecionar o sentido de giro do 
segundo motor. 
 
 
Módulos Capture/Compare/PWM 
19 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
 
 
 
CI L293D 
Módulos Capture/Compare/PWM 
20 
UTFPR – Campus Curitiba 
Prof. Amauri Assef 
 
 
 
Fonte:http://www.mecatronicaatual.com.br/educacao/1835-sensor-de-
proximidade-infravermelho-com-pci-12f675?start=1 
Exemplo com foto-emissor infravermelho e foto-receptor:

Continue navegando