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

📄 beep.lst

📁 nokia5110智能电子钟的设计ds1302+ds18b20+stc12c5a60s2
💻 LST
字号:
C51 COMPILER V9.00   BEEP                                                                  05/29/2013 18:34:20 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE BEEP
OBJECT MODULE PLACED IN ..\output\beep.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ..\c_file\beep.c BROWSE INCDIR(..\c_file;..\h_file;..\output;..\project) DE
                    -BUG OBJECTEXTEND PRINT(.\beep.lst) OBJECT(..\output\beep.obj)

line level    source

   1          #include <INTRINS.H>
   2          # include "stc12c5a60s2.h"
   3          # include       "main.h"
   4          # include "key.h"
   5          
   6          /************************************************************************  
   7          [文件名]  C51音乐程序(八月桂花)  
   8          [功能]    通过单片机演奏音乐  
   9          注意:通过了74HC14控制ULN2003 驱动芯片驱动蜂鸣器                                    *  
  10          /**********************************************************************/     
  11              
  12          //本例采用89C52, 晶振为11.0592MHZ    
  13          //关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.    
  14          //频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;    
  15          //所以拿出谱子, 试探编吧!    
  16             
  17          unsigned char n=0;  //n为节拍常数变量    
  18          unsigned char code music_tab[] ={   
  19          0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,    
  20          0x20, 0x40, 0x1C , 0x10,   
  21          0x18, 0x10, 0x20 , 0x10,   
  22          0x1C, 0x10, 0x18 , 0x40,   
  23          0x1C, 0x20, 0x20 , 0x20,   
  24          0x1C, 0x20, 0x18 , 0x20,   
  25          0x20, 0x80, 0xFF , 0x20,   
  26          0x30, 0x1C, 0x10 , 0x18,   
  27          0x20, 0x15, 0x20 , 0x1C,   
  28          0x20, 0x20, 0x20 , 0x26,   
  29          0x40, 0x20, 0x20 , 0x2B,   
  30          0x20, 0x26, 0x20 , 0x20,   
  31          0x20, 0x30, 0x80 , 0xFF,   
  32          0x20, 0x20, 0x1C , 0x10,   
  33          0x18, 0x10, 0x20 , 0x20,   
  34          0x26, 0x20, 0x2B , 0x20,   
  35          0x30, 0x20, 0x2B , 0x40,   
  36          0x20, 0x20, 0x1C , 0x10,   
  37          0x18, 0x10, 0x20 , 0x20,   
  38          0x26, 0x20, 0x2B , 0x20,   
  39          0x30, 0x20, 0x2B , 0x40,   
  40          0x20, 0x30, 0x1C , 0x10,   
  41          0x18, 0x20, 0x15 , 0x20,   
  42          0x1C, 0x20, 0x20 , 0x20,   
  43          0x26, 0x40, 0x20 , 0x20,   
  44          0x2B, 0x20, 0x26 , 0x20,   
  45          0x20, 0x20, 0x30 , 0x80,   
  46          0x20, 0x30, 0x1C , 0x10,   
  47          0x20, 0x10, 0x1C , 0x10,   
  48          0x20, 0x20, 0x26 , 0x20,   
  49          0x2B, 0x20, 0x30 , 0x20,   
  50          0x2B, 0x40, 0x20 , 0x15,   
  51          0x1F, 0x05, 0x20 , 0x10,   
  52          0x1C, 0x10, 0x20 , 0x20,   
  53          0x26, 0x20, 0x2B , 0x20,   
  54          0x30, 0x20, 0x2B , 0x40,   
C51 COMPILER V9.00   BEEP                                                                  05/29/2013 18:34:20 PAGE 2   

  55          0x20, 0x30, 0x1C , 0x10,   
  56          0x18, 0x20, 0x15 , 0x20,   
  57          0x1C, 0x20, 0x20 , 0x20,   
  58          0x26, 0x40, 0x20 , 0x20,   
  59          0x2B, 0x20, 0x26 , 0x20,   
  60          0x20, 0x20, 0x30 , 0x30,   
  61          0x20, 0x30, 0x1C , 0x10,   
  62          0x18, 0x40, 0x1C , 0x20,   
  63          0x20, 0x20, 0x26 , 0x40,   
  64          0x13, 0x60, 0x18 , 0x20,   
  65          0x15, 0x40, 0x13 , 0x40,   
  66          0x18, 0x80, 0x00   
  67          };   
  68             
  69          void int0()  interrupt 1   //采用中断0 控制节拍    
  70          {  TH0=0xd8;   
  71   1         TL0=0xef;   
  72   1         n--;   
  73   1      }   
  74             
  75          void delay (unsigned char m)   //控制频率延时    
  76          {   
  77   1       unsigned i=3*m;   
  78   1       while(--i);   
  79   1      }   
  80             
  81          void delayms1(unsigned char a)  //豪秒延时子程序    
  82          {   
  83   1        while(--a);                  //采用while(--a) 不要采用while(a--); 各位可编译一下看看汇编结果就知道了!   
             - 
  84   1      }   
  85             
  86          void fengming()   
  87          {
  88   1       unsigned char p,m;   //m为频率常数变量    
  89   1        unsigned char i=0;   
  90   1        TMOD|=0x01;
  91   1        TMOD|=0x10      
  92   1        TH1=0xd8;
*** ERROR C141 IN LINE 92 OF ..\C_FILE\BEEP.C: syntax error near 'TH1'
  93   1        TL1=0xef;   
  94   1      //  IE=0x82;   
  95   1      play:   
  96   1         while(p!=0x00)   
  97   1          {   
  98   2          a: p=music_tab[i];   
  99   2             if(p==0x00)       { i=0, delayms1(1000); goto play;}     //如果碰到结束符,延时1秒,回到开始再来一遍 
             -   
 100   2             else if(p==0xff)  { i=i+1;delayms1(100),TR1=0; goto a;}  //若碰到休止符,延时100ms,继续取下一音符   
             - 
 101   2                  else         {m=music_tab[i++], n=music_tab[i++];}  //取频率常数 和 节拍常数    
 102   2                   TR1=1;                                             //开定时器1    
 103   2                 while(n!=0) beep=~beep,delay(m);                         //等待节拍完成, 通过P1口输出音频(可多

⌨️ 快捷键说明

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