Red de conocimiento informático - Computadora portátil - c51 tiene un problema al activar el timbre para reproducir música. El problema está clasificado en la categoría incorrecta. Compruébelo desde el siguiente enlace.

c51 tiene un problema al activar el timbre para reproducir música. El problema está clasificado en la categoría incorrecta. Compruébelo desde el siguiente enlace.

Tengo un programa en C de la canción Happy Birthday para tu referencia. Oscilador de cristal 5,3M, salida P1.1

.

#include

#define uchar unsigned char

#define uint unsigned int

sbit BEEP=P1^ 1;

//La tabla de frecuencias de notas de la canción Feliz cumpleaños, diferentes frecuencias están determinadas por diferentes retrasos

código uchar SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,

212,212,106,126,159,169,190,119,119,126,159,142,159,0};

//Tabla de ritmos de la canción de Feliz Cumpleaños, el ritmo determina la duración de reproducción de cada nota

código uchar SONG_LONG[]={9,3,12, 12 ,12,24,9,3,12,12,12,24,

9,3,12,12,12,12,12,9,3,12,12,12,24 , 0};

//Retraso

void DelayMS(uint x)

{

uchar t;

while(x--)

for(t=0;t<120;t++);

}

//Función de reproducción

void PlayMusic()

{uint i=0,j,k;

while(SONG_LONG[i]!=0||SONG_TONE[i]!=0 )

{ //Toca cada nota, SONG_LONG es la duración del tiempo

for(j=0;j

{

BEEP=~BEEP;

//La tabla de retardo SONG_TONE determina la frecuencia de cada nota

for(k=0;k

}

DelayMS(300);

i++;

}

}

void main()

{

BEEP=0;

mientras(1)

{

PlayMusic(); //Reproducir Feliz Cumpleaños

DelayMS(300); //Pausar por un período de tiempo después de reproducir

}

}