PWM com PIC

Este código foi adaptado de um exemplo do site: http://gcbasic.sourceforge.net/newfiles/help/pwmout.htm

Para ver mais exemplos em GCBasic acesse o help em http://gcbasic.sourceforge.net/help/

Para compilar usamos o software Prithvi Development Studio em sua versão portatil. Para baixar o Prithvi Portable acesse https://sites.google.com/site/kitoeag/informatica/prithvi-portable

Para iniciar a programar em GCBasic veja este video: http://youtu.be/NFfLw_ibIcY

O código fonte abaixo faz a leitura da porta analógica RA0 do PIC16F877A e gera o sinal PWM na porta RB0.

Obs.: Para obter mais explicações sobre PWM via software nesta linguagem de programação acesse:

http://gcbasic.sourceforge.net/newfiles/help/pwmout.htm

PWM via Software

#chip 16F877A, 4 'Seleciona o modelo do PIC e a frequencia do cristal

#define PWM_Out1 PORTB.0 'Define a porta que emitira sinal PWM

dir PWM_Out1 out 'Define o PORTB.0 como saida

dir PORTA.0 in 'Define PORTA.0 como entrada

Do

If ReadAD(AN0) = 255 then

Set PWM_Out1 on

Else

PWMOut 1, ReadAD(AN0), 100

End if

loop

O código abaixo faz o mesmo que o código anterior, porém, agora o PWM é gerado pelo módulo CCP interno do PIC.

Obs.: Para saber mais sobre como usar o PWM via Hardware na linguagem GCBasic acesse:

http://gcbasic.sourceforge.net/newfiles/help/hpwm.htm

PWM via Hardware

#chip 16F877A, 4 ' Modelo do PIC e a frequencia do cristal

DIR PORTC.2 out ' Define PORTC.2 como saida

dir PORTA.0 in ' Define PORTA.0 como entrada

Do

If ReadAD(AN0) = 255 then

PORTC.2 = 1

else

HPWM 1, 1, ReadAD(AN0)

end if

loop

Abaixo temos o código HEX e a simulação no proteus.