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

📄 main.lst

📁 单片机的俄罗斯方块程序,含Proteus 仿真文件及详细注释
💻 LST
字号:
C51 COMPILER V8.05a   MAIN                                                                 11/06/2007 17:08:33 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\Target\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\main.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LST\main
                    -.lst) OBJECT(.\Target\main.obj)

line level    source

   1          //*************************************************************************************************
   2          //*************************************************************************************************
   3          //**<程 序 名>:俄罗斯方块游戏                                                                                                                                   **
   4          //**<版本说明>:改进版v2.0,增加了游戏开始和结束提示,从而解决了方块不能随机产生的问题。                 **
   5          //**<完成时间>:2007年11月6日                                                                                                                                    **
   6          //**<作    者>:LastRitter                                                                                                                                               **
   7          //**<联系方式>:E-mail:superyongzhe@163.com;QQ:314665354。                                                                               **
   8          //*************************************************************************************************
   9          //*************************************************************************************************
  10          
  11          //*************************************************************************************************
  12          //*                                                                                                                                                                                               *
  13          //*                      ******************************头文件及宏定义**************************                           *
  14          //*                                                                                                                                                                                               *
  15          //*************************************************************************************************
  16          #include "includes.h"
  17          
  18          
  19          #define TIME1H 0x3C
  20          #define TIME1L 0xB0             //定时器1溢出时间:50ms
  21          
  22          #define SCANPORT P1
  23          
  24          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  25          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<键盘扫描开启标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  26          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  27          unsigned char uc_KeyCode=0;
  28          
  29          bit b_BlockDown=0;
  30          
  31          //*************************************************************************************************
  32          //*                                                                                                                                                                                               *
  33          //*                       ********************************主函数******************************                            *
  34          //*                                                                                                                                                                                               *
  35          //*************************************************************************************************
  36          void main(void)
  37          {       
  38   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器1,用于方块定时下降 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  39   1              TH1=TIME1H;
  40   1              TL1=TIME1L;
  41   1              TR1=1;                   //开启定时器1
  42   1              ET1=1;                   //开定时器1中断
  43   1      
  44   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于开启键盘扫描及键码处理标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  45   1              IT0=1;                   //     中断方式:下降沿。
  46   1              EX0=1;                   //     开启外部中断。
  47   1              EA=1;
  48   1      
  49   1      
  50   1              vLCDInitialize();
  51   1      
  52   1              SCANPORT=0x0F;
  53   1      
  54   1              vShowGraph(3,40,60,2,uca_GameStart);
C51 COMPILER V8.05a   MAIN                                                                 11/06/2007 17:08:33 PAGE 2   

  55   1      
  56   1              while(1)
  57   1              {
  58   2              if(uc_KeyCode!=0)                  //如果有按键按下,则进行按键扫描和键码处理。
  59   2                      {
  60   3                      vKeyProcess(uc_KeyCode);
  61   3                      uc_KeyCode=0;
  62   3                      }
  63   2              if(b_BlockDown)           //方块定时下降。
  64   2                      {
  65   3                      b_BlockDown=0;
  66   3                      vBlockAction(ACTIONDOWN);
  67   3                      }
  68   2              }
  69   1      }
  70          
  71          
  72          
  73          //*************************************************************************************************
  74          //*                                                                                                                                                                                               *
  75          //*             ******************************外部中断0,用于开启键盘扫描及键码处理******************     *
  76          //*                                                                                                                                                                                               *
  77          //*************************************************************************************************
  78          void vINT0(void) interrupt 0
  79          {
  80   1              unsigned char ucCount;
  81   1      
  82   1              EX0=0;
  83   1              for(ucCount=0;ucCount<10;ucCount++);
  84   1              if(SCANPORT!=0x0F)
  85   1                      uc_KeyCode=SCANPORT&0x0F;                       //开启键盘扫描标志。
  86   1              EX0=1;
  87   1      }
  88          
  89          //*************************************************************************************************
  90          //*                                                                                                                                                                                               *
  91          //*             **************************定时器1中断,用于方块定时下降************************                   *
  92          //*                                                                                                                                                                                               *
  93          //*************************************************************************************************
  94          void vTimer1(void) interrupt 3
  95          {
  96   1              static unsigned char ucsDownCount=0;
  97   1      
  98   1              if(b_GameStart)
  99   1                      {
 100   2                      if(ucsDownCount==100)
 101   2                              {
 102   3                              ucsDownCount=0;
 103   3                              b_BlockDown=1;
 104   3                              }
 105   2                      else
 106   2                              ucsDownCount++;
 107   2                      }
 108   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复定时器1溢出时间>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 109   1              TH1=TIME1H;
 110   1              TL1=TIME1L;
 111   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    136    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V8.05a   MAIN                                                                 11/06/2007 17:08:33 PAGE 3   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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