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

📄 main.lst

📁 用proteus模拟仿真实现俄罗期方块游戏
💻 LST
📖 第 1 页 / 共 2 页
字号:
  86   1      
  87   1              while(1)
  88   1              {
  89   2              if(b_KeyScan)              //如果有按键按下,则进行按键扫描和键码处理。
  90   2                      {
  91   3                      b_KeyScan=0;
  92   3                      vKeyProcess(ucKeyScan());
  93   3                      }
  94   2              if(b_BlockDown)           //方块定时下降。
  95   2                      {
  96   3                      b_BlockDown=0;
  97   3                      vBlockAction(ACTIONDOWN);
  98   3                      }
  99   2              }
 100   1      }
 101          
 102          
 103          
 104          //*************************************************************************************************
 105          //*                                                                                                                                                                                               *
 106          //*             ******************************外部中断0,用于开启键盘扫描及键码处理******************     *
 107          //*                                                                                                                                                                                               *
 108          //*************************************************************************************************
 109          void vINT0(void) interrupt 0
 110          {
 111   1              if(b_KeyShock==0)
 112   1                      {
 113   2                              b_KeyScan=1;                    //开启键盘扫描标志。
 114   2                              b_KeyShock=1;                   //设置防抖动标志。
 115   2                      }
 116   1              else b_KeyShock=0;                              //如果有抖动则不执行键扫描,恢复防抖动标志。
C51 COMPILER V8.05a   MAIN                                                                 09/09/2007 10:45:20 PAGE 3   

 117   1      
 118   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<设置防抖动清除标志位 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
 119   1              if(b_KeyShock==1)
 120   1                      b_KillShock=1;                          //如果防抖动标志位开启则开启防抖动标志清除位,
 121   1                                                                              //300ms后清除防抖动标志。
 122   1      
 123   1      }
 124          
 125          
 126          //*************************************************************************************************
 127          //*                                                                                                                                                                                               *
 128          //*             **********************定时器1中断,用于方块定时下降和防抖动标志清除******************     *
 129          //*                                                                                                                                                                                               *
 130          //*************************************************************************************************
 131          void vTimer1(void) interrupt 3
 132          {
 133   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 134   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<方块定时下降>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 135   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 136   1              if(b_DownStart)
 137   1                      {
 138   2                      if(uc_DownCount==100)
 139   2                              {
 140   3                              uc_DownCount=0;
 141   3                              b_BlockDown=1;
 142   3                              }
 143   2                      else
 144   2                              uc_DownCount++;
 145   2                      }
 146   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 147   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<防抖动标志清除>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 148   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 149   1              if(b_KillShock==1)
 150   1                      {
 151   2                      if(uc_KillCount==5)                      //当防抖动标志位为1时,计时300ms后清除抖动标志位。
 152   2                              {
 153   3                              b_KeyShock=0;
 154   3                              b_KillShock=0;
 155   3                              uc_KillCount=0;
 156   3                              }
 157   2                      else uc_KillCount++;
 158   2                      }
 159   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 160   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复定时器1溢出时间>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 161   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 162   1              TH1=TIME1H;
 163   1              TL1=TIME1L;
 164   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    116    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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