?? 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 + -