⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd1602.h

📁 LC1602液晶模块通用C语言头文件,适用于51系统单片机.
💻 H
字号:
#ifndef _RZ_LCD1602_
	#define _RZ_LCD1602_
	#ifndef uchar
		#define uchar unsigned char
	#endif
	#ifndef uint
		#define uint unsigned int
	#endif
	//请根据自己的线路连接修改以下信号线设置。
	sbit RS_LCD1602=P3^0;
	sbit RW_LCD1602=P3^1;
	sbit EN_LCD1602=P3^2;
	//根据使用的晶振修改延时程序。
	void Delay_Ms_LCD1602(uint ms)
	{
		//延时程序(以毫秒为单位)。
		uchar y,z;
		for(;ms>0;ms--)
			for(y=0;y<11;y++)
				for(z=0;z<25;z++);
	}
	bit get_status_LCD1602()
	{
		//读状态。
		P0=0xff;
		EN_LCD1602=0;
		RS_LCD1602=0;
		RW_LCD1602=1;
		EN_LCD1602=1;
		return((bit)(P0&0x80));
	}
	void write_command_LCD1602(uchar com)
	{
		//写命令。
		while(get_status_LCD1602());
		EN_LCD1602=0;
		RS_LCD1602=0;
		RW_LCD1602=0;
		Delay_Ms_LCD1602(5);
		P0=com;
		EN_LCD1602=1;
		Delay_Ms_LCD1602(20);
		EN_LCD1602=0;
	}
	void set_cursor_LCD1602(uchar line,uchar add)
	{
		//设置光标的行(line),列(add)位置。
		write_command_LCD1602(0x80+line*0x40+add);
	}
	void write_char_LCD1602(uchar indata)
	{
		//写数据。
		while(get_status_LCD1602());
		EN_LCD1602=0;
		RS_LCD1602=1;
		RW_LCD1602=0;
		Delay_Ms_LCD1602(5);
		P0=indata;
		EN_LCD1602=1;
		Delay_Ms_LCD1602(20);
		EN_LCD1602=0;
	}
	void Write_CGA_LCD1602(uchar *CGA_Data,uchar CGA_Index)
	{
		//写自定义字符。
		//参数一为一个数据块指针,要求其提供8字节字模数据。
		//参数二为一个整数,指定要操作的自定义字符位置。
		uchar index;
		CGA_Index&=0x07;//最多8个字符。
		CGA_Index=CGA_Index<<3;//决定CGARAM相对地址。
		for(index=0;index<8;index++)
		{
			//设置CGARAM地址。
			write_command_LCD1602(CGA_Index|index|0x40);
			//写入字模数据。
			write_char_LCD1602(*CGA_Data);
			CGA_Data++;
		}
	}
	void write_char_add_LCD1602(uchar indata,uchar line,uchar add)
	{
		//在指定的行(line),列(add)位置写入字符(indata)。
		set_cursor_LCD1602(line,add);
		write_char_LCD1602(indata);
	}
	void write_string_LCD1602(uchar indata[])
	{
		//从当位置开始写入指定长度(lenght)的字符串(indata[])。
		//貌似一次最多写入255个。
		uchar index=0;
		while(indata[index]!=0&&index<255)//直到遇到字符串结束标志。
		{
			write_char_LCD1602(indata[index]);
			index++;
		}
	}
	void cursor_show_LCD1602()
	{
		//打开显示屏并显示闪烁的光标。
		write_command_LCD1602(0x0f);
	}
	void cursor_hide_LCD1602()
	{
		//隐藏光标。
		write_command_LCD1602(0x0c);
	}
	void clear_LCD1602()
	{
		//清屏。
		while(get_status_LCD1602()&0x80);//等待空闲状态。
		write_command_LCD1602(0x01);
		Delay_Ms_LCD1602(50);
	}
	void init_LCD1602()
	{
		//初始化液晶。
		write_command_LCD1602(0x38);//设置显示模式。
		write_command_LCD1602(0x80);//光标初始位置。
		write_command_LCD1602(0x0f);//打开显示屏并显示闪烁的光标。
		write_command_LCD1602(0x06);//输入数据后光标自动向后移。
	}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -