1
LED电路
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上得到一个完整汉字。
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:
第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和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)
在极客工坊网站上弄来下面这个图:
下面是代码:
#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之后显示如下图
全部0条评论
快来发表一下你的评论吧 !