zzz 发表于 2012-2-25 13:14:24

【小巧高性能】mini LCD12864测试+自改可用的驱动库

上次附件传错了,这里道下歉哈~已经更新
最近淘宝上出了一些mini版的12864,使用SPI连接方式,外形非常小巧,价格十分低廉,刷新速度比一般的大号LCD12864快很多,而且支持作图。

由于到手后苦于无法用arduino驱动,通过搜索发现Ladyade做过ST7565的arduino驱动库,遂直接挖过来,结果屏幕左右颠倒,从中间分成两半,无法正常显示,于是经过一晚上的摸索,终于修正了参数,成功使用,下面我就共享一下库及其程序。

PS:如果要显示图片,可以直接使用弘毅的BMP转十六进制的字模软件,但是设置要改成纵向生成8位。






库:
实例程序:// Zzz

#include "ST7565.h"

int ledPin =13;   
#define BACKLIGHT_LED 10

ST7565 glcd(9, 8, 7, 6, 5);

#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH16

static unsigned char __attribute__ ((progmem)) logo16_glcd_bmp[]={
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,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,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,0x10,0xF0,0xF0,0x30,
      0x30,0xF0,0xE0,0xC0,0x10,0xF0,0xF0,0x10,0xF0,0xF0,0x90,0xC0,0xF0,0x70,0x10,0x00,
      0x00,0x00,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xE0,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,
      0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF8,0xF8,0xF8,0x78,
      0x38,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
      0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x3E,0x3F,0x33,0x30,
      0x38,0x1F,0x2F,0x30,0x3F,0x3F,0x31,0x00,0x30,0x3F,0x3F,0x23,0x00,0x00,0x00,0x00,
      0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFE,0x80,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x80,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xFC,0xFC,0xFC,0xF8,
      0xF8,0xF8,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      0x00,0x00,0x00,0xC0,0xE0,0xF8,0xFC,0xFE,0xFF,0x7F,0x1F,0x0F,0x07,0x03,0x00,0x00,
      0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,
      0x1F,0x0F,0x00,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,
      0xFC,0xFC,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0x0F,0xFF,0xFF,0xFF,0xFF,0xFC,0x80,
      0x00,0x00,0x00,0x80,0xF0,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFF,0xFF,
      0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFE,0xFF,0xFF,0x7F,0x0F,0x0F,0x7F,
      0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      0xFC,0xFF,0x7F,0x3F,0x1F,0x3F,0xFF,0xFF,0xFC,0xF0,0xF0,0xE0,0x80,0x00,0x00,0x00,
      0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,
      0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x07,0x7F,0xFF,0xFF,0xFF,
      0xFC,0xE0,0xF0,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
      0xFF,0xFE,0x00,0x00,0x00,0x00,0x80,0xF8,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,
      0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x80,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      0x03,0x01,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,
      0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
      0x7F,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x0F,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,
      0xFF,0xE7,0x87,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x7F,0xFF,
      0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
      0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x01,0x01,0x01,0x01,
      0x01,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xC0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0xC0,
      0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x3F,
      0xFF,0xFF,0xFF,0xFE,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
      0x07,0x07,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x03,0x03,
      0x03,0x03,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x01,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x0F,0x1F,0x3F,0x3F,0x3F,0x3F,0x1F,
      0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
      0xF0,0xF0,0xF0,0xE7,0xE7,0xE7,0xE7,0xE7,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,
      0x00,0x03,0x07,0x07,0x07,0x03,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
      0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

void setup()   {               
Serial.begin(9600);


pinMode(BACKLIGHT_LED, OUTPUT);
digitalWrite(BACKLIGHT_LED, LOW);


glcd.st7565_init();
glcd.st7565_command(CMD_DISPLAY_ON);
glcd.st7565_command(CMD_SET_ALLPTS_NORMAL);
glcd.st7565_set_brightness(0x00);

glcd.clear();
glcd.drawbitmap(0, 0, logo16_glcd_bmp,128, 64, BLACK);
glcd.display();

delay(50000);
glcd.clear();

glcd.drawstring(0,0, "LCD12864 Testing");
glcd.drawstring(0,3, "Control IC ST7565LCD");
glcd.drawstring(0,6, "library Re-Design Zzz");
glcd.display();
delay(7000);
glcd.clear();


}


void loop()                     
{}




ardyPro 发表于 2012-2-25 13:17:58

不错 多少米?

Malc 发表于 2012-2-25 13:31:53

不错啊~楼主搞点应用出来~

oo0p 发表于 2012-2-25 14:01:20

前来围观

yanghaoxin314 发表于 2012-2-25 14:01:34

搞个雷电,格斗,坦克啥的游戏:lol

zzz 发表于 2012-2-25 14:13:05

yanghaoxin314 发表于 2012-2-25 14:01 static/image/common/back.gif
搞个雷电,格斗,坦克啥的游戏

那些都没品位:lol我准备移植PEWPEW2

davidce 发表于 2012-2-25 14:15:53

赞一个,mini版的12864在哪买的?

坏鸟 发表于 2012-2-25 14:26:55

本帖最后由 坏鸟 于 2012-2-25 14:27 编辑

不错不错,辛苦了!!收藏一个,以后肯定会用到。
谢谢分享哇.......!!!

Micky 发表于 2012-3-2 21:48:01

能否发下连线图啊谢谢

wolfkin 发表于 2012-3-26 14:35:37

Micky 发表于 2012-3-2 21:48 static/image/common/back.gif
能否发下连线图啊谢谢

根据lz的代码 ST7565 glcd(9, 8, 7, 6, 5);
查看了下ST7565.h内容
class ST7565 {
public:
ST7565(int8_t SID, int8_t SCLK, int8_t A0, int8_t RST, int8_t CS) :sid(SID), sclk(SCLK), a0(A0), rst(RST), cs(CS) {}
ST7565(int8_t SID, int8_t SCLK, int8_t A0, int8_t RST) :sid(SID), sclk(SCLK), a0(A0), rst(RST), cs(-1) {}

这里有定义的
也就是说数字口9到5分别接12864的L_SI,L_CLK,L_A0,L_RST,L_CS
然后你接好GND和LED那两个就好了。

PS:我测试了下 显示BMP那个正常,但是位置错位,显示文字看不清,像乱码一样。估计代码那里有问题
有待进一步测试。

thomas 发表于 2012-3-27 06:55:24

RE: 【小巧高性能】mini LCD12864测试+自改可用的驱动库

wolfkin 发表于 2012-3-26 14:35 static/image/common/back.gif
根据lz的代码 ST7565 glcd(9, 8, 7, 6, 5);
查看了下ST7565.h内容
class ST7565 {


arduino 还是放弃图片显示吧,估计溢出了。
弘毅的12864教程,显示两张图片就会乱码

GIOCHEN 发表于 2012-5-29 21:41:27

thomas 发表于 2012-3-27 06:55 static/image/common/back.gif
arduino 还是放弃图片显示吧,估计溢出了。
弘毅的12864教程,显示两张图片就会乱码

我也碰到过溢出 换成1280 2560 就OK了

mjkdz 发表于 2012-7-16 22:46:39

楼主 我的问题和你的一样
把你的程序写了换一样
能说下杂样修改反转吗?

pierre 发表于 2012-7-25 16:26:51

这个LCD可以反转显示吗?

highplay86 发表于 2012-7-29 13:07:24

地址好多...
页: [1] 2 3
查看完整版本: 【小巧高性能】mini LCD12864测试+自改可用的驱动库