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

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

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

需要地址总线,但访问片外存储器时地址线会被使用,所以仍要避开。实验结果的时序波形图如图3所示。

图3 时序波形图

只要CS#为低时,在WR#(RD#)的下降沿写入(读出)数据或命令,即可有效地完成读写的工作。

3 软件程序的设计

整个单片机控制OLED的显示程序用C语言编写,主要程序流程图如图4所示。

图4 程序流程图

单片机初始化包括关闭看门狗、时钟初始化、端口初始化,以及定时器和中断的初始化。OLED初始化包括开显示、设置显示模式、设置对比度控制器、对比度设置(1~256)、设置行列起始地址、设置具体位置颜色、设置串口管脚配置。清OLED屏和OLED显示都是往GDDRAM里写数据,包括读状态、写命令、写数据子程序,清OLED屏就全写“0”,OLED显示只要写入所要显示的文字或图片的字符代码即可。每次写(命令或数据)之前都要读状态,看最高位D7是否为“0”,也称之为“忙”检测,如果为“1”,表示“忙”;反之为“闲”,在“闲”的状况下才可以写操作。

4 文字和图片的显示

VGG12864G内置128×64 bits的显示存储器,用于存储显示数据,图5为RAM的地址结构。

图5 显示数据RAM的地址结构

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

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

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

5 结论

设计了一种基于单片机实现OLED显示的方法。针对其功能和特性,解决了相关部分的电路设计,并在所开发的系统上实现了文字、动静态图片的显示。实验证明:该设计电路简单,为该系统大大降低了成本,使该系统可以应用在小型设备上。

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

网站地图

Top