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