久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

發(fā)一個字庫生成器

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2012年09月07日   【字體:

  這個生成器適用于12232液晶。暫時功能不多。也就只有倒序輸出功能。輸出的是16×16的點(diǎn)陣字符,所以也能用在LED點(diǎn)陣上。

使用命令:
cc foo.c -o foo

  編譯。并且還需要漢字庫(HZK16),我這里就不提供下載了,畢竟BYET給咱的流量是有限的,不過這種USDOS的東西一搜一大把。全部代碼下載:http://www.zg4o1577.cn/f/ddcd2.rar

上代碼:

/****************************************** 
 * FILE disp.c
 * @ Ubuntu Linux GCC
 * Need HZK16
 * Write By 萬致遠(yuǎn)@rzy.co.cc
******************************************/ 

#include<stdio.h> 
#include <iconv.h>
#include <memory.h>
#include <string.h>
#include <stdlib.h>
FILE *fp; 
unsigned char vb;
//轉(zhuǎn)換成單片機(jī)的格式
void hanzi16(char *s) 
{ 

 char buffer[32]; 
 register i,j,k; 
 unsigned char x,y,z;
 unsigned char qh,wh; 
 unsigned long location; 
 unsigned int st_len;
 unsigned char outbuf[32];
 st_len=strlen(s);
 while(*s) 
 { 
 qh=*s-0xa0; 
 wh=*(s+1)-0xa0; 
 location=(94*(qh-1)+(wh-1))*32L; 
 fseek(fp,location,SEEK_SET); 
 fread(buffer,32,1,fp); 
 for(i=0;i<32;i++)
 {
	outbuf[i]=0x00;
 }
if(vb==1) printf("/******點(diǎn)陣*******\n");
 for(i=0;i<16;i++) 
	{
 for(j=0;j<2;j++) 
	{
 for(k=0;k<8;k++) 
	{
    	  if(((buffer[i*2+j]>>(7-k))&0x1)!=0) 
	  {
		x=8*j+k;
		y=i;
			//printf("X=%d\n",x);
			//printf("Y=%d\n",y);
		if(y>7)
		{
			x=x+16;
			//printf("Y[FIX]=%d\n",y);
			y=(y-8);
			
		}
			y=7-y;
			outbuf[x]=outbuf[x] | (0x80>>y);	
		if(vb==1) printf("1");
	  }
	  else
	  {
		if(vb==1) printf("0");
	  }
	}
	}
	if(vb==1) printf("\n");
	}
	if(vb==1) printf("*******點(diǎn)陣結(jié)束********/\n");
	printf("{");
	for(i=0;i<32;i++)
	{
		if(i!=31)
		{
		printf("0x%X,",outbuf[i]);
		}
		else
		{
		printf("0x%X}",outbuf[i]);
		}
	}
 s+=2;
	if(*s!='\0')
	{
		printf(",\n");
	}
	else
	{
		printf("\n};\n");
	}
 } 
} 


int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
{
  iconv_t cd;
  int rc;
  char **pin = &inbuf;
  char **pout = &outbuf;

  cd = iconv_open(to_charset,from_charset);
  if (cd==0)
    return -1;
  memset(outbuf,(size_t)0,(size_t)outlen);
  if (iconv(cd,pin,&inlen,pout,&outlen) == -1)
    return -1;
  iconv_close(cd);
  return 0;
}

int u2g(char *inbuf,int inlen,char *outbuf,int outlen)
{
 	return code_convert("utf-8","gb2312",inbuf,inlen,outbuf,outlen);
}

int main(int argc,char *argv[])  
{
	char* str=0;
	if(argv[1]==NULL)
	{
		printf("//請輸入字符串!\n");
		return;
	}
	if(strcmp(argv[1],"-help")==0)
	{
	printf("用法:%s <-help> <文字> <-v> > foo.c\n",argv[0]);
	printf("本軟件支持16*16的中文字符輸出,不支持英文。\n");
	printf("-v	控制是否在C程序中輸出點(diǎn)陣字\n");
	printf("-help	用于顯示本幫助信息\n");
	printf("本軟件運(yùn)行需要HZK16的支持.\n");
	printf("BUG反饋:http://www.rwzy.co.cc\n");
	printf("	dv.xw@qq.com\n");
	printf("萬致遠(yuǎn)		 2012.8.5\n");
	return;
	}
	vb=0;
 	if((fp=fopen("HZK16","rb"))==NULL) 
	{ 
	printf("//無法打開HZK16文件,請檢查!\n"); 
	return;
	} 
	printf("/*---------------------\n");
	printf("生成的以下字的字庫:%s\n",argv[1]);
	str=(char*)realloc(str,strlen(argv[1])+1);
	printf("字庫由萬致遠(yuǎn)HZK軟件建立。");
	if(argv[2]!=NULL)
	{		
		if(strcmp(argv[2],"-v")==0)
		{
		printf("使用點(diǎn)陣顯示模式\n");
		vb=1;
		}
	}
	printf("HZ就是您需要的漢字庫\n----------------*/\n");
	printf("unsigned char __code HZ[][32]={\n");//一個漢字32字節(jié)
	u2g(argv[1],strlen(argv[1])+1,str,strlen(argv[1])+1);//strlen(argv[1])+1
	hanzi16(str);//轉(zhuǎn)換格式
	fclose(fp); 
}
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久久av网站 | 视频羞羞 | 日韩三级电影一区二区 | 黄片毛片 | 特一级毛片 | 二区中文 | 久久精品无码一区二区三区 | 亚洲精品中文字幕av | 中文字幕av中文字幕 | 草草在线观看 | 中文字幕成人av | 国产精品久久久久久久久久三级 | 国产美女高潮 | 久久曰视频 | 国产成人影院 | www国产成人免费观看视频 | 国产精品视频导航 | 亚洲精品视频免费观看 | 国产福利资源 | 99热欧美 | 欧美一区二区三区四区视频 | 精品国产一区探花在线观看 | 日韩精品一区二区久久 | 日韩一及片 | 国产中文在线 | 久草免费电影 | 欧美a在线| 日韩av啪啪网站大全免费观看 | 国产一极毛片 | 国产免费a| 国产精品观看 | 台湾a级理论片在线观看 | 成人一区在线观看 | 羞羞的视频免费在线观看 | 中文字幕 在线观看 | 国产大片一区 | 亚洲一区二区三区四区五区午夜 | 亚洲天堂一区二区 | 日操操夜操操 | 永久精品| 91一区二区三区 |