77范文网 - 专业文章范例文档资料分享平台

基于FPGA的LCD控制器设计修改版m - 图文(8)

来源:网络收集 时间:2019-04-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于FPGA的LCD控制器设计

图5.2 图片显示初始化示意图

5.1.2 时钟模块的设计

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

时钟电路的设计:

由于FPGA开发板上自带的晶振频率为50MHZ,而所需要的时钟频率则需要小于13.9KHZ,因此需要一个分频器对其进行分频。

这里采用简单的计数器对其进行分频,计数器上限经过计算设为4000. 经过分频后的时钟信号频率为12.5KHZ,满足实验需要。

在分频之后由于时钟信号需要同时控制LCD模块以及FPGA的模块,因此需要编写一个程序,使得两者之间同步。

最终的时钟控制模块如下:

图5.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

36

吉林工程技术师范学院毕业论文

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);

5.1.3 字符显示前初始化模块的设计 1、初始化部分的状态机设计 根据字符模块初始化的流程图:

图5.4 LCD初始化流程图

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

when IDLE=> --空闲状态

37

基于FPGA的LCD控制器设计

if flag ='0' then state <= CLEAR; flag<='1'; else

state<=IDLE; end if;

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

if div_counter2

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

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

if div_counter2

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

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

when SWITCHMODE=> --显示状态开

38

吉林工程技术师范学院毕业论文

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;

?

游标和显示控制(对应状态机状态为SHIFT)选择AC=AC+1,因此对应DB7~DB0

数据为00010100,RS,RW为0;

?

功能设定(对应状态机状态为SETFUNCTION)选择8为数据线接口,以及基本指

令集动作,因此对应DB7~DB0数据为00110000,RS,RW为0;

?

DDRAM(对应状态机状态为SETDDRAM)地址的设定则根据需要设定,对应DB7~DB0

39

基于FPGA的LCD控制器设计

数据为10000000~10011111之间,RS为1,RW为0;

另外,根据模块引脚说明,FPGA还需要同时控制其他几个引脚。其中,为了选择并行的数据发送模式,PSB引脚应为H。RET引脚则由FPGA控制在经过一段时间的L复位后跳为H。

初始数据的赋值: psb<='1';

rs<='1' when state = WRITERAM or state = READRAM else '0'; -- 当状态为读写RAM时,RS为1

rw<='0' when state = CLEAR or state = RETURNCURSOR or state = SETMODE or state = SWITCHMODE or state = SHIFT or state = SETFUNCTION

or state = SETCGRAM or state = SETDDRAM or state = WRITERAM else '1'; --当状态为如上时,RW为0 data<=\

\ \

\when state = SWITCHMODE else

\

\SETFUNCTION else

\??

5.1.4 图片显示前初始化模块的设计 1、图片显示初始化的状态机设计

图片显示时需要用到扩充指令集。在基本指令集设置的时候需要将SETFUNCTION,功能设计,中的RE设为1. 而在扩充指令集的功能设定中也要将RE设为1,同时在显示模块写入图

40

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于FPGA的LCD控制器设计修改版m - 图文(8)在线全文阅读。

基于FPGA的LCD控制器设计修改版m - 图文(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/581430.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: