我們采用LCD模塊為顯尚光電的DST2001PH TFTLCD,它的控制器為ILI9320,它采用26萬(wàn)色的TFT屏,分辨率為320×240,采用16位的80并口與外部連接。
該模塊的80并口有如下一些信號(hào)線(xiàn):
CS/PC9:TFTLCD片選信號(hào)。 片選拉低時(shí),表示選中。
RS/PC8:命令/數(shù)據(jù)標(biāo)志(0,讀寫(xiě)命令;1,讀寫(xiě)數(shù)據(jù))。
WR/PC7:向 TFTLCD寫(xiě)入數(shù)據(jù)。在WR的上升沿,使數(shù)據(jù)寫(xiě)入到LCD芯片里;
RD/PC6:從 TFTLCD讀取數(shù)據(jù)。 在RD的上升沿,使數(shù)據(jù)鎖存到數(shù)據(jù)線(xiàn)上;
D[15:0]:16位雙向數(shù)據(jù)線(xiàn)。
RST:硬復(fù)位TFTLCD。
RST信號(hào)線(xiàn),是直接接到 STM32的復(fù)位腳上,并不由軟件控制,這樣可以省下來(lái)一個(gè)IO端口。
另外,還需要一個(gè)背光控制線(xiàn)來(lái)制TFTLCD的背光。所以,總共需要的IO口數(shù)目為21個(gè)。
控制器自帶顯存,其顯存總大小為172820(240*320*18/8),即18位模式(26萬(wàn)色)下的顯存量。
模塊的16位數(shù)據(jù)線(xiàn)與顯寸的對(duì)應(yīng)關(guān)系為565方式,如下圖所示:
最低5位代表藍(lán)色,中間6位為綠色,最高5位為紅色。數(shù)值越大,表示該顏色越深。
接下來(lái),介紹一下ILI9320的幾個(gè)重要命令,因?yàn)镮LI9320的命令很多,不可能一一介紹。
有興趣的大家可以找到ILI9320的Datasheet看看,里面對(duì)這些命令有詳細(xì)的介紹。
這里我們要介紹的命令列表如下:
R0,這個(gè)命令,有兩個(gè)功能,如果對(duì)它寫(xiě),則最低位為 OSC,用于開(kāi)啟或關(guān)閉振蕩器。而如果對(duì)它讀操作,則返回的是控制器的型號(hào)。
R3,入口模式命令。我們重點(diǎn)關(guān)注的是 I/D0、I/D1、AM 這 3 個(gè)位,因?yàn)檫@ 3 個(gè)位控制了屏幕的顯示方向。
AM:控制 GRAM 更新方向。當(dāng) AM=0 的時(shí)候,地址以行方向更新。當(dāng) AM=1 的時(shí)候,地址以列方向更新。
I/D[1:0]:當(dāng)更新了一個(gè)數(shù)據(jù)之后,根據(jù)這兩個(gè)位的設(shè)置來(lái)控制行地址和列地址計(jì)數(shù)器自減或自增。
R7,顯示控制命令。該命令 CL 位用來(lái)控制是 8 位彩色,還是 26 萬(wàn)色。為 0 時(shí) 26 萬(wàn)色,為 1 時(shí)八位色。D1、D0、BASEE 這三個(gè)位用來(lái)控制顯示開(kāi)關(guān)與否的。當(dāng)全部設(shè)置為 1 的時(shí)候開(kāi)啟顯示,全 0 是關(guān)閉。我們一般通過(guò)該命令的設(shè)置來(lái)開(kāi)啟或關(guān)閉顯示器,以降低功耗。
R32,R33,設(shè)置 GRAM 的行地址和列地址。R32 用于設(shè)置列地址(X 坐標(biāo),0~239),R33 用于設(shè)置行地址(Y坐標(biāo),0~319)。當(dāng)我們要在某個(gè)指定點(diǎn)寫(xiě)入一個(gè)顏色的時(shí)候,先通過(guò)這兩個(gè)命令設(shè)置到改點(diǎn),然后寫(xiě)入顏色值就可以了。
R34,寫(xiě)數(shù)據(jù)到 GRAM 命令,當(dāng)寫(xiě)入了這個(gè)命令之后,地址計(jì)數(shù)器才會(huì)自動(dòng)的增加和減少。該命令是我們要介紹的這一組命令里面唯一的單個(gè)操作的命令,只需要寫(xiě)入該值就可以了,其他的都是要先寫(xiě)入命令編號(hào),然后寫(xiě)入操作數(shù)。
R80~R83,行列 GRAM 地址位置設(shè)置。這幾個(gè)命令用于設(shè)定你顯示區(qū)域的大小,我們整個(gè)屏的大小為 240*320,但是有時(shí)候我們只需要在其中的一部分區(qū)域?qū)懭霐?shù)據(jù),如果用先寫(xiě)坐標(biāo),后寫(xiě)數(shù)據(jù)這樣的方式來(lái)實(shí)現(xiàn),則速度大打折扣。此時(shí)我們就可以通過(guò)這幾個(gè)命令,在其中開(kāi)辟一個(gè)區(qū)域,然后不停的丟數(shù)據(jù),地址計(jì)數(shù)器就會(huì)根據(jù) R3 的設(shè)置自動(dòng)增加/減少,這樣就不需要頻繁的寫(xiě)地址了,大大提高了刷新的速度。
TFTLCD顯示需要的相關(guān)設(shè)置步驟如下:
1)設(shè)置STM32與TFTLCD模塊相連接的IO端口。
這一步,先將我們與TFTLCD模塊相連的IO端口設(shè)置為輸出,具體使用哪些IO端口,需要根據(jù)連接電路以及TFTLCD模塊的設(shè)置來(lái)確定。
2)初始化TFTLCD模塊。
通過(guò)向 TFTLCD寫(xiě)入一系列的設(shè)置,來(lái)啟動(dòng)TFTLCD的顯示。為后續(xù)顯示字符和數(shù)字做準(zhǔn)備。
3)通過(guò)函數(shù)將字符和數(shù)字顯示到TFTLCD模塊上。
這里就是通過(guò)我們?cè)O(shè)計(jì)的程序,將要顯示的字符送到TFTLCD模塊就可以了。
-
控制器
+關(guān)注
關(guān)注
112文章
16206瀏覽量
177427 -
STM32
+關(guān)注
關(guān)注
2266文章
10873瀏覽量
354843 -
LCD模塊
+關(guān)注
關(guān)注
0文章
11瀏覽量
7814
原文標(biāo)題:STM32F10x的LCD(ILI9320)顯示
文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論