- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
珍藏地12864 使用经典资料
一、首先说一下关于驱动函数的书写,这些是液晶显示的基础 一般包括四个函数:? 1、写命令函数; ?2、写数据函数;? ?3、读状态函数;? ?4、读数据函数这四个函数并不是必须全部写的,具体要看你实现的功能,如果只是单纯的显示汉字和字符,写命令、写数据、读状态这三个函数就够了,如过你还需要进行一些绘图的操作,那读数据函数也必须书写。另外关于读状态函数,其实也就是用于判忙操作,我看郭天祥的书里面是这样说的:原则上每次对控制器进行读写操作之前,都必须进行读写检测,由于单片机的操作速度慢于液晶控制器的反应速度,因此可不进行读写检测,或者只进行简短的延时即可。因此,读状态函数也可以不写,只用简短的延时函数替换即可。1、写操作的编写:
由图可见操作很简单:1RS=1(写数据操作);或者RS=0(写命令操作);2RW=0;//指明为写操作3E=1;4DB=data;//data为你要写入的命令或数据值5E=0;
以下是我的驱动函数,仅供参考:
/********************************液晶端口定义**************************/
#define??lcd_data? ?P0? ?? ?? ? //数据口?
sbit??RS? ? = P2^4;? ?? ?? ?? ? //选择寄存器(并行) 0:指令寄存器 1:数据寄存器;
sbit??RW? ? = P2^5;? ?? ?? ?? ? //读写控制脚(并行) 0:写入 1:读出
sbit??E? ???= P2^6;? ?? ?? ?? ? //读写数据启始脚(并行)
sbit??PSB? ?= P2^1;? ?? ?? ?? ? //串并方式选择引脚,0为串行模式,1为8/4位数据口模式
sbit??RST? ?= P2^3;? ?? ?? ?? ? //复位引脚
//********************************************************
//延时函数
//********************************************************
void delay(unsigned int k)
{??
? ?? ?unsigned int i;
? ?? ?unsigned char j;
? ?? ?for(i=0;ik;i++)
? ?? ?{
? ?? ?? ???for(j=0;j10;j++);
? ?? ? }
}
//********************************************************
//延时1ms函数
//********************************************************
void delay_ms(unsigned int k)//延时0.994us,晶振12M
{
? ? unsigned int x,y;
? ? for(x=k;x0;x--)
? ?? ?? ?for(y=121;y0;y--);
}?
//********************************************************
//写命令函数
//********************************************************
void LcdWcom(unsigned char WCom)
{
? ?? ?delay(1);
? ?? ?RS=0;??//指明操作对象为指令寄存器
? ?? ?RW=0; //指明为写操作
? ?? ?E=1;
? ?? ?lcd_data=WCom; //将命令写入总线
? ?? ?E=0;
}
//********************************************************
//写数据函数
//********************************************************?
void LcdWdata(unsigned char WData)
{
? ???delay(1);
? ???RS=1; //指明操作对象为数据寄存器
? ???RW=0; //指明为写操作
? ???E=1;
? ???lcd_data=WData; //将数据写入总线
? ???E=0;
}
二、初始化操作
初始化操作如下:
1芯片上电;
2延时40ms以上;
3复位操作:RST出现一个上升沿(RST=1;RST=0;RST=1;);
4功能设定;
5延时100us以上;
6再次进行功能设定;
7延时37us;
8显示开关控制;
9延时
文档评论(0)