一文搞懂:世界上最神奇的mif文件生成方案

简介: 一文搞懂:世界上最神奇的mif文件生成方案

"

世界上最神奇的mif文件生成方案

每次想要什么功能,总是找软件,死要命的找,比方说上位机、字模提取软件等等。

可是,你又听说过mif文件生成软件嘛??

当年要在液晶上显示东西,字库很大,回头大。假如说64*64的单色的图片,那你需要在Quartus II Memory Initialzation File 手工输入,需要输入4096个值,等你成功, 都NC了……

我就NC过,NC了一半,我罢工了……

字模提取软件提取的东西,都是十六进制的,而且都是8位的,我何不用C语言把他直接转换为mif文件呢?

功夫不负有心人,其实很简单,处理一个文件就OK。

那已经是一年前的事情了,现在重新要用到,终于,狠下心,把它总结一下,为全人类做贡献了。

步骤请看如下

目的:要得到16*8的字符“Crazy Bingo”的mif文件?

总共有16811=1408个数据,按列取,两个字节为一个数据,共8*11=88个数据

(1) 用PCtoLCD2002这款软件提取“Crazy //代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg3NDgyMA==.html

Bingo”的HEX文件,如下:

生成字模后,保存。

(2) 用notepad++这款软件打开,直接进行列操作,删除一些参数,得到有效数据

(3) 设置C程序 define参数,程序如下

#include

#define Data_Width 16 //mif 存储数据宽度

#define Data_Depth 88 //mif 存储数据总量 8*11

void main()

{

int i,S=0;

int HEX_Data【Data_Depth】; //输入8位HEX 数据(0x...)

//在桌面新建Mif文件

FILE *fp;

fp=fopen(""C:\Documents and Settings\All Users\桌面\Mif.mif"",""w"");

//写入mif文件初始化数据

fprintf(fp,""WIDTH=%d;\n"",Data_Width); //写入mif 存储数据宽度

fprintf(fp,""DEPTH=%d;\n"",Data_Depth); //写入mif 存储数据总量

fprintf(fp,""\n"");

fprintf(fp,""ADDRESS_RADIX=DEC;\n""); //十进制表示地址

fprintf(fp,""DATA_RADIX=HEX;\n""); //十六进制表示数据

fprintf(fp,""CONTENT BEGIN;\n""); //内容开始

fprintf(fp,""\n"");

for(i=0;i

{


//代码效果参考: https://v.youku.com/v_show/id_XNjQwNjg3MjkwOA==.html

scanf(""%x"",&HEX_Data【i】);

fprintf(fp,""\t%d\t:\t%x;\n"",i,HEX_Data【i】);

}

fprintf(fp,""\n"");

fprintf(fp,""END;""); //标志mif 文件CONTENT完毕

fclose(fp); //关闭文件

//CMD界面显示

printf(""\n"");

printf(""Congratulate to you,Crazy Bingo!"");

printf(""Built mif file successfully!\n"");

printf(""Have a fun and never give up!\n"");

getchar();

getchar();

getchar();

}

(4) 编译,在CMD复制入第二步最后得到的数据

(5) 桌面

(6) 记事本格式打开

(7) Quartus II 打开

(8) 然后再调用ROM+相关程序,就可以在液晶上看到我了哈哈

(9) 再看看别的,下面是五个32*32的汉字的mif,32位的

哈哈,以后一定要好好学C++,自己编写一个界面,写个小软件,送给玩FPGA 的小朋友们……


"
image.png
相关文章
|
1天前
|
存储 编解码 缓存
技术经验解读:YYImage实现思路源码分析(图片解压缩原理)
技术经验解读:YYImage实现思路源码分析(图片解压缩原理)
|
1月前
|
Web App开发 JavaScript 安全
【面试题】 阿里面试官:请设计一个不能操作DOM和调接口的环境
【面试题】 阿里面试官:请设计一个不能操作DOM和调接口的环境
|
7月前
|
负载均衡 前端开发 Java
阿里面试:看过框架源码吗?举例说明一下
阿里面试:看过框架源码吗?举例说明一下
91 0
|
Java 编译器
编程基础|如何解决编程中的代码错误问题
编程基础|如何解决编程中的代码错误问题
181 0
|
存储 开发者
彻底搞懂函数,读这篇文章就够了
如果你之前使用过任何一门编程语言,那么对于你来讲想必已经知道什么是函数,以及如何使用函数了,那你大可不必往下读了。这篇文章是写给新手看的,也就是说我假设你对于函数没有任何的概念。 我们就先从什么是函数来说起吧!
84 0
|
运维 监控 Java
【高效编码】JDK自带的命令行工具的使用还用不清楚的地方?快来看看这篇文章吧!!!
您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧。小伙伴们有啥想看的,想问的,欢迎积极留言告诉我喔。
136 0
【高效编码】JDK自带的命令行工具的使用还用不清楚的地方?快来看看这篇文章吧!!!
|
Arthas 缓存 算法
如何写出高性能代码(二)巧用数据特性
同一份逻辑,不同人的实现的代码性能会出现数量级的差异; 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升;同一份代码,也可能在不同处理器上运行也会有几倍的性能差异;十倍程序员 不是只存在于传说中,可能在我们的周围也比比皆是。十倍体现在程序员的方法面面,而代码性能却是其中最直观的一面。
165 0
如何写出高性能代码(二)巧用数据特性
|
SQL 自然语言处理 关系型数据库
数据库知识点太多?作为测试掌握这些就够了【精简重点版 >直击面试>建议收藏】
数据库知识点太多?作为测试掌握这些就够了【精简重点版 >直击面试>建议收藏】
103 0
数据库知识点太多?作为测试掌握这些就够了【精简重点版 >直击面试>建议收藏】
|
存储 网络协议 安全
WEB服务端开发必懂的概念和底层原理,通过对比的方式让大家更好的理解和使用
golang 源码级别支持协程,实现简单。协程使用,当底层遇到阻塞会自动切换,也就是逻辑层通过同步方式实现异步,充分利用了系统资源,同时避免了异步状态机的反人类异步回调,实现方式更为直观简单。golang 协程是通过多线程维护,所以避免不了锁的使用,但也极大解决了研发效率问题。
170 0
|
JSON 算法 测试技术
接口测试平台174:并发底层(顺便谈谈俩个版本区别)
接口测试平台174:并发底层(顺便谈谈俩个版本区别)
接口测试平台174:并发底层(顺便谈谈俩个版本区别)