上篇中我们已经使用驱动库在OLED屏上显示出英文字符,除去数字、字母、符号等,OLED还能显示汉字、图片及任意图形。本篇介绍取模软件的使用,教大家如何在OLED屏上显示汉字。

1. 字模显示原理及取模软件的使用

我们使用的OLED屏是由方形的发光点阵列组成的,分辨率为128x64。英文和数字最小可用8x8像素,汉字最小显示像素为16x16,通常为了显示效果,英文和数字通常使用8x16像素表示。要显示需要的字符只需对应点亮像素区域中对应的发光点即可。

字模显示

字模一般都是通过取模软件生成的,接下来介绍「PCtoLCD」取模软件的使用:

1. Windows系统下双击启动软件,点击「模式」,选择「字符模式」,通常默认就是字符模式。

字符模式

2. 点击「选项」进行字模配置。通常字模配置要根据程序驱动方式来选择,本篇中我们选择阴码、逐行式、顺向,其他选项如下图所示。

选项配置

3. 输入汉字。点击生成字模或者保存字模,就会得到对应的点阵数据。

生成字模

2. 实验材料

  • Uno R3开发板

  • 配套USB数据线

  • 面包板及配套连接线

  • OLED显示屏

3. 实验步骤

1. 根据原理图搭建电路图。

IIC接口只需要两根线。OLED屏的VCC和GND分别连接开发板的3.3V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。

实验原理图如下图所示:

电路连接图

实物连接图如下图所示:

实物连接图

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

 1/* 2  OLED显示汉字 3*/ 4#include  5#include  6#include  7 8#define OLED_RESET     4 9Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);1011//取16X16汉字字模 逐行式 顺向高位在前12static const unsigned char PROGMEM str1[] =13{14  0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x3F, 0xF8, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08,15  0x21, 0x08, 0x21, 0x08, 0x3F, 0xF8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x0016};/*"中",0*/1718static const unsigned char PROGMEM str2[] =19{20  0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x08, 0x20, 0x08, 0x20,21  0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x30, 0x18, 0xC0, 0x0622};/*"文",1*/23static const unsigned char PROGMEM str3[] =24{25  0x00, 0x00, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0,26  0x04, 0x40, 0x44, 0x44, 0x24, 0x44, 0x14, 0x48, 0x14, 0x50, 0x04, 0x40, 0xFF, 0xFE, 0x00, 0x0027};/*"显",2*/2829static const unsigned char PROGMEM str4[] =30{31  0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x01, 0x00,32  0x01, 0x00, 0x11, 0x10, 0x11, 0x08, 0x21, 0x04, 0x41, 0x02, 0x81, 0x02, 0x05, 0x00, 0x02, 0x0033};/*"示",3*/3435void setup() {36  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);37  display.setTextColor(WHITE);//开像素点发光38  display.clearDisplay();//清屏3940  display.setTextSize(1); //设置字体大小41  display.setCursor(35, 5);//设置显示位置42  display.println("-TonyCode-");//输出字符4344  display.drawBitmap(32, 32, str1, 16, 16, 1); //画出字符对应点阵数据45  display.drawBitmap(48, 32, str2, 16, 16, 1); //画出字符对应点阵数据46  display.drawBitmap(64, 32, str3, 16, 16, 1); //画出字符对应点阵数据47  display.drawBitmap(80, 32, str4, 16, 16, 1); //画出字符对应点阵数据48  display.display();//开显示                4950}5152void loop() {5354}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

4. 实验现象

OLED显示出对应中文。

1616字模

5. 实验分析

程序中我们使用了图像库「Adafruit_GFX」中的drawBitmap()函数,函数参数分别输入了要显示的坐标,字符数据源,字符的宽高,最后参数由于我们的OLED是单色的,默认为1。

我们可以选择不同的字体,也可以使用不同像素获取不同大小的字符,如下图显示的是32x32像素的汉字,注意drawBitmap()函数中对应字符宽高需要对应。

3232字模

欢迎关注:TonyCode

fpga驱动oled iic显示代码_Arduino提高篇02—OLED屏汉字显示相关推荐

  1. arduino nano 蓝牙_Arduino提高篇23—OLED电子时钟

    关注. 星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 在前篇文章中,我们通过库函数驱动DS1302获取到时间数据并且通过串口输出,而串口只是方便调试,要制作电子时钟,我们需 ...

  2. Arduino提高篇02—OLED屏汉字显示

    上篇中我们已经使用驱动库在OLED屏上显示出英文字符,除去数字.字母.符号等,OLED还能显示汉字.图片及任意图形.本篇介绍取模软件的使用,教大家如何在OLED屏上显示汉字. 1. 字模显示原理及取模 ...

  3. arduino使用oled代码_Arduino提高篇06—温湿度OLED显示

    关注.星标公众号,不错过精彩内容 本篇结合温湿度传感器DHT11和OLED,将采集到的温湿度显示到OLED屏幕上. DHT11使用上篇介绍的「DHT sensor library」库,OLED使用U8 ...

  4. arduino使用oled代码_Arduino提高篇04—U8g2库驱动OLED

    OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏. 1. U8g2库介绍 U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机,STM32, ...

  5. arduino使用oled代码_Arduino提高篇14—摇杆按键操作OLED

    关注. 星标公众号,不错过精彩内容 摇杆按键操作OLED 摇杆在很多应用场合被用来替代轻触按键,不但操作上方便,而且一个摇杆可替代多个按键,这使得电路设计得到简化.本篇演示如何将摇杆扭转的四个方向作为 ...

  6. Arduino提高篇23—OLED电子时钟

    在前篇文章中,我们通过库函数驱动DS1302获取到时间数据并且通过串口输出,而串口只是方便调试,要制作电子时钟,我们需要使用显示模块,本篇结合OLED对时间数据进行展示. 1. 实验材料 Uno R3 ...

  7. vc 串口 实时保存_Arduino提高篇22—实时时钟DS1302

    关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 很多电子爱好者都热衷制作电子时钟来练手,这些时钟会使用数码管.点阵屏.LCD液晶屏.OLED屏.TFT屏等显示模块,所使 ...

  8. arduino uno r3单片机封装图_Arduino提高篇22—实时时钟DS1302

    关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 很多电子爱好者都热衷制作电子时钟来练手,这些时钟会使用数码管.点阵屏.LCD液晶屏.OLED屏.TFT屏等显示模块,所使 ...

  9. 华为mate30微信锁屏不显示内容,微信来消息锁屏不显示详情怎么回事?

    华为mate30微信锁屏不显示内容,先检查网络问题,再看手机和微信设置项是否正确.下面列举了5种可能存在的原因及解决方法分享给大家. 一.检查手机是否设置了杂志锁屏 1.手机锁屏界面通知亮屏提示和显示 ...

最新文章

  1. Sharding-JDBC(一)简介
  2. 【PAT】1009. Product of Polynomials (25)
  3. python怎么安装开发版_python - easy_install的安装和使用
  4. HDU 5996 dingyeye loves stone [阶梯Nim]
  5. 华为公开“一种芯片堆叠封装及终端设备”专利
  6. 和菜鸟一起深入学习国嵌实验之vim常用命令
  7. R语言基于S3的面向对象编程
  8. cmake_安装导入静态/动态库的三种方式(find_package INSTALL 使用绝对路径)
  9. 点击谷歌浏览器安装包没有反应
  10. 数模技术转换应用于计算机控制,数模转换器的作用
  11. c字打头的语言英语单词,C字开头的励志的英文单词要C字开头的~例如Champion,Confidence,...-c英语开头名词-英语-柯拿拷同学...
  12. 高效c语言拧魔方算法,3阶魔方阵的算法
  13. mv单位是什么意思_ayawawa经常说的pu MV是什么意思 怎么mv是什么意思算
  14. IIS 编译器错误消息: CS0016未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\roo
  15. Vue中updated和watch的区别
  16. android TV端如何读取微信网页版二维码显示生成一张图片
  17. 继续教育计算机专业能学到东西吗,继续教育个人学习心得体会
  18. ThinkPad 水货笔记本
  19. 存量市场之下,电商之战深入腹地且逻辑未变
  20. 计算机网络安全 鲁立,计算机网络安全教学课件ppt作者鲁立08课件.ppt

热门文章

  1. 全球Top 1000计算机科学家h指数公布,中国顶尖计算机科学家人数进入前三
  2. 树莓派竟出微控制器了!Raspberry Pi Pico 只需 4 美元!
  3. 长沙 · 中国1024程序员节盛况空前,500 万程序员线上线下引爆星城
  4. 趣图 | 著名的悖论蒙提霍尔问题到底是什么?
  5. 接招!1000+ 常用的 Linux 命令来袭
  6. “编程能力差,90%输在了这点上!”骨灰级工程师:其实你们都是瞎努力!
  7. 转写准确率95%,搜狗开放AI技术实现录音笔行业进化
  8. Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!
  9. 周鸿祎谈华为鸿蒙系统;百度回应“用搜索引擎填高考志愿”;腾讯首次全面公开开源路线图 | 极客头条...
  10. QQ 邮箱漂流瓶将下线;华为美国公司起诉美商务部;Ubuntu 不会放弃 32 位应用程序支持 | 极客头条...