LCD1602显示控制器设计DOC_第1页
LCD1602显示控制器设计DOC_第2页
LCD1602显示控制器设计DOC_第3页
LCD1602显示控制器设计DOC_第4页
LCD1602显示控制器设计DOC_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA技术课程设计题目系(部)班级姓名学号指导教师LCD1602显示控制器设计2014 年 06月30日至07月06日共1周2014年07月02日课程设计说明书课程设计成绩评定表出勤情况出勤天数缺勤天数成 绩 评 定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)硬件调试设计说明书总成绩(100分)提问(答辩)问题情况综合 评 定指导教师签名:年月日171引言2 VHDL/ Quartusll 简介3系统设计3.1整体功能3.2各模块功能设计功能.模块引脚 程序仿真图.3.2.13.2.23.2.33.2.44系统调试及下载5设计总结12错误!未定义书签。141引言通过对L

2、CD1602LCD12864显示模块控制时序和指令集的对比分析,利用 Verilog HDL描述语言完成了多功能LCD显示控制模块的IP核设计,所设计的 LCD显示控制器具有很好的可移植性,只需通过端口的使能参数配置便可以驱动 LCD1602/LCD12864模块实现字符或图形的实时显示, 并且该多功能LCD控制器 的可行性也在 Cyclone n系列的EP2C5T144C8 FPG芯片上得到了很好的验证。 基于FPGA设计LCD显示控制器,关键在于采用硬件描述语言设计有限状态机 (FSM)来控制LCD模块的跳转,文献中就是使用 FSM实现了对LCD模块的显示控 制,但是它们都是针对一种类型L

3、CD模块的某种显示模式,不具有多模式的显示 控制能力。因此,多功能LCD显示控制器的有限状态机就需要设置更多的条件转 换,来实现多种控制模式。系统上电后,首先完成持续大约0.1 s(根据时钟频率配置)的自动复位,然后才根据模块的端口参数选择不同显示模式所对应的初 始化命令,在状态机中设置有初始化命令、起始行地址和屏显示数据3条转换路 径来适应LCD屏的工作状态,同时也在关键转换路径上设置有可以配置的延时循 环,这样既能方便LCD模块的工作调试,又能使 LCD模块一直工作在写屏模式 (RW=0对于LCD屏的显示数据存储可以完全采用 FPGA内嵌的ROM/RA单元实 现,如果使用双口 RAM存储器

4、读写独立)就能实现LCD模块的动态实时显示。2 VHDL/ QuartusII 简介VHDL 的英文全名是 Very-High-S peed In tegratedCircuit HardwareDescription Language,诞生于 1982 年。1987 年底,VHDL被 IEEE 和美国国 防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功 能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或

5、称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能 和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后, 其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDLS统设计的基本点。Quartus II 是Altera 公司的综合性PLD/FPGA开发软 件,支持原理图、VHDL VerilogHDL 以及 AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设 计输入到硬件配置的完整 PLD设计流程。Quartus II可以在XP、Linux以及U

6、nix 上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设 计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus IIEDA工具。此 相结合,可以方 SOPC开发,集支持Altera的IP核,包含了 LPM/MegaFunction宏功能模块库,使用户可以充 分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 外,Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 便地实现各种DSP应用系统;支持Altera的片上可编程系统( 系

7、统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平 台。3系统设计3.1整体功能使用VHDL语言通过FPGA实现对LCD1602?符型液晶显示器的控制。在LCD1602字符型液晶显示器上面显示个人信息,包括姓名和学号。在LCD1602?符型液晶显示器上面显示动态字符,通过按键输入相应的数字 和字符。3.2各模块功能设计321功能1、分频模块2、键盘模块3、消抖模块4、LCD模块应用时钟分频,满足其工作需求。输入字母和数字用来实现动态字符,进行动态显示。 消除抖动,使显示平稳进行。实现静态显示,显示个人信息。322模块引脚1、分频模块引脚如图所示r nirirnisirii-i

8、rii -i-i- -rimir m.! frpinelk IcOlk2、键盘模块引脚如图所示-:-1elk-,=n :-1:訂En讶.i irstI3、消抖模块引脚如图所示reset=创.i:-EL2L!=|-| 1| . IhllH* |-| i,l = lg . I .Igl,I 呂4、LCD模块引脚如图所示JI m iinii icii F :叨i5d_cikIT&:5ta7.A)li i-st3Lgll l| II JI Igll I I I IIbI , lhllB|l IIJII Ihllldl 323程序1、分频模块程序library IEEE;use lEEE.STD LOG

9、IC 1164.ALL;en tity fenpin isPort ( clk : in std_logic;lcd_clk:out std_logic);end fenpin;architecture bhv of fenpin isbeg inprocess(clk)-分频进程,CLK输入,CLK_Out输出,50MHZ输入,125Hz输出,8ms con sta nt m:i nteger:=500000;variable cout:i nteger range 0 to 50000000:=0; beg inif clkeve nt and clk=0 the n cout:=cout

10、+1;if coutvm/2 then lcd_clk=1;elsif coutm the n lcd_clkv=0;else cout:=0;end if;end if;end p rocess;end bhv;2、键盘模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_ un sig ned.all; en tity jia npan isport(clk:in std_logic;reset:i n std_logic;col:i n std_logic_vector(3 dow nto 0);row:out s

11、td_logic_vector(3 dow nto 0); key_code:out std_logic_vector(7 dow nto 0); end jia npan;architecture bhv of jia npan issig nal cnt: std_logic_vector(1 dow nto 0);sig nal key: std_logic;begi nkey = col(3) and col(2) and col(1) and col(0); p2: p rocess(clk)beginif clkeve nt and clk-1 the nif key = 1 th

12、enent = ent + 1;end if;end if;end p rocess;P3: p rocess(col, cn t,reset)beg inif reset=0 the nrow=1111;elsif ent = 00 thenrow key_code key_code key_code key_code key_code = 11111111;end case;elsif cnt = 01 thenrow whe n 1101=whe n 1011=key_code = 11101101;key_code = 11011101;key_code whe n 1110=whe

13、n 1101=whe n 1011=when 0111=key_code = 11101011;key_code = 11011011;key_code = 10111011;key_code = 01111011;when 0111key_code key_code = 11111111;end case;elsif ent = 10 thenrow key_code = 11111111;end case;elsif ent = 11 thenrow key_code whe n 1011=when 0111=key_code = 11010111;key_code = 10110111;

14、key_code key_code = 11111111;end case;end if;end p rocess; end architecture;3、消抖模块程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all; en tity xiaodou is port(clk:in std_logic;reset:i n std_logic;din:in std_logic_vector(7 dow nto 0); dout:out std_logic_vector(7 dow nto 0); end x

15、iaodou;architecture bhv of xiaodou is beg inp rocess(clk,reset,d in)variable cn t: in teger range 0 to 2;variable store:std_logic_vector(7 dow nto 0);variable d1,d2,d3:std_logic:=1; begi nif reset=0the ndoutstore:=d in;cn t:=c nt+1;whe n 1=if din=store the ncn t:=c nt+1;elsestore:=d in;cn t:=0;end i

16、f;whe n 2=if din=store the ndout data=00111000;-/*rs=0;state data=00001100; -/* rs=0;state data=00000001;rs=0;state data=00000110; -/* 位,10表示光标右移rs=0; state datav=10000000;rs rs=1;data=dout; end case;end if;end p rocess;end bhv;3.2.4仿真elkA0 dinAS doutK 2?A 1rtsetA 1eJV1.2551 1 11 1111iII i1i i1ii111

17、1!2宀 W MJ10.UC0 dataenkd okA IAlAonLmawmnMrwMOJLm jmmrLmmmnrLTLRmmRrrsAlAl4系统调试及下载程序编写完,仿真成功后,引脚设置对应好,在实验箱上连接好线,最后可 以进行下载了,然后就可以在实验箱上观察实验结果了。不仅可以巩固以前所学 通过这次设计, 进-特别是当每一个子模块这次EDA课程设计历时一周,学到很多很多的东西, 过的知识,而且学到了很多在书本上所没有学到过的知识。 步加深了对EDA勺了解,让我对它有了更加浓厚的兴趣。编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少 问题,可以说是错误百出,系统

18、不停报错,特别是各元件之间的连接,以及信号 的定义,总是有错误,在细心的检查和请教同学后,终于找出了错误和警告,排 除困难后,程序编译就通过了,心里终于舒了一口气。其次,在连接各个模块的 时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导 致整个文件系统的编译出现错误提示, 在器件的选择上也有一定的技巧,只有选 择了合适当前电路所适合的器件,编译才能得到完满成功。通过这次课程设计使 我懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的,只有把所 学的理论知识与实践相结合起来,从理论中得出结论,才能真正学到东西,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说 得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计 的过程中发现了自己的不足之处, 对以前所学过的知识理解得不够深刻, 掌握得 不够牢固。总的来说,这次设计的报时和时间调整还是比较成功的,在设计中遇到了很多问题,最后在老师的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论