📄 12864-++-
字号:
276 * 函数名称 :img_disp
277 * 功能描述 : 显示图形
278 * 参数 : 参数名称: 输入/输出? 类型 描述
279 *
280 * 返回值 :
281 * 作者 :
282 * 创建日期 :2006-12-19
283 * 全局变量 :
284 * 全局静态变量:
285 * 局部静态变量:
286 *----------------------------------------修改历史------------------------------------------
287 * 当前版本 : 修改人: 修改日期:
288 * 修改说明 :
289 ******************************************************************************************/
290 void img_disp(uchar code *img)
291 {
292 1 uchar i,j;
293 1 for(j=0;j<32;j++)
294 1 {
295 2 for(i=0;i<8;i++)
296 2 {
297 3 wr_lcd(comm,0x34);
298 3 wr_lcd(comm,y+j);
299 3 wr_lcd(comm,x1+i);
300 3 wr_lcd(comm,0x30);
301 3 wr_lcd(dat,img[j*16+i*2]);
302 3 wr_lcd(dat,img[j*16+i*2+1]);
303 3 }
C51 COMPILER V9.00 12864LCDTEST 09/27/2012 19:21:10 PAGE 6
304 2 }
305 1 for(j=32;j<64;j++)
306 1 {
307 2 for(i=0;i<8;i++)
308 2 {
309 3 wr_lcd(comm,0x34);
310 3 wr_lcd(comm,y+j-32);
311 3 wr_lcd(comm,x2+i);
312 3 wr_lcd(comm,0x30);
313 3 wr_lcd(dat,img[j*16+i*2]);
314 3 wr_lcd(dat,img[j*16+i*2+1]);
315 3 }
316 2 }
317 1 wr_lcd (comm,0x36);
318 1 }
319
320 /******************************************************************************************
321 * 函数名称 :img_disp1
322 * 功能描述 : 下半屏显示图形
323 * 参数 : 参数名称: 输入/输出? 类型 描述
324 *
325 * 返回值 :
326 * 作者 :
327 * 创建日期 :2006-12-19
328 * 全局变量 :
329 * 全局静态变量:
330 * 局部静态变量:
331 *----------------------------------------修改历史------------------------------------------
332 * 当前版本 : 修改人: 修改日期:
333 * 修改说明 :
334 ******************************************************************************************/
335 void img_disp1(uchar code *img)
336 {
337 1 uchar i,j;
338 1 for(j=0;j<32;j++)
339 1 {
340 2 for(i=0;i<8;i++)
341 2 {
342 3 wr_lcd(comm,0x34);
343 3 wr_lcd(comm,y+j);
344 3 wr_lcd(comm,x2+i);
345 3 wr_lcd(comm,0x30);
346 3 wr_lcd(dat,img[j*16+i*2]);
347 3 wr_lcd(dat,img[j*16+i*2+1]);
348 3 }
349 2 }
350 1 wr_lcd(comm,0x36);
351 1 }
352
353 /******************************************************************************************
354 * 函数名称 :lat_disp
355 * 功能描述 : 显示点阵
356 * 参数 : 参数名称: 输入/输出? 类型 描述
357 *
358 * 返回值 :
359 * 作者 :
360 * 创建日期 :2006-12-19
361 * 全局变量 :
362 * 全局静态变量:
363 * 局部静态变量:
364 *----------------------------------------修改历史------------------------------------------
365 * 当前版本 : 修改人: 修改日期:
C51 COMPILER V9.00 12864LCDTEST 09/27/2012 19:21:10 PAGE 7
366 * 修改说明 :
367 ******************************************************************************************/
368 /*--------------显示点阵----------------*/
369 //经过调试发现显示点阵是非常有意思的,最主要的在于data1,data2上的两组数据的取值,
370 //不同的取值对应着不同的点阵效果。
371
372 void lat_disp(uchar data1,uchar data2)
373 {
374 1 uchar i,j,k,x;
375 1 x=x1;
376 1 for(k=0;k<2;k++)
377 1 {
378 2 for(j=0;j<16;j++)
379 2 {
380 3 for(i=0;i<8;i++)
381 3 {
382 4 wr_lcd(comm,0x34);
383 4 wr_lcd(comm,y+j*2);
384 4 wr_lcd(comm,x+i);
385 4 wr_lcd(comm,0x30);
386 4 wr_lcd(dat,data1);
387 4 wr_lcd(dat,data1);
388 4 }
389 3 for(i=0;i<8;i++)
390 3 {
391 4 wr_lcd(comm,0x34);
392 4 wr_lcd(comm,y+j*2+1);
393 4 wr_lcd(comm,x+i);
394 4 wr_lcd(comm,0x30);
395 4 wr_lcd(dat,data2);
396 4 wr_lcd(dat,data2);
397 4 }
398 3 }
399 2 x=x2;
400 2 }
401 1 wr_lcd(comm,0x36);
402 1 }
403
404 /******************************************************************************************
405 * 函数名称 :con_disp
406 * 功能描述 : 当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl
407 * 参数 : 参数名称: 输入/输出? 类型 描述
408 *
409 * 返回值 :
410 * 作者 :
411 * 创建日期 :2006-12-19
412 * 全局变量 :
413 * 全局静态变量:
414 * 局部静态变量:
415 *----------------------------------------修改历史------------------------------------------
416 * 当前版本 : 修改人: 修改日期:
417 * 修改说明 :
418 ******************************************************************************************/
419 void con_disp(uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
420 {
421 1 uchar i,j;
422 1 for(j=0;j<yl;j++)
423 1 {
424 2 for(i=0;i<xl;i++)
425 2 {
426 3 wr_lcd(comm,0x34);
427 3 wr_lcd(comm,y0+j);
C51 COMPILER V9.00 12864LCDTEST 09/27/2012 19:21:10 PAGE 8
428 3 wr_lcd(comm,x0+i);
429 3 wr_lcd(comm,0x30);
430 3 wr_lcd(dat,data1);
431 3 wr_lcd(dat,data2);
432 3 }
433 2 }
434 1 wr_lcd(comm,0x36);
435 1 }
436
437 /******************************************************************************************
438 * 函数名称 :clrram
439 * 功能描述 : 清DDRAM
440 * 参数 : 参数名称: 输入/输出? 类型 描述
441 *
442 * 返回值 :
443 * 作者 :
444 * 创建日期 :2006-12-19
445 * 全局变量 :
446 * 全局静态变量:
447 * 局部静态变量:
448 *----------------------------------------修改历史------------------------------------------
449 * 当前版本 : 修改人: 修改日期:
450 * 修改说明 :
451 ******************************************************************************************/
452 void clrram(void)
453 {
454 1 wr_lcd(comm,0x30);
455 1 wr_lcd(comm,0x01);
456 1 }
457
458 /******************************************************************************************
459 * 函数名称 :wr_lcd
460 * 功能描述 :
461 * 参数 : 参数名称: 输入/输出? 类型 描述
462 *
463 * 返回值 :
464 * 作者 :
465 * 创建日期 :2006-12-19
466 * 全局变量 :
467 * 全局静态变量:
468 * 局部静态变量:
469 *----------------------------------------修改历史------------------------------------------
470 * 当前版本 : 修改人: 修改日期:
471 * 修改说明 :
472 ******************************************************************************************/
473 void wr_lcd(uchar dat_comm,uchar content)
474 {
475 1 chk_busy ();
476 1 if(dat_comm)
477 1 {
478 2 RS = 1; //data
479 2 RW = 0; //write
480 2 }
481 1 else
482 1 {
483 2 RS = 0; //command
484 2 RW = 0; //write
485 2 }
486 1 P0=content; //output data or comm
487 1 E = 1;
488 1 ;
489 1 E = 0;
C51 COMPILER V9.00 12864LCDTEST 09/27/2012 19:21:10 PAGE 9
490 1 }
491 /******************************************************************************************
492 * 函数名称 :chk_busy
493 ******************************************************************************************/
494 void chk_busy(void)
495 {
496 1 P0 = 0xff;
497 1 RS = 0;
498 1 RW = 1;
499 1 E = 1;
500 1 while(busy==1);
501 1 E = 0;
502 1 }
503
504 void delay(uint us) //delay time
505 {
506 1 while(us--);
507 1 }
508
509 void delay1(uint ms)
510 {
511 1 uint i,j;
512 1 for(i=0;i<ms;i++)
513 1 for(j=0;j<15;j++)
514 1 delay(1);
515 1 }
516
517
518 void main()
519 {
520 1 init_lcd();
521 1 while(1)
522 1 {
523 2 lat_disp(0x00,0x00);
524 2 chn_disp(tab1);
525 2 con_disp(0xff,0xff,0x8c,0x80,2,16);
526 2 delay1(8000);
527 2 clrram();
528 2 lat_disp(0xcc,0xcc);
529 2 delay1(8000);
530 2 lat_disp(0x00,0x00);
531 2 chn_disp1(tab31);
532 2 img_disp1(tab32);
533 2 delay1 (8000);
534 2 clrram();
535 2 lat_disp (0xff,0x00);
536 2 delay1(8000);
537 2 img_disp(tab5);
538 2 delay1(8000);
539 2 }
540 1 }
541
542
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1037 ----
CONSTANT SIZE = 1633 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 34
IDATA SIZE = ---- ----
C51 COMPILER V9.00 12864LCDTEST 09/27/2012 19:21:10 PAGE 10
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 + -