📄 c51图形lcd显示函数程序.txt
字号:
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 + -