Red de conocimiento informático - Conocimiento sistemático - Solicitud: ¡Todo el programa utiliza el lenguaje C de 51 microcontroladores para hacer que el timbre reproduzca la música "Feliz cumpleaños a ti"!

Solicitud: ¡Todo el programa utiliza el lenguaje C de 51 microcontroladores para hacer que el timbre reproduzca la música "Feliz cumpleaños a ti"!

#include lt; reg51.hgt;

sbit altavoz=P1^2;

unsigned char timer0h, timer0l, time; > //Canción de cumpleaños

código unsigned char sszymmh[]={5, 1, 1, 5, 1, 1, 6, 1, 2, 5, 1, 2, 1, 2, 2, 7, 1, 4,

5, 1, 1, 5, 1, 1, 6, 1, 2, 5, 1, 2, 2, 2, 2, 1, 2, 4,

5, 1, 1, 5, 1, 1, 5, 2, 2, 3, 2, 2, 1, 2, 2, 7, 1, 2, 6, 1, 2,

4, 2, 1, 4, 2, 1, 3, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 4};

/ / Ocho dígitos altos de la tabla de frecuencias de la escala

código unsigned char FREQH[]={

0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8,

0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC, //1, 2, 3, 4, 5, 6, 7, 8, i

0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE,

0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF,

}

// Los ocho dígitos inferiores de la tabla de frecuencia de escala

código unsigned char FREQL[]={

0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6,

0x21, 0xE1 , 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1, 2, 3, 4, 5, 6, 7, 8, i

0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D , ​​

0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16,

};

retraso nulo (gráfico sin firmar)

{

p>

char t1 sin firmar;

t2 largo sin firmar

for(t1=0; t1lt; t; t1 )<

p> {

for(t2=0;t2lt;8000;t2)

{

;

}

}

TR0=0

}

void t0int() interrupción 1

{

TR0=0;

altavoz=!altavoz;

TH0=temporizador0h;

TL0=temporizador0l;

}

canción vacía()

{

TH0=timer0h

TL0=timer0l;

TR0=1;

retraso(tiempo);

}

void main(void)

{

unsigned char k, i;

TMOD=1; //Establece el modo de trabajo de temporización CT0 1

EA=1; ET0=1; //IE=0x82 //La CPU activa la interrupción, CT0 activa la interrupción

while(1)

{

i=0;

p>

while(ilt; 75){ //Duración del conjunto musical, empezar de nuevo después de cantar

k=sszymmh[i] 7*sszymmh[i 1]- 1;

timer0h=FREQH[k];

timer0l=FREQL[k]

time=sszymmh[i 2]; p> i=i 3;

canción();

}

}

}