Papel de caja de música MCU
#Definir carácter uchar sin signo
#Definir uint entero sin signo
int cnt_h, CNT_l;
sbit spk=p2^ 3;
//sbit led=p2^0;
uchar cnt, I, paso, s_bit
Código uint yin[ 7]= { 19121704161432127611361012 } ; //1: octava inferior 3: octava superior
//Código del símbolo "Beijing te da la bienvenida"
Código uint song[]={123,125,123,122,123,223,123,122,111665438
,122,121,116,121,122,123,125,122,123,126,125,125,123, 123, 122, 123, 122, 121, 125, 126, 222, 115, 123, 123, 222, 223, p>
116, 123, 122, 122, 221, 423 , 425, 131, 125, 226, 226, 125, 123, 123, 125, 225, 123, 125, 126, 131, 132, 131, 125, 123, 122, 125, 223, 223, 125, 131 , 125, 226, 231 ,132,131,125,123,125,127,226,223,122,123,125,133,232,127,331,999};
Retraso no válido (uint a); //
void init(); representado por un número de tres dígitos.
Void main() //El centésimo dígito del número de tres dígitos representa un múltiplo entero del ritmo.
{//El dígito de las decenas indica el tono (1 es bajo, 3 es agudo)
init(); //El número indica qué fonema básico es.
while(1)
{
step =(song[I]/100)* 4; //Cambia 2 a otros números para cambiar el ritmo .
//th 1 =(65536-65535)/256;
//TL 1 =(65536-65535) 256;
Cambiar ((canción) [i]/10)10)
{
Caso 1:
{
cnt_h=-(Yin[Canción[I ] 10-1]* 2)/256;
cnt_l=-(Yin[Song[I] 10-1]* 2) 256;
Pausa;
}
Caso 2:
{
CNT _ h =-yin[canción[I] 10-1]/256;
CNT _ l =-yin[canción[I] 10-1] 256;
Pausa;
}
Caso 3: p> p>
{
cnt_h=-(Yin[Canción[I] 10-1]/2)/256;
cnt_l=-(Yin[Canción[ I] 10-1]/2) 256;
Rotura;
}
}
TH0 = CNT _ h;< /p >
TL0 = CNT_l;
tr 1 = 1;
TR0 = 1;
Siguiente:
mientras (cnt! = paso)
Ir al siguiente;
//led = ~ led;
TR0 = 0;
CNT = 0;
tr 1 = 0;
Retraso (200);
i
if(Canción[i]= =999)
{
I = 0;
Retraso(900);
}
}
}
inicialización nula()
{
EA = 1;
ET0 = 1 ;
et 1 = 1;
TMOD = 0x 11;
I = 0;
CNT = 0;
TR0 = 0;
tr 1 = 0;
}
void t0 (void) interrupción 1
{ p>
TH0 = CNT_h;
TL0 = CNT_l;
spk = ~ spk
}
void t1 (no válido ) interrumpir 3
{
//th 1 =(65536-65535)/256;
//TL 1 =( 65536-65535) 256;
cnt;
}
Retraso no válido
{
uint q, k;
for(q = 0;q lt84;q)
for(k = 0;k lta;k);
}
== =================
Escribí esto hace mucho tiempo. Échale un vistazo.