基于Quartus II的400240像素液晶显示驱动设计综述.docx

上传人:b****4 文档编号:810296 上传时间:2022-10-13 格式:DOCX 页数:12 大小:377.79KB
下载 相关 举报
基于Quartus II的400240像素液晶显示驱动设计综述.docx_第1页
第1页 / 共12页
基于Quartus II的400240像素液晶显示驱动设计综述.docx_第2页
第2页 / 共12页
基于Quartus II的400240像素液晶显示驱动设计综述.docx_第3页
第3页 / 共12页
基于Quartus II的400240像素液晶显示驱动设计综述.docx_第4页
第4页 / 共12页
基于Quartus II的400240像素液晶显示驱动设计综述.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

基于Quartus II的400240像素液晶显示驱动设计综述.docx

《基于Quartus II的400240像素液晶显示驱动设计综述.docx》由会员分享,可在线阅读,更多相关《基于Quartus II的400240像素液晶显示驱动设计综述.docx(12页珍藏版)》请在冰豆网上搜索。

基于Quartus II的400240像素液晶显示驱动设计综述.docx

基于QuartusII的400240像素液晶显示驱动设计综述

一、实验要求

要求根据图2-1及表2-1的参数,选用Altera公司的Cyclone系列芯片EP1C12Q240C8,在Quartus9.0环境下编写该液晶显示器的驱动程序,使得该液晶显示器(400*240像素)可以进行两种显示模式,即黑白隔行显示、黑白隔列显示,并在Quartus9.0环境下编译通过。

其中给定外部时钟频率为40MHz,四分频后10MHz信号提供给DOTCLK输入。

 

图1-1

二、实验环境

1、实验芯片:

Altera公司的Cyclone系列芯片EP1C12Q240C8。

2、运行环境:

Quartus9.0。

三、实验原理

该液晶驱动就是最简单的VGA显示控制。

目前常见显示器,一般由CRT(阴极射线管)构成,彩色是由R、G、B三基色组成,CRT用逐行扫描或隔行扫描的方式实现图像显示,由VGA控制模块产生的水平同步信号和垂直同步信号控制阴极射线枪产生的电子束,打在涂有荧光粉的荧光屏上,产生R、G、B三基色,合成一个彩色像素。

扫描从屏幕的左上方开始,由左至右,由上到下,逐行进行扫描,每扫完一行,电子束回到屏幕下一行的起始位置。

在回扫期间,CRT对电子束进行消隐,每行结束是用行同步信号HS进行行同步;扫描完所有行,再由场同步信号VS进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。

行同步信号HSYNC和场同步信号VSYNC是两个重要的信号。

显示过程中,HSYNC和VSYNC的极性可正可负,显示器内可自动转换为正极性逻辑。

显示器每扫描完一行,再扫描下一行时会花一定时间来准备,因此要满足时序要求,如图2-1所示。

 

图2-1VGA行扫描时序图

同样每扫描完一帧,再扫描下一帧行时也会花一定时间来准备,因此也要满足其时序要求,如图2-2所示。

 

图2-2VGA场扫描时序图

分析图1-1和表2-1可知,该液晶驱动程序需要产生七个信号,即IRD、IGD、IBD、HSYNC、VSYNC、DE和DOTCLK。

其中IRD、IGD、IBD分表表示R、G、B三种颜色,HSYNC和VSYNC分别表示行扫描和场扫描,DE表示信号输入,DOTCLK是外部时钟四分频后的时钟信号。

表2-1液晶驱动引脚说明

 

实验要求时序图,如下图2-3和所示:

 

图2-3输出时序图

表2-2参数表

 

观察输出时序图2-3和参数说明表2-2,对照图2-1VGA行扫描时序图和图2-2场扫描时序图,可以计算出行扫描时序要求和场扫描时序要求。

表2-3行扫描时序要求(单位:

像素,即输出一个像素的时间间隔)

行同步头

行图像

行周期

对应位置

Tf

Ta

Tb

Tc

Td

Te

Tg

时间(Pixels)

0

2

6

0

400

0

408

表2-4场扫描时序要求(单位:

像素,即输出一个像素的时间间隔)

行同步头

行图像

行周期

对应位置

Tf

Ta

Tb

Tc

Td

Te

Tg

时间(Pixels)

0

1

0

0

240

0

241

本实验要求隔行黑白显示和隔列黑白显示,且表示三基色R、G、B的IRD、IBD和IGD均是六位输出,故R、G、B对应颜色编码如下表所示:

表2-5颜色编码

颜色

R

G

B

000000

000000

000000

111111

111111

111111

四、实验源代码

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYLCD_DRIVERIS

PORT(

SCLKIN:

INSTD_LOGIC;

MODE:

INSTD_LOGIC;

IRD:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

IGD:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

IBD:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

DOT_CLK:

OUTSTD_LOGIC;

DE:

OUTSTD_LOGIC;

HSYNC:

OUTSTD_LOGIC;

VSYNC:

OUTSTD_LOGIC);

ENDLCD_DRIVER;

ARCHITECTUREONEOFLCD_DRIVERIS

SIGNALSYS_CLK:

STD_LOGIC;

SIGNALVDOT_CNT,CC:

STD_LOGIC_VECTOR(7DOWNTO0):

="00000000";--COUNTVERTICALPIXEL

SIGNALHDOT_CNT,LL:

STD_LOGIC_VECTOR(8DOWNTO0):

="000000000";--COUNTHORIZONTAIPIXEL

SIGNALRGBX:

STD_LOGIC_VECTOR(5DOWNTO0):

="000000";--COLUMNDISPLAY

SIGNALRGBY:

STD_LOGIC_VECTOR(5DOWNTO0):

="000000";--LINEDISPALY

SIGNALRGBP:

STD_LOGIC_VECTOR(5DOWNTO0):

="000000";

SIGNALDE_SIG:

STD_LOGIC:

='1';--DESIGNAL

SIGNALHSYNC_SIG:

STD_LOGIC:

='1';

SIGNALVSYNC_SIG:

STD_LOGIC:

='1';

CONSTANTH_A:

INTEGER:

=402;CONSTANTH_B:

INTEGER:

=408;CONSTANTH_D:

INTEGER:

=400;

CONSTANTV_A:

INTEGER:

=241;CONSTANTV_D:

INTEGER:

=240;

BEGIN

--FOURDIVIDEDCLOCK

PROCESS(SCLKIN)

VARIABLESYS_DIV:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

IFSCLKIN'EVENTANDSCLKIN='1'THEN

SYS_DIV:

=SYS_DIV+1;

ENDIF;

SYS_CLK<=SYS_DIV

(1);

ENDPROCESS;

PROCESS(SCLKIN,MODE)BEGIN

IFMODE='1'THENRGBP<=RGBX;

ELSIFMODE='0'THENRGBP<=RGBY;

ENDIF;

ENDPROCESS;

--GENERATEHYSNCSIGNAL

PROCESS(SYS_CLK)

BEGIN

IFSYS_CLK'EVENTANDSYS_CLK='1'THEN

HDOT_CNT<=HDOT_CNT+1;

ENDIF;

IFHDOT_CNT

DE_SIG<='1';

HSYNC_SIG<='0';

ENDIF;

IFHDOT_CNT=H_DTHEN

DE_SIG<='0';

ENDIF;

IFHDOT_CNT=H_ATHEN

HSYNC_SIG<='1';

ENDIF;

IFHDOT_CNT=H_A+2THEN

HSYNC_SIG<='0';

ENDIF;

IFHDOT_CNT=H_BTHEN

HDOT_CNT<="000000000";

ENDIF;

ENDPROCESS;

--GENERATEVETICALSIGNAL

PROCESS(SYS_CLK)

BEGIN

IFSYS_CLK'EVENTANDSYS_CLK='1'THEN

IFHDOT_CNT=H_B-1THEN

VDOT_CNT<=VDOT_CNT+1;

IFVDOT_CNT=V_ATHEN

VDOT_CNT<="00000000";

ENDIF;

ENDIF;

ENDIF;

IF(VDOT_CNT>=V_D)AND(VDOT_CNT

VSYNC_SIG<='1';

ELSE

VSYNC_SIG<='0';

ENDIF;

ENDPROCESS;

LL<=HDOT_CNT;CC<=VDOT_CNT;--JUSTFORKEYCODESIMPLY

PROCESS(LL,CC)

BEGIN

IFLL<40THENRGBX<="111111";--DISPLAYWHITE

ELSIFLL<80THENRGBX<="000000";--DISPLAYBALCK

ELSIFLL<120THENRGBX<="111111";

ELSIFLL<160THENRGBX<="000000";

ELSIFLL<200THENRGBX<="111111";

ELSIFLL<240THENRGBX<="000000";

ELSIFLL<280THENRGBX<="111111";

ELSIFLL<320THENRGBX<="000000";

ELSIFLL<360THENRGBX<="111111";

ELSIFLL<400THENRGBX<="000000";

ELSERGBX<="000000";

ENDIF;

IFCC<20THENRGBY<="111111";

ELSIFCC<40THENRGBY<="000000";

ELSIFCC<60THENRGBY<="111111";

ELSIFCC<80THENRGBY<="000000";

ELSIFCC<100THENRGBY<="111111";

ELSIFCC<120THENRGBY<="000000";

ELSIFCC<140THENRGBY<="111111";

ELSIFCC<160THENRGBY<="000000";

ELSIFCC<180THENRGBY<="111111";

ELSIFCC<200THENRGBY<="000000";

ELSIFCC<220THENRGBY<="111111";

ELSIFCC<240THENRGBY<="000000";

ELSERGBY<="000000";

ENDIF;

ENDPROCESS;

PROCESS(VSYNC_SIG)

BEGIN

IFSYS_CLK'EVENTANDSYS_CLK='1'THEN

HSYNC<=HSYNC_SIG;

VSYNC<=VSYNC_SIG;

IFVDOT_CNT

IRD<=RGBP;

IGD<=RGBP;

IBD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1