在日常生活中很多朋友不知道TFTLCD显示屏怎样显示图片那么小编今天就在这里给大家分享一点我的小经验,希望可以给你们带来帮助
方法/步骤
1、首先想到是利用FPGA内部ROM存储图片数据,然后通过控制读取数据地址将图片数据传给TFT驱动模块,从而将每个图片数据显示在对应的像素点上。整个设计的框图如下:
2、主要是在小梅哥TFT驱动豹肉钕舞设计基础上增加了图片数据发送控制模块Imgdata_send,该模块包括存储图片数据的rom,和一些简疟觥窖捎单的逻辑控制。具体的romIP核的建立我这里就不说了,不懂的可以参看小梅哥的相关内容的视频,我这里主要讲如何将图片转换成mif文件。这里有两种方法,可以作为参考,主要用到如下软件:
3、步骤1:利用Img2Lcd将图片转化为BMP格式的(当然图片本身为BMP格式就不需要转了,直接进入步骤2);步骤2:利用BMP2Mif可将图片转化为mif文件。
4、具体实现如下:步骤1:先打开Img2Lcd打开一劢实醭萱张图片,选择输出格式为BMP格式,输出灰度选择24位真彩色(由于BMP2Mif软件飧肇苡卫只能载入24位或8位的,所以这里就没有直接选16位的真彩色),最大宽度和高度根据图片实际的大小进行选择的,由于内部rom能存储的数据量有限,我选择了一张像素为160*120的图片如果想显示大的图片,如480*272图片,用这种方法就不能实现(看到这里有人想,如果想显示大点的图片那应该怎么解决,后面我会有其他方法来实现TFT屏保显示)。
5、步骤2:打开BMP2Mif软件,加载刚转换输出的24位BMP格式图片,选择输出图像格式和文件类型,点击一键转换便将图片转换为了mif文件了,可以将mif文件名更改下以区别不同图片mif文件。
6、可以用Notepad++将转化的mif文件打开看看,截取部分图如下:
7、romIP核设置完成后就是数据发送控遄咿湫幼制模块Imgdata_send中控制逻辑的编写,主要是让图片显示在屏幕指定的地方,这就需要根据TFT_C皈其拄攥TRL模块的TFT行和场扫描计数器输出信号来控制rom的数据地址,从而控制TFT_CTRL的待显示数据data_in。具体代码如下:
8、接下来就是仿真验证,利用已有的TFT_CTRL模块的hcount、vcount、tft_de作为Imgdata_send模块的输出进行仿真验证,代码如下:
9、仿真验证的波形图如下:
10、从仿真结果可以看出,图片数据是在我们指定的区域输出的。该模块仿真验证正确后,进行顶层电路文件的设计。顶层文件编写如下:
11、生成的顶层电路图如下:
12、接下来就是仿真验证,仿真验证程序如下:
13、仿真波形如下:
14、从波形可以看出,图片数据在指定区域显示。接下来就是板级验证,引脚分配参照芯航线FPGA学习套件引脚分配表进行分配,然后布局布线,板级程序下载最后实现的效果图如下:
15、我们设置的是显示在屏幕的左上角,与预期效果是一致的,想要改变图片的位置,可以更改Imgdata_send模块的229行代码:
16、将上面的(0、0)更改为其他的数,图片位置就会改变,如果想让图片在屏幕上自动的蚨潍氢誊移动,可以自己设置一种路径让img_hbegin、img_vbegin的值遽牟赓雁按你的路径变化就可实现图片的自动移动,读者可以自己改进学习。
17、以上就是小编带给大家的TFTLCD显示屏怎样显示图片的关键所在,希望大家可以喜欢,如果喜欢的话可以点赞哦,也可以发表自己的看法