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

📄 sound.lst

📁 Keil c工程
💻 LST
📖 第 1 页 / 共 2 页
字号:
 144              255-FREQ/24/700/256,256-FREQ/24/700%256,        //4 fa
 145              255-FREQ/24/786/256,256-FREQ/24/786%256,        //5 suo
 146              255-FREQ/24/882/256,256-FREQ/24/882%256,        //6 la
 147              255-FREQ/24/990/256,256-FREQ/24/990%256,        //7 xi
 148          
 149              0xff,0xea,                                      //0 休止符
 150              255-FREQ/24/1049/256,256-FREQ/24/1049%256,      //1 do
 151              255-FREQ/24/1178/256,256-FREQ/24/1178%256,      //2 re
 152              255-FREQ/24/1322/256,256-FREQ/24/1322%256,      //3 mi
 153              255-FREQ/24/1400/256,256-FREQ/24/1400%256,      //4 fa
 154              255-FREQ/24/1572/256,256-FREQ/24/1572%256,      //5 suo
 155              255-FREQ/24/1665/256,256-FREQ/24/1665%256,      //6 la
 156              255-FREQ/24/1869/256,256-FREQ/24/1869%256,      //7 xi
 157          };
 158          
 159          byte code music_frequp_tab[64]={           //升半音
 160              0xff,0xea,                                      //0 休止符
 161              255-FREQ/24/139/256,        //1 do 高字节 //255-FREQ/24/x/256
 162              256-FREQ/24/139%256,        //1 do 低字节 //256-FREQ/24/x%256
 163              255-FREQ/24/156/256,256-FREQ/24/156%256,        //2 re
 164              255-FREQ/24/175/256,256-FREQ/24/175%256,        //3 mi
 165              255-FREQ/24/185/256,256-FREQ/24/185%256,        //4 fa
 166              255-FREQ/24/208/256,256-FREQ/24/208%256,        //5 suo
 167              255-FREQ/24/234/256,256-FREQ/24/234%256,        //6 la
 168              255-FREQ/24/262/256,256-FREQ/24/262%256,        //7 xi
 169          
 170              0xff,0xea,                                      //0 休止符
 171              255-FREQ/24/278/256,256-FREQ/24/278%256,        //1 do
 172              255-FREQ/24/312/256,256-FREQ/24/312%256,        //2 re
 173              255-FREQ/24/350/256,256-FREQ/24/350%256,        //3 mi
 174              255-FREQ/24/371/256,256-FREQ/24/371%256,        //4 fa
 175              255-FREQ/24/416/256,256-FREQ/24/416%256,        //5 suo
 176              255-FREQ/24/467/256,256-FREQ/24/467%256,        //6 la
 177              255-FREQ/24/525/256,256-FREQ/24/525%256,        //7 xi
 178          
C51 COMPILER V7.10   SOUND                                                                 08/29/2005 13:01:45 PAGE 4   

 179              0xff,0xea,                                      //0 休止符
 180              255-FREQ/24/556/256,256-FREQ/24/556%256,        //1 do
 181              255-FREQ/24/624/256,256-FREQ/24/624%256,        //2 re
 182              255-FREQ/24/700/256,256-FREQ/24/700%256,        //3 mi
 183              255-FREQ/24/742/256,256-FREQ/24/742%256,        //4 fa
 184              255-FREQ/24/833/256,256-FREQ/24/833%256,        //5 suo
 185              255-FREQ/24/935/256,256-FREQ/24/935%256,        //6 la
 186              255-FREQ/24/1049/256,256-FREQ/24/1049%256,      //7 xi
 187          
 188              0xff,0xea,                                      //0 休止符
 189              255-FREQ/24/1112/256,256-FREQ/24/1112%256,      //1 do
 190              255-FREQ/24/1248/256,256-FREQ/24/1248%256,      //2 re
 191              255-FREQ/24/1400/256,256-FREQ/24/1400%256,      //3 mi
 192              255-FREQ/24/1484/256,256-FREQ/24/1484%256,      //4 fa
 193              255-FREQ/24/1618/256,256-FREQ/24/1618%256,      //5 suo
 194              255-FREQ/24/1764/256,256-FREQ/24/1764%256,      //6 la
 195              255-FREQ/24/1968/256,256-FREQ/24/1968%256,      //7 xi
 196          };
 197          byte temp_TH1;
 198          byte temp_TL1;
 199          
 200          
 201          void music_int_t1 (void) interrupt 3     
 202              {
 203   1          SOUND_PIN=~SOUND_PIN;
 204   1          TH1=temp_TH1;
 205   1          TL1=temp_TL1;
 206   1      }
 207          
 208          void music_delay(byte n)     //延时 125*n 毫秒
 209          {
 210   1      Delay100uS(1250*n);
 211   1      }
 212          
 213          void music_play(byte *msc)   
 214          {
 215   1          byte music_freq=32;      //音高 
 216   1          byte music_long;         //节拍
 217   1          byte music_data=0;       //音符数据
 218   1          bit music_up=0;          //升半音
 219   1          bit music_break=0;       //断奏
 220   1      
 221   1          temp_TH1=0xff;
 222   1          temp_TL1=0xea;           //关输出(输出超声波)
 223   1      
 224   1          TMOD=  0x12;    //time1 work on mode 1,16bit counter.T0 on mode 2,8bit reload counter    
 225   1              TR1     = 1;
 226   1              ET1 = 1;
 227   1              EA  = 1;
 228   1      
 229   1        while (*msc != MUSIC_END)
 230   1            {
 231   2              music_data=*msc & 0x07;
 232   2              music_long=*msc>>4;
 233   2      
 234   2              if (music_long != 0)          //是音符
 235   2                {
 236   3                  if (*msc >=128)           //需升降调
 237   3                     {
 238   4                      if (((*msc) & 0x08) == 0)
 239   4                          {if (music_freq >= 16) music_freq -= 16;}    //音高下降 
 240   4                      else
C51 COMPILER V7.10   SOUND                                                                 08/29/2005 13:01:45 PAGE 5   

 241   4                          {if (music_freq <  48) music_freq += 16;}    //音高上升
 242   4                     }
 243   3                  if (music_up==1)          //升半音
 244   3                      {
 245   4                      temp_TH1=music_frequp_tab[music_freq  + (music_data <<1)];
 246   4                      temp_TL1=music_frequp_tab[music_freq + (music_data <<1)+1];
 247   4                      }
 248   3                  else                      //不升半音
 249   3                      {
 250   4                      temp_TH1=music_freq_tab[music_freq + (music_data <<1)];
 251   4                      temp_TL1=music_freq_tab[music_freq + (music_data <<1)+ 1];
 252   4                      }
 253   3                  if (music_break)          //断奏
 254   3                      {
 255   4                      music_delay(music_l_tab[music_long&0x07]-1);
 256   4                      temp_TH1=0xff;
 257   4                      temp_TL1=0xea;
 258   4                      music_delay(1);
 259   4                      }
 260   3                  else                      //连奏
 261   3                      music_delay(music_l_tab[music_long&0x07]);
 262   3               }// if (music_long != 0)  
 263   2              else                          //是功能码
 264   2                 {
 265   3                  switch(music_data)
 266   3                     {
 267   4                      case 0x04: music_up=0;break;       //不升半音
 268   4                      case 0x05: music_up=1;break;       //升半音
 269   4                      case 0x06: music_break=0;break;    //断奏
 270   4                      case 0x07: music_break=1;break;    //连奏
 271   4                      default: break;
 272   4                    }
 273   3                 }
 274   2              msc++;
 275   2          }
 276   1       TR1=0;
 277   1       ET1=0;                           //播放结束,关T1中断
 278   1       SOUND_PIN=1;                       //关输出
 279   1      }
 280          
 281          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    312    ----
   CONSTANT SIZE    =    481    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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