一 实验目的
1、熟悉利用Quartus II 9.0 软件开发数字电路的基本流程以及熟悉Quartus II软件的操作。
2、了解使用VHDL语言和原理图设计进行HDL描述的实现方法。
3、了解有限状态机的原理和实现方案。
4、掌握LCD1602驱动电路设计的基本设计思路,软件环境参数配置,时序仿真,管脚分配,并且利用JTAG接口进行下载的常规设计流程。
二 实验前的准备
1、将红色的MODUL_SEL拨码开关组合的1、2、7拨上,3、4、5、6、8拨下,使数码管显示当前模式为:C2。
2、检查JTAG TO USB转换接口和USB连接线的连接,并且将JTAG线连接到核心板上的JTAG接口(核心板的第二个十针的插口)处。
三 实验要求
掌握有限状态机的原理,实现LCD1602驱动设计方案。
四 实验内容
(一)了解LCD1602的写入规则
- 1602是指显示的内容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
了解1602的管脚定义,见附录3,确定状态机的控制状态。
(二)利用文本描述完成LCD1602控制电路的VHDL设计
1、建立工程LCD1602,编写VHDL描述文件。要求,使用状态机描述,首先对1602进行初始化,然后设置显示格式,第三设置光标格式,第四设置光标移动格式,第五写入显示内容,第六写入下一显示内容的地址,之后循环第五和第六部。
- 对LCD1602工程进行编译综合,然后下载到实验箱中,检验实验箱的1602是否能输出指定的字符。
- 改变输出字符的内容,分两行输出自己的姓名的拼音和学号。
五 电路设计、仿真与硬件分析
- 采用状态机设计LCD1602驱动方案
首先在对LCD1602进行测试,测试其好坏性能,接着再编写代码显示姓名学号等信息,完成本实验的设计与制作。
a.如图为LCD1602测试时的输入代码
LCD1602测试时的输入代码图(1)
LCD1602测试时的输入代码图(2)
LCD1602测试时的输入代码图
b.如图为学号姓名在LCD1602上的显示代码
学号姓名在LCD1602上的显示代码(1)
学号姓名在LCD1602上的显示代码(2)
学号姓名在LCD1602上的显示代码(3)
学号姓名在LCD1602上的显示代码(4)
分析:大致可以将程序描述分为六个部分。
第一部分,首先对1602进行初始化,即对LCD1602进行清屏操作。清屏指令01H.
第二部分,设置显示格式; D为1时,显示功能开。
第三部分设置光标格式; C为1时有光标,B为1时光标不闪烁。
第四部分设置光标移动格式,将光标设置为右移。I/D位为1时,写入新数据后光标右移。
第五部分写入显示内容,以及第六部分写入下一显示内容的地址。同时,通过查找1602液晶模块内部的字符发生存储器,找到对应于自己学号“202121510102”的字符代码以及对应于自己名字“chenxuzhao”的字符代码,并将对应部分写入程序。
之后循环第五部分和第六部分。
- 状态机设计LCD1602驱动方案RTL图
驱动方案RTL图
- 硬件运行拍照
硬件运行图
分析:
将文件下载到实验箱后,观察LCD1602可知其正常输出“202134410327 ZJY”字样,说明该设计仿真无误。
五.实验结论
由实验结果可知:
(1)设计功能正确,所设计的程序经过编译综合适配后,能够驱动LCD1602进行显示,并能够根据需要查表找到对应字符的字符编码,达到修改显示内容的效果。
(2)利用有限状态机的编程思想,能够很好地帮助我们对LCD1602驱动程序进行编写。加深了对有限状态机的四大部分:说明部分,主控时序进程,主控组合进程,辅助进程的理解,特别是对于主控组合进程,明确了它的几个基本的要领:对内下一个状态应该是怎么样,对外输出应该是怎么样,对内的控制信号变成什么。对于未来应用有限状态机进行复杂电路设计有很好的铺垫作用。
(3)熟悉了LCD1602的基本工作原理和它的一些结构与功能,像如何清屏,光标如何移动,如何写入数据和指令等等。