基于FPGA的LCD12864汉字显示设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线, 透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。比 CRT要好的多,但是价钱较其它显示器贵。 CRT要好的多,但是价钱较其它显示器贵。 FPGA是英文Field- FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列, Array的缩写,即现场可编程门阵列, 它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作 它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作 为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制 为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制 电路的不足,又克服了原有可编程器件门电路数有限的缺点。 本课题主要任务是设计基于FPGA的LCD控制器,兼顾好程序的易用性,以方 本课题主要任务是设计基于FPGA的LCD控制器,兼顾好程序的易用性,以方 便之后模块的移植和应用。最后在FPGA上的任意位置显示任意的16*16D的 便之后模块的移植和应用。最后在FPGA上的任意位置显示任意的16*16D的 中文字符以及16*8的英文字符,另外要能根据输入数据的变化同步变化LCD 中文字符以及16*8的英文字符,另外要能根据输入数据的变化同步变化LCD 上显示的内容。同时要能将储存模块中的图片数据正常地显示在LCD上。该 上显示的内容。同时要能将储存模块中的图片数据正常地显示在LCD上。该 课题的研究将有助于采用FPGA的系列产品的开发,特别是需要用到LCD得采 课题的研究将有助于采用FPGA的系列产品的开发,特别是需要用到LCD得采 用FPGA的产品的开发。同时可以大大缩短FPGA的开发时间。另外,由于模块 FPGA的产品的开发。同时可以大大缩短FPGA的开发时间。另外,由于模块 的易用性,也将使得更多的采用FPGA的产品之上出现LCD,增加人机之间的 的易用性,也将使得更多的采用FPGA的产品之上出现LCD,增加人机之间的 交互性,为行业和我们的生活带来新的变化。
本科毕业论文(设计) 本科毕业论文(设计)
基于FPGA的LCD12864汉字显示设计
1、引言 2、系统设计 (包括设计任务和要求) 3、结束语 4、参考文献 5、致谢
1 引言
• 1.1 本设计的研究背景和研究目的 • LCD液晶显示器是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行 LCD液晶显示器是 的简称,LCD • •
• 1.2 EDA概述 EDA概述 • 本设计采用EDA的自顶向下的设计方法。EDA(Electronic Design 本设计采用EDA的自顶向下的设计方法。EDA(Electronic
Automation,即电子设计自动化) Automation,即电子设计自动化)技术是微电子和计算机技术飞速发 展的产物,它融多学科于一体,是一门综合性的学科。它以计算机硬 件和系统软件为基本的工作平台,继承和借鉴前人在电路和系统、数 据库、图形学、图论和拓扑逻辑、计算数学、优化理论等多学科的最 新科技成果而研制成的商品化EDA通用支撑软件和应用软件包,其目 新科技成果而研制成的商品化EDA通用支撑软件和应用软件包,其目 的在于帮助电子设计工程师在计算机上完成电路的功能设计、逻辑设 计、性能分析、时序测试直至PCB(印刷电路板) 计、性能分析、时序测试直至PCB(印刷电路板)的自动设计等。与早 期的电子CAD软件相比,EDA软件的自动化程度更高,功能更完善, 期的电子CAD软件相比,EDA软件的自动化程度更高,功能更完善, 运行速度更快,而且操作界面友好,有良好的数据开放性和互换性, 即不同厂商的EDA软件可相互兼容。因此,EDA技术一经出现,就很 即不同厂商的EDA软件可相互兼容。因此,EDA技术一经出现,就很 快在世界各大公司、企业和科研单位得到了广泛的应用,并已成为衡 量一个国家电子技术发展水平的重要标志。
• 1.3.1状态机简介 1.3.1状态机简介 • 本设计通过编写状态机的VHDL语言来完成控制部分。状态机在某种 本设计通过编写状态机的VHDL语言来完成控制部分。状态机在某种
程度上可以称是一种时序电路,如前面的触发器、计数器等,都可以 看成是功能固定的状态机。在状态机中常使用以状态图及状态表描述 的方式,然后根据这个状态图去设计符合要求的电路。状态机简写为 FSM(Finite State Machine),主要分为2大类:第一类,若输出只和状 Machine),主要分为2 态有关而与输入无关,则称为Moore状态机:第二类,输出不仅和状 态有关而与输入无关,则称为Moore状态机:第二类,输出不仅和状 态有关而且和输入有关系,则称为Melay状态机。要特别注意的是, 态有关而且和输入有关系,则称为Melay状态机。要特别注意的是, 因为Melay状态机和输入有关,输出会受到输入的干扰,所以可能会 因为Melay状态机和输入有关,输出会受到输入的干扰,所以可能会 产生毛刺(Gitch)现象,使用时应当注意。事实上现在市面上有很多 产生毛刺(Gitch)现象,使用时应当注意。事实上现在市面上有很多 EDA工具可以很方便的将采用状态图的描述转换成可以综合的VHDL EDA工具可以很方便的将采用状态图的描述转换成可以综合的VHDL程 VHDL程 序代码。
Байду номын сангаас
2、系统设计
• (1)设计任务和要求 • (2)总体设计方案 • (3)软件设计
(1)设计任务和要求
• 本设计的主要任务是基于FPGA的LCD控制 本设计的主要任务是基于FPGA的LCD控制
器的设计研究,并兼顾程序的易用性以方 便以后模块的移植。该设计到得FPGA的应 便以后模块的移植。该设计到得FPGA的应 用,LCD 用,LCD驱动的研究,字符的显示模式的研 LCD驱动的研究,字符的显示模式的研 究等知识。并利用QUARTUS 9.1实现相 究等知识。并利用QUARTUS II 9.1实现相 关模块的设计,在FPGA上实现对LCD的控 关模块的设计,在FPGA上实现对LCD的控 制,显示任意中文。
图1 单片机与液晶屏的连接
• 其工作的具体流程图如下:开始结束延时
使LCD复位脉冲函数设置显示方式设置地址 LCD复位脉冲函数设置显示方式设置地址 指针取消连续写方式输送数据到显示器设 置成连续写方式设置起始地址写数据输送 命令到显示器设置显示屏列数写完否?可 否连续写NNYY 否连续写NNYY
• 1.3.2一般状态机的VHDL设计 1.3.2一般状态机的VHDL设计 • 用VHDL设计有限状态机方法有多种,但最一般和 VHDL设计有限状态机方法有多种,但最一般和 • •
最常用的状态机设计通常包括说明部分,主控时 序部分,主控组合部分和辅助进程部分。 1) 说明部分 说明部分中使用TYPE语句定义新的数据类型,此 说明部分中使用TYPE语句定义新的数据类型,此 数据类型为枚举型,其元素通常都用状态机的状 态名来定义。状态变量定义为信号,便于信息传 递,并将状态变量的数据类型定义为含有既定状 态元素的新定义的数据类型。说明部分一般放在 结构体的ARCHITECTURE和BEGIN之间。 结构体的ARCHITECTURE和BEGIN之间。
• 2) 主控时序进程 • 是指负责状态机运转和在时钟驱动正负现状态机转换的进程。状态机
• • • • •
随外部时钟信号以同步方式工作,当时钟的有效跳变到来时,时序进 程将代表次态的信号next_state中的内容送入现态信号current_state 程将代表次态的信号next_state中的内容送入现态信号current_state 中,而next_state中的内容完全由其他进程根据实际情况而定,此进 中,而next_state中的内容完全由其他进程根据实际情况而定,此进 程中往往也包括一些清零或置位的控制信号。 3) 主控组合进程 根据外部输入的控制信号(包括来自外部的和状态机内容的非主控进 程的信号)或(和)当前状态值确定下一状态next_state的取值内容, 程的信号)或(和)当前状态值确定下一状态next_state的取值内容, 以及对外或对内部其他进程输出控制信号的内容。 4) 辅助进程 用于配合状态机工作的组合、时序进程或配合状态机工作的其他时序 进程。 在一般状态机的设计过程中,为了能获得可综合的,高效的VHDL状 在一般状态机的设计过程中,为了能获得可综合的,高效的VHDL状 态机描述,建议使用枚举类数据类型来定义状态机的状态,并使用多 进程方式来描述状态机的内部逻辑。例如可使用两个进程来描述,— 进程方式来描述状态机的内部逻辑。例如可使用两个进程来描述,— 个进程描述时序逻辑,包括状态寄存器的工作和寄存器状态的输出, 另一个进程描述组合逻辑,包括进程间状态值的传递逻辑以及状态转 换值的输出。必要时还可以引入第三个进程完成其它的逻辑功能。
图8 用EDA的设计方法设计的流程图
• 3)方案比较 • 两种方法都能实现汉字的显示,尽管设计思路不
同,但最终效果是一样的。考虑到单片机的设计 方法更适合用在点阵LED的显示设计方面,EDA的 方法更适合用在点阵LED的显示设计方面,EDA的 设计方法明显更适合用于LCD的汉字显示,并且 设计方法明显更适合用于LCD的汉字显示,并且 考虑到学校实验室的资源,实验室里有完善的 EDA实验箱,并且有设计所需要的控制芯片和显 EDA实验箱,并且有设计所需要的控制芯片和显 示器件,而如果用单片机的设计方法实现的话, 资源明显不够。两相比较之下,EDA的设计方法 资源明显不够。两相比较之下,EDA的设计方法 明显有优势,所以选用方法二。
• a)能通过VHDL程序,在QUARTUS II 9.1 )能通过VHDL程序,在QUARTUS
软件的编译仿真下,并在EDA实验箱上进行 软件的编译仿真下,并在EDA实验箱上进行 下载显示,验证程序的正确性。 • b)要求显示的字符为“广西师范学院”、 )要求显示的字符为“广西师范学院” “物理与电子工程院”、“07电本陈岸”、 物理与电子工程院” 07电本陈岸” “指导老师:刘桂英” 指导老师:刘桂英”
图7 用单片机设计的具体流程图
• 2)方案二:采用EDA的自顶向下的思想, )方案二:采用EDA的自顶向下的思想,
并在EDA实验平台上实现。使用的软件是 并在EDA实验平台上实现。使用的软件是 QUARTUS II 9.1,可以用Verilog语言,也 9.1,可以用Verilog语言,也 可以用VHDL语言,这里采用的是VHDL语言。 可以用VHDL语言,这里采用的是VHDL语言。 • 并使用Altera公司的cycloneII系列的 并使用Altera公司的cycloneII系列的 EP2C8Q208C8来作为核心的控制器。具体 EP2C8Q208C8来作为核心的控制器。具体 设计流程图如下:
(2)总体设计方案
• 1)方案一:用单片机实现,可以用
AT89S52单片机实现128*64液晶屏显示。 AT89S52单片机实现128*64液晶屏显示。 程序方面可以用C 程序方面可以用C语言成语,亦可以用汇编 程序。整个设计首先是在protues 程序。整个设计首先是在protues软件中进 protues软件中进 行硬件的搭建及仿真的,然后才下载到目 标芯片上,进行调试。其连接方式如下:
(3)软件设计
a) QUARTUS II概述 II概述 • Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、 Altera公司的综合性PLD开发软件,支持原理图、VHDL、 VerilogHDL以及AHDL( VerilogHDL以及AHDL(Altera Hardware Description Language)等 Language)等 多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计 输入到硬件配置的完整PLD设计流程。 输入到硬件配置的完整PLD设计流程。 • Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完 II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完 成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度 快,界面统一,功能集中,易学易用等特点。 • Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块 II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块 库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了 设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的 设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的 各个阶段使用熟悉的第三方EDA工具。 各个阶段使用熟悉的第三方EDA工具。 • 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合, 此外,Quartus 通过和DSP Builder工具与Matlab/Simulink相结合, 可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统 可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统 (SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计 SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计 于一体,是一种综合性的开发平台。
本科毕业论文(设计) 本科毕业论文(设计)
基于FPGA的LCD12864汉字显示设计
1、引言 2、系统设计 (包括设计任务和要求) 3、结束语 4、参考文献 5、致谢
1 引言
• 1.1 本设计的研究背景和研究目的 • LCD液晶显示器是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行 LCD液晶显示器是 的简称,LCD • •
• 1.2 EDA概述 EDA概述 • 本设计采用EDA的自顶向下的设计方法。EDA(Electronic Design 本设计采用EDA的自顶向下的设计方法。EDA(Electronic
Automation,即电子设计自动化) Automation,即电子设计自动化)技术是微电子和计算机技术飞速发 展的产物,它融多学科于一体,是一门综合性的学科。它以计算机硬 件和系统软件为基本的工作平台,继承和借鉴前人在电路和系统、数 据库、图形学、图论和拓扑逻辑、计算数学、优化理论等多学科的最 新科技成果而研制成的商品化EDA通用支撑软件和应用软件包,其目 新科技成果而研制成的商品化EDA通用支撑软件和应用软件包,其目 的在于帮助电子设计工程师在计算机上完成电路的功能设计、逻辑设 计、性能分析、时序测试直至PCB(印刷电路板) 计、性能分析、时序测试直至PCB(印刷电路板)的自动设计等。与早 期的电子CAD软件相比,EDA软件的自动化程度更高,功能更完善, 期的电子CAD软件相比,EDA软件的自动化程度更高,功能更完善, 运行速度更快,而且操作界面友好,有良好的数据开放性和互换性, 即不同厂商的EDA软件可相互兼容。因此,EDA技术一经出现,就很 即不同厂商的EDA软件可相互兼容。因此,EDA技术一经出现,就很 快在世界各大公司、企业和科研单位得到了广泛的应用,并已成为衡 量一个国家电子技术发展水平的重要标志。
• 1.3.1状态机简介 1.3.1状态机简介 • 本设计通过编写状态机的VHDL语言来完成控制部分。状态机在某种 本设计通过编写状态机的VHDL语言来完成控制部分。状态机在某种
程度上可以称是一种时序电路,如前面的触发器、计数器等,都可以 看成是功能固定的状态机。在状态机中常使用以状态图及状态表描述 的方式,然后根据这个状态图去设计符合要求的电路。状态机简写为 FSM(Finite State Machine),主要分为2大类:第一类,若输出只和状 Machine),主要分为2 态有关而与输入无关,则称为Moore状态机:第二类,输出不仅和状 态有关而与输入无关,则称为Moore状态机:第二类,输出不仅和状 态有关而且和输入有关系,则称为Melay状态机。要特别注意的是, 态有关而且和输入有关系,则称为Melay状态机。要特别注意的是, 因为Melay状态机和输入有关,输出会受到输入的干扰,所以可能会 因为Melay状态机和输入有关,输出会受到输入的干扰,所以可能会 产生毛刺(Gitch)现象,使用时应当注意。事实上现在市面上有很多 产生毛刺(Gitch)现象,使用时应当注意。事实上现在市面上有很多 EDA工具可以很方便的将采用状态图的描述转换成可以综合的VHDL EDA工具可以很方便的将采用状态图的描述转换成可以综合的VHDL程 VHDL程 序代码。
Байду номын сангаас
2、系统设计
• (1)设计任务和要求 • (2)总体设计方案 • (3)软件设计
(1)设计任务和要求
• 本设计的主要任务是基于FPGA的LCD控制 本设计的主要任务是基于FPGA的LCD控制
器的设计研究,并兼顾程序的易用性以方 便以后模块的移植。该设计到得FPGA的应 便以后模块的移植。该设计到得FPGA的应 用,LCD 用,LCD驱动的研究,字符的显示模式的研 LCD驱动的研究,字符的显示模式的研 究等知识。并利用QUARTUS 9.1实现相 究等知识。并利用QUARTUS II 9.1实现相 关模块的设计,在FPGA上实现对LCD的控 关模块的设计,在FPGA上实现对LCD的控 制,显示任意中文。
图1 单片机与液晶屏的连接
• 其工作的具体流程图如下:开始结束延时
使LCD复位脉冲函数设置显示方式设置地址 LCD复位脉冲函数设置显示方式设置地址 指针取消连续写方式输送数据到显示器设 置成连续写方式设置起始地址写数据输送 命令到显示器设置显示屏列数写完否?可 否连续写NNYY 否连续写NNYY
• 1.3.2一般状态机的VHDL设计 1.3.2一般状态机的VHDL设计 • 用VHDL设计有限状态机方法有多种,但最一般和 VHDL设计有限状态机方法有多种,但最一般和 • •
最常用的状态机设计通常包括说明部分,主控时 序部分,主控组合部分和辅助进程部分。 1) 说明部分 说明部分中使用TYPE语句定义新的数据类型,此 说明部分中使用TYPE语句定义新的数据类型,此 数据类型为枚举型,其元素通常都用状态机的状 态名来定义。状态变量定义为信号,便于信息传 递,并将状态变量的数据类型定义为含有既定状 态元素的新定义的数据类型。说明部分一般放在 结构体的ARCHITECTURE和BEGIN之间。 结构体的ARCHITECTURE和BEGIN之间。
• 2) 主控时序进程 • 是指负责状态机运转和在时钟驱动正负现状态机转换的进程。状态机
• • • • •
随外部时钟信号以同步方式工作,当时钟的有效跳变到来时,时序进 程将代表次态的信号next_state中的内容送入现态信号current_state 程将代表次态的信号next_state中的内容送入现态信号current_state 中,而next_state中的内容完全由其他进程根据实际情况而定,此进 中,而next_state中的内容完全由其他进程根据实际情况而定,此进 程中往往也包括一些清零或置位的控制信号。 3) 主控组合进程 根据外部输入的控制信号(包括来自外部的和状态机内容的非主控进 程的信号)或(和)当前状态值确定下一状态next_state的取值内容, 程的信号)或(和)当前状态值确定下一状态next_state的取值内容, 以及对外或对内部其他进程输出控制信号的内容。 4) 辅助进程 用于配合状态机工作的组合、时序进程或配合状态机工作的其他时序 进程。 在一般状态机的设计过程中,为了能获得可综合的,高效的VHDL状 在一般状态机的设计过程中,为了能获得可综合的,高效的VHDL状 态机描述,建议使用枚举类数据类型来定义状态机的状态,并使用多 进程方式来描述状态机的内部逻辑。例如可使用两个进程来描述,— 进程方式来描述状态机的内部逻辑。例如可使用两个进程来描述,— 个进程描述时序逻辑,包括状态寄存器的工作和寄存器状态的输出, 另一个进程描述组合逻辑,包括进程间状态值的传递逻辑以及状态转 换值的输出。必要时还可以引入第三个进程完成其它的逻辑功能。
图8 用EDA的设计方法设计的流程图
• 3)方案比较 • 两种方法都能实现汉字的显示,尽管设计思路不
同,但最终效果是一样的。考虑到单片机的设计 方法更适合用在点阵LED的显示设计方面,EDA的 方法更适合用在点阵LED的显示设计方面,EDA的 设计方法明显更适合用于LCD的汉字显示,并且 设计方法明显更适合用于LCD的汉字显示,并且 考虑到学校实验室的资源,实验室里有完善的 EDA实验箱,并且有设计所需要的控制芯片和显 EDA实验箱,并且有设计所需要的控制芯片和显 示器件,而如果用单片机的设计方法实现的话, 资源明显不够。两相比较之下,EDA的设计方法 资源明显不够。两相比较之下,EDA的设计方法 明显有优势,所以选用方法二。
• a)能通过VHDL程序,在QUARTUS II 9.1 )能通过VHDL程序,在QUARTUS
软件的编译仿真下,并在EDA实验箱上进行 软件的编译仿真下,并在EDA实验箱上进行 下载显示,验证程序的正确性。 • b)要求显示的字符为“广西师范学院”、 )要求显示的字符为“广西师范学院” “物理与电子工程院”、“07电本陈岸”、 物理与电子工程院” 07电本陈岸” “指导老师:刘桂英” 指导老师:刘桂英”
图7 用单片机设计的具体流程图
• 2)方案二:采用EDA的自顶向下的思想, )方案二:采用EDA的自顶向下的思想,
并在EDA实验平台上实现。使用的软件是 并在EDA实验平台上实现。使用的软件是 QUARTUS II 9.1,可以用Verilog语言,也 9.1,可以用Verilog语言,也 可以用VHDL语言,这里采用的是VHDL语言。 可以用VHDL语言,这里采用的是VHDL语言。 • 并使用Altera公司的cycloneII系列的 并使用Altera公司的cycloneII系列的 EP2C8Q208C8来作为核心的控制器。具体 EP2C8Q208C8来作为核心的控制器。具体 设计流程图如下:
(2)总体设计方案
• 1)方案一:用单片机实现,可以用
AT89S52单片机实现128*64液晶屏显示。 AT89S52单片机实现128*64液晶屏显示。 程序方面可以用C 程序方面可以用C语言成语,亦可以用汇编 程序。整个设计首先是在protues 程序。整个设计首先是在protues软件中进 protues软件中进 行硬件的搭建及仿真的,然后才下载到目 标芯片上,进行调试。其连接方式如下:
(3)软件设计
a) QUARTUS II概述 II概述 • Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、 Altera公司的综合性PLD开发软件,支持原理图、VHDL、 VerilogHDL以及AHDL( VerilogHDL以及AHDL(Altera Hardware Description Language)等 Language)等 多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计 输入到硬件配置的完整PLD设计流程。 输入到硬件配置的完整PLD设计流程。 • Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完 II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完 成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度 快,界面统一,功能集中,易学易用等特点。 • Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块 II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块 库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了 设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的 设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的 各个阶段使用熟悉的第三方EDA工具。 各个阶段使用熟悉的第三方EDA工具。 • 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合, 此外,Quartus 通过和DSP Builder工具与Matlab/Simulink相结合, 可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统 可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统 (SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计 SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计 于一体,是一种综合性的开发平台。