当前位置:首页 > 电源 > 数字电源
[导读]摘要:OLED作为新一代显示技术,广泛用于各种仪器仪表的显示终端,实时显示字符、汉字、曲线等信息。文中介绍一种点阵式OLED模块VGS12864E的结构特征、指令系统;给出它与CygnalC8051F020单片机的间接访问接口电路设

摘要:OLED作为新一代显示技术,广泛用于各种仪器仪表的显示终端,实时显示字符、汉字、曲线等信息。文中介绍一种点阵式OLED模块VGS12864E的结构特征、指令系统;给出它与CygnalC8051F020单片机的间接访问接口电路设计,以及显示模块的硬件驱动和显示16×8点阵西文字符的KeilC51程序代码,并对相关代码进行注释。由于此款显示模块的指令系统与液晶显示驱动控制器HD61202兼容,故程序代码也可作为指令系统与它兼容的液晶显示编程的参考。

关键词:点阵显示模块OLEDC8051F接口设计

有机发光显示OLED(OrganicLightEmittingDisplay)是比液晶显示技术更为先进的新一代平板显示技术,是被业界公认为最具发展前景的下一代显示技术。它与液晶显示技术相比,具有超轻薄、高亮度、广视角、自发光、响应速度快、适应温度范围宽、抗震强、功耗低、可实现柔软显示等优越性能,可广泛应用于通信、计算机、消费电子、工业应用、商业、交通等领域。下面以VGS12864E显示模块为例,介绍C8051F020单片机与它的接口设计及软件编程方法。

1VGS12864E显示模块

VGS12864E是128×64行点阵的OLED单色、字符、图形显示模块。模块内藏64×64的显示数据RAM,其中的每位数据都对应于OLED屏上一个点的亮、暗状态;其接口电路和操作指令简单,具有8位并行数据接口,读写时序适配6800系列时序,可直接与8位微处理器相连;与Intel8080时序的MCU连接时需要进行时序转换。

2显示模块结构

2。1模块框图

VGS12864E显示模块显示屏为128列、64行,使用1片有64行输出的行驱动器和2片列驱动控制器,其中每片列驱动器有64路输出。行驱动器与MCU没有关系,只要提供电源就能产生驱动信号和同步信号,模块的外部信号仅与列驱动器有关。列驱动器内置64×64位显示存储器,RAM被分为8页,每页8行;显示屏上各像素点显示状态与显示存储器各位数据一一对应,显示存储器的数据直接作为图形显示的驱动信号,为“1”显示,为“0”不显示。图1为模块的逻辑电路接口框图。

图1VGS12864E逻辑框图

2。2模块引脚功能及指令系统

模块引脚功能如表1所列。模块的指令系统与液晶显示驱动控制器HD61202兼容,共有7条指令。这里不作详细描述,仅列出表2指令列表。其中,前两条为显示状态设置类指令,其余的为读写操作类指令。

表1VGS12864E引脚功能

表2VGS12864E指令列表

3显示模块与Cygnal单片机硬件接口设计

VGS12864E的接口连接方式有两种:一种是直接访问方式,另一种是间接访问方式。不论哪种方式,要访问模块都必须先读取状态寄存器内容,判断“忙”标志,不忙时才可以访问。直接访问方式是将模块接口作为存储器或I/O设备直接挂在MCU总线上,MCU以访问存储器或I/O设备方式对模块进行操作。间接访问方式是MCU通过软件模拟控制时序对模块进行操作。这里介绍的是CygnalC8051F020单片机与VGS12864E的间接访问接口设计。

C8051F020是美国Cygnal公司推出的一种混合信号SoC型8位单片机,是集成度很高的混合信号系统级的芯片。它具有100脚的TQFP封装,功耗低,供电电压为2。7~3。3V,全部I/O、RST、JTAG引脚均耐5V电压;有高速、流水线结构的8051兼容的CIP51内核(可达25MIPS)。该MCU具有P0~P7共64个通用I/O端口,每个端口引脚都可以被配置为推挽输出或漏级开路输出。对于VGS12864E,由于其工作电压是5V,而C8051F020的工作电压是3。3V,所以要C8051F020的输出能更好地驱动5V输入的OLED,需要对系统进行额外配置。除了将对应端口的输出方式设置为“漏极开路”外,还应在电路上将每个端口通过一个上拉电阻接到5V电源,这样可以保证C8051F020的逻辑“1”输出能够被提升到5V。接口电路如图2所示。

4软件编程

软件编程采用KeilC51语言,包括显示模块硬件的驱动程序(即写指令和写数据),显示模块初始化和清屏等通用子程序以及西文字符的显示实现程序。由于此模块指令系统与液晶显示驱动控制器HD61202兼容,故这些程序具有较高的通用性。对于字符汉字显示,该模块的字符库数据特点是以列数据形式编制,即1个字节数据表示1列8×1的数据,和通常的字符库相比,该字符是旋转了90°的字模数据。使用Zimo21。exe取字模软件,并设置提取方式为纵向取模,可以很方便地取得所需的中西文字模。由于该显示模块的每一列8×1的数据是低位在前,高位在后,为进一步实现中西文的正确显示,还需对通过上述方法取得的字模的每个字节的高低位进行一次对调,程序中使用了一个数组UpsetChar[]来实现。程序中使用的西文字符是16×8点阵,汉字是16×16点阵。

Cygnal单片机通过间接访问方式控制OLED。其I/O端口需要进行配置,配置如下:

voidC8051F020_output_config(){

P2MDOUT=0x00;//配置P2。5(lcd_wr),P2。6(lcd_rd),

//P2。7(lcd_rs)为推挽输出方式

P74OUT=0xf3;//配置P5。0~P5。7(lcd_d0lcd_d7)

//为推挽输出方式

}

对显示模块进行写指令操作和写数据操作分为写左半屏和写右半屏。写左右半屏的差别仅在于置位相应的片选信号,而写指令与写数据的差别在于写数据时置位RS寄存器选择信号。初始化操作完成显示位置的确定和打开显示。现以写左半屏命令和写左半屏数据为例,说明各操作函数。

图2C8051F020与VGS12864E间接访问方式接口电路

(1)写左半屏命令

voidwr_command1(){

cs1=1;cs1=1;cs1=1;//选择左半屏

cs2=0;cs2=0;cs2=0;

read_status();//读BUSY位状态

r_w=0;r_w=0;r_w=0;

P5=com;//将命令字节送I/O口

e=1;e=1;e=1;

e=0;e=0;e=0;//在E下降沿,命令字节被写

//入列驱动器

}

(2)写左半屏数据

voidwr_data1(){

cs1=1;cs1=1;cs1=1;//选择左半屏

cs2=0;cs2=0;cs2=0;

read_status();//读BUSY位状态

d_i=1;d_i=1;d_i=1;

r_w=0;r_w=0;r_w=0;

P5=dat;//将数据字节送I/O口

e=1;e=1;e=1;

e=0;e=0;e=0;//在E下降沿,数据字节被写

//入列驱动器

}

其中,读状态位的函数采用查询标志位的方式,即

voidread_status()reentrant{

ucharbusy;

uchartemp;

d_i=0;d_i=0;d_i=0;//进行指令操作

r_w=1;r_w=1;r_w=1;//进行读操作

do{

P5=0xff;

e=1;e=1;e=1;

busy=P5;//读入P5端口状态

e=0;e=0;e=0;

temp=busy&0x80;

}while(temp!=0);

}

(3)OLED初始化

voidinit_lcd(){

com=0xc0;//从第0行开始

wr_command1();

wr_command2();

com=0x3f;//打开显示

wr_command1();

wr_command2();

}

(4)OLED清屏

voidclear_lcd(){

ucharcolumn1;

ucharpage;

for(page=0;page<8;page++){

com=(0xb8+page);//设置页号

wr_command1();

wr_command2();

com=0x40;//设置起始列为0,写操作完

//后列地址计数器自动加1

wr_command1();

wr_command2();

for(column1=0;column1<64;column1++){

//清左半屏

dat=0;

wr_data1();

}

for(column1=64;column1<128;column1++){

//清右半屏

dat=0;

wr_data2();

}

}

}

(5)显示16×8字符的程序

voidlcd_write_char_code(ucharpage8,ucharcolumn8,uchar*block168)reentrant{

ucharcolumn1;

set_position(page8,column8);//设置所写字符起始页位置

for(column1=0;column1<8;column1++){

dat=block168[column1];

//从字库中取出上半页8×8点阵字模数据

dat=UpsetChar[dat];

//将每个字节数据高低位进行对调

if(column8<=7)

//如果设置的所写位置在左半屏,调用写左半屏

//数据的函数

wr_data1();

else

//如果设置的所写位置在右半屏,调用写右半屏

//数据的函数

wr_data2();

}

page8++;

set_position(page8,column8);//设置所写字符下半页位置

for(column1=8;column1<16;column1++){

dat=block168[column1];

//从字库中取出下半页8×8点阵字模数据

dat=UpsetChar[dat];

//将每个字节数据高低位进行对调

if(column8<=7)

//如果设置的所写位置在左半屏,调用写左半屏

//数据的函数

wr_data1();

else

//如果设置的所写位置在右半屏,调用写右半屏数据的函数

wr_data2();

}

}

5结论

OLED显示技术有着广泛的应用前景。采用此技术的VGS12864E显示模块具有与MCU接口方便、显示功能强和编程简单等优点,具有广泛的应用价值。上面介绍的接口设计与软件编程已成功应用于数据采集系统中的系统工作参数的显示,效果良好;再配合按键控制进行反显、参数设置、翻页等,建立了良好的人机交互界面。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭