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

📄 playsound.lst

📁 以C8051F020单片机做的多功能计数器
💻 LST
字号:
C51 COMPILER V7.50   PLAYSOUND                                                             09/20/2008 15:21:11 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE PLAYSOUND
OBJECT MODULE PLACED IN playSound.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE playSound.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "playSound.h"
   2          
   3          extern xdata uchar MeasureType;
   4          extern xdata uchar s_MHz;//the second part of the period,The Millions of the frequency value
   5          extern xdata uint ms_KHz,us_Hz;////the ms and us part of the period
   6          extern xdata uint decimal;//the part after point of the  frequency and period
   7          
   8          extern unsigned char xdata soundNumList[10];//0xee为结束标志
   9          
  10          void soundPeriod()
  11          {
  12   1              if(MeasureType==1)
  13   1                      Sound5008Play(PERIOD_SOUND);//周期
  14   1              else if(MeasureType==2)
  15   1                      Sound5008Play(INTERVAL_SOUND);//间隔
  16   1              Delayms(3*ONE_WORD);
  17   1      
  18   1              if(s_MHz>0)
  19   1              {
  20   2                      soundInteger(s_MHz);    
  21   2                      Sound5008Play(POINT_SOUND);//点
  22   2                      Delayms(ONE_WORD);
  23   2                      soundDecimal(ms_KHz,3);
  24   2                      soundDecimal(us_Hz,3);
  25   2                      soundDecimal(decimal,3);
  26   2                      Sound5008Play(SECOND_SOUND);//秒
  27   2                      Delayms(3*ONE_WORD);
  28   2              }
  29   1              else if(ms_KHz>0)
  30   1              {
  31   2                      soundInteger(ms_KHz);
  32   2                      Sound5008Play(POINT_SOUND);//点
  33   2                      Delayms(ONE_WORD);
  34   2                      soundDecimal(us_Hz,3);
  35   2                      soundDecimal(decimal,3);
  36   2                      Sound5008Play(MS_SOUND);//毫秒
  37   2                      Delayms(3*ONE_WORD);
  38   2              }
  39   1              else if(us_Hz>=0)
  40   1              {
  41   2                      if(us_Hz==0)
  42   2                              Sound5008Play(10);//零
  43   2                      else
  44   2                              soundInteger(us_Hz);
  45   2                      Delayms(ONE_WORD);
  46   2                      Sound5008Play(POINT_SOUND);//点
  47   2                      Delayms(ONE_WORD);
  48   2                      soundDecimal(decimal,3);
  49   2                      Sound5008Play(US_SOUND);//微秒
  50   2                      Delayms(3*ONE_WORD);
  51   2              }
  52   1      
  53   1      }
  54          
  55          void soundFrequency()
C51 COMPILER V7.50   PLAYSOUND                                                             09/20/2008 15:21:11 PAGE 2   

  56          {
  57   1              Sound5008Play(FREQUENCY_SOUND);
  58   1              Delayms(3*ONE_WORD);    
  59   1      
  60   1              if(s_MHz>0)
  61   1              {
  62   2                      soundInteger(s_MHz);    
  63   2                      Sound5008Play(POINT_SOUND);//点
  64   2                      Delayms(ONE_WORD);
  65   2                      soundDecimal(ms_KHz,3);
  66   2                      soundDecimal(us_Hz,3);
  67   2                      soundDecimal(decimal,4);
  68   2                      Sound5008Play(MHZ_SOUND);
  69   2                      Delayms(3*ONE_WORD);
  70   2              }
  71   1              else if(ms_KHz>0)
  72   1              {
  73   2                      soundInteger(ms_KHz);
  74   2                      Sound5008Play(POINT_SOUND);//点
  75   2                      Delayms(ONE_WORD);
  76   2                      soundDecimal(us_Hz,3);
  77   2                      soundDecimal(decimal,4);
  78   2                      Sound5008Play(KHZ_SOUND);
  79   2                      Delayms(3*ONE_WORD);
  80   2              }
  81   1              else if(us_Hz>=0)
  82   1              {
  83   2                      if(us_Hz==0)
  84   2                              Sound5008Play(10);//零
  85   2                      else
  86   2                              soundInteger(us_Hz);
  87   2                      Delayms(ONE_WORD);
  88   2                      Sound5008Play(POINT_SOUND);//点
  89   2                      Delayms(ONE_WORD);
  90   2                      soundDecimal(decimal,4);
  91   2                      Sound5008Play(HZ_SOUND);
  92   2                      Delayms(3*ONE_WORD);
  93   2              }
  94   1      }
  95          
  96          
  97          
  98          void soundDecimal(uint Number,uchar len)
  99          {
 100   1         xdata uchar ch,j;
 101   1         uchar i=0;  
 102   1         while(Number)
 103   1         {
 104   2                soundNumList[i] = Number%10;
 105   2                if(0==soundNumList[i])
 106   2                        soundNumList[i]=10;
 107   2                i++;          
 108   2            Number = Number/10;
 109   2         }
 110   1         for(j=i;j<len;j++)
 111   1               soundNumList[j]=10;
 112   1         i=len;
 113   1      
 114   1         for(j=0;j<i/2;j++)
 115   1         {
 116   2                 ch=soundNumList[j];
 117   2                 soundNumList[j]=soundNumList[i-1-j];
C51 COMPILER V7.50   PLAYSOUND                                                             09/20/2008 15:21:11 PAGE 3   

 118   2                 soundNumList[i-1-j]=ch;
 119   2         }
 120   1         soundNumList[len] = 0xee;
 121   1         //几个数字声音地址已经设置好
 122   1         //直接连续播放这些数字
 123   1         Sound5008PlaySome();//播放声音
 124   1         Delayms(ONE_WORD);
 125   1      
 126   1      } 
 127          
 128          void soundInteger(uint Number)//限3位数
 129          {
 130   1         xdata uchar ch,j;
 131   1         uchar i=0; 
 132   1         //分别取出个/十/百位
 133   1         while(Number)
 134   1         {
 135   2                soundNumList[i] = Number%10;
 136   2                if(0==soundNumList[i])
 137   2                        soundNumList[i]=10;
 138   2                i++;          
 139   2            Number = Number/10;
 140   2         }
 141   1         //调整好顺序百/十/个
 142   1         for(j=0;j<i/2;j++)
 143   1         {
 144   2                 ch=soundNumList[j];
 145   2                 soundNumList[j]=soundNumList[i-1-j];
 146   2                 soundNumList[i-1-j]=ch;
 147   2         }
 148   1              //开始播放
 149   1         switch(i)
 150   1         {
 151   2                      case 3:
 152   2                              soundNumList[5]=0xee;
 153   2                              if(soundNumList[2]==0)
 154   2                                      soundNumList[4]=0xee;
 155   2                              else
 156   2                                      soundNumList[4]=soundNumList[2];
 157   2                              soundNumList[3]=TEN_SOUND;
 158   2                              if(0==soundNumList[1])
 159   2                                      soundNumList[2]=10;
 160   2                              else
 161   2                                      soundNumList[2]=soundNumList[1];                
 162   2                              soundNumList[1]=HUNDRED_SOUND;
 163   2                              break;
 164   2                      case 2:
 165   2                              soundNumList[3]=0xee;
 166   2                              if(soundNumList[1]==0)
 167   2                                      soundNumList[2]=0xee;
 168   2                              else
 169   2                                      soundNumList[2]=soundNumList[1];
 170   2                              soundNumList[1]=TEN_SOUND;
 171   2                              break;
 172   2                      case 1:
 173   2                              soundNumList[1]=0xee;
 174   2         }
 175   1         Sound5008PlaySome();//播放声音
 176   1         Delayms(ONE_WORD);
 177   1         
 178   1      } 
 179          
C51 COMPILER V7.50   PLAYSOUND                                                             09/20/2008 15:21:11 PAGE 4   

 180          /*
 181          void soundInteger(uint Number)//限3位数
 182          {
 183             xdata uchar ch,j;
 184             uchar i=0; 
 185             //分别取出个/十/百位
 186             while(Number)
 187             {
 188                    soundNumList[i] = Number%10;
 189                    if(0==soundNumList[i])
 190                            soundNumList[i]=10;
 191                    i++;          
 192                Number = Number/10;
 193             }
 194             //调整好顺序百/十/个
 195             for(j=0;j<i/2;j++)
 196             {
 197                     ch=soundNumList[j];
 198                     soundNumList[j]=soundNumList[i-1-j];
 199                     soundNumList[i-1-j]=ch;
 200             }
 201                  //开始播放
 202             switch(i)
 203             {
 204                          case 3:
 205                                  Sound5008Play(soundNumList[0]);
 206                                  Delayms(ONE_WORD);
 207                                  Sound5008Play(12);//百;
 208                                  Delayms(ONE_WORD);
 209                                  //不要break;
 210                          case 2:
 211                                  Sound5008Play(soundNumList[1]);
 212                                  Delayms(ONE_WORD);
 213                                  if(soundNumList[1]!=10)//十位不是0才读出“十”
 214                                  {
 215                                          Sound5008Play(11);//十;
 216                                          Delayms(ONE_WORD);
 217                                  }
 218                                  //不要break;
 219                          case 1:
 220                                  if(soundNumList[2]!=10)//个位不是0才读出
 221                                  {
 222                                          Sound5008Play(soundNumList[2]);//十;
 223                                          Delayms(2*ONE_WORD);
 224                                  }
 225          
 226             }
 227             
 228          } 
 229          
 230          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    928    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----       4
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V7.50   PLAYSOUND                                                             09/20/2008 15:21:11 PAGE 5   


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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