| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #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
|