• 欢迎来到深圳市安盛品科技有限公司!

M72 LCD1602 字符液晶 输入输出扩展板 LCD Keypad Shi

¥ 
微科电子是一家专业生产和出口国,涉及设计、
arduino开发生产和销售,3 d打印机,覆盆子π和STM32。
我们的梦想是做出最好的价格和最好的质量为客户生产。
所以我们想收到你宝贵的建议对于我们的产品,我们可以改善你的问题。
  
  
电子产品价格浮动变化,购买请联系我们!
  
  
联系人:张小姐/郑生
 
手机:13790385217
  
电话:0755 - 66803279
  
电子邮件:sophie@weikedz.com
  
地址:深圳.龙华新区


Arduino LCD1602字符液晶扩展板,PCB沉金工艺加工,用料十足,主板采用全新优质2行16个字符液晶,不仅具有对比度调节旋钮、背光灯选择开关,还具4个方向按键、1个选择按键和一个复位按键;这款1602液晶扩展板真正意义上的将电路简化,直接将此板插Arduino Duemilanove控制器上即可.

规格参数

1.模块尺寸:20.5mm×41mm

 

 

2.模块重量:57g

 1602字符型LCD简介

1602LCD主要技术参数:

 

1.显示容量:16×2个字符

2.芯片工作电压:4.5—5.5V

3.工作电流:2.0mA(5.0V)

4.模块最佳工作电压:5.0V

5.字符尺寸:2.95×4.35(W×H)mm

 

 

 

1 VSS电源地9 D2数据

 

2 VDD电源正极10 D3数据

3 VL液晶显示偏压11 D4数据

4 RS数据/命令选择12 D5数据

5 R/W读/写选择13 D6数据

6 E使能信号14 D7数据

7 D0数据15 BLA背光源正极

8 D1数据16 BLK背光源负极

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度

最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS

和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时

可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。

1602LCD的指令说明:

1602液晶模块内部的控制器共有11条控制指令,如表下表所示:

 序号指令RS R/W D7 D6 D5 D4 D3 D2 D1 D0

1清屏0 0 0 0 0 0 0 0 0 1

2光标返回0 0 0 0 0 0 0 0 1 *

 

3置输入模式0 0 0 0 0 0 0 1 I/D S

4显示开/关控制0 0 0 0 0 0 1 D C B

5光标或字符移位0 0 0 0 0 1 S/C R/L * *

6置功能0 0 0 0 1 DL N F * *

7置字符发生存贮器地址0 0 0 1字符发生存贮器地址

8置数据存贮器地址0 0 1显示数据存贮器地址

9读忙标志或地址0 1 BF计数器地址

10写数到CGRAM或DDRAM)1 0要写的数据内容

11从CGRAM或DDRAM读数1 1读出的数据内容

1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

指令1:清显示,指令码01H,光标复位到地址00H位置。

指令2:光标复位,光标返回到地址00H。

指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电

平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控

制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。

指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电

平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示

5x10的点阵字符。

指令7:字符发生器RAM地址设置。

指令8:DDRAM地址设置。

指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接

收命令或者数据,如果为低电平表示不忙。

指令10:写数据。

指令11:读数据。

 与HD44780相兼容的芯片时序表如下:

读状态输入RS=L,R/W=H,E=H输出D0—D7=状态字

 写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无

 

读数据输入RS=H,R/W=H,E=H输出D0—D7=数据

写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无

 

 1602LCD的一般初始化(复位)过程:

延时15mS

写指令38H(不检测忙信号)

 

延时5mS

写指令38H(不检测忙信号)

延时5mS

写指令38H(不检测忙信号)

以后每次写指令、读/写数据操作均需要检测忙信号

写指令38H:显示模式设置

写指令08H:显示关闭

写指令01H:显示清屏

写指令06H:显示光标移动设置

写指令0CH:显示开及光标设置

AUDUINO官方例程:

//example use of LCD4Bit_mod library

#include <LCD4Bit_mod.h>

//create object to control an LCD. 

//number of lines in display=1

LCD4Bit_mod lcd = LCD4Bit_mod(2);

 

//Key message

char msgs[5][15] = {"Right Key OK ",

                   "Up Key OK   ",

                   "Down Key OK ",

                   "Left Key OK ",

                   "Select Key OK" };

int adc_key_val[5] ={30, 150, 360, 535, 760 };

int NUM_KEYS = 5;

int adc_key_in;

int key=-1;

int oldkey=-1;

 

void setup() {

 pinMode(13, OUTPUT); //we'll use the debug LED to output a heartbeat

 

 lcd.init();

 //optionally, now set up our application-specific display settings, overriding whatever the lcd did in lcd.init()

 //lcd.commandWrite(0x0F);//cursor on, display on, blink on. (nasty!)

  lcd.clear();

 lcd.printIn("KEYPAD testing... pressing");

   

}

 

void loop() {

 

  adc_key_in = analogRead(0);   // read the value from the sensor 

 digitalWrite(13, HIGH); 

 key = get_key(adc_key_in);         // convert into key press

  

  if (key != oldkey)            // if keypress is detected

  {

   delay(50);  // wait for debounce time

     adc_key_in = analogRead(0);   // read the value from the sensor 

   key = get_key(adc_key_in);          // convert into key press

   if (key != oldkey)        

   {      

     oldkey = key;

     if (key >=0){

     lcd.cursorTo(2, 0); //line=2, x=0

       lcd.printIn(msgs[key]);

     }

   }

 }

 

 //delay(1000);

 digitalWrite(13, LOW);

 }

 

// Convert ADC value to key number

int get_key(unsigned int input)

{

  int k;

   

  for (k = 0; k < NUM_KEYS; k++)

  {

     if (input < adc_key_val[k])

     {

          

   return k;

       }

  }

   

   if (k >= NUM_KEYS)

       k = -1;    // No valid key pressed

   

return k;

}

LCD4Bit_mod.h

QQ客服1 QQ客服2 邮箱 返回顶部