📄 lcddrive12864.lst
字号:
535 2 }
536 1 }
537 /*********************************************************************************************************
538 ** 函数名称: Display16X8Item
539 ** 功能描述: 在指定的行列绘一16X8点阵数组
540 ** 输 入: DotNot的bit0~3:在液晶上的反显起始列0~15,bit4~7:反显个数
541 ** 输 出:
542 ** 全局变量:
543 ** 调用模块:
544 **
545 ** 作 者: 刘宝贵
546 ** 日 期: 2005年12月16日
547 **-------------------------------------------------------------------------------------------------------
548 ** 修改人:
549 ** 日 期:
550 **-------------------------------------------------------------------------------------------------------
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 10
551 *********************************************************************************************************/
552 void Display16X8ItemWord(uint8 dlcdrow,uint8 item,uint8 DotNot)
553 {
554 1 uint8 i,j;
555 1 lcdinit();// //left and right show open//
556 1 j = (DotNot>>4) & 0x0F;
557 1 DotNot = DotNot & 0x0F;
558 1 for(i=0;i<16;i++)
559 1 {
560 2 if(mb[item][i]=='`')
561 2 {
562 3 continue;
563 3 }
564 2 if(i>DotNot && j>0)
565 2 {
566 3 Display16X8(dlcdrow,i*8, mb[item][i],1);
567 3 j--;
568 3 }
569 2 else
570 2 {
571 3 Display16X8(dlcdrow,i*8, mb[item][i],0);
572 3 }
573 2 }
574 1 }
575 /*********************************************************************************************************
576 ** 函数名称: void Display16X8ItemData(uint8 lcdrow,uint8 lcdline,uint8 item,uint8 DotNot,uint8 style);
577 ** 功能描述: DotNot bit0~7为1则对应位反显
578 ** 输 入: style:bit7为0显示前导0;bit0~3:显示数据的个数,bit4~6:小数点后起位位置。
579 ** 输 出:
580 ** 全局变量:
581 ** 调用模块:
582 **
583 ** 作 者: 刘宝贵
584 ** 日 期: 2005年1月26日
585 **-------------------------------------------------------------------------------------------------------
586 ** 修改人:
587 ** 日 期:
588 **-------------------------------------------------------------------------------------------------------
589 *********************************************************************************************************/
590 void Display16X8ItemData(uint8 lcdrow,uint8 lcdline,uint16 temp16,uint8 DotNot,uint8 style)
591 {
592 1 uint8 number;
593 1 bit dispzero;
594 1 number = style &0x0F; //取出显示数据的个数
595 1 dispzero = (bit)(style & 0x80); //取出是否显示前导0位。
596 1 style = (style >>4)&0x07; //取出小数点后起位位置
597 1 lcdinit(); //left and right show open
598 1 switch(style)
599 1 {
600 2 case 0://无小数点
601 2 {
602 3 Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
603 3 lcdline-=8;
604 3 DotNot = DotNot>>1;
605 3 if(number>1)
606 3 {
607 4 if(dispzero)//显示前导0
608 4 {
609 5 Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
610 5 }
611 4 else//不显示前导0
612 4 {
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 11
613 5 Display16X8(lcdrow, lcdline,(temp16>=10) ? (temp16/10)%10+0x30 : ' ',(bit)(DotNot&1) )
-;
614 5 }
615 4 DotNot = DotNot>>1;
616 4 lcdline-=8;
617 4 if(number>2)
618 4 {
619 5 if(dispzero)//显示前导0
620 5 {
621 6 Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
622 6 }
623 5 else//不显示前导0
624 5 {
625 6 Display16X8(lcdrow, lcdline,(temp16>=100) ? (temp16/100)%10+0x30 : ' ',(bit)(DotNo
-t&1) );
626 6 }
627 5 DotNot = DotNot>>1;
628 5 lcdline-=8;
629 5 if(number>3)
630 5 {
631 6 if(dispzero)//显示前导0
632 6 {
633 7 Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
634 7 }
635 6 else//不显示前导0
636 6 {
637 7 Display16X8(lcdrow, lcdline,(temp16>=1000) ? (temp16/1000)%10+0x30 : ' ',(bit)
-(DotNot&1) );
638 7 }
639 6 DotNot = DotNot>>1;
640 6 lcdline-=8;
641 6 if(number>4)
642 6 {
643 7 if(dispzero)//显示前导0
644 7 {
645 8 Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
646 8 }
647 7 else//不显示前导0
648 7 {
649 8 Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' '
-,(bit)(DotNot&1) );
650 8 }
651 7 }
652 6 }
653 5 }
654 4 }
655 3 }break;
656 2 case 1://小数点后1位
657 2 {
658 3 Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
659 3 lcdline-=8;
660 3 DotNot = DotNot>>1;
661 3 Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
662 3 DotNot = DotNot>>1;
663 3 lcdline-=8;
664 3 Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
665 3 DotNot = DotNot>>1;
666 3 lcdline-=8;
667 3 if(number>2)
668 3 {
669 4 if(dispzero)//显示前导0
670 4 {
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 12
671 5 Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
672 5 }
673 4 else//不显示前导0
674 4 {
675 5 Display16X8(lcdrow, lcdline,(temp16>=100) ? (temp16/100)%10+0x30 : ' ',(bit)(DotNot&1)
- );
676 5 }
677 4 DotNot = DotNot>>1;
678 4 lcdline-=8;
679 4 if(number>3)
680 4 {
681 5 if(dispzero)//显示前导0
682 5 {
683 6 Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
684 6 }
685 5 else//不显示前导0
686 5 {
687 6 Display16X8(lcdrow, lcdline,(temp16>=1000) ? (temp16/1000)%10+0x30 : ' ',(bit)(Dot
-Not&1) );
688 6 }
689 5 DotNot = DotNot>>1;
690 5 lcdline-=8;
691 5 if(number>4)
692 5 {
693 6 if(dispzero)//显示前导0
694 6 {
695 7 Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
696 7 }
697 6 else//不显示前导0
698 6 {
699 7 Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bi
-t)(DotNot&1) );
700 7 }
701 6 }
702 5 }
703 4 }
704 3 }break;
705 2 case 2://小数点后2位
706 2 {
707 3 Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
708 3 lcdline-=8;
709 3 DotNot = DotNot>>1;
710 3
711 3 Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
712 3 DotNot = DotNot>>1;
713 3 lcdline-=8;
714 3
715 3 Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
716 3 DotNot = DotNot>>1;
717 3 lcdline-=8;
718 3
719 3 Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
720 3 DotNot = DotNot>>1;
721 3 lcdline-=8;
722 3 if(number>3)
723 3 {
724 4 if(dispzero)//显示前导0
725 4 {
726 5 Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
727 5 }
728 4 else//不显示前导0
729 4 {
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 13
730 5 Display16X8(lcdrow, lcdline,(temp16>=1000) ? (temp16/1000)%10+0x30 : ' ',(bit)(DotNot&
-1) );
731 5 }
732 4 DotNot = DotNot>>1;
733 4 lcdline-=8;
734 4 if(number>4)
735 4 {
736 5 if(dispzero)//显示前导0
737 5 {
738 6 Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
739 6 }
740 5 else//不显示前导0
741 5 {
742 6 Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bit)(D
-otNot&1) );
743 6 }
744 5 }
745 4 }
746 3 }break;
747 2 case 3://小数点后3位
748 2 {
749 3 Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
750 3 lcdline-=8;
751 3 DotNot = DotNot>>1;
752 3
753 3 Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
754 3 DotNot = DotNot>>1;
755 3 lcdline-=8;
756 3
757 3 Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
758 3 DotNot = DotNot>>1;
759 3 lcdline-=8;
760 3
761 3 Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
762 3 DotNot = DotNot>>1;
763 3 lcdline-=8;
764 3
765 3 Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
766 3 DotNot = DotNot>>1;
767 3 lcdline-=8;
768 3
769 3 if(number>4)
770 3 {
771 4 if(dispzero)//显示前导0
772 4 {
773 5 Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
774 5 }
775 4 else//不显示前导0
776 4 {
777 5 Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bit)(DotNo
-t&1) );
778 5 }
779 4 }
780 3 }break;
781 2 }
782 1 }
783 /*********************************************************************************************************
784 ** 函数名称: void Display8X8ItemData(uint8 lcdrow,uint8 lcdline,uint8 item,uint8 DotNot,uint8 style);
785 ** 功能描述: DotNot bit0~7为1则对应位反显
786 ** 输 入: style:显示数据的个数.
787 ** 输 出:
788 ** 全局变量:
C51 COMPILER V7.06 LCDDRIVE12864 01/22/2007 09:50:02 PAGE 14
789 ** 调用模块:
790 **
791 ** 作 者: 刘宝贵
792 ** 日 期: 2006年4月7日
793 **-------------------------------------------------------------------------------------------------------
794 ** 修改人:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -