搜索
bottom↓
回复: 7

Verilog之5110液晶屏驱动(新手发帖,大神勿拍)

[复制链接]

出0入0汤圆

发表于 2014-3-8 23:03:27 | 显示全部楼层 |阅读模式
本帖最后由 w717342899 于 2014-3-8 23:20 编辑

希望能帮助像我一样在开始的时候找不到方式的初学者。

NOKIA 5110是一款性价比比较高的液晶,价格相对于1602或者12864低很多,但是刷新速率却毫不含糊,能够以4MHZ的速率进行数据的刷新,而且串行通信,连线简单,连电源和地线一起共7根线即可搞定。

DC----------数据(1)/命令(0)               DIN-------------------串行数据输入
CLK---------串行输入时钟                      CE--------------------芯片使能
RST---------复位引脚


在编程过程中,同样采取建模的方法,主要有两个模块,一是spi_write模块一个是lcd_control模块,两者连线关系如图:


Lcd_contrl负责提供数据,以及串行数据传输开始的信号,spi_write则将传输过来的数据进行输出(以串行的方式),值得注意的是,数据位10位,其中最高的两位位CE,DC引脚,第八位位需要输出的数据或者命令。
输出数据的格式spi_out = {spi_data[9],spi_data[8],lcd_clk,spi_temp}; //CE,DC,CLK,DIN
主要就是利用Verilog进行编写仿顺序的操作。利用MODELSIM进行一些简单的仿真就能够找到程序存在的一些问题。在基于51单片机的时候我们习惯利用led作为标志信号,通过小灯来估计程序的运行过程, 在FPGA这我也同样利用了led,在仿真后很明显看到其波形,并根据led去推测程序的执行过程。在实际操作过程中起到了很重要的作用。

看过5110的资料不难写出驱动的程序来。

在编写的过程中遇到的问题:
1.        写完程序后出现警告,大体意思就是说输出和输入的CLK,RST没有关系,经检查若提示输出与时钟信号无关或者某个量一个是VCC或者GND可能是哪里有逻辑错误,一些程序从未执行。   还好会一点仿真,仿真也很好写,直接模拟时钟和复位信号就行了,波形图里就能看到程序的执行效果了。我在写完第一遍程序后没有对仿顺序控制变量i进行赋初值,所以程序一直未执行。


修改过后程序仿真如图:


2.        驱动电路写好后想要屏幕可以显示字符了,但是都是一样的字符,想要显示自己指定的图片该怎么办呢,经过查阅资料得知可以利用Quartus配置ROM:

ROM与程序的结合很简单,给地址读数据就行了,但是怎么配置里面的数据呢?我们知道在51编程的时候可以建个数组,可以在Verilog里数组是不存在的。在设置ROM的时候有个加载文件的选项:

我们需要一个mif格式的数据文件,mif文件的生成网上有好多方法,选择一个即可。

3.        之前对于利用verilog写循环代码真的是一头雾水,现在明白了,利用if else可以桥面的实现循环功能。核心代码:
if(spi_done)
If((y == 3'd5) & (x == 7’d83))            
begin rspi_start <= 1'b0; y <= 3'd0; x <= 7'd0; end //初始化          
else if(x == 7'd83)begin rspi_start <= 1'b0; y <= y + 1'b1;x <= 7'd0;end
else begin rspi_start <= 1'b0; x <= x + 1'b1; end
         else  begin spi_data_temp <= {2'b01,rom_data} ; rspi_start <= 1'b1; end
//若此处安c语言的思想,则直接写if(y == 3’d6)或者if(y == 3’d5)则会出现屏幕数据滚动的现象,因为这是并行执行的,这就是verilog 与C语言的区别!!!(个人理解)

附:

RTL viewer



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-3-9 00:09:44 | 显示全部楼层
楼主厉害,能否把代码发上来共享下

出0入0汤圆

发表于 2014-3-9 00:35:14 | 显示全部楼层
不错不错

出0入0汤圆

 楼主| 发表于 2014-3-9 09:27:36 | 显示全部楼层
guer 发表于 2014-3-9 00:09
楼主厉害,能否把代码发上来共享下

你留个邮箱,我回头整理整理发给你

出0入0汤圆

发表于 2014-3-9 21:46:51 | 显示全部楼层
顶楼主,楼主整理好了也发我一份学习学习吧,多谢哦!
邮箱:zylw516565@163.com

出0入0汤圆

发表于 2014-3-10 10:08:01 | 显示全部楼层
楼主厉害

出0入0汤圆

发表于 2014-3-10 10:08:18 | 显示全部楼层
楼主厉害

出0入0汤圆

发表于 2014-3-10 22:34:23 | 显示全部楼层
厉害啊,开源吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表