SED1335在单片机系统中的设计与应用
时间:03-22
来源:互联网
点击:
1 引言
随着信息技术的发展,人们越来越频繁地面对各种各样的显示装置,其中液晶显示(LCD)是一种最有前景的显示装置,目前已广泛应用于移动通讯、仪器仪表、电子设备、家用电器等各方面。与传统显示模块相比,采用 SED1335LCD液晶驱动器和 320×240点阵式图形液晶显示模块,使显示信息量增大、操作简化、界面友好、外形美观,不仅可以采用数字形式显示信息数据,而且可以采用图形画面来显示。
2 SED1335控制器
SED1335是 SEIKO EPSON公司出品的一种高性能的液晶显示控制器。它具有较强的 I/O缓冲器,指令功能很丰富,并且四位数据并行发送,最大驱动能力为 640×256点阵。
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位的显示数据而直接送到液晶显示驱动系统显示;在文本方式下,该显示区的数据被认为是字符代码。
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所示:
4 结束语
在实际的单片机系统中,往往都需要良好的用户界面,其中 LCD是被大量采用的显示器件。通过 SED1335图形液晶控制器,在单片机和 LCD之间加入一条双向的快速通道,可以在不增加任何成本的情况下,大大提高单片机系统的显示性能。 SED1335液晶显示控制器是一种集控制与驱动于一身的显示控制器件,其最大的特点是特别适合在光线不足的条件下实现图文信息显示。由于该模块亮度高,可以满足在光线较暗的环境中显示的要求,而且性能可靠,价格适中。另外,它还具有接口方便、编程简单等优点,可以被广泛地应用在办公自动化设备、工业控制仪器表、家用电器等各种领域中。
在作者实际参与的项目中充分利用了SED1335图形液晶控制器,节约了项目投入的成本,并提高了系统的显示性能,直接和间接经济效益达200万元。
本文作者创新点:研究了 SED1335液晶显示控制器应用于单片机系统的显示模块中,同时提出了其在图形方式下汉字显示的软件设计。
作者:杨洋 来源:《微计算机信息》2009年第1-2期
随着信息技术的发展,人们越来越频繁地面对各种各样的显示装置,其中液晶显示(LCD)是一种最有前景的显示装置,目前已广泛应用于移动通讯、仪器仪表、电子设备、家用电器等各方面。与传统显示模块相比,采用 SED1335LCD液晶驱动器和 320×240点阵式图形液晶显示模块,使显示信息量增大、操作简化、界面友好、外形美观,不仅可以采用数字形式显示信息数据,而且可以采用图形画面来显示。
2 SED1335控制器
SED1335是 SEIKO EPSON公司出品的一种高性能的液晶显示控制器。它具有较强的 I/O缓冲器,指令功能很丰富,并且四位数据并行发送,最大驱动能力为 640×256点阵。
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位的显示数据而直接送到液晶显示驱动系统显示;在文本方式下,该显示区的数据被认为是字符代码。
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所示:
4 结束语
在实际的单片机系统中,往往都需要良好的用户界面,其中 LCD是被大量采用的显示器件。通过 SED1335图形液晶控制器,在单片机和 LCD之间加入一条双向的快速通道,可以在不增加任何成本的情况下,大大提高单片机系统的显示性能。 SED1335液晶显示控制器是一种集控制与驱动于一身的显示控制器件,其最大的特点是特别适合在光线不足的条件下实现图文信息显示。由于该模块亮度高,可以满足在光线较暗的环境中显示的要求,而且性能可靠,价格适中。另外,它还具有接口方便、编程简单等优点,可以被广泛地应用在办公自动化设备、工业控制仪器表、家用电器等各种领域中。
在作者实际参与的项目中充分利用了SED1335图形液晶控制器,节约了项目投入的成本,并提高了系统的显示性能,直接和间接经济效益达200万元。
本文作者创新点:研究了 SED1335液晶显示控制器应用于单片机系统的显示模块中,同时提出了其在图形方式下汉字显示的软件设计。
作者:杨洋 来源:《微计算机信息》2009年第1-2期
LCD 电子 总线 单片机 振荡器 电路 Keil 51单片机 显示器 自动化 相关文章:
- 采用灵活的汽车FPGA 提高片上系统级集成和降低物料成本(04-28)
- 从LCD电极读数的单片机接口技术(01-15)
- 嵌入式Linux下彩色LCD驱动的设计与实现(03-09)
- 基于FPGA的液晶显示控制器设计(02-17)
- LCD部分专业术语解释(03-06)
- 点阵LCD的驱动显控原理(上册)(03-20)