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

📄 lcd.lst

📁 基于51单片机的音乐播放机 程序中所引用的歌曲16进制数值,均从WAV歌曲文件中提取
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   LCD                                                                   12/06/2008 18:59:39 PAGE 1   


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

line level    source

   1          /*  版权所有,请勿用于商业目的,仅供学习参考,以下为程序说明:
   2                  程序中所引用的歌曲16进制数值,均从WAV歌曲文件中提取,其中WAV文件以8000HZ采样8位编码,DAC0832同样
   3                  以8000HZ采样8位编码恢复波形,通过示波器观察声音波形
   4                  程序中3首歌曲均选取WAV文件中的192个采样点即24ms时间的波形
   5          */
   6          #include<reg52.h>
   7          #include<absacc.h>
   8          #define uchar unsigned char
   9          #define uint unsigned int
  10          uchar code table1[]="The 1th oneM:6.7 m:3.5 24ms";
  11          uchar code table2[]="The 2th oneM:6.1 m:4.5 24ms";
  12          uchar code table3[]="The 3th oneM:6.8 m:3.0 24ms";
  13          uchar code tableFailure[]="Failure!Not Defined!";
  14          uchar code Music1[]={   0x72,0x75,0x6C,0x78,0x78,0x7E,0x85,0x7E,0x86,0x77,0x7A,0x75,0x6A,0x76,0x6C,0x7B,
  15                                                          0x7A,0x7B,0x83,0x75,0x7A,0x6F,0x71,0x6E,0x70,0x70,0x7B,0x7C,0x8F,0x8D,0x95,0x95,
  16                                                          0x94,0x93,0x93,0x95,0x99,0x98,0xA0,0x9B,0x9E,0x9E,0x9A,0x9B,0x9A,0x97,0x96,0x8E,
  17                                                          0x93,0x8A,0x90,0x89,0x8A,0x86,0x81,0x7F,0x77,0x79,0x74,0x7A,0x72,0x7A,0x70,0x75,
  18                                                          0x67,0x6D,0x5A,0x65,0x59,0x62,0x61,0x60,0x69,0x60,0x70,0x65,0x71,0x68,0x6A,0x67,
  19                                                          0x65,0x6A,0x6A,0x71,0x74,0x75,0x78,0x77,0x74,0x7F,0x6F,0x75,0x6D,0x69,0x73,0x6C,
  20                                                          0x81,0x7A,0x89,0x8B,0x90,0x94,0x9E,0x98,0xAC,0x9E,0xAA,0x9E,0x98,0x97,0x8F,0x99,
  21                                                          0x97,0x9E,0xA5,0xA0,0xAA,0xA0,0x9F,0x99,0x8A,0x8C,0x7F,0x80,0x86,0x82,0x8F,0x8A,
  22                                                          0x89,0x87,0x7E,0x85,0x75,0x80,0x71,0x7D,0x73,0x80,0x75,0x7C,0x72,0x71,0x70,0x6C,
  23                                                          0x75,0x6C,0x75,0x71,0x72,0x70,0x6D,0x6C,0x67,0x6C,0x6B,0x6F,0x70,0x74,0x74,0x77,
  24                                                          0x72,0x76,0x6C,0x71,0x62,0x6C,0x62,0x6D,0x72,0x75,0x80,0x7D,0x88,0x88,0x88,0x8F,
  25                                                          0x85,0x91,0x87,0x94,0x93,0x95,0x9D,0x9B,0xA0,0xA0,0x9E,0x9A,0x9A,0x93,0x94,0x8D,0x00};
  26          uchar code Music2[]={   0x79,0x85,0x78,0x8F,0x75,0x8D,0x77,0x8D,0x75,0x94,0x74,0x90,0x77,0x91,0x76,0x94,
  27                                                          0x76,0x92,0x78,0x94,0x7B,0x90,0x7E,0x8C,0x7F,0x8B,0x83,0x85,0x84,0x85,0x81,0x86,
  28                                                          0x82,0x85,0x83,0x87,0x88,0x88,0x88,0x87,0x86,0x80,0x88,0x7E,0x86,0x81,0x82,0x7A,
  29                                                          0x81,0x77,0x85,0x81,0x85,0x7E,0x81,0x7A,0x83,0x7E,0x84,0x7E,0x7F,0x80,0x7E,0x7B,
  30                                                          0x7E,0x80,0x7E,0x84,0x81,0x7E,0x85,0x83,0x87,0x84,0x87,0x7C,0x86,0x7B,0x85,0x7C,
  31                                                          0x87,0x7E,0x87,0x7D,0x85,0x7A,0x88,0x81,0x89,0x7A,0x89,0x78,0x86,0x7A,0x85,0x73,
  32                                                          0x84,0x73,0x83,0x77,0x86,0x7B,0x84,0x7D,0x82,0x78,0x7F,0x76,0x80,0x77,0x7F,0x72,
  33                                                          0x7D,0x75,0x7D,0x79,0x82,0x7D,0x80,0x7C,0x7C,0x77,0x81,0x79,0x7E,0x75,0x7B,0x74,
  34                                                          0x7D,0x7C,0x80,0x82,0x7C,0x81,0x7A,0x84,0x7B,0x86,0x7B,0x81,0x77,0x7D,0x77,0x7F,
  35                                                          0x7A,0x82,0x74,0x80,0x75,0x88,0x7B,0x8E,0x7A,0x8B,0x78,0x86,0x7C,0x88,0x7F,0x8F,
  36                                                          0x78,0x90,0x79,0x96,0x7E,0x9B,0x7D,0x9C,0x7E,0x96,0x83,0x93,0x85,0x96,0x83,0x92,
  37                                                          0x82,0x97,0x83,0x96,0x83,0x8F,0x80,0x8C,0x80,0x7E,0x81,0x76,0x82,0x78,0x80,0x75,0x00};
  38          uchar code Music3[]={   0x75,0x6C,0x75,0x71,0x78,0x77,0x73,0x69,0x75,0x65,0x74,0x68,0x72,0x5D,0x76,0x60,
  39                                                          0x73,0x6E,0x75,0x7A,0x74,0x84,0x7A,0x99,0x7B,0x93,0x7C,0x7C,0x7E,0x69,0x78,0x53,
  40                                                          0x7B,0x4E,0x7B,0x4C,0x7A,0x5B,0x7E,0x64,0x82,0x75,0x83,0x8A,0x83,0x88,0x84,0x81,
  41                                                          0x7F,0x7F,0x7B,0x76,0x7A,0x71,0x7A,0x79,0x7E,0x80,0x7E,0x83,0x80,0x88,0x7C,0x8E,
  42                                                          0x77,0x8D,0x7C,0x86,0x78,0x7F,0x79,0x82,0x7A,0x82,0x7A,0x81,0x79,0x8C,0x7C,0x9C,
  43                                                          0x80,0xA6,0x7D,0xB1,0x84,0xAE,0x85,0x97,0x84,0x82,0x81,0x76,0x82,0x6E,0x84,0x6D,
  44                                                          0x7F,0x7C,0x7F,0x8C,0x7F,0x95,0x7E,0x9C,0x81,0x97,0x85,0x86,0x87,0x83,0x8A,0x87,
  45                                                          0x8F,0x88,0x94,0x8C,0x97,0x96,0x9E,0xA8,0x9D,0xA6,0x9B,0x9B,0x9A,0x94,0x97,0x84,
  46                                                          0x91,0x77,0x90,0x7F,0x98,0x88,0x95,0x83,0x95,0x88,0x95,0x97,0x8C,0x96,0x8A,0x98,
  47                                                          0x8A,0x98,0x86,0x8B,0x88,0x81,0x8B,0x7F,0x85,0x80,0x84,0x7E,0x83,0x89,0x7F,0x92,
  48                                                          0x7C,0x8B,0x79,0x85,0x76,0x79,0x72,0x67,0x71,0x60,0x71,0x65,0x6F,0x71,0x6B,0x80,
  49                                                          0x6B,0x88,0x67,0x89,0x66,0x87,0x6C,0x74,0x6B,0x60,0x6E,0x5D,0x73,0x51,0x74,0x51,0x00};
  50          
  51          
  52          #define pa  XBYTE[0x0000]             //定义8255口地址
  53          #define pb  XBYTE[0x2000]
  54          #define control8255  XBYTE[0x6000]
  55          sbit lcdrs = P3^2;                    //LCD控制位
C51 COMPILER V7.09   LCD                                                                   12/06/2008 18:59:39 PAGE 2   

  56          sbit lcden = P3^3;
  57          sbit daccs=P3^1;                       //DAC控制位
  58          sbit dacwr=P3^0;
  59          uchar music123=1;  //当前播放歌曲代号
  60          uchar musicnum=0;  //歌曲数据采样点
  61          
  62          void DisplayFailure ()  ;
  63          void delay(uint z)        //延时子程序,单位约1ms
  64          {
  65   1              uint x,y;
  66   1              for(x=z;x>0;x--)
  67   1                      for(y=110;y>0;y--);
  68   1      }
  69          
  70          
  71          void keyscan()                  //********键盘扫描子程序************
  72          {
  73   1              uchar temp;
  74   1              while(1)
  75   1              {
  76   2                      P1=0xfe;              //扫描第一行
  77   2                      temp=P1;
  78   2                      temp=temp & 0xf0;
  79   2                      if (temp!=0xf0)       //消抖动检查与延时
  80   2                      {
  81   3                              delay(5);
  82   3                              temp=P1;
  83   3                              temp=temp & 0xf0;
  84   3                              if (temp!=0xf0)
  85   3                              {
  86   4                                      uchar ChangeFlag=music123;//前进快退标志
  87   4                                      uchar ReplayFlag=0;       //重播标志
  88   4                                      switch(temp)
  89   4                                      {       
  90   5                                              case 0xe0:
  91   5                                              {       
  92   6                                                      music123--;
  93   6                                                      if(music123==0)music123=3;
  94   6                                                      break;
  95   6                                              }
  96   5                                              case 0xd0:
  97   5                                              {       music123++;
  98   6                                                      if(music123==4) music123=1;     
  99   6                                                  break;
 100   6                                              }
 101   5                                              case 0xb0:
 102   5                                              {
 103   6                                                      ReplayFlag=1;
 104   6                                                      break;
 105   6                                              }
 106   5                                              case 0x70:
 107   5                                              {
 108   6                                                      //CircleFlag=1;
 109   6                                                      break;
 110   6                                              }
 111   5                                      }
 112   4                                      
 113   4                                      while(temp!=0xf0)           //判断按键是否松开
 114   4                                      {
 115   5                                              temp=P1;
 116   5                                              temp=temp & 0xf0;
 117   5                                      }
C51 COMPILER V7.09   LCD                                                                   12/06/2008 18:59:39 PAGE 3   

 118   4                                      if(ChangeFlag!=music123||ReplayFlag==1)//前进后退标志或重播标志改变开始播放
 119   4                                              {
 120   5                                                      TR0=1;  
 121   5                                              }
 122   4                                      else
 123   4                                              DisplayFailure ();
 124   4                                      
 125   4                              }
 126   3                      }
 127   2                  P1=0xfd;                   //扫描第二行
 128   2                      temp=P1;
 129   2                      temp=temp & 0xf0;
 130   2                      if (temp!=0xf0)
 131   2                      {
 132   3                              delay(5);
 133   3                              temp=P1;
 134   3                              temp=temp & 0xf0;
 135   3                              if (temp!=0xf0)
 136   3                              {
 137   4                                      switch(temp)
 138   4                                      {
 139   5                                              case 0xe0:
 140   5                                              {       
 141   6                                          //  key=5;
 142   6                                                      break;
 143   6                                              }
 144   5                                              case 0xd0:
 145   5                                              //key=6;
 146   5                                              break;
 147   5                                              case 0xb0:
 148   5                                              //key=7;
 149   5                                              break;
 150   5                                              case 0x70:
 151   5                                      //      key=8;
 152   5                                              break;
 153   5                                      }
 154   4                                      while(temp!=0xf0)
 155   4                                      {
 156   5                                      temp=P1;
 157   5                                      temp=temp & 0xf0;
 158   5                                      }
 159   4                                      
 160   4                                         DisplayFailure ();  //以下按键没定义显示提示
 161   4                              }
 162   3                      }
 163   2                      P1=0xfb;                                //扫描第三行
 164   2                      temp=P1;
 165   2                      temp=temp & 0xf0;
 166   2                      if (temp!=0xf0)
 167   2                      {
 168   3                              delay(5);
 169   3                              temp=P1;
 170   3                              temp=temp & 0xf0;
 171   3                              if (temp!=0xf0)
 172   3                              {
 173   4                                      switch(temp)
 174   4                                      {
 175   5                                              case 0xe0:
 176   5                                      //      key=9;
 177   5                                              break;
 178   5                                              case 0xd0:
 179   5                                      //      key=10;

⌨️ 快捷键说明

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