fpga驱动oled iic显示代码_Arduino提高篇02—OLED屏汉字显示
上篇中我们已经使用驱动库在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显示出对应中文。
5. 实验分析
程序中我们使用了图像库「Adafruit_GFX」中的drawBitmap()函数,函数参数分别输入了要显示的坐标,字符数据源,字符的宽高,最后参数由于我们的OLED是单色的,默认为1。
我们可以选择不同的字体,也可以使用不同像素获取不同大小的字符,如下图显示的是32x32像素的汉字,注意drawBitmap()函数中对应字符宽高需要对应。
fpga驱动oled iic显示代码_Arduino提高篇02—OLED屏汉字显示相关推荐
- arduino nano 蓝牙_Arduino提高篇23—OLED电子时钟
关注. 星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 在前篇文章中,我们通过库函数驱动DS1302获取到时间数据并且通过串口输出,而串口只是方便调试,要制作电子时钟,我们需 ...
- Arduino提高篇02—OLED屏汉字显示
上篇中我们已经使用驱动库在OLED屏上显示出英文字符,除去数字.字母.符号等,OLED还能显示汉字.图片及任意图形.本篇介绍取模软件的使用,教大家如何在OLED屏上显示汉字. 1. 字模显示原理及取模 ...
- arduino使用oled代码_Arduino提高篇06—温湿度OLED显示
关注.星标公众号,不错过精彩内容 本篇结合温湿度传感器DHT11和OLED,将采集到的温湿度显示到OLED屏幕上. DHT11使用上篇介绍的「DHT sensor library」库,OLED使用U8 ...
- arduino使用oled代码_Arduino提高篇04—U8g2库驱动OLED
OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏. 1. U8g2库介绍 U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机,STM32, ...
- arduino使用oled代码_Arduino提高篇14—摇杆按键操作OLED
关注. 星标公众号,不错过精彩内容 摇杆按键操作OLED 摇杆在很多应用场合被用来替代轻触按键,不但操作上方便,而且一个摇杆可替代多个按键,这使得电路设计得到简化.本篇演示如何将摇杆扭转的四个方向作为 ...
- Arduino提高篇23—OLED电子时钟
在前篇文章中,我们通过库函数驱动DS1302获取到时间数据并且通过串口输出,而串口只是方便调试,要制作电子时钟,我们需要使用显示模块,本篇结合OLED对时间数据进行展示. 1. 实验材料 Uno R3 ...
- vc 串口 实时保存_Arduino提高篇22—实时时钟DS1302
关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 很多电子爱好者都热衷制作电子时钟来练手,这些时钟会使用数码管.点阵屏.LCD液晶屏.OLED屏.TFT屏等显示模块,所使 ...
- arduino uno r3单片机封装图_Arduino提高篇22—实时时钟DS1302
关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 很多电子爱好者都热衷制作电子时钟来练手,这些时钟会使用数码管.点阵屏.LCD液晶屏.OLED屏.TFT屏等显示模块,所使 ...
- 华为mate30微信锁屏不显示内容,微信来消息锁屏不显示详情怎么回事?
华为mate30微信锁屏不显示内容,先检查网络问题,再看手机和微信设置项是否正确.下面列举了5种可能存在的原因及解决方法分享给大家. 一.检查手机是否设置了杂志锁屏 1.手机锁屏界面通知亮屏提示和显示 ...
最新文章
- Sharding-JDBC(一)简介
- 【PAT】1009. Product of Polynomials (25)
- python怎么安装开发版_python - easy_install的安装和使用
- HDU 5996 dingyeye loves stone [阶梯Nim]
- 华为公开“一种芯片堆叠封装及终端设备”专利
- 和菜鸟一起深入学习国嵌实验之vim常用命令
- R语言基于S3的面向对象编程
- cmake_安装导入静态/动态库的三种方式(find_package INSTALL 使用绝对路径)
- 点击谷歌浏览器安装包没有反应
- 数模技术转换应用于计算机控制,数模转换器的作用
- c字打头的语言英语单词,C字开头的励志的英文单词要C字开头的~例如Champion,Confidence,...-c英语开头名词-英语-柯拿拷同学...
- 高效c语言拧魔方算法,3阶魔方阵的算法
- mv单位是什么意思_ayawawa经常说的pu MV是什么意思 怎么mv是什么意思算
- IIS 编译器错误消息: CS0016未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\roo
- Vue中updated和watch的区别
- android TV端如何读取微信网页版二维码显示生成一张图片
- 继续教育计算机专业能学到东西吗,继续教育个人学习心得体会
- ThinkPad 水货笔记本
- 存量市场之下,电商之战深入腹地且逻辑未变
- 计算机网络安全 鲁立,计算机网络安全教学课件ppt作者鲁立08课件.ppt
热门文章
- 全球Top 1000计算机科学家h指数公布,中国顶尖计算机科学家人数进入前三
- 树莓派竟出微控制器了!Raspberry Pi Pico 只需 4 美元!
- 长沙 · 中国1024程序员节盛况空前,500 万程序员线上线下引爆星城
- 趣图 | 著名的悖论蒙提霍尔问题到底是什么?
- 接招!1000+ 常用的 Linux 命令来袭
- “编程能力差,90%输在了这点上!”骨灰级工程师:其实你们都是瞎努力!
- 转写准确率95%,搜狗开放AI技术实现录音笔行业进化
- Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!
- 周鸿祎谈华为鸿蒙系统;百度回应“用搜索引擎填高考志愿”;腾讯首次全面公开开源路线图 | 极客头条...
- QQ 邮箱漂流瓶将下线;华为美国公司起诉美商务部;Ubuntu 不会放弃 32 位应用程序支持 | 极客头条...