编程语言
首页 > 编程语言> > I2C驱动12864液晶模块程序分享ARDUINO UNO

I2C驱动12864液晶模块程序分享ARDUINO UNO

作者:互联网

I2C驱动12864液晶模块程序分享(ARDUINO UNO)
材料:RSCG12864B01液晶模块;ARDUINO UNO板, U-PD2图片下载器,5v电源,RSCG12864B规格书
I2C控制的RSCG12864B01屏幕,是一款非常有用。就来分享一下这个屏幕的使用教程。
采用Arduino标准的Wire库去驱动RSCG12864B01屏幕,只需要注意I2C总线的电平即可(这个RSCG12864B01是5V的,Arduino ARM系列的是3.3V,所以需要用购买3.3V版本的液晶屏,否则会损坏控制板)。
新封装的库已经在UNO上跑了Example,没有问题,现在上几张图来给大家看一下效果,随后再介绍内部的函数使用。ARDUINO与RSCG12864B01液晶屏的接线
调用内置的16*16点阵的汉字
调用内置的12*12点阵的汉字
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用12864简单的显示一下数字,字符,图像的话,确实是一个好的选择。
使用图片做界面需配合U-PD2图片下载工具。
在这里插入图片描述
现在简单的介绍一下函数库的一些函数。先来看一下Example。
[kenrobot_code]#include <RSCG12864B.h>
// 实际使用屏幕的接线数量应该是3 + 2
// 3是指I2C的两根线加上屏幕的一个Busy信号线
// 2指的就是5V和GND
const int busyPin = 7;
RAYLIDLCD myLCD(busyPin); // 我定义Busy信号到D7(数字口7)

void setup() {
// put your setup code here, to run once:
myLCD.begin(); // 初始化一下屏幕
myLCD.setBrightness(255); // 设置屏幕亮度为255
}

void loop() {
// put your main code here, to run repeatedly:
unsigned char i;
// 下面四个数组是中文汉字的编码
char chn[] = {0XC9, 0XEE, 0XDB, 0XDA, 0XCA, 0XD0, 0XC8, 0XF0, 0XC1, 0XA2, 0XB5, 0XC2, 0XB5, 0XE7, 0XD7, 0XD3, 0x00,};
char f1[] = {0X49, 0X32, 0X43, 0XBD, 0XD3, 0XBF, 0XDA, 0X2C, 0XC4, 0XDA, 0XBD, 0XA8, 0XD7, 0XD6, 0XBF, 0XE2, 0,};
char f2[] = {0XD6, 0XD0, 0XCE, 0XC4, 0X2C, 0XBA, 0XAB, 0XCE, 0XC4, 0X2C, 0XC8, 0XD5, 0XCE, 0XC4, 0,};
char f3[] = {0XD6, 0XA7, 0XB3, 0XD6, 0X32, 0X44, 0XBB, 0XE6, 0XCD, 0XBC, 0};

myLCD.displayBMP(0); // 这个函数的作用就是显示预存在屏幕Flash中的图片
delay(800);
myLCD.displayBMP(1);
delay(800);
myLCD.displayBMP(2);
delay(800);
myLCD.displayBMP(3);
delay(800);
myLCD.displayBMP(4);
delay(800);
myLCD.displayBMP(5);
delay(800);
myLCD.clear(); // 清屏
myLCD.print(0, 15, chn, VLARGE); // print是用来在指定位置显示字符的,使用方法参考如下说明
// print(屏幕x, 屏幕y, 字符, 字号);其中字号有 SMALL, NORMAL, BIG, LARGE, VLARGE
// 显示中文只能使用LARGE和VLARGE
myLCD.print(8, 35, “www.raylid.com”, VLARGE);
delay(3000);
myLCD.clear();
myLCD.print(16, 15, chn, LARGE);
myLCD.print(20, 35, “www.raylid.com”, LARGE);
delay(3000);
myLCD.clear();
myLCD.fontReversOn(); // 反白显示,具体效果参考上面的图片
myLCD.print(25, 0, “Built-in font”, LARGE); // 反白这句话
myLCD.fontReversOff(); // 关闭反白
myLCD.print(3, 15, “57 ASCII 0123456789", SMALL); // 参考上面print
myLCD.print(3, 25, "5
7 ASCII ABCDEabcde”, SMALL);
myLCD.print(20, 35, “612/1212 FONT”, LARGE);
myLCD.print(5, 48, “816/1616 FONT”, VLARGE);
delay(3000);
myLCD.clear();
myLCD.print(0, 0, f1, VLARGE);
myLCD.print(0, 16, f2, VLARGE);
myLCD.print(0, 32, f3, VLARGE);
myLCD.drawRect(0, 50, 127, 63); // 绘制空心矩形
// 使用如下
// drawRect(x1, y1, x2, y2);
for (i = 2; i <= 125; i++)
{
myLCD.drawRectF(2, 52, i, 61); // 绘制实心矩形,用法和空心矩形一样
delay(100);
}
delay(3000);
}
[/kenrobot_code]
在这里插入图片描述

标签:displayBMP,myLCD,12864,ARDUINO,delay,print,VLARGE,屏幕,I2C
来源: https://blog.csdn.net/MASTA1/article/details/87892220