有关FPGA的毕业论文(5)

2019-02-20 20:43

天津工业大学本科毕业论文 第四章 [XXXX...]

第四章 系统软件设计

本章首先对该系统的各个模块的设计思路进行描述,并给出框图。首先介绍了初始化模块的设计,然后介绍了分别针对字符以及图片的写入数据模块。之后介绍了本设计中最关键的显示控制模块,并列举了详细的设计方法。最后给出系统设计的整体Block Diagram。

4.1 初始化模块设计 4.1.1 LCD模块初始化设计

对12864-12模块的初始化采用状态机的方式,通过资料中给出的12864-12模块的说明,选择所需要的初始化命令,结合特定的时钟频率,对LCD进行初始化。最终使屏幕清屏,显示区对应RAM复位,LCD的功能则设置为所需要的功能。

其中,字符显示模块的初始化流程图如图4-1所示:

图4-1字符初始化流程图

其中直至写数据这一步骤之前都为起始的初始化动作。与字符显示不同,图

天津工业大学本科毕业论文 第四章 [XXXX...]

片的现实需要使用特殊指令集中的指令,因此需要在功能设定时做出改动。而同时,在对GDRAM的地址以及内容进行操作时,必须保持绘图显示的关闭状态,因此在初始化时,需要将绘图显示关闭。但是由于写数据这一指令属于常规指令集,因此在设置完GDRAM地址后,需要重新使用功能设定,将指令集的使用改回常规指令集。当数据全部写入完毕,则可以通过再次使用特殊指令集,开启图像显示,将GDRAM中的数据显示在屏幕上。

图片显示模块的初始化流程图如图4-2所示:

图4-2 图片显示初始化流程图

天津工业大学本科毕业论文 第四章 [XXXX...]

4.1.2 时钟模块初始化设计

由LCD初始化的流程图可得大部分指令的执行时间为72us,而清除显示和地址归位则需要4.6ms,为72us的64倍左右,因此需要选择一个合适的时钟来作为ENABLE信号的输入。

时钟电路的设计:

由于FPGA开发板上自带的晶振频率为50MHZ,而所需要的时钟频率则需要小于13.9KHZ,因此需要一个分频器对其进行分频。这里采用简单的计数器对其进行分频,计数器上限经过计算设为4000.经过分频后的时钟信号频率为12.5KHZ,满足实验需要。在分频之后由于时钟信号需要同时控制LCD模块以及FPGA的模块,因此需要编写一个程序,使得两者之间同步。

最终的时钟控制模块如图4-3所示:

图4-3 时钟模块

其中CLOCK_LOGIC模块的设计通过几个触发器来实现,部分程序如下: component DFF port( d : in std_logic; clk: in std_logic; q : out std_logic); end component;

signal sig1,sig2,sig3 : std_logic; begin

sig1<= not sig2; sig3<= not clock; out_clk<= sig2;

mydff1 : DFF port map (d=>sig1,clk=>clock, q=>sig2); mydff2 : DFF port map (d=>sig2,clk=>sig3, q=>enable);

天津工业大学本科毕业论文 第四章 [XXXX...]

4.1.3 字符显示前初始化模块的设计

1、初始化部分的状态机设计

根据字符模块初始化的流程图如图4-4所示:

图4-4 LCD初始化流程图

因此,此部分的状态机设计如下: ?

when IDLE=> --空闲状态 if flag ='0' then state <= CLEAR; flag<='1'; else state<=IDLE; end if;

when CLEAR=> --清屏状态,使LCD屏幕上显示全白 if div_counter2

else

div_counter2 <=0;

天津工业大学本科毕业论文 第四章 [XXXX...]

state<=RETURNCURSOR; end if;

when RETURNCURSOR=> --地址归位,使DDRAM地址复位 if div_counter2

div_counter2 <=0; state<=SETMODE end if;

when SETMODE=> --点设置,选择整体画面的移位方式 state<=SWITCHMODE;

when SWITCHMODE=> --显示状态开 state<=SHIFT;

when SHIFT=> --控制游标的移动和显示移位 state<=SETFUNCTION;

when SETFUNCTION=> --功能设置 state<=SETDDRAM1;

when SETDDRAM1=> --设置DDRAM地址 state<=WRITERAM; ?

其中,由于时钟信号的周期约为80us,而CLEAR清屏和RETURNCURSOR点设定这两个操作需要4.6ms的操作时间,因此在这两个状态中加入了计数器用以延迟,延迟时间为时钟周期的64倍,约为5.12ms.这样设计可以最大化地提高LCD的响应速度。

2、字符显示的数据选择

? 清除显示(对应状态机状态为CLEAR)对应的数据接口的数据(DB7~DB0)

为00000001,RS,RW为0;

? 地址归位(对应状态机状态为RETURNCURSOR)对应(DB7~DB0)的数据为

00000010,RS,RW为0;

? 点设定(对应状态机状态为SETMODE)选择整体画面不移位,DDRAM地

址+1,因此对应DB7~DB0数据为00000110,RS,RW为0;

? 显示状态开(对应状态机状态为SWITHMODE),光标显示关,字符不反白,

因此对应DB7~DB0数据为00001100,RS,RW为0;


有关FPGA的毕业论文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:单因变量方差分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: