zl程序教程

您现在的位置是:首页 >  其他

当前栏目

FPGA驱动Oled显示字符

2023-03-14 22:57:31 时间

在前面两篇文章的基础上,加大难度,实现了字符的显示,效果如下图所示,需要完整代码的可以关注FPGA之旅,回复 Oled字符,获取下载链接。

image.gif

一. 字符数据的制作


在进行字符显示的时候,我们需要用到取模软件对字符数据进行提取。这里采用的是PCtoLCD软件用来生成字符数据。(软件打包在项目里面)


image.png

二. 字符数据生成Verilog


生成的字符数据如下,这样是不能直接输入到Verilog里面去的。一个个手动赋值是非常繁琐的,这里采用了python,来读取txt文件,生成verilog代码。

(也可以采用ram ip 生成cof或者mif文件)

image.png

这里我只生成了always块来对数据进行初始化赋值。


data = open("2.txt")
data = data.read().split(" ")
file_handle=open('1.txt',mode='w')
file_handle.write("always@(posedge clk or negedge rst)
")
file_handle.write("begin
	if(rst == 1'b0)
	begin
")
for index,dat in enumerate(data):
    file_handle.write("		data10[{}] = {};
".format(index,dat))
file_handle.write("	end
")
file_handle.write("end")
file_handle.close()


一共生成10个always块,对这些memory进行初始化。


image.png

三.字符的显示


先来看看module模块,

输入为起始的位置,和显示字符的选择,非常方便修改为自己想要的字符。

这里字符的大小为16*16,所以需要写两个page,每个page里面写入16个数据。这里的操作和上篇的清屏和全亮的过程一样,只是判断条件变化了。

image.pngimage.png

四. 字符的控制


控制模块主要输出每个字符显示的位置,和显示那个字符。

image.png

公众号:FPGA之旅