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

📄 main.lst

📁 这个是录音琴的程序,用光电感应器来检测琴键的动作.并且将他记录下来,可以回放.
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V6.23a  MAIN                                                                  07/22/2006 09:35:03 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN E:\工作目录\软件编程\录音琴\录音01\MAIN.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE E:\工作目录\软件编程\录音琴\录音01\MAIN.C DB SB OE

stmt level    source

   1          /*******************************Copyright (c)***************************************
   2          
   3                  录音钢琴主程序.
   4          
   5          ************************************************************************************/
   6          
   7          #include        "common.h"
   8          #include        "file.h"
   9          #include        "midi.h"
  10          #include        "hpi.h"
  11          #include        "lcd.h"
  12          #include        "usb.H"
  13          
  14          /*-----------------------------------------------------------------------------------
  15          名称: void SystemInital(void)
  16          功能: 系统初始化.
  17          -----------------------------------------------------------------------------------*/
  18          void SystemInital(void)
  19          {
  20   1              AUXR = 3;
  21   1              SetSystemTimer0();
  22   1              SetSystemUart();
  23   1              RamAreaSelect(0);
  24   1              FileListInital();
  25   1              IrqEnable();
  26   1      }
  27          
  28          /*-----------------------------------------------------------------------------------
  29          名称: void main(void)
  30          功能: 主程序.
  31          -----------------------------------------------------------------------------------*/
  32          void main(void)
  33          {
  34   1              SystemInital();
  35   1              SL811Init();
  36   1              LcdInital();
  37   1              LcdDisplayLogo();
  38   1              PianoSensorModify();
  39   1      
  40   1              LcdDisplayMenu(0);
  41   1              while(GetKeyBoard());
  42   1              SysWorkStatus = SYS_WORK_MENU_REC;
  43   1      
  44   1              while(1)
  45   1              {
  46   2                      SystemRtcTask();
  47   2                      CheckUsbDevice();
  48   2      
  49   2                      switch(SysWorkStatus)
  50   2                      {
  51   3                              case    SYS_WORK_MENU_REC:              //录音菜单状态
  52   3                                      switch(GetKeyBoard())
  53   3                                      {
  54   4                                              case    KEY_ENT:
  55   4                                                      LcdClear();
C51 COMPILER V6.23a  MAIN                                                                  07/22/2006 09:35:03 PAGE 2   

  56   4                                                      LcdDisplayAscii0816(0,0,0,128);
  57   4                                                      LcdDisplayAscii0816String(0,20,0,"Record...");
  58   4                                                      LcdDisplayTempo();
  59   4                                                      LcdDisplayVolume();
  60   4                                                      ResetSystemRtc();
  61   4                                                      LcdDisplayClock(2,0,GetSystemRtc());
  62   4                                                      SoundTempoChange();
  63   4                                                      RecMidiStart();
  64   4                                                      SysWorkStatus = SYS_WORK_RUN_REC;
  65   4                                              break;
  66   4      
  67   4                                              case    KEY_UP:
  68   4                                              case    KEY_DOWN:
  69   4                                                      if(FlagRecEnd)
  70   4                                                      {
  71   5                                                              LcdClear();
  72   5                                                              LcdDisplayAscii0816(0,0,0,128);
  73   5                                                              LcdDisplayAscii0816String(0,20,0,"Rec Player...");
  74   5                                                              LcdDisplayVolume();
  75   5                                                              ResetSystemRtc();
  76   5                                                              LcdDisplayClock(2,0,GetSystemRtc());
  77   5                                                              PlayerStart();
  78   5                                                              SysWorkStatus = SYS_WORK_REC_PLAY;
  79   5                                                      }
  80   4                                              break;
  81   4      
  82   4                                              case    KEY_LEFT:
  83   4                                                      LcdClear();
  84   4                                                      LcdDisplayMenu(3);
  85   4                                                      SysWorkStatus = SYS_WORK_MENU_SET;
  86   4                                              break;
  87   4      
  88   4                                              case    KEY_RIGHT:
  89   4                                                      LcdClear();
  90   4                                                      LcdDisplayMenu(1);
  91   4                                                      SysWorkStatus = SYS_WORK_MENU_SAVE;
  92   4                                              break;
  93   4                                      }
  94   3                              break;
  95   3      
  96   3                              case    SYS_WORK_MENU_SAVE:             //存储菜单状态
  97   3                                      switch(GetKeyBoard())
  98   3                                      {
  99   4                                              case    KEY_ENT:
 100   4                                                      if(FlagRecEnd)
 101   4                                                      {
 102   5                                                              LcdClear();
 103   5                                                              LcdDisplayInputTextInital();
 104   5                                                              SysWorkStatus = SYS_WORK_RUN_SAVE;
 105   5                                                      }
 106   4                                              break;
 107   4      
 108   4                                              case    KEY_LEFT:
 109   4                                                      LcdClear();
 110   4                                                      LcdDisplayMenu(0);
 111   4                                                      SysWorkStatus = SYS_WORK_MENU_REC;
 112   4                                              break;
 113   4      
 114   4                                              case    KEY_RIGHT:
 115   4                                                      LcdClear();
 116   4                                                      LcdDisplayMenu(2);
 117   4                                                      SysWorkStatus = SYS_WORK_MENU_PLAY;
C51 COMPILER V6.23a  MAIN                                                                  07/22/2006 09:35:03 PAGE 3   

 118   4                                              break;
 119   4                                      }
 120   3                              break;
 121   3      
 122   3                              case    SYS_WORK_MENU_PLAY:             //放音菜单状态
 123   3                                      switch(GetKeyBoard())
 124   3                                      {
 125   4                                              case    KEY_ENT:
 126   4                                                      LcdClear();
 127   4                                                      LcdDisplayPlaySelectMenu(0);
 128   4                                                      SysWorkStatus = SYS_WORK_SEL_RAM_PLAY;
 129   4                                              break;
 130   4      
 131   4                                              case    KEY_LEFT:
 132   4                                                      LcdClear();
 133   4                                                      LcdDisplayMenu(1);
 134   4                                                      SysWorkStatus = SYS_WORK_MENU_SAVE;
 135   4                                              break;
 136   4      
 137   4                                              case    KEY_RIGHT:
 138   4                                                      LcdClear();
 139   4                                                      LcdDisplayMenu(3);
 140   4                                                      SysWorkStatus = SYS_WORK_MENU_SET;
 141   4                                              break;
 142   4                                      }
 143   3                              break;
 144   3      
 145   3                              case    SYS_WORK_MENU_SET:              //设定菜单状态
 146   3                                      switch(GetKeyBoard())
 147   3                                      {
 148   4                                              case    KEY_ENT:
 149   4                                                      LcdClear();
 150   4                                                      LcdDisplayParamMenu(0);
 151   4                                                      SysWorkStatus = SYS_WORK_SET_MENU_0;
 152   4                                              break;
 153   4      
 154   4                                              case    KEY_LEFT:
 155   4                                                      LcdClear();
 156   4                                                      LcdDisplayMenu(2);
 157   4                                                      SysWorkStatus = SYS_WORK_MENU_PLAY;
 158   4                                              break;
 159   4      
 160   4                                              case    KEY_RIGHT:
 161   4                                                      LcdClear();
 162   4                                                      LcdDisplayMenu(0);
 163   4                                                      SysWorkStatus = SYS_WORK_MENU_REC;
 164   4                                              break;
 165   4                                      }
 166   3                              break;
 167   3      
 168   3                              case    SYS_WORK_RUN_REC:               //录音工作状态
 169   3                                      if(!RecMidiRun())
 170   3                                      {
 171   4                                              RecMidiEnd();
 172   4                                              LcdClear();
 173   4                                              LcdDisplayMenu(0);
 174   4                                              SysWorkStatus = SYS_WORK_MENU_REC;
 175   4                                              break;
 176   4                                      }
 177   3      
 178   3                                      SoundTempoRun();
 179   3                                      LcdDisplayClock(2,0,GetSystemRtc());

⌨️ 快捷键说明

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