無法使得這程式正確播放出我想要給他的頻率
請問有大大可以幫忙改一下嗎
感激不盡
#include <reg51.h>
#include <KB44.h>
sbit P1_0=P1^0;
int MUSIC_TYPE[]=
{4141,4141,3690,4141,3109,3288,4141,4141,3690,4141,3109,
3288,4141,4141,2768,3690,3690,4141,4141,3109,3109,3288,4141,3690,4141};
int a=1;
int sound;
main()
{
int j;
while(1)
{
sound=MUSIC_TYPE[a];
SP=0x60;
IE=0x88;
TMOD=0x10;
TH1=(65536-sound)/256;
TL1=(65536-sound)%256;
TR1=1;
P1_0=0;
}
} /* main */
void T1_int(void) interrupt 3 /* T1=50ms */
{
int i;
sound=MUSIC_TYPE[a];
TH1=(65536-sound)/256;
TL1=(65536-sound)%256;
P1_0=~P1_0;
delay1ms(10) ;
a++;
}
你可以改成這樣子去試試:
#include <reg51.h>
#include <KB44.h>
sbit P1_0=P1^0;
int MUSIC_TYPE[]=
{4141,4141,3690,4141,3109,3288,4141,4141,3690,4141,3109,
3288,4141,4141,2768,3690,3690,4141,4141,3109,3109,3288,4141,3690,4141};
int a=1;
int sound;
main()
{
int j;
TH1=(65536-sound)/256;
TL1=(65536-sound)%256;
while(1)
{
sound=MUSIC_TYPE[a];
SP=0x60;
IE=0x88;
TMOD=0x10;
TR1=1;
P1_0=0;
}
} /* main */
void T1_int(void) interrupt 3 /* T1=50ms */
{
int i;
sound=MUSIC_TYPE[a];
TH1=(65536-sound)/256;
TL1=(65536-sound)%256;
P1_0=~P1_0;
delay1ms(10) ;
a++;
}




























































































