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

📄 text1.lst

📁 使用AT89S52单片机的简易音乐播放器程序的KEIL工程
💻 LST
字号:
C51 COMPILER V8.01   TEXT1                                                                 05/17/2009 16:32:19 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    135    ----
   CONSTANT SIZE    =    191    ----
   XDATA SIZE       =   ----    ----
   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 + -