当前位置:首页 >> 信息与通信 >>

基于FPGA及VHDL的LED点阵汉字滚动显示设计方案


基于 FPGA 及 VHDL 的 LED 点阵汉字滚动显示设计方案 发布: 2011-8-31 | 作者: —— | 来源:wangliuguo| 查看: 555 次 | 用户关注: 汉字滚动显示器的传统设计方法是用单片机来控制的, 虽然单片机方案具有价格低廉, 程序 编程灵活等特点,但由于单片机硬件资源的限制,未来对设计的变更和升级,总是要付出较 多研发经费和较长投放市场周期的

代价,甚至有可能需要重新设计。况且,在以显示为主的 系统中,单片机的运算和控制等主要功能的利用率很低,单片机的优势得不到发挥,相当于 很大的资源浪费。采用 EDA 技术的自顶向下的模块化设计方法,借助相关开发软件,例如 Qua 汉字滚动显示器的传统设计方法是用单片机来控制的, 虽然单片机方案具有价格低廉, 程序 编程灵活等特点,但由于单片机硬件资源的限制,未来对设计的变更和升级,总是要付出较 多研发经费和较长投放市场周期的代价,甚至有可能需要重新设计。况且,在以显示为主的 系统中,单片机的运算和控制等主要功能的利用率很低,单片机的优势得不到发挥,相当于 很大的资源浪费。 采用 EDA 技术的自顶向下的模块化设计方法,借助相关开发软件,例如 QualtusⅡ软件,将 硬件描述语言——VHDL 程序固化于具有丰富 I/O 口、 内部逻辑和连线资源的 FPGA(现场可 编程门阵列)中。该技术具有系统设计效率高、集成度好、保密性强、易于修改、易于实现 等优点,成为当今数字系统设计主流技术。此方式所制作的 LED 点阵控制器,由于是纯硬 件行为,具有速度快、可靠性高、抗干扰能力强、开发周期短等显著优点。 1 EDA 点阵显示汉字原理 以 8×8 的 LED 点阵为例,8×8 的 LED 点阵是由 64 个发光二极管按矩阵形式排列而成, 每一行上的发光管有一个公共的阳极(或阴极),每一列上的发光管有一个公共的阴极(或阳 极),一般按动态扫描方式显示汉字或图形。扫描分为点扫描、行扫描和列扫描三种方式。 行扫描需要按行抽取字型码,列扫描则需要按列抽取字型码。为满足视觉暂留要求,若使用 点扫描方式,其扫描频率必须大于 16×64=1 024Hz,周期小于 1ms。若使用行或列扫描, 则频率必须大于 16×8=128Hz,周期小于 7.8ms。由于所用实验板上提供有 1 kHz 的时钟, 本例设计中利用该时钟进行扫描,使每行扫描时间为 1 ms,实验结果显示亮度合适。现以 行扫描为例简单说明动态扫描显示的原理。 1 给出汉字 图 “热” 在点阵为列共阳时的行字模。 工作时先将要扫描行的点阵字模从各列上输出,再让译码器选中(扫描)该行,使本行得以显 示,接着再送下一行数据,再使下一行有效,直到 8 行全被扫描一遍。至此,一幅完整的文 字信息就显现出来, 然后再反复扫描这 8 行直至显示新的信息。 以下设计采用行扫描方式实 现滚动显示。

2 硬件原理图 整个电路由五大部分组成:时钟计数模块 GEL_CLK,存储汉字字模的 ROM 模块 ROMZI, 数据分配器模块 MUX,移位模块 YW 及显示模块 XIANSH-I。时钟计数模块用于产生整个 电路所需要的时钟及其对时钟的计数值,例如:移位时钟 CLK YW,移位计数器 CNT YW, 字计数器 CNT WORD,显示扫描计数器 CNTSM。ROMZI 模块是由 QualtusⅡ中的 LPM1PORT ROM 定制成,用来存储 8 个待显示的汉字。MUX 模块用于在扫描时钟及扫描 计数器的作用下,从 ROM 中读出一个汉字的 8 个行字模信息,送给移位模块 YW,YW 模 块在移位时钟及移位计数器作用下,根据 SELECT 信号选择对读出的字模信息,进行相应 的移位(左移、右移、上移、下移)后,最后送显示模块 DISP 驱动 LED 点阵显示汉字。原理 图如图 2 所示。

3 模块设计及时序仿真 3.1 时钟计数产生模块 时钟计数产生模块由 1 kHz 的输人时钟为基准, 进行 17 位的循环计数 CNT[16..O]。 该时钟, 既是动态扫描显示的时钟,也是从 ROM 中取一个字 8 个字模的时钟,对之进行的 3 位循环 计数作为扫描显示计数器和取一个字的字型码计数器。CNT[16..O]中的 CNT[9]是对该时钟 的 1 024 分频,将其作为移位时钟 CNT_YW,周期约为 l s。CNT[13…lO]作为 4 位的移位计 数器,是对移位时钟 CLK_YW 的计数,也是对移位位数的统计。16 个状态使一个汉字逐列 移进点阵,又逐列移出。每经过 16 个移位时钟,将会显示完一个汉字。CNT[16..14]作为 3 位的取字计数器。 CNT[16…14]&CNT[2..O]作为 ROM 地址发生器。 3.2 ROMZI 模块

利用 LPM 参数化模块库中单口 ROM,利用 QualtusⅡ中的 MegaWizard Plug-In Manager 定 制而成,定制前首先要制作 LPM ROM 初始化文件,其中存储待显示汉字的字模数据,然 后按照 LPM MegaWizardPlug-In Manager 的向导提示,结合设计要求进行定制。

图3为 所定制 ROM 中的初始化汉字“元旦生日开心快乐”的字型码。数据分配模块 MUX 要求能 在 8 个时钟作用下,从 ROM 中读出一行(一个汉字的 8 个字型码)分别送到数据分配器中的 WLl~WL8 输出端。图 4 为数据分配模块在扫描时钟作用下读取的字模数据,比较图 3 和 图 4 可知,仿真结果正确,能满足题目要求。 3.3 移位模块 YW 移位模块 YW 是整个设计的核心,行扫描实现左移,是通过每来一个移位时钟,将每一行 的字模按位左移一位,扫描时钟到来时送出移位后的新字模。通过 8 次移位,可将一个汉字 移出点阵平面,按类似的道理,也可以将一个汉字经 8 次移位后移进点阵平面。本例(图 2) 中,CNT YW 为移位时钟的计数值,以 WLl~WL8 为欲显示汉字的原始字模,L10~L80 为移位后从列上送出的 8 行显示字模信息,LLl~LL8 为 8 个原始字模信息未送出位的暂存 信号。设计中需要 16 个移位时钟,通过前 8 个时钟将 WLl~WL8 字模移进 LED 点阵平面, 再经后 8 个时钟, 将汉字又一位一位地移出。 移位设计参考文献中有关移位寄存器的设计, 分计数值为“0000"和非"0000"两部分处理,对第一行字模的处理为:

其他行可按相同方法处理,具体参见如下的程序:

右移处理方法与上面左移相反,如对第一行可按如下方法处理:

上移时的部分程序按以下思路编制:L10~L70 在 CNT_YW 为初态“0000”时,各信号均 赋值 X “00” 非初态时, , 均进行上移一位。 L10<=L20;L20<=L30;…;L60<=L70;L70<=L80; 即: 对于 L80,在汉字移进 LED 过程中即前 8 个状态各移进一个新行,在移出 LED 即后 8 个状 态时,都补进 X“00” 。程序如下:

下移程序可按相反思路去编。 3.4 显示模块 DISP 设计 显示模块 DISP 是以 CNT_SM 为扫描计数器,是对 1kHz 进行三位循环计数,由前述的时钟 计数产生模块产生,WLl~WL8 为待送出显示的 8 个 8 位字型码,由前述的移位模块 YW 提供;SW[7..O]为行扫描输出信号,连接至点阵的 8 个行;DATA[7..0]为行扫描时对应的列输 出字型码,对外连至点阵的 8 列。该模块参考文献中数码管动态显示程序进行设计如下:

4 硬件实现 上述各模块分别在 QualtusⅡ中通过了仿真验证,最后对整体设计进行了硬件验证。将设计 载入 KH31001 开发板的 Cyclone 工系列 EPlC6Q-240C8FPGA 器件中,实验证明汉字滚动显 示扫描情况均正常,能够按照预想进行移位显示,这说明。FPGA 的内核硬件工作良好,可 以正确地实现所要求的设计功能。 5 系统扩展 本文是针对 8×8 点阵设计,故每次取 8 个字形码,如果是 16×16 点阵,将 RONZI 中存储 的字形码改为 16 位,数据线改为 16 位,一个汉字需要 16 个 16 位的字形码,数据分配模块 MUX、移位模块 YW、显示模块 DISP,均要将输入输出数据中的原来的 8 位改成相应的 16 位。扫描及取字型码计数器 CNT_SM 应改为 CNT 计数器的低 4 位。一个 16×16 点阵汉字 的移进移出共需 32 个状态。由 5 位的计数器提供。如用 CNT[16..0]中的 14~10 位作为该计 数器,这可在时钟计数器产生单元 CLK_GE 中应做相应修改,字计数器 CNT WORD 按照 每取 16 个字进行加 1 统计。显示 DISP 部分的译码器要由 3-8 译码改为 4-16 译码。显示的 汉字信息越多,ROM 的地址线位数越多,字计数器 CNT_WORD 应在时钟计数器产生单元 GE_CLK 中,将相应的计数器位数扩展,由 CNT 计数器的最高位到位 15 来承担。若还是 8 个汉字,计数器应为 CNT[17..O],CNT[17..15]为字计数器;若为 16 个汉字,计数器应为 CNT[18..O],CNT[18..15]为字计数器,…,依次类推。 6 结语 本文在 KH31001 开发板上实现了基于 Altera 公司的 Cyclone I 系列 FPGA 器件 EPlC6Q240C8 硬件及 VHDL 硬件描述语言设计的 LED 点阵汉字滚动显示, 能在 8×8 点阵上滚动显示 “元 旦生日开心快乐”8 个汉字。文中从 LED 点阵显示汉字的原理阐述出发,给出了点阵汉字 滚动显示控制器的原理图,部分模块的 VHDL 源程序及时序仿真图,并能由按键选择其滚 动方式:左移、右移、上移、下移等,给出了系统扩展成 16×16 点阵汉字滚动的改动思路。 从文中描述的系统扩展方案中看出, 当系统显示字符个数变化时, 只需对控制逻辑和连接关 系做适当的修改,再将修改完成的程序下载到器件即可,显然,系统的维护和修改是极其方 便和容易的,本文对同类设计也具有一定的参考价值。


相关文章:
基于FPGA控制的LED汉字滚动显示器设计
基于FPGA控制的LED汉字滚动显示器设计_电子/电路_工程科技_专业资料。基于 FPGA ...硬件及 VHDL 硬件描述语言设计的 LED 点阵汉字滚动显示,能在 8×8 点阵上滚动...
LED16×16点阵汉字显示设计(VHDL版)_图文
29 摘要主要研究基于 VHDL 的 Led 点阵汉字滚动显示。首先描述了基于现场 可编程门阵(FPGA)的硬件电路,以及点阵显示汉字的原理 ;然后在单个 16X16 LED 发光二极管...
基于FPGA的LED-16×16点阵汉字显示设计(终搞)_图文
现场可编程门阵 (FPGA) 的硬件电路,以及点阵显示汉字的原理;然后在单个 16X16 LED 发光二极管点阵滚动汉字的原理; 最后给出了描述其功能的 VHDL 语言程序设计...
毕业论文:基于FPGA的LED_16×16点阵汉字显示设计01-精...
毕业论文:基于FPGA的LED_16×16点阵汉字显示设计01-精品_工学_高等教育_教育...18 摘要 主要研究基于 VHDL 的 Led 点阵汉字滚动显示。首先描述了基于现场可...
LED汉字滚动程序设计显示
LED汉字滚动程序设计显示_工学_高等教育_教育专区。基于 FPGA 控制的 LED 汉字...及 VHDL 硬件描述语言设计的 LED 点阵汉字滚动显示,能在 8×8 点阵上滚动显示...
用VHDL设计LED+汉字滚动显示器
2008-6 摘 要 本文对基于 FPGA 控制的 LED 汉字滚动显示器的设计方法进行了...二极管点阵上滚动显示汉字的方法;最后, 用 VHDL 语言程序设计了一个完整的 LED...
基于FPGA的16x16LED点阵
程门阵 (FPGA) 的硬件电路, 以及点阵显示汉字的原理; 然后在单个 16X16 LED 发光二极管点阵滚动汉字的原理;最后给出了描述其功能的 VHDL 语言程序 设计方法。...
基于VHDL的汉字点阵动态显示系统的设计与实现_图文
基于 VHDL 的汉字点阵动态显示系统的设计与实现 随着世界和我国经济的高速发展,在公共场所动态显示信息已相当显眼,利用 LED 点阵滚动显示汉字的出现正好适应了这一...
8-8 点阵汉字滚动显示
基于FPGA的8*8滚动汉字显示VHDL/EDA 实习报告 设计题目:基于 FPGA 的 8*8 ...通过时钟的每列扫描 显示完整汉字设计方案 方案一 8×8 扫描 LED 点阵只要...
基于FPGA的滚字屏的显示设计.李涵
基于FPGA的滚字屏的显示设计.李涵_信息与通信_工程科技_专业资料。基于FPGA的滚...点阵滚动显示汉字的方法;最后,用 VHDL 语言程序设计了一个完整的 LED 汉 字...
更多相关标签:
16×64点阵汉字滚动 | fpga vhdl | vhdl点阵显示 | vhdl在fpga上实现游戏 | fpga点阵显示 | fpga vhdl 教材 | fpga门控时钟 vhdl | vhdl fpga 例程 |