APP下载

基于单片机的OLED显示器的应用

2010-08-23陈群英

科学之友 2010年8期
关键词:字符时序显示器

陈群英

(西安培华学院,陕西 西安 710065)

1 引言

有机发光显示器(Organic Light Emitting Display,OLED)是一种新型发光和显示器件。OLED实质上是一个薄膜器件,即在阳极和阴极之间夹多层有机薄膜组成的稳定的绿色有机薄膜电致发光器件。当有电流通过时,这些有机材料就会发光。OLED使用普通的矩阵交叉屏,OLED位于交叉排列的阳极和阴极中间,通过对阳极和阴极组合的选通,可以控制每一个OLED的点亮。由于OLED属于电流型器件,显示器的亮度可用电流来控制。国际上实力比较强的有我国香港的Solomon公司和美国的Clare公司等。OLED可广泛应用于通信、计算机、消费电子、工业应用、商业、交通等领域。

2 硬件设计

系统的组成和工作原理,见图1。

图1 硬件设计结构框图

由图1可知,系统由单片机、OLED显示模块、电源转换器组成。单片机是整个系统的控制核心,显示器件采用的是维信诺公司的VGG12864G-CM21,该款芯片采用Solomon公司的SSD1303为专用的驱动芯片实现文字和图形的动态、静态显示。电压转换模块采用单输出直流转直流开关电源 B1205S-2W和AS1117的组合电路产生3.3 V的逻辑电压。

2.1 主要芯片介绍

2.1.1 核心控制芯片C8051F023

该芯片是完全集成的混合信号系统级微控制器芯片,具有32个数字I/0引脚。以8051为内核,片内集成JTAG接口,8通道10位ADC,2个12位DAC,64KB ISP FLASH存储器,4352B片内RAM,支持SPI、I2C串行总线标准,2个UART接口,5个通用的16位定时器,看门狗定时器、VDD监视器等。温度范围-45 ℃~+85 ℃,工作电压2.7 V~3.6 V,封装形式为64脚TQFP。

2.1.2 OLED显示芯片VGG12864G-CM21

VGG12864G是128列×64行点阵的OLED单色、字符、图形显示模块,接口电路简单,使用方便。该模块具有以下特点:①128×64点阵的单色图形显示模块;②高亮度,高对比度,宽视角,响应速度快,温度范围宽,低功耗;③8位并行数据接口,读、写操作时序;可以直接与八位微处理器相连;④模块内含 128×64显示数据 RAM。RAM 中每位数据对应OLED屏上一个点的亮、暗状态;⑤集成SOLOMEN SSD1303 OLED驱动器;⑥模块功耗:90 mw(1/3素点点亮,不带偏振片,亮度100 cd/m²);⑦模块逻辑电源电压: VDD+3 V±10 %;⑧OLED 显示屏驱动电压:VCC 7 V~11 V。

2.2 SSD1303 驱动及接口电路

图2为SSD1303结构框图,主要由MCU接口、命令译码器、振荡器、显示时序发生器、电压控制与电流控制、区颜色译码器和图形显示数据存储器(GDDRAM)、行驱动和列驱动组成,很大程度地减少了外围器件和功耗。对用户来说只需要用专门的接口和驱动电路来产生电源、驱动指令信号和显示数据信号,就能点亮OLED屏。

图2 SSD1303结构框图

MCU 通过 RES#、CS#、D/C、WR#、RD#和 D0~D7共13个接口控制SSD1303驱动IC,从而控制OLED显示屏。CS#为片选信号,当 CS#接低电平时 MCU才能与驱动 IC通信;RES#是复位使能端,当接低电平时,所有控制寄存器均被设定为出厂时的默认状态,同时图像寄存器清零;D/C为数据/命令选择信号,为高电平时D0~D7为显示数据信号,那么显示数据由控制电路通过MCU接口输入到GDDRAM缓存,然后通过局域色解码器对数据进行解码,最后将解码后的显示数据通过行列驱动器驱动OLED显示;为低电平时D0~D7表示命令信号,该控制命令通过 MCU接口输入到控制命令解码器进行命令解码并写入相应的命令寄存器;WR#和RD#分别为写和读选择信号,当CS#为低时,在其下降沿读写有效。

2.3 电源的设计

电压转换模块的电路,见图3。

图3 电源电路设计

图4 时序图

VGG12864G-CM21 模块已经集成驱动升压电路,用户只需提供VDD电源即可。整个系统需要3.3 V的电源,分别提供给MCU(本文采用C8051F023)和OLED需要的逻辑电源电压。本设计中用B1205S-2W芯片和AS1117芯片的组合电路来产生3.3 V电源,并将输出的电源信号通过电压和电流控制器控制整个SSD1303的电压和电流。

2.4 读写的时序

只要按照VGG12864G的时序波形图进行读和写,即可完成OLED的显示。本设计将WR#和RD#分别接C8051F023的P1.4和P1.5。同时P3端口为数据总线,时序波形图见图4所示。只要CS#为低时,在WR#(RD#)的下降沿写入(读出)数据或命令,即可有效地完成读写的工作。

3 软件程序的设计

MCU系统控制器的内核是CIP-51微控制器。CIP-51与MCS-51TM指令集完全兼容,可以使用标准803X/805X的汇编器和编译器进行软件开发。OLED的显示程序可以用C语言编写也可以用汇编语言编写,主要程序流程图如图5所示。单片机初始化包括关闭看门狗、时钟初始化、端口初始化,以及定时器和中断的初始化。OLED初始化包括开显示、设置显示模式、设置对比度控制器、对比度设置(1~256)、设置行列起始地址、清OLED屏等。OLED 显示是往GDDRAM 里写数据,包括读状态、写命令、写数据子程序,OLED显示只要写入所要显示的文字或图片的字符代码即可。每次写(命令或数据)之前都要读状态,看最高位 D7是否为“0”,也称之为“忙”检测,如果为“1”,表示“忙”;反之为“闲”,在“闲”的状况下才可以写操作。

VGG12864G内置GDDRAM显示存储器,用于存储显示数据,RAM容量为128×64=8192 bits,它被分成8页(page0~page7),每页8行,每页的第一列刚好是一个字节,低位在上,高位在下;显示屏上各像素点的显示状态与显示存储器的各位二进制数据一一对应,显示存储器的数据直接作为图形显示的驱动信号。数据显示为“1”,相应的像素点显示;数据显示为“0”,相应的像素点不显示。

所显示文字或图片的字符库,需要自己造,可以选用字模提取软件Zimo21,该软件提供两种取模方式:横向和纵向。再根据OLED显示数据的RAM地址结构,选纵向的取模方式,由于OLED模组的字节结构是高位在下低位在上,所以要设置成字节倒序,字符的字体、字形、大小和显示效果(下划线和删除线)可根据需要进行调整,然后采取C51格式(若用汇编语言编程可采取A51格式)取模生成单个字符的点阵显示代码,最后根据需要在OLED屏上的显示效果,对代码进行相应调整即可得到所需字符库。

根据所要显示的文字或图片生成所需字符库,通过OLED显示程序将字符代码写入并存储在SSD1303的GDDRAM模块后,就可以稳定地显示出来。通过软件编程也可实现图片的动态显示。

如汉字“汉”,该文字为宋体 12,字体对应的点阵为:宽×高=16×16(32 B显示码)。提取字模为:

图5 程序流程图

4 结论

本文介绍了维信诺 VGG12864G-CM21 液晶显示器的工作原理,针对该显示器,设计了一种基于单片机实现字符和图形显示的应用方法,目前已在我们开发的控制系统中获得了应用。

猜你喜欢

字符时序显示器
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
你不能把整个春天都搬到冬天来
论高级用字阶段汉字系统选择字符的几个原则
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
IDC发布《2018年PC显示器市场跟踪报告》
一种新型点阵显示器的设计