📄 lcddev_ra8806.lst
字号:
512 1 LCD_DataWrite(0x00);
513 1
514 1
515 1 LCD_GotoXY(0,0);
516 1 LCD_CmdWrite(MISC);
517 1 LCD_DataWrite(XCK_FREQUENCY);
518 1
519 1 LCD_CmdWrite(ITCR);
520 1 LCD_DataWrite(IDLE_TIME);
521 1
522 1 }
523 void Lcd_DispText(unsigned char X1,
524 unsigned char Y1,
525 unsigned char *pTextStr,
526 unsigned char Textlen)
527 {
528 1 INT8U i;
529 1 Access_Page1();
530 1 Only_Show_Page1();
531 1 LCD_Text();
532 1
533 1 LCD_GotoXY( X1, Y1);
534 1 LCD_CmdWrite(0xB0);
535 1 for(i=0; i<Textlen; i++)
536 1 LCD_DataWrite(pTextStr[i]);
537 1 }
538
539 void Lcd_Picture(unsigned char X1,
540 unsigned char Y1,
541 unsigned char *pDispStr,
542 unsigned int DispLenX,
543 unsigned int DispLenY)
544 { unsigned int i,j;
545 1 if(X1 > 39) return;
546 1 if(Y1 > 239) return;
547 1 //LCD_Graphic();
548 1 //LCD_CmdWrite(WLCR); //[00H] , Default --> 0x00
549 1 //LCD_DataWrite(0x24);
550 1 LCD_GotoXY(0,0);
551 1 for(j=0; j<DispLenY; j++)
C51 COMPILER V7.09 LCDDEV_RA8806 02/09/2009 16:04:54 PAGE 10
552 1 {
553 2 LCD_GotoXY(X1,Y1 + j);
554 2 LCD_StringWrite(&pDispStr[j*(DispLenX/8) + i],DispLenX/8,1);
555 2 }
556 1 }
557 void Lcd_RevsePicture(unsigned char X1,
558 unsigned char Y1,
559 unsigned char *pDispStr,
560 unsigned int DispLenX,
561 unsigned int DispLenY)
562 { unsigned char i,j;
563 1 if(X1 > 39) return;
564 1 if(Y1 > 239) return;
565 1 //LCD_CmdWrite(WLCR); //[00H] , Default --> 0x00
566 1 //LCD_DataWrite(0x24);
567 1 LCD_GotoXY(0,0);
568 1 for(j=0; j<DispLenY; j++)
569 1 {
570 2 LCD_GotoXY(X1,Y1 + j);
571 2 LCD_StringWrite(&pDispStr[j*(DispLenX/8) + i],DispLenX/8,0);
572 2 }
573 1 }
574
575 /******************************************************************************************************
576 **
577 ** 16x32或者是32x32操作函数驱动
578 **
579 *******************************************************************************************************/
580 void Lcd_Hz32x32(INT16U UniCode,INT8U X0,INT8U Y0, INT8U DispMode)
581 {
582 1 INT16U CodeID;
583 1 INT8U j;
584 1 if(X0 > 39) return;
585 1 if(Y0 > 239) return;
586 1 //==================================================== 在字库里搜索汉字
587 1 for(CodeID=0; CodeID < hzNum; CodeID++)
588 1 {
589 2 //----------------------------------------------- 找到 指定汉字的 Index 后, 跳出循环
590 2 if ( (hzIndex[2*CodeID] == UniCode/256) && (hzIndex[2*CodeID+1] == UniCode%256) )
591 2 break;
592 2 else if(CodeID == (hzNum-1)) //未检索到的汉字,显示个"##"提示吧
593 2 {
594 3 //GUI_DispCharAt('#',x0,y0);
595 3 //GUI_DispCharAt('#',x0+Char_XSIZE,y0);
596 3 return;
597 3 }
598 2 }
599 1 //==================================================== 根据搜索到汉字代码显示汉字
600 1 for(j=0; j<32; j++)
601 1 {
602 2 LCD_GotoXY(X0, Y0 + j);
603 2 LCD_StringWrite( &hzdot[CodeID*4*32+j*4], 4, DispMode);
604 2 }
605 1 }
606 ///*
607 void Lcd_Char16x32(INT8U UniCode,INT8U X0,INT8U Y0, INT8U DispMode)
608 {
609 1 INT16U CodeID;
610 1 INT8U j;
611 1 if(X0 > 39) return;
612 1 if(Y0 > 239) return;
613 1
C51 COMPILER V7.09 LCDDEV_RA8806 02/09/2009 16:04:54 PAGE 11
614 1 //==================================================== 在字库里搜索汉字
615 1 for(CodeID=0; CodeID < charNum; CodeID++)
616 1 {
617 2 //----------------------------------------------- 找到指定汉字的 Index 后, 跳出循环
618 2 if (charIndex[CodeID] == UniCode) break;
619 2 else if(CodeID == (charNum-1)) //未检索到的汉字,显示个"##"提示吧
620 2 {
621 3 //GUI_DispCharAt('#',x0,y0);
622 3 //GUI_DispCharAt('#',x0+Char_XSIZE,y0);
623 3 return;
624 3 }
625 2 }
626 1
627 1 //==================================================== 根据搜索到字符代码显示字符
628 1 for(j=0; j<32; j++)
629 1 {
630 2 LCD_GotoXY(X0, Y0 + j);
631 2 LCD_StringWrite( &chardot[CodeID*2*32+j*2], 4, DispMode);
632 2 }
633 1 }
634 /*******************************************************************************************************
635 ** 名 称: void Lcd_Graphic_Str32x32(INT8U *HzCode, INT8U X0, INT8U Y0, INT8U DispMode)
636 ** 功 能:显示48x48点阵字符串数据
637 ** 入口参数:HzCode 字符串首地址
638 ** X0 显示字符串X轴坐标
639 ** Y0 显示字符串Y轴坐标
640 ** DispMode 显示模式设置
641 ** 出口参数:无
642 **----------------------------------------------------------------------------------------------------
643 ** 作 者 : 严 俊 生
644 ** 日 期 : 2009-01-26
645 *******************************************************************************************************/
646 void Lcd_Graphic_Str32x32(INT8U *HzCode, INT8U X0, INT8U Y0, INT8U DispMode)
647 {
648 1 INT8U i = 0;
649 1 while(HzCode[i] != '\0')
650 1 {
651 2 if(HzCode[i] > 0x80)
652 2 {
653 3 Lcd_Hz32x32(HzCode[i]*256+HzCode[i+1],X0 + i*2, Y0, DispMode);
654 3 i++;
655 3 i++;
656 3 }
657 2 else
658 2 {
659 3 Lcd_Char16x32(HzCode[i],X0 + i*2, Y0, DispMode);
660 3 i++;
661 3 }
662 2 }
663 1 }
664 /******************************************************************************************************
665 **
666 ** 24x48或者是48x48操作函数驱动
667 **
668 *******************************************************************************************************/
669 void Lcd_Hz48x48(INT16U UniCode,INT8U X0,INT8U Y0, INT8U DispMode)
670 {
671 1 INT16U CodeID;
672 1 INT8U j;
673 1 if(X0 > 39) return;
674 1 if(Y0 > 239) return;
675 1 //==================================================== 在字库里搜索汉字
C51 COMPILER V7.09 LCDDEV_RA8806 02/09/2009 16:04:54 PAGE 12
676 1 for(CodeID=0; CodeID < hzNum48; CodeID++)
677 1 {
678 2 //----------------------------------------------- 找到 指定汉字的 Index 后, 跳出循环
679 2 if ( (hzIndex48[2*CodeID] == UniCode/256) && (hzIndex48[2*CodeID+1] == UniCode%256) )
680 2 break;
681 2 else if(CodeID == (hzNum48-1)) //未检索到的汉字,显示个"##"提示吧
682 2 {
683 3 //GUI_DispCharAt('#',x0,y0);
684 3 //GUI_DispCharAt('#',x0+Char_XSIZE,y0);
685 3 return;
686 3 }
687 2 }
688 1 //==================================================== 根据搜索到汉字代码显示汉字
689 1 for(j=0; j<48; j++)
690 1 {
691 2 LCD_GotoXY(X0, Y0 + j);
692 2 LCD_StringWrite( &hzdot48[CodeID*6*48+j*6], 6, DispMode);
693 2 }
694 1 }
695 ///*
696 void Lcd_Char24x48(INT8U UniCode,INT8U X0,INT8U Y0, INT8U DispMode)
697 {
698 1 INT16U CodeID;
699 1 INT8U j;
700 1 if(X0 > 39) return;
701 1 if(Y0 > 239) return;
702 1
703 1 //==================================================== 在字库里搜索汉字
704 1 for(CodeID=0; CodeID < charNum48; CodeID++)
705 1 {
706 2 //----------------------------------------------- 找到 指定汉字的 Index 后, 跳出循环
707 2 if (charIndex48[CodeID] == UniCode) break;
708 2 else if(CodeID == (charNum48-1)) //未检索到的汉字,显示个"##"提示吧
709 2 {
710 3 //GUI_DispCharAt('#',x0,y0);
711 3 //GUI_DispCharAt('#',x0+Char_XSIZE,y0);
712 3 return;
713 3 }
714 2 }
715 1
716 1 //==================================================== 根据搜索到字符代码显示字符
717 1 for(j=0; j<48; j++)
718 1 {
719 2 LCD_GotoXY(X0, Y0 + j);
720 2 LCD_StringWrite( &chardot48[CodeID*3*48+j*3], 6, DispMode);
721 2 }
722 1 }
723 /*******************************************************************************************************
724 ** 名 称: void Lcd_Graphic_Str48x48(INT8U *HzCode, INT8U X0, INT8U Y0, INT8U DispMode)
725 ** 功 能:显示48x48点阵字符串数据
726 ** 入口参数:HzCode 字符串首地址
727 ** X0 显示字符串X轴坐标
728 ** Y0 显示字符串Y轴坐标
729 ** DispMode 显示模式设置
730 ** 出口参数:无
731 **----------------------------------------------------------------------------------------------------
732 ** 作 者 : 严 俊 生
733 ** 日 期 : 2009-01-26
734 *******************************************************************************************************/
735 void Lcd_Graphic_Str48x48(INT8U *HzCode, INT8U X0, INT8U Y0, INT8U DispMode)
736 {
737 1 INT8U i = 0;
C51 COMPILER V7.09 LCDDEV_RA8806 02/09/2009 16:04:54 PAGE 13
738 1 while(HzCode[i] != '\0')
739 1 {
740 2 if(HzCode[i] > 0x80)
741 2 {
742 3 Lcd_Hz48x48(HzCode[i]*256+HzCode[i+1],X0 + i*3, Y0, DispMode);
743 3 i++;
744 3 i++;
745 3 }
746 2 else
747 2 {
748 3 Lcd_Char24x48(HzCode[i],X0 + i*3, Y0, DispMode);
749 3 i++;
750 3 }
751 2 }
752 1 }
753 // */
754
755 /*------------------------------- End -----------------------------*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2435 ----
CONSTANT SIZE = 24580 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 101
IDATA SIZE = ---- ----
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 + -