《LCD控制原理.docx》由会员分享,可在线阅读,更多相关《LCD控制原理.docx(29页珍藏版)》请在三一办公上搜索。
1、LCD控制原理LCD控制器 什么是液晶显示器 液晶,是一种在一定温度范围内呈现既不同于固态、液态,又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性,又具有液体的流动性。一般可分热致液晶和溶致液晶两类。在显示应用领域,使用的是热致液晶,超出一定温度范围,热致液晶就不再呈现液晶态,温度低了,出现结晶现象,温度升高了,就变成液体;液晶显示器件所标注的存储温度指的就是呈现液晶态的温度范围。利用液晶分子受到电压的影响而改变其分子的排列状态,并且可以让入射光线产生偏转的现象之原理,制造出的使用液晶显示的屏幕就是液晶显示器,英文称 LCD。 在LCD 显示器中,显示面板薄膜被分成很多小栅格,
2、每个小栅格有一个电极控制,通过改变栅格上的电极就能控制格内液晶分子的排列,从而控制光路的导通。彩色显示通过利用三种原色混合的原理显示不同的色彩:彩色面板中,每个像素都是有三个液晶单元格构成的,其中每个单元格前面都分别有红色,绿色或蓝色的过滤片;光线经过过滤片的处理变成红色,蓝色或则绿色,利用三原色的原理组合出不同的色彩。 TN、STN和TFT型LCD LCD 种类可分为依驱动方式之静态驱动、单纯矩阵驱动以及主动矩阵驱动三种。而其中,单纯矩阵型又是俗称的被动式,可分为扭转向列型和超扭转式向列型两种;而主动矩阵型则以薄膜式晶体管型为目前主流。这两种显示器的基本原理比较接近,不同点在于:TN 型显示
3、器通过电极控制液晶分子,FET 有电容效应,显示质量较差;TFT 型显示器则通过FET 电子管控制液晶分子,FET 有电容效应,所以液晶分子能在下一次电极变化前保持原有的排列,因此TFT 型显示器的颜色数量和刷新速度都优于TN 型显示器。 在TFT 型液晶显示器中,导电玻璃上画上网状的细小线路,电极则由是薄膜式晶体管所排列而成的矩阵开关,在每个线路相交的地方配有控制闸,各显示点控制闸配合驱动讯号作动。电极上之晶体管矩阵依显示信号开启或关闭液晶分子的电压,使液晶分子轴转向而成“亮”或“暗”的对比,避免了显示器对电场效应的依靠,转以晶体管开启和关闭的速率作为决定步骤。 也因此,TFT-LCD 的显
4、示质量较 TN/STN 佳,画面显示对比可达150:1 以上,反应速度逼近30ms 甚至更快。同时又可以全彩甚至真彩效果显示,产品适用于PDA、笔记型计算机、液晶显示器、汽车导航系统、数字相机及液晶投影机。 S3C2410的LCD控制器 要使LCD 屏显示图像,不但需要LCD 驱动器,还需要有相应的LCD 控制器。通常LCD 驱动器会以COF/COG 的形式与LCD 玻璃基板制作在一起,而LCD 控制器则有外部电路来实现。LCD 控制器可以通过编程选择支持不同的LCD 屏的要求,例如行和列像素,数据总线宽度,接口时序和刷新频率。 LCD 控制器的主要作用就是,将定位于系统存储器的显示缓冲区的L
5、CD 图象数据传送到外部LCD 驱动器。 S3C2410 内部已经集成了LCD 控制器,因此可以很方便地去控制各种类型的LCD屏,例如:STN 和TFT 屏。它还支持多种LCD 显示模式,比如单色,灰度,伪彩色或真彩色等,并提供虚拟屏功能,大图片在显示的时候可以上下左右移动。还带有查色表功能。这个功能可以在LCD 显示器上显示最接近原始图颜色特征的图片。 ARM 芯片连接不同的LCD 显示设备时,需要通过设置控制寄存器来调整显示状态,以便正常显示。因此,对LCD 控制器的控制实际上转换成对映射到内存空间的寄存器值的控制。由于TFT 屏将是今后应用的主流,因此接下来,重点围绕TFT 屏的控制来进
6、行。 S3C2410内部的LCD控制器框图: S3C2410的LCD控制器是用于传输视频信号,并产生必需的控制信号例如VFRAME,VLINE,VCLK,VM等等。除了这些控制信号外,S3C2410的LCD控制器还有视频数据的端口,VD23:0。LCD控制器由REGBANK、LCDCDMA、TIMEGEN、LPC3600、VIDPRCS组成。REGBANK有17个可编程的寄存器,以及用于配置LCD控制器的256*16调色板内存。LCDCDMA是一个专用的DMA,用于将显示内存中的视频数据自动发到LCD驱动器。VIDPRCS接收来自DMA的视频数据,将他们转换成合适的数据格式,例如4位单扫描,8
7、位单扫描,4位双扫描等。然后通过端口VD23:0发送给LCD驱动器。TIMEGEN产生各种不同时序要求的时钟信号。TIMEGEN产生VFRAME,VLINE,VCLK,以及VM等信号。 数据流程如下所述:FIFO内存存在于LCDCDMA中。当FIFO空了或部分空了的时候,FIFO请求从帧内存中取数据,一次取4个字,即16字节。当传输请求被总线仲裁接受后,将有连续的4个字的数据从系统内存发送到内部FIFO。整个FIFO大小为28个字,由12个字的FIFOL和16个字的FIFOH组成。S3C2410有2个FIFO以支持双扫描显示模式。如果是单扫描模式,只有一个FIFO可以用。 STN LCD控制器
8、的操作 时钟产生器 TIMEGEN为LCD驱动器提供控制信号,比如VFRAME,VLINE,VM,以及VCLK。这些控制信号与LCD控制寄存器LCDCON1/2/3/4/5有紧密的关系。 VFRAME脉冲在第一行数据的期间都是有效的,且频率是每帧发送完产生一次。VFRAME信号变得有效来将LCD的行指针指向第一行以开始下一帧。 VM信号帮助LCD驱动器更改行和列的电压极性。行和列电压是用来开启或关闭像素的。VM信号的toggleing速率取决于LCDCON1的MMODE位以及LCDCON4的MVAL域。如果MMODE位为0,VM信号被配置为与每一帧同步。如果MMODE位为1,VM信号被配置为与
9、可变数量的VLINE数量同步。VLINE的数量在MVAL域中。当MMODE为1时,VM速率与MVAL7:0有关: VM rateVLINE Rate/ VFRAME和VLINE脉冲的产生依赖于LCDCON2/3中HOZVAL域和LINEVAL域的值。每个域都与LCD的大小和显示模式有关。换句话说,HOZVAL域和LINEVAL域可以被LCD面版的大小以及显示模式通过下面的公式决定: HOZVAL/有效VD数据线数目)-1 在彩色模式下:水平显示大小3*水平像素的数目 在4位单扫描显示模式下,有效的VD数据线数目应该是4。如果在4位双扫描显示模式下,有效的VD数据线数目也应该是4。在8位单扫描模
10、式下,有效的VD数据线数目是8。 LINEVAL垂直显示大小-1 : LINEVAL-1: VCLK信号的频率取决于LCDCON1中CLKVAL域的值。CLKVAL域的值最小为2。 VCLKHCLK/ 帧的频率就是VFRAME信号的频率。帧的频率与LCDCON1/2/3/4中的WLH1:0,WDLY1:0,HOZVAL,LINEBLANK,LINEVAL域有关,还与VCLK及HCLK有关。大多数LCD驱动器需要精确的帧频率。帧频率由下面公式计算: frame_rate(Hz) = 1 / (1/VCLK) *(HOZVAL+1)+(1/HCLK) *(A+B+(LINEBLANK *8) )
11、* ( LINEVAL+1) A = 2(4+WLH), B = 2(4+WDLY) 视频操作 LCD控制器支持8位彩色模式,12位彩色模式,4级灰度模式,16级灰度模式,以及单色模式。对于彩色或灰度模式,它要求根据基于时间的抖动算法和Frame Rate Control方法执行灰度的阴影或色彩。该操作可通过一个可编程的查询表实现。单色模式绕过了这些规则,而只是将FIFOH中的数据转换为连续的4bit数据流将视频数据移给LCD驱动器。 查询表 灰度模式操作 S3C2410的LCD控制器支持两种灰度模式:2bpp灰度和4bpp。2bpp灰度模式使用查询表,该查询表从16种可能的灰度级别中选择4种
12、灰度级别。2bpp灰度查询表与彩色模式一样使用蓝色查询表寄存器的BLUEVAL15:0。灰度级0由BLUEVAL3:0的值表示。如果BLUEVAL3:0的值为9,灰度级别0就会被16个灰度级别中的灰度级9表示。如果BLUEVAL3:0的值为15,灰度级0就会被16个灰度级别中的灰度级15表示。按照上面相同的方法,级别1会被BLUEVAL7:4表示,级别2会被BLUEVAL11:8表示,级别3会被BLUEVAL15:12表示。BLUEVAL15:0中的这4组数据表示级别0,1,2,3。 256级彩色模式操作 S3C2410的LCD控制器支持8bpp256色彩色显示模式。该彩色显示模式能够通过抖动
13、算法和FRC产生256级颜色。8位的数据被编码为3bit红色,3bit绿色,2bit蓝色。彩色显示模式为红色,绿色,蓝色使用独立的查询表。每个查询表将寄存器REDLUT的REDVAL31:0,GREENLUT的GREENVAL31:0,BLUELUT的BLUEVAL15:0作为查询表的表项使用。 同灰度显示相似,将寄存器REDLUT分为8组,每组4bit。每一组对应每一个红色级别。绿色与红色类似。 4096级彩色模式操作 S3C2410的LCD控制器能够支持12bpp4096色彩色显示模式。该彩色显示模式能够通过抖动算法和FRC产生4096级颜色。12位的数据被编码为4bit红色,4bit绿色
14、,4bit蓝色。4096色彩色显示模式不使用查询表。 抖动和FRC 对于STN的液晶显示,视频数据都需要经过抖动算法。抖动算法和FRC模块有两个功能:基于时间的抖动算法用于减少闪烁,FRC用于在STN面版上显示灰度级别或彩色级别。基于FRC方法在STN上显示灰度和彩色级别的主要原则描述如下。例如,在总共有16级灰度的情况下为显示一个第3级灰度,3倍数目的像素要打开,而13倍数目的像素要关闭。这是一个关于如何显示灰度级别的基本原则,因此叫FRC灰度级别显示。 在STN显示中,我们需要紧记一点,闪烁噪声是由于在相邻的帧之间像素同时开启或关闭造成的。例如,如果第一帧中所有的像素都是开启的,而接下来的
15、一帧中所有的像素都是关闭的,闪烁噪声就会最大化。为了减少屏上的闪烁噪声,帧之间的像素开启关闭的平均概率应该相同。为了实现这一点,改变每一帧上的相邻像素状态的基于时间的抖动算法应该被使用。对于16级灰度,在灰度级与FRC间应该有如下关系。第15级灰度应该打开所有的像素,第14级灰度应该有6倍数目的像素开启,1倍数目的像素关闭。0级灰度应该使所有的像素关闭。如图所示。 显示类型 S3C2410的LCD控制器支持3种类型的LCD驱动器:4位单扫描,4位双扫描,8位单扫描显示模式。下图15-2显示了对于单色显示的3种不同显示类型。图15-3显示了对于彩色显示的3种不同显示类型。 4位单扫描显示类型 4
16、位单扫描显示使用4个并行的数据线在同一时间来将数据移位到连续的行中,直到整个一帧发送完毕。从LCD控制器的4个引脚输出VD3:0能够被直接连接到LCD的驱动器。VD7:4则不使用。 4位双扫描显示类型 4位双扫描显示使用8个并行的数据线在同一时间来将数据移位到显示器的上部和下部。8根数据线中的4位被移位到上半部分,4位移位到下半部分,可以通过结合图15-2来理解。当显示器的上下半都完成的时候整个帧就发送完毕。LCD控制器的8个引脚输出VD7:0能够被直接连接到LCD驱动器。 8位单扫描显示类型 8位单扫描显示使用8个并行的数据线在同一时间来将数据移位到连续的行中,直到整个一帧发送完毕。LCD控
17、制器的8个引脚输出VD7:0能够被直接连接到LCD驱动器。 256色彩色显示 彩色显示中每个像素需要3位数据,因此他的每一个水平行的水平移位寄存器的数目是每一个水平行像素数目的3倍。RGB通过并行数据线连续的被移入LCD驱动器。 4096色彩色显示 与256色类似。 内存数据格式 在4级灰度模式下:2bit视频数据对应一个像素。 在16级灰度模式下:4bit视频数据对应一个像素。 在256级彩色模式下:8bit视频数据对应一个像素,彩色数据格式如图所示: Bit 7:5 红 Bit 4:2 绿 Bit1:0 蓝 在4096级彩色模式下:12bit视频数据对应一个像素,下图显示了数据格式: DA
18、TA 字 #1 字 #2 字 #3 31:28 27:24 23:20 19:16 15:12 红( 1) 蓝(3) 绿(6) 绿(1) 红(4) 蓝(6) 蓝( 1) 绿(4) 红(7) 红( 2) 蓝(4) 绿(7) 绿( 2) 红(5) 蓝(7) 11:8 蓝( 2) 绿(5) 红(8) 7:4 红(3) 蓝(5) 绿(8) 3:0 绿(3) 红(6) 蓝(8) 时序要求 图象数据应该使用VD7:0从内存传送到LCD驱动器。VCLK信号用于提供时钟。在一行数据移入LCD驱动器的寄存器后,VLINE信号变得有效以显示这一行。 VM信号为显示提供交流电压。下图显示了LCD驱动器的时序要求。
19、TFT LCD控制器的操作 VSYNC和HSYNC信号的产生依赖于LCDCON2/3中的HOZVAL域和LINEVAL域。HOZVAL和LINEVAL的值由显示器的面版大小决定: HOZVAL水平显示大小-1 LINEVAL垂直显示大小-1 VCLK信号的频率取决于LCDCON1的CLKVAL域。 VCLKHCLK/(CLKVAL+1)*2 帧的频率就是VSYNC信号的频率,帧的频率与LCDCON中的VSYNC,VBPD,VFPD,LINEVAL,HSYNC,HBPD,HFPD,HOZVAL以及CLKVAL有关。帧频率的计算公式如下: 帧频率1/(VSPW+1)+(VBPD+1)+(LINEV
20、AL+1)+(VFPD+1)*(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)*2*(CLKVAL+1)/HCLK 视频操作 S3C2410的TFT LCD控制器支持1,2,4,8bpp调色板颜色显示和16,24bpp非调色板真彩显示。 内存数据格式 256色调色板使用 调色板配置和格式控制 S3C2410对TFT LCD提供256色调色板 用户可以从64k种颜色中选择256种颜色。 256色调色板由256*16bitSPSRAM组成。调色板支持5:6:5格式和5:5:5:1格式。 当用户使用5:5:5:1格式时,I位用于每个RGB数据的普通的最低位。 在5:5:5:
21、1格式下,例如,用户可以如下图写调色板并将VD引脚与TFT面版连接起来,并设定LCDCON5的FRM565为0。 注意: 1. 0x4D000400是调色板的起始地址。 2. VD18,VD10,VD2有相同的输出,I。 3. DATA31:16是无效的。 调色板读/写 当用户想在调色板上执行读写操作时,LCDCON5寄存器的HSTATUS和VSTATUS应该被检查。因为调色板的读写操作在HSTATUS和VSTATUS有效期间是禁止的。 临时调色板配置 S3C2410允许用户用一种颜色填充一帧。这与将颜色填充到帧缓冲或调色板中没有大的区别。这个有颜色的帧可以通过将该显示在LCD面版上的颜色的值
22、写入TPAL寄存器的TPALVAL并使能TPALEN。 虚拟显示 S3C2410支持硬件上的水平或垂直卷轴。如果屏幕卷动,LCDSADDR1/2寄存器中的LCDBASEU和LCDBASEL的值应该改变,PAGEWIDTH和OFFSIZE不变。 存储图像数据的视频缓冲器应该比LCD面版屏幕大小大一些。 LCD特殊控制寄存器 LCD控制寄存器1 寄存器 LCDCON1 地址 0X4D000000 读/写 描述 重置值 0x00000000 读/写 LCD控制寄存器1 LCDCON1 LINECNT CLKVAL 位 27:18 给出列计数器的状态。 描述 从LINEVAL向下计数到0。 初始状态
23、0000000000 0000000000 17:8 决定VCLK和CLKVAL9:0的速度。 STN: VCLK = HCLK / (CLKVAL2) (CLKVAL2) TFT: VCLK = HCLK / (CLKVAL+1)2 (CLKVAL0) MMODE 7 决定VM的速度。 0 = 每一帧 1 = 由MVAL定义的速度 0 PNRMODE 6:5 选择显示模式。 00 = 4位双扫描显示模式 (STN) 01 = 4位单扫描显示模式 (STN) 10 = 8位单扫描显示模式 (STN) 11 = TFT LCD面板 00 BPPMODE 4:1 选择BPP(每个像素的位数)的模式
24、。 0000 = 1 bpp对于STN,单色模式 0001 = 2 bpp对于STN,4级灰度模式 0010 = 4 bpp对于STN,16级灰度模式 0011 = 8 bpp对于STN,彩色模式 0100 = 12 bpp对于STN,彩色模式 1000 = 1 bpp对于TFT 1001 = 2 bpp对于TFT 1010 = 4 bpp对于TFT 1011 = 8 bpp对于TFT 1100 = 16 bpp对于TFT 1101 = 24 bpp对于TFT 0000 ENVID 0 LCD视频输出和逻辑使能/失能。 0 = 使视频输出和LCD控制信号失能 1 = 使视频输出和LCD控制信号
25、使能 0 LCD控制寄存器2 寄存器 LCDCON2 地址 0X4D000004 读/写 描述 重置值 0x00000000 读/写 LCD控制寄存器2 LCDCON2 VBPD LINEVAL VFPD 位 31:24 不活动列的数目。 STN:这些位在STN LCD上应该设置为0。 23:14 TFT/STN:这些位决定LCD面板的垂直尺寸。 TFT:VFP是在垂直同步周期之前的在每一帧结束位置的13:6 不活动列的数目。 STN:这些位在STN LCD上应该设置为0。 TFT:垂直同步脉冲宽度通过计数不活动列的数目决定VSPW 5:0 VSYNC脉冲的峰值宽度。 STN:这些位在STN
26、LCD上应该设置为0。 000000 00000000 0000000000 描述 TFT:VBP是在垂直同步周期之后的在每一帧起始位置的0x00 初始状态 LCD控制寄存器3 寄存器 LCDCON3 地址 0X4D000008 位 读/写 描述 重置值 0x00000000 初始状态 0000000 读/写 LCD控制寄存器3 描述 置之间的VCLK周期的数目。 WDLY (STN) STN:WDLY1:0通过计数HCLK的数目决定VLINE和VCLK之间的延迟。WDLY7:2是保留的。 00 = 16 HCLK,01 = 32 HCLK,10 = 48 HCLK,11 = 64 HCLK
27、HOZVAL 18:8 TFT/STN:这些位决定LCD面板的水平尺寸。 HOZVAL必须满足一列的字节总数是4的倍数的条件。 如果LCD的x的尺寸在单色模式下是120点,x=120不能被支持是因为一列包含15个字节。而x=128在单色模式下可以被支持是因为一列包含16个字节。 LCD面板驱动器将丢弃额外的8个点。 HFPD (TFT) LINEBLANK (STN) 7:0 TFT:HFP是在HSYNC的上升沿和活动数据的结束位置之间的VCLK周期的数目。 STN:这些位显示了一个水平列的持续时间里的空白时间。这些位可以细微地调节VLINE的速度。 LINEBLANK的单位是HCLK8。 例
28、如:如果LINEBLANK的值是10,被插入到VCLK中的空白时间就是80 HCLK。 0X00 00000000000 LCDCON3 HBPD (TFT) 25:19 TFT:HBP是在HSYNC的下降沿和活动数据的起始位 LCD控制寄存器4 寄存器 LCDCON4 地址 0X4D00000C 位 15:8 信号的速度。 读/写 描述 重置值 0x00000000 初始状态 0X00 读/写 LCD控制寄存器4 描述 LCDCON4 MVAL HSPW(TFT) 7:0 WLH(STN) STN:如果MMODE位被设置为逻辑1,这些位决定VMTFT:水平同步脉冲宽度通过计数VCLK的数目决
29、定HSYNC脉冲的峰值宽度。 STN:WLH1:0通过计数HCLK的数目决定VLINE脉冲的峰值宽度。WLH7:2是保留的。 00 = 16 HCLK,01 = 32 HCLK,10 = 48 HCLK,11 = 64 HCLK 0X00 LCD控制寄存器5 寄存器 LCDCON5 地址 0X4D000010 位 读/写 描述 重置值 0x00000000 初始状态 0 00 00 0 0 0 读/写 LCD控制寄存器5 描述 LCDCON5 保留 VSTATUS HSTATUS BPP24BL FRM565 INVVCLK 31:17 这些位是保留的且值应该为0。 16:15 TFT:垂直状
30、态。 00 = VSYNC,01 = 后退,10 = 活动的,11 = 前进 14:13 TFT:水平状态。 00 = HSYNC,01 = 后退,10 = 活动的,11 = 前进 12 11 10 TFT:这一位决定24bpp视频存储器的次序。 0 = LSB有效,1 = MSB有效 TFT:这一位选择16bpp输出视频数据的格式。 0 = 5:5:5:1格式,1 = 5:6:5格式 STN/TFT:这一位控制VCLK活动沿的极性。 0 = 视频数据在VCLK的下降沿取得,1 = 视频数据在VCLK的上升沿取得 INVVLINE INVVFRAME 9 8 STN/TFT:这一位显示VLIN
31、E/HSYNC脉冲的极性。 0 = 正常,1 = 倒向 STN/TFT:这一位显示VFRAME/VSYNC脉冲的极性。 0 = 正常,1 = 倒向 INVVD 7 STN/TFT:这一位显示VD脉冲的极性。 0 = 正常,1 = 倒向 0 0 0 LCDCON5 INVVDEN INVPWREN INVLEND PWREN ENLEND BSWP HWSWP 位 6 5 4 3 2 1 0 0 = 正常,1 = 倒向 描述 TFT:这一位显示VDEN信号的极性。 STN/TFT:这一位显示PWREN信号的极性。 0 = 正常,1 = 倒向 TFT:这一位显示LEND信号的极性。 0 = 正常,
32、1 = 倒向 STN/TFT:LCD_PWREN输出信号的使能/失能。 0 = 使PWREN信号失能,1 = 使PWREN信号使能 TFT:LEND输出信号的使能/失能。 0 = 使LEND信号失能,1 = 使LEND信号使能 STN/TFT:字节交换控制位。 0 = 交换失能,1 = 交换使能 STN/TFT:半字交换控制位。 0 = 交换失能,1 = 交换使能 初始状态 0 0 0 0 0 0 0 帧缓冲起始地址寄存器1 寄存器 LCDSADDR1 地址 0X4D000014 位 读/写 描述 重置值 0x00000000 初始状态 读/写 STN/TFT:帧缓冲起始地址寄存器1 描述 这
33、些位显示视频缓冲区在系统内存中的位置A30:22。LCDBANK 29:21 LCDBANK值即使移动观察端口也不会改变。LCD帧缓冲区应该排列在4MB区域内,这使得LCDBANK值在移动观察端口时不会改变。所以应该小心使用malloc函数。 对于双扫描LCD:这些位显示上面地址计数器的起始地址A21:1,这是对于双扫描LCD的上面帧存储器或单扫描LCDBASEU 20:0 LCD的帧存储器的。 对于单扫描LCD:这些位显示LCD帧缓冲区的起始地址A21:1。 0x000000 0x00 LCDSADDR1 帧缓冲起始地址寄存器2 寄存器 LCDSADDR2 地址 0X4D000018 读/写
34、 描述 重置值 0x00000000 读/写 STN/TFT:帧缓冲起始地址寄存器2 LCDSADDR2 LCDBASEL 位 描述 A21:1,这用于双扫描LCD的较低帧存储器。 对于单扫描LCD:这些位显示LCD帧缓冲区的结束地址A21:1。 LCDBASEL=(LINEVAL+1) 帧的结束地址) 1)+1=LCDBASEU+(PAGEWIDTH+OFFSIZE)(初始状态 0x0000 20:0 对于双扫描LCD:这些位显示较低地址计数器的起始地址注意:当LCD控制器开启卷轴的时候,用户可以改变LCDBASEU和LCDBASEL的值。但是,用户绝对不能在一帧结束时通过参考LINECNT
35、的值改变LCDBASEL和LCDBASEU的值。因为,LCD的FIFO预取下一帧数据先于帧页面的改变。因此,如果你改变了帧,那么预取的数据就无效了。LCD控制器将在面版上显示不正确的画面。为了读取LINECNT的值,中断需要被屏蔽。如果一个中断在读取LINECNT后发生,那么这个值就是过期的,因为中断产生会改变它的值。 帧缓冲起始地址寄存器3 寄存器 LCDSADDR3 地址 0X4D00001C 位 读/写 读/写 描述 STN/TFT:虚拟屏幕地址设置 描述 这个值定义了在以前的LCD列上显示的最后一个半字的地址与在新的LCD列上显示的第一个半字的地址之间的不同。 PAGEWIDTH 10
36、:0 虚拟屏幕页宽。 这个值定义了在帧里的观察端口的宽度。 000000000 重置值 0x00000000 初始状态 00000000000 LCDSADDR3 OFFSIZE 21:11 虚拟屏幕偏移尺寸。 红色查询表寄存器 寄存器 REDLUT 地址 读/写 描述 重置值 0x00000000 初始状态 0X4D000020 读/写 STN:红色查询表寄存器 位 合中的某个所选择。 REDVAL 31:0 000 = REDVAL3:0,001 = REDVAL7:4 010 = REDVAL11:8,011 = REDVAL15:12 100 = REDVAL19:16,101 = R
37、EDVAL23:20 110 = REDVAL27:24,111 = REDVAL31:28 0x00000000 描述 这些位定义了16个阴影中的哪一个将被8个可能的红色联REDLUT 绿色查询表寄存器 寄存器 GREENLUT 地址 0X4D000024 读/写 读/写 描述 STN:绿色查询表寄存器 重置值 0x00000000 GREENLUT 位 合中的某个所选择。 描述 这些位定义了16个阴影中的哪一个将被8个可能的绿色联000 = GREENVAL3:0,001 = GREENVAL7:4 010 = GREENVAL11:8,011 = GREENVAL15:12 100 =
38、GREENVAL19:16,101 = GREENVAL23:20 110 = GREENVAL27:24,111 = GREENVAL31:28 初始状态 GREENVAL 31:0 0x00000000 蓝色查询表寄存器 寄存器 BLUELUT 地址 0X4D000028 位 合中的某个所选择。 00 = BLUEVAL3:0,01 = BLUEVAL7:4 10 = BLUEVAL11:8,11 = BLUEVAL15:12 读/写 读/写 描述 STN:蓝色查询表寄存器 描述 这些位定义了16个阴影中的哪一个将被4个可能的蓝色联BLUEVAL 15:0 0x0000 重置值 0x000
39、0 初始状态 BULELUT 抖动模式寄存器 寄存器 地址 读/写 描述 STN:抖动模式寄存器。 这个寄存器的重置值是0x00000,但是用户DITHMODE 0X4D00004C 读/写 可以改变这个值为0x12210。 0x00000 重置值 DITHMODE DITHMODE 位 18:0 0x00000或0x12210 描述 对于你的LCD使用下面的任一个值: 初始状态 0x00000 临时调色板寄存器 寄存器 TPAL 地址 0X4D000050 读/写 读/写 描述 TFT:临时调色板寄存器。 这个寄存器的值在下一帧将会是视频数据。 重置值 0x00000000 TPAL TPA
40、LEN 位 24 0 = 失能,1 = 使能 临时调色板值寄存器。 TPALVAL23:16:红 TPALVAL15:8:绿 TPALVAL7:0:蓝 描述 临时调色板寄存器使能位。 初始状态 0 TPALVAL 23:0 0x000000 LCD中断申请寄存器 寄存器 LCDINTPND 地址 0X4D000054 位 LCD帧同步中断申请位。 INT_FrSyn 1 0 = 中断未被申请 1 = 已经申请中断 LCD输入输出中断申请位。 INT_FiCnt 0 0 = 中断未被申请 1 = 当LCD的输入输出到达触发电平时,LCD输入输出中断被申请 0 0 读/写 描述 重置值 0x0 初
41、始状态 读/写 显示LCD中断申请寄存器 描述 LCDINTPND LCD源申请寄存器 寄存器 LCDSRCPND 地址 0X4D000058 位 1 0 = 中断未被申请 1 = 已经申请中断 LCD输入输出中断源申请位。 INT_FiCnt 0 0 = 中断未被申请 1 = 当LCD的输入输出到达触发电平时,LCD输入输出中断被申请 0 读/写 读/写 描述 显示LCD中断源申请寄存器 描述 LCD帧同步中断源申请位。 INT_FrSyn 0 重置值 0x0 初始状态 LCDSRCPND LCD中断屏蔽寄存器 寄存器 LCDINTMSK 地址 0X4D00005C 读/写 读/写 描述 决
42、定哪个中断源被屏蔽。 被屏蔽的中断源将不会被服务。 重置值 0x3 LCDINTMSK FIWSEL 位 2 0 = 4个字,1 = 8个字 屏蔽LCD帧同步中断。 0 = 中断服务是有用的 1 = 中断服务被屏蔽 屏蔽LCD输入输出中断。 描述 决定LCD的输入输出的触发电平。 初始状态 INT_FrSyn 1 1 INT_FiCnt 0 0 = 中断服务是有用的 1 = 中断服务被屏蔽 1 LPC3600控制寄存器 寄存器 LPCSEL 地址 读/写 描述 这个寄存器控制LPC3600的模式 描述 1 = 240320 决定LPC3600使能/失能。 0 = LPC3600失能 1 = LPC3600使能 重置值 0x4 初始状态 0 0 0X4D000060 读/写 位 1 0 LPCSEL RES_SEL LPC_EN 实验内容 根据前面的原理介绍,写一个程序来检测LCD。有能力的同学还可以在LCD上尝试显示汉字。 实验步骤 1. 阅读原理介绍,了解LCD显示的基本过程和原理,了解LCD控制器的结构和功能。 2. 阅读该实验的源代码,理解其中的细节。通过阅读源码,更深层次的理解LCD控制器的工作原理。 3. 编写一个程序来测试LCD控制器的功能。