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

📄 snake.lst

📁 2.4tft彩屏教程
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   SNAKE                                                                 07/12/2010 23:49:26 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SNAKE
OBJECT MODULE PLACED IN SNAKE.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE SNAKE.c BROWSE DEBUG OBJECTEXTEND PRINT(.\obj\SNAKE.lst)

stmt level    source

   1          /***********************************************************************************
   2          /* 文件名称:   SNAKE.c
   3          /* 功    能:   贪吃蛇游戏代码
   4          /* 署    名:   张先永(原作者)
   5          /* 时    间:   2009年10月11日
   6          /* 备    注:
   7          /*               游戏按键由于需要快速的响应,所有按键通过线与扩展为中断按键
   8          /*               LCD 液晶显示器在PO口 需要上拉电阻
   9          /***********************************************************************************/
  10          
  11          #include <reg52.H>  
  12          #include <KEY_SWEEP.H> 
  13          #include"9325tp.h"
  14          #include "SNAKE.h"
  15          
  16          
  17          #define uchar unsigned char
  18          //=================================================================
  19          //    使用结构体定义变量   使程序的名称更加的清楚
  20          //=================================================================
  21          struct 
  22          {
  23                  uchar X;
  24                  uchar Y;                         
  25                  uchar Yes;
  26          }Food;  //食物结构体
  27          
  28          #define SNAKE_Max_Long 20                 //最大长度
  29          struct 
  30          {
  31                  uchar X[SNAKE_Max_Long];
  32                  uchar Y[SNAKE_Max_Long];
  33                  uchar Long;  
  34                  uchar Life; 
  35                  uchar Score;                                    //蛇的分数
  36                  uchar Level;                                    //蛇的等级              
  37          }Snake; //蛇结构体
  38          
  39          uchar Key_V_temp=0;                                     //取出上次按键值
  40          
  41          //=================================================================
  42          //函数功能:1ms延时函数
  43          //晶    振:11.0592     M
  44          //入口参数:n
  45          //出口参数:无
  46          //=================================================================
  47          void Delay_1mS(unsigned int n)
  48          {
  49   1              unsigned int  i;
  50   1              unsigned char j;
  51   1              
  52   1              for(i=0;i<n;i++)
  53   1                      for(j=0;j<120;j++)      ;
  54   1      }
  55          
C51 COMPILER V7.06   SNAKE                                                                 07/12/2010 23:49:26 PAGE 2   

  56          //=================================================================
  57          //函数名称:void Init_time0 (void)
  58          //函数功能:初始化定时器1  用于产生随机数种子 ,用于放置实物
  59          //入口参数:无
  60          //出口参数:无
  61          //=================================================================
  62          void Init_time0 (void)
  63          {
  64   1              EA=1;
  65   1              ET1=1;
  66   1              TMOD|=0x10;
  67   1              TH1=0X00;
  68   1              TL1=0X00;
  69   1              TR1=1;
  70   1      }
  71          void time1 (void) interrupt  3
  72          {
  73   1              TH1=0X00;
  74   1              TL1=0X00;
  75   1      }
  76          
  77          
  78          //=================================================================
  79          //函数名称:Trun_On_Point     Trun_Off_Point (uchar x,uchar y)
  80          //函数功能:点亮或者熄灭 一个点。用于显示蛇身体
  81          //入口参数:无
  82          //出口参数:无
  83          //特别说明:此 Trun_On,函数换成其他的就可以兼容其他的液晶
  84          //          入8*8 点阵   12864 等
  85          //=================================================================
  86          void Trun_On_Point (uchar x,uchar y,uchar color)
  87          {
  88   1              Bar((4*(x+2)),(4*(y+2)),(4*(x+3)),(4*(y+3)),color);
  89   1      }
  90          
  91          void Trun_Off_Point (uchar x,uchar y)
  92          {
  93   1              Bar((4*(x+2)),(4*(y+2)),(4*(x+3)),(4*(y+3)),0xBE5F);    
  94   1      }
  95          
  96          //=================================================================
  97          //函数名称:void Init_SNAKE(void)  
  98          //函数功能:绘制游戏界面,初始化游戏等级等参数
  99          //入口参数:无
 100          //出口参数:无
 101          //=================================================================
 102          void Init_SNAKE(void)   
 103          {
 104   1              uchar i;
 105   1      
 106   1              Init_time0();
 107   1              //***********绘制游戏界面********************//
 108   1              CLR_Screen(0xBE5F);
 109   1              Rectangle(8,8-1,85,120,0xaa);//绘制一个矩形框, 0-127
 110   1              LCD_PutString(88,8,"Score",0x00ff,0xBE5F);
 111   1              LCDShow_uCharNumber(96,24,Snake.Score,0x00ff,0xBE5F);
 112   1              LCD_PutString(88,81,"LEVEL",0x00ff,0xBE5F);
 113   1              LCDShow_uCharNumber(96,97,Snake.Level,0x00ff,0xBE5F);
 114   1      
 115   1              //***********初始化蛇参数********************//
 116   1              Snake.Long=2;                           //定义初始化蛇的长度
 117   1              Snake.Life=0;                           //初始化蛇还活着
C51 COMPILER V7.06   SNAKE                                                                 07/12/2010 23:49:26 PAGE 3   

 118   1              Snake.Score=0;
 119   1              Food.Yes=1;                                     
 120   1              Key_Value=0;
 121   1          Key_V_temp=0;
 122   1      
 123   1              for(i=0;i<Snake.Long;i++)               //将蛇给赋值
 124   1              {
 125   2                      Snake.X[i]=i+2;
 126   2                      Snake.Y[i]=2;
 127   2              }                                                       
 128   1              for(i=0;i<Snake.Long;i++)               //将蛇给画出来
 129   1              {
 130   2                      Trun_On_Point(Snake.X[i],Snake.Y[i],0xaa);
 131   2              }                                                       
 132   1      }
 133          //=================================================================
 134          //函数名称:void Display_dead(uchar i) 
 135          //函数功能:显示死亡界面
 136          //入口参数:无
 137          //出口参数:无
 138          //=================================================================
 139          void Display_dead(void)
 140          {
 141   1      
 142   1              LCD_PutString(10,40,"GAME OVER",0x00ff,0xBE5F); 
 143   1              while(Key_Value!=Key_Enter)
 144   1                   {
 145   2                        Key();
 146   2                       }
 147   1              Init_SNAKE();
 148   1      }
 149          
 150          //=================================================================
 151          //函数名称:void Display_Pass(uchar i)
 152          //函数功能:显示过关界面
 153          //入口参数:无
 154          //出口参数:无
 155          //=================================================================
 156          void Display_Pass(void)
 157          {
 158   1              Snake.Level++;  
 159   1              LCD_PutString(18,40,"You are",0xcc88,0xBE5F); 
 160   1              LCD_PutString(34,56,"WIN!",0xcc88,0xBE5F); 
 161   1              while(Key_Value!=Key_Enter)
 162   1                   {
 163   2                        Key();
 164   2                       }
 165   1              Init_SNAKE();
 166   1      }
 167          //=================================================================
 168          //函数名称:void Run_SNAKE(void)
 169          //函数功能:蛇运动函数 (游戏精华)
 170          //入口参数:无
 171          //出口参数:无
 172          //=================================================================
 173          void Run_SNAKE(void)

⌨️ 快捷键说明

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