1.3寸OLED 12864 sh1106带中文字库液晶屏介绍
1.3寸OLED 12864 sh1106带中文字库液晶屏库简介
1.3寸OLED 12864 sh1106带中文字库SPI接口的液晶屏,这是一款来自中景园的屏幕。
屏幕技术资料介绍
链接:https://pan.baidu.com/s/1setO3KIlfqRFJ-utFWSKHQ
提取码:8888
- 包含51单片机和STM32案例,满足不同单片机的应用开发需求。提供的案例相对来讲很齐全的。
相关参数介绍
整体的屏幕参数:
原理图
外部引脚接口定义
资料所包含有的规格书
GT20L16S1Y 标准点阵汉字字库芯片介绍
GT20L16S1Y是一款内含16x16点阵的汉字库芯片,支持GB2312国标简体汉字(含有国家信标委合法授权)、ASCIl字符。排列格式为竖置横排。用户通过字符内码,利用我司所提供库文件内的函数接口可直接读取该内码的点阵信息。
GT20L16S1Y除含有上述字库以外,芯片提供64KB可擦写空间,包含16个扇区,每个扇区4K字节或16页,每页256字节,可自由写入空间地址范围为:0x6FFFF-0x7FFFF。仅支持上位机烧录,可重复擦写10万次以上。
芯片参数:
- 数据总线:SPI串行总线接口
- 点阵排列方式:竖置横排
- 时钟频率:45MHz@3.3V
- 工作电压:2.7V~3.6V
- 电流:
工作电流:5-15mA
睡眠电流:1-5uA
- 工作温度:-40℃~85℃
- 封装:SOT23-6
- 字符集:GB2312
- 字号:16×16点阵
汉字显示的调用过程
这里以STC单片机为例:
- 显示相关函数
void OLED_Display_GB2312_string(u8 x,u8 y,u8 *text);
void OLED_Display_string_5x7(u8 x,u8 y,u8 *text);
void OLED_ShowNum(u8 x,u8 y,float num,u8 len);
void OLED_Display_128x64(u8 *dp);
void OLED_Display_16x16(u8 x,u8 y,u8 *dp);
void OLED_Display_8x16(u8 x,u8 y,u8 *dp);
void OLED_Display_5x7(u8 x,u8 y,u8 *dp);
//举例:
OLED_Display_GB2312_string(0,0,"12864,带中文字库");
OLED_Display_16x16(97,6,jiong1);/*在第7页,第81列显示单个自编生僻汉字“囧”*/
OLED_Display_string_5x7(0,2,"<!@#$%^&*()_-+]/;.,?[");/*在第3页,第1列,显示一串5x7点阵的ASCII字*/
中文显示的过程,可以从
OLED_Display_GB2312_string(u8 x,u8 y,u8 *text)
了解整个调用和实现的过程。
void OLED_Display_GB2312_string(u8 x,u8 y,u8 *text)
{u8 i=0;u8 addrHigh,addrMid,addrLow;u8 fontbuf[32];while(text[i]>0x00){if((text[i]>=0xb0)&&(text[i]<=0xf7)&&(text[i+1]>=0xa1)){//国标简体(GB2312)汉字在晶联讯字库IC中的地址由以下公式来计算://Address = ((MSB - 0xB0) * 94 + (LSB - 0xA1)+ 846)*32+ BaseAdd;BaseAdd=0//由于担心8位单片机有乘法溢出问题,所以分三部取地址fontaddr=(text[i]-0xb0)*94;fontaddr+=(text[i+1]-0xa1)+846;fontaddr=fontaddr*32;addrHigh=(fontaddr&0xff0000)>>16; //地址的高8位,共24位addrMid=(fontaddr&0xff00)>>8; //地址的中8位,共24位addrLow=(fontaddr&0xff); //地址的低8位,共24位OLED_get_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,32);//取32个字节的数据,存到"fontbuf[32]"OLED_Display_16x16(x,y,fontbuf);//显示汉字到LCD上,y为页地址,x为列地址,fontbuf[]为数据x+=16;i+=2;}else if((text[i]>=0xa1)&&(text[i]<=0xa3)&&(text[i+1]>=0xa1)){fontaddr=(text[i]-0xa1)*94;fontaddr+=(text[i+1]-0xa1);fontaddr=fontaddr*32;addrHigh=(fontaddr&0xff0000)>>16;addrMid=(fontaddr&0xff00)>>8;addrLow=(fontaddr&0xff);OLED_get_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,32);OLED_Display_16x16(x,y,fontbuf);x+=16;i+=2;}else if((text[i]>=0x20)&&(text[i]<=0x7e)){unsigned char fontbuf[16];fontaddr=(text[i]-0x20);fontaddr=(unsigned long)(fontaddr*16);fontaddr=(unsigned long)(fontaddr+0x3cf80);addrHigh=(fontaddr&0xff0000)>>16;addrMid=(fontaddr&0xff00)>>8;addrLow=fontaddr&0xff;OLED_get_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,16);OLED_Display_8x16(x,y,fontbuf);x+=8;i+=1;}else i++;}
}
- 首先对将要显示的字符串从字库芯片里面字符地址逐一查询:
查询字符的过程:
- 字符的地址获取:
Address = ((MSB - 0xB0) * 94 + (LSB - 0xA1)+ 846)*32+ BaseAdd;BaseAdd=0
8位单片机地址做了拆分获取,再拼接:
fontaddr=(text[i]-0xb0)*94;fontaddr+=(text[i+1]-0xa1)+846;fontaddr=fontaddr*32;
- 通过字符地址,去获取字符数据。
取32个字节的数据,存到"fontbuf[32]"
OLED_get_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,32);
//从相关地址(addrHigh:地址高字节,addrMid:地址中字节,addrLow:地址低字节)中连续读出DataLen个字节的数据到 pbuff的地址
//连续读取
void OLED_get_data_from_ROM(u8 addrHigh,u8 addrMid,u8 addrLow,u8 *pbuff,u8 DataLen)
{u8 i;OLED_ROM_CS_Clr();//这里将字库芯片SPI片选(CS引脚)拉低,访问有效Send_Command_to_ROM(0x03);Send_Command_to_ROM(addrHigh);Send_Command_to_ROM(addrMid);Send_Command_to_ROM(addrLow);for(i=0;i<DataLen;i++){*(pbuff+i)=Get_data_from_ROM();}OLED_ROM_CS_Set();//这里获取完字符数据后,将字库片选引脚(CS引脚)拉高
}
- 从字库芯片取到数据后,显示到OLED屏幕上。
//显示汉字到LCD上,y为页地址,x为列地址,fontbuf[]为数据
OLED_Display_16x16(x,y,fontbuf);
//显示16x16点阵图像、汉字、生僻字或16x16点阵的其他图标
void OLED_Display_16x16(u8 x,u8 y,u8 *dp)
{u8 i,j;for(j=0;j<2;j++){OLED_address(x,y);for(i=0;i<16;i++){OLED_WR_Byte(*dp,OLED_DATA); //写数据到OLED,每写完一个8位的数据后列地址自动加1dp++;}y++;}
}
对于使用者来说,只需关系如何调佣即可,无需关系是如何实现,这块液晶屏也是借助的第三方的字库芯片来实现的。
有爱情,便全心对待,没有爱情,也一个人惬意。学会一个人生活,不论身边是否有人疼爱。做好自己该做的,有爱或无爱,都安然对待。缘份到了,便去伸手抓住,缘份未到,就让自己活得精彩。爱情,本就是件宁缺勿滥的事,急不得。 |
---|
1.3寸OLED 12864 sh1106带中文字库液晶屏介绍相关推荐
- linux移植1.3寸oled屏幕,芯片SH1106
之前移植过MPU6050(I2C协议)和0.96寸oled(SPI协议),这次移植一个I2C协议的oled. I2C的介绍 可以参考上一篇I2C的文章: linux移植MPU6050的I2C驱动 -- ...
- ESP32驱动 1.3寸OLED SH1106芯片)
使用U8g2lib库驱动 1.3寸OLED 驱动IC:SH1106 分辨率:128*64 支持电压3.3V/5.0V #include <Arduino.h> #include <U ...
- SWM181 驱动SH1106 1.3寸 OLED屏幕显示
SWM181 驱动SH1106 1.3寸 OLED屏幕显示 ✨实测驱动的屏幕为sh1106,该工程源码不适合通过修改相关的偏移地址来适配ssd1306 I2C 0.96寸屏幕显示,实际修改后,经测试并 ...
- 【手把手带你用pid算法控制电机】——(1)编码器电机和0.96寸OLED显示屏的使用
目录 前言 一.需要用到的器材 二.接线说明 三.cubmx配置 3.1 时钟树 3.2 输出PWM(TIM4) 3.3 编码器模式(TIM3) 3.4 中断定时器配置(TIM1) 3.5 配置IIC ...
- 1.3寸OLED SH1106 IIC驱动显示错误解决方法
网上买的1.3寸OLED 用的时候发现显示有问题,整体像素都往左两个,导致左边少两列像素,右边两列则为乱码. 解决方法 在设置光标函数中让x轴向右位移2个像素. void OLED_SetCursor ...
- STM8驱动0.96寸OLED(12864液晶屏)
由于中景园电子给出的例程不够全面,因此特地花时间重新整理了一下代码,并加上了其他的功能.本文记录了使用模拟四线 SPI 协议驱动 OLED 的代码. 文章目录 1 oled.h 2 oled.c 2. ...
- STM32(基于HAL库)驱动0.96寸OLED屏幕(六脚)
STM32驱动0.96寸OLED屏幕(六脚) 1 序言 2 如何利用STM32单片机驱动12864液晶屏 2.1*基本配置* 2.2 *0.96寸OLED端口含义* 2.3 *0.96寸OLED液晶屏 ...
- 【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 工业产品3.12寸OLED屏调研
在我们的开发中,经常会看到一些产品会用到数码管或者1602的屏幕,一个原因是需要显示的内容不多,并且想要低功耗,但是 1602,12864的显示效果并不是很好,这时候使用OLED屏幕做替代方案是一个不 ...
- 基于STM32F1自写移植代码分享系列之0.96寸OLED模块
基于STM32F1自写移植代码分享系列之0.96寸OLED模块 文章目录 基于STM32F1自写移植代码分享系列之0.96寸OLED模块 文件获取 文件使用方法 参数配置 引脚配置 函数介绍 函数说明 ...
最新文章
- 苗旺:因果推断,观察性研究和 2021 年诺贝尔经济学奖
- Linux下互斥量与条件变量详细解析
- Flutter 基础Widgets之AppBar详解
- 人脸识别技术大总结—Face Detection Alignment
- 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表
- 信息采集-火车采集器
- 微信jssdk遇到的一些问题汇总
- css 单行/多行文字垂直居中问题
- Linux网络编程——端口复用(多个套接字绑定同一个端口----避免服务器重启时,端口绑定不上)
- lammps建模_lammps建模方法,即生成data文件
- C程序设计,贪吃蛇程序
- 概念数据模型、逻辑数据模型、物理数据模型
- 澳洲计算机科学专业,盘点澳洲八大名校那些最强的专业—计算机科学专业
- DSP 基础学习 1:搭建环境与CCS6创建工程模板
- 〖Python自动化办公篇㉑〗- python实现邮件自动化 - 定时发送邮件
- 对日软件工程师的几种招聘要求
- Ubuntu(linux) 7z压缩和解压缩命令
- Python——类(class)的定义及使用
- css 设置MP4 video视频背景色透明
- SSM-Mybatis通用Mapper
热门文章
- 用TensorFlow为图片添加字幕
- 计算机软件英文参考文献,软件工程英文参考文献(优秀范文105个)
- 数字图像处理-知识点总结
- lammps教程:磨屑原子Ovito后处理教程
- 【SDE】随机微分方程(1)
- oracle sqlcode 多条,oracle sqlerrm和sqlcode函数
- matlab正交表,正交表的构造方法及Matlab实现
- pythonpptx模块详解_详解 Python 操作 PPT 的各种骚操作!
- python爬虫分析百度文库、道客巴巴、豆丁网获取图片链接
- 浅析Linux系统入侵排查与应急响应技术