<LCD硬件体系结构>

LCD控制器:位于ARM核内部,为LCD提供需要显示的数据,控制信息,控制时序

<LCD控制器结构>

REGBANKK : 寄存器组,总共有17个寄存器

LCDCDMA:LCD 中的DMA模块,该模块位于LCD的控制器中,在嵌入式系统中是内存中             有一个内存区域叫做帧缓存区,告诉DMA帧缓存区的起始地址,LCD控制器                            的其他控制部件将该数据发给LCD驱动器。

TIMEGEN:用于产生时序信号

<液晶屏种类>

按照驱动类型可以分为:STN, GF,TFT,其中TFT最为常用

LCD驱动芯片:LCD驱动芯片位于液晶显示屏上,作用是为液晶分子提供偏转电压。

LCD显示与信号:

时序

VSYNC:一帧图像显示的时间

HSYNC:显示一行的时间

VCLK: 显示两个点之间的时间间隔

VD[23:0]:LCD像素输出端

VDEN:数据使能信号

LEND:行结束信号

《LCD初始化》

<引脚初始化>

将管脚配置成VD

控制字详情:

 

<时序初始化>

LCD控制寄存器1

作用分析:

用于设置CLKVAL

控制字详情:

LCD控制寄存器2

作用分析:

用于设置VBPD,LINEVAL,VFPD.VSPW

控制字详情:

控制寄存器3

作用分析:

用于设置HBPD,HOZVAL,HFPD,

控制字详情:

控制寄存器4

作用分析:
用于设置HSPW

控制字详情

各个时序信号的值:

VSPW和VBPD时序信号的计算方式:

用于初始化LINEVAL 和HOZVAL:

<帧缓冲初始化>

在内存中开辟一段空间用于存储一帧的数据,2440开发板中用16位数据表示一个像素点(16bpp),所以总共需要(480*272*2)个字节。

分配:

静态分配

LCD帧缓存地址数据寄存器:

作用分析:

用于存放帧缓存数据的起始地址。

控制字详情:

LCDBANK存放帧缓存地址的高30-22位

LCDBASEU存放帧缓存地址的低22-1位

LCD屏幕种类区分设置寄存器:

作用分析:

用于区分“dual-scan LCD”和“single scan LCD”

控制字详情:

如果屏幕使用 的是single-scan LCD,则该寄存器存放帧缓存地的尾地址的21-1位。

首尾像素点时间间隔控制/行宽度寄存器:

作用分析:

用于设置没行的最后一个像素点和下一行的低一个像素点之间是否有时间间隔。

控制字详情:

像素点时间间隔为0,行宽度取半字节,比如这里480个像素点,每个像素点是两个字节,所以取值为(480*2)/2

动态分配

告知:

将帧缓存数据地址值写入LCDADDR1中

<配置寄存器初始化>

LCD控制寄存器1

作用分析:

用于配置LCD种类,屏幕像素点的真彩色,和LCD控制器数据输出使能。

LCD控制寄存5

作用分析:

用于配置像素的分配,这里使用5:6:5(红绿蓝),和翻转极性控制

控制字详情:

像素真彩

转换极型

半字转换使能

临时调色板配置寄存器:

作用分析:

用于使能和配置临时调色板

使能临时调色板

GPG管脚控制器:

作用分析:

用于将相应管脚设置为LCD的电源

控制字详情:

LCD数据显示:

16bpp显示数据分配图

数据显示

http://www.114la.com/other/rgb.htm

单色显示

void LCD_line()

{

int x;

for(x=0;x<480;x++)

{

void point(x++,150,0xff0000)

}

}

LCD的更多相关文章

  1. STM32F429 LCD程序移植

    STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音.有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动 ...

  2. 分页型Memory LCD显存管理与emWin移植

    上一篇随笔整理了一下逐行扫描型Memory LCD的显存管理与emWin移植,这篇就整理一下分页型Memory LCD显存管理与emWin移植. //此处以SSD1306作为实例 //OLED的显存/ ...

  3. 逐行扫描型Memory LCD显存管理与emWin移植

    因为Memory LCD 的特性,不能设置像素坐标,只能用缓存整体刷新. 所以对于Memory LCD来说,emWin移植仅与打点函数有关,这里用Sharp Memory LCD(ls013b7dh0 ...

  4. Sharp Memory LCD (ls013b7dh03)驱动

    网上找不到什么靠谱的资料,甚至我调好了夏普原厂和代理商还来找我要demo,  哎,苦逼的码农. lcd_main.c #include "ls013b7dh03.h" #inclu ...

  5. AM335x kernel4.4.12 LCD 时钟翻转设置记录

    TI AM335x kernel 4.4.12 LCD display 时钟翻转记录 因为公司硬件上已经确定LCD 转LVDS 转换芯片上确认以上升沿时钟为基准,所以只能在软件上调整相关东西. 入口在 ...

  6. Arduino下LCD1602综合探究(上)——1602的两种驱动方式,如何使LCD的控制编程变得更简单

    一.前言: LCD ( Liquid Crystal Display 的简称)液晶显示器,已经逐渐替代CRT成为主流的显示设备之一,因此也成为了单片机发烧友绕不过的话题之一:而LCD1602更是很多单 ...

  7. jquery模拟LCD 时钟

    查看效果网址:http://keleyi.com/keleyi/phtml/jqtexiao/24.htm 以下是HTML文件源代码: <!DOCTYPE html PUBLIC "- ...

  8. 嵌入式Linux驱动学习之路(十八)LCD驱动

    驱动代码: /************************************************************************* > File Name: lcd ...

  9. LCD接口(转载)

    LCD接口分类 1.   I8080接口,我觉得应该就是所谓的8080,通常会用在12864屏上面,且有内部sdram,不需要实时的刷新图片,速度有限制, 支持的数据宽度有8/9/16/18bit,接 ...

  10. LCD底层驱动分析

    根据分析的框架,自己写一个LCD驱动程序 1分析LCD硬件原理图 Von和Voff接的是一个电源电路,通过LCD_POWER接的是GPG4来控制LCD电源,高电平表示开启LCD电源 VM接的是CPU的 ...

随机推荐

  1. java后台代码发送邮件

    1:安装  eyoumailserversetup 易邮邮件服务器 注册账号 2:安装Foxmail 登录以后会有个还原页面 3:测试 4:java 代码编写 配置文件: mail.host=http ...

  2. C++利用cin输入时检测回车的方法

    今天做TJU的OJ ,其中一道题是先读入一个字符串,再读入一个整数,循环往复,直到字符串是空,也就是说回车键结束循环. 但是cin对空格和回车都不敏感,都不影响继续读入数据,所以需要一种新的方式检测回 ...

  3. 编程语言BrainkFuck

    BrainFuck由Urban Müller在1993年创建,是经常被吐槽的语言,不过我觉得除了名字其它都还挺正常的,没错我觉得这个语言设计的很正常没有Fuck到我的脑子,大概是因为我根本就没有脑子吧 ...

  4. UNIX网络编程 第8章 基本UDP套接字编程

    UDP是无连接的,不需要accept,TCP通过accept API来接受连接,并且将连接客户端的信息写入到accept将返回的新socket中,该新socket中有服务端和客户端的IP地址和端口,因 ...

  5. C++ Primer 5th 第14章 重载运算与类型转换

    当运算符作用域类类型的对象时,可以通过运算符重载来重新定义该运算符的含义.重载运算符的意义在于我们和用户能够更简洁的书写和更方便的使用代码. 基本概念 重载的运算符是具有特殊名字的函数:函数名由关键词 ...

  6. 2016.6.17——Valid Parentheses

    Valid Parentheses 本题收获: 1.stack的使用 2.string和char的区别 题目: Given a string containing just the character ...

  7. Servlet笔记1--概述

    JavaEE概述及系统架构分析: (1) JavaEE概述: (2) 系统架构分析:

  8. gcc编译选项【转】

    转自:https://blog.csdn.net/rheostat/article/details/19811407 常用选项 -E:只进行预处理,不编译-S:只编译,不汇编-c:只编译.汇编,不链接 ...

  9. Java WebService Axis 初探

    最近在学习WebService 开始了: 一:服务端的编写与发布 1. 工具准备: java的开发环境(这里就不多说了).   axis2官网上下载最新的就可以了(我这里用的是axis2-1.4.1- ...

  10. 20 Organizing Go code 组织go代码

    Organizing Go code 16 August 2012 Introduction Go code is organized differently to that of other lan ...