首页 >>> 公司新闻 >

公司新闻

基于单片机的OLED显示系统设计与实现

基于单片机的OLED显示系统设计与实现

(0.96英寸OLED显示屏的应用——转载自中国OLED网)

OLED(Organic Light Emitting Display)显示技术是比液晶显示技术更为先进的新一代平板显示技术,其被业界公认为是继LCD、PDP之后*理想和*具发展前景的第三代显示技术。 相比于液晶显示技术,其具有超轻薄、高亮度、广视角、自发光、响应快、抗震强、功耗低、适应温度范围宽,可实现柔性显示等优越性能,有“梦幻显示器” 的美誉,可广泛应用于通信、计算机、消费电子、工业应用、商业、交通等领域。在显示输出方面,目前主要采用3种方式,即:图形、数字或专用符号,在嵌入式 领域,显示常采用LED、数码管及液晶显示器。前两种实现简单,但显示内容不够丰富。LCD显示器虽能显示较为丰富的内容,但其响应慢(出现残像),且亮 度相对较低。OLED则响应较快,其响应速度可达液晶的1000倍以上,且OLED无需背光,亮度高,在功耗、视角等方面也均优于LCD显示器,鉴于 此,OLED显示屏越来越广泛地应用在日常生活当中。

该文以宏晶公司的STC89C52单片机为控制核心,以0.96寸OLED模块为显示输出设备,在Keil环境下编写OLED显示模块驱动程序,并下载Hex文件至单片机,从而实现OLED显示系统设计。

1 基于单片机的OLED显示系统设计与实现——实现原理

文中所采用的OLED模块具有和12864LCD相同的分辨率,但其在单位面积上具有更多的像素点。该模块的驱动芯片是SSD1306Z,它是一款专 门用 于驱动OLED点阵屏的COMS芯片,其包含128个段和64个公共端。为了能够通过外部控制器向其写入用于显示的数字信息,其对外提供了8个数据引脚和 5个控制脚,并向用户提供了4种总线接口。文中所采用的OLED模块可实现SPI和IIC两种总线接口模式,默认为SPI模式。在SPI模式下,仅有数据 引脚的低2位和控制引脚的CS#,D/C#和RES#与单片机进行接口。为了能让OLED具有丰富的显示效果和灵活简便的操作方式,SSD1306Z向用 户提供了丰富的操作指令集,另外还向用户提供了128x64位的GDDRAM(Graphic Display Data RAM)。由于所采用的OLED不带字库,因此无论是显示图形还是显示汉字,均需通过取模软件进行编码,然后按SPI协议,将对应的编码按照所确定的地址 模式写入对应的CDDRAM中。编码原理如图1所示。图1给出了16*8编码格式的字符‘A’,由于8行为一页,因此其占据2页的高度,而宽度则占据8 列。图1中的每一个方格代表一位,若要显示则置1,反之置0。向GDDRAM当中送数据时,先通过指令确定操作所需的地址模式及存储器的地址,然后先写 ‘A’的第2页的编码,再写其第3页的编码,即可完成编码的写入操作。图1所对应的编码为0x00,0x00,0xe0,0x 9c,0xf0,0x80,0x00,0x00,0x08,0x0f,0x08,0x00,0x00,0x0b,0xoe,0x08,编码时高位在下,低 位在上。同理,可得对任意汉字的编码。

基于单片机的OLED显示系统设计与实现

图1:OLED字符编码

2 时序分析

操作时序为IC芯片的可靠工作提供了正确的节拍,因此操作时序正确与否将直接影响芯片的工作状态,文中OLED模块默认工作方式为4线SPI,其操 作时 序如图2所示。图2上部分为操作一位对应的时序,下部分为操作一个字节所对应的时序,由图2可知当发送一个字节时,先发该字节的*高位,*后发*低位。

基于单片机的OLED显示系统设计与实现

图2:4线SPI操作时序图

图2中,CS#为OLED片选信号线,低电平有效,在芯片有效后,可通过拉低或拉高D/C#来决定是进行命令写入操作还是进行数据写入操作,在时钟 SCLK拉高之前建立D/C#信号,其建立时间为tAS,SDIN在SCLK低电平有效,并在SCLK上升沿时进行数据的读取,数据保持时间为tDHW, 之后可发生数据交换,为下次数据读取作准备。图2中具体的时

序特性如表1所示。

表1:4线SPI时序特性

基于单片机的OLED显示系统设计与实现

表1给出了正确实现OLED操作的时序要求,由表1可知时间参数的*小值均小于1μs。文中控制器选用的是STC89C52,采用12 M晶振时机器周期为1μs,因此,只需让STC89C52按上图时序顺序执行程序,则其操作过程便可完全满足4线SPI操作的时序要求。

3 软件实现

要使OLED正确显示出所需的信息,除了在其运行过程中严格按时序进行操作外,在起动时还要满足一定的上电顺序,之后还要对其进行相应的初始化。OLED的上电顺序如图3所示。

基于单片机的OLED显示系统设计与实现

图3:OLED上电时序图

图3中,在VDD得电并稳定后,RES#引脚被拉低并维持低电平至少3μs(t1),然后再接其拉高,从而实现芯片复位。在芯片完成复位后,VCC 上 电。在VCC稳定之后,可发送0xAF命令开显示,而OLED的段和公共端(SEG/COM)则需再延迟100 ms,方可得电。按此可得对应的软件实现为:

基于单片机的OLED显示系统设计与实现基于单片机的OLED显示系统设计与实现基于单片机的OLED显示系统设计与实现基于单片机的OLED显示系统设计与实现基于单片机的OLED显示系统设计与实现

同理可知,若将D/C#引脚电平拉高,则可得到发送一个字节数据的函数实现。

 

4 硬件接口

硬件基于自主开发的FG_V1.2开发板,核心控制芯片为宏晶公司LQFP-44封装的贴片STC89C52单片机,OLED的时钟引脚 SCLK(D0)与单片机的P16引脚进行接口,数据引脚SDA(D1)与单片机的P17引脚进行接口,控制脚RST#与单片机的P36引脚进行接 口,D/C#引脚与单片机的P37引脚进行接口,片选信号CS#已接至地。具体的硬件接口电路如图4所示。

基于单片机的OLED显示系统设计与实现

图4:OLED与单片机接口电路