欢迎来到天天文库
浏览记录
ID:6045722
大小:732.00 KB
页数:21页
时间:2018-01-01
《珍藏的12864 使用经典资料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、首先说一下关于驱动函数的书写,这些是液晶显示的基础,一般包括四个函数: 1、写命令函数; 2、写数据函数; 3、读状态函数; 4、读数据函数。这四个函数并不是必须全部写的,具体要看你实现的功能,如果只是单纯的显示汉字和字符,写命令、写数据、读状态这三个函数就够了,如过你还需要进行一些绘图的操作,那读数据函数也必须书写。另外关于读状态函数,其实也就是用于判忙操作,我看郭天祥的书里面是这样说的:原则上每次对控制器进行读写操作之前,都必须进行读写检测,由于单片机的操作速度慢于液晶控制器的反应速度,因此可不进行读写
2、检测,或者只进行简短的延时即可。因此,读状态函数也可以不写,只用简短的延时函数替换即可。1、写操作的编写:由图可见操作很简单:1>RS=1(写数据操作);或者RS=0(写命令操作);2>RW=0;//指明为写操作3>E=1;4>DB=data;//data为你要写入的命令或数据值5>E=0;以下是我的驱动函数,仅供参考:1./********************************液晶端口定义**************************/2.#define lcd_data P0 //
3、数据口 3.sbit RS =P2^4; //选择寄存器(并行)0:指令寄存器1:数据寄存器;4.sbit RW =P2^5; //读写控制脚(并行)0:写入1:读出5.sbit E =P2^6; //读写数据启始脚(并行)6.sbit PSB =P2^1; //串并方式选择引脚,0为串行模式,1为8/4位数据口模式1.sbit RST =P2^3; //复位引脚2.3.//************************
4、********************************4.//延时函数5.//********************************************************6.voiddelay(unsignedintk)7.{ 8. unsignedinti;9. unsignedcharj;10. for(i=0;i5、******************************************16.//延时1ms函数17.//********************************************************18.voiddelay_ms(unsignedintk)//延时0.994us,晶振12M19.{20. unsignedintx,y;21. for(x=k;x>0;x--)22. for(y=121;y>0;y--);23.} 24.//****************6、****************************************25.//写命令函数26.//********************************************************27.voidLcdWcom(unsignedcharWCom)28.{29. delay(1);30. RS=0; //指明操作对象为指令寄存器31. RW=0;//指明为写操作32. E=1;33. lcd_data=WCom;//将命令写入总线34. E7、=0;35.}36.//********************************************************37.//写数据函数38.//******************************************************** 39.voidLcdWdata(unsignedcharWData)40.{41. delay(1);42. RS=1;//指明操作对象为数据寄存器43. RW=0;//指明为写操作44. E=1;45. lc8、d_data=WData;//将数据写入总线46. E=0;47.}二、初始化操作初始化操作如下:1>芯片上电;2>延时40ms以上;3>复位操作:RST出现一个上升沿(RST=1;RST=0;RST=1;);4>功能设定;5>延时100us以上;6>再次进行功能设定;7>延时37us;8>显示开关控制;9>延时100us以上;10>清除显示;11>延
5、******************************************16.//延时1ms函数17.//********************************************************18.voiddelay_ms(unsignedintk)//延时0.994us,晶振12M19.{20. unsignedintx,y;21. for(x=k;x>0;x--)22. for(y=121;y>0;y--);23.} 24.//****************
6、****************************************25.//写命令函数26.//********************************************************27.voidLcdWcom(unsignedcharWCom)28.{29. delay(1);30. RS=0; //指明操作对象为指令寄存器31. RW=0;//指明为写操作32. E=1;33. lcd_data=WCom;//将命令写入总线34. E
7、=0;35.}36.//********************************************************37.//写数据函数38.//******************************************************** 39.voidLcdWdata(unsignedcharWData)40.{41. delay(1);42. RS=1;//指明操作对象为数据寄存器43. RW=0;//指明为写操作44. E=1;45. lc
8、d_data=WData;//将数据写入总线46. E=0;47.}二、初始化操作初始化操作如下:1>芯片上电;2>延时40ms以上;3>复位操作:RST出现一个上升沿(RST=1;RST=0;RST=1;);4>功能设定;5>延时100us以上;6>再次进行功能设定;7>延时37us;8>显示开关控制;9>延时100us以上;10>清除显示;11>延
此文档下载收益归作者所有