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

📄 main.lst

📁 实验7 在RAM中执行程序代码 实验7 在RAM中执行程序代码 实验7 在RAM中执行程序代码
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  10/23/2006 10:46:58 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE INTVECTOR(0X8000) DEBUG OBJECTEXTEND

stmt level    source

   1          /*******************************************************************************
   2          程序名称:控制交流蜂鸣器演奏简单的乐曲
   3          硬件接法:P1.2控制交流蜂鸣器,发声频率等于P1.2的方波振荡频率
   4          运行效果:蜂鸣器演奏出动听的乐曲
   5          *******************************************************************************/
   6          
   7          
   8          #include <reg51.h>
   9          
  10          
  11          //定义I/O接口
  12          sbit BUZZER = P1^2;
  13          
  14          
  15          //定义音符结构
  16          typedef struct
  17          {
  18                  unsigned int mFreq;             //发声频率(对应的定时器初值)
  19                  unsigned int mDelay;    //发声时值
  20          }CNote;
  21          
  22          
  23          //定义定时器T1重装值
  24          unsigned char ReloadH;
  25          unsigned char ReloadL;
  26          
  27          
  28          /*******************************************************************************
  29          函数:T1_ISR()
  30          功能:定时器T1中断服务函数
  31          *******************************************************************************/
  32          void T1_ISR() interrupt 3
  33          {
  34   1              TR1 = 0;
  35   1              TH1 = ReloadH;
  36   1              TL1 = ReloadL;
  37   1              TR1 = 1;
  38   1              BUZZER = !BUZZER;
  39   1      }
  40          
  41          
  42          /*******************************************************************************
  43          函数:Delay()
  44          功能:延时0.001~65.536s
  45          参数:t>0时,延时(t*0.001)s
  46                t=0时,延时65.536s
  47          *******************************************************************************/
  48          void Delay(unsigned int t)
  49          {
  50   1              do
  51   1              {
  52   2                      TH0 = 0xFC;                     //定时器赋初值,定时1ms
  53   2                      TL0 = 0x66+17;
  54   2                      TR0 = 1;                        //启动定时器
  55   2                      while ( !TF0 );         //等待定时器溢出
C51 COMPILER V7.06   MAIN                                                                  10/23/2006 10:46:58 PAGE 2   

  56   2                      TR0 = 0;                        //关闭定时器
  57   2                      TF0 = 0;                        //清除溢出标志
  58   2              } while ( --t != 0 );   //循环t次
  59   1      }
  60          
  61          
  62          /*******************************************************************************
  63          函数:Sound()
  64          功能:演奏一个音符
  65          参数:*note,音符指针,指向要演奏的音符
  66          *******************************************************************************/
  67          void Sound(CNote *note)
  68          {
  69   1      //利用定时器T1发出音符的频率
  70   1              if ( note->mFreq != 0 )
  71   1              {
  72   2                      ReloadH = (unsigned char)(note->mFreq >> 8);
  73   2                      ReloadL = (unsigned char)(note->mFreq);
  74   2                      TH1 = 0xFF;
  75   2                      TL1 = 0xF0;
  76   2                      TR1 = 1;
  77   2              }
  78   1      //发声延时
  79   1              Delay(note->mDelay);
  80   1      //停止发声
  81   1              TR1 = 0;
  82   1              TF1 = 0;
  83   1              BUZZER = 1;
  84   1      //短暂停顿
  85   1              Delay(5);
  86   1      }
  87          
  88          
  89          /*******************************************************************************
  90          函数:Play()
  91          功能:演奏一段乐曲
  92          参数:music[],要演奏的乐曲
  93          *******************************************************************************/
  94          void Play(CNote music[])
  95          {
  96   1              unsigned int n = 0;
  97   1              for (;;)
  98   1              {
  99   2                      if ( music[n].mDelay == 0 ) break;
 100   2                      Sound(&(music[n]));
 101   2                      n++;
 102   2              }
 103   1      }
 104          
 105          
 106          #include "MusicTab.h"   //包含乐曲头文件
 107          
 108          
 109          //主程序
 110          void main()
 111          {
 112   1              unsigned char n;
 113   1              TMOD = 0x11;
 114   1              ET1 = 1;
 115   1              EA = 1;
 116   1              for (;;)
 117   1              {
C51 COMPILER V7.06   MAIN                                                                  10/23/2006 10:46:58 PAGE 3   

 118   2                      n = 3;
 119   2                      do
 120   2                      {
 121   3                              Play(MusicTab); //演奏乐曲
 122   3                      } while ( --n != 0 );
 123   2                      Delay(5000);    //等待5秒,再循环播放
 124   2              }
 125   1      }
 126          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    177    ----
   CONSTANT SIZE    =    292    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       6
   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 + -