注意:1.0或者更高级版本IDE使用的库与002X IDE使用的库是不一样的,需要根据不同的IDE下载不同的库。(帖子尾部有附件下载)
12864是128*64点阵液晶模块的点阵数简称,业界约定俗成的简称。
控制芯片一般采用ST7920或者与之相兼容的。
数据总线采用8位并口与SPI串口方式。
12864液晶分带字库版本与不带字库版本。
字库版不需要用点阵生成器把汉字变成点阵后再输入,直接输入汉字内码即可显示出对应汉字,无字库版想要显示汉字,只能自己按照点阵方式驱动。
下图就是12864液晶实物。
下图是arduino与12864液晶SPI连接方式的硬件连接图
SPI连接方式驱动代码- /*
- LCD Arduino
- PIN1 = GND
- PIN2 = 5V
- RS(CS) = 8;
- RW(SID)= 9;
- EN(CLK) = 3;
- PIN15 PSB = GND;
- */
- #include "LCD12864RSPI.h"
- #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
- unsigned char show0[]={0xBC,0xAB,0xBF,0xCD,0xB9,0xA4,0xB7,0xBB};//极客工坊
- unsigned char show1[]="geek-workshop";
- unsigned char logo0[]={ //笑脸
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,
- 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,
- 0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
- 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x03,0xFE,0x00,
- 0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,
- 0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,
- 0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,
- 0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,
- 0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,
- 0x00,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,
- 0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,
- 0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,
- 0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,
- 0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,
- 0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,
- 0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x38,0x00,0x40,0x00,
- 0x00,0x80,0x1C,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x78,0x03,0xF8,0x00,
- 0x07,0xF0,0x1E,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x70,0x07,0xFE,0x00,
- 0x0F,0xFC,0x0E,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xF0,0x1F,0xBF,0x00,
- 0x3F,0x7E,0x0F,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xE0,0x3E,0x0F,0x80,
- 0x7C,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xE0,0x7C,0x07,0xC0,
- 0xF8,0x0F,0x87,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xE0,0xF8,0x01,0xE1,
- 0xF0,0x03,0xC3,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xC0,0xF0,0x01,0xE1,
- 0xE0,0x03,0xC3,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xC0,0xE0,0x00,0xE1,
- 0xC0,0x01,0xC3,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,
- 0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,
- 0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,
- 0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,
- 0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,
- 0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,
- 0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xF0,0x00,0x0C,0x00,
- 0x0C,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x70,0x00,0x1E,0x00,
- 0x1E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x78,0x00,0x1F,0x00,
- 0x3E,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x38,0x00,0x07,0x80,
- 0xF8,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x3C,0x00,0x03,0xE1,
- 0xF0,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x1E,0x00,0x01,0xFF,
- 0xE0,0x00,0x78,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0xFF,
- 0x80,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x3F,
- 0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,
- 0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,
- 0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,
- 0x00,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,
- 0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,
- 0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,
- 0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x00,
- 0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x03,0xFE,0x00,
- 0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
- 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,
- 0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,
- 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- void setup()
- {
- LCDA.Initialise(); // 屏幕初始化
- delay(100);
- }
- void loop()
- {
- LCDA.CLEAR();//清屏
- delay(100);
- LCDA.DisplayString(0,2,show0,AR_SIZE(show0));//第一行第三格开始,显示文字极客工坊
- delay(100);
- LCDA.DisplayString(2,1,show1,AR_SIZE(show1));;//第三行第二格开始,显示文字geek-workshop
- delay(5000);
- LCDA.CLEAR();//清屏
- delay(100);
- LCDA.DrawFullScreen(logo0);
- delay(5000);
- }
复制代码 实验效果如下
先来介绍一下怎样查找要输出地汉字的内码,打开汉字内码转换软件以后,点击转换就会显示出不同汉字对应的内码,比如"极"对应的内码是BCAB,那么给12864液晶发送的就是分为两段,0xBC与0xAB。这样就可以显示出极字了
本次实验使用12864液晶显示了一个笑脸图片,怎样显示任意图片呢?
先打开photoshop,新建文档,大小为128*64,位图
然后绘制出要现实的图案,比如这个笑脸,画好后保存。
然后打开取字模软件,先设置参数,如下图,主要是设置输出为C语言,大小为128*64,设置好后点击参数确定。
然后打开制作出来的图片,如果图片效果不是想要的白底黑字,参数里再重新设置下”黑白反取“
选择保存数据,跳出窗口,选择好路径进行保存。
保存出来的smile.h就是包含图片代码的文件,我们打开看一下,{ }括号中的内容,就是我们需要的。
一般使用SPI接法后,就很少使用8位接法了,因为占用端口太多了,但是还是放出来供大家学习下。
先上硬件连接图
下面的是8位接法的代码,使用了库文件。- /*
- LCD Arduino
- RS = 17; Analog Pin3
- RW = 16; Analog Pin2
- EN = 18; Analog Pin4
- D0 = 8;
- D1 = 9;
- D2 = 10;
- D3 = 11;
- D4 = 4;
- D5 = 5;
- D6 = 6;
- D7 = 7;
- PIN15 PSB = 5V;
- */
- #include "LCD12864R.h"
- #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
- unsigned char show0[]={0xBC,0xAB,0xBF,0xCD,0xB9,0xA4,0xB7,0xBB};//极客工坊
- unsigned char show1[]="geek-workshop";
-
- void setup()
- {
- LCDA.Initialise(); // 屏幕初始化
- delay(100);
- }
- void loop()
- {
- LCDA.CLEAR();//清屏
- delay(100);
- LCDA.DisplayString(0,2,show0,AR_SIZE(show0));//第一行第三格开始,显示文字极客工坊
- delay(100);
- LCDA.DisplayString(2,1,show1,AR_SIZE(show1));;//第三行第二格开始,显示文字geek-workshop
- while(1);
- }
复制代码 12864液晶产品手册
汉字内码转换软件
液晶图片取模软件
12864 SPI库文件(002X IDE使用)
12864 8位接法库文件(002X IDE使用)
补充1.0.1版本IDE使用的12864库
附上ardyPro写的更好的汉子内码转换工具
|