?? abc.lst
字號:
C51 COMPILER V6.12 ABC 11/14/2008 17:49:05 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE ABC
OBJECT MODULE PLACED IN .\abc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\abc.c DEBUG OBJECTEXTEND
stmt level source
1 //程序名稱:128x64 windows啟動模擬 //
2 //作者:潘策榮 2006.11.
3 //主要寫了用12864液晶屏模擬windows啟動畫面的程序
4 //拿來玩的,不要當真
5 //不過寫了蠻久//寫寫停停,主要是因為在上課,具體的演示效果參看視頻,沒錄好,呵呵。
6 //寫了一些函數,可以用作其它用處。
7
8
9 #include <reg51.h>
10 #include <stdio.h>//在調試的時候使用
11 #define uchar unsigned char
12 #define uint unsigned int
13
14
15 sbit cs2=P0^0;
16 sbit cs1=P0^1;
17 sbit rw=P0^3;
18 sbit e=P0^4;
19 sbit di=P0^2;
20 sbit rest=P0^7;
21 uint i;
22 uchar code b[]={"START YFKJ WINDOWS./0WAITING.../0FOUND ATMEL 89S52.../0256 RAM /0NO USB.../0NO KEYBOARD..
-./0128X64 DISPLAY.../0LOADING.../0DESIGN BY PCR /0 /0 /0LOADING PLEASE WAITING.../0"};
23 //設定一個長字符串,遇到/0的時候就換行,并進行動畫演示,同時延時
24
25 /*-- 調入了一幅圖像:C:\Documents and Settings\Administrator\桌面.bmp --*/
26 /*-- 寬度x高度=89x36 --*/
27 /*-- 寬度不是8的倍數,現調整為:寬度x高度=89x40 --*/
28 uchar code a[]=
29 {
30 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,
31 0xFC,0xFC,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
34 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
35 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x7C,0xFC,
36 0xFC,0xFC,0xFC,0xF8,0xF8,0xF8,0xF0,0xE0,0x80,0x1F,0x3F,0x7F,0x7F,0x7F,0x7F,0x3F,
37 0x1F,0xC0,0xE0,0xF0,0xF0,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,
38 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
39 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x80,
40 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
41 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0xC3,0xE7,0xE7,
42 0xEF,0xEF,0xEF,0xC7,0x83,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x63,0x67,0x67,0xEF,
43 0xEF,0xEF,0x67,0x67,0x63,0x01,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
44 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
45 0x00,0x00,0x00,0x00,0x21,0x30,0x28,0x24,0x23,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,
46 0x1F,0x20,0x20,0x20,0x1F,0x00,0x1F,0x22,0x22,0x22,0x1C,0x00,0x30,0x30,0x00,0x00,
47 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x0F,0x07,
48 0x03,0xF8,0xFC,0xFE,0xFE,0xFE,0xFE,0xFC,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,
49 0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x02,0x03,0x03,0xFF,0xFE,
50 0x00,0x00,0x03,0x1F,0x7C,0xF0,0xC0,0xF8,0x3F,0x07,0x81,0x80,0x80,0x80,0x8C,0x92,
51 0x92,0x92,0x62,0x00,0x10,0xF0,0x80,0x60,0x10,0x90,0xA8,0xA8,0xC8,0x08,0x08,0xFC,
52 0x88,0x08,0x70,0xA8,0xA8,0xB0,0x00,0x00,0xF8,0x08,0x08,0xF0,0x08,0xF8,0xF8,0x00,
53 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,
54 0x3F,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
C51 COMPILER V6.12 ABC 11/14/2008 17:49:05 PAGE 2
55 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
56 0x06,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
57 0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
58 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
59 };
60
61 unsigned char code asc[]=
62 { //非常好,這里是一部分的ascii碼相對應的字庫。參照標準的字庫進行為8x5大小//
63 0x00,0x00,0x00,0x00,0x00, //空白 5
64 0x00,0x00,0x5F,0x00,0x00, // ! 10
65 0x04,0x03,0x04,0x03,0x00, // " 15
66 0x14,0x7F,0x14,0x7F,0x14, // # 20
67 0x24,0x2A,0x7F,0x2A,0x12, // $ 25
68 0x23,0x13,0x08,0x64,0x62, // %
69 0x36,0x49,0x55,0x22,0x50, // &
70 0x00,0x05,0x03,0x00,0x00, // '
71 0x00,0x1C,0x22,0x41,0x00, // (
72 0x00,0x41,0x22,0x1C,0x00, // )
73 0x14,0x08,0x3E,0x08,0x14, // *
74 0x08,0x08,0x3E,0x08,0x08, // +
75 0x00,0x50,0x30,0x00,0x00, // ,
76 0x08,0x08,0x08,0x08,0x08, // -
77 0x00,0x60,0x60,0x00,0x00, // .
78 0x20,0x10,0x08,0x04,0x02, // /
79 0x3E,0x51,0x49,0x45,0x3E, // 0
80 0x00,0x42,0x7F,0x40,0x00, // 1
81 0x42,0x61,0x51,0x49,0x46, // 2
82 0x21,0x41,0x45,0x4B,0x31, // 3
83 0x18,0x14,0x12,0x7F,0x10, // 4
84 0x27,0x45,0x45,0x45,0x39, // 5
85 0x3C,0x4A,0x49,0x49,0x30, // 6
86 0x03,0x01,0x71,0x09,0x07, // 7
87 0x36,0x49,0x49,0x49,0x36, // 8
88 0x06,0x49,0x49,0x29,0x1E, // 9
89 0x00,0x6C,0x6C,0x00,0x00, // :
90 0x00,0x56,0x36,0x00,0x00, // ;
91 0x08,0x14,0x22,0x41,0x00, // <
92 0x14,0x14,0x14,0x14,0x14, // =
93 0x00,0x41,0x22,0x14,0x08, // >
94 0x02,0x01,0x51,0x09,0x06, // ?
95 0x32,0x49,0x79,0x41,0x3E, // @
96 0x7E,0x11,0x11,0x11,0x7E, //A
97 0x7F,0x49,0x49,0x49,0x36, //B
98 0x3E,0x41,0x41,0x41,0x22, //C
99 0x7F,0x41,0x41,0x22,0x1C, //D
100 0x7F,0x49,0x49,0x49,0x41, //E
101 0x7F,0x09,0x09,0x09,0x01, //F
102 0x3E,0x41,0x49,0x49,0x7A, //G
103 0x7F,0x08,0x08,0x08,0x7F, //H
104 0x00,0x41,0x7F,0x41,0x00, //I
105 0x20,0x40,0x41,0x3F,0x01, //J
106 0x7F,0x08,0x14,0x22,0x41, //K
107 0x7F,0x40,0x40,0x40,0x40, //L
108 0x7F,0x02,0x0C,0x02,0x7F, //M
109 0x7F,0x04,0x08,0x10,0x7F, //N
110 0x3E,0x41,0x41,0x41,0x3E, //O
111 0x7F,0x09,0x09,0x09,0x06, //P
112 0x3E,0x41,0x51,0x21,0x5E, //Q
113 0x7F,0x09,0x19,0x29,0x46, //R
114 0x46,0x49,0x49,0x49,0x31, //S
115 0x01,0x01,0x7F,0x01,0x01, //T
116 0x3F,0x40,0x40,0x40,0x3F, //U
C51 COMPILER V6.12 ABC 11/14/2008 17:49:05 PAGE 3
117 0x1F,0x20,0x40,0x20,0x1F, //V
118 0x3F,0x40,0x38,0x40,0x3F, //W
119 0x63,0x14,0x08,0x14,0x63, //X
120 0x07,0x08,0x70,0x08,0x07, //Y
121 0x61,0x51,0x49,0x45,0x43, //Z
122 0x00,0x7F,0x41,0x41,0x00, //[
123 0x02,0x04,0x08,0x10,0x20, /* \ */ //一個大bug,不得不這樣搞
124 0x00,0x42,0x42,0x7E,0x00, //]
125 0x04,0x02,0x01,0x02,0x04, //^
126 0x40,0x40,0x40,0x40,0x40, //_
127 0x00,0x03,0x04,0x00,0x00, //`
128 0x20,0x54,0x54,0x54,0x78, //a
129 0x7F,0x48,0x44,0x44,0x38, //b
130 0x38,0x44,0x44,0x44,0x20, //c
131 0x38,0x44,0x44,0x48,0x7F, //d
132 0x38,0x54,0x54,0x54,0x18, //e
133 0x08,0x7E,0x09,0x0A,0x00, //f
134 0x0C,0x52,0x52,0x52,0x3E, //g
135 0x7F,0x08,0x04,0x04,0x78, //h
136 0x00,0x44,0x7D,0x40,0x00, //i
137 0x20,0x40,0x44,0x3D,0x00, //j
138 0x7F,0x10,0x28,0x44,0x00, //k
139 0x00,0x41,0x7F,0x40,0x00, //l
140 0x7C,0x04,0x18,0x04,0x78, //m
141 0x7C,0x08,0x04,0x04,0x78, //n
142 0x38,0x44,0x44,0x44,0x38, //o
143 0x7E,0x0A,0x0A,0x0A,0x04, //p
144 0x04,0x0A,0x0A,0x0C,0x7E, //q
145 0x7C,0x08,0x04,0x04,0x08, //r
146 0x48,0x54,0x54,0x54,0x20, //s
147 0x04,0x3F,0x44,0x44,0x20, //t
148 0x3C,0x40,0x40,0x20,0x7C, //u
149 0x1C,0x20,0x40,0x20,0x1C, //v
150 0x3C,0x40,0x30,0x40,0x3C, //w
151 0x44,0x28,0x10,0x28,0x44, //x
152 0x0C,0x50,0x50,0x50,0x3C, //y
153 0x44,0x64,0x54,0x4C,0x44, //z
154 };
155
156 void delay(uint i)//短延時
157 {
158 1 while(i--);
159 1 }
160
161 void delay2(uchar i)//長延時
162 {
163 1 while (i--)
164 1 {
165 2 delay(2000);
166 2 }
167 1 }
168
169 void reset()//重啟
170 {
171 1 rest=0;
172 1 delay(20);
173 1 rest=1;
174 1 delay(20);
175 1 }
176
177 void wcode(uchar c,uchar c1,uchar c2)//寫指令
178 {
C51 COMPILER V6.12 ABC 11/14/2008 17:49:05 PAGE 4
179 1 cs1=c1;
180 1 cs2=c2;
181 1 di=0;
182 1 rw=0;
183 1 P2=c;
184 1 e=0;
185 1 delay(5);
186 1 e=1;
187 1 delay(5);
188 1 e=0;
189 1 }
190
191 void wdata(uchar c,uchar c1,uchar c2)//寫數據
192 {
193 1 cs1=c1;
194 1 cs2=c2;
195 1 di=1;
196 1 rw=0;
197 1 P2=c;
198 1 e=0;
199 1 delay(5);
200 1 e=1;
201 1 //delay(5);//好像沒有必要做這個延遲
202 1 e=0;
203 1 }
204
205 uchar rdata(uchar c1,uchar c2)//讀指令 經典部分,為了這個搞了一天
206 {
207 1 uchar c;
208 1 cs1=c1;
209 1 cs2=c2;
210 1 di=1;
211 1 rw=1;
212 1 e=1;
213 1 delay(5);
214 1 e=0;
215 1 delay(5);
216 1 e=1;
217 1 c=P2;
218 1 e=0;
219 1 return (c);
220 1 }
221
222
223 void set_startline(uchar i)//設置起始行,很少用到,在做滾動時可能很有用。
224 {
225 1 i+=0xc0;
226 1 wcode(i,1,1);
227 1 }
228
229 void set_adr(uchar x,uchar y)//設置開始x,y,地址
230 {
231 1 x+=0xb8;
232 1 y+=0x40;
233 1 wcode(x,1,1);
234 1 wcode(y,1,1);
235 1 }
236
237 void dison_off(uchar m)//屏幕關
238 {
239 1 m+=0x3e;
240 1 wcode(m,1,1);
C51 COMPILER V6.12 ABC 11/14/2008 17:49:05 PAGE 5
241 1 }
242
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -