⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music.c

📁 音乐盒程序:基于AT89S52的数字音乐盒程序
💻 C
字号:
#include<reg52.h>
#include<ctype.h>
//#include"LCD1602.h"

#define uchar unsigned char
#define uint  unsigned int
#define  N  800 //每首歌的音符的长度
#pragma  ot (0) //代码优化,是编译器选项,代码速度优先! 


sbit key1=P3^0 ;// 按键选择	P3.0、P3.1、P3.2、P3.3
sbit key2=P3^1 ;//
sbit key3=P3^2 ;//


sbit Buzz=P2^0;	//产生方波


	/*所使用的晶振频率*/
#define OSFREQ 12000000l    

		/*   0   吻别  很爱很爱你  认真的雪*/
//uchar code string1[]={"g=a=1=a=|11=2=3=2=3g=a=1=a=|1=1_1=2_3=2=2g=a=1=a=|11=2=3=2=3g=a=1=a=|1=1_1=2_6=5=53_5_|5_5_5_6=C=C=6._0_5=3=|2=2=2=3=2_1=3=3=5._0_3=5=|5_5_5_6=C=C=6._0._3=|3_2_2_6=5=55=6=C=6=|CC=6_5=6_C=3=3_0=3=|3=2=2=2=2_1=3=3=2._5=6=C=6=|CC=6_5=6_C=3=3_0=3=|3_2_03_3_2_3_|2._1=1--|  5=6=C=D=|E._E=E=E=E_D.D=D=G=D_|C._C=C=D=E=C=6_D=7=7=7=C_|C5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C0_6=6=7_C_C|C---|  5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C._C=C=D=E=C=6_D=7=7=7=C_|C5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C0_6=6=7_C_C|C---|  0_5=5=5=6=C=E=E_5=5=5=6=C=D=D0=D=E=D|=D=C=C=C=C=G=D=E=E._E=E=D=D=E=D=C=C=D=D_C_A=A=G=E=C=0=6=6=E=E=D=C=C=C=6=C=D=0_5=5=5=6=C=D=D_5=5=6=C=D=D0=D=D=E=D=C=C=D=D=5=A=6=G=D=C=0=6=6=E|=3=D=C=6=6=5=6=D=D_C."};//吻别  很爱很爱你  认真的雪

		/*   1   中国人*/ 
//uchar code string2[]={"3_5.6._C=6_5_6_5_6.C=6_56_5_3_2_3-2._3_2_1_2._3=2_1|3_5_C_7_6-a._1=a_g_a._1=a_g_a_1-2_1_a-2._3=2_1_2._3=2_1_2_1_1_2_3-6_6_5_3_2_3_5_6_5_3_2_3-2_2_1_a_g_a_1|_2_1a_g_a-|a1ag|a1_2_3-|6_6_6_5=6=6.6=6=6_5_2_3_3-a1aga1_2_3-2_2_2_1=2=2.3=5=C_7_6__6-6._C=6_5=6._C=6_5_|6_5_6_5_3-6_6_5_3_2_3_5_C_7_6_5_6-6._C=6_5_6-6_5_6_5_3-2._3=2_1_2-3_5_3_2_33_5_6._C=6_5_|_6_5_6_53-|2_2_3_2_a_g_a---a1236._C=6_5_6._C_5_6_5_6_5_3-66_5_3_2_3_5_C_7_6_5_6-C7656---6---"};//中国人 

		/*   2   老鼠爱大米  浏阳河*/
//uchar code string3[]={"C3_2=1=132=113_2_3_1_3_6=5=5.3=5=6_6=5=5_6=5=53=2_1_2_2=3=2_123_3_213_2=1=13_2_3_1_1=6_6_5=5.3=5=6_6_C_6=5=53=2=2_1_22=1=3=2=23_3_211.  5_6=C=6=5=3=5=3_2.1_1=25_3_2=3=1.5_3=5=6._5=3_5_32._1=a_g_1---1_12=35_53_2._1=a_g_1_a5_C_6._5=3_5_a1_1=25_3_2._3=1=2=1=a=g---"}; //老鼠爱大米  浏阳河

		/*   3  无聊的游戏 很爱很爱你*/
//uchar code string4[]={"3_3=5=3_2_3_2_1_2_2=3=e_g_a-3_3=5=3_2_3_6_5_3=5=2-203_6_5_3=5=6.a._a._3_2_1_=2=3-a_3_=3=2_1_3_5_5_2_3-303_3=5=3_2_32_1_2_2=3=e_g_a-3_3=5=3_2_3_6_5_3=5=2-203_6_5_3=5=6.a_a_3_2_1=2=3-a_3=3=2_1_3_5_g_a-3_6=6=63_6=6=63_6_5_3=5=6-a_2=2=2a_5_3_2_3-3_6_5_3=2_1_2=3=23_5_5_1_2-3_6_5_3=2=1_2=3=22_5=5=5_g_a-3_5=5=5_3=5=6-6-    |5_5=5=5=C._5._C=C=D=E=D=|7._6=7=6=5_(C=7=5=2=2_0=)5=|D_D=D=D=D_D=D_6_6=5=3=5=|5=5_4=404_5_|6._6=6=6=C_70_6_|5_5_5=D_C=C0=67=|C._C=C=D=E_D._D=C_7_|C---|C._C=C=D=E_D._D=D=C_7=|D._C=C-5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C._C=C=D=E=C=6_D=7=7=7=C_|C5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C0_6=6=7_C_C|C---|"};	//无聊的游戏 很爱很爱你

		/*   4   青花瓷  一万个理由*/
//uchar code string5[]={"0=G=G=E=D=E=6_D=E=G=E=D0=G=G=E=D=E=5_D=E=G=D=C0=C=D=E=G=A=G=E=G=E=E=D=D0=C=D=C=D_C=D=D=E_G=E=E._0=G=G=E=D=E=A_D=E=G=E=D0=G=G=E=D=E=G_D=E=G=D=C0=C=D=E=G=A=G=E=G=E=E=D=D._G=E_D=D=D_C_C-  0=5=6=C=E=E=E=E=E._D=D_C_0_6=C=DD=E_5=50=5=5=6=C=C=C=C=C=6._D.=E=D=C=G=A=C_C=C=C=6=6=C=D0=5=6=C=E=E=E=E=E._D=D_C_0_A=C=DD=E_5=50=5=5=6=C=C=C=C=C=C-6._D._E=D=C=5=6=C_C=C=C=6=6=C=D.C_C--   "}; /* /青花瓷  一万个理由  */

		/*   5   super star*/ 
//uchar code string6[]={"22_3_1g_g_2_1_2_3_10_3_4_3_1_2_20_3_4_3_1_1_1b2_2_2_3_1g_g_2_1_2_3_10_3_4_3_1_2_20_3_4_3_4_5_5g_a_12_3_53_5_6_7_6_5_32_3_5_33_2_3_2_1_g-0g_a_12_3_53_5_6_7_6_5_32_3_5_33__2_3_2_1_g---g---06_5.2_3_300006_5.2_3_3_3_3=2=1_1-06_5.7_7_70_7_C7_6_6-00g--g_a_g--- "};  //super star  

		/*   6   学习雷锋好榜样 山楂树  团结就是力量	 许巍-星空前奏*/
//uchar code string7[]={"5._3=2_1_5-12_3_g-5.3_23_5_1a_3_2-356.5_352._3=2_1_a32_21_a1g05.3_6562_3_50  a-a1-a2--a-b1b13-2a--a--a-33-12--a-b1b13-21--1--5-55432--a-b1-12123--3--1-1_1_1235--4-32-b3-2a--a--a-66565--4-34-56543--3--1-1_1_1235--4-32-b3-2a--a--   C-53.2_1530C-53.2_1650 5_C6_5_C05_C6_5_6_0_3_C.6_53C.6_C0C53_6_5_3_2.1_30_5_C56_C_6_5_33_1_6-60C._C=5_5_2._3=5_5_6.5_6DC6_5_C6_5_33_5_C-  3- 2_3_4_3 3- 2_3_4_3 3- 4- 3_4_5_4 4- 3-2-  3- 2_3_4_3 3- 2_3_4_3 3-4- 3_4_5_4 4- 3-2"};	 /*学习雷锋好榜样 山楂树  团结就是力量	 许巍-星空前奏*/

		/*   7   满天都是小星星 两只老虎 许巍-时光  生日快乐*/
//uchar code string8[]={"c_1_5_5_6_6_54_4_3_3_2_2_15_5_4_4_3_3_25_5_4_4_3_3_21_1_5_5_6_6_54_4_3_3_2_2_1  1_2_3_1_1_2_3_1_3_4_5 3_4_55=6=5=4=3_1_5=6=5=4=3_1_2_g_12_g_1                    543 3_2_1_2_30 g53 3_2_1_2_30 a65 4_3_2_3_4 1 b a g  g_g_ag  1b- g_g_ag  21-  g_g_53  1ba 004_4_  312  1--1  "};/* 满天都是小星星 两只老虎 许巍-时光  生日快乐*/ 

		/*   8    一千个伤心的理由*/	
//uchar code string9[]={"e=a_b=1=1.0=2=|b_a_g=a._3C_7=C=|6._e=a_b=1=1.0=2=|b_a=g=g=2_3=30_1=2=|3_3_2=1_2=20_b=1=|2_2_b_g=a=a.0=e=|f_1=1=1._2=b_a_g=a_b=|b-0(E_D_)|0=1=1=2=|3_3_2=1_2=20=2=2=3=|4_4_3=2_3=3_0_0_3=4=|5_5=4=4=2_6=6=5=5=4=4_3=1=|1_1=2=3=2=20=1=1=2=|3_3_2=1_2=20=2=2=3=|4_4_3=2_3=30_3=4=|5_5_4_3=6=6=5=5=4=4=3=3_|1--b._a=|a1_b_1.2|b=a=g_g00|ab_1_1.2|b5-|  |D_D_D_C_C0_C_|7_7_7_7_C7_5_|6_6_6_5_66_5_|6_6_6_E_D0_C_|D_D_D_C_C0_C_|7_7_7_7_C._7=7_5_|6._5=1-0_2=3=|4_3_1_4_4_3_0_1_|1---|"};//一千个伤心的理由	

/**************音符频率表************/
 uint code notefreq[]={  523, 587, 659, 698, 784, 880, 988,
                        1047,1175,1319,1396,1568,1760,1976,
                        2093,2349,2637,2793,3136,3520,3961};
/*****************音名***************/
uchar code notename[]={ 'c','d','e','f','g','a','b',
                        '1','2','3','4','5','6','7',
                        'C','D','E','F','G','A','B',0};
/***************半音频率表***********/
 uint code halfnotefreq[]={  554, 622, 740, 831, 933,
                            1109,1245,1480,1161,1865,
                            2218,2489,2960,3322,3729};
/*****************半音名*************/
uchar code halfnotename[]={ 'c','d','f','g','a',
                            '1','2','4','5','6',
                            'C','D','F','G','A',0};

uchar code title[8][N]={
						  {"g=a=1=a=|11=2=3=2=3g=a=1=a=|1=1_1=2_3=2=2g=a=1=a=|11=2=3=2=3g=a=1=a=|1=1_1=2_6=5=53_5_|5_5_5_6=C=C=6._0_5=3=|2=2=2=3=2_1=3=3=5._0_3=5=|5_5_5_6=C=C=6._0._3=|3_2_2_6=5=55=6=C=6=|CC=6_5=6_C=3=3_0=3=|3=2=2=2=2_1=3=3=2._5=6=C=6=|CC=6_5=6_C=3=3_0=3=|3_2_03_3_2_3_|2._1=1--|  5=6=C=D=|E._E=E=E=E_D.D=D=G=D_|C._C=C=D=E=C=6_D=7=7=7=C_|C5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C0_6=6=7_C_C|C---|  5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C._C=C=D=E=C=6_D=7=7=7=C_|C5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C0_6=6=7_C_C|C---|  0_5=5=5=6=C=E=E_5=5=5=6=C=D=D0=D=E=D|=D=C=C=C=C=G=D=E=E._E=E=D=D=E=D=C=C=D=D_C_A=A=G=E=C=0=6=6=E=E=D=C=C=C=6=C=D=0_5=5=5=6=C=D=D_5=5=6=C=D=D0=D=D=E=D=C=C=D=D=5=A=6=G=D=C=0=6=6=E|=3=D=C=6=6=5=6=D=D_C."},
						  {"3_5.6._C=6_5_6_5_6.C=6_56_5_3_2_3-2._3_2_1_2._3=2_1|3_5_C_7_6-a._1=a_g_a._1=a_g_a_1-2_1_a-2._3=2_1_2._3=2_1_2_1_1_2_3-6_6_5_3_2_3_5_6_5_3_2_3-2_2_1_a_g_a_1|_2_1a_g_a-|a1ag|a1_2_3-|6_6_6_5=6=6.6=6=6_5_2_3_3-a1aga1_2_3-2_2_2_1=2=2.3=5=C_7_6__6-6._C=6_5=6._C=6_5_|6_5_6_5_3-6_6_5_3_2_3_5_C_7_6_5_6-6._C=6_5_6-6_5_6_5_3-2._3=2_1_2-3_5_3_2_33_5_6._C=6_5_|_6_5_6_53-|2_2_3_2_a_g_a---a1236._C=6_5_6._C_5_6_5_6_5_3-66_5_3_2_3_5_C_7_6_5_6-C7656---6---"},
						  {"C3_2=1=132=113_2_3_1_3_6=5=5.3=5=6_6=5=5_6=5=53=2_1_2_2=3=2_123_3_213_2=1=13_2_3_1_1=6_6_5=5.3=5=6_6_C_6=5=53=2=2_1_22=1=3=2=23_3_211.  5_6=C=6=5=3=5=3_2.1_1=25_3_2=3=1.5_3=5=6._5=3_5_32._1=a_g_1---1_12=35_53_2._1=a_g_1_a5_C_6._5=3_5_a1_1=25_3_2._3=1=2=1=a=g---"},
						  {"3_3=5=3_2_3_2_1_2_2=3=e_g_a-3_3=5=3_2_3_6_5_3=5=2-203_6_5_3=5=6.a._a._3_2_1_=2=3-a_3_=3=2_1_3_5_5_2_3-303_3=5=3_2_32_1_2_2=3=e_g_a-3_3=5=3_2_3_6_5_3=5=2-203_6_5_3=5=6.a_a_3_2_1=2=3-a_3=3=2_1_3_5_g_a-3_6=6=63_6=6=63_6_5_3=5=6-a_2=2=2a_5_3_2_3-3_6_5_3=2_1_2=3=23_5_5_1_2-3_6_5_3=2=1_2=3=22_5=5=5_g_a-3_5=5=5_3=5=6-6-    |5_5=5=5=C._5._C=C=D=E=D=|7._6=7=6=5_(C=7=5=2=2_0=)5=|D_D=D=D=D_D=D_6_6=5=3=5=|5=5_4=404_5_|6._6=6=6=C_70_6_|5_5_5=D_C=C0=67=|C._C=C=D=E_D._D=C_7_|C---|C._C=C=D=E_D._D=D=C_7=|D._C=C-5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C._C=C=D=E=C=6_D=7=7=7=C_|C5=6=C=D=|E._E=E=G=E_D._D=D=G=D_|C0_6=6=7_C_C|C---|"},
						  {"0=G=G=E=D=E=6_D=E=G=E=D0=G=G=E=D=E=5_D=E=G=D=C0=C=D=E=G=A=G=E=G=E=E=D=D0=C=D=C=D_C=D=D=E_G=E=E._0=G=G=E=D=E=A_D=E=G=E=D0=G=G=E=D=E=G_D=E=G=D=C0=C=D=E=G=A=G=E=G=E=E=D=D._G=E_D=D=D_C_C-  0=5=6=C=E=E=E=E=E._D=D_C_0_6=C=DD=E_5=50=5=5=6=C=C=C=C=C=6._D.=E=D=C=G=A=C_C=C=C=6=6=C=D0=5=6=C=E=E=E=E=E._D=D_C_0_A=C=DD=E_5=50=5=5=6=C=C=C=C=C=C-6._D._E=D=C=5=6=C_C=C=C=6=6=C=D.C_C--   "},
						  {"22_3_1g_g_2_1_2_3_10_3_4_3_1_2_20_3_4_3_1_1_1b2_2_2_3_1g_g_2_1_2_3_10_3_4_3_1_2_20_3_4_3_4_5_5g_a_12_3_53_5_6_7_6_5_32_3_5_33_2_3_2_1_g-0g_a_12_3_53_5_6_7_6_5_32_3_5_33__2_3_2_1_g---g---06_5.2_3_300006_5.2_3_3_3_3=2=1_1-06_5.7_7_70_7_C7_6_6-00g--g_a_g--- "},
	/*9*/				  {"e=a_b=1=1.0=2=|b_a_g=a._3C_7=C=|6._e=a_b=1=1.0=2=|b_a=g=g=2_3=30_1=2=|3_3_2=1_2=20_b=1=|2_2_b_g=a=a.0=e=|f_1=1=1._2=b_a_g=a_b=|b-0(E_D_)|0=1=1=2=|3_3_2=1_2=20=2=2=3=|4_4_3=2_3=3_0_0_3=4=|5_5=4=4=2_6=6=5=5=4=4_3=1=|1_1=2=3=2=20=1=1=2=|3_3_2=1_2=20=2=2=3=|4_4_3=2_3=30_3=4=|5_5_4_3=6=6=5=5=4=4=3=3_|1--b._a=|a1_b_1.2|b=a=g_g00|ab_1_1.2|b5-|  |D_D_D_C_C0_C_|7_7_7_7_C7_5_|6_6_6_5_66_5_|6_6_6_E_D0_C_|D_D_D_C_C0_C_|7_7_7_7_C._7=7_5_|6._5=1-0_2=3=|4_3_1_4_4_3_0_1_|1---|"},	
	/*7*/	//			  {"5._3=2_1_5-12_3_g-5.3_23_5_1a_3_2-356.5_352._3=2_1_a32_21_a1g05.3_6562_3_50  a-a1-a2--a-b1b13-2a--a--a-33-12--a-b1b13-21--1--5-55432--a-b1-12123--3--1-1_1_1235--4-32-b3-2a--a--a-66565--4-34-56543--3--1-1_1_1235--4-32-b3-2a--a--   C-53.2_1530C-53.2_1650 5_C6_5_C05_C6_5_6_0_3_C.6_53C.6_C0C53_6_5_3_2.1_30_5_C56_C_6_5_33_1_6-60C._C=5_5_2._3=5_5_6.5_6DC6_5_C6_5_33_5_C-  3- 2_3_4_3 3- 2_3_4_3 3- 4- 3_4_5_4 4- 3-2-  3- 2_3_4_3 3- 2_3_4_3 3-4- 3_4_5_4 4- 3-2"},
	/*8*/				  {"c_1_5_5_6_6_54_4_3_3_2_2_15_5_4_4_3_3_25_5_4_4_3_3_21_1_5_5_6_6_54_4_3_3_2_2_1  1_2_3_1_1_2_3_1_3_4_5 3_4_55=6=5=4=3_1_5=6=5=4=3_1_2_g_12_g_1                    543 3_2_1_2_30 g53 3_2_1_2_30 a65 4_3_2_3_4 1 b a g  g_g_ag  1b- g_g_ag  21-  g_g_53  1ba 004_4_  312  1--1  "}//
					  };	
//----------------------------------------------------
//    全局变量
//----------------------------------------------------
uchar flag1=0,flag2=0;//flag2:暂存暂停的次数
					  //flag1:歌曲计时的状态
					  //flag1=1,计时. flag1=0,计时结束
uint  n1,n2; /*产生方波的定时器的初值*/

uint  second=0,minute=0;
uchar order=5,temp1,temp2;//order:正在播放的歌曲数
uint  i=0;				  //  i  :正在播放的音符数
uchar count;

void delay(uint x)
{
	uint a,b;
	for(b=140;b>0;b--)
	for(a=x;a>0;a--);
}
void Sound(uint freq)   // 发声
{
    uint timreg;
    timreg=655365-(OSFREQ/(24l*freq));
	delay(1);
    n2=timreg/256;
    n1=timreg&0x00ff;//n1=timreg%256;
	TL0=n1;
	TH0=n2;	
	TR0=1;
    ET0=1;
}
void SoundOff(void)    // 停止发声
{
    TR0=0;  	  
    ET0=0;
    Buzz=0;            
}
uint GetFreq(uchar ch) // 依据音名取对应的频率
{
	uchar * pn,j=0;
    uint * pf;	
	pn=notename;     
	pf=notefreq;		
    while(1)
    {
        if(pn[j]==0) return 0;
        if(ch==pn[j])return pf[j];//查表找对应的频率
        j++;
    }
}
/*void display( )
{
	if(minute>0)
	{
		Lcd1602_Write_String(1,0,"Time:  minute");		
		Lcd1602_Write_Data(1,5,minute/10);
		Lcd1602_Write_Data(1,6,minute%10);
	}
	else if(minute==0)
	{
		Lcd1602_Write_String(1,0,"Time:    s");		
		Lcd1602_Write_Data(1,6,second/10);
		Lcd1602_Write_Data(1,7,second%10);
	}
}*/
void Play(char * str,uint num)
{
	uint lasttime,freq,ch;
	i=num;
	while(1)
    {
	    for(;;i++)
        {
			ch=str[i]; 
			
			/*允许曲谱用空格,'|'符,换行,回车等分隔以便阅读*/
            if((ch==' ')||(ch=='|')||(ch=='\r')||(ch=='\n')){i++;continue;}
            if(!ch){SoundOff();return;} /*乐曲结束则播放完毕*/
            if(isdigit(ch)||isalpha(ch))
            {
                freq=GetFreq(ch);        /*从音名获取频率*/
                lasttime=256;
                break;
            }
        }
        i++;
        ch=str[i];
//		delay(10);     /*从下一个符号获取额外音长符号*/
        while(1)
        {
            if(!ch) break;
            if(isdigit(ch)||isalpha(ch)) break; /*非音长符号则下次处理*/
            if(ch=='-') lasttime +=8;           /*额外延时一拍*/
            if(ch=='.') lasttime +=4;           /*额外延时半拍*/
   			if(ch=='_') lasttime /=2;           /*下划线相当于简谱中音名下面的下划线,延时减半*/
			if(ch=='=') lasttime /=4;           /*双下划线相当于简谱中音名下面的双下划线,延时减为1/4*/
            i++;
            ch=str[i];
        }
        if(freq!=0)
		{
			Sound(freq); /*发声*/
			flag1++;
		}
        else SoundOff( );
		if(flag1==1)
		{
			ET1=1;
			TR1=1;//播放开始,定时器1开始计时
		}
        delay(lasttime);/*延时*/
        SoundOff( );
		flag1=0;
		ET1=0;
		TR1=0;    //播放结束,定时器1停止计时
		//display( );
        second=0; //计时清零
		minute=0;
		delay(50);	    /*两个音符之间的间歇*/
                         
   }
}
void keyscan( )//按键选择乐曲类型
{
//	EA=0;
	if(key1==0)	        /*下一曲*/
	{
		delay(5);
		while(key1==0);
		if(order==8)order=0;
		else order++;
        second=0; //歌曲改变,计时清零
		minute=0;
	}
	if(key2==0)	        /*上一曲*/
	{
		delay(5);
		while(key2==0);
		if(order==0)order=8;
		else order--;
        second=0; //歌曲改变,计时清零
		minute=0;
	}
}

void main(void)
{   
	uint count=20; 
	TMOD=0x11;	  //设定T0为方式1(16位计数)
	delay(10);	  //T1为方式1(16位计数)
	EA=1;		  
	IT0=1;		  //外部中断0:边沿出发---中断标志:IE0

	ET0=1;
	TR0=1;  		

	TH0=0x3C;
	TL0=0xB0;
	TH1=(65536-50000)/256;  
	TL1=(65536-50000)%256;  
//  Lcd1602_Initial( );
	Play(title[5],i);
	Play(title[8],i);
	while(1)
	{
		keyscan( );		 
		Play(title[order],i);
//		Play(title[5],i);//调试用所加
		delay(100);
	} 
}
void time0_int(void) interrupt 1 //产生方波
{ 
	ET0=0;
	TR0=0;
	TL0=n1;
	TH0=n2;
	Buzz=!Buzz;
	ET0=1;
	TR0=1;
}
void time1_int(void) interrupt 3 //记录播放时间
{ 
	ET1=0;
	TR1=0;
	TH1=(65536-50000)/256;  
	TL1=(65536-50000)%256;
	if(count==0)
	{
		count=20;
		if(second==60)
		{
			minute++;
			second=0;
		}
		else second++;
	}
	else count--;  
	ET1=1;
	TR1=1;
}
//------外部中断0-----------------------
void external_0(void) interrupt 0 //暂停
{
	EA=0;
	flag2++;		//首次按下暂停
	if(flag2==1)
	{
		temp1=order;//暂停时的歌曲
		temp2=i;	//休止符的位置
		TR0=0;
		TR1=0;
	}
	if(flag2==2)   //再次按下播放
	{	
		order=temp1;
		i=temp2;	
		flag2=0;
		TR0=1;
		ET0=1;
		TR1=1;
		ET1=1;
		EA =1;
	}
}		 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -