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

📄 无线遥控音乐2.lst

📁 简单的无线遥控音乐制作 采用HC2272
💻 LST
📖 第 1 页 / 共 2 页
字号:
 177                                      0x72,0x42,0x44,0x52,0x41,0x31,
 178                                      0x34,0x52,0x41,0x31,0x34,0x52,0x42,
 179                                      0x52,0x32,0x52,0x81,0x71,0x74,0x51,0x71,
C51 COMPILER V8.02   蝊线_?___乐2                                                         12/01/2008 22:07:15 PAGE 4   

 180                                      0x82,0x81,0x71,0x72,0x81,0x71,0x74,0x51,0x41,0x31,
 181                                      0x42,0x41,0x51,0x42,0x31,0x41,0x44,0x52,0x41,0x31,
 182                                      0x34,0x52,0x41,0x31,0x34,0x52,0x42,
 183                                      0x52,0x32,0x52,0x81,0x71,0x74,0x51,0x41,
 184                                      0x82,0x82,0xA2,0x71,0x81,0x72,0x71,0x51,0x41,0x31,
 185                                      0x44,0x41,0x31,0x41,0x51,0x44,0x52,0x52,
 186                                      0x42,0x31,0x34,0x52,0x41,0x31,
 187                                      0x42,0x31,0x34,
 188                                      0xFF};
 189          
 190          
 191          //第八首  偏偏喜欢你                                
 192          unsigned char code song8[]={
 193                                      0XC2,0XB2,
 194                                      0X36,0X52,0X42,0X32,0X11,0XC1,0XB2,
 195                                      0XC6,0X12,0XC4,0X12,0XC2,
 196                                      0X76,0XA2,0X82,0X72,0X51,0X41,0X32,
 197                                      0X4C,0X42,0X32,
 198                                      0X74,0X82,0X74,0X82,0X72,
 199                                      0X52,0X41,0X38,0X32,0X42,    
 200                                      0X16,0XC2,0X72,0X52,0X42,0X42,
 201                                      0X3C,0XC2,0XB2,
 202                                      0X36,0X52,0X42,0X32,0X11,0XC1,0XB2,
 203                                      0XC6,0X12,0XC4,0X12,0XC2,
 204                                      0X76,0XA2,0X82,0X72,0X51,0X41,0X32,
 205                                      0X4C,0X42,0X32,
 206                                      0X76,0X82,0X74,0X82,0X72,
 207                                      0X53,0X41,0X38,0X32,0X42,
 208                                      0X16,0XC2,0X72,0X52,0X41,0X51,0X12,
 209                                      0XCC,0XC2,0XB2,
 210                                      0X16,0XC2,0X72,0X52,0X42,0X42,
 211                                      0X3C,0X32,0X32,
 212                                      0X26,0X22,0X24,0X42,0X32,
 213                                      0x22,0x12,0x18,0x02,0x52,
 214                                      0X46,0X12,0X44,0X72,0X82,
 215                                      0X5C,0X52,0X52,
 216                                      0X46,0X42,0X74,0X42,0X32,
 217                                      0X36,0X42,0X58,
 218                                      0X82,0X72,0X62,0X52,0X46,0X32,
 219                                      0X3C,0X12,0XB2,
 220                                      0X36,0X52,0X42,0X32,0X11,0XC1,0XB2,
 221                                      0XC6,0X12,0XC4,0X12,0XC2,
 222                                      0X76,0XA2,0X82,0X72,0X51,0X41,0X32,
 223                                      0X48,0X02,0X42,0X52,0X62,
 224                                      0X76,0X82,0X74,0X82,0X72,
 225                                      0X56,0X41,0X38,0X32,0X22,
 226                                      0X16,0XC2,0X72,0X52,0X42,0X42,
 227                                      0X3C,0X04,0X04,0X04,0X04,
 228                                      0xFF};
 229                    
 230          
 231          unsigned char code* code songs[]={song0,song1,song2,song3,song4,song5,song6,
 232                                            song7,song8}; //指向8首歌
 233          
 234          
 235          
 236          unsigned char code yin[30]={0xFF,0xFF,0xFB,0x90,0xFC,0x0C,0xFC,0x44,0xFC,0xAC,0xFD,0x09,0xFD,0x34,
 237                            0xFD,0x82,0xFD,0xC8,0xFE,0x06,0xFE,0x22,0xFA,0X15,0XFB,0x04,0xFA,0x67,0xFE,0x85};  //C调
             -各音符频率与计数初值T的对照表
 238          
 239          
 240          /*//1ms
C51 COMPILER V8.02   蝊线_?___乐2                                                         12/01/2008 22:07:15 PAGE 5   

 241          void delay1ms(void)
 242          {
 243            unsigned char i,j;
 244            for(i=2;i>0;i--)
 245            for(j=230;j>0;j--) ;
 246          }               */
 247          
 248          /*延时1/4拍时间即187ms*/
 249          void  delay187ms()
 250          
 251          {
 252   1       unsigned char i,j;
 253   1       for(i=255;i>0;i--)
 254   1              {
 255   2               for(j=120;j>0;j--)
 256   2                {
 257   3                   if(IR_OK==1) {break;}
 258   3                }
 259   2              }
 260   1      }
 261          
 262          
 263          
 264          
 265          
 266          /*每个音符的发声*/
 267          void timer0() interrupt 1 using 1  //定时器T0
 268          { 
 269   1           TH0=yin[2*l];
 270   1           TL0=yin[2*l+1];
 271   1           SPK = !SPK; 
 272   1      
 273   1      }
 274          
 275          
 276          
 277          
 278          void sing_song()
 279           {  
 280   1         unsigned int data j;    //取码指针
 281   1         unsigned char data i;   //用于循环
 282   1         unsigned char data k;   //几个1/4拍
 283   1         IR_OK=0;                //不能少掉!!!!
 284   1         song=songs[song_number];
 285   1         j=0;
 286   1          while(*(song+j)!=0xFF)                     //是否取到结束码
 287   1          {  
 288   2                 if(IR_OK==1){break;}                     //这一句很重要的!!!!!
 289   2             k=*(song+j)&0x0F;                       //后4位为多少个1/4拍
 290   2             l=*(song+j)>>4;                         //song(song+j)[]中所放的每个字节
 291   2                                                     //前4位乘2表示为音符频率在数组yin[]中的位置
 292   2            
 293   2             TH0=yin[2*l];                           //置初值
 294   2             TL0=yin[2*l+1];
 295   2             TR0=1;                                  //起动定时器0
 296   2             if ((yin[2*l]==0xff)&&(yin[2*l+1]==0xff)) //如果取到的都是休止符,则不输出音频
 297   2                 {
 298   3                     TR0=0;SPK=1;
 299   3                      }
 300   2             for(i=k;i>0;--i)     //节拍K为多少就执行多少个1/4拍
 301   2                 {  delay187ms();  } 
 302   2             TR0=0;
C51 COMPILER V8.02   蝊线_?___乐2                                                         12/01/2008 22:07:15 PAGE 6   

 303   2             j++;
 304   2          }                                            //回22222
 305   1       }                                               //回xxxxxx
 306                                                   
 307                            
 308          
 309           void main()
 310          {
 311   1      
 312   1           EA=1;            //总中断
 313   1           TMOD=0x01;       //timer0工作在方式1
 314   1               IT0=1;           //外部中断0触发方式控制位,下降沿触发
 315   1               ET0=1;          //允许定时器T0中断
 316   1               EX0=1;           //外部中断0(INT0)中断允许位
 317   1               IP=0x01;         //定义外部中断0优先于定时器中断的优先级
 318   1       
 319   1               IR_OK=0;
 320   1      
 321   1          while(1)
 322   1        {
 323   2          
 324   2            if(IR_OK==1)
 325   2            {
 326   3                      sing_song();
 327   3                }      
 328   2         }    
 329   1      }
 330          
 331                          
 332           
 333          void t0(void) interrupt 0 using 2//外部中断0的函数
 334          {       
 335   1          
 336   1           EA=0;            //总中断
 337   1               IR_OK=1;
 338   1               P0=P1;
 339   1               song_number=P1;
 340   1      
 341   1               EA=1;            //总中断
 342   1      
 343   1      }               


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    238    ----
   CONSTANT SIZE    =   1081    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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