📄 show.lst
字号:
522 4 k = k>>tt;
523 4 ff = k;
524 4 k = gg<<(8-tt);
525 4 ff = ff|k;
526 4 LcdWriteCmd(0x4d);
527 4 LcdWriteCmd(0x43);
528 4 LcdRead();
529 4 LcdRead();
530 4 LcdWriteCmd(0x4C);
531 4 LcdWriteCmd(0x42);
532 4 LcdWriteData(ee);
533 4 LcdWriteData(ff);
534 4 LcdWriteCmd(0x4d);
535 4 LcdWriteCmd(0x43);
536 4 LcdRead();
537 4 LcdRead();
538 4 LcdWriteCmd(0x4c);
539 4 LcdWriteCmd(0x43);
540 4 LcdRead();
541 4 }
542 3 }
543 2 l=(ap+bx+(by<<8));
544 2 bx=(BYTE)(l&0x00ff);
545 2 by=(BYTE)((l&0xff00)>>8);
546 2 }
547 1 }
548
549 /*********************************************************************************************************
550 * 函数名称: LcdDrawDot
551 *
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 10
552 * 功能描述: 在位置(bx,by)处画点或消点
553 *
554 * 入口参数: bx, 行坐标,取值范围为0~239
555 * by, 列坐标,取值范围为0~159
556 * Attr, 图形显示的属性,"1"-画点; "0"-消点
557 *
558 * 出口参数: 无
559 *
560 * 全局变量: 无
561 *
562 * 调用模块: LcdWriteCmd(),
563 * LcdWriteData(),
564 * LcdRead()
565 *
566 * 作 者: Aoker
567 * 创建时间: 2004年12月7日
568 ********************************************************************************************************/
569 /*
570 void LcdDrawDot(BYTE bx, BYTE by, bit Attr) //描点
571 {
572 BYTE tt=0, uu=0; //ap 修改 P7, 行字符个数
573 WORD l=0;
574
575 tt = (BYTE)(bx%8);
576 bx = bx/8;
577 l = by*ap + bx;
578 bx = (BYTE)(l&0xff);
579 by = (BYTE)((l>>8)&0xff);
580
581 LcdWriteCmd(0x4C); //"光标右移"
582 LcdWriteCmd(0x46); // 光标指针设置
583 LcdWriteData(bx); // 光标地址16位
584 LcdWriteData(by);
585 LcdWriteCmd(0x43);
586 uu = LcdRead();
587 if(Attr)
588 uu |= 1<<(7-tt);
589 else
590 uu &= ~(1<<(7-tt));
591 LcdWriteCmd(0x4D);
592 LcdWriteCmd(0x43);
593 LcdRead();
594 LcdWriteCmd(0x4C);
595 LcdWriteCmd(0x42); // 送数据两个
596 LcdWriteData(uu);
597 }
598 */
599 /*********************************************************************************************************
600 * 函数名称: LcdDrawLine
601 *
602 * 功能描述: 在位置(bx1,by1)处和(bx2,by2)处画直线
603 * 使用时,必须满足条件: bx1 <= bx2
604 *
605 * 入口参数: bx1, 直线起点行坐标,取值范围为0~239
606 * by1, 直线起点列坐标,取值范围为0~159
607 * bx2, 直线终点行坐标,取值范围为0~239
608 * by2, 直线终点列坐标,取值范围为0~159
609 * Attr,图形显示的属性,"1"-画线; "0"-消线
610 *
611 * 出口参数: 无
612 *
613 * 全局变量: 无
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 11
614 *
615 * 调用模块: LcdWriteCmd(),
616 * LcdWriteData(),
617 * LcdRead()
618 *
619 * 作 者: Aoker
620 * 创建时间: 2004年12月7日
621 ********************************************************************************************************/
622 /*
623 void LcdDrawLine(BYTE bx1, BYTE by1, BYTE bx2, BYTE by2, bit Attr) //画线必须x1<=x2
624 {
625 BYTE tt=0, uu=0, i, y, t; //ap 修改 P7, 行字符个数
626 WORD l=0, x;
627 if(bx1>bx2)
628 return;
629
630 if(bx1 == bx2) //竖线
631 {
632 tt = (BYTE)(bx1%8);
633 x = bx1/8;
634 l = by1*ap + x;
635 x = (BYTE)(l&0xff);
636 y = (BYTE)((l>>8)&0xff);
637 LcdWriteCmd(0x4F); //"光标下移"
638 LcdWriteCmd(0x46); // 光标指针设置
639 LcdWriteData(x); // 光标地址16位
640 LcdWriteData(y);
641 LcdWriteCmd(0x43);
642 uu = LcdRead();
643 LcdWriteCmd(0x4E); //"光标上移"
644 LcdWriteCmd(0x43);
645 LcdRead();
646 for(i=by1; i<=by2; i++)
647 {
648 if(Attr)
649 uu |= 1<<(7-tt);
650 else
651 uu &= ~(1<<(7-tt));
652 LcdWriteCmd(0x4F); //"光标下移"
653 LcdWriteCmd(0x42); // 送数据两个
654 LcdWriteData(uu);
655
656 LcdWriteCmd(0x43);
657 uu = LcdRead();
658 LcdWriteCmd(0x4E); //"光标上移"
659 LcdWriteCmd(0x43);
660 LcdRead();
661 }
662 return;
663 }
664 else if(by1 == by2) //横线
665 {
666 t = bx1/8;
667 for(x=bx1; x<(t+1)*8; x++)
668 {
669 LcdDrawDot(x, by1, Attr);
670 }
671 l = by1*ap + t+1;
672 x = (BYTE)(l&0xff);
673 y = (BYTE)((l>>8)&0xff);
674
675 LcdWriteCmd(0x4C); // 右
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 12
676 LcdWriteCmd(0x46); // 光标指针设置
677 LcdWriteData(x); // 光标地址16位
678 LcdWriteData(y);
679 LcdWriteCmd(0x42); // 送数据两个
680 for(i=(t+1); i<(bx2-bx2%8)/8; i++)
681 {
682 if(Attr)
683 LcdWriteData(0xFF);
684 else
685 LcdWriteData(0x00);
686 }
687 for(x=bx2-bx2%8; x<=bx2; x++)
688 {
689 LcdDrawDot(x, by1, Attr);
690 }
691 return;
692 }
693 }
694 */
695
696 /*********************************************************************************************************
697 * 函数名称: DispStr
698 *
699 * 功能描述: 在位置(bSx, bSy)处显示一个字符
700 *
701 * 入口参数: bSx, 行坐标,取值范围为0~239
702 * bSy, 列坐标,取值范围为0~159
703 * Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
704 * ptr, 指向图形的字模数据
705 *
706 * 出口参数: 无
707 *
708 * 全局变量: 无
709 *
710 * 调用模块: LcdDraw(),
711 *
712 * 作 者: Aoker
713 * 创建时间: 2004年12月7日
714 ********************************************************************************************************/
715 void DispStr(BYTE bSx, BYTE bSy, bit Attr, BYTE *ptr)
716 {
717 1 BYTE i=0;
718 1 do
719 1 {
720 2 LcdDraw(bSx+i*8, bSy, 8, 16, Attr, ASCII[(*ptr++)-0x20]);
721 2 i++;
722 2 }while(*ptr != '\0');
723 1 }
724
725 /*********************************************************************************************************
726 * 函数名称: DispNum
727 *
728 * 功能描述: 在位置(bSx, bSy)处显示一个数字
729 *
730 * 入口参数: bSx, 行坐标,取值范围为0~239
731 * bSy, 列坐标,取值范围为0~159
732 * Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
733 * bNumber, 待显示的数字
734 *
735 * 出口参数: 无
736 *
737 * 全局变量: 无
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 13
738 *
739 * 调用模块: LcdDraw(),
740 *
741 * 作 者: Aoker
742 * 创建时间: 2004年12月7日
743 ********************************************************************************************************/
744 void DispNum(BYTE bSx, BYTE bSy, bit Attr, BYTE bNumber)
745 {
746 1 if( (bNumber<0) || (bNumber>9) ) return;
747 1 LcdDraw(bSx, bSy, 8, 16, Attr, ASCII[bNumber+0x10]);//0x10为数字0~9在ASCII码中的偏移地址
748 1 }
749
750
751 /*********************************************************************************************************
752 * 函数名称: ClearXByte
753 *
754 * 功能描述: 删除从位置(bSx, bSy)起的x个字节
755 *
756 * 入口参数: bSx, 行坐标,取值范围为0~239
757 * bSy, 列坐标,取值范围为0~159
758 *
759 * 出口参数: 无
760 *
761 * 全局变量: 无
762 *
763 * 调用模块: DispChar(),
764 *
765 * 作 者: Aoker
766 * 创建时间: 2004年12月7日
767 ********************************************************************************************************/
768 void ClearXByte(BYTE bSx, BYTE bSy, BYTE x)
769 {
770 1 BYTE i;
771 1 for(i=0; i<x; i++)
772 1 {
773 2 DispStr(bSx+i*8, bSy, 0, " ");
774 2 }
775 1 }
776
777
778 /*********************************************************************************************************
779 * 函数名称: KLine
780 *
781 * 功能描述: 画粗线
782 *
783 * 入口参数: bWidth,线的长度
784 *
785 * 出口参数: 无
786 *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -