RGB TFT-LCD彩条显示实验

本文介绍了如何利用正点原子ZYNQ开发板上的RGB TFT-LCD接口,通过FPGA实现彩条显示。实验中涉及读取LCD屏ID、时钟分频、LCD驱动及显示等模块,详细展示了各模块的代码实现和工作原理。
摘要由CSDN通过智能技术生成

实验任务
本节的实验任务是使用正点原子ZYNQ开发板上的RGB TFT-LCD接口,驱动RGB LCD液晶屏(支持目前推出的所有RGB LCD屏),并显示出彩条。
 

模块示意图:

RGBTFT-LCD输入时序包含三个要素:像素时钟、同步信号、以及图像数据,由此我们可以大致规划出系统结构如下图所示。其中,读取ID模块用于获取LCD屏的ID;由于不同分辨率的屏幕需要不同的驱动时钟,因此时钟分频模块根据LCD ID来输出不同频率的像素时钟;LCD显示模块负责产生液晶屏上显示的数据,即彩条数据;LCD驱动模块根据LCD屏的ID,输出不同参数的时序,来驱动LCD屏,并将输入的彩条数据显示到LCD屏上。

 由系统框图可知,FPGA部分包括五个模块,顶层模块(lcd_rgb_colorbar)、读取ID模块(rd_id)、时钟分频模块(clk_div)、LCD显示模块(lcd_display)以及LCD驱动模块(lcd_driver)。其中在顶层模块中完成对其余模块的例化。

各模块端口及信号连接如下图所示:

读取ID模块(rd_id)在上电时将RGB双向数据总线设置为输入,来读取LCD屏的ID;时钟分频模块(clk_div)根据读取的ID来配置LCD的像素时钟;LCD驱动模块(lcd_driver)在像素时钟的驱动下输出数据使能信号用于数据同步,同时还输出像素点的纵横坐标,供LCD显示模块(lcd_display)调用,以绘制彩条图案。 

顶层模块代码实现:

modulelcd_rgb_colorbar(
        input        sys_clk,//系统时钟
        input        sys_rst_n,//系统复位

//RGB LCD接口
        output                        lcd_de,//LCD数据使能信号
        output                        lcd_hs,//LCD行同步信号
        output                        lcd_vs,//LCD场同步信号
        output                        lcd_bl,//LCD背光控制信号
        output                        lcd_clk,//LCD像素时钟
        inout        [23:0]         lcd_rgb//LCD RGB888颜色数据
);
//wire define
wire [15:0]        lcd_id;//LCD屏ID
wire                  lcd_pclk;//LCD像素时钟
wire [10:0]        pixel_xpos;//当前像素点横坐标
wire [10:0]        pixel_ypos;//当前像素点纵坐标
wire [10:0]        h_disp;//LCD屏水平分辨率
wire [10:0]        v_disp;//LCD屏垂直分辨率
wire [23:0]        pixel_data;//像素数据
wire [23:0]        lcd_rgb_o;//输出的像素数据
wire [23:0]        lcd_rgb_i;//输入的像素数据

//像素数据方向切换
assign lcd_rgb=lcd_de?lcd_rgb_o:{24{1'bz}};
assign lcd_rgb_i=lcd_rgb;
//读LCD ID模块
rd_id u_rd_id(
        .clk(sys_clk),

        .rst_n(sys_rst_n),
        .lcd_rgb(lcd_rgb_i),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值