LCD1602学习笔记

    最近搞比赛经常用到LCD1602,但每次都用的不是很顺利,现在就特地写一篇博客来复习一下LCD1602,顺便也希望能给大家一些小小的启发。

既然是硬件,那就先上接线图


VL:对比度,正常接一个1K的电阻就好了,如果电阻过大会出现一个个黑方块,而你要显示的就看不清楚了,反之如果电阻过小,就会根本显示不出东西,亮亮的一片。也可以接1K的电位器实现改对比度的功能。

RS、RW、EN:这些都是控制端口,要留心注意他们的接线

D0-D7:这些是数据端口,用来传递数据的。

Bl-  、 Bl+ :这些是背光电源,如果你上电连LCD都不亮就要检查一下这里。

好了基础的硬件知识说完了,来讲讲软件吧,废话不多说,直接贴代码

#ifndef __lcd1602_H__
#define __lcd1602_H__

#include <other.h>
#include <string.h>

sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
#define DATA P0

void lcd1602_display_str(unsigned char x,bit y,unsigned char dat[]);
void lcd1602_display_byte(unsigned char x,bit y,unsigned char ascll);
void lcd1602_init();

void lcd1602_write(bit sign, unsigned char dat)			   //sign=0	:写入命令   sign=1:写入数据
{
 delay_1ms(10);
 RS=sign;
 RW=0;
 EN=0;
 DATA=dat;
 EN=1;
 delay_1ms(10);
 EN=0;
 if(sign)
 RS=0;
 delay_1ms(10);
}


void lcd1602_init()
{
	delay_1ms(10);
	lcd1602_write(0,0x38);
	lcd1602_write(0,0x38);
	lcd1602_write(0,0x38);	
	lcd1602_write(0,0x0c);	
	lcd1602_write(0,0x01);	
}


void lcd1602_display_str(unsigned char x,bit y,unsigned char dat[])
{
 unsigned char point=0x80+x;
 unsigned char len=16;
 unsigned char j=0;
 if(y)
 {point+=0x40;}
 lcd1602_write(0,point);
 len=strlen(dat);
 for(j=0;j<len;j++)
 {
  lcd1602_write(1,dat[j]);
 }
}

void lcd1602_display_byte(unsigned char x,bit y,unsigned char ascll)
{
 unsigned char point=0x80+x;
 if(y)
 {point+=0x40;}
 lcd1602_write(0,point);
 lcd1602_write(1,ascll);

}
#endif

这上面就是LCD1602的基础代码(布局不变)

PS: LCD1602只能显示英文字符,一行16个,一共两行

      该程序是STC12的程序,相关的延时函数请根据实际的芯片修改。

要在LCD上第二行显示“HELLO,WORLD”怎么写呢?

unsigned char table[]="HELLO,WORLD";
lcd1602_display_str(0,1,table);

第一个参数表示列:示例是从第0列开始显示(0-15);

第二个参数表示行:第2行是1,第一行是0;

第三个参数表示字符数组(数组名也可以理解为数组的地址)

lcd1602_display_byte(unsigned char x,bit y,unsigned char ascll)
这个也是相同的用法,只不过他是专门在特地区域显示字符的。
  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值