英创公司EM9X60系列工控主板广泛应用于电力行业,在最新的国家电网公司技术标准《电力用户用电信息系统功能规范》中,对电力终端的显示单元有明确的规定,要求液晶显示选用160X160单色点阵LCD,窗口尺寸不小于60mmX60mm,英创公司为此提出了EM9X60支持160X160点阵LCD的解决方案。
方案一、选用带英创工控主板能自动识别的LCD控制器的LCD,如CA160160Z,其主要指标为160X160点阵,控制器为S1D13700,与S1D1335/RA8835兼容。选用此类屏的优点是可直接利用英创现有的LCD_API库函数对屏进行操作,硬件连接和程序设计方便。英创EM9X60系列工控主板能自动识别的点阵LCD控制器还包括T6963C(或兼容型号),KS0108(或兼容型号)。
方案二、选择电力终端普遍使用的uc1698u控制器LCD,如HGO160X160。
HGO160X160采用ULTRACHIP(晶宏)公司的uc1698u LCD驱动IC,160X160点阵,符合国网标准,在硬件上可直接与英创EM9X60系列工控主板相连,软件方面,我们提供了专门针对uc1698u实现中西文显示的驱动程序。
对于应用层的软件编写,客户仅需要调用英创提供的API函数,就能实现画点,画线,字符显示等操作,不需要了解具体驱动细节,下面是节略测试程序的一些程序片段。
nStatus = LCD_Init( ); //LCD初始化
if( nStatus < 0 )
return -1;
m = LCD_GetMaxX(); //获取X方向最大点阵数
n = LCD_GetMaxY(); //获取Y方向最大点阵数
strcpy( BufStr, '** 欢迎测试 **' );
x = strlen( BufStr );
x = (m - x*6)/2; //x方向居中显示
y = 20;
LCD_WriteString( x, y, BufStr, 1 ); //显示字符串
y+=25;
LCD_DrawLine( 0, y, n, y, 1 ); //画线
y+=21;
LCD_DrawLine( 0, y, n, y, 1 );
k = y -10;
for( x=0; x < n; x++)
{
y = ( int )( k - 10.0*sin( 2.0*M_PI*x/24.0 ));;
LCD_PutPixel( x, y, 1 ); //画点
}
注:为正确显示中文,需要将汉字点阵字模文件CCLIB12.FNT拷贝到工控主板的NandFlash根目录下。图1是执行上面测试代码后,LCD的显示效果图。
图1:HGO160X160中英文显示
uc1698u的驱动以源代码的形式提供给客户,在英创提供的测试程序源文件中有各个应用层API函数和uc1698u驱动函数的详细说明,感兴趣的客户可向英创索要相关代码。