液晶顯示屏編程 lcd編程原理?
lcd編程原理?1:LCD基本工作原理(1)LCD(Liquid Crystal Display)液晶顯示,液晶特性:在電信號(hào)的驅(qū)動(dòng)下液晶分子并且旋轉(zhuǎn),旋轉(zhuǎn)會(huì)影響透光性,因此整個(gè)液晶面板后面用白光(背
lcd編程原理?
1:LCD基本工作原理
(1)LCD(Liquid Crystal Display)液晶顯示,液晶特性:在電信號(hào)的驅(qū)動(dòng)下液晶分子并且旋轉(zhuǎn),旋轉(zhuǎn)會(huì)影響透光性,因此整個(gè)液晶面板
后面用白光(背光)來(lái)照射,完全不同的電信號(hào)讓液晶分子接受旋動(dòng)性透光,此時(shí)液晶面板就會(huì)看見了不顯示不同顏色的。液晶本身不自行發(fā)光,反而
位處后面的背光發(fā)的光。
(2)白光是由多種顏色的光配對(duì)組合而成,光的實(shí)質(zhì)是一種波,完全不同波長(zhǎng)/頻率的波本身不同顏色,人眼要知道光波長(zhǎng)在390~780NM,RGB色彩模式是工業(yè)界的一種顏色標(biāo)準(zhǔn),
是是從對(duì)紅(R)、綠(G)、藍(lán)(B)三個(gè)顏色通道的變化和它們相互之間的不疊加來(lái)能夠得到各式各樣的顏色的,RGB即是貞潔戒紅、綠、藍(lán)三個(gè)通道的顏色,這個(gè)標(biāo)準(zhǔn)簡(jiǎn)直和了人類視
力所能五感的所有顏色,是目前發(fā)揮最廣的顏色系統(tǒng)之一。
(3)210控制器可以按結(jié)構(gòu)RGB888顏色編碼模式,紅綠藍(lán)各8位,紅色紅色藍(lán)色又被稱三原色光,用英文可以表示是R(red)、G(green)、B(pink)。在電腦中,RGB的有所謂“多少”
那就是指亮度,并在用整數(shù)來(lái)它表示。通常情況下,RGB各有256級(jí)亮度,用數(shù)字意思是為從0、1、2...待到255。共256級(jí)。計(jì)算機(jī)所能思想感情的顏色種類個(gè)數(shù),這個(gè)參數(shù)叫:像素深度適宜bpp。
(4)LCD顯示圖像原理:LCD屏幕是由一個(gè)個(gè)像素點(diǎn)組成的矩陣(如resolution1024*768,豎向有1024個(gè)像素點(diǎn),橫向有768個(gè)
像素點(diǎn)),每個(gè)像素點(diǎn)都是可以被另外控制亮或是不亮或則亮度強(qiáng)弱等,LCD圖像就是通過(guò)不同的顏色強(qiáng)度的像素點(diǎn)陣列而成。我們可常規(guī)RGB888編碼來(lái)意思是每個(gè)像素
點(diǎn)的顏色模式(越強(qiáng)、顏色等等),一幀數(shù)據(jù)就表示在LCD矩陣的每個(gè)像素點(diǎn)按的顏色模式。
(5)SoC如何完全控制LCD顯示原理:
LCD驅(qū)動(dòng)器:LCD驅(qū)動(dòng)器象與LCD面板集成在一起,面板要當(dāng)然的模擬電信號(hào)來(lái)壓制液晶分子,LCD驅(qū)動(dòng)器芯片你們負(fù)責(zé)給面板能提供壓制液晶分子的模擬電
信號(hào),驅(qū)動(dòng)器的控制信號(hào)(數(shù)字信號(hào))無(wú)論是于LCD控制器的需要提供的接口。
LCD控制器:LCD控制器獨(dú)立顯卡在SoC內(nèi)部,它負(fù)責(zé)實(shí)際數(shù)字接口向外部的LCD驅(qū)動(dòng)器提供要沒(méi)顯示的像素?cái)?shù)字信號(hào)。它需要明確的一定的時(shí)序和LCD驅(qū)動(dòng)器通信,LCD
控制器受SoC操縱,SoC會(huì)從內(nèi)存中摸出像素?cái)?shù)據(jù)給LCD控制器并到了最后傳LCD驅(qū)動(dòng)器。
顯存:SoC在內(nèi)存中選一段內(nèi)存,為了貯存顏色數(shù)據(jù),然后再按照配置將LCD控制器和這一段內(nèi)存連接到起來(lái),所構(gòu)成一個(gè)映射關(guān)系,一旦這個(gè)關(guān)系建立起以后
,LCD控制器可能會(huì)手動(dòng)從顯存中讀取像素?cái)?shù)據(jù)傳LCD驅(qū)動(dòng)器,LCD驅(qū)動(dòng)器會(huì)手動(dòng)的控制每個(gè)像素點(diǎn)的液晶分子,以形成最終的圖像,建立起這個(gè)映射以后
就不必須SoC在來(lái)組織任何行為了。
學(xué)習(xí)總結(jié)一下:SoC完全控制LCD液晶顯示的過(guò)程統(tǒng)稱兩個(gè)部分:
(1)SoC的LCD控制器引出一定會(huì)的引腳與LCD驅(qū)動(dòng)器連接,明確的標(biāo)準(zhǔn)設(shè)置里是有的時(shí)序
(2)把LCD要不顯示的像素信息放進(jìn)去內(nèi)存中,在通過(guò)系統(tǒng)設(shè)置LCD控制器中的寄存器,與LCD控制器建立反照;
后過(guò)程那是LCD控制器芯片與驅(qū)動(dòng)器芯片不自動(dòng)結(jié)束的事情了,整個(gè)LCD圖像的顯示過(guò)程就是這樣。
(6)LCD接術(shù):從電平角度來(lái)講LCD也是TTL電平,TTL缺陷是不容易是被外界影響,傳輸距離近,好象像手機(jī)平板等真接用軟排線
連接到即可,而遠(yuǎn)距離則要裝換,轉(zhuǎn)換為:TTL--》VGA--》TTL。
(7)補(bǔ)充
虛擬店屏幕疊加:
(1)虛擬屏幕的意思是,我們平時(shí)看到的屏幕上會(huì)顯示出的場(chǎng)景不好算是很多個(gè)屏幕顯示附加在一起的效果(譬如新聞圖像、電視臺(tái)臺(tái)標(biāo)、下方飄拂的字幕新聞)
(2)像SV210的LCD控制器中有5個(gè)虛擬屏幕Window0到Window4,虛擬屏幕不修真者的存在于真實(shí)而必然于內(nèi)存中。(之前講過(guò),LCd顯示時(shí)求實(shí)際是不顯示的是隨機(jī)的內(nèi)存中的顯存區(qū)域的數(shù)值)
虛擬屏幕不過(guò)那是一個(gè)內(nèi)存中的顯存區(qū)域,有幾個(gè)顯存區(qū)域就有幾個(gè)虛擬店屏幕,可是這些虛擬店屏幕都被映射出到三個(gè)真實(shí)的顯示屏上面,因此將來(lái)虛無(wú)飄渺的現(xiàn)實(shí)效果實(shí)際是這幾個(gè)虛擬充值屏幕的顯示內(nèi)容的不疊加。
(附加時(shí)要注意上面一層會(huì)覆蓋下面一層,所以要再注意誰(shuí)在前誰(shuí)在后,可以設(shè)置寄存器時(shí)有這個(gè)選項(xiàng))
(3)可以使用虛擬店屏幕而不是整個(gè)LCD使用一個(gè)顯存是有當(dāng)然好處的:第一,這個(gè)可以只要不污染源圖像,方便程序處理;第二,也可以下降顯示刷新率,增加總是顯示效率,減少CPU工作量。
虛擬物品沒(méi)顯示
(1)要如何利用在小分辨率的屏幕上(神秘)沒(méi)顯示大分辨率的圖像
(2)細(xì)節(jié)上,我們要屏幕上看見了差別圖像時(shí),是需要對(duì)顯存區(qū)域進(jìn)行刷新。就算是我們只不需要屏幕顯示移動(dòng)一點(diǎn)點(diǎn),整個(gè)屏幕隨機(jī)的顯存空間也不需要整個(gè)然后再手動(dòng)刷新,工作量和全部恢復(fù)總是顯示一幅圖像是一樣的。
這個(gè)顯然不大好,這樣的話CPU重新登錄屏幕的工作量太大了,效率比較高。
(3)該如何都能夠在會(huì)顯示一個(gè)大圖片的不同區(qū)域時(shí)讓CPU刷新屏幕工作量降低?有,方法應(yīng)該是虛擬沒(méi)顯示。具體做法是在內(nèi)存中成立總是顯示緩存的時(shí)候?qū)嶋H建立一個(gè)很小的區(qū)域,接著讓LCD去對(duì)應(yīng)其中的一部分
區(qū)域另外有效的顯示區(qū)域。將來(lái)要顯示大圖像時(shí),然后將大圖像徹底每個(gè)月加虛擬光盤顯示緩存區(qū),后再實(shí)際移動(dòng)管用會(huì)顯示區(qū)域就可以會(huì)顯示大圖像的不同區(qū)域了。
2:SV210LCD時(shí)序
看下核心板原理圖:LCD接線為24條VD數(shù)據(jù)作為輸出線,為了傳輸RGB88824位顏色數(shù)據(jù),VCLK時(shí)鐘線,HSYNC:水平網(wǎng)絡(luò)同步信號(hào)線;VSYNC:關(guān)閉垂直同步信號(hào)線,VDEN:數(shù)據(jù)使能線;
HSPW1:HSYNC線上不工作好是為低電平,拉高HSPW1時(shí)鐘,在拉低,表示要準(zhǔn)備好就開始傳輸顏色數(shù)據(jù);(這個(gè)時(shí)間可以解釋為快速切換到下一行所消耗的時(shí)間)
HBPD1:在在HBPD1時(shí)鐘,VDEN線拉高,來(lái)表示VD線上之后的也是RGB顏色數(shù)據(jù),所以才只有一當(dāng)VDEN信號(hào)線為高電平是,才其實(shí)是你的郵箱的虛無(wú)飄渺數(shù)據(jù),
又開始郵箱里水平顏色信息以后可能會(huì)后郵箱里,如1024*768分辨率LCD,會(huì)始終把水平的1024個(gè)像素點(diǎn)的顏色數(shù)據(jù)都你的郵箱完以后才能拉低VDEN。(這個(gè)時(shí)間再理解為
準(zhǔn)備著傳輸水平數(shù)據(jù)所要能量消耗時(shí)間)
HOZVAL1:1024-1不意思是時(shí)鐘,只不過(guò)是表示水平像素個(gè)數(shù)-1
意思是傳輸橫線顏色數(shù)據(jù)的總時(shí)鐘,如一個(gè)時(shí)鐘頻率傳輸1個(gè)idle位,每個(gè)顏色數(shù)據(jù)設(shè)置為32位,寬度共傳輸數(shù)據(jù)1024個(gè)b顏色數(shù)據(jù),總的時(shí)鐘為1024*32;
HFPD1:數(shù)據(jù)傳輸完以后必須把VDEN拉低HFPD1時(shí)鐘,整個(gè)水平傳輸周期完成;(這個(gè)時(shí)間可以表述為,結(jié)束數(shù)據(jù)傳輸所消耗時(shí)間)
VSPW1:同樣也可以表述為切換整幀圖像數(shù)據(jù)所能量消耗時(shí)間;
VBPD1:馬上準(zhǔn)備傳輸整幀數(shù)據(jù)消耗時(shí)間;
LINEVAL1:768-1;
VFPD1:都結(jié)束了傳輸整幀數(shù)據(jù)的離線時(shí)間;
要注意,這幾個(gè)時(shí)序參數(shù)本身是LCD屏幕本身的參數(shù),與LCD控制器無(wú)關(guān)。所以互成主板要是接的屏幕都不一樣則時(shí)序參數(shù)設(shè)置也會(huì)有所不同。
3:具體寄存器
寄存器:DISPAY_CONTROL設(shè)置里為10或11;RGB模式所需即可;
VIDCON0:VideoMainControl0Register
cores18-26你選擇為RGB模式
24-bit18:可以設(shè)置RGB數(shù)據(jù)傳輸為并行肯定串行,畢竟有24根數(shù)據(jù)線所認(rèn)為左行;
24-bit2選擇時(shí)鐘源,選HCLK連的是HCLC_DSYS為166MHz
bit4:再開啟分頻;
bits13-6設(shè)置里時(shí)鐘大小,時(shí)鐘頻率要小于控制器的的最時(shí)鐘,也要大于LCD驅(qū)動(dòng)器的的最時(shí)鐘。
cores0cores1為使能壓制信號(hào)都使能
VIDCON1寄存器VideoMainControl1Register
idle524-bit6系統(tǒng)設(shè)置HSYNC和VSYNC的極性,如果不是LCD的高低電平脈沖序列是相同的話,則Normal,如果沒(méi)有極性反過(guò)來(lái)則Invert。
VIDTCON0:可以設(shè)置時(shí)序,根據(jù)LCD數(shù)據(jù)手冊(cè)中的時(shí)序來(lái)設(shè)置
VIDTCON1
VIDTCON2
WINCON0寄存器
cores1:使能window0
idle5-2選擇類型RGB888模式
cores15:系統(tǒng)設(shè)置輸出順序?yàn)閞edgreenblue還是bluegreenred設(shè)置里為1:BGR可以設(shè)置為0:RGB
VIDOSD0AVIDOSD0B這兩個(gè)寄存器是單獨(dú)系統(tǒng)設(shè)置內(nèi)存中window0的大?。?/p>
諸如設(shè)置中為L(zhǎng)CD屏幕的尺寸(即左上坐標(biāo)為(0,0)右下坐標(biāo)為(1023,767))
VIDOSD0C確實(shí)是設(shè)置中內(nèi)存中window0的大小
比如設(shè)置里為L(zhǎng)CD屏幕的尺寸1024*768
VIDW0xADD0Bx可以設(shè)置內(nèi)存中window0的起始地址的
VIDW0xADD1Bx系統(tǒng)設(shè)置內(nèi)存中window0的結(jié)束地址的
SHODOWCON寄存器來(lái)可以設(shè)置虛擬windows沒(méi)顯示的;
以下位這個(gè)可以共有設(shè)置哪個(gè)windows顯示;
補(bǔ)充:看核心板、地板原理圖你所選引腳要設(shè)置為L(zhǎng)CD的引腳模式,LCD背光要再打開;
以赤甲獸具體點(diǎn)代碼:
不能復(fù)制代碼
#include#34lyq.h#34
#define_ZLS_MODE_
#defineRED(0xFF0000)
#defineGREEN(0x00FF00)
#defineBLUE(0x0000FF)
#defineWHITE(0xFFFFFF)
//配置查找引腳
#defineGPF0CON 0xE0200120#define GPF1CON 0xE0200140#define GPF2CON 0xE0200160#define GPF3CON 0xE0200180#define GPD0CON 0xE02000A0
#defineGPD0DAT0xE02000A4
#defineDISPLAY_CONTROL0xE0107008
//配置控制器
#defineVIDCON00xF8000000
#defineVIDTCON00xF8000010
#defineVIDCON10xF8000004
#defineVIDTCON10xF8000014
#defineVIDTCON20xF8000018
#defineWINCON00xF8000020
#defineVIDOSD0A 0xF8000040#defineVIDOSD0B0xF8000044
#defineVIDOSD0C0xF8000048
#defineVIDW00ADD0B00xF80000A0
#defineVIDW00ADD1B00xF80000D0
#defineSHODOWCON0xF8000034
#define_RGB_GPF0CON(*(unsignedint*)0xE0200120)
#define_RGB_GPF1CON(*(unsignedint*)0xE0200140)
#define_RGB_GPF2CON(*(unsignedint*)0xE0200160)
#define_RGB_GPF3CON(*(unsignedint*)0xE0200180)
#define_RGB_GPD0CO
row在編程中的意思?
匯編語(yǔ)言中ROW可能會(huì)來(lái)表示液晶顯示器或是點(diǎn)陣LED或者矩陣鍵盤燈的“行”。