?? 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 + -