微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于单片机实现OLED显示的设计

一种基于单片机实现OLED显示的设计

时间:03-21 来源:互联网 点击:

1 引言

有机电致发光显示,又称有机发光二极管(Organic Light Emitting Diode, OLED)或有机发光显示器Organic Light Emitting Display(OLED),相较于目前市场上流行的液晶显示器(LCD)有明显的优势,主要表现为:自主发光(不需要背光源),无视角问题(视角可达170°以上),重量轻,厚度薄,亮度高,发光效率高,响应速度快(是液晶的1000倍),动态画面质量高,温度范围广(温度范围-40℃~80℃),低功耗,抗震能力强,制造成本低,可柔性显示。尤其适用于要求高亮度的仪表行业,以及条件要求更高的军工产品。

与各方面已经发展成熟的LCD相比,OLED的发展还处于初级阶段,但随着以上这些优势的逐步实现,OLED将极有可能取代LCD在市场上的地位,OLED是被业界公认为最具发展前景的下一代显示器。

2 硬件结构设计

本文利用单片机C8051F023作为128×64单色OLED的控制核心器件,采用的是维信诺公司的一款屏VGG12864G,它利用Solomon公司的SSD1303为专用驱动IC。实现文字显示及图像的动静态显示。硬件整体设计结构框图如图1所示。

图 1 硬件设计结构框图

2.1 SSD1303 驱动及接口电路

VGG12864G模块的OLED显示屏为128列,64行结构。图2为SSD1303结构框图,

图2 SSD1303结构框图

显示了模块逻辑电路和接口电路的框图。用户只需要给接口提供电源、产生驱动指令信号和显示数据信号,就能点亮OLED屏。从图中可以看出,行、列驱动器的输出通过FPC邦定到OLED屏,剩下的MCU接口、电压和电流控制器需要是其专门设计的接口和驱动电路,模块的外部信号仅与SSD1303发生关系。所以了解了SSD1303的输入特性及指令系统,就能方便地使用本模块了。

SSD1303是晶门公司推出的驱动单色OLED的IC,采用TAB封装。这种基于CMOS工艺的驱动IC集成了行、列驱动器、振荡器、对比度控制器和图形数据存储器(GDDRAM),很大程度地减少了外围器件和功耗。可支持的最大分辨率为132×64,其中OLED屏底部132×16的点阵区域可以显示4色的局域色,并可编程实现64级灰度,当用于单色显示时,可编程控制256级对比度。根据所使用微处理器(MPU)的不同,它提供8位6800系列MPU并行、8位8080系列MPU并行和Serial Peripheral Interface (SPI)串行三种通信接口模式。

控制命令通过MCU接口输入到控制命令解码器进行命令解码,然后输出时钟、行同步、场同步信号,从而控制OLED显示的振荡频率、显示器件的电压转换模块以及OLED显示内容的行列偏移量的驱动模块;如果是显示数据(128×64bits),那么显示数据由控制电路通过MCU接口输入到GDDRAM缓存,然后通过局域色解码器对数据进行解码,最后将解码后的显示数据通过行列驱动器驱动OLED显示,OLED上呈现了稳定的显示效果。

2.2 电源的设计

硬件结构设计框图如图2所示,外部硬件电路的DC-DC转换器用TPS7333芯片将5V电源转换成3.3V电源,并将输出的电源信号通过电压和电流控制器控制整个SSD1303的电压和电流。整个系统需要3.3V和12V的电源,MCU(本文采用C8051F023)需要提供3.3V的电源电压,OLED需要3.3V的逻辑电源电压和9~12V的驱动电源电压,此驱动电源电压由外部电源转换器电路提供。

2.3 各种控制信号

再就是关于如何用MCU控制,MCU通过RES#、CS#、D/C、WR#、RD#和D0~D7共13个接口控制SSD1303驱动IC,从而控制OLED显示屏。CS#为片选信号,当CS#接低电平时MCU才能与驱动IC通信;RES#是复位使能端,当接低电平时,所有控制寄存器均被设定为出厂时的默认状态,同时图像寄存器清零;D/C为数据/命令选择信号;WR#和RD#分别为写和读选择信号,当CS#为低时,在其下降沿读写有效。通过改变D/C、WR#和RD#三个接口的高低,单片机对OLED的控制有四种状态,可由表1显示出来。

表1读写状态一览表

2.4 读写的时序

只要按照VGG12864G的时序波形图进行读和写,即可完成OLED的显示。但是,通过软件编程拼时序的话,要考虑到许多时间参数,有一定的难度。为了使得数据和命令能够更容易的顺利读写,我们采用另外一种办法。如图1所示,将WR#和RD#分别接C8051F023的/WR和/RD,即P0.7和P0.6。在C语言编程时定义指针类型为xdata型,它是指向片外存储器的,通过给指针的赋值访问片外的数据存储区,当访问片外存储器时,/RD和/WR会在读和写时自动变低,同时P3端口为数据总线,非复用方式下,地址总线的高8位使用P1口,低8位使用P2口;复用方式下,地址总线高8位仍使用P1口,低8位和数据总线复用P3口,P2口就不会受到影响。所以最好设置成复用方式(EMIOCF.4=0),P2口就可以用来作别的输出端口,自由地控制RES#、CS#、DC。虽然不

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top