不用手动慢慢找字库的程序+PROTEUS(MEGA128+LM4229),选自个人程序的一个功能。【恢复】
点击此处下载 ourdev_582505.rar(文件大小:299K) (原文件名:test.rar) 本贴被 517456 编辑过,最后修改时间:2009-01-12,02:36:56. 记号 点击此处下载 ourdev_583344.rar(文件大小:168K) (原文件名:x86.rar)
create源码请参考create.c
hash.exe和hzk.exe源码来自bin2h.c
第6行:char out_name="hash.h";更改此处hash.h为生成文件名,hash.exe为hash.h,hzk.exe为hzk.h
第34行:fputs("#include <avr/pgmspace.h>\nPROGMEM unsigned char hash_tab[]={",out_file);修改生成数组名,hash.exe 改成hash_tab ,hzk.exe 改成hzk_tab。
如果想把此思想应用于12864,请在create.c的80、81行间添加下变换程序。 顶一下.......要先下载来看看是什么样才知道怎么用.. 回8楼:理论上可以应用于所有的LCD,但是不同LCD取模方式不一样需要略做修改,以前应用于12864的LCD,现在略做修改应用于240128屏上面。12864取模是逆时针转90度,而240128直接取模,所以更方便点 原理很简单:利用HASH表查中文在字库中的位置(hash.h)再根据位置从hzk.h中提取字库。其实有个可执行文件create,专门提取字库的,利用它可以查找某文件中所有的中文,把中文加入到字库和HASH表中,并且调用hash.exe和hzk.exe把二进制转换成hash.h和hzk.h。注意在makefile中生成.o文件前我添加了一行命令:create main.c,利用它把main.c中的中文自动生成字库,免去了复杂界面时慢慢生成字库的痛苦。 能用在任何点陈的LCD上吗?
怎么用? mark 能否讲讲原理,谢谢. void putCh(unsigned char ch1, unsigned char ch2)
{
unsigned char i,j;
unsigned char x;
px--;
OSSemPend(OSSEM_SPI,0,&i); //等待spi就绪
fseek(fp_hz16,((ch1-0xa1)*94L + (ch2-0xa1))*32L,0);
fread(font_buf,32,fp_hz16);
for(i=0;i<2;i++)
{
SetY(py);
SetX(px);
for(j=0;j<16;j++)
{
x=font_buf;
SendLcdData(x); //py++; //SendLcdData include py++
if((py&0x3f)==0) SetY(py),SetX(px);
}
px++;py-=16;
}
OSSemPost(OSSEM_SPI);
px--;py+=16;
}
int putchar(uchar *s) //printf的输出接口函数
{
HZCode=0;
while(*s!=0)
{
if(*s<0xa1) putEn(*s);
else if(HZCode)
{
putCh(HZCode,*s);
HZCode=0;
}else HZCode=*s;
s++;
}
}
void init() //先打开字库文件
{
...
OSSemPend(OSSEM_SPI,0,&err);fp_hz16=fopen("hz16.bin");OSSemPost(OSSEM_SPI); //打开字库文件
printf("汉字库载入OK");
...
} 我直接把字库放到SD卡里面
既做mp3 又读取字库 一点都不慢 mark 一下 有空研究研究 怎么用的? 好贴。 做个记号 dddddddddddddddd mark 最近要搞个平面幻彩灯条,在并行的16根灯条上显示字和动画,不知道思想用得上不,希望有用,多谢! 谢谢~! 如此好帖,顶了 lz不愧是N人,佩服!电子很专业哦! MARK! 牛! 学习下 qianghan 生成的代码60多K,不实用啊 看看 MARK! mark~~ 这个怎么用啊 mark 不知道到底能不能实用? 谢谢。 正想学学hash算法谢谢楼主共享^_^ mark MARK ,谢谢 这是好东西!~ 回复【26楼】wangyj173
生成的代码60多k,不实用啊
-----------------------------------------------------------------------
HASH表是大了点,为什么要采用HASH的方式呢,直接重建索引不就得了! 牛贴! 我正在做lcd,下载下来试试, 马克 谢谢楼主! MARK MARK ,谢谢 为啥仿真跟T6963的对不起来,我用proteusLM4229,没有MD0.MD1:::::::::::::::::::::::::::: 学习一下....... 谢谢楼主......
页:
[1]