一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于VHDL的LCD显示控制方法与流程

2022-02-24 12:41:15 来源:中国专利 TAG:

基于vhdl的lcd显示控制方法
技术领域
1.本发明属于lcd显示技术领域,涉及一种基于vhdl的lcd显示控制方法。


背景技术:

2.使用单片机控制lcd实现驱动,采用单片机来实现lcd的驱动比较容易设计,通过c语言的编写来控制lcd显示图形和字符,但是用单片机设计lcd显示控制实现电路较为复杂、移植性较差。
3.lcd1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x11的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
4.现有技术至少存在的缺点:
5.1)单片机设计lcd显示控制电路较为复杂。
6.2)移植性差,不能更换工作平台或模拟工具使用。
7.3)运行速度过慢,尤其是双指针。
8.4)自我保护能力差,很容易烧坏芯片。


技术实现要素:

9.为解决使用单片机控制lcd显示的电路复杂且移植性差的问题。本发明基于vhdl来控制lcd显示屏可以简化电路,利用vhdl的优越性,使lcd显示控制方便改进、容易集成片上系统、方便切换不同型号液晶显示器。
10.为实现上述目的,本发明的技术方案为基于vhdl的lcd显示控制方法,包括以下步骤:
11.s10,lcd初始化;
12.s20,写入设置;
13.s30,显示控制;
14.其中,s20,写入设置,包括自定义中文字符,对5*8点阵的lcd显示器进行字模提取,0代表不显示,1代表显示;
15.s30,显示控制,包括:设置起始cgram地址;向cgram写入自定义字符;设定显示地址;显示移动控制;写数据状态和向ddram写入数据。
16.优选地,所述s10,lcd初始化,lcd为lcd1602显示模块,对其初始化包括以下步骤:
17.s11,设置工作方式:通过set_dlnf设置lcd1602工作方式,set_dlnf为8位的指令,其中,指令位db4=1,即dl=1选用8位数据接口;指令位db5=1,即n=1选用亮行显示模式;指令位db6=0,即f=0选用5*8点阵字符;
18.s12,设置进入模式:通过set_cursor设置lcd1602进入模式,set_cursor为8位的指令,其中,指令位db1=1,即i/d=1设定写入新数据后光标右移;指令位db0=1,即s=1设
定显示移动;
19.s13,设置显示开关:通过set_dcb设置lcd1602显示开/关以及光标属性,set_dcb为8位的指令,其中,指令位db2=1,即d=1设定显示开;指令位db1=0,即c=0设定光标不显示;指令位db0=0,即b=0设定光标不闪烁。
20.优选地,所述s10,lcd初始化,包括对时钟的设置:采用计数器设置时钟。
21.优选地,所述s20,写入设置,包括得到字模点阵数据后利用状态机向cgram自定义字符区间写入自定义字符数据:先设定写入cgram起始地址,再依次写入字模数据。
22.优选地,所述s30,显示控制,包括设定从第一行的起始地址开始显示以及向ddram写入字符数据即可完成显示,再利用显示移动指令完成字符的滚动显示,通过set_shift设置全屏幕的显示移动,set_shift为8位的整屏移动指令,向lcd1602输入set_shift,其中,指令位db3=1、db2=1,即s/c=1、r/l=1选择整屏右移;纵向翻滚显示通过翻转显示字符的显示地址实现,第一轮显示中,即指令if cnt2《"01100"时,设两组字符的显示地址分别为dre1、dre2;在第二轮显示时,即指令cnt2》"01100",两组字符的显示地址在原先基础互换,从而实现翻转效果。
23.本发明至少有如下具体有益效果:
24.1)vhdl在编程软件上设计逻辑的结构:逻辑设计中的各个子逻辑、之间相互的连接方式;vhdl并不注重编写的具体逻辑如何实现,更专注于逻辑所能实现的功能上。
25.2)对于硬件行为的描述,vhdl的解决方案是采用类似高级语言的语句格式,这样能展现较强的模块化能力,并兼顾优良的可读性和程序的可移植性。
26.3)vhdl降低了对状态机、与或非逻辑表达式等的注重程度,使得vhdl更偏向于“编程语言”。
27.4)vhdl为开发人员后期模拟与调试提供多种方式,vhdl的调试方法有两种:一种方法是从先前沿用下来的,比如适用传统的波形激励或编写测试向量;另一种方法使用vhdl原码调试器较多(vhdl原码调试器可对vhdl程序调试的速度产生较大提升,其原理是类似于调试软件单步跟踪调试每一条语句,又可设置断点、观察内部变量等),这种方法都是先前方法不具备的,比如aldec的active-hdl,其具有高效率的生成代码,因此并不占用太多资源,甚至调试时不必编写任何测试向量,设计者能够轻松在各种方案之间取舍其优劣,并且并不需要完成实际的电路实验。
28.5)vhdl具有强大的语言结构,可以使用简洁明确的代码描述进行复杂的控制逻辑设计。
29.6)vhdl具有可移植性,允许设计者对需要综合的设计描述进行模拟,在综合前对一个数千门的设计描述进行模拟,可以节约设计者客观的时间,发现设计上的瑕疵并进行修改;并且可以被不同的工具所支持,可以从一个模拟工具移植到另一个模拟工具或从一个工作平台移植到另一个工作平台。
30.7)使用fpga来实现lcd显示控制有方便改进、容易集成片上系统、方便切换不同型号液晶显示器。
附图说明
31.图1为本发明实施例的基于vhdl的lcd显示控制方法的步骤流程图;
32.图2为本发明实施例的基于vhdl的lcd显示控制方法中lcd1602字符字模图;
33.图3为本发明实施例的基于vhdl的lcd显示控制方法字模提取示意图;
34.图4为本发明具体实施例的基于vhdl的lcd显示控制方法的自定义中文字符图;
35.图5为本发明具体实施例的基于vhdl的lcd显示控制方法的lcd1602显示范围内地址与显示范围外地址示意图。
具体实施方式
36.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
37.相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
38.参见图1,为本发明实施例的本发明的技术方案为基于vhdl的lcd显示控制方法的步骤流程图,包括以下步骤:
39.s10,lcd初始化;
40.s20,写入设置;
41.s30,显示控制;
42.其中,s20,写入设置,包括自定义中文字符,对5*8点阵的lcd显示器进行字模提取,0代表不显示,1代表显示;
43.s30,显示控制,包括:设置起始cgram地址;向cgram写入自定义字符;设定显示地址;显示移动控制;写数据状态和向ddram写入数据。
44.本发明基于硬件描述语言vhdl,其中自定义的中文代码采用数模提取方法生成,本发明依托的硬件可采用altera公司提供的fpga开发集成环境quartusⅱ进行编译调试开发,在de2实验板上完成实验结果验证。
45.de2实验板给电之后,先对fpga进行初始化操作,分别对工作方式、显示开关、进入模式进行初始化设置;之后对lcd1602进行显示控制,包括给cgram写入自定义字符代码、下达显示整体移动指令、设置显示的指定位置、向ddram写入数据以完成显示。初始化以及显示控制均采用状态机进行控制。
46.本发明使用的fpga芯片为altera公司的cyclone ii系列的ep2c35f672c6的de2实验板,具有2076个逻辑数组块,33216个逻辑单元,472.5kbits内部ram,35个内嵌18*18位硬件乘法器,672个引脚,从资源的丰富程度、类型和引脚个数已经符合本发明的各项要求。
47.本发明选用de2实验板上的lcd1602显示模块,具有16个5*8点阵,两行显示。模块内置192个常用字符的字模,其中包括英文、阿拉伯数字、标点符号以及日文,参见图2。除此之外,lcd1602提供8个可自定义的字符,因此可用lcd1602显示自定义汉字字符。
48.ddram、cgrom和cgram介绍:ddram(display data ram)是用来寄存打算显示的字符数据代码的ram,容量有80个字节。使用时只需将待显示的字符数据代码存放在该ram中即可显示在液晶显示屏上,这十分像计算机的显存设备。
49.lcd1602固化cgrom(character generator rom)和cgram(character generator ram)两个字模存储器,cgram是允许用户自定义的8个字符的产生ram,lcd1602内置的hd44780液晶控制器拥有192个常用字符字模,这些字符的字模代码存放在字符产生器cgrom之中。cgrom只能进行读取操作,早已固化在lcd1602模块之中,系统下电之后存储的字符数据不会消失。cgram可进行读写操作,待系统下电重启之后,cgram中存储的数据不再存在,再使用需要用户重现向cgram中存储字符的字模数据以备调用。如果需要在液晶显示屏上显示cgrom中存放的字符内容,只需要向ddram写入它们的字符代码即可,但如果需要显示cgrom中不存在的字符数据,需要先在cgram中载入自定义字符数据,之后在ddram写入自定义字符地址代码即可完成显示
50.lcd1602各引脚:rs引脚,选择命令/数据,当rs=0时,选择为命令;当r=1时,选择为数据。wr引脚,选择读/写操作,当rw低电平时,向lcd1602写入命令或数据;当rw高电平时,从lcd1602读取状态或数据。en引脚,执行命令的使能信号。d0—d7引脚,并行八位数据输入/输出。
51.s10,lcd初始化,lcd为lcd1602显示模块,对其初始化包括以下步骤:
52.s11,设置工作方式:通过set_dlnf(功能设置)设置lcd1602工作方式,set_dlnf为8位的指令,其中,指令位db4=1,即dl=1选用8位数据接口;指令位db5=1,即n=1选用亮行显示模式;指令位db6=0,即f=0选用5*8点阵字符;
53.s12,设置进入模式:通过set_cursor(设置光标)设置lcd1602进入模式,set_cursor为8位的指令,其中,指令位db1=1,即i/d=1设定写入新数据后光标右移;指令位db0=1,即s=1设定显示移动;
54.s13,设置显示开关:通过set_dcb(限制开关控制)设置lcd1602显示开/关以及光标属性,set_dcb为8位的指令,其中,指令位db2=1,即d=1设定显示开;指令位db1=0,即c=0设定光标不显示;指令位db0=0,即b=0设定光标不闪烁。
55.s10,lcd初始化,包括对时钟的设置:采用计数器设置时钟。
56.s20,写入设置,包括得到字模点阵数据后利用状态机向cgram自定义字符区间写入自定义字符数据:先设定写入cgram起始地址,再依次写入字模数据。字模提取原理参见图3。
57.s30,显示控制,包括设定从第一行的起始地址开始显示以及向ddram写入字符数据即可完成显示,再利用显示移动指令完成字符的滚动显示,通过set_shift设置全屏幕的显示移动,set_shift为8位的整屏移动指令,向lcd1602输入set_shift,其中,指令位db3=1、db2=1,即s/c=1、r/l=1选择整屏右移;纵向翻滚显示通过翻转显示字符的显示地址实现,第一轮显示中,即指令if cnt2《"01100"时,设两组字符的显示地址分别为dre1、dre2;在第二轮显示时,即指令cnt2》"01100",两组字符的显示地址在原先基础互换,从而实现翻转效果。
58.以显示“兰”“大”为具体实施例,参见图4,提取的数据分别为:
59.兰:0x00,0x11,0x0a,0x1f,0x00,0x0e,0x00,0x1f
60.大:0x00,0x00,0x00,0x04,0x1f,0x04,0x0a,0x11
61.得到字模点阵数据后利用状态机向cgram自定义字符区间写入自定义字符数据,利用vhdl写入字模数据状态机,首先设定写入cgram起始地址,再依次写入“兰”“大”的字模
数据。
62.显示控制中,ddram(display data ram)显示数据ram,共80个字节,其地址和屏幕的对应关系参见图5,lcd1602显示范围内地址与显示范围外地址,lcd1602其中80个字节的显存里存储的字符数据不都能在屏幕上显示出来,只有刚好写在上图框住范围内的字符数据才可以完成显示,在范围外以外的字符数据不会在液晶显示屏上显示。故在完成全屏滚动效果时,字符在滚动到液晶显示屏右侧边界之后不能立即从左侧边界出现,也因此可以利用显示范围外的地址实现文字从“看不到”到“看到”的滚动效果。
63.因为前面的操作中已经把自定义的中文字符写入cgram中了,所以之后设定从第一行的起始地址开始显示以及向ddram写入字符数据即可完成显示,此方法类似于lcd1602字符库中自带的192个字符的显示。
64.利用显示移动指令完成“兰”“大”字符的滚动显示效果。
65.通过set_shift设置全屏幕的显示移动,向lcd1602输入整屏移动指令,其中,指令位db3=1、db2=1,即s/c=1、r/l=1选择整屏右移。
66.纵向翻滚显示是通过翻转显示“lzu”与“兰大”字符的显示地址实现的,在一轮显示中,即if cnt2《"01100"时,“lzu”与“兰大”显示地址分别为dre1、dre2。在第二轮显示时,即cnt2》"01100",“lzu”与“兰大”的显示地址在原先基础互换,从而实现翻转效果。
67.本发明利用vhdl语言控制lcd显示,解决了单片机控制lcd显示电路复杂,移植性差的问题。使得电路具有lcd显示控制有方便改进、容易集成片上系统、方便切换不同型号液晶显示器的优点。
68.使用fpga芯片控制lcd显示,vhdl语言是规范语言,可以使用简洁明确的语言控制lcd显示,是对单片机控制的改进。改进后本方法可以从一个模拟工具移植到另一个工具或从一个工作平台移植到另一个工作平台,进行模拟优化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献