En 8051, se sabe que la frecuencia del oscilador de cristal es de 12 MHz. Intente programar P1.0 y P1.1 para que generen ondas cuadradas con períodos de 2 ms y 500 ms respectivamente.
#define uchar unsigned char
#define uint unsigned int
uint Time_Num_2ms, Time_Num_500ms;
sbit PWM1=P1 ^0; //El bit que define el puerto de salida de onda cuadrada de 2 ms
sbit PWM2=P1^1 //El bit se utiliza para definir el puerto de salida de onda cuadrada de 500 ms
void InitTimer0(void)
{
TMOD=0x01; //Configurar Timer0 para el modo de trabajo 1
TH0=(65536-1000)/256; /cargar valor inicial, valor inicial de 1ms
TH0=(65536-1000)256; //cargar valor inicial, valor inicial de 1ms
EA=1;
ET0=1; //abre la interrupción del temporizador0
TR0=1; //inicia el temporizador 0
}
void T0Timer () interrupción 1
{
TH0=(65536-1000)/256; // Sobrecarga valor inicial, valor inicial 1 ms
TH0=(65536- 1000)256; // Sobrecarga valor inicial, valor inicial 1 ms
Time_Num_2ms;
Time_Num_500ms
}
void main(void; ) p>
{
P1=0xff
InitTimer0()
mientras(1)
{
if(Time_Num_2ms==2)
{
Time_Num_2ms=0
PWM1=~PWM1
<; p> }if(Time_Num_500ms==500)
{
Time_Num_500ms=0
PWM2=~PWM2 ; p>
}
}
}
}