السلام عليكم
تفضل اخى الكود بعد اضافة النغمة الموجودة في تعليمات المايكروسي
وذلك باستبدال
كود:
if(x==1)portb.f3=1;//اذا كان المتغير اكس يساوي واحد شغل كود الصوت
ب
وهى الدالة التى تقوم بتوليد النغمة.
كود:
char x;
void Tone1() {
Sound_Play(659, 250); // Frequency = 659Hz, duration = 250ms
}
void Tone2() {
Sound_Play(698, 250); // Frequency = 698Hz, duration = 250ms
}
void Tone3() {
Sound_Play(784, 250); // Frequency = 784Hz, duration = 250ms
}
void Melody() { // Plays the melody "Yellow house"
Tone1(); Tone2(); Tone3(); Tone3();
Tone1(); Tone2(); Tone3(); Tone3();
Tone1(); Tone2(); Tone3();
Tone1(); Tone2(); Tone3(); Tone3();
Tone1(); Tone2(); Tone3();
Tone3(); Tone3(); Tone2(); Tone2(); Tone1();
}
void main(){
trisb=0;
portb=0;
trisa=0xff;
Sound_Init(&PORTB, 3);
portb=0;
delay_ms(1000);
portb=0xff;
delay_ms(1000);
portb=0;
delay_ms(1000);
portb=0xff;
delay_ms(500);
portb=0;
delay_ms(500);
loop:
if((porta.f1==0)&(porta.f2==0)&(porta.f3==0)) {portb.f4=1;portb.f5=1;portb.f6=1;}
if((porta.f1==1)&(porta.f2==1)&(porta.f3==1)) {portb.f4=0;portb.f5=0;portb.f6=0;}
if((porta.f2==0)&(porta.f3==1)){portb.f5=1;portb.f4=1;portb.f6=0;x=1;}
if((porta.f1==0)&(porta.f2==1)){portb.f4=1;portb.f5=0;portb.f6=0;}
if(x==1)Melody();
else
portb.f3=0;
if(porta.f0==0)x=0;
goto loop;
}