- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LCD1602函数集
LCD1602A函数集
在这废话就不讲了,要知道LCD1602怎么使用,自己看数据手册去,在此本人仅写出一些函数集,望学习单片机的童鞋参考参考,在这里,我就以51单片机为例,对了,晶振为12M或11.0592M的情况下的参考程序,主要是注意延时问题,晶振不同相同的延时函数,延时不同,好了废话完毕;下面进入程序讲解:
在这,我总结出了几个函数如下:
延时函数
static void delay01(unsigned char x)//延时函数
{ unsigned char i,j;
for(i=0;ix;i++)
for(j=0;j12;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写入用户指令;传入参数为DAT.
void WR_DAT(unsigned char DAT)//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 DATA)//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(DATA);
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
文档评论(0)