⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 显示程序.h

📁 汉字库的实现 一.获取字库.exe 可以获得汉字库及英文字库 二.查看字库.exe 可以查看汉字库及英文字库的点阵显示效果 三.显示程序.h 获取字库点阵及显示的源代码 四.其它资料 相关的字
💻 H
字号:
/**********************************************************************

 函 数 名:
 功    能:输出16点阵汉字
 说    明:
 调    用:
 入口参数:
		x         X轴坐标
		y         Y轴坐标
		z         字符间空格数
		color     输出颜色,1表示亮,0表示不亮
		row       X轴放大倍数
		col       Y轴放大倍数
		s         输出汉字
 返 回 值:int
 设    计:劳                   日    期:
 修    改:                     日    期: 
***********************************************************************/
///*
void putpixel(int x,int y,int color, char (* s1)[max_x/8])
{
	unsigned int i,j;
	if(x>=0&&y>=0)
	{
		i=x/8;
		j=x%8;
		if(color==0)
		s1[y][i] &= (~(0x80>>j));
		//s1[y][k] &= (~(0x1<<(7+i*8-x)));
		else if(color==1)
		s1[y][i] |= (0x80>>j);
		//s1[y][k] |= (0x1<<(7+i*8-x));
		else if(color==2)
		s1[y][i] ^= (0x80>>j);//使该位翻转
	}
}
//*/

/**********************************************************************

 函 数 名:
 功    能:输出16点阵汉字
 说    明:
 调    用:
 入口参数:
		x         X轴坐标
		y         Y轴坐标
		z         0表示当1时亮0时暗,1表示当1时暗0亮
		color     输出颜色
		row       X轴放大倍数
		col       Y轴放大倍数
		s         输出汉字
 返 回 值:int
 设    计:劳                   日    期:
 修    改:                     日    期: 
***********************************************************************/
///*
void chinese16(int x,int y,int z,int color,int row,int col,char *s , char (*s1)[max_x/8])
{
    char buffer[32];    //buffer用来存储一个汉字
    U8 m,n,i,j,k;
    unsigned char qh,wh;
    unsigned int offset;
        qh=*(s)-0xa0;    //汉字区码
        wh=*(s+1)-0xa0; //汉字位码
        offset=(94*(qh-1)+(wh-1))*32;    //计算该汉字在字库中偏移量
        FlashRead(ROM_CHINESE+offset,(U16 *)buffer,32);//取出汉字72字节的点阵字模存入buffer中(一个汉字)
        for(i=0;i<16;i++)    //将72位字节的点阵按位在屏幕上打印出来(1:打印,0:不打印),显示汉字
          for(n=0;n<row;n++)
            for(j=0;j<2;j++)
              for(k=0;k<8;k++)
                for(m=0;m<col;m++)
                  if (((buffer[i*2+j]>>(7-k))&0x1)!=NULL)
                      //putpixel(x+8*j*col+k*col+m,y+i*row+n,color,s1);
                      putpixel(x+8*j*col+k*col+m,y+i*row+n,color,s1);
		  else
		      putpixel(x+8*j*col+k*col+m,y+i*row+n,!color,s1);
}
//*/
/**********************************************************************

 函 数 名:
 功    能:输出8*16点阵asc码
 说    明:
 调    用:
 入口参数:
		x         X轴坐标
		y         Y轴坐标
		z         0表示当1时亮0时暗,1表示当1时暗0亮
		color     输出颜色
		row       X轴放大倍数
		col       Y轴放大倍数
		s         输出汉字
 返 回 值:int
 设    计:劳                   日    期:
 修    改:                     日    期: 
***********************************************************************/
///*
void put_asc(int x,int y,int z,int color,int row,int col,char s, char (*s1)[max_x/8])
{
    char buffer[16];    //buffer用来存储一个asc码
    U8 m,n,i,k;
    unsigned int offset;
        offset=s * 16;    //计算该asc码在字库中偏移量
        FlashRead(ROM_ASC+offset,(U16 *)buffer,16);//取出汉字asc码16字节的点阵字模存入buffer中
        for(i=0;i<16;i++)    //将16字节的点阵按位在屏幕上打印出来(1:打印,0:不打印),显示asc
          for(n=0;n<row;n++)
              for(k=0;k<8;k++)
                for(m=0;m<col;m++)
                  if (((buffer[i]>>(7-k))&0x1)!=NULL)
                      //putpixel(x+k*col+m,y+i*row+n,color,s1);
                      putpixel(x+k*col+m,y+i*row+n,color,s1);
                  else
		      putpixel(x+k*col+m,y+i*row+n,!color,s1);
	

}
//*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -