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

发布时间:2023-09-06  

  为了提高图形信息的显示速度,并得到更多的显示效果,文章基于FG_V1.2单片机开发板,依据OLED12864显示屏的操作时序要求,用51单片机实现了基于0.96英寸OLED屏的显示系统设计。经实际测试表明,其具有比12864LCD模块更快的刷新速度和更好的显示效果。


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


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


  1 实现原理

  文中所采用的OLD模块具有和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,方可得电。按此可得对应的软件实现为:

  

  同理可知,若将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与单片机接口电路

  5 实现效果

  SSD1306Z驱动芯片为OLED提供了丰富的指令集,可以使OLED在实现数据显示的同时,还能具有多种显示效果(如反白、渐变、闪烁等)和动态效果(如左移、右移、斜角斜屏、动态区域设置等)。具体显示效果如图5所示。

  

  图5:OLED实物显示效果

  图5为OLED模块在STC89C52单片机控制下的几种显示效果。(a)为静态显示效果,(b)为反白显示效果,反白后通过相机可见屏幕当中有动态黑色条纹,这是因为反白显示时出现了串扰(Crosstalk)现象,而这种现象被相机捕获到了,人眼观察是不存在动态黑色条纹的。(c)为区域动态效果,屏幕汉字部分设置为静态,而网址部分设置为连续右移的动态效果。由此可见,OLED相对比LCD显示,其具有更丰富的显示效果。


  6 结论

  文中通过STC89C52单片机对OLED显示模块进行了驱动,实验表明,其不仅硬件接口简单,而且在软件实现上极具灵活性,模块驱动芯片SSD1306Z包含丰富指令集,不仅简化了软件实现,而且丰富了显示效果。相比于同分辨率的12864LCD模块,OLED显示模块小巧精致,刷新速度快,显示效果丰富,成本相对也较低,是12864LCD模块的理想替代产品。随着OLED技术的发展,相信显示技术必将发展到一个新的阶段。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    51单片机CO2检测显示程序解析;这是一款51单片机CO2检测显示程序资料,二氧化碳传感器MH-Z19模块的T(TXD)接单片机的RXD, R(RXD)接单片机的TXD,V+连接单片机5v正极,V......
    软件编程 该系统的软件编程采用MCS-51系列单片机汇编语言完成,并把显示程序作为一个子程序,从而使主程序对其进行方便的调用。图2所示是其流程图。具体的程序代码如下: ......
    线则由89S02P2口的P2.0~P2.3提供。由于89S02的输入,输出口不能提供足够的灌电流,因此用G1~G4提供给LED足够的显示电流。 软件设计 用MCS-51单片机测量频率的程序主要包括:初始化程序,定时计数程序......
    上相应的显示结果。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51 单片机,输入采用4×4 矩阵键盘。显示采用4 位7 段共阳极LED 动态显示。软件方面从分析计算器功能、流程图设计,再到程序......
    软件设计 4.1 软件设计总体上由两部分组成:一部分为单片机C8051F020 主程序设计,一部分为LCD液晶显示程序设计。由于用C语言编程可以降低程序的复杂度,提高程序的可读性和可修改性,所以......
    手机软件选择控制模式,实现开窗器的自动开关控制。 硬件电路设计 本设计选择STM32单片机作为主控芯片,电机采用步进电机,电机模块采用L298N模块作为直流推杆电机的驱动模块,OLED显示屏作为显示模块,电源......
    开窗器的自动开关控制。硬件电路设计本设计选择STM32单片机作为主控芯片,电机采用步进电机,电机模块采用L298N模块作为直流推杆电机的驱动模块,OLED显示屏作为显示模块,电源模块采用USB转12V接口......
    在电脑上,如可以使用一个按键,当按下它时使某一个字母如:AA,通过单片机的串口将它发送到电脑上显示,起到仿真器的某些功效,站长在开发数据采集设备时就是通过串口来检查数据正确与否的。 51单片机......
    单片机定时器0、1演示程序;//实验例程 大虾(DX-51)学习板 定时器0、1使用例程 #include #include //MCU51嵌入式专业仿真器占用3个字节程序空间0x003b......
    响应等各个方面的性能有了更严格的要求。单片机的程序设计不再是前后台的运行模式,而是采用多任务实时操作系统的设计思想。由于使用嵌入式操作系统,可以将具体应用分解成多个任务,简化了应用系统软件的设计,使控......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>