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

📄 lcd1602.h

📁 利用51单片机实现4*4的键盘扫描程序 在多个51平台中验证通过
💻 H
字号:
#define uchar unsigned char 
#define uint unsigned int
#define DATA P0                    //定义数据传送端口
#define CONTROL P1                 //定义控制端口
sbit E=CONTROL^4;                  //定义使能端
sbit RW=CONTROL^3;                 //定义读写控制端
sbit RS=CONTROL^2;                 //定义数据/命令端
sbit bflag=DATA^7;                 

/***********************************void wait()*****************************
    该函数的作用是对LCD进行检测,看LCD是否处于忙的状态.当bflag=1时表示忙,
此时不可以向LCD进行读写操作.而当bflag=0时,表示可以向它读写数据.
****************************************************************************/
void Wait()
{DATA=0xff;
RW=1; RS=0;                   //设LCD为读控制字的状态
do{E=0;E=1;}while(bflag==1);
}

/**********************************void Wrcom()*******************************
      该函数的作用是向LCD写入控制字.
******************************************************************************/
void Wrcom(uchar com)
{DATA=com;
RW=0; RS=0;                    //设LCD为写控制字的状态
E=0; E=1;    
Wait();
}


/**************************************void Disdata()*******************************
    该函数的作用是向LCD写入数据并显示出来.
***********************************************************************************/
void Disdata(uchar dat)
{DATA=dat;
RW=0; RS=1;                  //设LCD为写数据的状态
E=0; E=1;                    
Wait();
}

/***************************************void Init_LCD()*******************************
     该函数的作用是初始化LCD.
*****************************************************************************************/
void Init_LCD()
{Wrcom(0x01);        //清屏
Wrcom(0x0c);        //开显示,关光标及闪烁
Wrcom(0x06);        //文字不动,光标右移
Wrcom(0x3c);        //8位,两行,5*10点阵
}


/****************************************void Disdatastring()********************************
    该函数的作用是向LCD写入一串数据,并把数据串显示出来.
********************************************************************************************/
void Disdatastring(uchar line,uchar row,uchar dat[])
{uchar com,*s;
EA=0;
s=dat;
if(line==1)                 
{com=0x80+row-1;           //把数据写到第一行
Wrcom(com);
while(*s!='@'&&com<=0x8f)    //写入数据串
	{Disdata(*s);
    com++;
	s++;
	}
}
else 
{com=0xc0+row-1;             //把数据写入第二行
Wrcom(com);
while(*s!='@'&&com<=0xcf)      //写入数据串
	{Disdata(*s);
	com++;
	s++;
	}
}
EA=1;
}

⌨️ 快捷键说明

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