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

📄 main.lst

📁 由51单片机与12864组成 俄罗斯方块游戏程序 keil工程
💻 LST
字号:
C51 COMPILER V8.05a   MAIN                                                                 11/13/2007 09:15:27 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          //**<版本说明>:改进版v3.0,增强了积分功能,最多可以显示8位,增加了游戏时间功能,增加了方块预览,**
   5          //**                    增设了游戏级别的框架,计划增加过关功能,另外还丰富了开机画面,优化了部分函数。   **
   6          //**<完成时间>:2007年11月10日                                                                                                                                   **
   7          //**<作    者>:LastRitter                                                                                                                                               **
   8          //**<联系方式>:E-mail:superyongzhe@163.com;QQ:314665354。                                                                               **
   9          //*************************************************************************************************
  10          //*************************************************************************************************
  11          
  12          //*************************************************************************************************
  13          //*                                                                                                                                                                                               *
  14          //*                      ******************************头文件及宏定义**************************                           *
  15          //*                                                                                                                                                                                               *
  16          //*************************************************************************************************
  17          #include "includes.h"
  18          
  19          
  20          #define TIME1H 0x3C
  21          #define TIME1L 0xB0             //定时器1溢出时间:50ms
  22          
  23          #define SCANPORT P1
  24          
  25          bit b_BlockDown=0;                         //方块定时下降标志位。
  26          
  27          unsigned char uc_KeyCode=0;        //键盘扫描输入暂存。
  28          
  29          bit b_TimeAdd=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              vLCDInitialize();        //LCD初始化。
  50   1      
  51   1              SCANPORT=0x0F;           //按键端口初始化。
  52   1      
  53   1              vStartPicture(PIC_INITIALIZE);
  54   1              while(1)
C51 COMPILER V8.05a   MAIN                                                                 11/13/2007 09:15:27 PAGE 2   

  55   1              {
  56   2              if(uc_KeyCode!=0)                  //如果有按键按下,则进行按键扫描和键码处理。
  57   2                      {
  58   3                      vKeyProcess(uc_KeyCode);
  59   3                      uc_KeyCode=0;
  60   3                      }
  61   2              if(b_BlockDown)           //方块定时下降。
  62   2                      {
  63   3                      b_BlockDown=0;
  64   3                      vBlockAction(ACTIONDOWN);
  65   3                      }
  66   2              if(b_TimeAdd)
  67   2                      {
  68   3                      b_TimeAdd=0;
  69   3                      vTimeAdd();
  70   3                      }
  71   2              if(uc_StartPicture==PIC_CONTINUE)
  72   2                      {
  73   3                      uc_StartPicture=PIC_PAUSE;
  74   3                      if(!b_GameStart)
  75   3                              vStartPicture(PIC_CONTINUE);
  76   3                      }
  77   2              }
  78   1      }
  79          
  80          
  81          
  82          //*************************************************************************************************
  83          //*                                                                                                                                                                                               *
  84          //*             ******************************外部中断0,用于开启键盘扫描及键码处理******************     *
  85          //*                                                                                                                                                                                               *
  86          //*************************************************************************************************
  87          void vINT0(void) interrupt 0
  88          {
  89   1              unsigned char ucCount;
  90   1      
  91   1              EX0=0;
  92   1              for(ucCount=0;ucCount<10;ucCount++);
  93   1              if(SCANPORT!=0x0F)
  94   1                      uc_KeyCode=SCANPORT&0x0F;                       //开启键盘扫描标志。
  95   1              EX0=1;
  96   1      }
  97          
  98          //*************************************************************************************************
  99          //*                                                                                                                                                                                               *
 100          //*             **************************定时器1中断,用于方块定时下降************************                   *
 101          //*                                                                                                                                                                                               *
 102          //*************************************************************************************************
 103          void vTimer1(void) interrupt 3
 104          {
 105   1              static unsigned char sucDownCount=0,sucTimeCount=0,sucStPicCount=0;
 106   1      
 107   1              if(b_GameStart)
 108   1                      {
 109   2                      if(sucDownCount>uc_GameSpeed)
 110   2                              {
 111   3                              sucDownCount=0;
 112   3                              b_BlockDown=1;
 113   3                              }
 114   2                      else
 115   2                              sucDownCount++;
 116   2      
C51 COMPILER V8.05a   MAIN                                                                 11/13/2007 09:15:27 PAGE 3   

 117   2                      if(sucTimeCount==200)
 118   2                              {
 119   3                              sucTimeCount=0;
 120   3                              b_TimeAdd=1;
 121   3                              }
 122   2                      else
 123   2                              sucTimeCount++;
 124   2                      }
 125   1              else
 126   1                      {
 127   2                      if(uc_StartPicture!=PIC_STOP)
 128   2                              {
 129   3                              if(sucStPicCount==40)
 130   3                                      {
 131   4                                      uc_StartPicture=PIC_CONTINUE;
 132   4                                      sucStPicCount=0;
 133   4                                      }
 134   3                              else
 135   3                                      sucStPicCount++;
 136   3                              }
 137   2                      }
 138   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复定时器1溢出时间>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 139   1              TH1=TIME1H;
 140   1              TL1=TIME1L;
 141   1      } 


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


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

⌨️ 快捷键说明

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