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

📄 yinyue.lst

📁 单片机项目集
💻 LST
字号:
C51 COMPILER V8.02   YINYUE                                                                04/07/2012 10:02:29 PAGE 1   


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

line level    source

   1          /*****************************************************************/
   2          //《世上只有妈妈好》51单片机C语言程序和音乐彩灯程序
   3          //按下按键key_INT0,即sw,蜂鸣器播放音乐,
   4          //此时P0驱动流水灯随音乐的节拍的快慢而动
   5          /*****************************************************************/
   6          #include <reg51.h>
   7          sbit speaker = P3^2;    //接蜂鸣器,               
   8          sbit sw = P1^4;         //sw合上后就开始放音乐,灯开始闪动,sw断开,音乐停止,灯也同时停止闪动
   9          unsigned char timer0h,timer0l,time,led = 1,j = 0;
  10          unsigned char  flagd = 0;
  11          //世上只有妈妈好数据表
  12          code unsigned char sszymmh[] = {6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,
  13                                          6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,
  14                                          6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,
  15                                          5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
  16                                          2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0};
  17          // 音阶频率表 高八位
  18          code unsigned char FREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 
  19                                      0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
  20                                      0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
  21                                      0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF } ;
  22          // 音阶频率表 低八位
  23          code unsigned char FREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
  24                                          0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
  25                                          0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 
  26                                          0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};
  27          void delay(unsigned char t)
  28          {
  29   1              unsigned char t1;
  30   1              unsigned long t2;
  31   1              for(t1 = 0;t1 < t;t1 ++)                             
  32   1              for(t2 = 0;t2 < 8000;t2 ++);                             
  33   1              TR0=0;
  34   1      }
  35          void t0int() interrupt 1
  36          {
  37   1              TR0 = 0;        
  38   1              TH0 = timer0h;
  39   1              TL0 = timer0l;
  40   1              speaker = !speaker;
  41   1              TR0 = 1;
  42   1      }
  43          void song()
  44          {
  45   1              TH0 = timer0h;
  46   1              TL0 = timer0l;
  47   1              TR0 = 1;
  48   1              delay(time);                       
  49   1      }
  50          void main(void)
  51          {
  52   1              unsigned char k,i;
  53   1              TMOD = 1;   //置T0定时工作方式1
  54   1              EA = 1;
  55   1              ET0 = 1;    //CPU开中断,ET0开中断 
C51 COMPILER V8.02   YINYUE                                                                04/07/2012 10:02:29 PAGE 2   

  56   1              while(1)
  57   1              {
  58   2                      i = 0;
  59   2                      time = 1;
  60   2                      sw = 1;                             
  61   2                      while(time)
  62   2                      {  
  63   3                              if(sw)
  64   3                              {
  65   4                                      P0 = 0;
  66   4                                      i = 0;
  67   4                                      continue;
  68   4                              }
  69   3                              if(j == 8)
  70   3                              {
  71   4                                      j = 0;
  72   4                                      flagd = ~flagd;
  73   4                                      if(flagd)led = 0x80;
  74   4                              else led=1;
  75   4                      } 
  76   3                              else
  77   3                      {
  78   4                              P0 = ~led;
  79   4                      if(flagd)led = led >> 1;
  80   4                      else led = led << 1;
  81   4                      j++;                                     
  82   4                      }                                  
  83   3                      k = sszymmh[i] + 7*sszymmh[i + 1] - 1;
  84   3                      timer0h = FREQH[k];
  85   3                      timer0l = FREQL[k];
  86   3                      time = sszymmh[i + 2];
  87   3                      i = i + 3;
  88   3                      song();
  89   3               }
  90   2           } 
  91   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    231    ----
   CONSTANT SIZE    =    158    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       8
   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 + -