发表于:2009/12/5 10:48:12
#0楼
要做显示设备的朋友肯定会遇到显示汉字、英文等字库的麻烦。专用硬件字库芯片会提高开发的成本并且通常要显示的汉子或者字母也只有为数不多的几个显得很浪费。
好吧,大家来看看这个东西。它能自动生成汉字、英文点阵数据(C51格式、汇编格式可选)比较强大。将生成的点阵数据拷贝到程序中就可以控制在屏幕指定的位置显示输入的汉字。字体、字号可调。
来看一段程序
将“国家”显示在(2,0)处,设置TFT3224-5.7为X方向地址自动加一。因此,在每次设置XY地址后,可以连续写两个字节。详细程序如下所示。
#include <reg51.h>
#include <absacc.h>
#define X_ADDR XBYTE[0x8000]
#define Y_ADDR XBYTE[0x8001]
#define CMD XBYTE[0x8002]
#define DAT XBYTE[0x8003]
/*
#define X_ADDR XBYTE[0x0000]
#define Y_ADDR XBYTE[0x0100]
#define CMD XBYTE[0x0200]
#define DAT XBYTE[0x0300]
*/
main()
{
unsigned int i;
unsigned char cnt,x,y,z;
unsigned char code zk_0[32] = {
/*-- 文字: 国 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x7F,0xFC,0x40,0x04,0x5F,0xF4,0x41,0x04,0x41,0x04,0x41,0x04,0x4F,0xE4,
0x41,0x44,0x41,0x24,0x41,0x24,0x5F,0xF4,0x40,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04
};
unsigned char code zk_1[32] = {
/*-- 文字: 家 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x02,0x00,0x01,0x00,0x3F,0xFE,0x40,0x04,0x5F,0xE8,0x01,0x00,0x02,0x00,0x0F,0x20,
0x72,0xB0,0x04,0xC0,0x19,0xC0,0x66,0xB0,0x18,0x8E,0x60,0x84,0x05,0x00,0x02,0x00
};
//clear panel
CMD = 0x04;//x inc
for (y=0;y<240;y++)
{ Y_ADDR = y;X_ADDR = 0;
for (x=0;x<40;x++)
{
DAT = 0;
}
}
//写“国”
for ( cnt=0; cnt<=15; cnt++ )
{X_ADDR = 2;
Y_ADDR = cnt;
DAT = zk_0[cnt*2];
DAT = zk_0[cnt*2+1];
}
//写“家”
for ( cnt=0; cnt<=15; cnt++ )
{X_ADDR = 4;
Y_ADDR = cnt;
DAT = zk_1[cnt*2];
DAT = zk_1[cnt*2+1];
}
while(1);}
/声明:程序初始化仅适用于武汉中显TFT并口系列彩色液晶。
来源:武汉中显科技
做TFT液晶屏的朋友可以Q 343940112
email: yuchangan@viewtech.cn
好吧,大家来看看这个东西。它能自动生成汉字、英文点阵数据(C51格式、汇编格式可选)比较强大。将生成的点阵数据拷贝到程序中就可以控制在屏幕指定的位置显示输入的汉字。字体、字号可调。
来看一段程序
将“国家”显示在(2,0)处,设置TFT3224-5.7为X方向地址自动加一。因此,在每次设置XY地址后,可以连续写两个字节。详细程序如下所示。
#include <reg51.h>
#include <absacc.h>
#define X_ADDR XBYTE[0x8000]
#define Y_ADDR XBYTE[0x8001]
#define CMD XBYTE[0x8002]
#define DAT XBYTE[0x8003]
/*
#define X_ADDR XBYTE[0x0000]
#define Y_ADDR XBYTE[0x0100]
#define CMD XBYTE[0x0200]
#define DAT XBYTE[0x0300]
*/
main()
{
unsigned int i;
unsigned char cnt,x,y,z;
unsigned char code zk_0[32] = {
/*-- 文字: 国 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x7F,0xFC,0x40,0x04,0x5F,0xF4,0x41,0x04,0x41,0x04,0x41,0x04,0x4F,0xE4,
0x41,0x44,0x41,0x24,0x41,0x24,0x5F,0xF4,0x40,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04
};
unsigned char code zk_1[32] = {
/*-- 文字: 家 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x02,0x00,0x01,0x00,0x3F,0xFE,0x40,0x04,0x5F,0xE8,0x01,0x00,0x02,0x00,0x0F,0x20,
0x72,0xB0,0x04,0xC0,0x19,0xC0,0x66,0xB0,0x18,0x8E,0x60,0x84,0x05,0x00,0x02,0x00
};
//clear panel
CMD = 0x04;//x inc
for (y=0;y<240;y++)
{ Y_ADDR = y;X_ADDR = 0;
for (x=0;x<40;x++)
{
DAT = 0;
}
}
//写“国”
for ( cnt=0; cnt<=15; cnt++ )
{X_ADDR = 2;
Y_ADDR = cnt;
DAT = zk_0[cnt*2];
DAT = zk_0[cnt*2+1];
}
//写“家”
for ( cnt=0; cnt<=15; cnt++ )
{X_ADDR = 4;
Y_ADDR = cnt;
DAT = zk_1[cnt*2];
DAT = zk_1[cnt*2+1];
}
while(1);}
/声明:程序初始化仅适用于武汉中显TFT并口系列彩色液晶。
来源:武汉中显科技
做TFT液晶屏的朋友可以Q 343940112
email: yuchangan@viewtech.cn
附件:
[本地下载]