ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:732KB ,
资源ID:264777      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/264777.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(珍藏的12864 使用经典资料.doc)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、一、首先说一下关于驱动函数的书写,这些是液晶显示的基础, 一般包括四个函数: 1、写命令函数; 2、写数据函数; 3、读状态函数; 4、读数据函数。这四个函数并不是必须全部写的,具体要看你实现的功能,如果只是单纯的显示汉字和字符,写命令、写数据、读状态这三个函数就够了,如过你还需要进行一些绘图的操作,那读数据函数也必须书写。另外关于读状态函数,其实也就是用于判忙操作,我看郭天祥的书里面是这样说的:原则上每次对控制器进行读写操作之前,都必须进行读写检测,由于单片机的操作速度慢于液晶控制器的反应速度,因此可不进行读写检测,或者只进行简短的延时即可。因此,读状态函数也可以不写,只用简短的延时函数替换

2、即可。1、写操作的编写:由图可见操作很简单:1RS=1(写数据操作);或者RS=0(写命令操作);2RW=0;/指明为写操作3E=1;4DB=data;/data为你要写入的命令或数据值5E=0;以下是我的驱动函数,仅供参考:1. /*液晶端口定义*/2. #definelcd_data P0 /数据口3. sbitRS = P24; /选择寄存器(并行) 0:指令寄存器 1:数据寄存器;4. sbitRW = P25; /读写控制脚(并行) 0:写入 1:读出5. sbitE = P26; /读写数据启始脚(并行)6. sbitPSB = P21; /串并方式选择引脚,0为串行模式,1为8/

3、4位数据口模式7. sbitRST = P23; /复位引脚8.9. /*10. /延时函数11. /*12. void delay(unsigned int k)13. 14. unsigned int i;15. unsigned char j;16. for(i=0;ik;i+)17. 18. for(j=0;j0;x-)28. for(y=121;y0;y-);29. 30. /*31. /写命令函数32. /*33. void LcdWcom(unsigned char WCom)34. 35. delay(1);36. RS=0;/指明操作对象为指令寄存器37. RW=0; /指明

4、为写操作38. E=1;39. lcd_data=WCom; /将命令写入总线40. E=0;41. 42. /*43. /写数据函数44. /*45. void LcdWdata(unsigned char WData)46. 47. delay(1);48. RS=1; /指明操作对象为数据寄存器49. RW=0; /指明为写操作50. E=1;51. lcd_data=WData; /将数据写入总线52. E=0;53. 二、初始化操作初始化操作如下:1芯片上电;2延时40ms以上;3复位操作:RST出现一个上升沿(RST=1;RST=0;RST=1;);4功能设定;5延时100us以上

5、;6再次进行功能设定;7延时37us;8显示开关控制;9延时100us以上;10清除显示;11延时10ms以上;12进入点设置;13初始化结束;这里我遇到了一个小问题,我的液晶按照这个顺序进行初始化结果不正确,无法显示,最后我把调整了一下就可以了,调整后的顺序为:清除显示进入点设置显示开关控制,不知道是什么原因,知道的告诉我一声54. /*55. /显示初始化函数56. /*57. void Display_Init(void)58. 59. delay_ms(45); /延时45ms60. PSB=1; /8位并行口61. /复位操作62. RST=1;delay(1);63. RST=0;

6、delay(1);64. RST=1;delay(1);65. /功能设定66. LcdWcom(0x30); /设置为8位并行口,基本指令集67. delay(10);68. LcdWcom(0x30); /再次设置为8位并行口,基本指令集69. delay(5);70. / /显示开关控制71. / LcdWcom(0x0c); /游标显示关,正常显示,整体显示开72. / delay(10);73. /清除显示74. LcdWcom(0x01);75. delay_ms(12); /延时12ms76. /进入点设置77. LcdWcom(0x06); /设置为游标右移,DDRAM位地址加

7、1,画面不移动78. delay(5);79. LcdWcom(0x0C); /开显示80. 三、显示基本的字符和汉字1、要想显示汉字或字符,首先要确定显示的位置,看看芯片说明书上关于屏幕地址的分配:由于此液晶为128*64,即是横向128个点,竖向64个点,由于该液晶控制器支持的字符为8*16,汉字为16*16,因此只能显示四行,如果是汉字,为每行显示8个,如果是字符,每行显示16个。由上图设置DDRAM地址的指令可知,最高位为1,余下7位为地址值,因此就对应了为什么起始地址为80H的原因(即对应的写地址指令为1000 0000);因此如果你要设定显示的地址为第一行的第一个位置,只需要调用写

8、指令函数,写入0x80即可。存在的问题:参考网上的程序及在试验过程中发现,实际能显示出来的地址分布式这样的0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 /第一行汉字位置 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 /第二行汉字位置 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f /第三行汉字位置 0x98 0x99 0x9a 0x9b 0x9c 0x9d 0x9e 0x9f /第四行汉字位置百思不得其解,尤其让人受不了的是居然是第一行和第三行地址接续,而不是第二行,有明白的高手给讲解一下设定D

9、DRAM地址参考程序:81. /*82. /设置光标函数83. /参数说明:x为行号,y为列号84. /*85. void Set_Cursor(unsigned char x, unsigned char y)86. 87. unsigned char i;88. switch(x)/确定行号89. 90. case 0x00: i=0x80; break;/第一行91. case 0x01: i=0x90; break;/第二行92. case 0x02: i=0x88; break;/第三行93. case 0x03: i=0x98; break;/第四行94. default : br

10、eak;95. 96. i = y+i;/确定列号97. LcdWcom(i);/写地址98. 复制代码2、显示字符由数据手册可查看可以显示的字符及其显示码:因此,当你设置好所要显示的光标位置后,即可调用写数据函数,写入对应相应字符的显示码,比如要显示!就应该写入0x21。99. /*100. /显示字符函数101. /*102. void Display_Char(unsigned char Alphabet)103. 104. delay(1);105. LcdWdata(Alphabet); /写入需要显示字符的显示码106. 显示!实例:107. /*显示单个字符*/108. Set_Cursor(0,0); /光标地址设定109. Display_Char(0x21); /显示字符!扩展程序:在指定位置显示字符串110. /*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1