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 =

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

被折叠的 条评论
为什么被折叠?



