這幾天一直被lcd1602困擾,就是不顯示,開始一直糾結于stm32的3.3V能不能驅動,最后發(fā)現(xiàn)3.3v也是可以驅動的,下面是我的知識整理和方法,和大家分享一下。
首先,了解一下lcd1602:
字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式 LCD,目前常用 16*1,
16*2,20*2 和 40*2 行等的模塊。硬件如圖:
1.png (327.49 KB, 下載次數(shù): 85)
下載附件
2018-7-26 01:08 上傳
1602LCD 主要技術參數(shù):
顯示容量:16×2 個字符
芯片工作電壓:4.5—5.5V
工作電流:2.0mA(5.0V)
模塊最佳工作電壓:5.0V
字符尺寸:2.95×4.35(W×H)mm
好多網(wǎng)友都說3.3V無法驅動,其實3.3V可以驅動的,只是顯示的不清楚而已,大家調節(jié)3腳的液晶顯示偏壓就能正常顯示了,具體第三腳是什么下面再說。
引腳定義:
2.png (65.53 KB, 下載次數(shù): 84)
下載附件
2018-7-26 01:08 上傳
第 1 腳:VSS 為地電源。
第 2 腳:VDD 接 5V 正電源。
第 3 腳:VL 為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對
比度過高時會產生“鬼影”,使用時可以通過一個 10K 的電位器調整對比度。
第 4 腳:RS 為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。
第 5 腳:R/W 為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當 RS 和 R/W
共同為低電平時可以寫入指令或者顯示地址,當 RS 為低電平 R/W 為高電平時可以讀忙信
號,當 RS 為高電平 R/W 為低電平時可以寫入數(shù)據(jù)。
第 6 腳:E 端為使能端,當 E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。
第 7~14 腳:D0~D7 為 8 位雙向數(shù)據(jù)線。
第 15 腳:背光源正極。
第 16 腳:背光源負極。
下面說說指令集:
3.png (97.3 KB, 下載次數(shù): 69)
下載附件
2018-7-26 01:08 上傳
1602 液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1 為
高電平、0 為低電平)
指令 1:清顯示,指令碼 01H,光標復位到地址 00H 位置。
指令 2:光標復位,光標返回到地址 00H。
指令 3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有
文字是否左移或者右移。高電平表示有效,低電平則無效。
指令 4:顯示開關控制。 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯
示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,
高電平閃爍,低電平不閃爍。
指令 5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。
指令 6:功能設置命令 DL:高電平時為 4 位總線,低電平時為 8 位總線 N:低電平時為單
行顯示,高電平時雙行顯示 F: 低電平時顯示 5x7 的點陣字符,高電平時顯示 5x10 的點陣
字符。
指令 7:字符發(fā)生器 RAM 地址設置。
指令 8:DDRAM 地址設置。
指令 9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或
者數(shù)據(jù),如果為低電平表示不忙。
指令 10:寫數(shù)據(jù)。
指令 11:讀數(shù)據(jù)。
如何顯示:
液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電
平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在
哪里顯示字符,下圖是 1602 的內部顯示地址。
4.png (171.88 KB, 下載次數(shù): 76)
下載附件
2018-7-26 01:08 上傳
例如第二行第一個字符的地址是 40H,那么是否直接寫入 40H 就可以將光標定位在第二行
第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 D7 恒定為高電平 1 所以
實際寫入的數(shù)據(jù)應該是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。
1602LCD 的一般初始化(復位)過程
延時 15mS
寫指令 38H(不檢測忙信號)
延時 5mS
寫指令 38H(不檢測忙信號)
延時 5mS
寫指令 38H(不檢測忙信號)
以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號
寫指令 38H:顯示模式設置
寫指令 08H:顯示關閉
寫指令 01H:顯示清屏
寫指令 06H:顯示光標移動設置
寫指令 0CH:顯示開及光標設置
總結:
1.因為51單片機是直接輸出5V所以可以直接驅動1602,stm32系列是輸出3.3v電壓,所以不能正常驅動1602,我的解決 辦法是將二腳vcc接5V,其他腳還是用3.3v驅動,結果就能正常顯示了。
2.還有一個問題,就是液晶顯示偏壓的問題,上面說了接地對比度最高,接vcc對比度最低,或者接可變電阻器進行調節(jié),開始的時候就是這個顯示偏壓接了vcc倒是我一直看到不清楚,文檔看到不仔細啊!
下面是我的顯示效果:
5.png (1.6 MB, 下載次數(shù): 91)
下載附件
2018-7-26 01:08 上傳
|