锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

LED点阵汉字滚动显示设计 - FPGA设计实例全攻略(三)

时间:2023-08-21 10:37:00 wl的二极管

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

汉字滚动显示器的传统设计方法由单片机控制。虽然单片机方案具有价格低廉、编程灵活的特点,但由于单片机硬件资源的限制,未来设计的变更升级总是需要支付更多的研发资金和更长的市场周期,甚至可能需要重新设计。此外,在以显示为主的系统中,单片机运行控制等主要功能利用率很低,单片机的优势无法发挥,相当于大量资源浪费。

采用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行,直到显示新信息。滚动显示采用行扫描法实现下面的设计。

edbc3e7e1bdc8a9b50d8ae1c757330e7.png

2 硬件原理图

时钟计数模块由五个部分组成GEL_CLK,存储汉字模型ROM模块ROMZI,数据分配器模块MUX,移位模块YW及显示模块XIANSH-I。时钟计数模块用于生成整个电路所需的时钟及其对时钟的计数值,如移位时钟CLK YW,移位计数器CNT YW,字计数器CNT WORD,显示扫描计数器CNT SM。ROMZI模块是由QualtusⅡ中的LPM 1PORT 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个移位6个移位时钟显示一次。CNT[16..14]作为三位取字计数器。

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个未发出原始字模信息的暂存信号。通过前8个时钟,设计需要16个移位时钟WLl~WL8字模移进LED点阵平面,8小时后,汉字一个个移出。 移位设计参考文献中有关移位寄存器的设计,分计数值为“0000"和非"0000"第一行字模处理的两部分:

其他银行可以以相同的方式处理详见以下程序:

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

按以下思路编制部分程序:L10~L70在CNT_YW当初态为0000时,每个信号的被赋值X非初态时,00都向上移动。即:L10<=L20;L20<=L30;…;L60<=L70;L70<=L80;对于L移入汉字80LED在此过程中,前8个状态各移入新行,移出LED在接下来的8个状态下,都会补充X“00”。程序如下:

可以根据相反的思路编制下移程序。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章