基于VHDL的LCD控制器的设计与实现
VHDL语言按键去抖动电路的设计

--状态机复位,dout输出信 状态机复位, 状态机复位 输出信 号复位。 号复位。
--按键按下 按键按下
--按键按下 按键按下
--按键释放 按键释放
仿真结果
S0
S1
S0
S0
S1
S2
S2
S0
维持3个周期的低电平时 变成低电平, 当din维持 个周期的低电平时,dout变成低电平,表示有 维持 个周期的低电平时, 变成低电平 按键按下。 按键按下。
c lk res et key 1 key 2 key 3 key 4
ins t
led1 led2 led3 led4
clk:时钟,50MHz; :时钟, ; reset:复位信号; :复位信号; key1, key2, key3, key4:按键信号 : 输入; 输入; 输出信号: 输出信号: led1, led2, led3, led4:发光二极管 : 信号输出。 信号输出。
--key2按下 按下
--key3按下 按下
--key4按下 按下
--没有键被按下 没有键被按下
仿真结果
clk reset key 3
INPUT VCC
dout
din inst9 debounce clk reset dout
该设计包含分频模块、 该设计包含分频模块、去抖 动模块和按键扫描模块组成。 动模块和按键扫描模块组成。
key 4
INPUT VCC
din inst10
按键扫描程序
--key1按下 按下
50MHz
clk
INPUT VCC
Parameter Value Type n 250000 Signed Integer
f div 200hz clkin clkout
实验三-VHDL时序逻辑电路设计

实验三 VHDL 时序逻辑电路设计一、实验目的1.熟悉用VHDL语言设计时序逻辑电路的方法2.熟悉用Quartus文本输入法进行电路设计二、实验所用仪器元件及用途1.计算机:装有Quartus软件,为VHDL语言提供操作场所。
2.直流稳压电源:通过USB接口实现,为实验开发板提供稳定电源。
3.数字系统与逻辑设计实验开发板:使试验结果下载到开发板上,实现整个实验的最终结果。
三、实验内容1.用VHDL语言设计实现一个8421码十进制计数器。
(1)实验内容及要求:在Quartus平台上设计程序和仿真题目要求,并下载到实验板上验证试验结果。
(2)试验结果:VHDL代码和仿真结果。
2.用VHDL语言设计实现一个分频系数为8,分频输出信号占空比为50%的分频器。
(1)实验内容及要求:在Quartus平台上设计程序和仿真题目要求。
(2)试验结果:VHDL代码和仿真结果。
3.用VHDL语言设计实现一个控制8个发光二极管亮灭的电路。
(1)实验内容及要求:在Quartus平台上设计程序和仿真题目要求,并下载到实验板上验证试验结果。
a.单点移动模式:一个点在8个发光二极管上来回的亮b.幕布式:从中间两个点,同时向两边依次点亮直至全亮,然后再向中间点灭,依次往复c.通过拨码开关或按键控制两种模式的转换(2)试验结果:VHDL代码和仿真结果。
四、实验设计思路及过程1.8421码十进制计数器状态转移表左图为8421码十进制计数器的状态转移表,abcd为初状态,ABCD为下一状态,每当有“1”出现时,相应的管脚就亮灯,从而从0000到1001的灯依次出现。
VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count12 ISPORT(clk,clear:IN STD_LOGIC;q :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END count12;ARCHITECTURE a OF count12 ISSIGNAL q_temp:ATD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGINIF(clk'event and clk='1') THENIF clear='0' THENq_temp<="0000";ELSIF q_temp="1011"THENq_temp<="0000";ELSEq_temp<=q_temp+1;END IF;END IF;END PROCESS;q<=q_temp;END a;2.分频系数为8,输出占空比为50%的分频器的设计左图为八分频器(占空比50%)的状态转移图,其中abc为原状态,ABC为下一状态。
基于Nios_II的LCD控制器IP核设计

1 概述 (2)1.1 课题概述 (2)1.2 LCD控制器软核设计 (2)2 相关技术介绍 (3)2.1 LCD显示技术 (3)2.2 SOPC技术 (4)2.2.1基于FPGA嵌入IP硬核的SoPC系统 (4)2.2.2基于FPGA嵌入IP软核的SoPC系统 (4)2.3 SOPC技术的特点 (5)2.4 Nios II处理器 (5)2.5 Avalon总线简介 (7)2.7 Quartus Ⅱ和SoPC Builder简介 (7)2.7.1 Altera Quartus Ⅱ简介 (8)2.7.2 SoPC Builder简介 (9)3 系统实现 (11)3.1 LCD控制器IP核设计 (11)3.1.1设计思路 (11)3.1.2 S3C2410介绍 (12)3.1.3 LCD控制器的软核设计 (12)3.2 LCD控制器组成 (12)3.2.1 LCD控制器的相关参数、变量: (12)3.2.2像素存储与显示屏位置的映射关系: (13)3.2.3 5:6:5显示格式 (14)3.3 FIFO的定制 (16)3.4 LCD时序发生 (18)3.5 LCD控制器的主要寄存器设置 (20)3.6参数化的实现途径: (21)3.7在SOPC Builder中的Nios系统生成 (22)4. 总结 (25)1 概述1.1 课题概述本文所要进行描述的设计是运用VHDL语言和Verilog HDL语言,通过分析LCD 控制器的硬件结构和控制时序,使用SoPC技术,把Nios CPU和LCD控制器放在同一个FPGA中。
并通过对相应变量的参数化,实现有一定通用性的LCD IP 核设计。
目的是解决在利用Quartus Ⅱ进行Nios系统开发时,由于内部没有可用LCD的IP,影响产品开发的问题。
1.2 LCD控制器软核设计所要设计的LCD控制器是要求符合Avalon总线规范的。
FPGA中集合了Nios Ⅱ CPU、DMA和LCD控制器模块,以及三态桥(连接Flash)、SDRAM控制器。
低成本LCD驱动控制的ASIC实现方案

低威本 L CD驱动接黼的 AS C实现 囊 I
深圳 集成 电路设计产 业化基地 管理 中心 刘奇
L D驱动控制是显示驱动信号 , C 进而驱动 L D C
显示 器 的核 心部件 。 在驱 动 L D设 计 的过程 中首要 C 的是配 置 L D控制 器 ,直 接 控 制影 响 L D产 品 的 C C
电源 、 和空脚 。 地
●4 通用输入 口, 可连接拨轮式 电子编码开关
●1 / 2或 1 L D驱 动偏 压 可选 / C 3 ● L D工作 电压 可 调 C ● 串行 接 口 ( L S B D O) C K,T , I ● 振荡 方 式 :内置 RC振荡 ,典 型振 荡频 率为
1 8KHz 2
3 .各 寄存器存储 、 控制及数据传送情况
() 1 显示 寄存 器
’ 内部 功 能原理 如 图 1 。
该寄存器存储通过 串行接 口从外部器件传送来
h.・ . ^- ^ ,ti- n ̄n /.i . n , ^^ ^ -t r - m r
维普资讯
b :测试模 式 设 定 ; 3 0为普 通模 式 , 1为测 试模 式 b :地 址增 加 模 式 设定 ; 地址 自动 增 加 , 固 2 0为 1为
定 地址 。
bb 数 据读 写模 式设定 ;0写 数 据到 显示 寄 存 器 , lO: 0
O写数据 到 P 1 WM 控 制 寄 存 器 ,O读 按 键 数 据 , 1 1 1
的数据 , 地址 分配 如 表 1 。
表1
CO M 0 C M l CO M 2 O C M 3 CO M O CO M l COM 2 C M 3 O 0
SG0 SG l
vhdl设计初步(新模版)31716【课件】

数据类型。
PORT (端口名:端口模式 数据类型; {端口名:端口模式 数据类型} );
英文字母+数字 数据流动方向 主要有“位”和“位矢量”两类
常用端口模式:
方向定义 IN
OUT INOUT BUFFER
含义 输入,定义的通道为单向只读模式
1 多路选择器的VHDL描述
例1.1 2选1多路选择器的结构体描述2 (原理图描述)
……
ARCHITECTURE one OF mux21 IS SIGNAL d,e : BIT; --d,e 为内部信号
BEGIN d <= a AND (NOT S) ; e <= b AND s ; y <= d OR e ;
BEGIN [功能描述语句];
END [ARCHITECTURE] 结构体名;
西安电子科技大学国家级精品课程数字电路与系统设计
ARCHITECTURE 结构体名 OF 实体名 IS [定义语句] 内部信号,常数,数据类型,函数等的定义;
BEGIN [功能描述语句];
END [ARCHITECTURE] 结构体名;
Ⅰ.结构体的行为描述(behavioral)
结构体的行为描述表示输入与输出间转换的关系, 是对设计实体按算法的路径来描述。行为描述在 EDA 工程中称为高层次描述或高级描述。
看例题!
例:如图所示的半加器,其功
能真值表已经给出,写出它的 行为描述。
a
b
0
0
0
1
1
0
1
1
c
s
0
0
0
vhdl语言

VHDL语言简介VHDL(VHSIC Hardware Description Language)即可高速集成电路硬件描述语言,是一种用于描述数字系统和电路的硬件描述语言。
它在1981年由美国国防部的高速集成电路联合委员会(VHSIC)开发,用于设计大规模集成电路。
VHDL是一种面向对象的语言,可以用于描述各种数字系统,从简单的逻辑门到复杂的处理器。
它提供了丰富的语法和语义,使得设计人员可以准确地描述他们的电路和系统。
VHDL的优势VHDL作为一种硬件描述语言,在数字系统设计中具有许多优势。
1.可重用性:VHDL允许设计人员创建可重用的模块和子系统,这些模块和子系统可以在不同的项目中重复使用,提高了设计效率和可维护性。
2.仿真和验证:VHDL具有强大的仿真和验证能力,可以在设计之前对系统进行全面的仿真和验证。
这有助于检测和纠正潜在的问题,并确保系统在硬件实现之前达到预期的功能。
3.抽象级别:VHDL允许设计人员在不同的抽象级别上描述系统,从高级的行为级别到底层的结构级别。
这使得设计人员可以根据需要在不同的级别上工作,并且可以更容易地进行系统级别的优化。
4.灵活性和可扩展性:VHDL支持灵活的设计方法和工作流程,并允许设计人员在设计过程中进行迭代和修改。
它还可以与其他常用的设计工具和方法集成,以满足特定的需求。
VHDL语言的基本结构VHDL语言由模块、实体、架构以及信号和过程等基本元素组成。
模块(Module)模块是VHDL中描述数字系统的最基本单位。
一个模块可以包含多个实体和架构,并通过连接信号进行通信。
每个模块都有一个顶层实体和一个或多个架构。
实体(Entity)实体是描述模块的接口和行为的抽象。
它定义了输入输出端口,以及模块对外部环境的接口。
一个实体可以有一个或多个架构。
架构(Architecture)架构描述模块的具体行为和内部结构。
它定义了模块的内部信号和过程,以及对外部信号和过程的接口。
车载液晶显示系统设计毕业设计电子与计算机专业毕业论文
第1章概述1.1液晶概论1.1.1液晶发展史液晶最早是奥地利植物学家莱尼茨尔(F.Reinitzer)于1888年发现的,他在测定有机物的熔点时,发现某些有机物(胆甾醇的苯甲酸脂和醋酸脂)熔化后会经历一个不透明的呈白色浑浊液体状态,并发出多彩而美丽的珍珠光泽,只有继续加热到某一温度才会变成透明清亮的液体。
第二年,德国物理学家莱曼(O.Lehmann)使用他亲自设计,在当时作为最新式的附有加热装置的偏光显微镜对这些脂类化合物进行了观察。
他发现,这类白而浑浊的液体外观上虽然属于液体,但却显示出各向异性晶体特有的双折射性。
于是莱曼将其命名为“液态晶体”,这就是“液晶”名称的由来。
液晶是一种介于固体与液体之间,具有规则性分子排列的有机化合物,一般最常用的液晶型式为向列液晶,分子形状为细长棒形,长宽约1nm~10nm,在不同电流电场作用下,液晶分子会做规则旋转90度排列,产生透光度的差别,因此在电源ON/OFF下会产生明暗的区别,依此原理控制每个像素,便可构成所需图像。
液晶分子形状子构造 1963年,RCA公司的威利阿姆斯发现了用电刺激液晶时,其透光方式会改变。
5年后,同一公司的哈伊卢马以亚小组,发明了应用此性质的显示装置。
这就是液晶显示屏(Liquid Crystal Display)的开端。
而当初,液晶作为显示屏的材料来说,是很不稳定的。
因此作为商业利用,尚存在着问题。
然而,1973年,格雷教授(英国哈尔大学)发现了稳定的液晶材料(联苯系)。
1976年,由SHARP公司在世界上首次,将其应用于计算器(EL-8025)的显示屏中,此材料目前已成为LCD材料的基础。
1.1.2液晶显示原理极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来,若加上彩色滤光片,则可显示彩色影像。
在两片玻璃基板上装有配向膜,所以液晶会沿着沟槽配向,由于玻璃基板配向膜沟槽偏离90度,所以液晶分子成为扭转型,当玻璃基板没有加入电场时,光线透过偏光板液晶显示器(LCD/Liquid Crystal Display)的显像原理,是将液晶置于两片导电玻璃之间,靠两个电跟着液晶做90度扭转,通过下方偏光板,液晶面板显示白色(如下图左);当玻璃基板加入电场时,液晶分子产生配列变化,光线通过液晶分子空隙维持原方向,被下方偏光板遮蔽,光线被吸收无法透出,液晶面板显示黑色(如下图右)。
用VHDL语言设计延时电路
用VHDL语言设计延时电路
用VHDL语言设计延时电路时一般用计数器或计数器的级联来实现。
下面以一个实例来说明如何实现任意时间量的延时。
在5 MHz时钟CLK控制下对同步信号SYNC进行N延时(SYNC脉冲宽度为2 μs,脉冲重复频率为1 kHz;0μs≤N≤998 μs)。
要求每次在同步脉冲上升沿到来时开始延时,并在延时结束后产生宽度为10 μs的选通信号。
需要产生的延时时序如图2所示(延时量N=4.2μs)。
这里采用3个计数器和1个或门产生上述延时信号,如图3所示,模N计数器计延时量;模50计数器计选通信号的宽度;模N+50计数器用于产生使能信号。
用VHDL硬件描述语言进行硬件电路设计时,同一个进程中不能用2个时钟来触发,而时序图中又要求在同步脉冲SYNC的上升沿开始延时,为了解决这一问题,采用了模N+50计数器和1个或门。
当同步脉冲为高电平时,模N计数器和模N+50计数器开始计数,并置dly_en为高电平。
模N计数器满,置dly_enl为高电平同时产生选通信号。
当模N+50计数器计满即选通信号产生完之后置dly_en为低电平。
当下一个同步脉冲到来时重复以上过程。
这种设计电路的好处是当同步脉冲的宽度改变时对时序控制并无影响,因为在计数过程中只用了SYNC的上升沿,从延时开始到选通信号结束,在或门的作用下SYNC对计数器不起控制作用。
上述电路的VHDL程序如下:
该程序选择N=20,即延时量是4.2 μs,由于要使用时钟来判断SYNC的上升沿情况,因此,如果令N=0,产生的delay信号仍然会有1个时钟的固有延时,在计算延时量时应充分考虑到这一点,延时量=(N+1)×时钟周期。
VHDL硬件课程设计实验报告
硬件课程设计实验报告一、全加器设计1、实验目的(1)了解四位全加器的工作原理。
(2)掌握基本组合逻辑电路的FPGA实现。
(3)熟练应用Quartus II进行FPGA开发。
2、实验原理全加器是由两个加数X i和Y i以及低位来的进位C i-1作为输入,产生本位和S i以及向高位的进位C i的逻辑电路。
它不但要完成本位二进制码X i和Y i相加,而且还要考虑到低一位进位C i-1的逻辑。
对于输入为X i、Y i和C i-1,输出为S i和C i的情况,根据二进制加法法则可以得到全加器的真值表如下表所示:全加器真值表由真值表得到S i和C i的逻辑表达式经化简后为:这仅仅是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。
i3、实验内容本实验要完成的任务是设计一个四位二进制全加器。
具体的实验过程就是利用实验系统上的拨动开关模块的K1~K4作为一个加数X输入,K5~K8作为另一个加数Y输入,用LED模块的LED1~LED8来作为结果S输出,LED亮表示输出‘1’,LED灭表示输出‘0’。
实验箱中的拨动开关、LED与FPGA的接口电路,以及拨动开关、LED 与FPGA的管脚连接在以前的实验中都做了详细说明,这里不在赘述。
4、实验现象与结果以设计的参考示例为例,当设计文件加载到目标器件后,拨动相应的拨动开关,输入两个四位的加数,则在LED灯上显示这两个数值相加的结果的二进制数。
5、实验报告(1)出不同的加数,绘仿真波形,并作说明。
(2)在这个程序的基础上设计一个八位的全加器。
(3)在这个程序的基础上,用数码管来显示相乘结果的十进制值。
(4)将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
二、七段数码显示设计1、七段显示基本原理七段显示器,在许多产品或场合上经常可见。
其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、B、C、D、E、F。
VHDL-实验
计算机科学与技术学院实验报告(学年度第学期)课程名称EDA技术实验姓名学号专业计算机班级地点教师实验一:八位二进制补码一.实验目的1.熟悉Max+PlusII和GW48EDA开发系统的使用;2.掌握八位二进制补码的VHDL设计;3.元件例化语句的使用。
二.实验原理若原码为正,则补码等于原码;若原码为负,则补码为(2+原码)mod2。
三.八位二进制补码程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JACKAN ISPORT(rst:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(7 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY JACKAN;ARCHITECTURE HAIXIA OF JACKAN ISSIGNAL tmp:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINPROCESS(din,rst)BEGINIF rst='0' THENdout<=(OTHERS=>'0');ELSIF din(7) ='1' THENFOR i IN 0 TO 6 LOOPtmp(i)<=NOT din(i);END LOOP;dout(6 DOWNTO 0) <= tmp+1;dout(7) <= din(7);ELSEdout<= din;END IF;END PROCESS;END ARCHITECTURE HAIXIA;四.实验结果五.总结8位二进制补码:寄存器主要用来存储8位二进制数据。
高8位为符号位,不进行求反运算。
余下7位根据高8位的数据状态进行相应操作。
实验二.一位全减器的VHDL设计一. 实验目的1.熟悉Max+PlusII和GW48EDA开发系统的使用;2.掌握一位半减器的VHDL设计;3.掌握一位半减器构建一位全减器的方法;二.实验原理由两个半减器和一个或门构成一个全减器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第2期
2009年2月
工矿自动化
IndustryandMineAutomation
No.2
Feb.2009
收稿日期
:2008-10-29
作者简介:周 雷(1985-),男,中国矿业大学信号与信息处理
专业2006级硕士研究生,研究方向为EDA技术应用。E2
mail:
zhoul35@163.com
文章编号
:1671-251X(2009)02-0093-02
基于VHDL的LCD控制器的设计与实现
周 雷, 付慧生, 熊建伟
(中国矿业大学信电学院,江苏徐州 221008)
摘要:文章介绍了基于VHDL语言状态机的LCD控制器的设计方法,说明了字符型液晶显示器显示的
基本原理,给出了显示字符的方法及实现LCD控制器的部分VHDL语言程序。基于VHDL设计的
LCD
控制器具有很好的移植性,稍加改动就可以应用到不同场合。
关键词:LCD控制器;VHDL;字符显示
中图分类号:TP312 文献标识码
:B
参考文献
:
[1] 高丽珍.新型矿用本质安全型电源的设计与研究[J].
机械工程与自动化,2006(3):125~
127.
[2] 杨智敏,侯传教,刘 霞.单片式开关稳压器LM2576
-ADJ及其应用[J].移动电源与车辆,2004(1):
34~36.
[3] 张乃国.电源技术[M].北京:中国电力出版社,1998.
[4] 崔保春,王 聪,卢其威,等.
矿用本质安全开关电源的
研究[J].中国煤炭,2006(3):49~
51.
0
引言
传统的LCD控制器通常由单片机组成,具有集成电路复杂、移植性差等缺点。随着可编程逻辑器件的发展,以FPGA(现场可编程门阵列)为平台,采用硬件编程语言来实现LCD控制器,具有易于集成到片上系统、方便修改、适应不同液晶显示器等优点。本文设计的LCD控制器是一种基于FPGA的液晶显示控制器,它采用VHDL语言实现控制器的编程设计,这种设计方法稍加改动就可以应用于常见的LCD接口电路中[1]。1 CFAH1602B-TMC-JP型液晶显示器1.1 液晶显示器简介LCD是基于液晶电光效应的显示器件,利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线容易通过;不通电时,排列则变得混乱,阻止光线通过。字符型液晶模块是一种用点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16字、2行16字、2行20字等类型。本设计采用Crystalfontz公司的CFAH1602B-TMC-JP型液晶显示器件,它是2行16字的显示器件,可以显示192种(5×7)字符,32种(5×10)字符,可自编
8(5×7)或4(5×10
)
种字符。该显示器的工作电压
为5V,其引脚如图1所示。
图1 CFAH1602B-TMC-JP显示器的引脚图
1.2
字符显示方法
液晶显示的字符可以通过控制引脚的改变来选
择是外部数据输入还是取其内部储存的字符。
CFAH1602B-TMC-JP
型液晶显示器内部的字
符发生存储器(CGROM)已储存了192种不同的点
阵字符图形,这些字符包括英文字母、阿拉伯数字、
常用的符号等。每一个字符都有其固定的代码,比
如阿拉伯数字“1”的代码为00110001B(31H),要显
示数字“1”时可以直接从CGROM中读取,把数字
“1”显示在液晶屏上。
由于CFAH1602B-TMC-JP型液晶显示器
为16×2型显示,在显示字符时需要确定字符显示
的地址,即字符显示在哪行哪列。比如第二行
第一列的地址是40H,当要在该地址显示字符时
,
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
因为写入显示地址时要求最高位D7恒为高电平
,
所以实际写入的地址应为C0H。
FPGA为LCD提供时序以及数据的控制,LCD
可根据FPGA的控制信号读取自身存储的字符或
读取FPGA通过数据通道传送的数据信息并进行
显示。
2
软件设计
VHDL
语言是一种面向设计、多层次的标准化
硬件描述语言,是描述、验证和设计数字系统的重要
的标准语言之一,为设计者开辟了一种全新的数字
系统的设计途径[2]。利用VHDL编写的电路模块
代码可被重复利用,可简化设计者的设计工作,大大
缩短设计时间,提高工作效率。
本文设计的LCD控制器的软件模块主要包括
初始化模块、写数据模块等,都使用VHDL语言编
写。
2.1
初始化模块
液晶在上电过程中,开始必须进行初始化,否则
模块无法正常显示。初始化有2种方法:一是利用
内部复位电路进行初始化,二是利用软件进行初始
化。本文采用软件初始化方法。在整个初始化过程
中,数据都被送入指令寄存器中。所以,必须保证
LCD的引脚RS为低电平。笔者采用VHDL
语言
的状态机来实现液晶的初始化过程[3]。图2为初始
化程序流程图。
图2 初始化程序流程图
2.2
写数据模块
液晶初始化完成以后,便可以写入数据。写入
数据时,首先应该选择数据寄存器,其次是输入要写
数据的地址,最后再输入数据。由于数据是在
EN
的上升沿时刻输入,但是在EN下降沿时刻才执行
,
所以,输完地址以后要确定EN为下降沿以后,才能
继续输入数据,否则数据就会被冲掉。图3为数据
写入的工作时序。
写数据也采用状态机来实现,部分VHDL程序
如下
:
whenTshow0=>22写操作时序0
VIH-输入高电压;VIL-输入低电压;t
AS
-地址建立时间;
tAH-地址保持时间;PWEH-使能脉冲宽度;t
Ef
-使能上升/下降时间;
tEr-使能上升/下降时间;t
DSW
-数据建立时间;
tH-数据保持时间;t
cycE
-
使能周期时间
图3 写数据的工作时序图
lcdRS<=tempLcdRS;
lcdRW<=‘0’
;
next_stateT<=Tshow1;
whenTshow1=>22写操作时序1
lcdRS<=tempLcdRS;
lcdRW<=‘0’
;
lcdE<=‘1’
;
next_stateT<=Tshow2;
whenTshow2=>22写操作时序2
lcdRS<=tempLcdRS;
lcdRW<=‘0’
;
lcdE<=‘0’
;
next_stateT<=Tshow3;
whenTshow3=>22写操作时序3
lcdRS<=‘0’
;
lcdRW<=‘1’
;
lcdE<=‘0’
;
3
结语
本文设计的LCD控制器采用硬件描述语言
VHDL、以FPGA
为控制核心实现对字符点阵液晶
显示器的控制,具有简单、稳定、便于修改和移植、可
重用性好的特点。该控制器已经在ALTER公司的
DE2板上实现其显示功能,
效果较好。本设计为嵌
入式系统人机界面中的LCD控制驱动与接口设计
提供了一种可靠而实用的设计方案。
参考文献
:
[1] 罗苑棠.CPLD/FPGA
常用模块与综合系统设计实例
精讲[M].北京:电子工业出版社
,2007.
[2] 付慧生.复杂可编程逻辑器件与应用设计[M].徐州:
中国矿业大学出版社
,2003.
[3] 姜立东.VHDL语言程序设计及应用[M].北京:
北京
邮电大学出版社
,2001.
・49・
工矿自动化2009年2月