📄 lcm.lst
字号:
235 1 Tuxing(); //龙的图形
236 1 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
237 1 Clearlcd1();
238 1 z=64;/*图形数组的页,为实际点阵行数*/
239 1 y=16;/*图形数组的列,为实际点阵列数除以8*/
240 1 Column=0;/*起始点设定:为在液晶中显示的实际起始列*/
C51 COMPILER V7.50 LCM 04/01/2009 14:05:36 PAGE 5
241 1 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
242 1 p2=MyTu;
*** WARNING C182 IN LINE 242 OF LCM.C: pointer to different objects
243 1 Tuxing(); //左边是物理所的图标,右边是中科院 物理所两行文字
244 1 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
245 1 Clearlcd1();
246 1 z=32;/*图形数组的页,为实际点阵行数*/
247 1 y=4;/*图形数组的列,为实际点阵列数除以8*/
248 1 Column=5;/*起始点设定:为在液晶中显示的实际起始列,一列占一个汉字*/
249 1 Page=0;/*起始点设定:为在液晶中显示的实际起始行*/
250 1 p2=MyTu2;
*** WARNING C182 IN LINE 250 OF LCM.C: pointer to different objects
251 1 OneTuxing(); //一个小的图标
252 1 Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();Delay();
253 1 goto loop;
254 1 }
255
256 /********************写指令子程序********************/
257 void WCOM(uchar d) /*写指令程序*/
258 {
259 1 R_W=1;
260 1 D_I=0;/*设置状态*/
261 1 Loop:
262 1 P1=0xFF;
263 1 E=1;/*使能有效*/
264 1 q=P1;/*将p1口状态读入*/
265 1 E=0;/*关闭使能信号*/
266 1 if(q&0x80)/*判断屏幕是否忙*/
267 1 {
268 2 goto Loop;/*若忙,循环等待*/
269 2 }
270 1 R_W=0;
271 1 D_I=0;/*写数据指令*/
272 1 P1=d;/*将数据送入p1口*/
273 1 E=1;/*使能信号开*/
274 1 E=0;/*使能信号关*/
275 1 }
276 /********************送数据子程序********************/
277 void Dat(uchar d)
278 {
279 1 R_W=1;
280 1 D_I=0;/*读状态指令*/
281 1 Loop:
282 1 P1=0xFF;
283 1 E=1;/*使能*/
284 1 q=P1;
285 1 E=0;
286 1 if(q&0x80)
287 1 {
288 2 goto Loop;
289 2 }/*判忙*/
290 1 D_I=1;/*送数据指令*/
291 1 R_W=0;
292 1 P1=d;
293 1 E=1;/*使能信号开*/
294 1 E=0;/*使能信号关*/
295 1 }
296 /********************初始化子程序********************/
297 void Imim()
298 {
299 1 P0=0xff;
300 1 P1=0xff;
C51 COMPILER V7.50 LCM 04/01/2009 14:05:36 PAGE 6
301 1 P2=0xff;
302 1 P3=0xff;
303 1 E=0;
304 1 Delay();
305 1 WCOM(0x38);/*功能设定*/
306 1 WCOM(0x08);/*关显示指令*/
307 1 WCOM(0x06);/*游标右移*/
308 1 Clearlcd();/*清屏*/
309 1 WCOM(0x0c);/*开显示指令*/
310 1 }
311 /********************延时子程序********************/
312 void Delay()
313 {
314 1 uchar data i,j;
315 1 for(i=0;i<255;i++)
316 1 for(j=0;j<255;j++);
317 1 }
318 /********************基本指令集清屏子程序********************/
319 void Clearlcd()
320 {
321 1 D_I=0;
322 1 R_W=0;
323 1 P1=0x01;
324 1 WCOM(0x01);/*清除显示*/
325 1 }
326 /********************写第一行汉字主程序********************/
327 void Hanz()
328 {
329 1 WCOM(k); /*设置第一行起始点*/
330 1 for(i=0;i<j;i++,p++)
331 1 {
332 2 wbyte=*p;
333 2 Dat(wbyte);/*将汉字数组数据送入*/
334 2 }
335 1 }
336 /********************写第二行汉字主程序********************/
337 void Hanz1()
338 {
339 1 WCOM(k1);/*设置第二行起始点*/
340 1 for(i=0;i<j1;i++,p1++)
341 1 {
342 2 wbyte=*p1;
343 2 Dat(wbyte);/*将汉字数组数据送入*/
344 2 }
345 1 }
346 /********************扩充指令集画图子程序********************/
347 void Tuxing()
348 {
349 1 uchar data v;
350 1 uchar data w;
351 1 uchar data x;
352 1 uchar data h;
353 1 WCOM(0x34);/*功能设定*/
354 1 WCOM(0x36);/*扩充功能设定*/
355 1 pp=p2;
356 1 pp=pp+16*y*2;
357 1 for(h=0;h<z/2;h++) /*页循环*/
358 1 {
359 2 v=Column|0x80;
360 2 w=Page|0x80;
361 2 WCOM(w);/*送入起始页地址*/
362 2 WCOM(v);/*送入起始列地址*/
C51 COMPILER V7.50 LCM 04/01/2009 14:05:36 PAGE 7
363 2 Page++; /*准备对下一页进行操作*/
364 2 for(x=0;x<2*y;x++) /*列循环*/
365 2 {
366 3 if(x<y)
367 3 {
368 4 wbyte=*p2;
369 4 Dat(wbyte);/*循环送入图形数据*/
370 4 p2=p2+1;
371 4 }
372 3 else
373 3 {
374 4 wbyte=*pp;
375 4 Dat(wbyte);/*循环送入图形数据*/
376 4 pp=pp+1;
377 4 }
378 3 }
379 2 }
380 1 }
381 /*---------------------------------------*/
382 void MyTuxing()
383 {
384 1 uchar data v;
385 1 uchar data w;
386 1 uchar data x;
387 1 uchar data h;
388 1 uchar data NextPage;
389 1 NextPage=Page;
390 1 WCOM(0x34);/*功能设定*/
391 1 WCOM(0x36);/*扩充功能设定*/
392 1 pp=p2;
393 1 pp=pp+16*y*2;
394 1 for(h=0;h<z/2;h++) /*页循环*/
395 1 {
396 2 v=Column|0x80;
397 2 w=Page|0x80;
398 2 WCOM(w);/*送入起始页地址*/
399 2 WCOM(v);/*送入起始列地址*/
400 2
401 2 for(x=0;x<y;x++) /*列循环*/
402 2 {
403 3 wbyte=*p2;
404 3 Dat(wbyte);/*循环送入图形数据*/
405 3 p2=p2+1;
406 3 }
407 2 WCOM(w+16);/*送入起始页地址*/
408 2 WCOM(v);/*送入起始列地址*/
409 2 for(x=0;x<y;x++)
410 2 {
411 3 wbyte=*pp;
412 3 Dat(wbyte);/*循环送入图形数据*/
413 3 pp=pp+1;
414 3 }
415 2 Page++; /*准备对下一页进行操作*/
416 2 }
417 1 }
418
419 void OneTuxing()
420 {
421 1 uchar data v;
422 1 uchar data w;
423 1 uchar data x;
424 1 uchar data h;
C51 COMPILER V7.50 LCM 04/01/2009 14:05:36 PAGE 8
425 1 WCOM(0x34);/*功能设定*/
426 1 WCOM(0x36);/*扩充功能设定*/
427 1 for(h=0;h<z;h++) /*页循环*/
428 1 {
429 2 v=Column|0x80;
430 2 w=Page|0x80;
431 2 WCOM(w);/*送入起始页地址*/
432 2 WCOM(v);/*送入起始列地址*/
433 2 Page++; /*准备对下一页进行操作*/
434 2 for(x=0;x<y;x++) /*列循环*/
435 2 {
436 3 wbyte=*p2;
437 3 Dat(wbyte);/*循环送入图形数据*/
438 3 p2++;
439 3 }
440 2 }
441 1 }
442
443 /********************扩充指令集清屏子程序********************/
444 void Clearlcd1()
445 {
446 1 uchar data Disp_Page;
447 1 uchar data i;
448 1 uchar data j;
449 1 for(i=0;i<64;i++)/*共32页*/
450 1 {
451 2 Disp_Page=i|0x80;/*设置页地址*/
452 2 WCOM(Disp_Page);/*送入页地址*/
453 2 WCOM(0x80);/*送入起始列地址*/
454 2 for(j=0;j<32;j++)
455 2 {
456 3 Dat(0x00);/*清屏*/
457 3 }
458 2 }
459 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 844 ----
CONSTANT SIZE = 2236 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 23 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -