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

📄 music.lst

📁 单片机的Demo
💻 LST
字号:
C51 COMPILER V8.01   MUSIC                                                                 04/07/2007 22:16:04 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE MUSIC
OBJECT MODULE PLACED IN music.OBJ
COMPILER INVOKED BY: E:\keil\C51\BIN\C51.EXE music.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<AT89X51.H>
   2          #include<stdio.h>
   3          
   4          unsigned char code table[]={0x3f,0x06,0x5b,0x4f,
   5                                      0x66,0x6d,0x7d,0x07,
   6                                      0x7f,0x6f,0x77,0x7c,
   7                                      0x39,0x5e,0x79,0x71};
   8          unsigned char STH0,STL0;
   9                  
  10          unsigned int code music_feq[]={64021,64103,64260,64400,
  11                                          64524,64580,64684,64777,
  12                                          64820,64898,64968,65030,
  13                                          65058,65110,65157,65178};
  14          
  15          //*******特别注意要进行预先声明的工作******************//
  16          void scan_key(void);  
  17          //*****************************************************//
  18          void delay(void);
  19          void proc(unsigned char);
  20          void wait_stop(unsigned char);
  21          
  22          void main(void)
  23          {
  24   1              TMOD=0x01;
  25   1              EA=1;
  26   1              ET0=1;
  27   1              P3=0xFF;
  28   1              scan_key();     
  29   1      }
  30          
  31          void TIME0(void) interrupt 1 using 0
  32          {
  33   1                TH0=STH0;
  34   1                TL0=STL0;
  35   1                P1_0=~P1_0;
  36   1      }
  37          
  38          void scan_key(void)
  39          {
  40   1              unsigned char key,temp;
  41   1              while(1)
  42   1              {
  43   2                      P3_4=0;
  44   2                      temp=P3;
  45   2                      temp&=0x0F;
  46   2                      if(temp!=0x0F)
  47   2                      {
  48   3                               delay();
  49   3                               temp=P3;
  50   3                               temp&=0x0F;
  51   3                               if(temp!=0x0F)
  52   3                               {
  53   4                                      switch(temp)
  54   4                                      {
  55   5                                              case 0x0E:
C51 COMPILER V8.01   MUSIC                                                                 04/07/2007 22:16:04 PAGE 2   

  56   5                                                      key=0;
  57   5                                                      break;
  58   5                                              case 0x0D:
  59   5                                                      key=1;
  60   5                                                      break;
  61   5                                              case 0x0B:
  62   5                                                      key=2;
  63   5                                                      break;
  64   5                                              case 0x07:
  65   5                                                      key=3;
  66   5                                                      break;
  67   5                                      }
  68   4                                      proc(key);
  69   4                                      wait_stop(temp);
  70   4                               }
  71   3                      }
  72   2                      //*******如果不是第一排的按键被按键下则转入第二排扫描**************//
  73   2                      P3=0xFF;
  74   2                      P3_5=0;
  75   2                      temp=P3;
  76   2                      temp&=0x0F;
  77   2                      if(temp!=0x0F)
  78   2                      {
  79   3                              delay();
  80   3                              temp=P3;
  81   3                              temp&=0x0F;
  82   3                              if(temp!=0x0F)
  83   3                              {
  84   4                                      switch(temp)
  85   4                                      {
  86   5                                              case 0x0E:
  87   5                                                      key=4;
  88   5                                                      break;
  89   5                                              case 0x0D:
  90   5                                                      key=5;
  91   5                                                      break;
  92   5                                              case 0x0B:
  93   5                                                      key=6;
  94   5                                                      break;
  95   5                                              case 0x07:
  96   5                                                      key=7;
  97   5                                                      break;
  98   5                                      }
  99   4                                      proc(key);
 100   4                                      wait_stop(temp);        
 101   4                              }       
 102   3                      }
 103   2               //****************第三排按键扫描*******************//
 104   2                      P3=0xFF;
 105   2                      P3_6=0;
 106   2                      temp=P3;
 107   2                      temp&=0x0F;
 108   2                      if(temp!=0x0F)
 109   2                      {
 110   3                              delay();
 111   3                              temp=P3;
 112   3                              temp&=0x0F;
 113   3                              if(temp!=0x0F)
 114   3                              {
 115   4                                      switch(temp)
 116   4                                      {
 117   5                                              case 0x0E:
C51 COMPILER V8.01   MUSIC                                                                 04/07/2007 22:16:04 PAGE 3   

 118   5                                                      key=8;
 119   5                                                      break;
 120   5                                              case 0x0D:
 121   5                                                      key=9;
 122   5                                                      break;
 123   5                                              case 0x0B:
 124   5                                                      key=10;
 125   5                                                      break;
 126   5                                              case 0x07:
 127   5                                                      key=11;
 128   5                                                      break;
 129   5                                      }
 130   4                                      proc(key);
 131   4                                      wait_stop(temp);        
 132   4                              }       
 133   3                      }
 134   2              //*********************第四排扫描*******************//
 135   2                      P3=0xFF;
 136   2                      P3_7=0;
 137   2                      temp=P3;
 138   2                      temp&=0x0F;
 139   2                      if(temp!=0x0F)
 140   2                      {
 141   3                              delay();
 142   3                              temp=P3;
 143   3                              temp&=0x0F;
 144   3                              if(temp!=0x0F)
 145   3                              {
 146   4                                      switch(temp)
 147   4                                      {
 148   5                                              case 0x0E:
 149   5                                                      key=12;
 150   5                                                      break;
 151   5                                              case 0x0D:
 152   5                                                      key=13;
 153   5                                                      break;
 154   5                                              case 0x0B:
 155   5                                                      key=14;
 156   5                                                      break;
 157   5                                              case 0x07:
 158   5                                                      key=15;
 159   5                                                      break;
 160   5                                      }
 161   4                                      proc(key);
 162   4                                      wait_stop(temp);
 163   4                              }       
 164   3                      }       
 165   2              }
 166   1      }
 167          
 168          void delay(void)
 169          {
 170   1              unsigned char i,j;
 171   1              for(i=0;i<80;i++)
 172   1                      for(j=0;j<200;j++);
 173   1      }
 174          
 175          void proc(unsigned char key)
 176          {
 177   1              P1_0=~P1_0;
 178   1              P0=table[key];
 179   1              STH0=music_feq[key]/256;
C51 COMPILER V8.01   MUSIC                                                                 04/07/2007 22:16:04 PAGE 4   

 180   1              STL0=music_feq[key]%256;
 181   1              TH0=STH0;
 182   1              TL0=STL0;
 183   1              TR0=1;
 184   1      }
 185          
 186          void wait_stop(unsigned char temp)
 187          {
 188   1                      do
 189   1                      {
 190   2                              temp=P3;
 191   2                              temp=0x0F;
 192   2                      }
 193   1                      while(temp!=0x0F);
 194   1                      TR0=0;
 195   1      }
 196                          


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