区分显示LCD汉字字模库中的中文与英文

 #ifndef GUI_H
 #define GUI_H
 
void LCD_Bytes(unsigned char* chs,int x_LCD,int y_LCD,int color)
{
	int i,j,x=x_LCD,y=y_LCD;
	int k=0;
	pCH pBytes = &CharLib[0];

	for(k=0; k<sizeof(CharLib)/sizeof(CharLib[0]); k++)	
	{
		if((chs[0] == pBytes->index[0]) && (chs[1] == pBytes->index[1]))
			{break;}
		else
			{pBytes++;}
	}
	for (i=0;i<32;i++)//画列 
    {
        if (i%2==0) {x=x_LCD;y++;}   //每行两字节,16X16点阵
        for (j=7;j>=0;j--)//画行
        {
            if ((pBytes->data[i])&(1<<j))
            {
                draw_point(x,y,color);
            }		//由高到低,为1则输出'O',反之输出'-';
            else
                {;}
            x++;
        }
    }
}

void LCD_Chars( char ASCII, int Xpos, int Ypos, int charColor)
{
	int i, j;
    unsigned char* buffer, tmp_char;
    GetASCIICode(&buffer,ASCII);  /* 取字模数据 */
    for( i=15; i>=0; i--)
    {
        tmp_char = buffer[i];
        for( j=7; j>=0; j-- )
        {
            if (buffer[i]&(1<<j))
            {
                draw_point((Xpos + 7 - j), (Ypos + i), charColor);
            }
            else
            {
                ;
            }
        }
    }
}
void LCD_String(char* str,int x,int y)
{
    int i = 0;
    unsigned char* s= (unsigned char*)str;
    
    for(i=0; s[i] != '\0';)
    {
    	if(s[i] > 128)//是汉字 
    	{
	    	LCD_Bytes(&s[i],x,y,Red);		//在屏幕上显示这个汉字
	    	x=x+16;
	    	i=i+2;
	    }
	    else
		{
			LCD_Chars(s[i],x,y,Red);
			x=x+8;
			i++;
		}        
    }
}

void Draw_line(int x1,int y1,int x2,int y2, int color)
{
	int i=0;
	int start=0, end=0;
	float k=0;
	
	if(x1 == x2)
	{
		start = (y1<y2)?y1:y2;
		end   = (y1>y2)?y1:y2;
		
		for(i=start; i<=end; i++)
		{
			draw_point(x1,i,color);
		}
		
	}
	else if(y1 == y2)
	{
		start = (x1<x2)?x1:x2;
		end   = (x1>x2)?x1:x2;
		
		for(i=start; i<=end; i++)
		{
			draw_point(i,y1,color);
		}
	}
	else
	{
		if(x1>x2)
		{
			start = x2;	x2 = x1; x1 = start;
			start = y2; y2 = y1; y1 = start;
		}
		
		k = ((float)y2-y1)/(x2-x1);	//+-
		for(i=x1;i<=x2;i++)
		{
			draw_point(i,y1+(int)(k*(i-x1)),color);
		}
	}
	
}

#endif


 

1。界面采用新的字体,不会再有那种难看的黑色粗体字,比以前的要漂亮多了。 2。加入全面的提示帮助,尽量减少普通用户的各种疑惑。 3。修正生成文件的扩展名的一些BUG,不会总是加上FON的扩展名了。 4。修正生成字模数据的一些格式BUG,现在生成的C51格式字模数据基本上可以直接粘贴到源程序中使用而不需要修改了 5。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式 6。最重要的更新:全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生成窗口选项信息均可保存,下一次打开窗口时不用重新设置。 7。修正了新建图象时会自动跳到图形模式的BUG 8。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。 9。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。 10。修正了取模说明的一些错误,并改动了格式。 11。现在当用户选择10进制输出时,会自动去掉生成字模数据前的“0x",或后面的“H”,选择16进制时则会自动加上。 12。对各个窗体重新设计以全面适应最大化的需要,如果您觉得当前窗口不够大,可以最大化使用。 13。增加生成英文点阵字库功能,可自动生成ASCII码从0-127的任意点阵字库,使用方法同生成国标点阵字库功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值