PWM????

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

PWM????

Mensagempor mindú » 29 Mar 2007 17:06

Olá galera!!
Gostaria de saber se alguém tem algum exemplo de PWM feito em C para controlar a intesidade de LED's de alta potência usando o AT89S8252.
Vlw pessoal!!
mindú
 
Mensagens: 2
Registrado em: 21 Mar 2007 16:32

Mensagempor rebelk » 11 Abr 2007 11:38

//
// MODULAÇÃO EM PWM por soft

// 100htz 50 passos


#include <at898252.h>
// #include <binario.h>
#include <delay_ms.h>

#define saida_pwm P1_7

unsigned char serra=0;
unsigned char set_pwm=0;
// unsigned char A=0;

bit dowm=0;
bit up=1;

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

main()
{

TMOD=0x11;
saida_pwm=0;

ET1=1;
EA=1; // habilita todas as interr.

TH1=0xff;
TL1=200;
TR1=1; // ; libera o timer/contador0 para começar a contagem

while(1)
{

set_pwm++;
if(set_pwm > 100) set_pwm=1;
delay_ms(500);
}


}
/* *****************************************************************/
/*******************************************************************/
/* interrupção do timer 1 */

timer1 () interrupt 3
{

TR1=0;
P1_6=!P1_6;
if(serra < set_pwm )
{
saida_pwm=1;
}
else
{
saida_pwm=0;
}

if( up )
{
serra++;
serra++;
if(serra >= 100)
{
up=0;
dowm=1;
}
}

if( dowm )
{
serra--;
serra--;
if(serra == 0 )
{
up=1;
dowm=0;
}
}

TH1=0xff;
TL1=85;
TF1=0;
TR1=1; // ; libera o timer/contador0 para começar a contagem

}

/*===================================================================== */





// delay_ms.h

// função para milisegundos ou microsegundos
// NÃO ESQUECER DE PROGAMAr O TMOD

/* ********************************************************************** */
/* função para x milissegundos */

delay_ms(unsigned int ms)
{
unsigned int tms=0;
while(tms!=ms)
{
TL0=0x17;
TH0=0xfc; // 1ms
TR0=1;
while (!TF0){}
TF0=0;
TR0=0;
tms++;
}
}

/* ********************************************************************************************* */
/* ********************************************************************************************* */
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x