LCD1602简易驱动程序

LCD1602驱动程序

简单几步配置即可驱动LCD1602
LCD1602的几个可编程的引脚为RS RW E DB0-DB7
在这里插入图片描述MCU的引脚配置输入输出参考自己使用的规格书

只需要了解如下规则就行

  1. RW — 读写控制,RW = 0时,对DB0-DB7写数据,RW = 1时,可读DB0-DB7的数据,一般是写数据并显示,RW=0。
  2. RS — 此位表明写的数据是 指令(0)或者数据(1)(两者作用不同),写指令时候,LCD1602内部的IC会进行配置,写数据时,会显示数据。
  3. E — Enable 脚,上升沿表示开始传输数据,下降沿表示传输结束
  4. BD0-DB7 — 并行传输数据口
//=========写数据部分
//指令一般在配置时使用
void LcdWriteCmd(unsigned char Data)  //写命令
{
	#if 1
	//LcdReady();			//可等待lcd准备好再传输数据,简化代码先不添加
	LCD_RS = 0;
	LCD_RW = 0;
	
	LCD_DATA = Data;
	delay_ms(1);		//此处需要延时给LCD处理时间
	LCD_EN = 1;
	delay_ms(10);  
	LCD_EN = 0;
	#endif
}

void LcdWriteData(unsigned char Data)	//写数据
{
	#if 1
	LCD_RS = 1;
	LCD_RW = 0;
	
	LCD_DATA = Data;
	delay_ms(1);			//此处需要延时给LCD处理时间
	LCD_EN = 1;
	delay_ms(10);
	LCD_EN = 0;
	#endif
}
//=======初始化LCD1602
void Lcd1602Init(void)
{
	LcdWriteCmd(0X01);		//清屏
	LcdWriteCmd(0X38);		//显示模式
	LcdWriteCmd(0X0C);		//显示开,光标设置
	LcdWriteCmd(0X06);		//光标移动设置
}
//========设置LCD1602显示的位置
void LcdSetCursor(unsigned char x,unsigned char y)
{
	if(y == 0)
		LcdWriteCmd(x | 0x80);
	else if(y == 1)
		LcdWriteCmd(x | 0x80 | 0x40);
}

//显示字符串
void LcdShowStr(unsigned char *Data,unsigned x,unsigned y)
{
	LcdSetCursor(x,y);
	
	while(*Data != '\0')
		LcdWriteData(*Data++);
}

最后调用

void main()
{
	unsigned char *str = "hello";
	
	Lcd1602Init();
	LcdShowStr(str,3,0);
	LcdShowStr("hahahaha",2,1);
	
	while(1);
}
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MECHT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值