📄 v9.lst
字号:
C51 COMPILER V7.01 V9 02/27/2006 09:30:41 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE V9
OBJECT MODULE PLACED IN V9.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE V9.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg51.h"
2 #include "math.h"
3 #include "intrins.h"
4 #include "absacc.h"
5 #define uchar unsigned char
6
7 //sbit elcd=P2^7;
8 sbit rs=P3^0;
9 sbit rw=P3^1;
10 sbit elcd=P3^2;
11 sbit cs1=P3^3;
12 sbit cs2=P3^4;
13 sbit rst=P3^5;
14
15 #define datalcd P1 //p0口
16 #define getdata DBYTE[0x30]
17 //#define getdata1 XBYTE[0x3000]
18
19
20 #define dispon 0x3f //显示on
21 #define dispoff 0x3e //显示off
22 #define lcdbusy 0x80 //LCD忙判断
23 #define dispfirst 0xc0 //显示起始行
24
25 uchar cbyte;
26
27
28 void lcdinit(void);
29 void delay(uchar);
30 //void busy(void);
31 //void lcdbusyR(void);
32 void clr_screen(void);
33 void writedata(uchar);
34 //uchar readdata();
35 void writecmd(uchar);
36 //void Set_XY(uchar,uchar);
37
38 uchar code guang[]={
39 0x00,0x00,0xFC,0x44,0x54,0x54,0x7C,0x55,
40 0xD6,0x54,0x7C,0x54,0x54,0x44,0x44,0x00,
41 0x80,0x60,0x1F,0x80,0x9F,0x55,0x35,0x15,
42 0x1F,0x15,0x15,0x35,0x5F,0x80,0x00,0x00
43 };
44
45 uchar code dong[]={
46 0x00,0x08,0xE8,0xA8,0xA8,0xA8,0xA8,0xFF,
47 0xA8,0xA8,0xA8,0xA8,0xE8,0x0C,0x08,0x00,
48 0x00,0x40,0x23,0x12,0x0A,0x06,0x02,0xFF,
49 0x02,0x06,0x0A,0x12,0x23,0x60,0x20,0x00
50 };
51
52 uchar code you[]={
53 0x04,0x04,0x04,0x84,0xE4,0x3C,0x27,0x24,
54 0x24,0x24,0x24,0xF4,0x24,0x06,0x04,0x00,
55 0x04,0x02,0x01,0x00,0xFF,0x09,0x09,0x09,
C51 COMPILER V7.01 V9 02/27/2006 09:30:41 PAGE 2
56 0x09,0x49,0x89,0x7F,0x00,0x00,0x00,0x00
57 };
58
59 uchar code xian[]={
60 0x00,0xFE,0x02,0x22,0xDA,0x06,0x00,0xFE,
61 0x92,0x92,0x92,0x92,0xFF,0x02,0x00,0x00,
62 0x00,0xFF,0x08,0x10,0x08,0x07,0x00,0xFF,
63 0x42,0x24,0x08,0x14,0x22,0x61,0x20,0x00
64 };
65
66 uchar code gong[]={
67 0x00,0x00,0x80,0x40,0x30,0x0C,0x00,0xC0,
68 0x07,0x1A,0x20,0x40,0x80,0x80,0x80,0x00,
69 0x01,0x01,0x20,0x70,0x28,0x24,0x23,0x20,
70 0x20,0x28,0x30,0x60,0x00,0x01,0x00,0x00
71 };
72
73 uchar code si[]={
74 0x10,0x10,0x92,0x92,0x92,0x92,0x92,0x92,
75 0xD2,0x9A,0x12,0x02,0xFF,0x02,0x00,0x00,
76 0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,
77 0x3F,0x00,0x40,0x80,0x7F,0x00,0x00,0x00
78 };
79
80 void main()
81 {
82 1 elcd=0;
83 1 lcdinit();
84 1 while(1)
85 1 {
86 2 uchar n;
87 2 uchar i;
88 2 for(i=63;i>0;i--)
89 2 {
90 3 writecmd(dispfirst+i);
91 3 writecmd(0xb8);//第一页
92 3 delay(100);
93 3 writecmd(0x40); //设置列地址,第一列
94 3 cs1=1;cs2=0;
95 3 for(n=0;n<16;n++)
96 3 {
97 4 writedata(guang[n]);
98 4 delay(100);
99 4 }
100 3
101 3 writecmd(0xb9);//第二页
102 3 delay(100);
103 3 writecmd(0x40); //设置列地址,第一列
104 3 cs1=1;cs2=0;
105 3 for(n=16;n<32;n++)
106 3 {
107 4 writedata(guang[n]);
108 4 delay(100);
109 4 }
110 3
111 3
112 3 writecmd(0xb8);//第一页
113 3 delay(100);
114 3 writecmd(0x50); //设置列地址,第17列
115 3 cs1=1;cs2=0;
116 3 for(n=0;n<16;n++)
117 3 {
C51 COMPILER V7.01 V9 02/27/2006 09:30:41 PAGE 3
118 4 writedata(dong[n]);
119 4 delay(100);
120 4 }
121 3
122 3 writecmd(0xb9);//第二页
123 3 delay(100);
124 3 writecmd(0x50); //设置列地址,第17列
125 3 cs1=1;cs2=0;
126 3 for(n=16;n<32;n++)
127 3 {
128 4 writedata(dong[n]);
129 4 delay(100);
130 4 }
131 3
132 3
133 3 writecmd(0xb8);//第一页
134 3 delay(100);
135 3 writecmd(0x60); //设置列地址,第33列
136 3 cs1=1;cs2=0;
137 3 for(n=0;n<16;n++)
138 3 {
139 4 writedata(you[n]);
140 4 delay(100);
141 4 }
142 3
143 3 writecmd(0xb9);//第二页
144 3 delay(100);
145 3 writecmd(0x60); //设置列地址,第33列
146 3 cs1=1;cs2=0;
147 3 for(n=16;n<32;n++)
148 3 {
149 4 writedata(you[n]);
150 4 delay(100);
151 4 }
152 3
153 3
154 3 writecmd(0xb8);//第一页
155 3 delay(100);
156 3 writecmd(0x70); //设置列地址,第49列
157 3 cs1=1;cs2=0;
158 3 for(n=0;n<16;n++)
159 3 {
160 4 writedata(xian[n]);
161 4 delay(100);
162 4 }
163 3
164 3 writecmd(0xb9);//第二页
165 3 delay(100);
166 3 writecmd(0x70); //设置列地址,第49列
167 3 cs1=1;cs2=0;
168 3 for(n=16;n<32;n++)
169 3 {
170 4 writedata(xian[n]);
171 4 delay(100);
172 4 }
173 3
174 3 writecmd(0xb8);//第一页
175 3 delay(100);
176 3 writecmd(0x40); //设置列地址,第一列
177 3 cs1=0;cs2=1;
178 3 for(n=0;n<16;n++)
179 3 {
C51 COMPILER V7.01 V9 02/27/2006 09:30:41 PAGE 4
180 4 writedata(gong[n]);
181 4 delay(100);
182 4 }
183 3
184 3 writecmd(0xb9);//第二页
185 3 delay(100);
186 3 writecmd(0x40); //设置列地址,第一列
187 3 cs1=0;cs2=1;
188 3 for(n=16;n<32;n++)
189 3 {
190 4 writedata(gong[n]);
191 4 delay(100);
192 4 }
193 3
194 3 writecmd(0xb8);//第一页
195 3 delay(100);
196 3 writecmd(0x50); //设置列地址,第17列
197 3 cs1=0;cs2=1;
198 3 for(n=0;n<16;n++)
199 3 {
200 4 writedata(si[n]);
201 4 delay(100);
202 4 }
203 3
204 3 writecmd(0xb9);//第二页
205 3 delay(100);
206 3 writecmd(0x50); //设置列地址,第17列
207 3 cs1=0;cs2=1;
208 3 for(n=16;n<32;n++)
209 3 {
210 4 writedata(si[n]);
211 4 delay(100);
212 4 }
213 3
214 3
215 3 }
216 2 }
217 1 }
218
219 /*
220 void busy(void)
221 {
222 P1=0xff;
223 while(1)
224 {
225 cs1=1;cs2=1;
226 elcd=0;
227 rs=0;
228 rw=1;
229 elcd=1;
230 if(P1<0x80)break;
231 elcd=0;
232 }
233 elcd=0;
234 }
235
236 /*
237 void lcdbusyR(void)
238 { /*
239 datalcd=0xff;
240 cs1=0;cs2=1;
241 rw=1;
C51 COMPILER V7.01 V9 02/27/2006 09:30:41 PAGE 5
242 rs=0;//elcd=0;
243 _nop_();
244 elcd=1;
245 _nop_();_nop_();
246 //elcd=0;
247 getdata=datalcd;
248 while(datalcd&lcdbusy);
249 elcd=0;
250 //
251 P0=0xff;
252 //rs=0;rw=1;
253
254 }
255 */
256
257 void delay(uchar MS)
258 {
259 1 while(MS!=0)MS--;
260 1 }
261
262
263 void writecmd(uchar Reg_Code)
264 {
265 1 cs1=1;cs2=1;
266 1 elcd=0;
267 1 rs=0;
268 1 rw=0;
269 1 datalcd=Reg_Code;
270 1 // elcd=0;
271 1 // delay(10);
272 1 elcd=1;
273 1 // delay(10);
274 1 elcd=0;
275 1 }
276
277
278 void writedata(uchar Disp_Data)
279 {
280 1 rs=1;
281 1 rw=0;
282 1 elcd=0;
283 1 datalcd=Disp_Data;
284 1 // elcd=0;
285 1 // delay(10);
286 1 elcd=1;
287 1 // delay(10);
288 1 elcd=0;
289 1 }
290 /*
291 uchar readdata()
292 {
293 uchar Disp_Data;
294
295 rs=1;
296 rw=1;
297 // datalcd=0xff;
298 elcd=1;
299 delay(5);
300 Disp_Data=datalcd;
301 elcd=0;
302 //读第二次,第一次为虚读
303 elcd=0;
C51 COMPILER V7.01 V9 02/27/2006 09:30:41 PAGE 6
304 rs=1;
305 rw=1;
306 // datalcd=0xf0;
307 elcd=1;
308 delay(10);
309 Disp_Data=datalcd;
310 elcd=0;
311
312 return Disp_Data;
313 }
314 */
315 void clr_screen()
316 {
317 1 uchar j,k;
318 1
319 1 for(k=0;k<8;k++){
320 2 writecmd(0xb8+k);
321 2 writecmd(0x40);
322 2 for(j=0;j<64;j++)
323 2 {writedata(0x00);
324 3 delay(1000);}
325 2 }
326 1 }
327
328
329
330 void lcdinit(void)
331 {
332 1 rst=0;
333 1 delay(1000);
334 1 rst=1;
335 1 _nop_();
336 1 _nop_();
337 1
338 1
339 1 //cs1=1;cs2=1;
340 1 cbyte=dispon;
341 1 writecmd(cbyte);
342 1 //delay(10);
343 1
344 1
345 1 cbyte=dispfirst; //显示起始行
346 1 writecmd(cbyte);
347 1 //delay(10);
348 1
349 1 cs1=1;cs2=1;
350 1 clr_screen();
351 1
352 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 678 ----
CONSTANT SIZE = 192 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -