(SKU:DFR0091)SPI LCD12864 模块

来自DFRobot Product Wiki
跳转至: 导航搜索
DFR0091.jpg

目录

概述

SPI LCD12864模块是一款基于12864液晶显示器开发的显示模块。考虑到LCD12864显示器在并行数据传输模式下的使用难度较高,驱动代码较为复杂,我们开发了这款SPI为接口的显示模块。
12864带汉字库图形点阵液晶显示模块,可显示8192个中文汉字(16X16点阵)、128个字符(8X16点阵)和图形显示(128X64点阵)。该模块具有并行和串行接口,背光控制(并行模式时使用),背光开关(串行模式使用),串行、并行模式开关切换功能,对比度调节电位器。
接口电路板隐藏于LCD背面,即美观又不影响安装。使用IDC6插座作为SPI串行接口,使用一个IDC6专用连接线即可插接到interface shield上实现串行控制,使用杜邦排线可连接到Arduino传感器扩展板上实现并行控制,可与Arduino控制器组成一个强劲的显示系统。


技术规格

  • 电源电压:VDD4.5~5.5V(内置升压电路,无需负压)
  • 控制器:ST7920
  • 点阵个数:128列×64行
  • 显示颜色:蓝底白字
  • 可视角度:170度
  • LCD类型:STN
  • 控制接口:4/8位数字并行驱动(LCD12864默认模式)和3位串行
  • LED背光:蓝色
  • 软件功能:光标显示、画面移位、自定义字符、反白显示、睡眠模式等。
  • 工作温度:-20℃~70℃
  • 存储温度:-30℃~80℃
  • 可通过连接Interface Shield使用Arduino直接驱动,也可根据引脚图使用杜邦线连接
  • 模块尺寸:93×70×22mm
  • 视域尺寸:73×39mm


连线图

链接示意图

模式选择

液晶运在默认Pallelel模式。 R9用于设置接口模式。切换到SPI模式下,需要移动到R10的R9电阻。

示例代码

此示例并行模式下工作。您将需要Ard​​uino的库可以从这儿下载 点击下载.

/*
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[]={0xBB,0xFA,0xC6,0xF7,0xC8,0xCB,0xC3,0xCE,0xB9,0xA4,0xB3,0xA7};//DFRobot
unsigned char show1[]="www.dfrobot.com";//
 
void setup()
{
LCDA.Initialise(); // INIT SCREEN
delay(100);
}

void loop()
{
LCDA.CLEAR();//Clear the screen
delay(100);
LCDA.DisplaySig(0,0,0x20);//Display space
delay(100);
LCDA.DisplayString(0,1,show0,AR_SIZE(show0));//LOGO
delay(100);
LCDA.DisplayString(2,0,show1,AR_SIZE(show1));;//LOGO
while(1);
}

下面的示例是SPI模式下工作。您将需要Ard​​uino的库可以从这儿下载点击下载. 该样例包含其他图片及字符头文件,推荐直接通过Arduino IDE库下的example(样例程序)直接打开使用。

/*
LCD  Arduino
PIN1 = GND
PIN2 = 5V
RS(CS) = 7; 
RW(SID)= 10; 
EN(CLK) = 2;
PIN15 PSB = GND;
*/

#include "LCD12864RSPI.h"
#include "DFrobot_bmp.h"
#include "DFrobot_char.h"

#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )

unsigned char wangzhi[]=" www.DFRobot.cn ";//

unsigned char en_char1[]="ST7920 LCD12864 ";// 

unsigned char en_char2[]="Test, Copyright ";// 

unsigned char en_char3[]="by DFRobot ---> ";// 

void setup()
{
  LCDA.initDriverPin(2,7,10); 
  LCDA.Initialise(); // INIT SCREEN  
  delay(100);
  LCDA.DrawFullScreen(logo);//LOGO
  delay(5000);
}

void loop()
{
LCDA.CLEAR();//����
delay(100);
LCDA.DisplayString(0,0,en_char1,16);//
delay(10);
LCDA.DisplayString(1,0,en_char2,16);//
delay(10);
LCDA.DisplayString(2,0,en_char3,16);//
delay(10);
LCDA.DisplayString(3,0,wangzhi,16);//
delay(5000);
LCDA.CLEAR();//����
delay(100);
LCDA.DisplayString(0,0,show1,16);//
delay(10);
LCDA.DisplayString(1,0,show2,16);//
delay(10);
LCDA.DisplayString(2,0,show3,16);//
delay(10);
LCDA.DisplayString(3,0,wangzhi,16);//LOGO
delay(5000);
}


下面的示例是SPI模式下工作。它演示了如何显示液晶scrren的整数。您将需要Ard​​uino的库可以从这儿下载点击下载.

/*
LCD  Arduino
PIN1 = GND
PIN2 = 5V
SS = DIGITAL PIN 8; 
SID = DIGITAL PIN 9; 
CLK = DIGITAL PIN 3;

This sample shows how to use LCD12864 to display integer on the screen, and it uses function itoa() from library stdlib.h
*/

#include "LCD12864RSPI.h"
#include "DFrobot_bmp.h"
#include "DFrobot_char.h"
#include "stdlib.h"
#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )

int i=0;  //counter, initial value is 0

unsigned char wangzhi[]=" www.DFRobot.cn ";

unsigned char en_char1[]="ST7920 LCD12864 ";

unsigned char en_char2[]="Test, Copyright ";

unsigned char en_char3[]="by DFRobot ---> ";

void setup()
{
  LCDA.Initialise(); // INIT SCREEN
  delay(100);
  LCDA.DrawFullScreen(logo);//LOGO
  delay(2000);
  randomSeed(0);
  LCDA.CLEAR();
  delay(100);
  LCDA.DisplayString(0,0,en_char1,16);
  delay(10);
  LCDA.DisplayString(1,0,en_char2,16);
  delay(10);
  LCDA.DisplayString(2,0,en_char3,16);
  delay(10);
  LCDA.DisplayString(3,0,wangzhi,16);
  delay(2000);

  
}

void loop()
{
LCDA.CLEAR();//clear the screen
delay(100);

int number= i; // the interger should be in the range from -32768 ~ 32767
char buf [16];
itoa(number,buf,10); //transform integer into string
unsigned char temp[16];

for (int i=0;i<=15;i++)
{
  if(buf[i]!='0'&&buf[i]!='1'&&buf[i]!='2'&&buf[i]!='3'&&buf[i]!='4'&&buf[i]!='5'&&buf[i]!='6'&&buf[i]!='7'&&buf[i]!='8'&&buf[i]!='9'&&buf[i]!='-')
  {temp[i]=' ';}   // put space into those where no  values are assigned initially
  else
  {temp[i]=buf[i];}
}
LCDA.DisplayString(0,0,temp,16);//display the counter on the screen

delay(1000);
i++; // counter works every 1 second
}



相关文档

  1. Arduino库文件(SPI)
  2. Arduiono库文件(Parallel)
  3. The Chinese character is encoded using GBK code. GBK code chart




Nextredirectltr.png购买 SPI LCD Module (SKU:DFR0091)

个人工具
名字空间

变换
操作
导航
工具箱