📄 vga.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 + -