基于不带字库的图形LCD模块汉字显示解决方案
----
混合显示一串汉字和英文字符
row:行(1-8), column: 列(1-15)
str:字符代码(标准机内码)指针
---------------------------------------------------------------------------------------*/
void DispStr(unsigned char row, unsigned char column, unsigned char *str)
{
while (*str)
{
if (*str > 0xa0) //如果是汉字机内码
{
if (column == 30) //如果是最后一列,则换行
{
row ++;
column = 1;
}
DispHZ(row, column, str); //显示一个汉字
column += 2;
str += 2;
}
else //如果是英文字符
{
DispChar(row * 2, column, str); //显示一个英文字符
column++;
str++;
}
}
/*----------------------------------------------------------------
在指定位置显示一个汉字(16*16点阵)
row:行(1-8), column: 列(1-29)
str:汉字标准机内码指针
LINE_CHAR = 30 一行的字符数
-----------------------------------------------------------------*/
void DispHZ(unsigned char row, unsigned char column, unsigned char *str)
{
unsigned char idata i, hz_buf[32];
unsigned int StartAddr;
//定位起始行
StartAddr = (((row - 1) * 16) * LINE_CHAR + (column-1)) + 0x4000;
GetMatrix(str, hz_buf);
for (i = 0; i 16; i++)
{
LCDInData( (unsigned char) (StartAddr) );
LCDInData( (unsigned char) (StartAddr>>8) );
LCDInCmd(0x24);
LCDInData(hz_buf[i * 2]);
LCDInCmd(0xc0);
LCDInData(hz_buf[i * 2 + 1]);
LCDInCmd(0xc4);
StartAddr += LINE_CHAR;
}
}
/*-----------------------------------------------------------------------------------
从字库芯片中取汉字字模数据
s: 汉字标准机内码指针
hz_buf: 存放汉字字模数据缓冲区指针
-------------------------------------------------------------------------------------*/
void GetMatrix(unsigned char *s, unsigned char *hz_buf)
{
unsigned char i ,j, k;
unsigned long address;
for (k = 0; k 31; k++)
{
i = *s - 0xA1; //计算区码
j = *(s + 1) - 0xA1; //计算位码
address = (((unsigned long)i * 94) + j)*32 + k; //计算该汉字在字模芯片中的起始位置
high_addr = 1;
P0 = (unsigned char) (address >> 16); //送高位地址
high_addr = 0;
P0 = 0xff;
zk_cs = 0;
*hz_buf = XBYTE[(unsigned int) address]; //取汉字模数据
hz_buf++;
zk_cs = 1;
}
}
4 结束语
在图形液晶模块中嵌入中文字库点阵字模芯片,其最大的特点是可以显示所有的一、二级汉字、硬件接口简单、软件编程容易、可混合显示汉字、英文字符和图形。作为人机接口的一个重要部分,可被广泛应用在工业仪器仪表、监控装置、保护装置及汽车等各种领域中。
5 参考文献
1 徐爱均彭秀华单片机高级语言C51应用程序设计电子工业出版社2001
2 莱德电子 YJ240D液晶模块手册
3 Toshiba CMOS digital integrated circuit silicon monolithic T6963C dot matrix LCD control LSI, 1997-04-07
4 GB2312-80《信息交换用汉字编码字符集》,1980
汉字 显示 解决方案 模块 LCD 字库 图形 基于 相关文章:
- 军事指挥系统中VxWorks下汉字显示技术(07-16)
- 基于DSP的汉字语音识别系统的实现方式解析(12-21)
- 点阵式汉字LED显示屏的原理与制作(12-03)
- 51单片机驱动16乘16点阵显示汉字程序(11-30)
- ucgui汉字库存放到外部的flash(控件可用)及写外部FLASH软件(11-27)
- 51单片机程序——点阵显示汉字(11-23)