一文详解arduino连接lcd1602的方法

LED电路

109人已加入

描述

  lcd1602工作原理是什么

  1、线段的显示

  点阵图形式液晶由M&TImes;N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16&TImes;8=128个点组成,屏上64&TImes;16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。

  2、字符的显示

  用LCD显示一个字符时比较复杂,因为一个字符由6&TImes;8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

  3、汉字的显示

  汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。

  lcd1602引脚图及功能说明

  lcd

  1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:

  lcd

  第1引脚:GND为电源地

  第2引脚:VCC接5V电源正极

  第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

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

  第5引脚:RW为读写信号线,高电平(1)时进行读操作,以51为例的简单原理图低电平(0)时进行写操作。

  第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。

  第7~14引脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。第15引脚背光正极,第16引脚背光负极。

  arduino连接lcd1602的方法

  Arduino和LCD的线路连接图

  lcd

  脚位连接说明:以上图为例,是从左到右第一脚开始数起:

  1 Vss 接地 (0V)

  2 Vdd 电源 (+5V)

  3 Vo或与Vee - 对比度调整(0-5V), 可接一颗1K的电阻或接一个5K的电位器

  4 RS Register Select: 参数:{1: D0 – D7 设置为1时当作资料解释 0: D0 – D7 设置为0时当作指令解释}

  5 R/W Read/Write mode: 参数:{1: 从LCD读取资料 0: 写资料到LCD(一般情况下很少从LCD读取资料,把这个脚接地可省I/O脚位)}

  6 E Enable

  7 D0 Bit 0 LSB

  8 D1 Bit 1

  9 D2 Bit 2

  10 D3 Bit 3

  11 D4 Bit 4

  12 D5 Bit 5

  13 D6 Bit 6

  14 D7 Bit 7 MSB

  15 A+ 背光(串联一个1K的电阻接地或串联一个5K的电位器调整背光)

  16 K- 背光(GND)

  在极客工坊网站上弄来下面这个图:

  lcd

  下面是代码:

  #include 《LiquidCrystal.h》

  LiquidCrystal lcd(12,11,5,4,3,2); //定义脚位

  void setup()

  {

  lcd.begin(16,2); //设置LCD显示的数目。16 X 2:16格2行。

  lcd.print(“hello,world!”); //将hello,world!显示在LCD上

  }

  void loop()

  {

  lcd.setCursor(0,1); //将闪烁的光标设置到column 0, line 1 (注释:从0开始数起,line 0是显示第一行,line 1是第二行。)

  lcd.print(millis()/1000); //开机后屏幕现实以秒几时的时间

  }

  代码上传到Arduino之后显示如下图

  

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
xlmtzhou 2019-03-23
0 回复 举报
学习 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分