LCD顯示屏原理與應用

1、什么是LCD?

(1)LCD(Liquid Crystal Display)俗稱液晶.
(2)液晶是一種材料,液晶這種材料具有一種特點:可以在電信號的驅動下液晶分子進行旋轉,旋轉時會影響透光性,因此我們可以在整個液晶面板后面用白光照(稱為背光),可以通過不同電信號讓液晶分子進行選擇性的透光,此時在液晶面板前面看到的就是各種各樣不同的顏色,這就是LCD顯示。
(3)被動發光和主動發光。有些顯示器(譬如LED顯示器、CRT顯示器)自己本身會發光稱為主動發光,有些(LCD)本身不會發光只會透光,需要背光的協助才能看起來是發光的,稱為被動發光。
(4)液晶應用領域:電視機、電腦顯示屏、手機顯示屏、工業顯示屏等····

2、LCD顯示單位:幀(frame)


(1)顯示器上一整個畫面的內容成為一個幀(frame),整個顯示器工作時是一幀一幀的在顯示。
(2)電影實際就是以每秒種24幀的速度在播放圖片。
(3)幀內數據:一幀分為多行,一行分為多像素,因此一幀圖像其實就是多個像素組成的矩陣。
(4)幀外數據:整個視頻由很多個幀構成,最終播放視頻時逐個播放各個圖像幀即可。

?

3、為了向前兼容出現的六個時序參數

HSPW 水平同步信號脈寬
HBPD 水平同步信號前肩
HFPD 水平同步信號后肩
VSPW 垂直同步信號脈寬
VBPD 垂直同步信號前肩
VFPD 垂直同步信號后肩

(1)一行的通信過程是這樣的:LCD控制器先發送一個HSYNC高電平脈沖(脈沖寬度是HSPW),脈沖告訴驅動器下面的信息是一行信息。然后開始這一行信息,這一行信息包括3部分:HBPD+有效行信息+HFPD。其中前肩和后肩都屬于時序信息(和LCD屏幕具體有關),有效行信息就是橫向分辨率。所以你可以認為一行總共包含4部分:HSPW+HBPD+有效行信息+HFPD。
(2)一幀圖像其實就是一列,一列圖像由多個行組成,每行都是上面講的這個時序。
(3)一幀圖像的通信過程是這樣的:整個幀圖像信號分為4部分:VSPW+VBPD+幀有效信號+VFPD。VSPW是幀同步信號寬度,用來告訴驅動器一幀圖像要開始了;VBPD和VFPD分別是垂直同步信號前后肩。
(4)必須說明:這6個參數對于LCD顯示器其實本來是沒用的,這些信號其實是老式的CRT顯示器才需要的,LCD本身不需要,但是出于歷史兼容性要求,LCD選擇了兼容CRT顯示器的這些時序要求,所以理解LCD顯示器時序和編程時,用CRT的方式來理解不會錯。
(5)要注意,這幾個時序參數本身是LCD屏幕本身的參數,與LCD控制器無關。所以同一個主板如果接的屏幕不一樣則時序參數設置也會不同。這些參數的來源一般是:第一,廠家會直接給出,一般以實例代碼的形式給出;第二,來自于LCD的數據手冊。
第一種方式,查看九鼎的210裸機教程(x210v3裸機開發教程\src\template-framebuffer-font\source\hardware\s5pv210-fb.c的第774行)
.h_fp = 210,    // 160-210-354
.h_bp = 38,    // 46
.h_sw = 10,    // 1-40
.v_fp = 22,    // 7-22-147
.v_fpe = 1,
.v_bp = 18,   // 23
.v_bpe = 1,
.v_sw = 7,    // 1-20
第二種方式,查看LCD數據手冊(X210光盤資料\A盤\DataSheet\AT070TN92.pdf)

LCD顯示的主要相關概念
1、像素(pixel)
  (1)整個圖像是由一個個的像素組成的,像素就是一個顯示點。
2、像素間距(pitch)
  (1)pitch是連續2個像素的像素中心的距離。一般的像素是方形的,所以橫向pitch和縱向的pitch一樣的。但是也有不一樣的。
  (2)像素間距會影響屏幕的最佳觀看距離。像素間距大的適合遠距離看,像素間距小的適合近距離看。

3、分辨率(resolution)
  (1)整個屏幕的橫向和縱向的像素個數就叫分辨率,譬如X210開發板用的屏幕是800×480.
  (2)屏幕尺寸和分辨率無關的,像開發板的屏幕尺寸是7寸的(純屏幕對角線尺寸是7英寸)。
  (3)屏幕尺寸和分辨率和像素間距三者之間有關聯。

4、清晰度
  (1)清晰度是一個主觀概念,是人眼對顯示效果的一個主觀判斷。說白了就是人看起來感覺清晰不清晰。
  (2)客觀來講,清晰度由分辨率和像素間距共同決定。一般的,屏幕尺寸固定時分辨率越高越清晰,分辨率越低就越不清晰;分辨率固定下,屏幕尺寸越小越清晰,越大越不清晰。
  (3)清晰度還由其他很多因素共同決定。

5、像素深度(bits per pixel,簡稱bpp)
  (1)一個像素在計算機中由多少個字節數據來描述。
  (2)計算機中用二進制位來表示一個像素的數據,用來表示一個像素的數據位越多,則這個像素的顏色值更加豐富、分的更細,顏色深度就更深。
  (3)一般來說像素深度有這么幾種:1位、8位、16位、24位、32位。

應用

  要想LCD工作,必須給LCD屏幕和顯存之間建立一個映射(映射是在CPU初始化LCD控制器來完成的)。(這也是LCD顯示的2個階段的第一階段,第二階段中我們只需要給顯存中丟入相應的數據,LCD屏幕就會自動顯示相應內容)

#define FB_ADDR            (0x23000000)
#define ROW                (600)
#define COL                (1024)
#define HOZVAL            (COL-1)
#define LINEVAL            (ROW-1)#define XSIZE            COL
#define YSIZE            ROW
u32 *pfd = (u32 *)FB_ADDR;
void draw_xy(u32 x,u32 y, u32 color)
{
*(pfd + COL * y + x) = color;
}

繪制點函數,通過初始化將內存中一段地址作為顯存。向顯存中地址寫入相應值,就會讓相應點顯示顏色。

?

  

轉載于:https://www.cnblogs.com/PengfeiSong/p/6380453.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541879.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541879.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541879.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java PipedInputStream connect()方法與示例

PipedInputStream類的connect()方法 (PipedInputStream Class connect() method) connect() method is available in java.io package. connect()方法在java.io包中可用。 connect() method is used to cause this PipedInputStream to be connected to the given PipedOutputS…

java寫手機游戲_如何將自己編寫的JAVA小游戲寫到手機里?

2019-06-19怎么用java編寫獲取星期幾的程序&#xff1f;import java。util。*; public class WeekDay { Calendar date Calendar。getInstance(); private int getMaxDate(int moth){ moth moth -1; if(moth > 12 || moth < 0){ System。 out。println("輸入月份錯…

Java PipedInputStream receive()方法與示例

PipedInputStream類的receive()方法 (PipedInputStream Class receive() method) receive() method is available in java.io package. receive()方法在java.io包中可用。 receive() method is used to receive a byte of content and it will block when no more input remain…

java去除重復對象_Java19-2 集合類去除重復對象

List獨有方法&#xff1a;import java.util.ArrayList;import java.util.List;public class ListTest2 {public static void main(String[] args) {List listnew ArrayList();list.add("abc1");list.add("abc2");list.add("abc1");list.add(&quo…

SSM框架整合中遇到重復的問題Ambiguous handler methods mapped for HTTP

嚴重: Servlet.service() for servlet [spring] in context with path [/ssmDemo] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path /init.do: {public java.lang.String …

Java ObjectStreamClass lookup()方法與示例

ObjectStreamClass類lookup()方法 (ObjectStreamClass Class lookup() method) lookup() method is available in java.io package. lookup()方法在java.io包中可用。 lookup() method is used to lookup the descriptor for a class that can be serialized. lookup()方法用于…

java default parameter_JAVA菜鳥入門(7) default parameter , float/double vs BigDecimal

1 java的允許函數的默認參數嗎?java不支持類似C那樣&#xff0c;為函數設定默認參數&#xff0c;所以需要做的事情是&#xff0c;自己用函數重載的方式進行模擬。如下public class FFOverload {public String getName(String givenName,String familyName){return givenName&…

gitlab修改默認端口

部署gitlab的時候&#xff0c;一啟動&#xff0c;發現80和8080端口已經被占用&#xff0c;無奈&#xff0c;只得先將監聽80端口的nginx和監聽8080端口的jenkins停止。這會兒有空&#xff0c;琢磨一下如何修改gitlab的默認端口。 修改主要分為兩部分&#xff0c;一部分是gitlab總…

Java ObjectOutputStream reset()方法與示例

ObjectOutputStream類reset()方法 (ObjectOutputStream Class reset() method) reset() method is available in java.io package. reset()方法在java.io包中可用。 reset() method is used to reset this stream. It reset the stream to the position marked most recently. …

Excel 自定義關閉按鈕

遇到過這樣一個需求&#xff0c;是在excel關閉的時候&#xff0c;不要excel本身的保存窗口&#xff0c;只用自定義的. 這個的需要第一&#xff0c;是點擊關閉時候觸發&#xff0c; 第二&#xff1b;觸發后&#xff0c;不能還是彈出那個窗口 第三&#xff1a;取消后&#xff0c;…

Java OutputStreamWriter close()方法與示例

OutputStreamWriter類close()方法 (OutputStreamWriter Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to first flush before closing the stream and the method write() or flush() invok…

深入理解Netscaler INat

深入理解Netscaler INatNetscaler的INat主要是用作基于目的地址的轉換&#xff0c;將client訪問的公網IP通過Netscaler轉換成服務器的私網IP&#xff0c;與DNAT作用類似。由于Netscaler默認的工作機制就是同時做源IP&#xff1a;【源端口】目的IP&#xff1a;【目的端口】的轉換…

java 方法 示例_Java語言環境getDisplayCountry()方法與示例

java 方法 示例區域設置類getDisplayCountry()方法 (Locale Class getDisplayCountry() method) Syntax: 句法&#xff1a; public final String getDisplayCountry();public String getDisplayCountry(Locale lo);getDisplayCountry() method is available in java.util pack…

格力電器Java面試題_JAVA設計模式學習--工廠模式

今天談一下對工廠模式學習的總結。看完視頻和文章之后要自己表述工廠模式&#xff0c;總是感覺無從說起&#xff0c;不知道怎么去定義工廠模式&#xff0c;反復看了幾遍之后終于理解一點。自己理解工廠模式是通過這兩種模式的特點來理解和定義的&#xff0c;首先工廠模式有簡單…

為什么玩我的世界老提示Java se錯誤_我的世界error錯誤信息 error could解決方法

我的世界是一個及其開放的沙盒游戲&#xff0c;而在這個游戲中有不少的問題&#xff0c;比如說遇到error該如何解決呢&#xff0c;看小編給大家帶來的我的世界error錯誤的解決方法&#xff0c;希望大家喜歡。error應用程序錯誤信息。包括“Error:Unable to access jarfile mcpc…

Tomcat 服務器只能存有一個正在運行的項目

即使新建了一個new project &#xff08;在同一個工作空間&#xff09;&#xff0c;啟動Tomcat 還是會出現先前&#xff08;工程名&#xff09;一樣的問題/異常。 【原因】&#xff1a; 在底下Server 那里——Tomcat 7.X 底下會有很多工程名&#xff0c;它會紀錄&#xff01;所…

Java Collections singletonMap()方法與示例

集合類singletonMap()方法 (Collections Class singletonMap() method) singletonMap() method is available in java.util package. singletonMap()方法在java.util包中可用。 singletonMap() method is used to return an immutable map (i.e. immutable map is a map that c…

java訪問登錄網頁_===java怎樣訪問需要登錄才能查看的網頁????急!!===...

java中可以用java.net包下的東西訪問網頁&#xff0c;但是有的網頁要求用戶先輸入用戶名和密碼才能查看&#xff0c;這些網頁java怎么訪問呢&#xff1f;&#xff1f;&#xff1f;注意&#xff1a;我說的要輸入用戶名和密碼不是瀏覽器彈出一個框的那種&#xff0c;而是象csdn這…

javascript OOP(下)(九)

一、javascript模擬重載 java中根據參數類型和數量的區別來實現重載&#xff0c;javascript弱類型&#xff0c;沒有直接的機制實現重載&#xff0c;javascript中參數類型不確定和參數個數任意&#xff0c;通過判斷實際傳入的參數的個數來實現重載。 <script> function Pe…

java calendar_Java Calendar getDisplayNames()方法與示例

java calendar日歷類的getDisplayNames()方法 (Calendar Class getDisplayNames() method) getDisplayNames() method is available in java.util package. getDisplayNames()方法在java.util包中可用。 getDisplayNames() method is used to return Map that contains all fie…