delay 100 microsegundos

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor valdotc » 03 Out 2008 09:46

Salve galera,

Apenas para encerrar o tópico segue o programa completo para a rotina de 100us.
Este é um programa simplificado onde o P1_0 varia de acordo com o tempo alterado.
Por exemplo t=200= 200 x 100us = 20 ms
Atenção as variáveis ( float, int, char ) se forem usar em outros programas mais complexos, pois eu tive um problema assim quando incluir teclado, display e funções para calcular o tempo. estava usando float, mas tive que converter o resultado para int, para enviar para port.

[#include <stdio.h>
#include <at89x52.h>
#include <paulmon2.h>

/*ROTINA DE DELAY COM PARÂMETRO EM MILISEGUNDOS*/


void delay_100micros(unsigned int tempo);

void main (void)
{
char t=200;



while (1)

{
P1_0 = 1;
delay_100micros(t);
P1_0 = 0;
delay_100micros(t);

}


}

void delay_100micros(unsigned int tempo)
{
unsigned int c;
for (c=0 ; c<tempo; c++)
{
_asm

mov r7,#27
100$:
nop
djnz r7,100$
_endasm;


}
} ]


Valeu galera, espero que consiga contribuiu com alguma coisa depois, pois meu conhecimento é mínimo.

SDS,
Valdo[/code]
valdotc
Bit
 
Mensagens: 8
Registrado em: 02 Jul 2008 13:33

Anterior

Voltar para 8051

Quem está online

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

x