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

📄 function.lst

📁 51+3310做的俄罗斯方块
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   FUNCTION                                                              12/09/2008 01:11:01 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE FUNCTION
OBJECT MODULE PLACED IN function.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE function.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <intrins.h>
   2          #include <reg52.h>
   3          #include "define.h"
   4          #include "code.h"
   5          #include <stdlib.h>
   6          
   7          //******************全局变量******************
   8          uint16 Map[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};      //地图
   9          uint16 Black_Ground[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};  //动态显示缓存
  10          uchar temp0,temp1,time,keyvalue=0xff;//按键判断使用的变量
  11          uchar Auto_Down=6,keyvalue1,speed;
  12          uchar Draw_Block_To_BG_Flag;
  13          uint16 horiz=0;
  14          uchar NewBlock=1;
  15          uchar Quick_Down=0;
  16          uchar Block_X,Block_Y;  //方块当前的坐标
  17          uchar I,J,I1,J1;    //选取7行4列方块种类的变量
  18          uchar score1=0;
  19          //******************全局变量******************
  20          
  21          
  22          void delay_1us(void)                 //1us延时函数
  23            {
  24   1         unsigned int i;
  25   1        for(i=0;i<1000;i++);
  26   1        }
  27          
  28          //1ms Delayfunction
  29          void Delay(uint16 uiDelayCount)
  30          {
  31   1              uint16 uiTempCount;
  32   1              uchar uci;
  33   1              for(uiTempCount=0; uiTempCount<uiDelayCount; uiTempCount++)
  34   1              {
  35   2                      uci = 230;
  36   2                      while(uci--)
  37   2                      {
  38   3                              _nop_();
  39   3                      }
  40   2              }
  41   1      }
  42          
  43          
  44           
  45          /*-----------------------------------------------------------------------
  46          LCD_write_byte    : 使用SPI接口写数据到LCD
  47          
  48          输入参数:data    :写入的数据;
  49                    command :写数据/命令选择;
  50          
  51          -----------------------------------------------------------------------*/
  52          void LCD_write_CMD(unsigned char ucWriteData)
  53          {
  54   1          unsigned char uci;
  55   1      
C51 COMPILER V7.06   FUNCTION                                                              12/09/2008 01:11:01 PAGE 2   

  56   1          LCD_CE = 0;
  57   1          LCD_DC = 0;
  58   1      
  59   1              for(uci=0;uci<8;uci++)
  60   1              {
  61   2                      if(ucWriteData & 0x80)
  62   2                      {
  63   3                              LCD_SDIN = 1;
  64   3                      }
  65   2                      else
  66   2                      {
  67   3                              LCD_SDIN = 0;
  68   3                      }
  69   2                      LCD_SCLK = 0;
  70   2      
  71   2                      ucWriteData = ucWriteData << 1;
  72   2                      LCD_SCLK = 1;
  73   2              }
  74   1      
  75   1              LCD_CE = 1;
  76   1      }
  77          
  78          /*-----------------------------------------------------------------------
  79          LCD_write_byte    : 使用SPI接口写数据到LCD
  80          
  81          输入参数:data    :写入的数据;
  82                    command :写数据/命令选择;
  83          -----------------------------------------------------------------------*/
  84          void LCD_write_Data(unsigned char ucWriteData)
  85          {
  86   1          unsigned char uci;
  87   1      
  88   1          LCD_CE = 0;
  89   1          LCD_DC = 1;
  90   1      
  91   1              for(uci=0;uci<8;uci++)
  92   1              {
  93   2                      if(ucWriteData & 0x80)
  94   2                      {
  95   3                              LCD_SDIN = 1;
  96   3                      }
  97   2                      else
  98   2                      {
  99   3                              LCD_SDIN = 0;
 100   3                      }
 101   2                      LCD_SCLK = 0;
 102   2      
 103   2                      ucWriteData = ucWriteData << 1;
 104   2                      LCD_SCLK = 1;
 105   2              }
 106   1      
 107   1              LCD_CE = 1;
 108   1      }
 109          /*-----------------------------------------------------------------------
 110          LCD_set_XY        : 设置LCD坐标函数
 111          
 112          输入参数:X     -83
 113                    Y       :0-5
 114          -----------------------------------------------------------------------*/
 115          void LCD_set_XY(unsigned char X, unsigned char Y)
 116          {
 117   1          LCD_write_CMD(0x40 | (Y & 0X07));           // column
C51 COMPILER V7.06   FUNCTION                                                              12/09/2008 01:11:01 PAGE 3   

 118   1          LCD_write_CMD(0x80 | (X & 0X7F));           // row
 119   1      }
 120          
 121          
 122          
 123          /*-----------------------------------------------------------------------
 124          LCD_clear         : LCD清屏函数
 125          
 126          -----------------------------------------------------------------------*/
 127          
 128          /*-----------------------------------------------------------------------
 129          LCD_write_char    : 显示英文字符
 130          
 131          输入参数:c       :显示的字符;
 132          
 133          -----------------------------------------------------------------------*/
 134          void LCD_write_char(unsigned char c)
 135          {
 136   1          unsigned char line;
 137   1      
 138   1          c -= 32;
 139   1      
 140   1          for (line=0; line<6; line++)
 141   1              {
 142   2              LCD_write_Data(font6x8[c][line]);
 143   2              }
 144   1      }
 145          
 146          
 147          
 148          
 149          
 150          
 151          /*-----------------------------------------------------------------------
 152          LCD_write_english_String  : 英文字符串显示函数
 153          
 154          输入参数:*s      :英文字符串指针;
 155                    X、Y    : 显示字符串的位置,x 0-83 ,y 0-5
 156                  
 157          -----------------------------------------------------------------------*/
 158          void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
 159          {
 160   1          LCD_set_XY(X,Y);
 161   1          while (*s) 
 162   1          {
 163   2                      LCD_write_char(*s);
 164   2                      s++;
 165   2              }
 166   1      }
 167          
 168          
 169          
 170          void LCD_Clear(void)
 171          {
 172   1              uint16 uii;
 173   1                      
 174   1      
 175   1              LCD_set_XY(0,0);
 176   1              for(uii=0; uii<6*84; uii++)//c_Lcd_Max_x * c_Lcd_Max_y
 177   1              {
 178   2                      LCD_write_Data(0x00);
 179   2      
C51 COMPILER V7.06   FUNCTION                                                              12/09/2008 01:11:01 PAGE 4   

 180   2              }
 181   1              
 182   1      }
 183          
 184          
 185          void LCD_Init(void)
 186            {
 187   1           LCD_CE = 0;
 188   1        // 产生一个让LCD复位的低电平脉冲
 189   1              LCD_RST = 0;
 190   1          delay_1us();
 191   1              LCD_RST = 1;
 192   1                      // 关闭LCD
 193   1          delay_1us();
 194   1                      // 使能LCD
 195   1          delay_1us();
 196   1          LCD_write_CMD(0x23);        // 使用扩展命令设置LCD模式
 197   1        //  LCD_write_CMD(0xc8);      // 设置偏置电压
 198   1              LCD_write_CMD(Nokia5110_vot_set);
 199   1          LCD_write_CMD(0x06);        // 温度校正
 200   1          LCD_write_CMD(0x14);        // 1:48  对比度调节
 201   1          LCD_write_CMD(0x22);        // 使用基本命令,采用垂直模式
 202   1          LCD_Clear();                // 清屏
 203   1          LCD_write_CMD(0x0c);        // 设定显示模式,c正常显示,d反白显示
 204   1          LCD_CE = 1;
 205   1        }
 206          
 207          
 208          
 209          void LCD_Write_Frame()
 210          {
 211   1              unsigned char line;
 212   1          LCD_write_CMD(0x20);        // 使用基本命令,采用水平模式
 213   1              LCD_set_XY(54,5);
 214   1              for(line=0; line<30; line++)
 215   1              {
 216   2                      LCD_write_Data(0x80);
 217   2              }
 218   1              LCD_set_XY(54,2);
 219   1              for(line=0; line<30; line++)
 220   1              {
 221   2                      LCD_write_Data(0x20);
 222   2              }
 223   1              LCD_write_english_string(56,0,"NEXT");
 224   1              LCD_write_english_string(56,3,"LINE");
 225   1              LCD_set_XY(60,4);       
 226   1              LCD_write_char(48);     //分数先初始化为0
 227   1              LCD_write_char(48);     //分数先初始化为0
 228   1              LCD_write_char(48);             //分数先初始化为0
 229   1              LCD_write_CMD(0x22);    // 使用基本命令,采用垂直模式
 230   1              LCD_set_XY(51,0);
 231   1              for(line=0; line<18; line++)
 232   1              {
 233   2                      LCD_write_Data(Blackground[line]);
 234   2              }
 235   1              LCD_set_XY(83,0);
 236   1              for(line=0; line<6; line++)
 237   1              {

⌨️ 快捷键说明

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