前段時間的超聲波模塊http://www.zg4o1577.cn/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)
2017-11-15 11:13 上傳
點擊文件名下載附件
16管腳LCD12864液晶文字顯示詳解
|