下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要 1关键词 1Abstract 1Key words 1引言 11设计方案1.1 方案一 21.2 方案二 21.3 方案比较 32扫描控制模块2.1 LED点阵原理 32.2 汉字的存储 42.3 汉字的显示 52.4 滚动速度的控制 63 VHDL语言程序设计3.1 扫描频率控制的部分关键程序 63.2 单个汉字扫描的部分关键程序 73.3 汉字滚动速度控制的部分关键程序 84系统调试4.1 开发环境介绍 94.2 调试、仿真与体会 105系统功能、指标参数 146设计结论 14致谢 14参考文献 14基于VHDL的汉字点阵动态显示系统的设计摘 要:主要研究基于 VHDL的Led点
2、阵汉字滚动显示。首先描述了基于现场可编程门阵列 (FPGA的硬件电路,以及点阵显示汉字的原理;然后在单个16X16 LED发光二极管点阵上滚动汉字的原理;最后给出了描述其功能的VHDL语言程序设计方法。通过编程、调试、仿真、 下载正确地实现了汉字滚动显示扫描结果,其硬件系统的实验验证也获得了与软件模拟仿真结论相吻合的结果。关键词:LED点阵;FPGA VHDL语言;汉字滚动显示Design of Chinese characters scrolling display on LED dotmatrix based on VHDLAbstract: The design of this subj
3、ect mainly researches Chinese characters scrolling display on LED dot matrix screen based on FPGA and VHDL . This article firstly describes the hardware circuit based on logic cell array,as well as the principle of Chinese characters display on LED dot matrix .Finally,the article gives the method of
4、 VHDL design which describes the function.This design realizes the results of Chinese characters scrolling and scanning correctly by programming ,debugging ,sinulation and download ,Also the experimintal verificattion of hardware systerns has received the conclusions in accordance with the results o
5、f software simulation .Key words: LED dot matrix;FPGA;VHDL;Chinese characters scrolling display引言随着我国经济的高速发展, 对公共场合发布信息的需求日益增长,利用LED点阵滚动显示汉字的出现正好适应了这一市场需求,已经成为信息传播的一种重要手段。采用传统方法设计的汉字滚动显示器,通常需要使用单片机、存储器和制约逻辑电路来进行PCB级的系统集成。尽管这种方案有单片机软件的支持较为灵活, 但是由于受硬件资源的限制,未来对设计的变更和升级,总是难以避免要付出较多研发经费和较长投放市场周期的代价。随着电子设
6、计自动化( EDA技术 的进展,基于可编程FPG端件进行系统芯片集成的新设计方法,也正在快速地 到代基于PCBS的传统设计方式。因此,本文主要阐述基于FPGA和VHDL语言实现在16*16 点阵上的汉字滚动显示问题。1 设计方案1.1 方案一本文系统的LED点阵模块,共由16X16=256个LED发光二极管组成。如 何在该点阵模块上显示汉字是本文设计的关键技术。本文系统设计是采用一种 16路动态分时扫描技术来实现的。具体方法是,将16X 16数组的显示模块的行输入端与FPGA内的只读存储器ROM的16位数据输出端口相连;16个列控制 端与一个4-16译码器A的输出相连;而译码器A的输入端和片选
7、信号又与FPGA 内的列扫描控制模块的输出端口 scan4-scanM目连。图1.1为方案的结构框图。附A CS 4-14外再器AMlKlfl I乐点 W图L I系维的结将框图31.2 方案二VHDL程序设计的是硬件,他和编程语言的最大区别是它可以“并发执行”。本设计可以将LED显示屏要的显示内容抽象成一个二维数组(数组中的1对映点阵显示屏上面的亮点),用 VHDL语言设计一个进程将这个数组动态显示图1.2方案二的原理框图在LED显示屏上,再利用另一个进程对这个数组按一定频率进行数据更新,更 新的方式可以有多种。因为两个进程是同时进行的(并发执行),如果对数组中 的汉字数据按滚动的方式更新,则
8、可实现汉字的滚动显示。图 1.2为该方案的原 理图。1.3 方案比较方案一很容易实现,而且占用FPGA的资源较少。但是由于其实现方式的局限性,该方案只能实现汉字的滚动显示。方案二中将LED点阵抽象成了一个二维数组。可以设计一些比较复杂的算法来控制这个数组,使设计的系统不但可以滚动显示汉字,还可以扩展一些其它的显示效果。但是方案二中对数组的处理部分对FPGA芯片的资源消耗太大学校实验室里的EPF10K10LC84-4芯片只有576个逻辑单元远远不够设计要求。所以最终选择方案o2扫描控制模块2.1 LED点阵原理以下为16X 16点阵LED外观及引脚图及其等效电路,只要其对应的 X、Y 轴顺向偏压
9、,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1 , X0=0 即可。应用时限流电阻可以放在 X轴或Y轴。Fin g E1Pin N0J3PkiNc.l1 2 3 z 7 3 9 1Q11 I2131415t6Pin No. 32Pin No.20Rp No. 13Sing e color type图2.1 16X 16点阵LED外观图中甲虫才至.立七 声1中空空空史更nX出土-1,*工巧i-t 1 rf- H;# rf二童二不二x r rf- r*-*一 二mNur#-| r#4rJM r#117梁;p”; W,;LE. . *;4 -F卜号i 三 I T! d ,一* * TM
10、 E*南:王中-*加J ,事士用4*萨*. J J :jJ 1 ,曰 J图2.2 16X 16点阵LED 等效图点阵LED扫描法介绍:点阵LED 一般采用扫描式显示,实际运用分为三种方式:(1)点扫描(2)行扫描(3)列扫描若使用第一种方式,其扫描频率必须大于16X64=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于16X8=128Hz,周期小于7.8ms 即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电 路提高电流,否则LED亮度会不足。2.2 汉字的存储用动态分时扫描技术使LED点阵模块显示图像,需要进行两步工作。第一 步是获得数据并保存,
11、即在存贮器中建立汉字数据库。第二步是在扫描模块的控 制下,配合行扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一个如图 3.3所示的被分成16X 16共256个小方格的矩 形框中,再在有笔划下落处的小方格里填上“ 1”,无笔划处填上“ 0”,这样就 形成了与这个汉字所对应的二进制数据在该矩形框上的分布,再将此分布关系以32X16的数据结构组成64个字节的数据,并保存在只读存贮器 ROM中。以这 种方式将若干个汉字的数据贮存在存贮器内,就完成了图像数据库的建立工作。口口n口口匚匚!_匚匚匚匚匚匚匚匚口口口口口匚口口口口 口口 口口口口口口 口 口 门 口 口 口
12、口 口 口 口 口nnnnnnnn匚匚匚口!_L匚匚口口图3.3 16 X 16LED点阵模块然后,依次对多汉字抽取像素信息,并按序排队存放起来,便可得到一个待 显示数据序列。将这个序列存到ROM中进一步通过寻址的方法来控制该数据序 列的释放过程,就可实现在LED发光二极管点阵上滚动显示多汉字信息的目的。由图2.3可知,某一时刻能在显示数据序列中定位待显示数据的地址指针 可用下式计算:(式 2.2.1)addr=n+m息示数据序珈012KK+2K*-l K*5K*7-N-1 N汉字信息定位指针nD 12345 G 7LED点阵131s定位指针m图2.3滚动显示多汉字信息的原理示意图2.3 汉字
13、的显示第二步工作的步骤是:先在扫描模块的控制下,由地址线确定每次由ROM送出某一列的16个LED所要显示的汉字的控制字节数据,同时由扫描模块输出 的5位扫描码经两个4-16译码器解码后决定相应的某一列可以被点亮,而另外31 列都不能被点亮。该状态持续约0.4毫秒后, 就接着进行下一行的扫描。当完成了一次32 行的扫描后,也就完成了一帧画面的显示。重复上述过程不断修改ROM 的地址区间的起始地址,转向下一幅画面的数据传送和显示。如此进行,就可以在LED 点阵模块上滚动显示ROM 中存储的汉字。32 4 滚动速度的控制将 LED 点阵看成一个滑窗。通过这个“滑窗”每次能“看到”32个存储单元( 2
14、 个汉字长度)的信息。只读存储器ROM 中链式的存放了若干个汉字的点阵信息, “滑窗”在这若干个汉字点阵信息上面滑动,我们通过“滑窗”看到的就是汉字的滚动显示。在用 VHDL 编程的时候,可以定义一个变量x 作为 “滑窗” 在 ROM 上的起始地址, 设计一个进程按一定的频率对x 进行累加,再设计一个进程将以x 为起始地址的长度为32 的 ROM 中的区域动态显示在LED 点阵中。显然x 累加的速度决定了汉字的滚动速度。此进程根据定义的信号n 来控制 x 递增的速度,n 由外部的按键控制。n 的范围为 07 代表了汉字的不同的滚动速度。当n 为 0 时汉字滚动的速度最快,n为 7 时 LED
15、点阵上显示的汉字静止。3 VHDL 语言程序设计3.1 扫描频率控制的部分关键程序process(clk) -显示时序控制beginif clkevent and clk=1 then -上升沿dount=dount+1;-计数累加if dount=255 thenif S=15 then S=0000;-S 控制单个汉字扫描周期 elseS=S+1;end if;S=S+1;elseS=S;end if;if cdount15then -控制列扫描频率cdount=cdount+1;elsecdountkeyckeyckeyckeyckeyckeyckeyckeyckeyckeyckeyck
16、eyckeyckeyckeyckeyckeyckeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyr=1111111111111111;end case;end if;end process;-结束进程,各个进程之间是并发执行的3.3 汉字滚动速度控制的部分关键程序process(reset_,n clk_scan, flag_scan)-x 的控制进程variable cntx: integer range 0 to 50;beginif(reset_n=0)thencntx: =0;x=0;elsif(ris
17、ing_edge(clk_scan)thenif(flag_scan=1)thenif(cntx=n 8 的r cntx=cntxhigh)then -n 由外部的按键控制,通过 n 来控制cntx的计数范围cntx: =0;elsecntx: =cntx+1 ;end if;if(cntx=n 8沏en -通过n来控制x的增加if(x=xhigh)thenx=0;elsex=x+1 ;end if;end if;end if;end if;end process;此进程根据定义的信号n 来控制 x 递增的速度,n 由外部的按键控制。n 的范围为 07 代表了汉字的不同的滚动速度。当n 为 0
18、 时汉字滚动的速度最快,n为 7 时 LED 点阵上显示的汉字静止。4 系统调试与仿真4.1 开发环境介绍Quartus II 是 Altera 公司的综合性PLD 开发软件,支持原理图、VHDL 、 Veril-ogHDL 以及 AHDL ( Altera Hardware Description Language ) 等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输 入到硬件配置的完整PLD 设计流程。Quartus II 可以在 XP、 Linux 以及 Unix 上使用,除了可以使用Tcl 脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度 快,界面统一
19、,功能集中,易学易用等特点。Quartus II 支持 Altera 的 IP 核, 包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA 工具。此外, Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合, 可以方便地实现各种DSP 应用系统;支持 Altera 的片上可编程系统( SOPC )开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体, 是一种综合性的开发平台。Maxplus
20、II 作为 Altera 的上一代PLD 设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera 已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera 在 Quartus II 中包含了许多诸如SignalTap II 、 Chip Editor 和 RTLViewer 的设计辅助工具,集成了SOPC 和 HardCopy 设计流程,并且继承了 Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越
21、来越受到数字系统设计者的欢迎。Altera 的 Quartus II 可编程逻辑软件属于第四代PLD 开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet 的协作设计。 Quartus 平台与 Cadence 、 ExemplarLogic 、 MentorGraphics 、 Synopsys 和 Synplicity 等 EDA 供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了 FastFit 编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000 等乘积项器件4.2 调试、仿真与体会4.2.1 创建工程在
22、QuartusII中新建一个 VHDL File文件,将vhdl代码输入这个文件, 并保存到工作目录,名为 ledarray.vhd 。利用new preject wizard 工具创建一个工程,工程名为ledarray,顶层文件实体名为ledarray ,并将上面创建的 ledarray.vhd 文件加入到工程中。 G4.2.2 编译前设置(1)选择目标芯片。用 assignmemts- settings 命令,弹出 settings 对话 框,选择目标芯片为EP2c5T144C8 。图1选择目标器件(2)选择工作方式,编程方式,及闲置引脚状态单击上图中的 device&pin option
23、s 按钮,弹出 device&pin options 窗口。在 General 项中选中 auto-restart configuration after error, 使对 FPGA 的配置 失败后能自动重新配置,并加入 JTAG用户编码。图2选择配置器件工作方式在 configuration 项中, 其下方的 Generate compressed bitstreams 处 打勾,这样就能产生用于EPCS的POF压缩配置文件。在Configuration 选项页,选择配置器件为EPCS1 ,其配置模式选择为 active serialo图3选择编程方式As在Unused pins项,将目标
24、器件闲置引脚状态设置高阻态,即选择 input,tri-stated 。图4设置闲置引脚状态4.2.3 全程编译设置好前面的内容之后,就可以进行编译了。选择 Processing菜单中start compilation ,在窗口的下方 processing 栏中显示编译信息。防/iHI JjlU4pWf B TLjiTUbril 存噩LkMqZ当曾5AJm ID4Mi T liBri-.Fhttw Vriri.1 J -T ET*L图5全程编译成功完成完成后在工程管理窗口左是角显示了工程ledarray 的层次结构和其中结构模块耗用的逻辑宏单元数。此栏的右边是编译处理流程,包括数据网表建 立、
25、逻辑综合、适配、配置文件装配和时序分析等。4.2.4时序仿真(1)新建一个矢量波形文件,同时打开波形编辑器。设置仿真时间为 50us, 保存波形文件为ledarray.vwf 。(2)将工程ledarray的端口信号名选入波形编辑器中,所选的端口有clk,及总线keyc和keyr。设置clk的时钟周期为 2us ,占空比为50% 。图6选择仿真控制仿真器参数设置。选择菜单 Assignment中的Settings ,在Settings窗 口下选择 Simulator , 在右侧的 simulation mode 项下选择 timing ,即选择 时序仿真,并选择仿真激励文件名ledarray.
26、vwf 。选择 simulation options栏,确认选定 simulation coverage reporting;毛刺检测 Glitch detection 为1ns 宽度;选中 Run simulation until all vector stimuli 全程仿真。现在所有设置进行完毕,在菜单processing项下选择start simulation 直至U出现 simulation was successful , 仿真结束。仿真文件simulationreport 通常会自动弹出,否贝U选择processing simulation report 。图7仿真波形输出Qua
27、rtus II可以实现硬件描述语言或网表文件对应的RTL电路图的生成。选中Tools菜单中的Netlist项,在出现的下拉菜单中有三个选项:RTLviewer,即 HDL 的 RTL 级图形观察器:Technology Map Viewer, 即 HDL 对应 的FPGA底层门级布局观察器; State Machine viewer, 即HDL对应的状态 机观察器。选择第一项可以打开 ledarray工程的RTL电路图。Ri,Itw|ifi fciLg U i-p-: X - - T 口 |LchTw*1 H,/郎 I U 4 f 整 备Ml-fcll IJ.-ii Mnl.niED Mb-n i rnup.|lllVI RrirbfL*lll-u”| 工工 IMn I 41 C : I; Iff If ! !-eiIA*n lvl.E LNiiThWk I1 lg-iil !. 1I H|a. a 府中 lliHQJMKfD51 4,WT MBMi T DUTEdi” b ri I ri .T| Kf :口|1一|1-中1 ?:TLSjN5 .j.MUK y Hl QMT. ,. - i ._-.-(vDirii.rMir /一。5 I -图8 RTL电路图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家管网集团湖南公司2026届秋季高校毕业生招聘考试备考题库(浓缩500题)含答案详解(轻巧夺冠)
- 国家管网集团山东分公司2026届秋季高校毕业生招聘笔试模拟试题(浓缩500题)带答案详解
- 2026年驻马店市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)带答案详解(完整版)
- 2026国家管网集团校园招聘(河北招17人)考试参考试题(浓缩500题)及答案详解【网校专用】
- 2026秋季国家管网集团华南公司(广东省管网公司)高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解(夺分金卷)
- 2025国网湖北省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题及答案详解(考点梳理)
- 2026届国家管网集团高校毕业生招聘笔试模拟试题(浓缩500题)附参考答案详解(b卷)
- 2026秋季国家管网集团西北公司高校毕业生招聘考试参考试题(浓缩500题)附答案详解(完整版)
- 2026秋季国家管网集团广西公司高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解一套
- 2025国网海南省电力校园招聘(提前批)笔试模拟试题浓缩500题含答案详解(基础题)
- DB32TDB32T3964-2020民用建筑能效测评标识标准
- 成人癫痫持续状态护理专家共识2023
- 英语四级单词4500
- 团队合作精神培养售后工程师考核方案实战演练
- 膀胱造瘘护理查房课件
- 霍兰德职业类型测试
- 智慧审计大数据云平台整体解决方案
- 2023年中信银行招聘考试真题及解析
- 少先队知识竞赛题库及答案
- 统编版语文一年级上册 j q x y 和 ü 的专项练习(无答案)
- 信息组织概论第五章
评论
0/150
提交评论