前段时间的超声波模块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)
|