📄 display.c
字号:
void putsizeimage(unsigned char XSIZE,unsigned char YSIZE,unsigned char code *s)
{ unsigned char k,lx,ly,a1,a2,y;
k=Lcd_CurrentY&0x7;
YSIZE+=k;
y=Lcd_CurrentY;
for(lx=0;lx<XSIZE;lx++,Lcd_CurrentX++)
for(Lcd_CurrentY=y,ly=k,a1=0;ly<YSIZE;s++)
{ unsigned char p;
a2=*s;
for(p=0;p<k;p++)
{ a2<<=1;
if((a1&0x80)==0x80)
a2++;
a1<<=1;
}
lcdpos();
p=YSIZE&0x7;
if(ly<8)
{ if(YSIZE<8)
{ Lcd_Mask=LeftMask[k]&RightMask[p];
a1=lcdrd();
a1&=(~Lcd_Mask);
a1|=(a2&Lcd_Mask);
lcdwd(a1);
ly=YSIZE;
Lcd_CurrentY+=YSIZE-k;
}
else
{ Lcd_Mask=LeftMask[k];
a1=lcdrd();
a1&=(~Lcd_Mask);
a1|=(a2&Lcd_Mask);
lcdwd(a1);
ly+=8-k;
Lcd_CurrentY+=8-k;
}
}
else if(ly>=YSIZE-p)
{ if(k>=p)
{ s--;
a1=*s;
a2=0;
for(p=0;p<k;p++)
{ a2<<=1;
if((a1&0x80)==0x80)
a2++;
a1<<=1;
}
p=YSIZE&0x7;
}
Lcd_Mask=RightMask[p];
a1=lcdrd();
a1&=(~Lcd_Mask);
a1|=(a2&Lcd_Mask);
lcdwd(a1);
ly+=p;
Lcd_CurrentY+=p;
}
else
{ lcdwd(a2);
ly+=8;
Lcd_CurrentY+=8;
}
a1=*s;
}
Lcd_CurrentY=y;
}
//显示汉字
void displaychinesechardot(unsigned int Index)
{ unsigned char code *s;
s=ChineseCharDot+Index*CHINESECHARDOTSIZE; //赋值汉字点阵首地址(数组名+ )
{ if(Lcd_CurrentX>LCD_RIGHT-CHINESECHARSIZE+1)
{ Lcd_CurrentX=LCD_LEFT;
Lcd_CurrentY+=CHINESECHARSIZE;
if(Lcd_CurrentY>LCD_BOTTOM-CHINESECHARSIZE+1)
Lcd_CurrentY=LCD_TOP;
}
putsizeimage(CHINESECHARSIZE,CHINESECHARSIZE,s);
}
}
//显示英文字符
void displayenglishchardot(unsigned int Index)
{ unsigned char code *s;
s=EnglishCharDot+Index*ENGLISHCHARDOTSIZE;
if(Lcd_CurrentX>LCD_RIGHT-ENGLISHCHARSIZE+1)
{ Lcd_CurrentX=LCD_LEFT;
Lcd_CurrentY+=CHINESECHARSIZE;
if(Lcd_CurrentY>LCD_BOTTOM-CHINESECHARSIZE+1)
Lcd_CurrentY=LCD_TOP;
}
putsizeimage(ENGLISHCHARSIZE,CHINESECHARSIZE,s);
}
//信息显示
void putchar(unsigned int uChar)
{ unsigned int i;
if(uChar<128)
for(i=0;i!=ENGLISHCHARNUMBER;i++)
{ if(uChar==EnglishCode[i])
{ displayenglishchardot(i);
break;
}
}
else
for(i=0;i!=CHINESECHARNUMBER;i++)
{ if(uChar==ChineseCode[i])
{ displaychinesechardot(i);
break;
}
}
}
//显示汉字或英文字符
void put_str(unsigned char code *s)
{ unsigned int i;
for(;*s!=0;s++)
{ i=*s;
if(*s>127)
{ s++;
i=i*256+*s;
}
if(i=='\n')
{ Lcd_CurrentX=LCD_LEFT;
if(Lcd_CurrentY>LCD_BOTTOM-CHINESECHARSIZE+1)
Lcd_CurrentY=LCD_TOP;
else
Lcd_CurrentY+=CHINESECHARSIZE;
}
putchar(i);
}
}
//显示汉字或英文字符
void put_str_xy(unsigned char x,unsigned char y,unsigned char code *s)
{ Lcd_CurrentX=x;
Lcd_CurrentY=y;
put_str(s);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -