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

📄 vga.lst

📁 俄罗斯方块的源代码雅俗文件
💻 LST
字号:
C51 COMPILER V7.50   VGA                                                                   11/14/2007 11:29:08 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE VGA
OBJECT MODULE PLACED IN vga.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE vga.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          本项目专门为本站的51 PIC AVR 多功能学习开发板而写,仅供参考,请勿做商业用途,欢迎转载但要保留本站信息
   3                                            志博电子专注于8位单片机开发板设计和教学  
   4                                                让人耳目一心的经济又豪华型开发板
   5                                                          性价比最高 
   6                                                           仅售378! 
   7          欢迎访问我们的网站 www.elecmcu.com                                              
   8          */
   9          #define uchar unsigned char
  10          #define uint unsigned int
  11          #include "new_iic.h"
  12          #include "reg52.h"
  13          #include "font.h"
  14          sbit STE=P3^2;                                       //总线是否忙碌指示
  15          xdata uchar setclk[16]={0x00,0x00,0x12};             //测试使用
  16          xdata uchar set[50];                                 //重要的命令发送缓冲区域          一般命令+参数 小于1
             -6个字节
  17          //xdata uchar write_c[1024]; //发送缓冲区域   放在外部RAM区域
  18          //xdata uchar read_c[1024];  //接收缓冲区域   放在外部RAM区域
  19          xdata uchar make_bmp[1024*3];
  20          #define bmp_2  1
  21          #define bmp_16  4
  22          #define bmp_256  8
  23          #define black 0x00
  24          #define white 0xff
  25          #define blue  0x88
  26          uchar *pp;
  27          void clean_rec(uint x,uint y,uint w,uint h,uchar color,uchar mode)
  28          {
  29   1      /////////////////////////////////////////////指令区域设置清除指令参数/////////////////////////////////////
             -/
  30   1      set[0]=0x62;
  31   1      set[1]=0x62;
  32   1      set[2]=0x62;
  33   1      set[3]=0x62;   //前四字节为清空指令码
  34   1      set[4]=w/256;   
  35   1      set[5]=w%256;   //清空的列数  最大720列  
  36   1      set[6]=h/256;
  37   1      set[7]=h%256;   //清空的行数   最大480列
  38   1      set[8]=x/256;
  39   1      set[9]=x%256;    //从X 位置开始清空
  40   1      set[10]=y/256;
  41   1      set[11]=y%256;   //从Y位置开始清空
  42   1      set[12]=color;  //清空后填充的颜色  0XFF 为白色
  43   1      set[13]=mode;  //清空方式   0X02重新打开图象缓冲(以前屏幕数据全清掉)           0X01 一般清屏幕(只清指定
             -区域)
  44   1      set[14]=0x00;  //数据寸取情况指示
  45   1      delay10ms();   
  46   1      /////////////////////////////////////////////指令区域设置清除指令参数/////////////////////////////////////
             -/                              
  47   1      while(writebyteseq(0,set,16));   //从数据交换区域0开始写16个字节的清屏指令 和清屏参数
  48   1      /////////////////////////////////////////////////////等待硬件解码端取走清除指令///////////////////////////
  49   1                      do
  50   1                      {
  51   2                      delay10ms(); 
C51 COMPILER V7.50   VGA                                                                   11/14/2007 11:29:08 PAGE 2   

  52   2              while(!STE); 
  53   2              readbyteseq(0,set,18);
  54   2              }while(set[14]!=0xaa); //缓冲区域中第
  55   1      ////////////////////////////////////////////////////等待到MIX5399回应后开始发送图片格式以及文件///////////
             -///
  56   1      }
  57          xdata uchar font2bmp[3000]={0};
  58          void draw_bmp(uint x,uint y,uchar *p,uchar type)
  59          {
  60   1      uint i=0;
  61   1      uint k=0;
  62   1      uint b=0;
  63   1      uchar len=0;
  64   1      uchar m=0;
  65   1      set[0]=0x67;
  66   1      set[1]=0x67;
  67   1      set[2]=0x67;
  68   1      set[3]=0x67;                   //前四个字节为写图象缓冲指令码
  69   1      set[4]=*p;
  70   1      set[5]=*(p+1);                     //要写图象的宽度         
  71   1      set[6]=*(p+2);
  72   1      set[7]=*(p+3);                     //要写图象的高度
  73   1      set[8]=x/256;                    //图象显示在缓冲区的X 位置
  74   1      set[9]=x%256;
  75   1      set[10]=y/256;
  76   1      set[11]=y%256;                   //图象显示在缓冲区的Y 位置
  77   1      set[12]=type;                  
  78   1      set[13]=0x00;                  //数据传输状态标志
  79   1      i=((*p)*256)+(*(p+1));
  80   1      k=((*(p+2))*256)+(*(p+3));
  81   1      len=((i*k)/(1024*(8/set[12]))+1);//获取要发送的图片数据的大小以K字节为单位   
  82   1      pp=p;//指针指向要发送的图片数组
  83   1      ///////////////////////////////////////////////////以上数组初始化为要发送的图片格式和发送指令/////////////
             -////                 
  84   1      while(writebyteseq(0,set,18));  
  85   1      ///////////////////////////////////////////////////将发送图片指令(数组中前四个字节)和图片的参数真正发送

⌨️ 快捷键说明

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