FPGA RGB565的LCD显示屏驱动(Verilog)

本文介绍了一种480x272分辨率RGB565屏幕的驱动设计方法,包括9M时钟产生、行场扫描时序控制、显示内容逻辑实现等关键步骤。通过子母计数器实现精确的像素点定位,确保图像正确显示。

1屏幕

在这里插入图片描述
使用像素:480*272的一块RGB565屏幕。
像素时钟:9Mhz
接口:

	    lcd_bl:lcd背光
	    lcd_rgb[15:0]:色彩值
	    lcd_de:当计数器处于valid(有效)区域时应将其拉高,此时输出lcd_rgb[15:0]的值到屏幕的对应像素点上。
	    lcd_hs:可一直将其拉高没有影响
	    lcd_vs:可一直将其拉高没有影响
	    lcd_pclk:9M时钟
	    lcd_rst:lcd单独复位低电平有效

2行场扫描时序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3分析

1、利用ip核倍分频获得9M时钟。
2、使用子母两个计数器对驱动时钟进行计数。
3、子计数器的计数范围为0-524,所代表一个行扫描周期,满载时在下一个时钟周期清零,并使母计数器+1。
4、母计数器的计数范围为0-285,所代表一个场扫描周期,满载时在下一个时钟周期清零。
5、利用组合逻辑将子母俩个计数的计数值做范围限定,确定真正valid的范围。
6、当计数值处于真正valid的范围时,需要回传当前的坐标值,用户根据回传的坐标值设置RGB565的色彩值。

4代码

4-1产生9M驱动时钟

在这里插入图片描述
-其端口列表如下:

module pll_9m (
	areset,//注意:其为高电平复位
	inclk0,//输入时钟
	c0,    //输出时钟
	locked //稳定锁:当c0输出稳定时locked会从低电平变为高电平
	);

4-2驱动部分

    module lcd_driver(
        input           lcd_clk,      //lcd模块驱动时钟
        input           sys_rst_n,    //复位信号
        
        //下列信号与RGBLCD屏幕相连接                 
        output          lcd_hs,       //LCD 行同步信号
        output          lcd_vs,       //LCD 场同步信号
        output          lcd_de,       //LCD 数据使能
        output  [15:0]  lcd_rgb,      //LCD RGB565颜色数据
        output          lcd_bl,       //LCD 背光控制信号
        output          lcd_rst,      //LCD 复位信号
        output          lcd_pclk,     //LCD 采样时钟
     
        //接口信号,此模块推出valid坐标值,并接收用户发来的RGB565的像素点颜色值   
        input   [15:0]  pixel_data,   //像素点数据
        output  [10:0]  pixel_xpos,   //像素点横坐标
        output  [10:0]  pixel_ypos    //像素点纵坐标
        );                             
                                                            
    //参数列表
    parameter  H_SYNC   =  11'd41;   //行同步
    parameter  H_BACK   =  11'd2;    //行显示后沿
    parameter  H_DISP   =  11'd480;   //行有效数据
    parameter  H_FRONT  =  11'd2;    //行显示前沿
    parameter  H_TOTAL  =  11'd525;  //行扫描周期

    parameter  V_SYNC   =  11'd10;     //场同步
    parameter  V_BACK   =  11'd2;    //场显示后沿
    parameter  V_DISP   =  11'd272;   //场有效数据
    parameter  V_FRONT  =  11'd2;    //场显示前沿
    parameter  V_TOTAL  =  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搞IC的那些年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值