LCD1602函数集
LCD1602A函数集
在这废话就不讲了,要知道LCD1602怎么使⽤,⾃⼰看数据⼿册去,在此本⼈仅写出⼀些函数集,望学习单⽚机的童鞋参考参考,在这⾥,我就以51单⽚机为例,对了,晶振为12M或11.0592M的情况下的参考程序,主要是注意延时问题,晶振不同相同的延时函数,延时不同,好了废话完毕;下⾯进⼊程序讲解:
在这,我总结出了⼏个函数如下:
延时函数
static void delay01(unsigned char x)//延时函数
{ unsigned char i,j;
for(i=0;i
for(j=0;j<12;j++);
}
//LCD写指令函数:功能:向LCD写⼊⽤户指令;传⼊参数为CMD.
void WR_CMD(unsigned char CMD)//LCD写命令函数
{
RS=0;
RW=0;
EAB=1;
delay01(100);
TPORT=CMD;
delay01(100);
EAB=0;
}
/
/LCD写数据函数:功能:向LCD写⼊⽤户指令;传⼊参数为DA T.
void WR_DAT(unsigned char DA T)//LCD写数据函数
{
RS=1;
RW=0;
EAB=1;
delay01(100);
TPORT=DAT;
delay01(100);
EAB=0;
}
/
/LCD初始化函数:功能:初始化LCD;顺便说下,必须初始化成功后才可以使⽤液晶显⽰void LCD_init(void)//LCD初始化函数
{
WR_CMD(0x30);
WR_CMD(0X30);
WR_CMD(0x30);
字符串函数怎么用WR_CMD(0x38);
WR_CMD(0x08);
WR_CMD(0x01);
WR_CMD(0x06);
WR_CMD(0x0e);
}
//LCD在指定的位置写数据函数:功能:吧想要显⽰的数据输出到显⽰屏
void WR_DATA(unsigned char line,unsigned char location,unsigned char DA TA)//LCD定位写数据函数
{ static unsigned char i;
delay01(100);
if(line==0)
{ i=0x80+location;
WR_CMD(i);
}
else
{ i=0x80+0x40+location;
WR_CMD(i);
}
delay01(100);
WR_DAT(DA TA);
i=0;
}
//指定在第⼏⾏第⼏列开始写数据:功能:指定从第⼏⾏第⼏列开始写数据
void WR_str(unsigned char linex,unsigned char locationy,unsigned char *stri)//LCD定位写字符{ static unsigned char i; delay01(100);
if(linex==0)
{ i=0x80+locationy;
}
else
{ i=0x80+0x40+locationy;
}
delay01(100);
while(*stri)
{
WR_CMD(i);
WR_DAT(*stri);
i++;
stri++;
}
i=0;
}
//创建⾃定义字符函数:功能:把点阵数据写⼊CGROM中
void WRTE_SELF(unsigned char *s,unsigned char datcount)//s是字符表格⼀维数组;datcount 是字符个数写⼊⾃建字符最多8个
{ unsigned char loc,i=0;
loc=0x40;
while(++i!=8*datcount)
{
WR_CMD(loc);
WR_DAT(*s);
s++;
loc++;
}
}
//在指定的位置写你定义的第⼏个字符函数:功能:在你指定的位置显⽰出你的⾃定义字符//Selfaddr为第⼏个字数值为0~7,void WR_SELSTRING(unsigned char loca,unsigned char selfaddr,unsigned char lines)//在指定的位置写⾃定义字符
{ unsigned char lao=0x80;
if(lines==1)
{lao=loca+lao+0x40;}
else if(lines==0)
{lao+=loca;}
WR_CMD(lao);
WR_DAT(selfaddr);
}
//在LCD写⼊字符串函数:与上⾯指定在第⼏⾏第⼏列开始写数据不同的是,该函数是从//每⾏的第⼀个位置开始显⽰字符void WR_STRINGS(unsigned char *str,unsigned char lin )
{
unsigned char l=0x80;
if(lin==1)
{l=l+0x40;}
else
{l=0x80;}
WR_CMD(l);
while(*str)
{
WR_DAT(*str);
str++;
l++;
}
}
以上函数经本⼈验证绝对可以使⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。