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

📄 音乐播放.c

📁 硬件电路相当简单的音乐播放的c51仿真及c程序
💻 C
字号:
#include"at89x51.h"
sbit Speaker=P1^0;
//全局变量
unsigned char a,b;
//C调音阶,节拍表,其中2,4,8分别代表延时100ms,200ms,400ms
unsigned char code Scale_Rhythms[][3]={
0xf8,0x8b,2,0xf9,0x5b,2,0xfa,0x14,2,0xfa,0x66,2,0xfb,0x03,2,0xfb,0x8f,2,0xfc,0x0b,2,
0xf8,0x8b,4,0xf9,0x5b,4,0xfa,0x14,4,0xfa,0x66,4,0xfb,0x03,4,0xfb,0x8f,4,0xfc,0x0b,4,
0xf8,0x8b,8,0xf9,0x5b,8,0xfa,0x14,8,0xfa,0x66,8,0xfb,0x03,8,0xfb,0x8f,8,0xfc,0x0b,8,
0xfc,0x43,2,0xfc,0xab,2,0xfd,0x08,2,0xfd,0x33,2,0xfd,0x81,2,0xfd,0xc7,2,0xfe,0x05,2,
0xfc,0x43,4,0xfc,0xab,4,0xfd,0x08,4,0xfd,0x33,4,0xfd,0x81,4,0xfd,0xc7,4,0xfe,0x05,4,
0xfc,0x43,8,0xfc,0xab,8,0xfd,0x08,8,0xfd,0x33,8,0xfd,0x81,8,0xfd,0xc7,8,0xfe,0x05,8,
0xfe,0x21,2,0xfe,0x55,2,0xfe,0x84,2,0xfe,0x99,2,0xfe,0xc0,2,0xfe,0xe3,2,0xff,0x02,2,
0xfe,0x21,4,0xfe,0x55,4,0xfe,0x84,4,0xfe,0x99,4,0xfe,0xc0,4,0xfe,0xe3,4,0xff,0x02,4,
0xfe,0x21,8,0xfe,0x55,8,0xfe,0x84,8,0xfe,0x99,8,0xfe,0xc0,8,0xfe,0xe3,8,0xff,0x02,8,};
//音乐数据表
unsigned char code Music[]={
18,18,35,36,37,31,37,35,36,36,35,19,35,35,35,35,
18,18,35,36,37,30,31,39,35,38,30,39,29,30,30,29,
36,36,36,37,37,39,56,41,33,40,40,39,32,33,41,33,
32,37,37,37,37,38,31,39,40,39,31,30,36,36,20,13,
12,18,19,35,35,35,35,56,56,40,40,38,32,40,40,41,
34,34,41,33,32,37,37,37,37,56,56,40,40,38,32,40,
40,19,12,12,40,31,30,36,36,36,36,18,18,35,36,37,
31,37,28,28,36,29,36,29,28,19,19,19,19,20,20,20,
12,18,40,39,29,29,38,31,38,30,29,35,35,35,35,64,};
//主函数
void main()
{
EA=ET0=TR0=TR1=ET1=1;
TMOD=0x11;
TH1=0x3c;
TL1=0xb0;
TH0=Scale_Rhythms[Music[a]][0];
TL0=Scale_Rhythms[Music[a]][1];
b=Scale_Rhythms[Music[a]][2];
while(1);
}
//0中断程序,控制频率
void Time0() interrupt 1 using 0
{
TH0=Scale_Rhythms[Music[a]][0];
TL0=Scale_Rhythms[Music[a]][1];
Speaker=~Speaker;
}
//1中断程序,控制节拍,每50ms中断一次
void Time1() interrupt 3 using 1
{
TH1=0x3c;
TL1=0xb0;
b--;
if(b==0)
   {
   a++;
   b=Scale_Rhythms[Music[a]][2];
   }
   if(Music[a]==64)//64为结束符号
      {
	  a=0;
	  b=Scale_Rhythms[Music[a]][2];
	  }
}
/*说明(乐谱与音乐数据映射表)
  1/=/.>>0   2/=/.>>1   3/=/.>>2   4/=/.>>3   5/=/.>>4   6/=/.>>5   7/=/.>>6
  1/-/.>>7   2/-/.>>8   3/-/.>>9   4/-/.>>10  5/-/.>>11  6/-/.>>12  7/-/.>>13
  1/.>>14    2/.>>15    3/.>>16    4/.>>17    5/.>>18    6/.>>19    7/.>>20
  1/=>>21    2/=>>22    3/=>>23    4/=>>24    5/=>>25    6/=>>26    7/=>>27
  1/->>28    2/->>29    3/->>30    4/->>31    5/->>32    6/->>33    7/->>34
  1>>35      2>>36      3>>37      4>>38      5>>39      6>>40      7>>41
./1/=>>42  ./2/=>>43  ./3/=>>44  ./4/=>>45  ./5/=>>46  ./6/=>>47  ./7/=>>48
./1/->>49  ./2/->>50  ./3/->>51  ./4/->>52  ./5/->>53  ./6/->>54  ./7/->>55
./1>>56    ./2>>57    ./3>>58    ./4>>59    ./5>>60    ./6>>61    ./7>>62   
*/

⌨️ 快捷键说明

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