Nesse exemplo mostro como criar um PWM por software. Com esse conceito é possível ter mais de um sinal PWM, independente do hardware do microcontrolador.

Usar no Proteus 7.10 ou superior.


Fazer o download:[PIC][MIKROC][PROTEUS] Gerando PWM por software


Segue o código:

[sections] [section title=”Código Fonte”]

/*
DATEK Tecnologia Eletrônica Ltda.

********************************************************************************
PROGRAMA EXEMPLO: Mostrar como criar um PWM baseado em software.
OBJETIVO: Aprender como criar um PWM baseado em software.
AUTOR: Fabio Mulero.[fabio@datek.com.br] ********************************************************************************
MICROCONTROLADOR: PIC18F4550.

PLACA DE DESENVOLVIMENTO: SIMULAÇÃO NO PROTEUS

SOFTWARE: MikroC PRO for PIC Versão: 6.0

********************************************************************************
*/

// Variaveis globais
unsigned char ucDutyCycle1; // Guarda duty-cycle atual
unsigned char ucAuxContador; // Auxiliar de contagem
/* Calculo da Frequencia do PWM
Frequencia = 1/(Tempo do Timer * 255)
Frequencia = 1/(1us*255)
Frequencia = 1/(255us)
Frequencia =~ 400Hz
*/
// Alias
// PMW por Software
sbit PWM1 at RA0_bit;

// Pin direction
sbit PWM1_Direction at TRISA0_bit;

// Funções auxiliares
//Timer0
//Prescaler 1:1; TMR0 Preload = 63535; Tempo de interrupção : 10 us

// Inicializa o timer 0
void InitTimer0(){
T0CON = 0x88;
TMR0H = 0xFF;
TMR0L = 0xED;
GIE_bit = 1;
TMR0IE_bit = 1;
}

void interrupt(){
if (TMR0IF_bit){// Verifica a interrupção do timer 0
TMR0IF_bit = 0;
TMR0H = 0xFF;
TMR0L = 0xED;
if(!ucAuxContador++)// Variavel = a zero
{
PWM1 = 1; // Liga PWM
}
else if(ucAuxContador==ucDutyCycle1)
{
PWM1 = 0; // Desliga PWM
}
}
}

// Função principal
void main()
{
ADCON1=0X0F;
InitTimer0();
PWM1_Direction = 0; // Configurado como saida
while(1)
{
ucDutyCycle1=128; // Incrementa variavel Duty-cycle
Delay_ms(1000); // Aguarda 1 Segundo
}//fim do while
}//fim do main

[/section] [section title=”Esquema Elétrico”]
[pic][mikroc][proteus] gerando pwm por software
Gerando PWM por software
[/section] [/sections]
Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[PIC][MIKROC][PROTEUS] Gerando PWM por software
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: