TR1 = 1; for(n=0;n<10000;n++); //延时 TR1 = 0; }
if(!K3) {
P0 = digital_tabal[2]; tl0_f=freq[jie8[2]*2]; //置一个音符的值 th0_f=freq[jie8[2]*2+1]; TR1 = 1; for(n=0;n<10000;n++); //延时 TR1 = 0; }
if(!K4) { P0 = digital_tabal[3]; tl0_f=freq[jie8[3]*2]; //置一个音符的值 th0_f=freq[jie8[3]*2+1]; TR1 = 1; for(n=0;n<10000;n++); //延时 TR1 = 0; }
if(!K5) { P0 = digital_tabal[4]; tl0_f=freq[jie8[4]*2]; //置一个音符的值 th0_f=freq[jie8[4]*2+1]; TR1 = 1; for(n=0;n<10000;n++); //延时 TR1 = 0; }
if(!K6) { P0 = digital_tabal[5]; tl0_f=freq[jie8[5]*2]; //置一个音符的值 th0_f=freq[jie8[5]*2+1]; TR1 = 1; for(n=0;n<10000;n++); //延时 TR1 = 0; }
if(!K7) { P0 = digital_tabal[6]; tl0_f=freq[jie8[6]*2]; //置一个音符的值
30
th0_f=freq[jie8[6]*2+1]; TR1 = 1; for(n=0;n<10000;n++); //延时 TR1 = 0; } if(!K8) { P0 = digital_tabal[7]; tl0_f=freq[jie8[7]*2]; //置一个音符的值 th0_f=freq[jie8[7]*2+1]; TR1 = 1; for(n=0;n<10000;n++); //延时 TR1 = 0; } BeepIO=1; TR1 = 0; ET0 = 1; P0 = 0XFF; }
//INT1中断 由P3.3引脚产生(S4) void int_1() interrupt 2 using 0 { flag1 = 1; while(flag1) { Delay1ms(200); BeepIO=1; EX0 = 0; if(!S5) { Delay1ms(100); if(!S5) { EX0 = 1; BeepIO=0; flag1 = 0; } } } }
//-------------------------------------------------------------------
void automusic()
31
{ ET1 = 0; if(!S1) { Delay1ms(20); if(!S1) { Play(Music_Girl,0,3,360); //Delay1ms(500) } } if(!S2) { Delay1ms(20); if(!S2) { Play(Music_Same,0,3,360); //Delay1ms(500) } } if(!S3) { Delay1ms(20); if(!S3) { Play(Music_Two,0,3,360); //Delay1ms(500) } } ET1 = 1; }
int main(void) { initial(); P0 = 0x00; Delay1ms(500); P0 = 0xFF; S1 = 1; S2 = 1;
32
S3 = 1; S4 = 1; S5 = 1;
InitialSound(); while(1) { piano(); automusic(); } return 0;
}
33
2.原理图
3.PCB图
34
致 谢
在我毕业设计开题、调查、研究和撰写过程中,谢春茂老师给予了我们耐心、细致和全面的帮助,使我们克服了设计中一次次的困难,并顺利地完成了这次毕业设计,也让我明白在生活中做任何事情都要耐心、细心,认真对待生活中的每一件小事,使我们终身受益。
最后,衷心感谢所有毕业设计中曾帮助过我的良师益友和同学,同时也感谢学院为我提供良好的做毕业设计的环境。
35