📄 sed1520.lst
字号:
416 1 //设置页
417 1 temp=(y>>3);
418 1 LCDWriteCom1(0xb8|(temp&3));
419 1 LCDWriteCom2(0xb8|(temp&3));
420 1
421 1 if(x<MAXCOL)
422 1 {
423 2
424 2 LCDWriteCom1(x); //设置行
425 2 LCDWriteCom1(0xe0); //打开改写模式
426 2 dat=LCDReadDat1(); //读数据
427 2 // if(COLOR==0)dat=dat&(!(1<<(y%8))); //计算要写数据
C51 COMPILER V7.07 SED1520 04/09/2004 23:25:03 PAGE 8
428 2 dat=dat|(1<<(y%8));
429 2 LCDWriteDat1(dat); //写数据
430 2 LCDWriteCom1(0xee); //关闭改写模式
431 2
432 2 }
433 1 else
434 1 if(x>MAXCOL)
435 1 { LCDWriteCom2(x-MAXCOL); //设置行
436 2 LCDWriteCom2(0xe0); //打开改写模式
437 2 dat=LCDReadDat2(); //读数据
438 2 // if(COLOR==0) dat=dat&(!(1<<(y%8)));//计算要写数据
439 2 dat=dat|(1<<(y%8));
440 2 LCDWriteDat2(dat); //写数据
441 2 LCDWriteCom2(0xee); //关闭改写模式
442 2 }
443 1 }
444
445 void LCDDrawLine(unsigned char col,unsigned char y )
446 {
447 1 char i,y0,ym,page0,page1,temp,dat=0;
448 1
449 1 y0=y>>3;
450 1 page1=y>>3;
451 1 ym=y%8;
452 1 if(col<=MAXCOL)
453 1 {
454 2 if(y0!=0)
455 2 {
456 3 page0=4-y0;
457 3
458 3 for(i=page0;i<=3;i++)
459 3 {
460 4 LCDWriteCom1(col);
461 4 LCDWriteCom1(0xb8|(i&3)); //设定显示页
462 4 LCDWriteDat1(0xff);
463 4 }
464 3 page1=3-page1;
465 3 LCDWriteCom1(col);
466 3 LCDWriteCom1(0xb8|(page1&3)); //设定显示页
467 3 ym=8-ym;
468 3 for(i=ym;i<=7;i++)
469 3 { dat=dat+Square(i);}
470 3 LCDWriteDat1(dat);
471 3 }
472 2 if(y0==0)
473 2 {
474 3 page1=3-page1;
475 3 LCDWriteCom1(col);
476 3 LCDWriteCom1(0xb8|(page1&3)); //设定显示页
477 3 ym=8-ym;
478 3 for(i=ym;i<=7;i++)
479 3 { dat=dat+Square(i);}
480 3 LCDWriteDat1(dat);
481 3 }
482 2 if(y0<=2)
483 2 {temp=2-y0;
484 3 for(i=0;i<=temp;i++)
485 3 {
486 4 LCDWriteCom1(col);
487 4 LCDWriteCom1(0xb8|(i&3)); //设定显示页
488 4 LCDWriteDat1(0x00);
489 4 }
C51 COMPILER V7.07 SED1520 04/09/2004 23:25:03 PAGE 9
490 3 }
491 2 }
492 1 else
493 1 {
494 2 if(y0!=0)
495 2 {
496 3 page0=4-y0;
497 3 for(i=page0;i<=3;i++)
498 3 {
499 4 LCDWriteCom2(col-MAXCOL);
500 4 LCDWriteCom2(0xb8|(i&3)); //设定显示页
501 4 LCDWriteDat2(0xff);
502 4 }
503 3 page1=3-page1;
504 3 LCDWriteCom2(col-MAXCOL);
505 3 LCDWriteCom2(0xb8|(page1&3)); //设定显示页
506 3 ym=8-ym;
507 3 for(i=ym;i<=7;i++)
508 3 { dat=dat+Square(i);}
509 3 LCDWriteDat2(dat);
510 3 }
511 2 if(y0==0)
512 2 {
513 3 page1=3-page1;
514 3 LCDWriteCom2(col-MAXCOL);
515 3 LCDWriteCom2(0xb8|(page1&3)); //设定显示页
516 3 ym=8-ym;
517 3 for(i=ym;i<=7;i++)
518 3 { dat=dat+Square(i);}
519 3 LCDWriteDat2(dat);
520 3 }
521 2 if(y0<=2)
522 2 {temp=2-y0;
523 3 for(i=0;i<=temp;i++)
524 3 {
525 4 LCDWriteCom2(col-MAXCOL);
526 4 LCDWriteCom2(0xb8|(i&3)); //设定显示页
527 4 LCDWriteDat2(0x00);
528 4 }
529 3 }
530 2
531 2 }
532 1
533 1 }
534
535
536 void LCDDrawDatM2(char col, char i, char *pdat)
537 {
538 1 char j;
539 1 unsigned char length;
540 1
541 1 length = 8;
542 1 if ((col+length) < MAXCOL)
543 1 {
544 2 LCDWriteCom1(col);
545 2 LCDWriteCom1(0xb8|(i&3)); //设定显示页
546 2 for(j=col; j<col+length; j++)
547 2 LCDWriteDat1(*(pdat+(j-col)));
548 2 return;
549 2 }
550 1 if (((col+length) >= MAXCOL)&&(col<MAXCOL))
551 1 {
C51 COMPILER V7.07 SED1520 04/09/2004 23:25:03 PAGE 10
552 2 LCDWriteCom1(col);
553 2 LCDWriteCom1(0xb8|(i&3)); //设定显示页
554 2 for(j=col; j<MAXCOL; j++)
555 2 LCDWriteDat1(*(pdat+(j-col)));
556 2
557 2 LCDWriteCom2(0);
558 2 LCDWriteCom2(0xb8|(i&3)); //设定显示页
559 2 for(j=0; j<MAXCOL; j++)
560 2 {
561 3 LCDWriteDat2(*(pdat+(MAXCOL-col+j)));
562 3 if ((MAXCOL-col+j) >= length)
563 3 break;
564 3 }
565 2 return;
566 2 }
567 1 else
568 1 {
569 2 LCDWriteCom2(col-MAXCOL);
570 2 LCDWriteCom2(0xb8|(i&3)); //设定显示页
571 2 for(j=col-MAXCOL; j<MAXCOL; j++)
572 2 {
573 3 LCDWriteDat2(*(pdat+(j-col+MAXCOL)));
574 3 if ((j-col+MAXCOL) >= length)
575 3 break;
576 3 }
577 2 }
578 1 }
579
580 void LCDDrawDatM2_Opposition(char col, char i, char *pdat)
581 {
582 1 char j;
583 1 unsigned char length;
584 1
585 1 length = 8;
586 1 if ((col+length) < MAXCOL)
587 1 {
588 2 LCDWriteCom1(col);
589 2 LCDWriteCom1(0xb8|(i&3)); //设定显示页
590 2 for(j=col; j<col+length; j++)
591 2 LCDWriteDat1( 0xff-(*(pdat+(j-col))) );
592 2 return;
593 2 }
594 1 if (((col+length) >= MAXCOL)&&(col<MAXCOL))
595 1 {
596 2 LCDWriteCom1(col);
597 2 LCDWriteCom1(0xb8|(i&3)); //设定显示页
598 2 for(j=col; j<MAXCOL; j++)
599 2 LCDWriteDat1(0xff-(*(pdat+(j-col))) );
600 2
601 2 LCDWriteCom2(0);
602 2 LCDWriteCom2(0xb8|(i&3)); //设定显示页
603 2 for(j=0; j<MAXCOL; j++)
604 2 {
605 3 LCDWriteDat2(0xff-(*(pdat+(MAXCOL-col+j))) );
606 3 if ((MAXCOL-col+j) >= length)
607 3 break;
608 3 }
609 2 return;
610 2 }
611 1 else
612 1 {
613 2 LCDWriteCom2(col-MAXCOL);
C51 COMPILER V7.07 SED1520 04/09/2004 23:25:03 PAGE 11
614 2 LCDWriteCom2(0xb8|(i&3)); //设定显示页
615 2 for(j=col-MAXCOL; j<MAXCOL; j++)
616 2 {
617 3 LCDWriteDat2(0xff-(*(pdat+(j-col+MAXCOL))) );
618 3 if ((j-col+MAXCOL) >= length)
619 3 break;
620 3 }
621 2 }
622 1 }
623
624 void LcdTextOut_Opposition(char col, char page, char *string)
625 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -