找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 14295|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

STM32學(xué)習(xí)筆記-LCD1602顯示

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這幾天一直被lcd1602困擾,就是不顯示,開始一直糾結(jié)于stm32的3.3V能不能驅(qū)動,最后發(fā)現(xiàn)3.3v也是可以驅(qū)動的,下面是我的知識整理和方法,和大家分享一下。

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

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

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

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

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


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

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


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

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

1602LCD 的一般初始化(復(fù)位)過程
延時 15mS
寫指令 38H(不檢測忙信號)
延時 5mS
寫指令 38H(不檢測忙信號)
延時 5mS
寫指令 38H(不檢測忙信號)


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


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

下面是我的顯示效果:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

8#
ID:908864 發(fā)表于 2021-4-20 10:42 | 只看該作者

樓主可以看下你的原理圖嗎
回復(fù)

使用道具 舉報

7#
ID:712072 發(fā)表于 2020-3-20 10:23 | 只看該作者
樓主,我用stm32驅(qū)動1602,一直沒有顯示,2,15腳接5.5v,3腳接了3.3v
回復(fù)

使用道具 舉報

6#
ID:223999 發(fā)表于 2019-5-8 09:51 | 只看該作者
看看學(xué)習(xí)一下
回復(fù)

使用道具 舉報

5#
ID:143930 發(fā)表于 2018-12-25 21:53 | 只看該作者
同問5V問題,選的是FT管腳,還是直接普通管腳。
回復(fù)

使用道具 舉報

地板
ID:389156 發(fā)表于 2018-12-6 16:06 | 只看該作者
單片機(jī)用接耐受5V的引腳嗎?硬件上直接連的嗎
回復(fù)

使用道具 舉報

板凳
ID:158903 發(fā)表于 2018-7-27 09:59 | 只看該作者
現(xiàn)在用1602的都不多了吧
回復(fù)

使用道具 舉報

沙發(fā)
ID:367963 發(fā)表于 2018-7-26 12:37 | 只看該作者
樓主可以看下你的原理圖嗎
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表