基于FPGA的VGA显示图片

该文描述了如何在VGA接口显示屏上显示180*120彩色图片,并实现通过按键进行图片放大和缩小的功能。设计包括图片的裁剪、数据存储、显示区域设定以及使用状态机管理放大和缩小状态。此外,还提出了显示相册的需求,包括图片切换、放大和缩小操作,以及相应的地址计算方法。
摘要由CSDN通过智能技术生成

一、显示一张彩色图片

    • 设计需求:

在VGA接口的显示屏上显示一张180*120彩色图片。

    • 需求分析

(1)对图片裁剪及取数据

a.使用画图软件/美图秀秀将图片像素裁剪成180*120大小。

b.取数据:采用取模软件Img2Lcd/Matlab。

c.把图片数据存储到ROM:将.c文件中的数据处理成.mif/.hex文件,目的是为了将当前图片数据存储到ROM。

d.将图片显示到显示区域中间:

1):圈中图片显示区域

2):在当前图片区域内控制ROM地址变化。

    • 设计架构

二、对显示屏的图片通过按键进行放大

    • 设计需求

在VGA接口的显示屏上显示一张180*120彩色图片,并且可以通过按键进行放大4倍。

    • 需求分析

a.按键:需要使用按键,即需要按键消抖模块,并进行边沿检测,目的是使按键为单脉冲。

b.放大原理:原图片的一个像素点的颜色值在放大图片中用4个像素点显示,即放大图片里由4个像素点组成的正方形像素小格使用ROM里的同一个地址。

c.显示区域:需要显示原图片和放大图片,这两张图片的显示区域不同,需要使用两个使能信号标出。(黑色为显示有效区,红色为原图片显示区,蓝色为放大图片显示区)

d.放大图片像素地址值:addr = (cnt_hs - hs) / 2 + (cnt_vs - vs) / 2 * 100

cnt_hs:行计数器

cnt_vs:列计数器

hs:放大图片行计数起始值

vs:放大图片列计数起始值

    • 设计思想

使用状态机完成,有两个状态,为状态1,状态2 。

状态1(原图片):在这状态中,原图片显示区域使能有效,地址自加1;有按键来时,进入状态2 。

状态2(放大图片):在这状态中,放大图片显示区域使能有效,地址使用放大图片像素地址值;有按键来时,回到状态1 。

    • 设计架构

三、对显示屏的图片通过按键进行缩小

与放大模块基本相同,唯一不同点在于缩小后的地址。

缩小后的地址:addr = (cnt_hs - hs)*2 + (cnt_vs - vs)* 2 * 100

cnt_hs:行计数器

cnt_vs:列计数器

hs:缩小图片行计数起始值

vs:缩小图片列计数起始值

.显示区域:需要显示原图片和放大图片,这两张图片的显示区域不同,需要使用两个使能信号标出。(黑色为显示有效区,红色为原图片显示区,蓝色为缩小图片显示区)

四、在显示屏上显示相册

    • 设计需求

(1):存放3张图片

(2):采用3个按键,第一个按键进行图片切换,第二个按键进行图片放大,第三个按键进行图片缩小

(3):放大5次到全屏幕,缩小时从全屏幕图片5倍缩小至原图。

2.设计思想:

使用两个计数器,计数器1为图片切换,每次按下图片切换按键进行加1,计数器的每个数值代表不同的图片,在每个计数器的数值的作用下,vga_rgb等于不同ROM的q值 ;计数器2为放大缩小,按下放大按键加1,按下缩小按键减1,计数器的每个数值代表不同的放大倍率,在每个计数器的数值的作用下,显示区域赋不同的值,地址赋不同的地址运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值