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

📄 lcd1602-4line.c

📁 用51单片机驱动 nokia5110和lcd1602的c程序
💻 C
字号:
												  //***********************************
//	LCD1602.c File
//	
//	Created by Zhao liang
//	email: zhaoliang_0801@dl.cn
//	May 2006
//	
//***********************************
#include "LCD1602.h"


void LCD1602_Read_BF(void)
{
	
	unsigned char read=0; 
	
	LCD1602_RW = HIGH;		//RW 1
	LCD1602_RS = LOW;		//RS 0
	LCD1602_EN = HIGH;		//EN 1	Read BF
	
 	LCDIO = 0xFF;
	
	do{
		read = LCDIO;
	}while(read&MSB);
	
	LCD1602_EN = LOW;		
}

void LCD1602_delay_1us(void)                 //1us延时函数
{
    unsigned char i;
    for(i=0;i<1;i++);
}

void LCD1602_en_write(void)        //EN端产生一个高电平脉冲,写LCD
  {
    LCD1602_EN = HIGH;	
    LCD1602_delay_1us(); 
    LCD1602_EN = LOW;	
  }

//*************************************
void LCD1602_en_com(unsigned char command)
{
	LCD1602_Read_BF(); 
	
	LCD1602_RS = LOW;   	//RS 0 
	LCD1602_RW = LOW;		//RW 0 
	
	LCDIO &= 0x0F;
	LCDIO |= command&0xF0;
	
	LCD1602_en_write();
	
	command = command << 4; 
	LCDIO &= 0x0F;
	LCDIO |= command&0xF0;
	LCD1602_en_write();
}
//*********************************
void LCD1602_en_dat(unsigned char dat)
{
	LCD1602_Read_BF();
	
	LCD1602_RS = HIGH;	//RS 1 
	LCD1602_RW = LOW;		//RW 0 
	
	LCDIO &= 0x0F;
	LCDIO |= dat&0xF0;
	
	LCD1602_en_write();
	
	dat = dat << 4;
	LCDIO &= 0x0F;
	LCDIO |= dat&0xF0;
	LCD1602_en_write();
}
//**********************************************
void LCD1602_set_xy(unsigned char x,unsigned char y)
{
	unsigned char address;
	if(x == LINE1)	
		address = LINE1_HEAD + y;
	else 			
		address = LINE2_HEAD + y;
	LCD1602_en_com(address); 
}
//****************************************************************
/*void LCD1602_write_char(unsigned x,unsigned char y,unsigned char dat)
{
	LCD1602_set_xy(x,y); 
	LCD1602_en_dat(dat);
}*/
//*********************************************************************
void LCD1602_write_string(unsigned char x,unsigned char y,unsigned char *s)
{
	LCD1602_set_xy(x,y); 
	while(*s)  
	{
		LCDIO = *s;
		LCD1602_en_dat(*s);   
		s++;
	}
}
//****************/*********************
void LCD1602_init(void)
{ 
	LCD1602_en_com(DATA_MODE);
		//set 8 bit data transmission mode 
	LCD1602_en_com(OPEN_SCREEN);
		//open display (enable lcd display)
	LCD1602_en_com(DISPLAY_ADDRESS);

		//set lcd first display address 
	CLEARSCREEN;
		//clear screen
}

⌨️ 快捷键说明

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