LCD1602简易驱动程序

LCD1602简易驱动程序LCD1602驱动程序简单几步配置即可驱动LCD1602LCD1602的几个可编程的引脚为RSRWEDB0-DB7只需要了解如下规则就行RW—读写控制,RW=0时,对DB0-DB7写数据,RW=1时,可读DB0-DB7的数据,一般是写数据并显示,RW=0。RS—此位表明写的数据是指令(0)或者数据(1)(两者作用不同),写指令时候,LCD1602内部的IC会进行配置,写数据时,会显示数据。E—Enable脚,上升沿表示开始传输数据,下降沿表示传输结束B

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);
}

今天的文章LCD1602简易驱动程序分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29220.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注