|
本帖最后由 芙蓉焊料 于 2024-9-2 13:54 編輯
弄了幾天也沒能顯示出16x16的英文字符,有示范的程序?qū)W習(xí)嗎?扒拉了一段程序改了好久也沒弄好,幫忙看看,謝謝!
/*****************************************************************************
函數(shù)說明:顯示單個字符 x,y顯示坐標(biāo) num要顯示的字符 fc 字的顏色
入口數(shù)據(jù): bc 字的背景色 sizey 字號 mode: 0非疊加模式 1疊加模式
******************************************************************************/
void LCD_ShowChar(u16 x,u16 y,u8 num,u16 fc,u16 bc,u8 sizey,u8 mode)
{
u8 temp,sizex,t,m=0;
u16 i,TypefaceNum; //一個字符所占字節(jié)大小
u16 x0=x;
sizex=sizey/2;
TypefaceNum=(sizex/8+((sizex%8)?1:0))*sizey;
num=num-' '; //得到偏移后的值
Lcd_SetRegion(x,y,x+sizey-1,y+sizey-1); //設(shè)置光標(biāo)位置
for(i=0;i<16;i++)
{
// if(sizey==12)temp=ascii_1206[num]; //調(diào)用6x12字體
else if(sizey==16)temp=asc2_1608[num]; //調(diào)用8x16字體
//else if(sizey==24)temp=ascii_2412[num]; //調(diào)用12x24字體
// else if(sizey==32)temp=ascii_3216[num]; //調(diào)用16x32字體
else return;
for(t=0;t<8;t++)
{
if(!mode)//非疊加模式
{
if(temp&(0x01<<t))Lcd_WriteData_16(fc);
else Lcd_WriteData_16(bc);
m++;
if(m%sizex==0)
{
m=0;
break;
}
}
else//疊加模式
{
if(temp&(0x01<<t))LCD_DrawPoint(x,y,fc);//畫一個點(diǎn)
x++;
if((x-x0)==sizex)
{
x=x0;
y++;
break;
}
}
}
}
}
xs3.JPG (70.44 KB, 下載次數(shù): 7)
下載附件
2024-9-2 13:53 上傳
xs.JPG (36.11 KB, 下載次數(shù): 5)
下載附件
2024-9-2 13:53 上傳
xs2.JPG (145.39 KB, 下載次數(shù): 6)
下載附件
2024-9-2 13:53 上傳
|
|