LCD相關知識點

来源:http://www.cnblogs.com/Forever-LJX/archive/2016/08/28/5815688.html
-Advertisement-
Play Games

1.LCD即液晶顯示器,控制原理是控制其中的電子槍,在n行*n列的屏幕上投射不同顏色從而形成圖像 2.編程步驟: ①打開LCD背光將LCD背光對應的GPIO設置為禁止上拉(GPxUP相應位寫入1),選擇output類型(GPxCON相應位寫入01),輸出為高電平(GPxDAT相應位寫入1)。 ②打開 ...


1.LCD即液晶顯示器,控制原理是控制其中的電子槍,在n行*n列的屏幕上投射不同顏色從而形成圖像

 

2.編程步驟:

①打開LCD背光
將LCD背光對應的GPIO設置為禁止上拉(GPxUP相應位寫入1),選擇output類型(GPxCON相應位寫入01),輸出為高電平(GPxDAT相應位寫入1)。

②打開LCD電源
可以將GPG4選擇為LCD_PWREN(GPGCON:9-8寫入11),這時候LCD電源的打開/關閉可以通過LCDCON5:3來控制。
也可以自定義其他GPIO用作LCD電源開關,只需將此GPIO設置為禁止上拉(GPxUP相應位寫入1),選擇output類型(GPxCON相應位寫入01),輸出為高電平(GPxDAT相應位寫入1)打開LCD電源。

③設置其他信號線
其他信號線包括VD0-VD23和VFRAME、VLINE、VCLK等,分別在GPCCON,GPDCON中選擇相應功能。

④設置LCD的頻率(VCLK)
LCD的Datasheet上一般會寫有一個推薦的頻率,比如我使用的屏幕推薦頻率為6.4M,我需要通過一些計算選擇一個合適的CLKVAL以產生這個頻率:
對於TFT LCD,S3C2440提供的VCLK的計算公式為:
VCLK = HCLK / ((CLKVAL+1)*2)
可以得出:
CLKVAL = HCLK / (VCLK * 2) - 1
我的HCLK是100Mhz(CPU運行在400Mhz, CLKDIV_VAL設置為5,Fclk:Hclk:Pclk = 1:4:8),VCLK使用屏幕推薦的6.4M,得到:
CLKVAL = 100000000 / (6400000 * 2) - 1 = 6.8
選擇最接近的整數值7,寫入LCDCON1:17-8。
(VCLK其實就是根據 每秒幀數*幀行數*行像素  計算出來的,幀行數和行像素需要包含空白數和同步數)

⑤設置其他相關參數
LCD相關的參數主要還有這幾個:
LINEVAL: LCD水平像素-1,如320-1 = 319
HOZVAL:  LCD垂直像素-1,如240-1 = 239
HFPD:    行開始前的VCLK時鐘數(LCD屏幕的Datasheet一般有推薦值)
HBPD:    行結束後的VCLK時鐘數(LCD屏幕的Datasheet一般有推薦值)
HSPW:    行之間水平同步的無效VCLK時鐘數(LCD屏幕的Datasheet一般有推薦值)
VFPD:    幀數據開始前的空白行數(LCD屏幕的Datasheet一般有推薦值)
VBPD:    幀數據結束後的空白行數(LCD屏幕的Datasheet一般有推薦值)
VSPW:    幀之間垂直同步的無效行數(LCD屏幕的Datasheet一般有推薦值)
(相關寄存器LCDCON2, LCDCON3, LCDCON4)

⑥設置視頻緩衝區的地址
2440支持虛擬屏幕,可以通過改變LCD寄存器實現屏幕快速移動
PAGEWIDTH:虛擬屏幕一行的位元組數,如果不使用虛擬屏幕,設置為實際屏幕的行位元組數,如16位寬320像素,設為320 * 2
OFFSIZE:虛擬屏幕左側偏移的位元組數,如果不使用虛擬屏幕,設置為0
LCDBANK: 視頻幀緩衝區記憶體地址30-22位
LCDBASEU: 視頻幀緩衝區的開始地址21-1位
LCDBASEL: 視頻幀緩衝區的結束地址21-1位
(相關寄存器LCDSADDR1,LCDSADDR2,LCDSADDR3)

⑦確定信號的極性
2440的LCD控制器允許設置VCLK、VLINE、VFRAME等信號的極性(上升沿有效還是下降沿有效),需要對照LCD的Datasheet一一確認。
(相關寄存器LCDCON5)

⑧禁止LPC3600/LCC3600模式!
如果不是使用三星LPC3600/LCC3600 LCD,必須禁止LPC3600/LCC3600模式(寫入0到TCONSEL)!

⑨打開視頻輸出
ENVID設為1 (LCDCON1:0寫入1)

 

3.

 

4.

A:顯示指針從矩形左上角的第一行第一個點開始,一個點一個點的在LCD上顯示,在上面的時序圖上用時間線表示就為VCLK,我們稱之為像素時鐘信號;
B:當顯示指針一直顯示到矩形的右邊就結束這一行,那麼這一行的動作在上面的時序圖中就稱之為1 Line;
C:接下來顯示指針又回到矩形的左邊從第二行開始顯示,註意,顯示指針在從第一行的右邊回到第二行的左邊是需要一定的時間的,我們稱之為行切換;
D:如此類推,顯示指針就這樣一行一行的顯示至矩形的右下角才把一副圖顯示完成。因此,這一行一行的顯示在時間線上看,就是時序圖上的HSYNC

E:然而,LCD的顯示並不是對一副圖像快速的顯示一下,為了持續和穩定的在LCD上顯示,就需要切換到另一幅圖上(另一幅圖可以和上一副圖一樣或者不一樣,目的只是為了將圖像持續的顯示在LCD上)。那麼這一副一副的圖像就稱之為幀,在時序圖上就表示為1 Frame,因此從時序圖上可以看出1 Line只是1 Frame中的一行;
F:同樣的,在幀與幀切換之間也是需要一定的時間的,我們稱之為幀切換,那麼LCD整個顯示的過程在時間線上看,就可表示為時序圖上的VSYNC


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 效果展示: 查詢: 可以查詢姓名;民族;姓名+民族;都是空的查詢全部 取值取得是姓名: 刪除: 修改: 先選中查詢之後修改: 添加: 代碼部分: 第一張表: 第二張表:主表,民族代碼加名稱 nation表的操作 info 表的操作 主頁: 修改頁面 : 添加 ...
  • ...
  • 前瞻: 1. 安裝Gnome桌面版X86_64版本的CentOS 7系統(或者相對應版本的Red Hat等)。 2. 下載安裝並激活Xmanager Enterprise 5用於對linux系統的連接訪問以及數據傳輸等。 3. 下載解壓縮oracle 11g r2 for linux的程式包,並將其 ...
  • 視圖 視圖是一個虛擬表(非真實存在),其本質是【根據SQL語句獲取動態的數據集,併為其命名】,用戶使用時只需使用【名稱】即可獲取結果集,並可以將其當作表來使用。 SELECT * FROM ( SELECT nid, NAME FROM tb1 WHERE nid > 2 ) AS A WHERE ...
  • 一、概述 1、什麼是資料庫 ? 答:數據的倉庫,如:在ATM的示例中我們創建了一個 db 目錄,稱其為資料庫 2、什麼是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ? 答:他們均是一個軟體,都有兩個主要的功能: a. 將數據保存到文件或記憶體 b. 接收特定的 ...
  • 1.進入安裝目錄 cd E:\ZYXDocument\Software\mariadb-10.0.20-win32\bin 2.安裝mysql服務將E:\ZYXDocument\Software\mariadb-10.0.20-win32\my.ini 放入 C:\Windows中 mysqld -... ...
  • Ubuntu 16.04 下使用Xampp 1. 什麼是Xampp? XAMPP(Apache+MySQL+PHP+PERL) 是一個功能強大的建站集成軟體包。這個軟體包原來的名字是 LAMPP,但是為了避免誤解,最新的幾個版本就改名為 XAMPP 了。它可以在Windows、Linux、Solar ...
  • Kali Linux在安裝完virtualbox後,打開虛擬機會出現:kernel driver not installed (rc=1908)錯誤提示,根據提示,大概可以看出是由於缺少內核模塊引起的,因為VirtualBox預設是在DKMS內核中運行,所以系統需要有DKMS的支持。所以最根本的是先 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...