#ifndef __MUSIC_TWO_TIGER_H__ #define __MUSIC_TWO_TIGER_H__ #define _PER_RUN_TIME 2 //每首曲子运行2次 #define _RING_SPACE_1MIN 1 //每遍间隔1分钟 #define _RING_RUN_TIME 5 //重复5遍 #define _RING_FLASH_COUNTDOWN 3000 //闪烁3秒 #define uchar unsigned char sbit beepIO=P1^7; uchar m=1,n=1; uchar code T[50][2]={{0,0}, {0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B}, {0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05}, {0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02}, {0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81}, {0xFF,0xFF} }; uchar code music[][2]={{0,4}, {13,8},{15,8},{17,8},{13,8},{13,8},{15,8},{17,8},{13,8},{17,8},{18,8},{20,8},{0,8},{17,8},{18,8},{20,8},{0,8},{20,6},{22,2},{20,6},{18,2},{17,8},{13,8},{20,6},{22,2},{20,6},{18,2},{17,8},{13,8},{15,8},{8,8},{13,8},{0,8},{15,8},{8,8},{13,8},{0,8}, {0xFF,0xFF}}; void just_play_when_beep(void); void delay_music(uchar p) { uchar i,j; for(;p>0;p--) for(i=181;i>0;i--){ just_play_when_beep(); for(j=91;j>0;j--); //181 } } void pause_music() { uchar i,j; for(i=150;i>0;i--){ just_play_when_beep(); for(j=80;j>0;j--); //150 } } void T0_int() interrupt 1 { beepIO=!beepIO; TH0=T[m][0]; TL0=T[m][1]; } /* void InitialT0(void) // { TMOD|=0x01; //初始化定时器 方式2 波特率发生器 TH0=0xFF; //T0高八位 TL0=0xFF; //T0低八位 EA=1; //总中断开关 ET0=1; //T0中断 TR0=0; //定时器T0 开始计时 }*/ extern char per_run_time; void play_2tigers(void) { uchar i=0,j=0; // TMOD|=0x01; EA=1; ET0=1; //InitialT0(); while(per_run_time) { while(!(m==0xFF&&n==0xFF)) { m=music[i][0];n=music[i][1]; if(m==0xFF&&n==0xFF) {per_run_time--;} if(m==0x00) {TR0=0;delay_music(n);i++;} else if(m==0xFF) {TR0=0;delay_music(30);i=0;} else if(m==music[i+1][0]) {TR0=1;delay_music(n);TR0=0;pause_music();i++;} else {TR0=1;delay_music(n);i++;} } i=0;m=1;n=1; //完事,初始化一下 } per_run_time=_PER_RUN_TIME; //完事,初始化一下 } #endif