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

📄 musicbox.lst

📁 利用单片机做的一个八音盒
💻 LST
字号:
C51 COMPILER V7.00  MUSICBOX                                                               01/18/2007 14:46:49 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE MUSICBOX
OBJECT MODULE PLACED IN MusicBox.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE MusicBox.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /**********************************************************************/
   2          #include "AT89X51.H"
   3          
   4          unsigned char m;   //m为频率常数
   5          unsigned char n; //n为节拍常数 
   6          unsigned char i;
   7          
   8          sbit bell=P3^7;
   9          
  10          
  11          unsigned char code music_tab[] ={
  12                                                                                  0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,
  13                                                                                  0x20, 0x40, 0x1C , 0x10,
  14                                                                                  0x18, 0x10, 0x20 , 0x10,
  15                                                                                  0x1C, 0x10, 0x18 , 0x40,
  16                                                                                  0x1C, 0x20, 0x20 , 0x20,
  17                                                                                  0x1C, 0x20, 0x18 , 0x20,
  18                                                                                  0x20, 0x80, 0xFF , 0x20,
  19                                                                                  0x30, 0x1C, 0x10 , 0x18,
  20                                                                                  0x20, 0x15, 0x20 , 0x1C,
  21                                                                                  0x20, 0x20, 0x20 , 0x26,
  22                                                                                  0x40, 0x20, 0x20 , 0x2B,
  23                                                                                  0x20, 0x26, 0x20 , 0x20,
  24                                                                                  0x20, 0x30, 0x80 , 0xFF,
  25                                                                                  0x20, 0x20, 0x1C , 0x10,
  26                                                                                  0x18, 0x10, 0x20 , 0x20,
  27                                                                                  0x26, 0x20, 0x2B , 0x20,
  28                                                                                  0x30, 0x20, 0x2B , 0x40,
  29                                                                                  0x20, 0x20, 0x1C , 0x10,
  30                                                                                  0x18, 0x10, 0x20 , 0x20,
  31                                                                                  0x26, 0x20, 0x2B , 0x20,
  32                                                                                  0x30, 0x20, 0x2B , 0x40,
  33                                                                                  0x20, 0x30, 0x1C , 0x10,
  34                                                                                  0x18, 0x20, 0x15 , 0x20,
  35                                                                                  0x1C, 0x20, 0x20 , 0x20,
  36                                                                                  0x26, 0x40, 0x20 , 0x20,
  37                                                                                  0x2B, 0x20, 0x26 , 0x20,
  38                                                                                  0x20, 0x20, 0x30 , 0x80,
  39                                                                                  0x20, 0x30, 0x1C , 0x10,
  40                                                                                  0x20, 0x10, 0x1C , 0x10,
  41                                                                                  0x20, 0x20, 0x26 , 0x20,
  42                                                                                  0x2B, 0x20, 0x30 , 0x20,
  43                                                                                  0x2B, 0x40, 0x20 , 0x15,
  44                                                                                  0x1F, 0x05, 0x20 , 0x10,
  45                                                                                  0x1C, 0x10, 0x20 , 0x20,
  46                                                                                  0x26, 0x20, 0x2B , 0x20,
  47                                                                                  0x30, 0x20, 0x2B , 0x40,
  48                                                                                  0x20, 0x30, 0x1C , 0x10,
  49                                                                                  0x18, 0x20, 0x15 , 0x20,
  50                                                                                  0x1C, 0x20, 0x20 , 0x20,
  51                                                                                  0x26, 0x40, 0x20 , 0x20,
  52                                                                                  0x2B, 0x20, 0x26 , 0x20,
  53                                                                                  0x20, 0x20, 0x30 , 0x30,
  54                                                                                  0x20, 0x30, 0x1C , 0x10,
  55                                                                                  0x18, 0x40, 0x1C , 0x20,
C51 COMPILER V7.00  MUSICBOX                                                               01/18/2007 14:46:49 PAGE 2   

  56                                                                                  0x20, 0x20, 0x26 , 0x40,
  57                                                                                  0x13, 0x60, 0x18 , 0x20,
  58                                                                                  0x15, 0x40, 0x13 , 0x40,
  59                                                                                  0x18, 0x80, 0x00
  60          };
  61          
  62          
  63          void time0(void)  interrupt 1 using 1  //产生10MS精确定时
  64          {  TH0=(65536-10000)/256;
  65   1         TL0=(65536-10000)%256;
  66   1         n--;
  67   1      }
  68          void delayms(unsigned char a)  //微秒延时程序
  69          {
  70   1        while(--a);                  
  71   1      }
  72          void delay(void)   //延迟程序
  73          {
  74   1       int i,j;
  75   1       for(i=50;i--;i>0)
  76   1        for(j=10000;j--;j>0)
  77   1        ;
  78   1      }
  79          
  80          void main()
  81          { 
  82   1          P2=0;
  83   1          TMOD=(TMOD&0xf0)|0x01;
  84   1           TH0=(65536-10000)/256;
  85   1           TL0=(65536-10000)%256;
  86   1           EA=1;
  87   1           ET0=1;
  88   1           TR0=0;   
  89   1           while(1)
  90   1           {
  91   2           switch(music_tab[i])
  92   2           {
  93   3              case 0x00:
  94   3                  i=0;delay(); break; // 曲终停顿一定时间
  95   3              case 0xff:
  96   3                  i=i+1;delayms(100);break;  //遇到休止符停顿一定时间100微秒,再取下一个频率
  97   3              default:
  98   3                     m=music_tab[i++];n=music_tab[i++];//取频率到m,取节拍到n
  99   3        
 100   3                       TR0=1;
 101   3                       while(n!=0)
 102   3                        {
 103   4                        bell=!bell;
 104   4                        delayms(4*m);//调整产生的频率,可以通过在m前的值来修正音调的高低
 105   4               
 106   4                         }
 107   3          TR0=0;
 108   3            }
 109   2           }
 110   1      }
 111           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    138    ----
   CONSTANT SIZE    =    191    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.00  MUSICBOX                                                               01/18/2007 14:46:49 PAGE 3   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   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 + -