⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c51图形lcd显示函数程序.txt

📁 图形LCD显示函数程序,很实用的c51程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:

void LcdHgoto(char,char);/*定位汉字显示坐标
void LcdHgoto(char row, char column)
{
    lcd_hrow=row;
    lcd_hcolumn=column;
    lcd_ascii=column;
}
void LcdChar(char); /* Photo type of routine */
void LcdChar(char c)
{ 
    data unsigned char loop;
    lcd_x=(lcd_column-1)*6;
    LcdCmd(0xb8|((lcd_row-1)&0x07)); /* X Page (0-7), 0xb8 to 0xbf */
    for (loop=0;loop<6;loop++)
    {
         LcdCmd(0x40|((lcd_x+loop)&0x3f)); /* Y Line (0-63), 0x40 to 0x7f */
         if ((lcd_x+loop)>63)
        {
             if (lcd_color)
                  LcdData2(Char_Bit[c-0x20][loop]);
              else
                  LcdData2(Char_Bit[c-0x20][loop]^0xff);
        }
        else
        {
             if (lcd_color)
                  LcdData1(Char_Bit[c-0x20][loop]);
              else
                  LcdData1(Char_Bit[c-0x20][loop]^0xff);
        }
    }
    lcd_column++;
    if (lcd_column>21)
    {
         lcd_column=1;
         lcd_row++;
         if (lcd_row>8)
        lcd_column=1;
}
}

void LcdHchar(char); /* 显示汉字字符 */
void LcdHChar(char c)
{ 
    data unsigned char loop1,loop2;
    loop2=0;
    lcd_x=(lcd_hcolumn-1)*16;
    LcdCmd(0xb8|(((lcd_hrow-1)*2)&0x07)); /* X Page (0-7), 0xb8 to 0xbf */
    for (loop1=0;loop1<16;loop1++)
    {
         LcdCmd(0x40|((lcd_x+loop1)&0x3f)); /* Y Line (0-63), 0x40 to 0x7f */
         if ((lcd_x+loop1)>63)
        {
             if (lcd_color)
                 LcdData2(Hchar_Bit[c][loop1]);
              else
                  LcdData2(Hchar_Bit[c][loop1]^0xff);
        }
        else
        {
             if (lcd_color)
                  LcdData1(Hchar_Bit[c][loop1]);
              else
                  LcdData1(Hchar_Bit[c][loop1]^0xff);
        }
    }

    LcdCmd(0xb8|(((lcd_hrow-1)*2+1)&0x07)); /* X Page (0-7), 0xb8 to 0xbf */
    for (;loop1<32;loop1++)
    {
         LcdCmd(0x40|((lcd_x+loop2)&0x3f)); /* Y Line (0-63), 0x40 to 0x7f */
         if ((lcd_x+loop2)>63)
         {
             if (lcd_color)
                  LcdData2(Hchar_Bit[c][loop1]);
             else
                  LcdData2(Hchar_Bit[c][loop1]^0xff);
           }
          else
         { 
            if (lcd_color)
                LcdData1(Hchar_Bit[c][loop1]);
            else
                LcdData1(Hchar_Bit[c][loop1]^0xff);
           }
    loop2++;
    }

    lcd_hcolumn++;
    if (lcd_hcolumn>8)
    { 
        lcd_column=1;
        lcd_hrow++;
        if (lcd_hrow>4)lcd_hcolumn=1;
    }
}

void LcdStr(char *); /* 显示ASCII码字符串*/
void LcdStr(char *c)
{ 
    data unsigned char d=0;
    while (c[d]!=0)
    {
         WDT^=1;
         LcdChar(c[d++]);
    }
}


void Lcd_Ascii(char ); /* 显示ASCII码字符*/
void Lcd_Ascii(char c)
{ 
    unsigned char loop;
    unsigned char tempdata;
    unsigned char j;
    j=0;
    lcd_x=(lcd_ascii-1)*8;
    LcdCmd(0xb8|(((lcd_hrow-1)*2)&0x07)); /* X Page (0-7), 0xb8 to 0xbf */
    for (loop=0;loop<8;loop++)
    {
         LcdCmd(0x40|((lcd_x+loop)&0x3f)); /* Y Line (0-63), 0x40 to 0x7f */
         if ((lcd_x+loop)>63)
        { 
            if (lcd_color)
            {
                if(loop==0 || loop==7)
                    LcdData2(0x00);
                else
                {
                    tempdata=(Char_Bit[c-0x20][j++] << 4) & 0xf0;
                    LcdData2(tempdata);
                }
            }
            else
            {
                if(loop==0 || loop==7)                 
                     LcdData2(0x00);
                else
                {
                     tempdata=(Char_Bit[c-0x20][j++] << 4) & 0xf0;
                     LcdData2(tempdata);
                }
            }
        }
        else
        { 
            if (lcd_color)
            {
                if(loop==0 || loop==7)
                    LcdData1(0x00);
                else
                { 
                    tempdata=(Char_Bit[c-0x20][j++] << 4) & 0xf0;
                    LcdData1(tempdata);
                }
            }
            else
           {
                if(loop==0 || loop==7)
                    LcdData1(0x00);
                else
                { 
                    tempdata=(Char_Bit[c-0x20][j++] << 4) & 0xf0;
                    LcdData1(tempdata);
                }
            }
        }
        LcdCmd(0xb8|(((lcd_hrow-1)*2+1)&0x07)); /* X Page (0-7), 0xb8 to 0xbf */
        j=0;
        for (loop=0;loop<8;loop++)
        {
             LcdCmd(0x40|((lcd_x+loop)&0x3f)); /* Y Line (0-63), 0x40 to 0x7f */
             if ((lcd_x+loop)>63)
            {
                 if (lcd_color)
                {
                      if(loop==0 || loop==7)
                        LcdData2(0x00);
                     else
                    {
                         tempdata=(Char_Bit[c-0x20][j++] >> 4) & 0x0f;
                          LcdData2(tempdata);
                    }
                }
                else
                {
                    if(loop==0 || loop==7)
                        LcdData2(0x00);
                    else
                    {
                        tempdata=(Char_Bit[c-0x20][j++] >> 4) & 0x0f;
                        LcdData2(tempdata);
                    }
                }
            }
            else
           {
                 if (lcd_color)
                {
                      if(loop==0 || loop==7)
                        LcdData1(0x00);
                     else
                    {
                        tempdata=(Char_Bit[c-0x20][j++] >> 4) & 0x0f;
                        LcdData1(tempdata);
                    }
                }
                else
                {
                    if(loop==0 || loop==7)
                        LcdData1(0x00);
                    else
                    {
                        tempdata=(Char_Bit[c-0x20][j++] >> 4) & 0x0f;
                        LcdData1(tempdata);
                    }
                }
            }
        }

        lcd_ascii++;
        if (lcd_ascii>16)
        {
             lcd_ascii=1;
             lcd_hrow++;
             if (lcd_hrow>4)lcd_hrow=1;
             lcd_ascii=1;
        }
}
}

void LcdAsciistr(char *); /* Photo type of routine */
void LcdAsciistr(char *c)
{ 
    data unsigned char d=0;
    while (c[d]!=0)
    { 
        WDT^=1;
        Lcd_Ascii(c[d++]);
    }
}

void LcdHex2(char); /* Photo type of routine */
void LcdHex2(char h)
{ 
    LcdChar(Hex_table[((h&0xf0)>>4)&0x0f]);
    LcdChar(Hex_table[h&0x0f]);
}
void LcdDec2(char); /* Photo type of routine */
void LcdDec2(char i)
{ 
    data unsigned char d;
    d=i/10;
    LcdChar(d+0x30);
    i=i-(d*10);
    d=i/1;
    LcdChar(d+0x30);
}
void LcdDec3(int); /* Photo type of routine */
void LcdDec3(int i)
{ 
    data unsigned char d;
    d=(i/100);
    LcdChar(d+0x30);
    i=i-(d*100);
    d=i/10;
    LcdChar(d+0x30);
    i=i-(d*10);
    d=i/1;
    LcdChar(d+0x30);
}
void Dec2(char); /* Photo type of routine */
void Dec2(char i)
{
    TranDec[0]=Hex_table[((i&0xf0)>>4)&0x0f];
    TranDec[1]=Hex_table[i&0x0f];
    TranDec[2]="\0";
}
void Dec3(int); /* Photo type of routine */
void Dec3(int i)
{ 
    data unsigned char d;
    d=(i/100);
    TranDec[0]=d+0x30;
    i=i-(d*100);
    d=i/10;
    TranDec[1]=d+0x30;
    i=i-(d*10);
    d=i/1;
    TranDec[2]=d+0x30;
    TranDec[3]="\0";
}
char ToDec(unsigned char);
char ToDec(unsigned char time)
{
    data unsigned char temp;
    temp=(time>>4 & 0x0f)*10;
    temp=temp+(time & 0x0f);
    return temp;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -