单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8451|回复: 28
收起左侧

单片机控制16管脚LCD12864液晶文字显示详解

  [复制链接]
tyyhmtyyhm 发表于 2017-11-15 11:14 | 显示全部楼层 |阅读模式

前段时间的超声波模块http://www.51hei.com/bbs/dpj-97163-1.html,这段时间断断续续整理了一份关于小液晶的资料。

0.png

前言
    最终你会发现!最有用的资料还是数据手册!《ST7565p数据手册》!!!
    刚开始看着很头疼的英文资料,但确实最有用最权威的!!!
    简单说,该液晶就是正常液晶的简化版!硬件默认了P/S、C86、CS2 的引脚电平而已!


液晶为16管脚LCD12864,内附于某51单片机开发板,代码也基于该51单片机开发板的例程代码,我们认真分析了代码的每一行每一个函数,对其中小部分不合理(至少是我们认为不合理)的代码进行了优化和修改,并增添了一些新的内容。


我们尽最大努力最大程度上保证代码没有bug,发布前进行了上机编译并实际运行于所应用的设备,希望能帮助新手更快更好的学习!


文件中参考了大量网络资料,但并非单纯网络资料的简单堆砌,网上资料虽多,但解释详细力度以及正确率都有待考察,我们在参考大量资料基础上加上自己的理解汇总成有关该模块的文档。鉴于我们目前能力有限,其中一些理解存在误区或者不当,还请大神能够提出指正,一定虚心接受,大家互相学习!



不得不说,这块小液晶耗费了我们不少的精力



第一,读本科时候没就没有一次去认认真真仔仔细细阅读过数据手册,那是一堆该死的应为字母!大多时候使用的是现成的代码,难得糊涂似的套用,根本没搞清楚基本的原理,就这么混过来了!#@$#@%$#%^$^!!!

第二,这块16引脚的LCD12864液晶是基于普中科技51单片机开发板附带的那块,盒子是卖掉了的,卖亏了,还好搭档仁慈!但是无意留下了这块小液晶。目前来看这块小液晶网上的资料少之又少,加上一些错误的资料对第一次去细究液晶来说造成了不小的误导!

第三,三天打鱼两天晒网,这几天很多时候是看一会代码就去看电影了,所以浪费了很多时间,不过这样带来的好处是防止钻进去出不来了,当遇到实在是混沌时候,看个电影把该死的代码放下,再回来时候往往思路就清晰了。


一点小小的建议
第一, 因为16管脚的LCD12864 很少见,网上资料也比较少或者说比较杂,对新手来说容易造成比较大的误导,因此首先不建议使用该16 引脚的液晶,建议使用资料比较较多的20 引脚液晶。
第二,如果想使用16 引脚液晶,本程序以及附带的资料仅供参考!
  “普通文档”文件夹内文件使用
    1、《12864数据手册》:该数据手册没啥用,主要知道液晶驱动器为ST7565P-G
    2、《16 引脚LCD12864 数据手册》:这是一份来自网上的16引脚LCD12864 液晶模块
驱动器的中文数据手册,因为是中文的!因为是16引脚的!所以对初学者来说就像圣经、圣旨一般,但实际上里面有一些错误,不是太多,但对于新手来说这些错误误导性就太严重了,所以仅供参考,几个比较明显的错误在文档中用黄色进行了标记,并不意味着只有这些错误!所以这份文档仅供参考!等你基本理顺了再回来看看这份文档还是有用的,16引脚没错!
    3、《12864转接原理图》:看看就好
    4、《该文件只用于协助翻译数据手册TFT1P5591-W-》:文件名字说的很清楚了

重点

第一, 引脚功能-->重点文档 《16管脚LCD12864 引脚功能》
第二,行、页、列的关系-->重点文档 《12864液晶行、页、列概念详解》
第三,指令功能-->重点文档 《LCD12864 液晶 (ST7565P 驱动器)指令功能详解》、
        《ST7565p 数据手册》
第四,代码详解-->见源代码程序


资料包文件列表:
文字取模软件的使用说明\
普通文档\
12864数据手册(用处不大).pdf
12864转接原理图.pdf
16引脚LCD12864数据手册(部分错误).pdf
该文件只用于协助翻译数据手册TFT1P5591-W-Ev1.0.pdf

重点文档\
12864液晶行、页、列概念详解.pdf
16管脚LCD12864引脚功能.pdf
JLX12864G-378中文说明书.pdf
LCD12864液晶(ST7565P驱动器)指令功能详解.pdf
ST7565p数据手册.pdf

16管脚LCD12864学习记录.pdf
心得体会--16管脚LCD12864.pdf
51单片机16管脚LCD12864液晶显示代码\

0.png

单片机源程序如下:
  1. /*****************************************************/
  2. /*  NAME : 16管脚LCD12864液晶模块字符显示            
  3. /*  MCU  : STC89C51                                 
  4. /*  晶振 :11.0592MHz                              
  5. /*  接线 : D0~D7 ---- P0.0~P0.7                     
  6. /*          CS    ---- P3.2                        
  7. /*          RESET ---- P3.3                          
  8. /*          RD    ---- P2.5                          
  9. /*          RS    ---- P2.6                        
  10. /*          WR    ---- P2.7                        
  11. /*  说明 : 1、因为16管脚的LCD12864很少见,也很少用到,网上资料也比较少比较杂,对新手来说容易
  12.             造成比较大的误导,因此首先不建议用这个液晶模块,20管脚的液晶使用比较广泛,建议
  13.                                                 使用20管脚的。
  14.                                                 2、使用该液晶的应该大多数人是从普中科技的开发板中得到的硬件模块以及参考代码,因此
  15.                                                 考虑使用的兼容性我们尽量保证了代码引脚跟原版代码一致,在引脚上面修改了两个名称。
  16.                                                 第一改"RW"为"WR",因为液晶模块上面丝印标注是"WR"。第二改"RSET"为"RESET",跟模块丝印
  17.                                                 标注保持一致。模块于单片机的引脚对应上面没有作变更,保持跟原来一致,以方便新手借用
  18.                                                 51开发板直接插上液晶使用(细致程度我自己都怕!);
  19. /*****************************************************/         

  20. #include<reg51.h>
  21. #include"st7565.h"

  22. void Delay10ms(unsigned int c);

  23. void main()
  24. {
  25.   uchar i;
  26.         Lcd12864_Init();
  27.         Lcd12864_ClearScreen();

  28.         while (1)
  29.         {
  30.     //效果  :四行按照不同字序显示"液晶显示文字测试"八个字

  31.                 Lcd12864_ClearScreen();
  32.                         //                页地址  列地址   显示文字
  33.                 Lcd12864_Write16CnCHAR(0, 0, "液晶显示文字测试");
  34.           Lcd12864_Write16CnCHAR(2, 0, "试测字文示显晶液");
  35.                 Lcd12864_Write16CnCHAR(4, 0, "显示文字测试液晶");
  36.                 Lcd12864_Write16CnCHAR(6, 0, "文字显示液晶测试");
  37.                 Delay10ms(200);   //不能删除,如删除会出现文字清屏不彻底导致留尾巴

  38.                 //效果  :四行动态显示"液晶显示文字测试"八个字
  39.                 for (i=0; i<8; i += 2)
  40.                 {
  41.                 Lcd12864_ClearScreen();
  42.                 Lcd12864_Write16CnCHAR(i, 0, "液晶显示文字测试");
  43.                 Delay10ms(80);   
  44.                 }
  45.         }
  46. }

  47. /************************************************************
  48. * 函 数 名         : Delay10ms
  49. * 函数功能                     : 延时函数,延时10ms
  50. …………………
  51. …………………
  52. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
心得体会
   一个小液晶慢慢悠悠,用了好长时间,总算有个大概的结果,其中应该有些理解上的错误,望大神能够提出宝贵的意见,总的感觉,英语真的太重要了,借着最近重新拾起一些小模块,好好学习一些该怎么去读数据手册,我们总是去从网上找各种各样中文数据手册,为了逃避那些密密麻麻的英文字母,但到头来发现原版的数据手册才是最好的学习资料!

所有资料51hei提供下载:

16管脚LCD12864液晶文字显示详解.rar (6.99 MB, 下载次数: 381)

评分

参与人数 4黑币 +119 收起 理由
莫德尔 + 8 楼主给力 这样的帖子多发几个
白鹤859 + 10 绝世好帖!
SLfass + 1 很给力!
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

admin 发表于 2017-11-15 19:17 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

 楼主| tyyhmtyyhm 发表于 2017-11-15 19:59 | 显示全部楼层
admin 发表于 2017-11-15 19:17
好资料,51黑有你更精彩!!!

Thanks!之前有学习过您分享的资料,通俗易懂,很受用!
回复

使用道具 举报

 楼主| tyyhmtyyhm 发表于 2017-11-15 22:33 | 显示全部楼层
admin 发表于 2017-11-15 19:17
好资料,51黑有你更精彩!!!

自己下载自己的帖子还需要扣除黑币呢?
帖子售价和别人下载时候扣除的黑币有什么区别?
回复

使用道具 举报

 楼主| tyyhmtyyhm 发表于 2017-11-15 22:34 | 显示全部楼层
admin 发表于 2017-11-15 19:17
好资料,51黑有你更精彩!!!

自己的帖子可以删除吗
回复

使用道具 举报

admin 发表于 2017-11-16 05:46 | 显示全部楼层
tyyhmtyyhm 发表于 2017-11-15 22:33
自己下载自己的帖子还需要扣除黑币呢?
帖子售价和别人下载时候扣除的黑币有什么区别?

这个问题目前正在解决中,先临时性的补偿了您一些积分
回复

使用道具 举报

TYGARY 发表于 2017-11-16 09:31 | 显示全部楼层
好资料,学习参考参考
回复

使用道具 举报

tt98 发表于 2017-11-16 11:05 | 显示全部楼层
怎么没人下?我来下载!
回复

使用道具 举报

白鹤859 发表于 2017-11-16 21:20 | 显示全部楼层
这个液晶很少见啊!作者能解释的这么详细真的很有帮助!版主应该给精华啊!
回复

使用道具 举报

 楼主| tyyhmtyyhm 发表于 2017-11-18 16:18 | 显示全部楼层
在代码中,我们采用 X坐标=页坐标,Y坐标=列坐标  的模式,有的资料认为X坐标就是列坐标,Y坐标就是页坐标,不要混淆!
回复

使用道具 举报

飞翔的土豆 发表于 2018-1-14 16:51 | 显示全部楼层
资料非常好正在寻找
回复

使用道具 举报

飞翔的土豆 发表于 2018-1-14 16:51 | 显示全部楼层
资料出现的非常及时正在学习
回复

使用道具 举报

ncj_12345 发表于 2018-3-1 19:39 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

14#
无效楼层,该帖已经被删除
moni123 发表于 2018-5-10 10:44 来自手机 | 显示全部楼层
正好需要,谢谢楼主
回复

使用道具 举报

kobe1 发表于 2018-6-16 10:46 | 显示全部楼层
这个怎么显示数字了
回复

使用道具 举报

1261867136qq 发表于 2018-7-24 16:15 | 显示全部楼层
我还是先从LCD12864 入手,再到OLED吧,谢谢楼主
回复

使用道具 举报

canxin520 发表于 2018-8-14 20:16 | 显示全部楼层
有个问题,lcd最上面那行小图标能全部让它不显示吗
回复

使用道具 举报

toofool024 发表于 2018-8-26 09:33 | 显示全部楼层
好东西,不过不够分下。。。。
回复

使用道具 举报

szzxl10 发表于 2018-8-26 11:49 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

文凤轩 发表于 2018-8-27 11:30 来自手机 | 显示全部楼层
这个资料太宝贵了,谢谢楼主分享
回复

使用道具 举报

dayu8375 发表于 2018-9-4 13:59 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

dayu8375 发表于 2018-9-4 14:00 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ZJDPJ 发表于 2018-10-16 17:14 | 显示全部楼层
厉害了,不愧是大佬
回复

使用道具 举报

faderkkk 发表于 2018-11-14 17:39 来自手机 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

26#
无效楼层,该帖已经被删除
firewise 发表于 2018-12-20 16:38 | 显示全部楼层
谢楼主分享。。。。。。
回复

使用道具 举报

15159823961 发表于 2019-1-3 18:52 | 显示全部楼层
感觉没什么用出
回复

使用道具 举报

HBWBSYB 发表于 2019-3-15 08:50 | 显示全部楼层
楼主加油,我找了半天的16脚12864液晶的程序和资料,终于找到了个有用的。
回复

使用道具 举报

struct00 发表于 2019-3-15 16:26 | 显示全部楼层
admin 发表于 2017-11-15 18:46
这个问题目前正在解决中,先临时性的补偿了您一些积分

自己下载自己的帖子还需要扣除黑币! 为什么这个问题还没有解决? 有那么难吗?都1年多了,还拖着!

评分

参与人数 1黑币 +8 收起 理由
zhengchong60 + 8

查看全部评分

回复

使用道具 举报

haigear 发表于 2019-3-22 21:06 | 显示全部楼层
16引脚的的确很少,都是走I2C的啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机. 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

快速回复 返回顶部 返回列表