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

图4 程序流程图
4 文字和图片的显示
VGG12864G内置128×64 bits的显示存储器,用于存储显示数据,图5为RAM的地址结构。RAM容量为128×64=8192 bits,它被分成8页(page0-page7),每页8行,每页的第一列刚好是一个字节,低位在上,高位在下;显示屏上各像素点的显示状态与显示存储器的各位二进制数据一一对应,显示存储器的数据直接作为图形显示的驱动信号。数据显示为“1”,相应的像素点显示;数据显示为“0”,相应的像素点不显示。
所显示文字或图片的字符库,需要自己造,但人工的几乎不可能,可以选用字模提取软件——“字模提取 V2.2 ”,该软件提供两种取模方式:横向和纵向。再根据OLED显示数据的RAM地址结构,选纵向的取模方式,由于OLED模组的字节结构是高位在下低位在上,所以要设置成字节倒序,字符的字体、字形、大小和显示效果(下划线和删除线)可根据需要进行调整,然后采取C51格式(若用汇编语言编程可采取A51格式)取模生成单个字符的点阵显示代码,最后根据需要在OLED屏上的显示效果,对代码进行相应调整即可得到所需字符库。

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

图6 字符的显示

图7 静态图片的显示
5 结论
设计了一种基于单片机实现OLED显示的方法。针对其功能和特性,解决了相关部分的电路设计,并在所开发的系统上实现了文字、动静态图片的显示。实验证明:该设计电路简单,为该系统大大降低了成本,使该系统可以应用在小型设备上。欲了解更多信息请登录电子发烧友网(http://www.elecfans.com)
快充电源方案手机用处多,玩一下,就没电子,好的手机快充方案,太重要了。节能,安全,高效,是最重要 的 请教MOS管组成的双电源充电切换电路问题
如图所示,测试这个电路时遇到情况3,导致充电不正常,请大家多多指教。 单电源运算放大器可以输出负电压吗?单电源供电运放只能出正压吗?怎么才能出负压呢?图上是个反相1比1电路,用单电源供电运放只能输出正压,用双电源供电的话出波正常。
运放是这么用的。第一种方式:
2/2 首页 上一页 1 2 |