珍藏地12864 使用经典资料.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档