标题: 单片机控制16管脚LCD12864液晶文字显示详解 [打印本页]
作者: tyyhmtyyhm 时间: 2017-11-15 11:14
标题: 单片机控制16管脚LCD12864液晶文字显示详解
前段时间的超声波模块http://www.51hei.com/bbs/dpj-97163-1.html,这段时间断断续续整理了一份关于小液晶的资料。
前言
最终你会发现!最有用的资料还是数据手册!《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液晶显示代码\
单片机源程序如下:
- /*****************************************************/
- /* NAME : 16管脚LCD12864液晶模块字符显示
- /* MCU : STC89C51
- /* 晶振 :11.0592MHz
- /* 接线 : D0~D7 ---- P0.0~P0.7
- /* CS ---- P3.2
- /* RESET ---- P3.3
- /* RD ---- P2.5
- /* RS ---- P2.6
- /* WR ---- P2.7
- /* 说明 : 1、因为16管脚的LCD12864很少见,也很少用到,网上资料也比较少比较杂,对新手来说容易
- 造成比较大的误导,因此首先不建议用这个液晶模块,20管脚的液晶使用比较广泛,建议
- 使用20管脚的。
- 2、使用该液晶的应该大多数人是从普中科技的开发板中得到的硬件模块以及参考代码,因此
- 考虑使用的兼容性我们尽量保证了代码引脚跟原版代码一致,在引脚上面修改了两个名称。
- 第一改"RW"为"WR",因为液晶模块上面丝印标注是"WR"。第二改"RSET"为"RESET",跟模块丝印
- 标注保持一致。模块于单片机的引脚对应上面没有作变更,保持跟原来一致,以方便新手借用
- 51开发板直接插上液晶使用(细致程度我自己都怕!);
- /*****************************************************/
- #include<reg51.h>
- #include"st7565.h"
- void Delay10ms(unsigned int c);
- void main()
- {
- uchar i;
- Lcd12864_Init();
- Lcd12864_ClearScreen();
- while (1)
- {
- //效果 :四行按照不同字序显示"液晶显示文字测试"八个字
- Lcd12864_ClearScreen();
- // 页地址 列地址 显示文字
- Lcd12864_Write16CnCHAR(0, 0, "液晶显示文字测试");
- Lcd12864_Write16CnCHAR(2, 0, "试测字文示显晶液");
- Lcd12864_Write16CnCHAR(4, 0, "显示文字测试液晶");
- Lcd12864_Write16CnCHAR(6, 0, "文字显示液晶测试");
- Delay10ms(200); //不能删除,如删除会出现文字清屏不彻底导致留尾巴
- //效果 :四行动态显示"液晶显示文字测试"八个字
- for (i=0; i<8; i += 2)
- {
- Lcd12864_ClearScreen();
- Lcd12864_Write16CnCHAR(i, 0, "液晶显示文字测试");
- Delay10ms(80);
- }
- }
- }
- /************************************************************
- * 函 数 名 : Delay10ms
- * 函数功能 : 延时函数,延时10ms
- …………………
- …………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码 心得体会
一个小液晶慢慢悠悠,用了好长时间,总算有个大概的结果,其中应该有些理解上的错误,望大神能够提出宝贵的意见,总的感觉,英语真的太重要了,借着最近重新拾起一些小模块,好好学习一些该怎么去读数据手册,我们总是去从网上找各种各样中文数据手册,为了逃避那些密密麻麻的英文字母,但到头来发现原版的数据手册才是最好的学习资料!
所有资料51hei提供下载:
16管脚LCD12864液晶文字显示详解.rar
(6.99 MB, 下载次数: 672)
作者: admin 时间: 2017-11-15 19:17
好资料,51黑有你更精彩!!!
作者: tyyhmtyyhm 时间: 2017-11-15 19:59
Thanks!之前有学习过您分享的资料,通俗易懂,很受用!
作者: tyyhmtyyhm 时间: 2017-11-15 22:33
自己下载自己的帖子还需要扣除黑币呢?
帖子售价和别人下载时候扣除的黑币有什么区别?
作者: tyyhmtyyhm 时间: 2017-11-15 22:34
自己的帖子可以删除吗
作者: admin 时间: 2017-11-16 05:46
这个问题目前正在解决中,先临时性的补偿了您一些积分
作者: 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黑有你更精彩!!!
作者: 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
谢谢楼主
作者: 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
自己下载自己的帖子还需要扣除黑币! 为什么这个问题还没有解决? 有那么难吗?都1年多了,还拖着!
作者: haigear 时间: 2019-3-22 21:06
16引脚的的确很少,都是走I2C的啦
作者: 1ren2xiao3yao1 时间: 2019-4-15 11:38
感谢分享
作者: SuangSheng 时间: 2019-4-15 12:07
非常给力
作者: tzwsoho 时间: 2019-4-29 11:19
谢谢楼主,资料不错
作者: tzwsoho 时间: 2019-4-29 11:20
好资料,学习参考参考
作者: gyts 时间: 2019-7-2 17:00
好资料,51黑有你更精彩!!!
作者: sun_sky 时间: 2019-7-13 18:44
比普中讲解的好多了。赞!
作者: huaaaa 时间: 2019-7-13 19:10
好资料,学习参考.51黑有你更精彩!!!
作者: gemxie 时间: 2019-7-22 12:55
谢谢楼主分享了,学习了
作者: zxy2266 时间: 2019-8-30 20:38
找了几个16脚的屏,正无处下手
作者: vectorxu 时间: 2019-11-9 22:07
好资料,下载学习,谢谢楼主分享
作者: vectorxu 时间: 2019-11-9 22:08
好资料,下载学习,谢谢楼主分享!
作者: lindeijun1 时间: 2020-1-10 16:02
谢谢楼主分享!!!
作者: 抱歉我是真的菜 时间: 2020-3-28 09:20
怎么实时显示时间呢?要发送的字符串怎么根据时间实时修改呢?还请大佬解答
作者: ZXC51 时间: 2020-5-10 21:04
普中科技送的板子但是资料却是20脚的程序,有点郁闷。然后仔细一看是程序不匹配。
作者: advantech 时间: 2022-9-19 20:25
给力!刚用这个,正在困惑中
作者: Ycwang@ 时间: 2024-4-17 20:27
好资料,51黑有你更精彩!!!谢谢楼主
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |