首页 > 编程知识 正文

lcd液晶显示屏编程,1602液晶屏怎么接线

时间:2023-05-04 06:37:42 阅读:112357 作者:2948

1 .概述作为各类单片机实物设计的常用显示屏,LCD1602是显示字母、数字、符号等的专用点阵液晶屏。 其1602是指LCD的显示内容为16X2,即能够显示两行,各行16个字符(汉字1个字符占2个字符)。

2 .硬件参数(1) LCD1602关键技术参数

a .显示容量: 162个字符

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

c .工作电流: 2.0ma(5.0v ) )。

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

e .文字尺寸: 2.954.35(wh ) mm

)2)引脚定义

LCD1602引脚主要有逻辑电源引脚VDD、VSS; 带背光电源端子的BLA、BLK; 数据端子D0-D7、RS、R/W、EN; 偏置信号端子VL; 其中:

VL端子:液晶显示器的对比度调整端子,连接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“重影”。 使用时可以用1个10K的电位器调整对比度。 RS端子: RS进行寄存器选择,高电平时进行数据寄存器,低电平时选择指令寄存器R/W端子: R/W是读写信号线,高电平时进行读动作,低电平时进行写动作。 在RS和R/W都为低电平情况下能够写入命令或显示地址,在RS为低电平的R/W为高电平的情况下读出忙信号,在RS为高电平的R/W为低电平的情况下能够写入数据。 EN端子: e端子为使能端子,e端子从高电平跳至低电平时,液晶模块执行指令。 (3)电路图

其中可变电阻p用于调整显示器的对比度。 电阻r作为限流电阻,防止过电流烧毁显示器的背光。

3 .控制程序LCD1602显示屏的控制程序简化,比较简单,为写数据写指令初始化(一般不使用书写操作,但在此省略) ) )。

(1)写入定时

为了实现下一个写入数据和写入命令函数,都在写入操作的定时进行编程,实现有效的控制,在此,根据写入定时和RS端子的定义,写入数据和写入命令的差异是RS端子的电平RS为低电平时,写入指令。

)2)写数据函数

//写入数据voidwrite_data(uchardate ) { LCDRS=1; P0=date; 液晶屏延迟(5; 液晶屏en=1; 液晶屏延迟(5; 液晶屏en=0; (3)编写命令函数

//写入命令voidwrite_com(ucharcom ) { LCDRS=0; P0=com; 液晶屏延迟(5; 液晶屏en=1; 液晶屏延迟(5; 液晶屏en=0; (4)初始化函数

初始化LCD1602需要以下设置:

a .写入动作的设定:将R/W设为低电平;

b .画面设定模式:写入指令38H;

c .打开显示,关闭光标:写入命令0CH;

d .显示光标移动位置的设定:光命令06H;

e .文字显示位置的设定:写入指令(文字显示的开始位置);

void Init1602 () { uchar i=0; 液晶屏rw=0; write_com(0x38; //屏幕初始化write_com(0x0c ); //打开显示无光标无光标闪烁write_com(0x06 ); //读和写文字是指针后面1位的write_com(0x01 ); //清晰屏幕write_com(0x80 ); //设置位置(注:由于控制LCD1602时不需要进行读取动作,因此R/W在初始化后始终为低电平(或该引脚直接对地短路) )。

4 .要在显示字符LCD1602上显示特定字符,实际写入与LCD1602的DDRAM对应的数据后,显示屏上将显示所需字符。

)1) DDRAM地址映射

从RAM可以看出,意思是读。 地址和显示位置如下。 每行40个地址,1602最多前16个两行,对应关系如图所示。

根据写入命令格式,地址为7位,因此在写入地址中,如图所示,第8位始终为1。

如果希望写入到指定位置,则写入第一行的第一个位,地址位为00H,其上为DB7的1即80h(001000000 ),第二行的第一个位为40H,其上为DB7的1即c0h ) 001100000

例如,要在第1行第3位写入" HELLO WOLRD ",请先写入地址,然后写入数据:

write_com(0x40 );//第1行第3位write_com () h ); write_com(o ); write_com(d ); 如果写在第二行第二位:

write_com(0x400x802; //第2行第2位//写入数据与上面相同)2)显示函数

为了程序的简洁和方便,我们将显示程序合并为一个显示函数。

voiddisplay_1602(ucharx、uchar y、uchar *str ) { unsigned char addr; if(y==0) { addr=0x00 x;//第1行的x位置显示(else ) addr=0x40x;//第2行x的位置显示}write_com(addr0x80 ); wile(*str!=' ' ) {write_data(*str ); }实现上述显示很简单:

第1行第3位显示“HELLO WOLRD”。

display _ 1602 (3,1,“HELLO WOLRD”; 第二行的第二位显示“HELLO WOLRD”。

display _ 1602 (2,2,“HELLO WOLRD”; 更多LCD1602设计资料和例程关注公众号,首页请回复“1602”获取资料

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。