qjfun

FPGA的LCD显示菜单

0
阅读(2637)

硬件结构:FPGA (Altera EP4CE10)+字库芯片(GT21)+LCD显示芯片(st7565,128X32)

输入端口:按键(4个)+ SPI接口(与DSP通信)

LE资源:总共10000 逻辑单元(LE),其他功能模块占去4500 LE,剩余皆用于LCD显示

LCD基本驱动参考《Verilog_HDL_那些事儿》,较为详细,可读性好。


在此基础之上,需要实现一个伺服驱动器的三级菜单,

显示内容包括:I P 地址,子网掩码,网关,MAC地址,运行状态,运行时间,错误警告代码等;

显示特性:当显示内容较长时动态显示,可对参数进行修改,并发送给DSP


以11X12点阵字符显示单元,将128X32共分为20个字符,上下两行,每行10个字符

对驱动进行修改可定位显示字符(第1行第2个、第2行第3个...

将需显示字符编码初始化放入RAM,

基本驱动流程:RAM地址->汉子编码(GB2312)->计算字符芯片地址->读取点阵->发送显示;


刚开始没有没有对整个菜单进行模块划分,将菜单以case切换:

case(MenuID)

10'd0:    显示Menu0

10'd1:    显示Menu1

...

default:    显示Default_Menu;

endcase

这个是以前写的仅显示菜单栏程序,并未考虑修改,存储等等。。。

同时耗费3500LEs

现在需要添加更多功能,发现可扩展性几乎为ZERO

怪我当时急于求成,恶果啊

近期进行了修改,虽然在后续的学习中明白,尽可能将大结构化解成多个小的状态机,

但是考虑一天之后发现仍无法脱离整个大case结构

今天先介绍基本情况,后续慢慢详细介绍

各位有什么看法尽可提出~非常欢迎~


PS:对于FPGA驱动显示LCD,是不是用NIOS更普遍,更方便?


你填写的信息有误,请根据红色文字检查一下!怎么回事,发不了