收藏 分销(赏)

基于FPGA的-LCD1602显示控制器设计.doc

上传人:a199****6536 文档编号:2469054 上传时间:2024-05-30 格式:DOC 页数:24 大小:540.54KB
下载 相关 举报
基于FPGA的-LCD1602显示控制器设计.doc_第1页
第1页 / 共24页
基于FPGA的-LCD1602显示控制器设计.doc_第2页
第2页 / 共24页
基于FPGA的-LCD1602显示控制器设计.doc_第3页
第3页 / 共24页
基于FPGA的-LCD1602显示控制器设计.doc_第4页
第4页 / 共24页
基于FPGA的-LCD1602显示控制器设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、(完整word)基于FPGA的 LCD1602显示控制器设计唐 山 学 院 EDA技术 课 程 设 计 题 目 LCD1602显示控制器设计 系 (部) 信息工程系 班 级 11电本3班 姓 名 刘亮 学 号 4110218214 指导教师 郭耀华 田丽欣 柳延领 2014 年6 月 30 日至 7月 4日 共 1 周2014年 7月 4日课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)硬件调试设计说明书总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日目录1 引言11.1 EDA技术的介绍11。2

2、 EDA技术的发展22 VHDL/Quartus II简介42.1 VHDL语言介绍42。2 界面介绍53 模块设计63。1 LCD1602液晶模块63.2 矩阵键盘模块93。3 设计思路104 系统设计方案一114.1 矩阵键盘模块设计114。2 LCD1602液晶显示模块设计145 系统设计方案二175.1拨码开关控制的LCD1602显示模块175。2拨码开关控制的LCD1602显示模块程序175。3拨码开关控制的LCD1602显示模块仿真图206 设计总结21参考文献221 引言1.1 EDA技术的介绍在电子设计自动化(英语:Electronic design automation,缩写

3、:EDA)出现之前,设计人员必须手工完成集成电路的设计、布线等工作,这是因为当时所谓集成电路的复杂程度远不及现在.工业界开始使用几何学方法来制造用于电路光绘(photoplotter)的胶带.到了1970年代中期,开发人员尝试将整个设计过程自动化,而不仅仅满足于自动完成掩膜草图。第一个电路布线、布局工具研发成功.设计自动化会议(Design Automation Conference)在这一时期被创立,旨在促进电子设计自动化的发展.电子设计自动化发展的下一个重要阶段以卡弗尔米德(Carver Mead)和琳康维于1980年发表的论文超大规模集成电路系统导论(Introduction to VL

4、SI Systems)为标志。这一篇具有重大意义的论文提出了通过编程语言来进行芯片设计的新思想.如果这一想法得到实现,芯片设计的复杂程度可以得到显著提升.这主要得益于用来进行集成电路逻辑仿真、功能验证的工具的性能得到相当的改善。随着计算机仿真技术的发展,设计项目可以在构建实际硬件电路之前进行仿真,芯片布线布局对人工设计的要求降低,而且软件错误率不断降低。直至今日,尽管所用的语言和工具仍然不断在发展,但是通过编程语言来设计、验证电路预期行为,利用工具软件综合得到低抽象级物理设计的这种途径,仍然是数字集成电路设计的基础。从1981年开始,电子设计自动化逐渐开始商业化。1984年的设计自动化会议(D

5、esign Automation Conference)上还举办了第一个以电子设计自动化为主题的销售展览.Gateway设计自动化在1986年推出了一种硬件描述语言Verilog,这种语言在现在是最流行的高级抽象设计语言.1987年,在美国国防部的资助下,另一种硬件描述语言VHDL被创造出来。现代的电子设计自动化工具可以识别、读取不同类型的硬件描述。根据这些语言规范产生的各种仿真系统迅速被推出,使得设计人员可对设计的芯片进行直接仿真.后来,技术的发展更侧重于逻辑综合.目前的数字集成电路的设计都比较模块化(参见集成电路设计、设计收敛(Design closure)和设计流(Design flow

6、 (EDA))。半导体器件制造工艺需要标准化的设计描述,高抽象级的描述将被编译为信息单元(cell)的形式。设计人员在进行逻辑设计时无需考虑信息单元的具体硬件工艺。利用特定的集成电路制造工艺来实现硬件电路,信息单元就会实施预定义的逻辑或其他电子功能。半导体硬件厂商大多会为它们制造的元件提供“元件库”,并提供相应的标准化仿真模型。相比数字的电子设计自动化工具,模拟系统的电子设计自动化工具大多并非模块化的,这是因为模拟电路的功能更加复杂,而且不同部分的相互影响较强,而且作用规律复杂,电子元件大多没有那么理想。Verilog AMS就是一种用于模拟电子设计的硬件描述语言。此外,设计人员可以使用硬件验

7、证语言来完成项目的验证工作目前最新的发展趋势是将集描述语言、验证语言集成为一体,典型的例子有SystemVerilog。随着集成电路规模的扩大、半导体技术的发展,电子设计自动化的重要性急剧增加。这些工具的使用者包括半导体器件制造中心的硬件技术人员,他们的工作是操作半导体器件制造设备并管理整个工作车间。一些以设计为主要业务的公司,也会使用电子设计自动化软件来评估制造部门是否能够适应新的设计任务。电子设计自动化工具还被用来将设计的功能导入到类似现场可编程逻辑门阵列的半定制可编程逻辑器件,或者生产全定制的专用集成电路。1。2 EDA技术的发展从20世纪70年代,人们就已经开始基于计算机开发出一些软件

8、工具帮助设计者完成电路系统的设计任务,以替代传统的手工设计的方法,随着计算机软件和硬件技术水平的提高,EDA技术也不断进步,大致经历了下面三个发展阶段:(1)CAD阶段:20世纪70年代至80年代初,由于电子技术软件的功能较弱和个人计算机的普及度不高,人们主要借助于计算机对所设计的电路的性能进行模拟和预测;完成简单的版图绘制和PCB布局。这是EDA技术发展的早起阶段.(2)CAE阶段:20世纪80年代至90年代初,由于人们在设计方法学、设计工具集成优化方面取得了长足的进步,使得集成电路规模逐渐扩大,电子系统设计也逐步复杂,与CAD相比,又增加了电路功能设计和结构设计、工程设计、原理图输入、逻辑

9、仿真、电路分析、自动布局布线、PCB后分析等功能。由此EDA进入CAE阶段。(3)EDA阶段:20世纪90年代以来,由于微电子工艺的显著发展,促进了电子设计工具的不断改善.尤其是进入21世纪以后,EDA技术得到了更快的发展。使得EDA技术广泛应用于各个领域,IP核的SoC设计技术日趋成熟、SoPC技术步入实用化阶段、高速DSP实现成为了可能、复杂电子系统的设计和验证更加高效。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求.随着电子技术的发展和人们对电子设计开发的难度及周期要求,EDA技术必将广发应用于电子设

10、计的各个领域,因此本设计也采用了EDA的设计方法,其设计的优越性明显高于传统的设计方法。本次设计的LCD1602显示控制器,就是通过eda进行的一次实践。在日常生活中,我们对LCD1602显示器并不陌生.LCD1602显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。LCD1604晶液显示器作为输出器件有以下几个优点:1。显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。2.数字式接口。液晶显示器

11、都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。3.体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。4。功耗低.相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。这次设计主要任务是设计基于FPGA的LCD控制器,采用了带ST7920驱动的LCD1602液晶模块,并使用Altera公司的cyclone系列的EP2C5T144C8来作为核心的控制器。控制器部分采用VHDL语言编写,主体程序采用了状态机作为主要控制方式。该控制器分为字符显示模块和图片显示模块两个主要部分。在

12、字符的显示功能上采用显示控制模块与字符调用RAM相结合的方式,使使用者能方便地调用液晶自带的字库来显示字符;而图片显示模块则通过特殊的处理算法解决了图像显示缓冲区X地址不断移位以及上下半屏分开的问题,通过读取图片ROM来显示图片。最后实现使用FPGA在LCD上的任意位置显示任意5*7的英文字符,另外要能根据输入数据的变化同步变化LCD上显示的内容.同时要能将储存模块中的图片数据正常地显示在LCD上。2 VHDL/Quartus II简介2.1 VHDL语言介绍电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路。VHDL 硬件描述语言在电子设计自动化中扮演着重要的角

13、色,他是EDA 技术研究的重点之一.VHDL语言是一种用于电路设计的高级语言.它在80年代的后期出现.最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为ANSI/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为ANSI/IEEE的ANSI/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC(Very High Speed Integrated Cir

14、cuit)Hardware Descriptiong Language。翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC.硬件描述语言是EDA 技术的重要组成部分,VHDL 是作为电子设计主流硬件描述语言,VHDL(Very High Speed Integrated Circuit Hardware Description Language)于1983 年由美国国防部发起创建,由IEEE进一步发展并在1987年作为IEEE标准10760发

15、布。因此,VHDL成为硬件描述语言的业界标准之一。VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,使用VHDL语言,可以就系统的总体要求出发,自上而下地将设计内容细化,最后完成系统硬件的整体设计。一个完整的VHDL程序包括以下几个基本组成部分:实体(Entity),结构体(Architecture),程序包(Package),库(Library)。其中,实体是一个VHDL程序的基本单元,由实体说明和结构体两部分组成,实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为,系统数据的流程或系统组织结构形

16、式。程序包存放各设计模块能共享的数据类型,常数,子程序等。库用于存放已编译的实体,机构体,程序包及配置。VHDL 语言的编译环境有不同的版本,我们应用的是Altera 公司的Maxplus 软件,它的操作顺序如下:使用TEXTEDITOR 编写VHDL 程序使用COMPILER 编译VHDL 程序;使用WAVE2FORMEDITOR,SIMULAROT 仿真实验;使用TIMINGANALTZER 进行芯片的时序分析;用FLOORPLANEDITOR 锁定芯片管脚位置;使用PROGRAMMER 将编译好的VHDL 程序下载到芯片中.2.2 界面介绍软件打开界面如图2。1所示:图2.1 软件打开界

17、面3 模块设计本设计将基于VHDL语言,以EDA技术作为开发手段,采用复杂的可编程逻辑器件作为控制核心实现功能。采用VHDL语言描述。整体分为4*4键盘扫描模块和LCD1602的现实模块,最后利用元件例化语句生成顶层电路,用Max+PlusII软件进行仿真。具体要求如下:1.掌握LCD1602字符型液晶显示器工作和时序原理。2。使用VHDL语言通过FPGA实现对LCD1602字符型液晶显示器的控制。3。基本设计内容:在LCD1602字符型液晶显示器上面显示个人信息,包括姓名和学号。4.进阶设计内容:在LCD1602字符型液晶显示器上面显示动态字符,通过按键输入相应的数字和字符.3。1 LCD1

18、602液晶模块所谓1602是指显示的内容为162,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如表3。1所示:表3.1 LCD1602管脚功能图LCD1602内置了DDRAM和CGRAM.DDRAM就是显示数据RAM,用来寄存待显示的字符代码.共80个字节,其地址和屏幕的对应关系如

19、表3。2:1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点表3。2 DDRAM地址与显示位置阵字符图形,如下表3.3所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字“A”.表3。3 CGROM地址所对应的字符关系表如何对DDRAM的内容和地址进行具体操作,LCD1602的指令集及其设置说明,共5条指令:1.清屏指令如表3。4:表3.4 清屏指令功能: 1 清除液晶显示器,即将DDRAM的内容

20、全部填入空白”的ASCII码20H; 光标归位,即将光标撤回液晶显示屏的左上方; 3 将地址计数器(AC)的值设为0。2.光标归位指令如表3.5:表3。5 光标归位功能:1 把光标撤回到显示器的左上方; 2 把地址计数器(AC)的值设置为0; 保持DDRAM的内容不变3。模式设置指令如表3.6:表3.6 模式设置指令功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。4. 设定DDRAM地址指令如表3。7:表3。7 设定DDRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。(注意这里送地址的时候应该是0x80+Address,这也是前面说到写地址命令的时候

21、要加上0x80的原因) 5.数据写入DDRAM或CGRAM指令如表3。8表3.8 数据写入DDRAM或CGRAM指令功能:1 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符; kbrow=”0001;sta=00”; when ”01=kbrow=”0010”;sta=01; when 10”=kbrow=0100”;stakbrow=1000”;sta=11”; when others=kbrow case kbcol is when 0001=seg7=1111001;dat=00011;-3when 0010”=seg7seg7=”0110000;dat=”00001”;-1w

22、hen ”1000=seg7=”1111110;dat=00000”;-0when others=seg7=”0000000”;dat case kbcol is when 0001=seg7=”1110000”;datseg7=1011111”;dat=”00110”;-6when 0100=seg7=1011011”;datseg7seg7=”0000000;dat=”11111”; end case; when 10”= case kbcol is when ”0001”=seg7=”0011111;datseg7=1110111”;datseg7=”1111011”;datseg7=”

23、0000000”;dat=11111; end case; when 11”= case kbcol is when ”0001=seg7=”1000111;dat=”01111;-fwhen ”0010”=seg7=”1001111”;dat=”01110”;ewhen ”0100=seg7=”0111101;datseg7seg7=0000000”;dat=11111; end case; when others=seg7=”0000000; end case; end if; end process;fn=not(dat(0)and dat(1)and dat(2)and dat(3)a

24、nd dat(4));-产生按键标志位,用于存储按键信息 process(fn) begin if fnevent and fn=1 then-按键信息存储 seg7_out=seg7; end if; end process;end one;矩阵键盘模块仿真图: 图4.2 矩阵键盘仿真图4.2 LCD1602液晶显示模块设计本文所设计的LCD1602液晶显示模块设计的电路符号如图4。3所示。其中,clk为时钟信号输入端(频率可为1 024Hz);reset为复位控制端;addr为地址信号输入端;det为数据信号输入端;LCD_RS为寄存器选着信号;LCD_RW为读写控制信号;LCD_EN为液

25、晶时钟控制信号;LCD_Data为LCD1602显示信号输出端。 图4.3 LCD1602液晶显示模块LCD1602液晶显示模块程序:library IEEE;use IEEE。STD_LOGIC_1164.ALL;use IEEE。STD_LOGIC_ARITH.ALL;use IEEE。STD_LOGIC_UNSIGNED.ALL;entity keyboardlcd is Port ( CLK : in std_logic; 状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间 Reset : in std_logic; addr: in std_logic_vecto

26、r(4 downto 0); det: in std_logic_vector(3 downto 0); LCD_RS : out std_logic; 寄存器选择信号 LCD_RW : out std_logic; 液晶读写信号 LCD_EN : out std_logic; -液晶时钟信号 LCD_Data : out std_logic_vector(7 downto 0)); 液晶数据信号end keyboardlcd;architecture Behavioral of keyboardlcd istype state is (set_dlnf,set_cursor,set_dcb,

27、set_cgram,write_cgram,set_ddram,write_LCD_Data);signal Current_State:state;type ram1 is array(0 to 15) of std_logic_vector(7 downto 0);constant cgram1 : ram1 :=(X”30,X31,X32”,x”33”,x34”,x”35,x”36,x37,x38,x39,x”41,x”42”,x43”,x”44”,x45,x46); signal CLK1 : std_logic;signal LCD_Clk : std_logic; beginLCD

28、_RW = 0 ; RW=0;写入设置LCD_EN = Clk ; 用1024Hz作为LCD的使能,也作为LCD的时钟LCD_Clk = Clk; -用1024Hz作为LCD的时钟process(LCD_Clk,Reset) -状态机控制显示 begin if Reset=1then Current_State=set_dlnf; - Reset就清屏,Reset接出用一个按钮作为复位按键即可,按下就为0复位。 LCD_RS=0; elsif rising_edge(LCD_Clk) then Current_State = Current_State ; LCD_RS LCD_Data=00

29、000001”; - /清除显示/ 清屏指令 Current_State=set_cursor; when set_cursor= LCD_Data=”00111000; -/设置8位格式,2行,5*7*/ Current_State=set_dcb; when set_dcb= LCD_Data LCD_Data=”00000110”; Current_State=write_cgram; when write_cgram= LCD_RS=1; LCD_Data if addr=”01111 then LCD_Data=10000000”+addr;-80H 显示数据, else LCD_D

30、ata=”11000000+addr10000;-C0H end if; Current_State LCD_Data null; end case; end if;end process;end Behavioral;LCD1602液晶显示模块仿真图图4.4 液晶显示模块仿真图5 系统设计方案二5。1拨码开关控制的LCD1602显示模块由拨码开关取代矩阵键盘控制LCD1602的显示,元器件的封装(如图5),其中,clk为时钟信号输入端(频率可为1024Hz);reset为复位控制端;addr为地址信号输入端;det为数据信号输入端;LCD_RS为寄存器选着信号;LCD_RW为读写控制信号;L

31、CD_EN为液晶时钟控制信号;LCD_Data为LCD1602显示信号输出端。 图5.1 元器件封装5。2拨码开关控制的LCD1602显示模块程序library IEEE;use IEEE.STD_LOGIC_1164。ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE。STD_LOGIC_UNSIGNED.ALL;entity LCD is Port ( CLK : in std_logic; -状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间 Reset : in std_logic; fn : in std_logic; addr:

32、in std_logic_vector(4 downto 0); det: in std_logic_vector(3 downto 0); LCD_RS : out std_logic; -寄存器选择信号 LCD_RW : out std_logic; -液晶读写信号 LCD_EN : out std_logic; -液晶时钟信号 LCD_Data : out std_logic_vector(7 downto 0)); -液晶数据信号end LCD;architecture Behavioral of LCD istype state is (set_dlnf,set_cursor,set_dcb,set_cgram,write_cgram,set_ddram,write_LCD_Data);signal Current_State:state;type ram1 is array(0 to 31) of std_logic_vector(7 downto 0);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服