fpga控制vga显示黑白图片

来源:互联网 发布:php文字大小代码 编辑:程序博客网 时间:2024/04/30 09:41

1

在前几次的实验中,我们了解了VGA的时序,VGA的时序感觉是非常有意思的,摄像头、LCD和VGA的时序和VGA的实现都差不多,大体的时序都是相同的。VGA接口的显示器原理其实就相当于点阵,通过控制器的控制,点亮所在的行和列。所以水平同步信号是针对列像素而言的,而垂直同步信号是针对行像素而言的。知道了VGA的时序,此刻我们会很迫不及待的想要让VGA显示屏上显示一张我们想要的一张图片,今天,我们就来显示一张简单的图片,黑白图片。

像素是指在由一个数字序列表示的图像中的一个最小单位,例如300x300PPI分辨率,即表示水平方向与垂直方向上每英寸长度上的像素数都是300,水平方向上和垂直方向上都有300个像素点,而每一个像素点都16位或者24位的数据来进行显示,色彩使用RGB三种颜色来进行表示,这也是我们所说的RGB565和RGB888,RGB565代表红色5位、绿色6位、蓝色5位来进行表示,RGB888则代表着红、绿、蓝分别为8位数据。

在RGB16位的表示过程中,黑色则为0XFF,白色为OX00。在VGA显示黑白图片的过程中,首先我们需要一张黑白图片,我们选取了一张分辨率为240*240的图片,由于图像信息用的是黑白的BMP,也就是说1bit代表1个像素点的色彩信息。

2

FPGA显示图片的原理:将图片内容存在FPGA的内部block rom里面。然后写一个VGA控制模块,将rom的值依次发送,这样显示器就可以显示图片了。Rom模块只能识别.mif问爱你,所以我们需要将我们需要展示的图片首先存储在rom中。

(1) 将bmp黑边图片转化为.mif文件。转换软件是BMF2Mif。将黑白图片转化为.MIF文件,不过转化的位为1bit,因为黑白图片要么为1要么为0,这样节约存储空间。

(2) quartus建立工程,在项目中添加rom模块,将rom模块的深度和位深度设置。Rom的大小可以随便设置,只要大于240*240就可以,因为图片的分辨率为240*240。

(3)添加VGA显示驱动,读取rom中数据,用于在VGA显示屏显示黑白图片。


3

结果演示:


原创粉丝点击