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

📄 music.lst

📁 用单片机播放音乐并用LCD显示的源程序
💻 LST
字号:
C51 COMPILER V7.50   MUSIC                                                                 07/26/2005 09:03:07 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MUSIC
OBJECT MODULE PLACED IN Music.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Music.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***************************************/
   2          /*       CopyRight 2005 LiuYong                 *
   3          /****************************************
   4                  文件名称:Music.C
   5                  文件版本:V1.0
   6                  创建人员:LiuYong
   7                  创建日期:2005.6.28
   8                  功能描述:用蜂鸣器播放音乐的函数
   9                  相关硬件:at89s52兼容单片机,晶体11.0592M
  10                  修改记录:
  11          ***************************************/
  12          #include <regx52.H>
  13          #include "musicda.h"
  14          
  15          
  16          #define uchar           unsigned char
  17          #define uint            unsigned int
  18          
  19          sbit BUZZER             =P1^5;
  20          
  21          uchar g_ucMusicNo;              //正在播放的曲目的序号
  22          uint g_ucSoundLongCNT;  //
  23          //uint  g_uTempo;       
  24          
  25          /*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  26          
  27                                          音乐数据
  28                                          
  29          &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
  30          
  31          
  32          /*************Music1: Happy birthday*********************/
  33          uchar code SOUNDLONG1[]=
  34          {
  35                  _8d,_16,_4,_4,_4,_2,
  36                  _8d,_16,_4,_4,_4,_2,
  37                  _8d,_16,_4,_4,_4,_4,_4,
  38                  _8d,_16,_4,_4,_4,_2,
  39                  0
  40          };
  41          uint code SOUNDTONE1[]=
  42          {
  43                  _RE,_RE,_MI,_RE,_SO,_FAr,
  44                  _RE,_RE,_MI,_RE,_LA,_SO,
  45                  _RE,_RE,_RE1,_TI,_SO,_FAr,_MI,
  46                  _DO1,_DO1,_TI,_SO,_LA,_SO,
  47                  0
  48          };
  49          /*************Music2: 月朦胧鸟朦胧*******************/
  50          uchar code SOUNDLONG2[]=
  51          {
  52                  _2,_4,_2,_4,_2,_4,_2d,
  53                  _2,_4,_4,_4,_4,_1,
  54                  _2,_4,_2,_8,_8,_2,_8,_8,_2d,
  55                  _2,_4,_2,_4,_1,
C51 COMPILER V7.50   MUSIC                                                                 07/26/2005 09:03:07 PAGE 2   

  56                  0
  57                  
  58          };
  59          uint code SOUNDTONE2[]=
  60          {
  61                  _1SO,_DO,_MI,_DO,_1LA,_DO,_1SO,
  62                  _MI,_MI,_MI,_RE,_DO,_RE,
  63                  _SO,_SO,_SO,_LA,_SO,_MI,_RE,_DO,_1LA,
  64                  _SO,_SO,_MI,_RE,_DO,
  65                  0
  66          };
  67          /*************Music3: 郊游******************/
  68          uchar code SOUNDLONG3[]=
  69          {
  70                  _4,_4,_4,_4,_4,
  71                  _4d,_8,_4,_4,_4,_4,_4,
  72                  _4,_4,_4,_4,_4,
  73                  _4,_8,_8,_4,_4,_2,
  74                  0
  75          };
  76          uint code SOUNDTONE3[]=
  77          {
  78                  _RE1,_RE1,_RE1,_TI,_RE1,
  79                  _RE1,_TI,_SO,_TI,_LA,_SO,_RE,
  80                  _MI,_SO,_RE,_SO,_TI,
  81                  _RE1,_SO,_LA,_TI,_LA,_SO,
  82                  0
  83          };
  84          /*************Music4: Three wheel******************/
  85          uchar code SOUNDLONG4[]=
  86          {
  87                  _8,_8,_8d,_16,
  88                  _8,_8,_4,
  89                  _8,_8,_8,_8,
  90                  _8,_8,_4,
  91          
  92                  _8,_8,_8d,_16,
  93                  _8,_8,_8d,_16,
  94                  _8,_16,_16,_8,_16,_16,
  95                  _8,_8,_4,
  96                  0
  97          };
  98          uint code SOUNDTONE4[]=
  99          {
 100                  _DO,_DO,_RE,_MI,
 101                  _SO,_SO,_MI,
 102                  _SO,_SO,_LA,_TI,
 103                  _DO1,_DO1,_SO,
 104                  _DO1,_DO1,_LA,_SO,
 105                  _MI,_LA,_SO,_MI,
 106                  _DO,_RE,_MI,_SO,_LA,_SO,
 107                  _MI,_RE,_DO,
 108                  0
 109          };
 110          /**************彩虹妹妹**********************/
 111          uchar code SOUNDLONG5[]=
 112          {
 113                  _4,_8,_8,_4,_8,_8,
 114                  _8,_4,_8,_2,
 115                  _4,_8,_8,_4,_8,_8,
 116                  _8,_4,_8,_2,
 117                  _4,_8,_8,_8,_8,_8,_8,
C51 COMPILER V7.50   MUSIC                                                                 07/26/2005 09:03:07 PAGE 3   

 118                  _8,_4,_8,_2,
 119                  _4,_4,_4,_8,_8,
 120                  _8,_4,_8,_2,
 121                  0
 122          };
 123          uint code SOUNDTONE5[]=
 124          {
 125                  _LA,_SO,_MI,_LA,_SO,_MI,
 126                  _LA,_LA,_SO,_LA,
 127                  _LA,_SO,_MI,_LA,_SO,_MI,
 128                  _RE,_RE,_DO,_RE,
 129                  _MI,_MI,_SO,_LA,_DO1,_LA,_SO,
 130                  _MI,_MI,_SO,_DO,
 131                  _MI,_MI,_MI,_MI,_MI,
 132                  _1LA,_1LA,_1SO,_1LA,
 133                  0
 134          };
 135          
 136          
 137          
 138          /*************************************************
 139          *       函数名称:void T2Init(void)
 140          *       创建日期:2005.6.17
 141          *       功能描述:定时器T2初始化
 142          *       入口参数:uT2Reg:定时器初值
 143          *       返回值:        无
 144          *       修改日志:
 145          *************************************************/
 146          void T2Init(uint uT2Reg)
 147          {
 148   1              CP_RL2=0;       //16位自动重载
 149   1              T2MOD=0x00;  //计数增加,外部捕获禁止
 150   1              RCLK=0;
 151   1              TCLK=0;
 152   1              TL2=RCAP2L=uT2Reg&0x00ff;
 153   1              TH2=RCAP2H=uT2Reg>>8;
 154   1              TR2=1;            // 启动定时器
 155   1              ET2=1;          //t2开中断
 156   1              EA=1;
 157   1      }
 158          /*************************************************
 159          *       函数名称:void MusicPlay(uchar ucSL[],uint uST[])
 160          *       创建日期:2005.7.12
 161          *       功能描述:播放某首音乐的函数
 162          *       入口参数:ucSL[]:音节长度的数组;uST[]:音乐频率的数组
 163          *       返回值:        无
 164          *       修改日志:
 165          *************************************************/
 166          void MusicPlay(uchar ucSL[],uint uST[])
 167          {
 168   1              uchar i=0;
 169   1              //float fTmp=0;
 170   1              while((ucSL[i]!=0)||(uST[i]!=0))
 171   1              {
 172   2                      //fTmp=(float)11059/(float)12000;
 173   2                      T2Init(0xffff-uST[i]*((float)11059/(float)12000));              //11。0592M的晶体
 174   2                      g_ucSoundLongCNT=((MODERATO*ucSL[i]*1000L)/8)/uST[i];
 175   2                      while(g_ucSoundLongCNT!=0);             //等待计数器为0
 176   2                      TR2=0;                  //暂时关闭定时器
 177   2                      i++;
 178   2              }
 179   1      }
C51 COMPILER V7.50   MUSIC                                                                 07/26/2005 09:03:07 PAGE 4   

 180          /*************************************************
 181          *       函数名称:void EnjoyMusic(uchar ucNO,bit bOffMusic,bit bSigleFl)
 182          *       创建日期:2005.6.28
 183          *       功能描述:音乐播放的函数
 184          *       入口参数:ucNO:要播放的曲目序号。
 185          *       返回值:        无      
 186          *       修改日志:
 187          *************************************************/
 188          void EnjoyMusic(uchar ucNO)
 189          {
 190   1              switch(ucNO)
 191   1              {
 192   2                      /*******第1首音乐**********/
 193   2                      case 0:
 194   2                      {
 195   3                              MusicPlay(SOUNDLONG1,SOUNDTONE1);       //播放音乐1
 196   3                              break;  
 197   3                      }
 198   2                      /*******第2首音乐**********/
 199   2                      case 1:
 200   2                      {
 201   3                              MusicPlay(SOUNDLONG2,SOUNDTONE2);       //播放音乐2
 202   3                              break;  
 203   3                      }
 204   2                      /*******第3首音乐**********/
 205   2                      case 2:
 206   2                      {
 207   3                              MusicPlay(SOUNDLONG3,SOUNDTONE3);       //播放音乐3
 208   3                              break;  
 209   3                      }
 210   2                      /*******第4首音乐**********/
 211   2                      case 3:
 212   2                      {
 213   3                              MusicPlay(SOUNDLONG4,SOUNDTONE4);       //播放音乐4
 214   3                              break;  
 215   3                      }
 216   2                      /*******第5首音乐**********/
 217   2                      case 4:
 218   2                      {
 219   3                              MusicPlay(SOUNDLONG5,SOUNDTONE5);       //播放音乐5
 220   3                              break;  
 221   3                      }
 222   2                      default:
 223   2                              break;
 224   2              }
 225   1      }
 226          
 227          /*************************************************
 228          *       函数名称:void T2Init(void)
 229          *       创建日期:2005.7.11
 230          *       功能描述:用于音乐的音调半周期定时
 231          *       入口参数:无
 232          *       返回值:        无
 233          *       修改日志:
 234          *************************************************/
 235          void T2ISR(void) interrupt 5 using 1
 236          {
 237   1              TF2=0;                          //手动清除溢出标志
 238   1              if(g_ucSoundLongCNT!=0)
 239   1              {
 240   2                      g_ucSoundLongCNT--;
 241   2              }
C51 COMPILER V7.50   MUSIC                                                                 07/26/2005 09:03:07 PAGE 5   

 242   1              BUZZER=~BUZZER;
 243   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    368    ----
   CONSTANT SIZE    =    453    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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