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.