一、显示一张彩色图片
- 设计需求:
在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,计数器的每个数值代表不同的放大倍率,在每个计数器的数值的作用下,显示区域赋不同的值,地址赋不同的地址运算。