技术:51单片机、Arduino、OLED显示屏、U8glib
 

概述

OLED显示屏常常用作为智能产品的显示设备,本文简单介绍OLED显示屏的使用方法。

详细

一、OLED显示屏

OLED显示屏是利用有机电自发光二极管制成的显示屏。由于同时具备自发光有机电激发光二极管,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

这里我们使用的0.96寸的OLED显示屏,它的显示区域是128*64的点阵,每个点都能自己发光。OLED显示屏可以显示汉字、字符和图案等,智能手环和智能手表等智能设备一般都是选择OLED显示屏来作为显示设备。


二、51单片机 — OLED显示屏

硬件连接: 

这里简单介绍OLED显示中文:

1. 打开PCtoLCD2002.exe -> 选项,修改一些选项:

2. 输入你想要显示的汉字,点击->生成字模,复制下面的数组即可:

我这里输入的是:”显示屏测试程序”,对应数组为:

{0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x00},
{0x40,0x42,0x44,0x58,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x50,0x48,0x46,0x40,0x00},/*"显",0*/ {0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},
{0x20,0x10,0x08,0x06,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x02,0x04,0x08,0x30,0x00},/*"示",1*/ {0x00,0x00,0xFE,0x12,0x92,0xB2,0xD2,0x92,0x92,0x92,0xD2,0xB2,0x9E,0x00,0x00,0x00},
{0x40,0x30,0x0F,0x04,0x84,0x64,0x1F,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x00,0x00},/*"屏",2*/ {0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00},/*"测",3*/ {0x40,0x40,0x42,0xCC,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x11,0x16,0x10,0x00},
{0x00,0x00,0x00,0x3F,0x10,0x28,0x60,0x3F,0x10,0x10,0x01,0x0E,0x30,0x40,0xF0,0x00},/*"试",4*/ {0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00},
{0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00},/*"程",5*/ {0x00,0x00,0xFC,0x04,0x04,0x04,0x14,0x15,0x56,0x94,0x54,0x34,0x14,0x04,0x04,0x00},
{0x40,0x30,0x0F,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x05,0x03,0x00},/*"序",6*/

想要显示出来的话,要把这些数组放到oledfont.h文件下:

main函数代码:

int main(void)
{
u8 t;
OLED_Init(); //初始化OLED
OLED_Clear(); //清屏
t=' ';
while(1)
{
OLED_ShowCHinese(0,0,0); //0:显
OLED_ShowCHinese(18,0,1);//1:示
OLED_ShowCHinese(36,0,2);//2:屏
OLED_ShowCHinese(54,0,3);//3:测
OLED_ShowCHinese(72,0,4);//4:试
OLED_ShowCHinese(90,0,5);//5:程
OLED_ShowCHinese(108,0,6);//6:序
OLED_ShowString(0,2,"1.3' OLED TEST"); //打印字符串
OLED_ShowString(20,4,"2018/12/25");
OLED_ShowString(0,6,"ASCII:");
OLED_ShowString(63,6,"CODE:");
OLED_ShowChar(48,6,t);//显示ASCII字符
t++;
if(t>'~')
t=' ';
OLED_ShowNum(103,6,t,3,16);//显示ASCII字符的码值
delay1s();
}
}

程序显示效果如下:


三、Arduino — OLED显示屏

硬件连接: 

加载库文件:

打开Arduino IDE -> 项目 -> 加载库 -> 管理库中搜索U8glib,然后安装即可。

OLED显示屏显示代码:

#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11, 13); //创建对象

void setup(void) {

}

void loop(void) {
for(int i=10;i<80;i++){
u8g.firstPage(); //表示图像循环的开始
do {
u8g.setFont(u8g_font_fub30);//设置字体和自号
u8g.setPrintPos(70, 50); //显示的位置
u8g.print(i);//显示变量i的值
u8g.setFont(u8g_font_fub30);//设置字体和自号
u8g.setPrintPos(20, 50); //显示的位置
u8g.print("i=");//显示 "i = "
}while( u8g.nextPage() );//u8g.nextPage() 表示图像循环的结束
delay(500);//显示的时间间隔
}
}

效果图如下:


四、总结

本文简单描述了OLED显示屏,并教大家如何用C51和Arduino进行开发。OLED显示屏显示效果非常的好,所以常常也被用来做一些智能设备的显示屏,下篇文章我也会教大家如何在OLED显示屏上显示时钟、温湿度值和光照强度等信息。


五、项目结构图

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

Arduino和C51开发OLED显示屏的更多相关文章

  1. Arduino和C51开发LCD1602显示屏

    技术:51单片机.Arduino.LCD1602   概述 本文介绍了LCD1602显示屏,并在LCD1602上显示字符串,对LCD1602常见的问题的解决和开发方法也做了简单介绍. 详细 代码下载: ...

  2. Arduino和C51开发DHT11温湿度传感器

    技术:51单片机.Arduino.DHT11.温湿度传感器.传感器   概述 学习单片机离不开对传感器的学习,本文主要介绍DHT11温湿度传感器的使用方法,同学也可以了解更多的传感器,这对你以后开发产 ...

  3. Arduino和C51开发光敏传感器

    技术:51单片机.Arduino.光敏传感器.PCF8591.AD/DA转换   概述 本文介绍了如何接收传感器的模拟信号和如何使用PCF8591 AD/DA转换模块对光敏传感器的模拟信号进行转换.讲 ...

  4. Arduino和C51开发DS1302时钟

    技术:51单片机.Arduino.DS1302时钟.串口通信   概述 本文实现51单片机和Arduino串口实时显示时钟功能,让读者对DS1302能够更好的理解,这次功能也和上节课学到的串口通信运用 ...

  5. [TPYBoard - Micropython之会python就能做硬件 6] 学习使用OLED显示屏

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi            欢迎加入讨论群 64770604 一.实验器材 1.TPYBoard板子一块 2.数据线一条 ...

  6. x86 版的 Arduino Intel Galileo 开发板的体验、分析和应用

    1.前言 在今年(2013)罗马举办的首届欧洲 Make Faire 上,Intel 向对外发布了采用 x86 构架的 Arduino 开发板:Intel Galileo.这无疑是一个开源硬件领域的重 ...

  7. Arduino可穿戴开发入门教程(大学霸内部资料)

    Arduino可穿戴开发入门教程(大学霸内部资料) 试读下载地址:链接:http://pan.baidu.com/s/1mg9To28 密码:z5v8 介绍:Arduino可穿戴开发入门教程(大学霸内 ...

  8. Galaxy S10使用几乎零黑边框的OLED显示屏

    2019年的首波安卓旗舰中,目前关于三星Galaxy S10的爆料是最多的,在销量连续萎缩后,外界对手机一哥的“发力之作”充满期待. 据TheElec报道,Galaxy S10正面使用的是一块几乎零黑 ...

  9. Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE

    Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...

随机推荐

  1. 一幅画<十六芒星盾>---程序员or艺术家

    画上是一面含有16个尖角的铜盾,这是我用程序算法生成的图像中最震撼的一幅.图像生成出来后,我看了好久,一边看一边想我的人生转向问题:我是不是该离开苦逼又屌丝的程序界,混入高端大气上档次的艺术圈? 说要 ...

  2. Sql server 备份还原后出现“受限制用户”问题

    SQL数据库作备份和还原操作几乎是日常性事务了.但某次在对Sql Server 2005 数据库做备份还原后经常出现数据库“受限制用户”的问题 工具/原料 Windows OS SQL DB 步骤/方 ...

  3. 析构函数 (C++)

    最近发现自己对析构函数的认知有一定的问题,因为之前有在使用placement new时主动调用对象的析构函数,所以觉得析构函数只是个普通的成员函数,调用的时候只会执行自己方法体内的代码内容,而回收内存 ...

  4. 第三十一章 elk(2)- 第二种架构(最常用架构)

    参考:http://linuxg.blog.51cto.com/4410110/1761757 最常用架构: 一.安装redis 1.下载:http://redis.io/download 2.解压后 ...

  5. .NET开发过程中的全文索引使用技巧之Solr(转)

       前言:相信许多人都听说过.net开发过程中基于Lucene.net实现的全文索引,而Solr是一个高性能,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询 ...

  6. [leetcode]Multiply Strings @ Python

    原题地址:https://oj.leetcode.com/problems/multiply-strings/ 题意: Given two numbers represented as strings ...

  7. iOS开发-UIActivityIndicatorView简单使用

    软件开发的时候经常会遇到半天才加载出来数据的情况,不管是程序写的烂,还是说本来网速比较慢,一般都都会给个提示让用户感觉到我们在努力的加载数据,iOS可以通过UIActivityIndicatorVie ...

  8. Scramble String leetcode java

    题目: Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty subs ...

  9. redis调优 -- 内存碎片

    最近查看了一下redis运行状况,发现公司测试服务器的redis内存不太够用,但是实际占用内存的数据量其实不大,以前也没有这种情况,之前在cache层新增了一个防刷积分任务的逻辑才会这样,搜索一下原因 ...

  10. 使用checkstyle来规范你的项目

    Checkstyle是什么 自从做了程序员,关于格式化的讨论就不曾中断过,到底什么才是正确的,什么才是错误的,到现在也没有完整的定论.但随着时间发展,渐渐衍生出一套规范出来.没有什么绝对的正确和错误, ...