hd44780.c

来自「一个超声波传感器与51单片机的通信程序,实现了距离的测量」· C语言 代码 · 共 86 行

C
86
字号
#include"URM37_51demo.H"
/*******************************
*     HD44780 16×2液晶驱动
********************************/
void Delay_ms(uchar ms)
{
	uchar i;
	for(;ms>0;ms--)
		for(i=250;i>0;i--)
		{
		 	
		 	_nop_();
		 	_nop_();	
		}
}

void LCD_WRITE_COMM(uchar comm)	//写命令
{
	
	
	LCD_RS = 0;
	LCD_RW = 0;
		
	LCD_E = 1;
	LCD_DATA = (LCD_DATA & 0xf0) | ((comm>>4) & 0x0f);	//写高4位	
	LCD_E = 0;
		
	LCD_E = 1;
	LCD_DATA = (LCD_DATA & 0xf0) | (comm & 0x0f); //写低4位
	LCD_E = 0;
	Delay_ms(2);		
}

void LCD_WRITE_DATA(uchar Data)//写数据
{
	
	LCD_RS = 1;
	LCD_RW = 0;
	
	LCD_E = 1;
	LCD_DATA = (LCD_DATA & 0xf0) | ((Data>>4) & 0x0f);	//写高4位
	LCD_E = 0;
	
	LCD_E = 1;
	LCD_DATA = (LCD_DATA & 0xf0) | (Data & 0x0f); //写低4位
	LCD_E = 0;
	Delay_ms(2);
}



void	LCD_Init(void)
{
	Delay_ms(15);
	
	
	LCD_RS = 0;
	LCD_RW = 0;
		
	LCD_E = 1;
	LCD_DATA = (LCD_DATA & 0xf0) | 0x00; 	//上电初使
	LCD_E = 0;
	Delay_ms(5);
	
	LCD_E = 1;
	LCD_E = 0;
	Delay_ms(5);
	
	
	LCD_E = 1;
	LCD_E = 0;
	Delay_ms(5);
	
	
	LCD_E = 1;
	LCD_DATA = (LCD_DATA & 0xf0) | 0x02;	//选择4线接口方式,2行显示,5×7点阵
	LCD_E = 0;
	Delay_ms(5);
	
	LCD_WRITE_COMM(0x0c);	//开显示,开光标,开字符闪烁
	LCD_WRITE_COMM(0x06);  	//显示后自动加一,光标移动
	LCD_WRITE_COMM(0x01);	//清显示
	LCD_WRITE_COMM(0x28);	//选择4线接口方式,2行显示,5×7点阵
	LCD_WRITE_COMM(0x80);	//
		
}

⌨️ 快捷键说明

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