標(biāo)題: STM32學(xué)習(xí)筆記-LCD1602顯示 [打印本頁(yè)]

作者: 水泡泡洗澡澡    時(shí)間: 2018-7-25 18:09
標(biāo)題: STM32學(xué)習(xí)筆記-LCD1602顯示
這幾天一直被lcd1602困擾,就是不顯示,開(kāi)始一直糾結(jié)于stm32的3.3V能不能驅(qū)動(dòng),最后發(fā)現(xiàn)3.3v也是可以驅(qū)動(dòng)的,下面是我的知識(shí)整理和方法,和大家分享一下。

首先,了解一下lcd1602:
字符型液晶顯示模塊是一種專門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式 LCD,目前常用 16*1,
16*2,20*2 和 40*2 行等的模塊。硬件如圖:

1602LCD 主要技術(shù)參數(shù):
顯示容量:16×2 個(gè)字符
芯片工作電壓:4.5—5.5V
工作電流:2.0mA(5.0V)
模塊最佳工作電壓:5.0V
字符尺寸:2.95×4.35(W×H)mm
好多網(wǎng)友都說(shuō)3.3V無(wú)法驅(qū)動(dòng),其實(shí)3.3V可以驅(qū)動(dòng)的,只是顯示的不清楚而已,大家調(diào)節(jié)3腳的液晶顯示偏壓就能正常顯示了,具體第三腳是什么下面再說(shuō)。
引腳定義:

第 1 腳:VSS 為地電源。
第 2 腳:VDD 接 5V 正電源。
第 3 腳:VL 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)
比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè) 10K 的電位器調(diào)整對(duì)比度。
第 4 腳:RS 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。
第 5 腳:R/W 為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng) RS 和 R/W
共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng) RS 為低電平 R/W 為高電平時(shí)可以讀忙信
號(hào),當(dāng) RS 為高電平 R/W 為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。
第 6 腳:E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。
第 7~14 腳:D0~D7 為 8 位雙向數(shù)據(jù)線。
第 15 腳:背光源正極。
第 16 腳:背光源負(fù)極。
下面說(shuō)說(shuō)指令集:

1602 液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1 為
高電平、0 為低電平)

指令 1:清顯示,指令碼 01H,光標(biāo)復(fù)位到地址 00H 位置。


指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00H。

指令 3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有
文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。
指令 4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯
示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,
高電平閃爍,低電平不閃爍。
指令 5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。
指令 6:功能設(shè)置命令 DL:高電平時(shí)為 4 位總線,低電平時(shí)為 8 位總線 N:低電平時(shí)為單
行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示 5x7 的點(diǎn)陣字符,高電平時(shí)顯示 5x10 的點(diǎn)陣
字符。
指令 7:字符發(fā)生器 RAM 地址設(shè)置。
指令 8:DDRAM 地址設(shè)置。
指令 9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或
者數(shù)據(jù),如果為低電平表示不忙。
指令 10:寫(xiě)數(shù)據(jù)。
指令 11:讀數(shù)據(jù)。


如何顯示:
液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電
平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在
哪里顯示字符,下圖是 1602 的內(nèi)部顯示地址。

例如第二行第一個(gè)字符的地址是 40H,那么是否直接寫(xiě)入 40H 就可以將光標(biāo)定位在第二行
第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位 D7 恒定為高電平 1 所以
實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。

1602LCD 的一般初始化(復(fù)位)過(guò)程
延時(shí) 15mS
寫(xiě)指令 38H(不檢測(cè)忙信號(hào))
延時(shí) 5mS
寫(xiě)指令 38H(不檢測(cè)忙信號(hào))
延時(shí) 5mS
寫(xiě)指令 38H(不檢測(cè)忙信號(hào))


以后每次寫(xiě)指令、讀/寫(xiě)數(shù)據(jù)操作均需要檢測(cè)忙信號(hào)
寫(xiě)指令 38H:顯示模式設(shè)置
寫(xiě)指令 08H:顯示關(guān)閉
寫(xiě)指令 01H:顯示清屏
寫(xiě)指令 06H:顯示光標(biāo)移動(dòng)設(shè)置
寫(xiě)指令 0CH:顯示開(kāi)及光標(biāo)設(shè)置


總結(jié):
1.因?yàn)?1單片機(jī)是直接輸出5V所以可以直接驅(qū)動(dòng)1602,stm32系列是輸出3.3v電壓,所以不能正常驅(qū)動(dòng)1602,我的解決 辦法是將二腳vcc接5V,其他腳還是用3.3v驅(qū)動(dòng),結(jié)果就能正常顯示了。
2.還有一個(gè)問(wèn)題,就是液晶顯示偏壓的問(wèn)題,上面說(shuō)了接地對(duì)比度最高,接vcc對(duì)比度最低,或者接可變電阻器進(jìn)行調(diào)節(jié),開(kāi)始的時(shí)候就是這個(gè)顯示偏壓接了vcc倒是我一直看到不清楚,文檔看到不仔細(xì)!

下面是我的顯示效果:


作者: tim5529519    時(shí)間: 2018-7-26 12:37
樓主可以看下你的原理圖嗎

作者: mrliangg    時(shí)間: 2018-7-27 09:59
現(xiàn)在用1602的都不多了吧
作者: 秀太    時(shí)間: 2018-12-6 16:06
單片機(jī)用接耐受5V的引腳嗎?硬件上直接連的嗎
作者: noleaf    時(shí)間: 2018-12-25 21:53
同問(wèn)5V問(wèn)題,選的是FT管腳,還是直接普通管腳。
作者: pm1981    時(shí)間: 2019-5-8 09:51
看看學(xué)習(xí)一下
作者: 395164965    時(shí)間: 2020-3-20 10:23
樓主,我用stm32驅(qū)動(dòng)1602,一直沒(méi)有顯示,2,15腳接5.5v,3腳接了3.3v
作者: 3064018882    時(shí)間: 2021-4-20 10:42

樓主可以看下你的原理圖嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1