• 大小: 43KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签:

资源简介

stc89c52蜂鸣器音乐,内容是栀子花开,很优美动听,值得一试。

资源截图

代码片段和文件信息

/************************************************************************  
[文件名]  C51音乐程序(八月桂花)  
[功能]    通过单片机演奏音乐  
  
/**********************************************************************/   
#include     
#include     
//本例采用89C52 晶振为12MHZ    
//关于如何编制音乐代码 其实十分简单各位可以看以下代码.    
//频率常数即音乐术语中的音调而节拍常数即音乐术语中的多少拍;    
//所以拿出谱子 试探编吧!    

sbit Beep =  P2^1 ; 
   
unsigned char n=0;  //n为节拍常数变量    
unsigned char code music_tab[] ={   
0x18 0x30 0x1C  0x10 //格式为: 频率常数 节拍常数 频率常数 节拍常数    
0x20 0x40 0x1C  0x10   
0x18 0x10 0x20  0x10   
0x1C 0x10 0x18  0x40   
0x1C 0x20 0x20  0x20   
0x1C 0x20 0x18  0x20   
0x20 0x80 0xFF  0x20   
0x30 0x1C 0x10  0x18   
0x20 0x15 0x20  0x1C   
0x20 0x20 0x20  0x26   
0x40 0x20 0x20  0x2B   
0x20 0x26 0x20  0x20   
0x20 0x30 0x80  0xFF   
0x20 0x20 0x1C  0x10   
0x18 0x10 0x20  0x20   
0x26 0x20 0x2B  0x20   
0x30 0x20 0x2B  0x40   
0x20 0x20 0x1C  0x10   
0x18 0x10 0x20  0x20   
0x26 0x20 0x2B  0x20   
0x30 0x20 0x2B  0x40   
0x20 0x30 0x1C  0x10   
0x18 0x20 0x15  0x20   
0x1C 0x20 0x20  0x20   
0x26 0x40 0x20  0x20   
0x2B 0x20 0x26  0x20   
0x20 0x20 0x30  0x80   
0x20 0x30 0x1C  0x10   
0x20 0x10 0x1C  0x10   
0x20 0x20 0x26  0x20   
0x2B 0x20 0x30  0x20   
0x2B 0x40 0x20  0x15   
0x1F 0x05 0x20  0x10   
0x1C 0x10 0x20  0x20   
0x26 0x20 0x2B  0x20   
0x30 0x20 0x2B  0x40   
0x20 0x30 0x1C  0x10   
0x18 0x20 0x15  0x20   
0x1C 0x20 0x20  0x20   
0x26 0x40 0x20  0x20   
0x2B 0x20 0x26  0x20   
0x20 0x20 0x30  0x30   
0x20 0x30 0x1C  0x10   
0x18 0x40 0x1C  0x20   
0x20 0x20 0x26  0x40   
0x13 0x60 0x18  0x20   
0x15 0x40 0x13  0x40   
0x18 0x80 0x00   
};   
   
void int0()  interrupt 1   //采用中断0 控制节拍    
{  TH0=0xd8;   
   TL0=0xef;   
   n--;   
}   
   
void delay (unsigned char m)   //控制频率延时    
{   
 unsigned i=3*m;   
 while(--i);   
}   
   
void delayms(unsigned char a)  //豪秒延时子程序    
{   
  while(--a);                  //采用while(--a) 不要采用while(a--); 各位可编译一下看看汇编结果就知道了!    
}   
   
void main()   
{ unsigned char pm;   //m为频率常数变量    
  unsigned char i=0;   
  TMOD&=0x0f;   
  TMOD|=0x01;   
  TH0=0xd8;TL0=0xef;   
  IE=0x82;   
play:   
   while(1)   
    {   
    a: p=music_tab[i];   
       if(p==0x00)       { i=0 delayms(1000); goto play;}     //如果碰到结束符延时1秒回到开始再来一遍    
       else if(p==0xff)  { i=i+1;delayms(100)TR0=0; goto a;}  //若碰到休止符延时100ms继续取下一音符    
            else         {m=music_tab[i++] n=music_tab[i++];}  //取频率常数 和 节拍常数    
             TR0=1;                                             //开定时器1    
           while(n!=0) Beep=~Beepdelay(m);                         //等待节拍完成 通过P1口输出音频(可多声道哦!)    
       TR0=0;                                             //关定时器1    
    }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-07-14 20:47  6.蜂鸣器音乐之八月桂花 - 副本\
     文件        5115  2013-03-13 09:27  6.蜂鸣器音乐之八月桂花 - 副本\STARTUP.A51
     文件       11665  2014-06-21 09:59  6.蜂鸣器音乐之八月桂花 - 副本\STARTUP.LST
     文件         749  2014-06-21 09:59  6.蜂鸣器音乐之八月桂花 - 副本\STARTUP.OBJ
     文件        3965  2015-07-14 18:42  6.蜂鸣器音乐之八月桂花 - 副本\beep
     文件        5562  2015-07-14 18:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.LST
     文件        6374  2015-07-14 18:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.M51
     文件        3626  2015-07-14 18:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.OBJ
     文件        1024  2014-11-27 11:11  6.蜂鸣器音乐之八月桂花 - 副本\beep.Opt
     文件        2154  2013-03-13 09:27  6.蜂鸣器音乐之八月桂花 - 副本\beep.Uv2.bak
     文件          34  2015-07-14 18:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.__i
     文件        3246  2015-01-07 16:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.c
     文件        1385  2015-07-14 18:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.hex
     文件          56  2015-07-14 18:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.lnp
     文件        1025  2013-03-13 09:27  6.蜂鸣器音乐之八月桂花 - 副本\beep.opt.bak
     文件         187  2015-07-14 20:46  6.蜂鸣器音乐之八月桂花 - 副本\beep.plg
     文件       68470  2015-01-07 16:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.uvgui.Administrator
     文件       68470  2015-01-07 16:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.uvgui_Administrator.bak
     文件        6503  2015-01-07 16:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.uvopt
     文件       13416  2015-01-07 16:42  6.蜂鸣器音乐之八月桂花 - 副本\beep.uvproj
     文件        1025  2013-03-13 09:27  6.蜂鸣器音乐之八月桂花 - 副本\beep_Opt.Bak
     文件        2024  2013-03-13 09:27  6.蜂鸣器音乐之八月桂花 - 副本\beep_Uv2.Bak
     文件       73670  2014-06-21 10:05  6.蜂鸣器音乐之八月桂花 - 副本\beep_uvopt.bak
     文件       13386  2013-04-19 11:20  6.蜂鸣器音乐之八月桂花 - 副本\beep_uvproj.bak

评论

共有 条评论