SED1335在单片机系统中的设计与应用

发布时间:2010-3-22 15:20    发布者:我芯依旧
关键词: 单片机 , 设计 , 系统 , 应用
1 引言

随着信息技术的发展,人们越来越频繁地面对各种各样的显示装置,其中液晶显示(LCD)是一种最有前景的显示装置,目前已广泛应用于移动通讯、仪器仪表、电子设备、家用电器等各方面。与传统显示模块相比,采用 SED1335LCD液晶驱动器和 320×240点阵式图形液晶显示模块,使显示信息量增大、操作简化、界面友好、外形美观,不仅可以采用数字形式显示信息数据,而且可以采用图形画面来显示。

2 SED1335控制器

SED1335是 SEIKO EPSON公司出品的一种高性能的液晶显示控制器。它具有较强的 I/O缓冲器,指令功能很丰富,并且四位数据并行发送,最大驱动能力为 640×256点阵。

1.gif

SED1335硬件结构可分成 MPU接口部、内部控制部和驱动 LCM 的驱动部。硬件结构图如图1所示。

SED1335的 MPU接口部由指令输入缓冲器、数据输入缓冲区、数据输出缓冲器和标志寄存器组成。作为微机的一种外围接口芯片, SED1335通过数据总路线接收来自 CPU的指令和数据。它具有 2个通道,一个为指令口,用来接收 CPU的指令码;另一个为数据口,用来接收和发送指令参数和显示数据。系统共用数据总线,由 A0口来区分:高电平时,为指令码,低电平时,为指令参数或显示数据。 SED1335与 8031单片机的硬件连接如图 1所示。在图 1中,用 8031的 P2.7口作为 SED1335的片选信号,用 P2.0口与 SED1335的 A0口连接。这样当 SED1335的指令地址为 8100H,数据地址为 8000H。

SED1335内部控制部是 SED1335的核心。它由振荡器、功能逻辑电路、显示 RAM管理电路、字符库及其管理电路以及产生驱动时序的时序发生器等组成。振荡器工作频率可在 1M~10M Hz范围内选择。SED1335能在很高的工作频率下迅速地解译 MPU发来的指令代码,将参数置入相应的寄存器内,并触发相应的逻辑功能电路运行。其中最重要的特点是能分区管理 64k的显示存储器,可以同时管理 3个或 4个显示区。显示区可以根据数据的性质设置为图形方式或文本方式。在图形方式下,该显示区的数据被认为是 8位的显示数据而直接送到液晶显示驱动系统显示;在文本方式下,该显示区的数据被认为是字符代码。

2.gif

SED1335 驱动部具有各显示区的合成显示能力传输数据的组织功能及产生液晶显示模块所需要的时序,向液晶显示模块传输数据的方式为4位并行方式。

3 SED1335软件控制实现

SED1335有 13条指令,多数指令带有参数,参数值由用户根据所控制的液晶显示模块的特征和显示的需要来设置。通过指令可以完成 LCD的初始化、光标、显示合成方式和显示数据的输入输出等。根据显示屏的特点对 SED1335控制器的各参数进行设定,对于 320 ×240点阵式图形液晶,在 Keil C51单片机软件开发平台中编写的初始化程序如下:

unsigned char SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xef,0x28,0x00};
unsigned char SCRTAB[10]={0x00,0x00,0xEF,0x80,0x25,0xef,0x00,0x50,0x00,0x00};
……
outportb( LcdComPort, 0x40 );
for(i=0;i<8;i++)
outportb( LcdDatPort, SYSTAB); //初始化,显示窗口设置 ,共 8个参数
……
outportb( LcdComPort, 0x44 );
for(i=0;i<10;i++)
outportb( LcdDatPort, SCRTAB); //设置显示区域 ,共 10个参数
……

在图形方式下显示汉字,其汉字库是建立在系统程序内,由程序逐字节地向图形显示区相应单元写入,然后在显示屏上显示出相应的汉字。首先在程序中定义汉字字库数组:

unsigned char HZ[][32] ={
/*--  文字: 汉 --*/
/*--  宋体 12; 此字体下对应的点阵为:宽 x高=16x16  --*/ 0x20,0x00,0x10,0x00,0x17,0xFC,0x02,0x08,0x82,0x08,0x49,0x10,0x49,0x10,0x11,0x10, 0x10,0xA0,0x20,0xA0,0xE0,0x40,0x20,0xA0,0x21,0x18,0x26,0x0E,0x28,0x04,0x00,0x00,
/*--  文字: 字 --*/
/*--  宋体 12; 此字体下对应的点阵为:宽 x高=16x16  --*/ 0x02,0x00,0x01,0x00,0x3F,0xFC,0x20,0x04,0x40,0x08,0x1F,0xE0,0x00,0x40,0x00,0x80, 0x01,0x00,0x7F,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
}

然后,将 16x16汉字点阵分为左右两部分,分别驱动显示:

lcd_write_16_8( x0, y0, HZ[0], 16, 2,);
lcd_write_16_8( x0+8, y0, &HZ[0][1], 16, 2);

其中,16 x8点阵显示子程序如下:

void lcd_write_16_8 ( int x, int y, unsigned char* hfont)
{
unsigned int Z, i,j; //计算光标位置
Z = (x >> 3) + y * 40; // 设置光标自动往下
outportb( LcdComPort, 0x4f ); // 设置液晶屏上的光标位置
outportb( LcdComPort, 0x46 );
outportb( LcdDatPort, Z );
outportb( LcdDatPort, Z>>8 ); // 将显示数据发送到显示缓冲区
outportb( LcdComPort, 0x42 );
for( i=0,j=0; i<16; i++ )
{
  outportb( LcdDatPort, hfont[j] );
  j+=2; }
}

最终显示的汉字如图 3所示:

3.gif

4 结束语

在实际的单片机系统中,往往都需要良好的用户界面,其中 LCD是被大量采用的显示器件。通过 SED1335图形液晶控制器,在单片机和 LCD之间加入一条双向的快速通道,可以在不增加任何成本的情况下,大大提高单片机系统的显示性能。 SED1335液晶显示控制器是一种集控制与驱动于一身的显示控制器件,其最大的特点是特别适合在光线不足的条件下实现图文信息显示。由于该模块亮度高,可以满足在光线较暗的环境中显示的要求,而且性能可靠,价格适中。另外,它还具有接口方便、编程简单等优点,可以被广泛地应用在办公自动化设备、工业控制仪器表、家用电器等各种领域中。

在作者实际参与的项目中充分利用了SED1335图形液晶控制器,节约了项目投入的成本,并提高了系统的显示性能,直接和间接经济效益达200万元。

本文作者创新点:研究了 SED1335液晶显示控制器应用于单片机系统的显示模块中,同时提出了其在图形方式下汉字显示的软件设计。

作者:杨洋    来源:《微计算机信息》2009年第1-2期
本文地址:https://www.eechina.com/thread-9711-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表